LOMO
EU law, obligation by obligation.
LOMO reads European legislation and turns every obligation into a fact you can search, compare and query: who must do what, under which article, from which date.
Reading is open to everyone. Asking a question and extracting a new act need an account.
What it does
- Finds the obligations, permissions and prohibitions of an EU act, article by article, and records for each one the duty-bearer, the action, the modality and the conditions.
- Links the same duty across acts, so that an importer sees in one place what the product safety, cybersecurity and AI rules ask of them.
- Follows the law as it changes: amendments, repeals, case law and dates of application; whether each act is still in force is checked every day against the EU’s official records.
- Ask a question: describe your situation in plain words and get the obligations that apply, each with its article.
How the data is made available
- Source. The official texts of EUR-Lex, identified by their ELI (European Legislation Identifier). Whether an act is in force comes from the Publications Office’s Cellar.
- Extraction. Claude (Haiku 5.5, with a fixed output schema) reads each provision and proposes its rules. Every rule is checked against SHACL shapes, then reviewed in the back office before it counts as validated. Each rule keeps a verbatim quote of its provision and a provenance record (PROV-O).
- Model. The LOMO ontology of the EU Publications Office, unchanged, with three extension layers: describing rules, analysis across texts, and the application's own records.
- Publication. Every obligation has a stable public page linked to the ELI of its provision. The same record is available as JSON, JSON-LD and Turtle; changes come as RSS, Atom and JSON feeds; a register exports as CSV. The site is in preview: rules not yet reviewed are shown and marked as such.
Technical stack
- Knowledge graph
- Apache Jena Fuseki (TDB2, named graphs), SPARQL
- Ontologies
- LOMO, SKOS, PROV-O, ELI, SHACL
- AI
- Claude API: Haiku 5.5 for extraction, schema-constrained output; Claude for Ask a question
- Application
- Python, FastAPI, a job queue for extractions; plain JavaScript pages
- Sign-in
- Dex (OpenID Connect)
- Hosting
- Docker Compose, Caddy, Coolify on an OVH server in France