Go to file
philipp f00d44f275
All checks were successful
CI/CD Pipeline / test (push) Successful in 2m54s
add traufg
2024-08-13 10:24:50 +02:00
.gitea/workflows cache rust 2024-05-26 13:59:08 +02:00
data add traufg 2024-08-13 10:24:50 +02:00
src new expected file structure 2024-06-27 09:50:33 +02:00
.gitignore empty rust project 2023-11-03 13:45:25 +01:00
Cargo.lock update deps 2024-07-24 21:12:19 +02:00
Cargo.toml update deps 2024-06-05 15:09:13 +02: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
update_laws.sh cleaner config (no error if cache is cleaned 2024-06-27 09:49:08 +02: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