A policy record, an authorization decision and evidence that an action occurred are different records. Keeping them distinct helps a team explain which policy revision was consulted and what the enforcement system actually did.
Executed synthetic walkthrough: this article includes actual light-mode OriginChainDB screenshots, the downloaded query CSV and a validated local application adapter. External industry systems were not connected.
Conceptual illustration of the synthetic application workflow. Light PNG · Dark PNG. This is not a product screenshot.
The sourced development
W3C published its ODRL workshop report announcement on 24 September, following the July 2026 workshop. The announcement describes recommendations for further work, including clearer semantics, conformance and a test suite. Those recommendations are not a finalized ODRL 3.0 standard. The application below is an evidence-storage proposal, not a policy engine or legal-compliance claim.
Read the primary source. W3C published the workshop report announcement on 24 September 2026 following the July 2026 workshop.
The operational question
A stored permission statement cannot prove that every application followed it. Conversely, an action log without the policy revision used for the decision is difficult to review. The practical question is whether a reviewer can connect a decision to the exact policy version and the corresponding enforcement receipt.
A tested OriginChainDB application pattern
Use immutable application policy-version IDs, decision IDs and action-receipt IDs. Store the policy document reference and the evaluator’s recorded outcome separately. The synthetic fixture makes one linked action, one missing receipt and one unknown policy revision visible.
-
Keep policy interpretation in the application’s designated evaluator. This database exercise stores the evaluator’s evidence; it does not implement that evaluator or decide whether an action is allowed.
-
Create policy, decision and receipt tables in a fresh demonstration schema. The synthetic records preserve a policy revision, evaluator version and receipt reference without real actor identities.
-
Inspect the decisions and run the packaged LEFT JOIN report. The report checks policy presence first, then receipt presence, so incomplete references remain explicit.
-
Export the successful rows and run route-export.py. The adapter verifies evidence connectivity and produces review records without authorizing an action or labeling it compliant.
Run the local application rule
The following executable fixture uses synthetic records and no network connection. It verifies the stated application rule without substituting a local result for a live database demonstration.
Download example.py · Expected local output
python example.py
policies={"P1","P2"}; receipts={"R1"}
decisions=[("D1","P1","R1"),("D2","P2",None),("D3","P9",None)]
result=[{"id":id,"state":"policy_unknown" if p not in policies else "receipt_missing" if r not in receipts else "linked"} for id,p,r in decisions]
assert [r["state"] for r in result] == ["linked","receipt_missing","policy_unknown"]
The live report and actual CSV return linked for D1, receipt_missing for D2 and policy_unknown for D3. The local export adapter checked these classifications against the returned policy and receipt references. These labels describe evidence connectivity only; they are not ODRL interpretation or legal conclusions. D3 also lacks a receipt, but policy_unknown takes precedence in this single-status report. Use separate flags when a review needs every missing input.
The recorded integration walkthrough
The three stills below were extracted from actual native console recordings after private fields were blurred before encoding. They show the synthetic stored inputs, the successful operation and its returned result. Query timing visible in the console is one observation and is not a performance benchmark.
Three synthetic decisions preserve policy, receipt and evaluator references. Open the image to inspect the full-size console view.
The operation checks policy presence before receipt presence. Open the image to inspect the full-size console view.
The actual result returns linked, receipt_missing and policy_unknown. Open the image to inspect the full-size console view.
Reproduce the SQL-to-application handoff
Setup and report SQL · Actual downloaded CSV · CSV adapter · Executed adapter result · Verification receipt.
Use a new demonstration namespace for a repeat run; do not reset an existing one. Run the setup statements separately, inspect the input rows, then run the report below. Export the complete successful result and pass that file to the adapter.
SELECT d.decision_id AS decision_id, d.policy_id AS policy_id, d.receipt_id AS receipt_id, p.policy_id AS resolved_policy, p.revision AS policy_revision, r.receipt_id AS resolved_receipt, d.evaluator_version AS evaluator_version, CASE WHEN p.policy_id IS NULL THEN 'policy_unknown' WHEN r.receipt_id IS NULL THEN 'receipt_missing' ELSE 'linked' END AS evidence_state FROM academy_news_20261016_odrl.decisions d LEFT JOIN academy_news_20261016_odrl.policies p ON d.policy_id = p.policy_id LEFT JOIN academy_news_20261016_odrl.receipts r ON d.receipt_id = r.receipt_id ORDER BY decision_id;
python route-export.py export.csv
The adapter reads a local CSV, checks the application rule and emits records. It makes no network call and sends no external action. The synthetic contract CSV supplied beside the adapter is a separate offline test; it is not the live export.
Limits and evaluation
Completeness of an audit record does not establish correctness or tamper resistance. Define retention, access control and event-order rules separately. If policies are updated, preserve the revision used at decision time instead of joining every old event to the latest policy text.
The practical next step
The recorded example makes the policy-to-action evidence chain inspectable with gaps intact. Next, connect the real evaluator’s documented output contract, preserve its policy revision at decision time, and assess retention and access controls separately. Standards conformance would require its own appropriate evaluation.
Claims and remaining evidence · Local execution receipt · OriginChainDB documentation. No partnership, native industry adapter, certification, customer outcome or production deployment is claimed.






