ODGS FLINT Bridge
The ODGS FLINT Bridge is an open-source institutional connector that translates TNO FLINT (Formal Language for the Interpretation of Normative Texts) Linked Data into ODGS Executable Enforcement Rules.
It bridges the semantic legal ontology layer with the ODGS enforcement engine — connecting "Rules as Code" (Regels als Code) ecosystems to live data pipelines.
See it in action
A GDPR Article 33 breach-notification norm is compiled into a real ES256-signed rule pack; a 30-hour notice is APPROVED, a 118-hour notice is HARD_STOP-blocked — real engine, real Ed25519 audit seal.
Install
pip install odgs-flint-bridge
CLI
After install, the odgs-flint command is available:
# Compile a FLINT JSON-LD file and print the rule
odgs-flint sample_flint.json
# Compile and save to a file
odgs-flint sample_flint.json --output my_rule.json
# Compact output (no indentation)
odgs-flint sample_flint.json --compact
On file save, the CLI prints a summary:
Rule written to my_rule.json
semantic_hash: a3f8c2d1...
urn: urn:odgs:rule:flint:zorgtoeslag_art5_p1
effective_from: 2026-01-01 (if declared in flint:period)
Python API
from odgs_flint_bridge.parser import FlintParser
from odgs_flint_bridge.compiler import OdgsCompiler
# Load your FLINT JSON-LD payload
flint_payload = {
"@type": "flint:Fact",
"flint:identifier": "urn:flint:fact:zorgtoeslag:art5:p1",
"flint:name": "Zorgtoeslag Threshold",
"flint:sourceReference": "https://wetten.overheid.nl/BWBR0018988/",
"flint:expression": {
"flint:subject": "inkomen",
"flint:operator": "LESS_THAN_OR_EQUAL",
"flint:targetValue": 35000
}
}
# Parse → Compile (FlintParser.parse() auto-routes by @type)
parsed = FlintParser.parse(flint_payload)
rule = OdgsCompiler.compile_rule(parsed)
print(rule["semantic_hash"]) # SHA-256 of the source FLINT JSON-LD
print(rule["urn"]) # urn:odgs:rule:flint:zorgtoeslag_art5_p1
The compiled rule is ready to load directly into the ODGS enforcement engine:
from odgs.executive.interceptor import OdgsInterceptor
engine = OdgsInterceptor(rules=[rule])
engine.intercept("urn:odgs:custom:myprocess", {"inkomen": 40000})
What It Does
- Parses all six FLINT types —
flint:Fact,flint:Duty,flint:Act,flint:Source,flint:Reference,flint:Violationfrom any TNO FLINT source (wetten.overheid.nl, Choppr, EUR-Lex, etc.) - Computes
semantic_hash— Auto-generates a SHA-256 of the verbatim source payload, logged on every enforcement event — a tamper-evident link from decision back to law. - Extracts rule lifecycle —
flint:Dutypayloads with aflint:periodproduceeffective_from/effective_tobounds, enforced by the ODGS engine. - Type-specific rule shapes — Each FLINT type compiles to the right ODGS severity:
HARD_STOPfor facts/duties/violations,ACT_CONSTRAINTfor acts,METADATA_ONLYfor sources,LOG_ONLYfor references. - Human-readable audit fields —
plain_english_description(fromflint:description) andnon_conformance_message(fromflint:salvageClause) surface directly in S-Cert audit logs.
The Architecture
flowchart LR
subgraph legislative["⚖️ Legislative Plane"]
A["wetten.overheid.nl\nChoppr / TNO FLINT Tools"]
B["FLINT JSON-LD\nflint:Fact · flint:Duty · flint:Act\nflint:Source · flint:Reference · flint:Violation"]
A --> B
end
subgraph bridge["🔗 ODGS FLINT Bridge ← you are here"]
C["FlintParser\nDeserialise JSON-LD"]
D["OdgsCompiler\nCompute semantic_hash\nExtract temporal bounds"]
B --> C --> D
end
subgraph engine["⚙️ ODGS Enforcement Engine"]
E["OdgsInterceptor\npip install odgs"]
F["S-Cert Audit Log\nevent_id · semantic_hash\npayload_hash · verdict"]
D --> E --> F
end
subgraph exec["🗄️ Live Data Pipeline"]
G["Databricks"]
H["Snowflake"]
I["AI Agent / API"]
E --> G & H & I
end
style legislative fill:#E8F4FD,stroke:#2196F3,color:#000
style bridge fill:#FFF3E0,stroke:#FF9800,color:#000
style engine fill:#E8F5E9,stroke:#4CAF50,color:#000
style exec fill:#F3E5F5,stroke:#9C27B0,color:#000
Enterprise
This package emits rules with semantic_hash: "auto-computed" — the SHA-256 is derived locally from the source payload. For Registry-attested hashing with Ed25519 JWS signing and offline .odgs-bundle packages, see the Metric Provenance Enterprise Platform.
👉 Metric Provenance 3-Pillar Enterprise Suite
Licensed under the Apache License 2.0.
Metadata
Release files for odgs-flint-bridge 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| odgs_flint_bridge-0.4.2.tar.gz | 21.9 kB | Without provenance | Details for odgs_flint_bridge-0.4.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| odgs_flint_bridge-0.4.2-py3-none-any.whl | Python 3 | none | any | Details for odgs_flint_bridge-0.4.2-py3-none-any.whl |
Total release size: 37.8 kB
Release files / odgs_flint_bridge-0.4.2.tar.gz
| Download URL | odgs_flint_bridge-0.4.2.tar.gz |
|---|---|
| Size | 21.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
92fd45ded89f0d207aba95dff2ea970120213f2f274e05d438c34256af3f70d3
|
|
BLAKE2b-256 checksum How to use checksums |
fc24050b8efacd13d2655c5a8dc2029ad30c5e533b264bac4dcfc27087ca217f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / odgs_flint_bridge-0.4.2-py3-none-any.whl
| Download URL | odgs_flint_bridge-0.4.2-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c127865aebc9a4537ba17ea3012de9ab46bded0cda3b321f633dd442970591c5
|
|
BLAKE2b-256 checksum How to use checksums |
9ba0491d4ca228296989f81240a0f7e43a519d17f57233e6aba3a430160b3f8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for odgs-flint-bridge 0.4.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.