Go to file
philipp 4317f79d0c
All checks were successful
CI/CD Pipeline / test (push) Successful in 2m5s
remove list of list etc
2024-02-17 16:43:04 +01:00
.gitea/workflows use new ci image 2024-02-15 11:58:34 +01:00
data remove list of list etc 2024-02-17 16:43:04 +01:00
src remove list of list etc 2024-02-17 16:43:04 +01:00
.gitignore empty rust project 2023-11-03 13:45:25 +01:00
Cargo.lock enable function to move paragraphs into absaetze 2024-02-15 15:07:36 +01:00
Cargo.toml enable function to move paragraphs into absaetze 2024-02-15 15:07:36 +01:00
gen_all_laws.sh add script to generate all laws 2024-02-15 12:07:01 +01:00
LICENSE use ascii ' in license text 2024-02-15 16:10:18 +01:00
README.md update data folder structure explanation 2024-02-15 16:20:51 +01:00

RIS Parser

Add new law text

  • Tests: Create config file in ./data/configs/ and run the tests (cargo t). This will automatically create tests both for overview and par (by adding new files in data/expected/).

Integration test

  • Nice test would be to re-create html ris file and compare it (problem with custom fixes, though)

Goals

  • I want to have the text of the law.
  • I want to see the structure (proper headers) of the law.
  • I want to be able to make comments (e.g. Erschöpfung) on certain parts
  • I want to see since when this paragraph is in use.
  • [.] Lawtext should be updateable

Mindset

  • I don't want to restrict myself with a parser combinators but code it myself using recursive descent parser.
  • Be strict in what I process. Fail if anything unexpected happens. The user should handle this case. It's fine if one decides to ignore the new/unexpected field, but it should be done deliberately.

Nomenclature

  • Law ("Gesetz"): e.g. UHG, TEG, ABGB
  • Section ("Paragraph")
  • Subsection ("Absatz")
  • Item ("Ziffer")
  • Heading-{1,2,3,...}

Folder-Structure of this repo

  • ./data
    • cache -> cache for tests
    • expected
      • overview -> expected xml links of law_ids
      • par -> expected LawBuilder calls for a given law
    • configs -> configs for various law texts. If you want to support a new law text, add respective config here.

License

Licensed under the EUPL, Version 1.2 or as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence"). You may not use this work except in compliance with the Licence.

License: European Union Public License v1.2