risp/README.md
philipp 3edbe11200
All checks were successful
CI/CD Pipeline / test (push) Successful in 1m48s
update data folder structure explanation
2024-02-15 16:20:51 +01:00

43 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- [x] I want to have the text of the law.
- [x] 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](docs.rs/nom) 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](https://joinup.ec.europa.eu/software/page/eupl)