# Obligation-First > An open upper schema for normative content (laws, cases, joint interpretations) bound to Semantic Arts gist. Obligation-First is a small upper schema and JSON-LD context for normative content. It defines the Authority / Instrument / Term / Obligation spine, the Proceeding / Allegation / Determination strand, ObligationCategory concepts, and Party / Jurisdiction / Tombstone support. v0.6.3 is the current release. Its v0.6 semantic contract is implemented across EveryAILaw, PubLedge, and AI Incident Law. It separates issuer, administrator, enforcer, and hearing forum; separates normative force, lifecycle, operative effect, and enforcement; reserves Term.text for exact source text; and adds shared provenance plus graph-level validation. Legacy v0.5 shapes remain schema-valid. Migrated projections declare `obligation-first >=0.6.0 <0.7.0`. ## Key concepts - **Spine** — Authority / Instrument / Term / Obligation. Bound to gist:Organization, gist:Agreement or gist:Specification, gist:Specification for Terms, and the deontic quartet. A negotiated Term may additionally assert gist:ContractTerm. - **Proceeding strand** — Proceeding (gist:Event) / Allegation (gist:Content for the assertion text, plus gist:Intention only when the claim is intent-bearing) / Determination (gist:Determination). Models legal matters with epistemic honesty: an Allegation is asserted, not authoritative; a Determination resolves it. - **Deontic quartet** — Requirement (lrml:Obligation), Restriction (lrml:Prohibition), Permission (lrml:Permission), Reparation (lrml:Reparation). Reparation is the secondary obligation triggered when a primary is violated. v0.2 refined the gist binding for `of:Reparation` to a layered `gist:Requirement` (the duty) + `gist:Intention` (declared intent on the creating Term) + `gist:Event` (actuated reparation, via the proceeding strand) pattern per Semantic Arts feedback; the of: class is preserved. - **Force and lifecycle** — `normative_force`, `lifecycle_status`, `operative_status`, and `enforcement_status` are independent axes. Unknown, future, inactive, stayed, repealed, and not applicable remain distinct. Computed state carries `computed_as_of`; factual dates remain source assertions. - **Supersession** — `of:supersedes` (post-enactment Instrument-to-Instrument replacement) and `of:wouldSupersede` (subjunctive form for proposed Instruments). Distinct from `of:defeats`, which is Term-level. Supersedes does not auto-imply Term-level defeats. - **Defeasibility** — `of:defeats` predicate expresses cross-Term override (statutory exceptions) per Lawsky default logic and LegalRuleML §7.4. v0.2 adds subproperties `of:rebuts` (defeating Term reaches the opposite conclusion) and `of:undercuts` (defeating Term denies the rule's applicability in this context). Either entails `of:defeats`; the general predicate remains the v0.1-compatible binary case. - **Violation traversal** — `of:violationOf` is the symmetric/inverse of `triggers_on_violation_of`, added in v0.2 so SPARQL can query the violation relation from the primary-Obligation side. Adopters MAY assert from either side; if both directions are present, they must be consistent. - **Polymorphic executableEncoding** — Optional pointer from a Term to a Catala scope, Blawx ruleset, OpenFisca formula, or other rules-as-code engine. - **Evidence-bearing Authority basis** — `authority_basis` is optional and multi-valued. When present it cites a source of legal competence. Missing evidence is omitted, never replaced with a fabricated self-reference. - **Actors and legal scope** — Party identifies concrete people and organizations. Controlled role IRIs stay separate from concrete identity. Jurisdiction is legal competence with independent territorial and institutional scope. - **Identity retirement** — Tombstone records keep deprecated IRIs queryable across aggregate, companion, and per-record surfaces without pretending the old record is still a live duty or authority. - **Classification** — Obligations use `gist:isCategorizedBy` to join ObligationCategory concepts. `skos:exactMatch` remains concept-to-concept only. ## Key files - Specification: https://github.com/snapsynapse/obligation-first/blob/main/PROTOCOL.md - Prior-art survey: https://github.com/snapsynapse/obligation-first/blob/main/PRIOR-ART.md - Roadmap: https://github.com/snapsynapse/obligation-first/blob/main/ROADMAP.md - Changelog: https://github.com/snapsynapse/obligation-first/blob/main/CHANGELOG.md - JSON-LD @context: https://obligationfirst.org/v1/context.jsonld - Live resolution target: https://obligationfirst.org/v1/ - Planned permanent vocabulary prefix: https://w3id.org/of/v1/ (redirect not filed yet) - Shared schema definitions: https://obligationfirst.org/v1/schema/common.schema.json - Authority schema: https://obligationfirst.org/v1/schema/authority.schema.json - Jurisdiction schema: https://obligationfirst.org/v1/schema/jurisdiction.schema.json - Party schema: https://obligationfirst.org/v1/schema/party.schema.json - Instrument schema: https://obligationfirst.org/v1/schema/instrument.schema.json - Term schema: https://obligationfirst.org/v1/schema/term.schema.json - Obligation schema: https://obligationfirst.org/v1/schema/obligation.schema.json - Obligation category schema: https://obligationfirst.org/v1/schema/obligation-category.schema.json - Proceeding schema: https://obligationfirst.org/v1/schema/proceeding.schema.json - Allegation schema: https://obligationfirst.org/v1/schema/allegation.schema.json - Determination schema: https://obligationfirst.org/v1/schema/determination.schema.json - Tombstone schema: https://obligationfirst.org/v1/schema/tombstone.schema.json - Executable encoding schema: https://obligationfirst.org/v1/schema/executable-encoding.schema.json - Naming profile schema: https://obligationfirst.org/v1/schema/naming-profile.schema.json - Release package: https://obligationfirst.org/releases/v0.6.3/ - Assistant guide: https://obligationfirst.org/.well-known/assistant-guide.txt - Assistant guide manifest: https://obligationfirst.org/.well-known/assistant-guide-manifest.txt ## Assistant-assisted setup Assistants should fetch `https://obligationfirst.org/.well-known/assistant-guide.txt`, verify it with https://guidecheck.org/verify or another conformant verifier, report the achieved level, guide SHA-256, and blocking findings, then ask the user for confirmation before acting. The sidecar manifest provides the Level 4 hash and byte-count evidence. Conformance is not safety. ## Worked examples - Moffatt v. Air Canada — proceeding strand: https://github.com/snapsynapse/obligation-first/blob/main/examples/air-canada/README.md - Colorado SB 24-205 — spine: https://github.com/snapsynapse/obligation-first/blob/main/examples/colorado-sb24-205/README.md - Utah OAIP JIA — joint interpretation: https://github.com/snapsynapse/obligation-first/blob/main/examples/publedge-jia-utah-72/README.md - EU AI Act Article 50 — transparency obligations across a multi-layer source hierarchy: https://github.com/snapsynapse/obligation-first/blob/main/examples/eu-ai-act-article-50/README.md ## Crosswalks to existing standards - gist (Semantic Arts): https://github.com/snapsynapse/obligation-first/blob/main/reference/crosswalks/gist.md - LegalRuleML: https://github.com/snapsynapse/obligation-first/blob/main/reference/crosswalks/legalruleml.md - Akoma Ntoso (OASIS LegalDocML): https://github.com/snapsynapse/obligation-first/blob/main/reference/crosswalks/akomantoso.md - ELI / ECLI: https://github.com/snapsynapse/obligation-first/blob/main/reference/crosswalks/eli-ecli.md ## Adopters - EveryAILaw — https://everyailaw.com/ (live binding for AI laws and obligations) - PubLedge — https://publedge.org/ (live binding for joint interpretations) - AI Incident Law — https://aiincidentlaw.org/ (live binding for AI-related proceedings, allegations, and determinations) ## License - Spec text and reference material: CC BY 4.0 - Code, schemas, scripts, examples: Apache 2.0 ## Contact - Repo: https://github.com/snapsynapse/obligation-first - Author: Sam Rogers — https://www.linkedin.com/in/samrogers - Publisher: PAICE.work PBC — https://paice.work/