truth-pass: Annex III process genus, regulatory-basis provenance, pinned legal kernel, audit guards#73
Merged
Merged
Conversation
…ned legal kernel, audit guards Squash of audit/wave0-2-truth-pass (23 commits). Aligns the modeled artifacts and emitted output with the actual EU AI Act text and closes the truth-pass register rows. All 9 tests + run_pipeline.py green; HermiT cross-check via CI robot-validate.yml. Modeling (L2.12 / M-ProcessGenus-1) - Add :BiometricIdentificationProcess genus (Art 3(35)); re-parent :RemoteBiometricIdentificationProcess as the remote subkind (Art 3(41)). - :BiometricVerificationProcess owl:disjointWith the genus (1:1 verification, Art 3(36)). - Bare genus is the non-triggering type; Gate 2 still keys on the remote subkind, so genus alone does not entail Annex III 1(a). Drop the invented :Cooperative... class. Provenance (X.13 / X.15) - Add :hasRegulatoryBasis annotation property (rdfs:subPropertyOf cco:doctrinal_source, cco:definition_source); attach regulatory-basis annotations to modeled conditions. - Seed cco:doctrinal_source into cco_seed.txt; regenerate cco_bot.owl via ROBOT BOT. Logical skeleton count-identical (70 classes / 18 obj props / 87 subClassOf / 5 disjointWith / 420 CCO IRIs); net change is +doctrinal_source. Legal text + disclosure (X.18 / L2.14 / L2.15 / L2.16) - Add docs/legal/eu_ai_act_kernel.md: pinned, quoted legal text with a pinning rule. - Annotation truth-pass: scrub phantom 5(b) provision, fix Article 43(1) conformity sentence + derogation xref, correct definition overclaims. - Coherent LIMITATIONS.md disclosure pass. Audit guards (L3.8 / L3.9 / L3.10 / L3.11 / L3.12) - TBox/ABox load guard on instance files, extended to property-level schema predicates. - flag_intent_without_capability.sparql (report-only intent-without-capability flag). - Union-subclass sync guard runs on the asserted graph. - Canonical-IRI gate + CI wiring. - Negative-case and cross-category isolation absence checks in reasoned closure. Output - Separate scope metadata from graph-backed entailment in the determination output. - Art 3(41) walk-up elicitation prompt in the negative panel. - README reframed: ARCO presented as a working proof that such a tool can be built and trusted, with the vendor-document ingestion layer named as not-yet-built. Docs truth-pass (public-repo accuracy) - Re-pin 67 line anchors across 9 public docs (LIMITATIONS, README, roadmap, kiosk demo, legal kernel, modeling-decision docs, versions) that drifted as ARCO_core.ttl, ARCO_governance_extension.ttl, and run_pipeline.py grew; each re-pin verified claim-against-content individually. Several anchors already stale on main corrected to the actual declarations. - decisions_justification_map.md: precedent note generalized to reference implementations; internal KB paths replaced with standard bibliographic citations. - eu_ai_act_kernel.md: provenance note now states the full-text capture is not tracked in the public repository. - README.md: drop citation to a nonexistent status file; correct the capability-disposition anchor. Tests - New: test_bi_rbi_genus, test_canonical_iris, test_genus_elicitation, test_tbox_guard. - Extended: test_scenarios (negative/cross-category), test_adversarial_mechanism (5(b) equivalentClass decoy parity), HermiT matrix 5(b) decoy. Deferred - Restore optional dcterms:license/dcterms:rights ontology-annotation stubs on the next cco_bot.owl regen (valueless orphan declarations; no classification impact). Revert: git revert this commit; no schema/IRI consumers outside this repo.
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes
:BiometricIdentificationProcessgenus (Art 3(35));:RemoteBiometricIdentificationProcessre-parented as the remote subkind (Art 3(41));:BiometricVerificationProcess owl:disjointWiththe genus (Art 3(36)). Bare genus is the non-triggering type; Gate 2 still keys on the remote subkind, so genus alone does not entail Annex III 1(a).:hasRegulatoryBasisannotation property (rdfs:subPropertyOf cco:doctrinal_source, cco:definition_source); regulatory-basis annotations on modeled conditions;cco_bot.owlregenerated via ROBOT BOT withcco:doctrinal_sourceseeded (logical skeleton count-identical: 70 classes / 18 object properties / 87 subClassOf / 5 disjointWith / 420 CCO IRIs).docs/legal/eu_ai_act_kernel.md(verbatim blocks + pinning rule); annotation truth-pass (phantom 5(b) provision scrubbed, Article 43(1) conformity sentence corrected, definition overclaims fixed); coherentLIMITATIONS.mddisclosure pass.flag_intent_without_capability.sparql(report-only); union-subclass sync guard on the asserted graph; negative-case and cross-category isolation absence checks in the reasoned closure.Schema
No
determination_packet.json/summary.jsonschema changes. Field set verified against the MCP consumer (mcp/arco_mcp.pyreadssummary.jsonandcertificate.txt; all read keys present in fresh output).Axiom paths
03_TECHNICAL_CORE/ontology/ARCO_core.ttl—:hasRegulatoryBasismint, capability disjointness axiom annotation03_TECHNICAL_CORE/ontology/ARCO_governance_extension.ttl— process genus, subkind re-parent, process disjointness, four-class regulatory annotations03_TECHNICAL_CORE/ontology/imports/cco_bot.owl,imports/seeds/cco_seed.txt— slim-module regenTests
test_bi_rbi_genus.py,test_canonical_iris.py,test_genus_elicitation.py,test_tbox_guard.pytest_scenarios.py(negative / cross-category),test_adversarial_mechanism.py(5(b)equivalentClassdecoy parity), HermiT matrix 5(b) decoy fixtureDeferred
dcterms:license/dcterms:rightsontology-annotation stubs dropped by the BOT regen (valueless orphan declarations, no assertions used them; restore on next regen):NaturalPersonRole,:DerogationClaim,:FraudDetectionProcess)Revert
Single squash commit;
git revertis clean. No schema or IRI consumers outside this repository.🤖 Generated with Claude Code