# Vercy AI instruction - YAML 1.2 (JSON-compatible) { "vercy": "1.0-draft", "publication": { "status": "published", "adjudicationStatus": "reviewable-draft", "publishableCanonical": false, "generatedAt": "2026-08-23T19:21:40Z", "synthesisSha256": "20847999df73be6906086dcc4432bec3ab21101c4041ce5f318ebe6633f6cc9e", "providerMode": "dual-provider", "providers": [ "Claude", "Grok" ], "waivedProviders": [] }, "metaModel": { "id": "WM-XCT-029", "registryId": "vr.wm-xct-029", "name": "Obligation / Commitment", "version": "0.3.0-research.1", "previousVersions": [], "entryKind": "mixin", "family": "World Models", "category": "Cross-cutting context", "industry": [ "Cross-industry" ], "domain": [ "XCT.OBL" ], "tags": [ "obligation", "commitment", "xct.obl" ], "status": "published" }, "canonicalUrl": "https://ver.cy/models/wm-xct-029-obligation-commitment/", "sourceUrl": "https://github.com/ver-cy/world-models/tree/feat/mega-model-registry/research/runs/wm-xct-029", "model": { "registry_id": "vr.wm-xct-029", "model_id": "WM-XCT-029", "name": "Obligation / Commitment", "entry_kind": "mixin", "purpose": "Provide a reusable, format-neutral structure for a directed deontic commitment: which party owes which action or forbearance, to whom, under which conditions, by when, to what standard, how it is discharged, and what follows if it is not.", "scope_statement": "WM-XCT-029 models a single obligation/commitment instance as a mixin that can be attached to any host record that creates or carries duties (contract clause, statute or regulation article, licence, court or administrative order, service commitment, internal policy, unilateral promise). It covers the deontic core (bearer, counterparty, modality, action), the conditional structure that detaches the duty, the temporal structure (due time, recurrence, grace, limitation), the lifecycle state model, fulfilment and its evidence, non-performance with excuse and remedy, the authority and provenance that make the duty defensible, and transfer, plurality and standards alignment. It deliberately does not model the instrument, the parties, the executed work or the accounting recognition; those are referenced from sibling models.", "in_scope": [ "Deontic modality of a single duty (obligation, prohibition, correlative right) and whether it is violable rather than definitional", "Bearer/obligor, obligee, beneficiary, auxiliary and enforcing party roles for one commitment", "Obligated action or forbearance, its controlled action term, refinements and subject matter or target", "Antecedent and resolutive conditions, detachment, and the constraint expressions that gate the duty", "Due instant or performance window, recurrence, grace, notice, survival and limitation periods", "Lifecycle states and transitions with separate event time and observation/ingestion time", "Fulfilment criteria, acceptance, discharge mode, partial performance and measure of progress", "Fulfilment evidence, its issuer, integrity and status", "Non-performance determination, excuse grounds, cure periods, remedy and penalty obligations", "Legal or policy basis, issuing authority, jurisdiction and governing law of the duty", "Record ownership, stewardship, provenance and audit trail of the obligation record", "Assignment of the correlative right, transfer or novation of the duty, plurality of obligors/obligees and apportionment", "Confidentiality classification, personal-data flags, retention and legal hold on obligation records", "Crosswalk to ODRL Duty, LegalRuleML Obligation, FIBO contractual commitment, IFRS 15 performance obligation and compliance-obligation registers" ], "out_of_scope": [ "The agreement or contract instrument itself, its formation, offer/acceptance, consideration and clause text", "Legal-entity identity, registration, legal capacity and party master data", "Generic policy containers and rule engines, including access-control decision points and their evaluation infrastructure", "Execution of work: tasks, work orders, scheduling, resourcing and dispatch", "Payment initiation, clearing and settlement mechanics and ledger postings", "Accounting recognition and measurement of liabilities, provisions and revenue amounts", "Dispute, arbitration and litigation case management", "Risk registers, control design and control-effectiveness testing", "Consent capture and consent lifecycle as a lawful basis", "Calendar, holiday and business-day-convention definitions themselves", "Definitional or structural necessities that cannot be violated", "Signature, sealing and e-signature ceremony records" ], "boundary_notes": [ { "neighbor": "Agreement / Contract model", "distinction": "An agreement is a negotiated understanding reflecting offer and acceptance of commitments; a commitment is a promise by one party to act or refrain. One agreement carries many obligations, and an obligation can exist with no agreement at all (statute, court order, unilateral commitment, commitment at large). This model references the instrument and never restates its terms.", "source_refs": [ "SRC-004", "SRC-005", "SRC-003" ] }, { "neighbor": "Policy / Rule container (ODRL Policy)", "distinction": "ODRL places Duties inside a Policy, either as a policy-level obligation or as a pre-condition duty on a Permission. This mixin sits at the Rule/Duty level, not the container level; the policy grouping, conflict strategy and inheritance belong to the policy model.", "source_refs": [ "SRC-001" ] }, { "neighbor": "Right / Entitlement model", "distinction": "A right is the reciprocal aspect of a commitment and is borne by a different party; LegalRuleML models a Right as a permission to a bearer that implies obligations on auxiliary parties. The correlative right is referenced, not duplicated, so that assignment of the right and transfer of the duty stay separable.", "source_refs": [ "SRC-003", "SRC-005" ] }, { "neighbor": "Prohibition", "distinction": "A prohibition is violated by performing the act, an obligation by failing to perform it. The modality and violation polarity are recorded here, but negative-duty enforcement semantics (remedy on infringement) differ from consequence semantics on unfulfilled duties and must not be collapsed.", "source_refs": [ "SRC-003", "SRC-001" ] }, { "neighbor": "Task / Work item model", "distinction": "A task is an execution artefact. Several tasks may contribute to discharging one obligation, and tasks exist with no obligation behind them. Progress measurement is carried here only as a discharge measure, not as work scheduling.", "source_refs": [ "SRC-006", "SRC-001" ] }, { "neighbor": "Liability / Provision (accounting)", "distinction": "IFRS 15 performance obligations are only promises to transfer distinct goods or services to a customer; obligations outside that definition fall to other standards. Recognition, measurement and presentation of the financial effect are out of scope and belong to a financial-reporting model.", "source_refs": [ "SRC-006" ] }, { "neighbor": "Constraint / Condition expression model", "distinction": "ODRL defines Constraint as leftOperand/operator/rightOperand and LogicalConstraint as and/or/xone/andSequence. This model references those expression structures and their operand vocabularies rather than redefining operators.", "source_refs": [ "SRC-001", "SRC-002" ] }, { "neighbor": "Compliance requirement register / control model", "distinction": "A compliance management system maintains a register of obligations the organisation must or voluntarily chooses to meet. That register is a collection-level and programme-level concern; this model describes one obligation entry and does not carry control design or assurance results.", "source_refs": [ "SRC-011" ] }, { "neighbor": "Definitional (alethic) business rules", "distinction": "SBVR separates alethic necessities, which cannot be violated even in principle, from deontic obligations, which may be violated although they ought not to be. Structural necessities must not be represented as obligations in this model.", "source_refs": [ "SRC-013" ] }, { "neighbor": "Provenance model", "distinction": "PROV-O supplies the entity/activity/agent vocabulary for how the obligation record came to be. This model aligns to it and carries the minimum provenance fields inline; the full provenance graph belongs to the provenance model.", "source_refs": [ "SRC-009" ] } ] }, "sources": [ { "id": "SRC-001", "title": "ODRL Information Model 2.2", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/odrl-model/", "version_or_date": "W3C Recommendation, 15 February 2018", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Normative definitions of Duty, Rule, Policy, Permission, Prohibition, Action, Constraint, LogicalConstraint, Party, Asset, target, assigner/assignee, consequence, remedy, duty fulfilment conditions, conflict strategy, and the Validator/Evaluator roles." }, { "id": "SRC-002", "title": "ODRL Vocabulary & Expression 2.2", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/odrl-vocab/", "version_or_date": "W3C Recommendation, 15 February 2018", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Controlled action terms usable as duties (compensate, obtainConsent, attribute, delete, inform, nextPolicy, acceptTracking), left operands (dateTime, elapsedTime, event, count, payAmount, recipient, purpose, spatial, industry), relational and set operators, and party function terms." }, { "id": "SRC-003", "title": "LegalRuleML Core Specification Version 1.0", "organization": "OASIS Open", "url": "https://docs.oasis-open.org/legalruleml/legalruleml-core-spec/v1.0/legalruleml-core-spec-v1.0.html", "version_or_date": "OASIS Standard, 30 August 2021", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Deontic Specification, Obligation, Prohibition, Permission, Right, Bearer, AuxiliaryParty, Violation, Compliance, PenaltyStatement, Reparation, PrescriptiveStatement, SuborderList, Temporal Characteristics (legal status and status development), Agent, Authority and Jurisdiction." }, { "id": "SRC-004", "title": "FIBO Foundations — Agreements/Contracts ontology", "organization": "EDM Council (Financial Industry Business Ontology)", "url": "https://spec.edmcouncil.org/fibo/ontology/FND/Agreements/Contracts.rdf", "version_or_date": "FIBO master/latest, retrieved 2026-08-23", "source_type": "ontology", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Definitions of contract, contractual element, contractual commitment (a provision specifying a promise or pledge by a party to perform an action or fulfil a duty), contract party, contractual definition, representation, warranty and termination provision." }, { "id": "SRC-005", "title": "FIBO Foundations — Agreements ontology", "organization": "EDM Council (Financial Industry Business Ontology)", "url": "https://spec.edmcouncil.org/fibo/ontology/FND/Agreements/Agreements.rdf", "version_or_date": "FIBO master/latest, retrieved 2026-08-23", "source_type": "ontology", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Definitions of agreement, bilateral/multilateral agreement, commitment (a promise to act or refrain), unilateral commitment, commitment at large, obligor, obligee, beneficiary and the hasObligation/isObligationOf property; establishes that commitments create reciprocal obligations and rights." }, { "id": "SRC-006", "title": "IFRS 15 Revenue from Contracts with Customers", "organization": "IFRS Foundation / International Accounting Standards Board", "url": "https://www.ifrs.org/issued-standards/list-of-standards/ifrs-15-revenue-from-contracts-with-customers/", "version_or_date": "Issued May 2014; effective 1 January 2018", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Definition of a performance obligation as a promise to transfer distinct goods or services, the five-step model, and satisfaction of an obligation over time versus at a point in time when control transfers; bounds the accounting sense of 'obligation' against the legal sense." }, { "id": "SRC-007", "title": "UNIDROIT Principles of International Commercial Contracts 2016", "organization": "International Institute for the Unification of Private Law (UNIDROIT)", "url": "https://www.unidroit.org/wp-content/uploads/2021/06/Unidroit-Principles-2016-English-bl.pdf", "version_or_date": "2016 edition", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Express and implied obligations (5.1.1), duty to achieve a specific result versus duty of best efforts (5.1.4-5.1.5), quality of performance (5.1.6), conditions including suspensive and resolutive and interference (5.3.1-5.3.5), time, partial performance, order, place, payment and currency of performance (6.1.1-6.1.9), hardship (6.2), non-performance and force majeure (7.1.1, 7.1.7), assignment of rights and transfer of obligations (Ch. 9), limitation periods (Ch. 10) and plurality of obligors and obligees (Ch. 11)." }, { "id": "SRC-008", "title": "RFC 3339: Date and Time on the Internet: Timestamps", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc3339", "version_or_date": "July 2002", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Normative date-time format with seconds and a mandatory Z or numeric +hh:mm/-hh:mm offset, leap-second handling, and the distinct meaning of -00:00 when the local offset is unknown; governs every timestamp in this model." }, { "id": "SRC-009", "title": "PROV-O: The PROV Ontology", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/prov-o/", "version_or_date": "W3C Recommendation, 30 April 2013", "source_type": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Entity, Activity and Agent with wasGeneratedBy, wasDerivedFrom, wasAttributedTo, wasAssociatedWith, actedOnBehalfOf, used, wasInformedBy, startedAtTime/endedAtTime and the qualified Attribution, Association and Delegation classes; the alignment target for obligation-record provenance and delegated responsibility." }, { "id": "SRC-010", "title": "Regulation (EU) 2016/679 (General Data Protection Regulation)", "organization": "European Union (EUR-Lex)", "url": "https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679", "version_or_date": "27 April 2016", "source_type": "legislation", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Article 6(1)(c) processing necessary for compliance with a legal obligation, Article 5(1)(e) storage limitation, Article 12(3) one-month response deadline as a worked example of a statutory obligation with a due period, Article 17 erasure with exceptions for legal obligations and for establishment, exercise or defence of legal claims, and Article 30 records of processing." }, { "id": "SRC-011", "title": "ISO 37301:2021 Compliance management systems — Requirements with guidance for use", "organization": "ISO/TC 309 Governance of organizations", "url": "https://committee.iso.org/sites/tc309/home/projects/published/iso-37301-compliance-management.html", "version_or_date": "Published 2021", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Committee-level scope statement for a Type A management-system standard covering establishment, implementation, evaluation and improvement of a compliance management system; used only to justify that obligations comprise both externally imposed requirements and voluntary commitments, and that they are maintained as a register. The normative clause text is paywalled and was not read." }, { "id": "SRC-012", "title": "Verifiable Credentials Data Model v2.0", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/vc-data-model-2.0/", "version_or_date": "W3C Recommendation, 15 May 2025", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "issuer, validFrom, validUntil, credentialSubject, credentialStatus, proof, evidence (how the issuer verified the claims) and termsOfUse; an alignment target for tamper-evident, revocable fulfilment evidence issued by a competent party." }, { "id": "SRC-013", "title": "Semantics of Business Vocabulary and Business Rules (SBVR)", "organization": "Object Management Group (OMG)", "url": "https://www.omg.org/spec/SBVR/", "version_or_date": "Version 1.5, December 2019", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Vocabulary and rules for documenting business vocabularies and business rules for exchange between organisations and tools; the basis for separating deontic obligations, which may be violated, from alethic necessities, which cannot." }, { "id": "SRC-014", "title": "Maintenance of Social Commitments in Multiagent Systems", "organization": "Association for the Advancement of Artificial Intelligence (AAAI) — Telang, Singh & Yorke-Smith", "url": "https://ojs.aaai.org/index.php/AAAI/article/view/17355", "version_or_date": "Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 35 No. 13, 2021", "source_type": "scientific", "primary_source": true, "authority_tier": 3, "accessed_at": "2026-08-23T12:00:00Z", "relevance": "Distinguishes achievement commitments, discharged by bringing about a condition, from maintenance commitments, in which an agent commits to keeping a state true; supplies rule-based operational semantics and the coherence relation between agent goals and social commitments." }, { "id": "SRC-015", "title": "LegalRuleML Core Specification Version 1.0", "organization": "OASIS", "url": "https://docs.oasis-open.org/legalruleml/legalruleml-core-spec/v1.0/os/legalruleml-core-spec-v1.0-os.html", "version_or_date": "OASIS Standard 30 August 2021", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:12:00Z", "relevance": "Normative legal Obligation as a deontic specification with Bearer, AuxiliaryParty, Violation, Compliance, Penalty, Reparation, temporal characteristics and prescriptive statements." }, { "id": "SRC-016", "title": "FIBO Foundations Agreements Ontology", "organization": "EDM Council / Object Management Group", "url": "https://raw.githubusercontent.com/edmcouncil/fibo/master/FND/Agreements/Agreements.rdf", "version_or_date": "versionIRI 20260601 (Release)", "source_type": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:20:00Z", "relevance": "Defines Agreement, Commitment, UnilateralCommitment, CommitmentAtLarge, Obligor, Obligee, Beneficiary and hasObligation, including time-bound conferral of commitments." }, { "id": "SRC-017", "title": "UNIDROIT Principles of International Commercial Contracts — Chapter 7 Section 1 Non-Performance in General", "organization": "International Institute for the Unification of Private Law (UNIDROIT)", "url": "https://www.unidroit.org/instruments/commercial-contracts/unidroit-principles-2010/chapter-7-section-1/", "version_or_date": "UNIDROIT Principles 2010 (Arts 7.1.1–7.1.5; substantively continued in 2016)", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:15:00Z", "relevance": "Defines non-performance including defective and late performance, interference, withholding, cure, additional period, and excused non-performance including force majeure." }, { "id": "SRC-018", "title": "IAS 37 Provisions, Contingent Liabilities and Contingent Assets", "organization": "IFRS Foundation / International Accounting Standards Board", "url": "https://www.ifrs.org/issued-standards/list-of-standards/ias-37-provisions-contingent-liabilities-and-contingent-assets/", "version_or_date": "Standard 2026 Issued (IAS 37 originally 1998; onerous-contract amendment May 2020)", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:22:00Z", "relevance": "Present legal or constructive obligation, probable outflow, reliable estimate, contingent liability, onerous contract and measurement of uncertain obligations." }, { "id": "SRC-019", "title": "eXtensible Access Control Markup Language (XACML) Version 3.0", "organization": "OASIS", "url": "https://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html", "version_or_date": "OASIS Standard Version 3.0", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:24:00Z", "relevance": "Defines Obligation as an operation specified in a rule, policy or policy set that should be performed by the PEP in conjunction with enforcing an authorization decision." }, { "id": "SRC-020", "title": "HL7 FHIR Obligation Codes and ObligationPolicy", "organization": "Health Level Seven International (HL7)", "url": "https://hl7.org/fhir/extensions/CodeSystem-obligation.html", "version_or_date": "Obligation Codes 5.2.0 (2025-02-10); ObligationPolicy active", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:05:00Z", "relevance": "Application and privacy-workflow obligations (SHALL/SHOULD/MAY; encrypt, anonymize) distinct from contractual duties; cites XACML and ISO 22600-2." }, { "id": "SRC-021", "title": "IFRS 15 Revenue from Contracts with Customers", "organization": "IFRS Foundation / International Accounting Standards Board", "url": "https://www.ifrs.org/content/dam/ifrs/publications/pdf-standards/english/2023/issued/part-a/ifrs-15-revenue-from-contracts-with-customers.pdf", "version_or_date": "IFRS 15 issued 2023 compilation (standard originally May 2014)", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-08-23T16:00:00Z", "relevance": "Identification of performance obligations as distinct promises and satisfaction by transfer of control over time or at a point in time; defers onerous testing to IAS 37." }, { "id": "SRC-022", "title": "Data Product Ontology (DPROD) Duty profile", "organization": "Enterprise Knowledge Graph Forum (EKGF)", "url": "https://ekgf.org/dprod/spec/develop", "version_or_date": "develop specification dated 2026-06-01", "source_type": "schema", "primary_source": false, "authority_tier": 3, "accessed_at": "2026-08-23T16:00:00Z", "relevance": "ODRL profile adding deadline, subjectOfDuty, objectOfDuty and dutyState vocabulary Pending/Active/Fulfilled/Violated; treated as emerging alignment, not W3C core." } ], "structure": { "bundles": [ { "id": "deontic-core", "name": "Deontic Core and Parties", "description": "What kind of duty this is, who it identifies, who bears it and to whom it is owed. This is the irreducible core that every host record mixing in WM-XCT-029 must populate.", "rationale": "ODRL, LegalRuleML and FIBO independently converge on the same minimum: a deontic modality, an action, a bearer/obligor and (usually) a counterparty. Everything else in the model refines this core, so it is isolated as bundle one and kept free of instrument- and process-specific content.", "source_refs": [ "SRC-001", "SRC-003", "SRC-005", "SRC-013" ], "layers": [ { "id": "identity-and-designation", "name": "Identity, Versioning and Designation", "description": "How one obligation is identified, versioned, and distinguished from the instrument that creates it and from the dated occurrences it generates.", "source_refs": [ "SRC-001", "SRC-003", "SRC-008" ], "findings": [ { "id": "obligation-identity", "name": "Obligation identity, versioning and occurrence distinction", "description": "An obligation record needs a stable identity that survives amendment, is distinct from the clause or article that created it, and is distinct from each dated occurrence of a recurring duty. ODRL requires an IRI uid on a Policy and permits one on each Rule; LegalRuleML identifies statements so that associations, temporal characteristics and penalties can be attached to them. The identity rule must also state what makes two records the same obligation, because obligation data is typically extracted from documents by more than one process.", "source_refs": [ "SRC-001", "SRC-003", "SRC-005" ], "questions": [ { "id": "q-master-identifier", "text": "Which system is the authoritative master for this obligation's identifier, and under which governed identifier scheme is it issued?", "kind": "identity", "answer_data": [ "Master-system reference", "Identifier scheme code or IRI namespace", "Identifier value" ] }, { "id": "q-standing-vs-occurrence", "text": "Does the identifier denote the standing obligation or one dated occurrence of a recurring duty?", "kind": "identity", "answer_data": [ "Identity granularity code (standing | occurrence)", "Parent standing-obligation reference", "Occurrence key" ] }, { "id": "q-amendment-identity", "text": "When the obligation is amended, is the same identity versioned or is a superseding obligation created and linked?", "kind": "provenance", "answer_data": [ "Versioning policy code", "Version label", "Supersedes/superseded-by references", "Amendment effective timestamp" ] }, { "id": "q-duplicate-rule", "text": "What deterministic rule decides that two extracted records describe the same obligation?", "kind": "validation", "answer_data": [ "Match key definition (source citation + obligor + action + due basis)", "Match confidence", "Merge or reject decision record" ] } ], "data_elements": [ { "id": "obligation-id", "name": "Obligation identifier", "description": "Stable identifier for the obligation, assigned per the identity priority rule.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "obligation-id-scheme", "name": "Identifier scheme", "description": "Governed scheme or IRI namespace under which the identifier was issued.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "identity-granularity", "name": "Identity granularity", "description": "Whether the record is the standing obligation or a single occurrence of it.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-007" ] }, { "id": "version-label", "name": "Version label", "description": "Version of the obligation record, distinct from the version of the source instrument.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "supersedes-ref", "name": "Supersedes reference", "description": "Reference to the obligation record this one replaces on amendment or novation.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "obligation-register-entry", "name": "Obligation register entry", "description": "The durable, retrievable record of one obligation as held in the adopting Dimension's obligation register, carrying identity, core deontic fields and pointers to source and evidence.", "media_or_form": [ "structured register record", "tabular register extract", "human-readable register page" ], "serial": false, "identity_strategy": "Authoritative master-system identifier where an obligation master exists; otherwise a governed IRI minted in the Dimension's obligation namespace; otherwise a UUID or ULID. The due date must never be used as the identifier.", "source_refs": [ "SRC-011", "SRC-001" ] } ], "inline_only_rationale": null } ] }, { "id": "deontic-classification", "name": "Deontic Modality and Obligation Typology", "description": "The modal character of the duty and the classification axes that change how it is evaluated, measured and enforced.", "source_refs": [ "SRC-001", "SRC-003", "SRC-006", "SRC-013", "SRC-014" ], "findings": [ { "id": "deontic-modality", "name": "Deontic modality and violability", "description": "The statement must be typed as an obligation, a prohibition, a permission or a right, because each has different violation conditions: LegalRuleML makes an obligation violated when the state or act is not achieved and a prohibition violated when it is achieved, and models a right as a permission to a bearer implying obligations on auxiliary parties. SBVR further separates deontic rules, which may be violated, from alethic necessities, which cannot; conflating them produces unenforceable or nonsensical obligation records.", "source_refs": [ "SRC-003", "SRC-013", "SRC-001" ], "questions": [ { "id": "q-modality", "text": "Which deontic modality does this statement carry, and which vocabulary term expresses it?", "kind": "classification", "answer_data": [ "Deontic modality code (obligation | prohibition | permission | right)", "Modality vocabulary IRI" ] }, { "id": "q-violability", "text": "Is the statement violable in principle, or is it a definitional necessity that cannot be breached?", "kind": "classification", "answer_data": [ "Violability class (deontic | alethic)", "Justification note", "Reviewer reference" ] }, { "id": "q-violation-polarity", "text": "Is violation triggered by omission of the action or by performance of it?", "kind": "constraint", "answer_data": [ "Violation trigger polarity code", "Linked action term" ] }, { "id": "q-correlative-right", "text": "Which correlative right does this commitment create, and which party holds it?", "kind": "relationship", "answer_data": [ "Correlative right reference", "Right-holder party reference", "Reciprocity assertion" ] } ], "data_elements": [ { "id": "deontic-modality-code", "name": "Deontic modality", "description": "Obligation, prohibition, permission or right, expressed as a governed code.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003" ] }, { "id": "violability-class", "name": "Violability class", "description": "Whether the rule is deontic (violable) or alethic (definitional).", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-013" ] }, { "id": "violation-polarity", "name": "Violation trigger polarity", "description": "Whether violation follows from omission or from performance.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003" ] }, { "id": "correlative-right-ref", "name": "Correlative right reference", "description": "Pointer to the reciprocal right created by this commitment.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-005", "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "Modality and violability are classification values evaluated with the obligation record itself and carried inline on it; the durable artefact is the obligation register entry and, where a contested classification is reviewed, the legal-basis citation record. Minting a separate modality artefact would fragment a single-valued field across two objects." }, { "id": "obligation-typology", "name": "Obligation typology: achievement, maintenance, result and effort", "description": "Several orthogonal axes change evaluation. Achievement commitments are discharged by bringing about a condition, whereas maintenance commitments require a state to be kept true over an interval. UNIDROIT separates a duty to achieve a specific result from a duty of best efforts and gives criteria for determining which applies. Obligations are also primary or secondary (arising from breach of another), and only a subset of promises meet the IFRS 15 test of a distinct performance obligation.", "source_refs": [ "SRC-014", "SRC-007", "SRC-006", "SRC-011" ], "questions": [ { "id": "q-achievement-maintenance", "text": "Is this an achievement obligation with a completion condition or a maintenance obligation over a state held across an interval?", "kind": "classification", "answer_data": [ "Obligation kind code", "Completion condition or maintained state expression", "Maintenance interval" ] }, { "id": "q-effort-standard", "text": "Is the obligor bound to achieve a specific result or only to exercise best efforts, and on what basis was that determined?", "kind": "classification", "answer_data": [ "Effort standard code", "Determination basis (express term, nature of obligation, risk allocation)", "Determining clause citation" ] }, { "id": "q-primary-secondary", "text": "Is this a primary obligation or a secondary obligation arising from breach of another?", "kind": "classification", "answer_data": [ "Primary/secondary code", "Antecedent obligation reference" ] }, { "id": "q-performance-obligation", "text": "Does this promise qualify as a distinct performance obligation for revenue-recognition purposes?", "kind": "decision", "answer_data": [ "Performance-obligation flag", "Distinctness assessment", "Assessor and assessment date" ] }, { "id": "q-obligation-origin-class", "text": "Is the obligation externally imposed or a commitment the organisation voluntarily set for itself?", "kind": "classification", "answer_data": [ "Origin class (external | voluntary)", "Compliance-obligation category" ] } ], "data_elements": [ { "id": "obligation-kind", "name": "Obligation kind", "description": "Achievement or maintenance character of the commitment.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-014" ] }, { "id": "effort-standard", "name": "Effort standard", "description": "Duty to achieve a specific result versus duty of best efforts.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-007" ] }, { "id": "primary-or-secondary", "name": "Primary or secondary obligation", "description": "Whether the obligation is original or remedial.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-007" ] }, { "id": "performance-obligation-flag", "name": "Performance obligation flag", "description": "Whether the promise is a distinct performance obligation under IFRS 15.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "compliance-obligation-category", "name": "Compliance obligation category", "description": "Externally imposed requirement or voluntary commitment, for register classification.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [ { "id": "obligation-taxonomy-map", "name": "Obligation classification scheme", "description": "Versioned scheme defining the permitted values and decision criteria for obligation kind, effort standard, primary/secondary and compliance category, with the evidence trail for each criterion.", "media_or_form": [ "controlled vocabulary release", "classification decision table", "published term list" ], "serial": false, "identity_strategy": "Governed IRI per term in the Dimension's obligation-vocabulary namespace, with a version identifier on the scheme release.", "source_refs": [ "SRC-007", "SRC-014", "SRC-011" ] } ], "inline_only_rationale": null } ] }, { "id": "party-roles", "name": "Bearer, Counterparty and Enforcement Roles", "description": "The party structure of a directed commitment: who is bound, who is owed, who benefits, who may enforce or release.", "source_refs": [ "SRC-003", "SRC-005", "SRC-001" ], "findings": [ { "id": "obligor-bearer", "name": "Obligor, capacity and delegated performance", "description": "FIBO defines the obligor as the party bound legally or by agreement to do or refrain from doing something; LegalRuleML calls this the Bearer. ODRL adds a hard constraint that the party obligated to perform a duty must have the ability to exercise the duty action. Accountability must be separated from performance: delegating execution to an agent or subcontractor does not by itself move the duty.", "source_refs": [ "SRC-005", "SRC-003", "SRC-001", "SRC-009" ], "questions": [ { "id": "q-bearer-identity", "text": "Which party bears the obligation, and under which authoritative party identifier is it recorded?", "kind": "identity", "answer_data": [ "Obligor party reference", "Party identifier scheme", "Role code (obligor / bearer)" ] }, { "id": "q-bearer-capacity", "text": "Does the bearer have the capability and legal capacity to exercise the obligated action?", "kind": "constraint", "answer_data": [ "Capacity assertion", "Capability evidence reference", "Assessment timestamp" ] }, { "id": "q-delegated-performance", "text": "Is performance delegated to another party, and does the bearer remain accountable for it?", "kind": "ownership", "answer_data": [ "Performing party reference", "Delegation record reference", "Accountability retained flag" ] }, { "id": "q-role-conflict", "text": "Can one party hold both obligor and obligee roles for the same obligation, and what validation prevents that?", "kind": "validation", "answer_data": [ "Role-disjointness rule", "Exception cases", "Validation outcome" ] } ], "data_elements": [ { "id": "obligor-ref", "name": "Obligor reference", "description": "Reference to the party or parties bound by the obligation.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-005", "SRC-003" ] }, { "id": "capacity-assertion", "name": "Capacity and capability assertion", "description": "Assertion that the bearer is able and legally competent to perform the obligated action.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "performing-party-ref", "name": "Performing party reference", "description": "Party actually carrying out performance where it differs from the bearer.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-009" ] }, { "id": "accountability-retained", "name": "Accountability retained flag", "description": "Whether the original bearer remains accountable despite delegated performance.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-009" ] } ], "artifacts": [ { "id": "party-role-assignment-record", "name": "Party role assignment record", "description": "Record binding party references to obligor, performing-party and accountable-party roles for one obligation, with the effective period of each assignment.", "media_or_form": [ "structured role assignment record", "signed appointment or delegation letter" ], "serial": false, "identity_strategy": "Composite of the obligation identifier and the party identifier plus the role code and effective-from timestamp; no independent identifier is minted.", "source_refs": [ "SRC-005", "SRC-009" ] } ], "inline_only_rationale": null }, { "id": "obligee-beneficiary", "name": "Obligee, beneficiary and enforcement authority", "description": "FIBO defines the obligee as the party to whom a commitment is owed and the beneficiary as the party that profits from it; the two can differ. FIBO also recognises a commitment at large made without direct involvement of the potential beneficiaries, which is why an identified obligee cannot be mandatory. ODRL expresses these roles as assigner and assignee function terms and allows a party collection refined by constraints. The right to enforce, waive or release must be recorded separately from the right to benefit.", "source_refs": [ "SRC-005", "SRC-001", "SRC-003" ], "questions": [ { "id": "q-obligee-identity", "text": "To whom is the obligation owed, and is that an identified party or a refined class of parties?", "kind": "identity", "answer_data": [ "Obligee party or party-collection reference", "Collection refinement expression", "Party function term" ] }, { "id": "q-beneficiary-distinct", "text": "Is there a beneficiary distinct from the obligee, and what does the beneficiary receive?", "kind": "relationship", "answer_data": [ "Beneficiary party reference", "Benefit description", "Third-party beneficiary flag" ] }, { "id": "q-directedness", "text": "Is this a directed commitment or a commitment at large with no identified beneficiary?", "kind": "classification", "answer_data": [ "Directedness code", "Rationale", "Publication or announcement reference" ] }, { "id": "q-enforcement-authority", "text": "Which party is entitled to enforce, waive or release this obligation, and may it do so unilaterally?", "kind": "authority", "answer_data": [ "Enforcing party reference", "Waiver/release authority code", "Unilateral action permitted flag" ] } ], "data_elements": [ { "id": "obligee-ref", "name": "Obligee reference", "description": "Party or party collection to whom the obligation is owed.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-005", "SRC-001" ] }, { "id": "obligee-collection-refinement", "name": "Obligee collection refinement", "description": "Constraint expression identifying the members of an obligee collection.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "beneficiary-ref", "name": "Beneficiary reference", "description": "Party receiving the benefit where distinct from the obligee.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-005" ] }, { "id": "directedness-code", "name": "Directedness", "description": "Whether the commitment is directed to identified parties or made at large.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-005" ] }, { "id": "enforcing-party-ref", "name": "Enforcing party reference", "description": "Party entitled to enforce, waive or release the obligation.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "Obligee, beneficiary and enforcing-party designations are reference data pointing into the sibling party model; the enforceable artefact that establishes them is the source instrument, already covered by the obligation source citation record. Creating a separate obligee artefact would duplicate party master data that this model explicitly excludes." } ] } ] }, { "id": "obligation-content", "name": "Obligated Content, Conditions and Standards", "description": "What must actually be done, on what subject matter, under what conditions, to what standard and in what quantity.", "rationale": "ODRL makes the Action mandatory on every Rule and gates duties through Constraints; UNIDROIT supplies the substantive determinants of content (implied terms, quality, place, currency, partial performance); IFRS 15 supplies the measure-of-progress machinery. These are grouped because they jointly answer 'what counts as doing it', which is the precondition for any fulfilment test.", "source_refs": [ "SRC-001", "SRC-002", "SRC-007", "SRC-006" ], "layers": [ { "id": "action-and-subject-matter", "name": "Obligated Action and Subject Matter", "description": "The controlled action or forbearance and the asset, sum, information or place it operates on.", "source_refs": [ "SRC-001", "SRC-002", "SRC-007" ], "findings": [ { "id": "obligated-action", "name": "Obligated action term, refinement and forbearance", "description": "ODRL requires exactly one Action on every Rule, requires every action term other than use and transfer to declare an includedIn parent reaching use or transfer transitively, and allows refinements that narrow the action, with a caution that refinement should not reduce the action to a null operation. LegalRuleML admits a state, an act or a course of action as the object of a deontic specification, which is what allows forbearances and standing conduct rules to be expressed.", "source_refs": [ "SRC-001", "SRC-002", "SRC-003" ], "questions": [ { "id": "q-action-term", "text": "What exactly must be done or forborne, expressed as a single controlled action term?", "kind": "definition", "answer_data": [ "Action term IRI", "Natural-language statement of the obligated behaviour", "Source clause wording" ] }, { "id": "q-action-vocabulary", "text": "Which action vocabulary governs the term, and to which broader action does it roll up?", "kind": "interoperability", "answer_data": [ "Action vocabulary or profile IRI", "includedIn parent term", "Top-level ancestor term" ] }, { "id": "q-action-refinement", "text": "What refinements narrow the action, and has the refined action been checked against becoming a null operation?", "kind": "constraint", "answer_data": [ "Refinement constraint set", "Null-operation check outcome", "Reviewer reference" ] }, { "id": "q-act-or-course", "text": "Is the obligated behaviour a single act, a course of action, or the maintenance of a state?", "kind": "classification", "answer_data": [ "Behaviour form code", "Interval or occurrence structure", "Linked obligation kind" ] } ], "data_elements": [ { "id": "action-term", "name": "Action term", "description": "Governed term naming the obligated action or forbearance.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-002" ] }, { "id": "action-vocabulary-ref", "name": "Action vocabulary reference", "description": "Profile or vocabulary that defines the action term and its hierarchy.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "action-refinement", "name": "Action refinement", "description": "Constraints narrowing the semantics of the action.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "action-narrative", "name": "Action narrative", "description": "Verbatim or paraphrased statement of the obligated behaviour from the source instrument.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "forbearance-flag", "name": "Forbearance flag", "description": "Whether the duty is to refrain rather than to act.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005", "SRC-003" ] } ], "artifacts": [ { "id": "obligated-action-statement", "name": "Statement of obligated action", "description": "The extracted clause, article or specification text that states what must be done, held alongside its controlled-term encoding so that the encoding remains auditable against the wording.", "media_or_form": [ "clause or article extract", "statement of work line item", "specification paragraph" ], "serial": false, "identity_strategy": "Governed citation identifier of the source instrument plus the clause or article locator; the extract carries no independent identity.", "source_refs": [ "SRC-004", "SRC-003" ] } ], "inline_only_rationale": null }, { "id": "subject-and-place", "name": "Target subject matter, place and currency of performance", "description": "ODRL binds rules to a target Asset, optionally an AssetCollection refined by constraints, and warns that refinement should not yield an empty set. UNIDROIT supplies the default place of performance, the payment rules and the currency rules where the parties are silent. Many statutory duties have no asset at all, so the target must be optional on a duty even though ODRL requires exactly one target on permissions and prohibitions.", "source_refs": [ "SRC-001", "SRC-007", "SRC-002" ], "questions": [ { "id": "q-target-subject", "text": "What asset, resource, information item or sum of money is the target of this obligation?", "kind": "composition", "answer_data": [ "Target reference", "Target type code", "Assertion that the obligation is target-free where none applies" ] }, { "id": "q-place-of-performance", "text": "Where must performance occur or be delivered, and is that place stated or defaulted?", "kind": "spatial", "answer_data": [ "Place-of-performance reference or description", "Stated-versus-default indicator", "Governing rule citation" ] }, { "id": "q-currency-and-payment", "text": "If the obligation is monetary, in what currency and by what mechanism must it be discharged?", "kind": "measurement", "answer_data": [ "Monetary amount", "Currency code", "Payment mechanism reference", "Conversion rule where currencies differ" ] }, { "id": "q-collection-non-empty", "text": "If the target is a collection, what refinement identifies its members and has the resulting set been checked as non-empty?", "kind": "validation", "answer_data": [ "Collection source reference", "Refinement expression", "Membership count at evaluation time" ] } ], "data_elements": [ { "id": "target-ref", "name": "Target reference", "description": "Asset, resource or item the obligated action applies to.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "target-collection-refinement", "name": "Target collection refinement", "description": "Constraint expression selecting the members of a target collection.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "performance-place", "name": "Place of performance", "description": "Location at which performance must occur or be delivered.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "monetary-amount", "name": "Monetary amount", "description": "Amount owed where the obligation is monetary.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-002" ] }, { "id": "currency-code", "name": "Currency", "description": "Currency in which a monetary obligation must be discharged.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "performance-delivery-schedule", "name": "Performance and delivery schedule", "description": "Schedule identifying, per obligation or occurrence, the target items, the place and mode of delivery, and any monetary amounts and currencies.", "media_or_form": [ "schedule annex to an instrument", "structured delivery plan", "tabular payment schedule" ], "serial": false, "identity_strategy": "Obligation identifier plus schedule line number; the schedule as a whole takes the identifier of the instrument annex it belongs to.", "source_refs": [ "SRC-007", "SRC-001" ] } ], "inline_only_rationale": null } ] }, { "id": "conditions-and-triggers", "name": "Conditions, Detachment and Constraint Expression", "description": "The conditional structure that makes a duty become due, lapse or never arise, and the formal expressions used to state it.", "source_refs": [ "SRC-007", "SRC-001", "SRC-003" ], "findings": [ { "id": "antecedent-and-detachment", "name": "Antecedent condition, detachment and interference", "description": "Most commitments are conditional: the duty exists but only becomes due when its antecedent holds. UNIDROIT distinguishes a suspensive condition, which delays effect, from a resolutive condition, which terminates it, imposes a duty to preserve the other party's rights while the condition is pending, and makes improper interference with the occurrence of a condition actionable. ODRL expresses the equivalent gate as constraints that must all be satisfied. Detachment is an observable event and must be timestamped and attributable.", "source_refs": [ "SRC-007", "SRC-001", "SRC-003" ], "questions": [ { "id": "q-antecedent", "text": "What antecedent must hold before the obligation becomes due, and is the condition suspensive or resolutive?", "kind": "constraint", "answer_data": [ "Antecedent expression", "Condition type code", "Effect on the obligation when satisfied" ] }, { "id": "q-detachment-evidence", "text": "What observable event or data proves the antecedent is satisfied, and which party asserts it?", "kind": "evidence", "answer_data": [ "Triggering event reference", "Asserting party reference", "Detachment timestamp with offset", "Evidence reference" ] }, { "id": "q-condition-interference", "text": "What follows if a party improperly prevents or brings about the occurrence of the condition?", "kind": "exception", "answer_data": [ "Interference finding", "Deemed-condition outcome", "Remedial obligation reference" ] }, { "id": "q-unconditional", "text": "Is the obligation unconditional, that is, is its antecedent constantly true?", "kind": "state", "answer_data": [ "Unconditional flag", "Antecedent default value", "Rationale" ] }, { "id": "q-pending-duties", "text": "What must each party do while the condition is still pending?", "kind": "requirement", "answer_data": [ "Preservation duties", "Restitution rule on failure of the condition", "Pending-period end timestamp" ] } ], "data_elements": [ { "id": "antecedent-expression", "name": "Antecedent expression", "description": "Formal expression of the condition that detaches the obligation.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-007" ] }, { "id": "condition-type", "name": "Condition type", "description": "Suspensive or resolutive character of the condition.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "detached-at", "name": "Detachment time", "description": "RFC 3339 instant at which the antecedent became satisfied.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-003" ] }, { "id": "detachment-evidence-ref", "name": "Detachment evidence reference", "description": "Evidence supporting the assertion that the antecedent was satisfied.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012" ] }, { "id": "interference-finding", "name": "Interference finding", "description": "Recorded determination that a party interfered with the occurrence of the condition.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "condition-evaluation-log", "name": "Condition evaluation log", "description": "Append-only log of each evaluation of an obligation's antecedent and constraints, recording the operand values observed, the outcome, the evaluator and both the event time and the observation time.", "media_or_form": [ "append-only evaluation log", "structured event stream record", "evaluation report extract" ], "serial": true, "identity_strategy": "Obligation identifier plus a monotonically increasing evaluation sequence number; each entry additionally carries the evaluating agent reference.", "source_refs": [ "SRC-001", "SRC-009", "SRC-008" ] } ], "inline_only_rationale": null }, { "id": "constraint-expression", "name": "Constraint and logical-constraint expression form", "description": "ODRL defines a Constraint as exactly one leftOperand, exactly one operator and either a rightOperand or a rightOperandReference, optionally with unit and dataType, and defines LogicalConstraint over existing constraints with the operands and, or, xone and andSequence, requiring order preservation for andSequence. Multiple constraints on the same rule are a conjunction. An obligation model that stores conditions as free text loses all of this and cannot be evaluated.", "source_refs": [ "SRC-001", "SRC-002" ], "questions": [ { "id": "q-constraint-form", "text": "How is each condition expressed as left operand, operator and right operand, with unit and datatype where needed?", "kind": "definition", "answer_data": [ "Left operand term", "Operator term", "Right operand value or reference", "Unit and datatype" ] }, { "id": "q-constraint-composition", "text": "How are multiple constraints combined: conjunction, disjunction, exclusive-one or ordered sequence?", "kind": "composition", "answer_data": [ "Logical operand kind", "Ordered member list where sequence matters", "Default conjunction assertion" ] }, { "id": "q-operand-vocabulary", "text": "Which operand and operator vocabulary is authoritative, and what must a processor do with terms it does not recognise?", "kind": "interoperability", "answer_data": [ "Profile identifier", "Unknown-term handling rule", "Processing-halt condition" ] }, { "id": "q-unsatisfiable", "text": "How is an unsatisfiable or self-contradictory constraint set detected before the obligation is activated?", "kind": "validation", "answer_data": [ "Consistency check method", "Detected conflicts", "Activation block decision" ] } ], "data_elements": [ { "id": "left-operand", "name": "Left operand", "description": "Governed term naming the quantity or attribute being constrained.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-001", "SRC-002" ] }, { "id": "constraint-operator", "name": "Operator", "description": "Relational or set operator applied between operands.", "value_kind": "code", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-001", "SRC-002" ] }, { "id": "right-operand", "name": "Right operand", "description": "Literal, IRI, term or list compared against the left operand, or a reference resolving to one.", "value_kind": "other", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "constraint-unit", "name": "Constraint unit", "description": "Unit of measure qualifying the operand values.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "logical-operand-kind", "name": "Logical operand kind", "description": "and, or, xone or andSequence combination over member constraints.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] } ], "artifacts": [], "inline_only_rationale": "Constraint expressions are inline structured expressions of the obligation record, evaluated in place; ODRL itself models them as nested nodes of a rule rather than as separately identified resources, and their durable output is already captured by the condition evaluation log. Materialising each constraint as an artefact would create identity for nodes the source standard leaves unidentified." } ] }, { "id": "standards-and-measurement", "name": "Performance Standard and Quantification", "description": "The quality bar the performance must meet and the quantity or progress by which discharge is measured.", "source_refs": [ "SRC-007", "SRC-006", "SRC-002" ], "findings": [ { "id": "performance-standard", "name": "Quality of performance and conformity assessment", "description": "Where an instrument does not fix quality, UNIDROIT requires performance of a quality that is reasonable and not less than average in the circumstances, so an obligation record must state whether the standard is express or defaulted. Practical obligations add thresholds, tolerances and a named conformity assessor. Note that this finding has only partial primary support: the service-level-objective structure normally used here derives from cloud SLA standards that could not be retrieved, so thresholds are modelled generically.", "source_refs": [ "SRC-007", "SRC-006" ], "questions": [ { "id": "q-quality-standard", "text": "What quality or service standard must the performance meet, and is that standard express or defaulted?", "kind": "quality", "answer_data": [ "Standard reference or description", "Express-versus-default indicator", "Governing clause citation" ] }, { "id": "q-tolerance", "text": "What threshold or tolerance separates conforming from non-conforming performance?", "kind": "measurement", "answer_data": [ "Threshold value and unit", "Tolerance band", "Measurement window" ] }, { "id": "q-conformity-assessor", "text": "Who determines conformity, and by what test or method?", "kind": "validation", "answer_data": [ "Assessor party reference", "Assessment method", "Assessment result and timestamp" ] }, { "id": "q-standard-change", "text": "When the referenced standard changes mid-life, does the new version apply to open occurrences?", "kind": "temporal", "answer_data": [ "Standard version reference", "Applicability rule for open occurrences", "Effective date of the change" ] } ], "data_elements": [ { "id": "performance-standard-ref", "name": "Performance standard reference", "description": "Reference to the quality or service standard the performance must meet.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "standard-source", "name": "Standard source", "description": "Whether the standard is expressly agreed, implied by law or defaulted to reasonableness.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "threshold-value", "name": "Threshold value", "description": "Numeric threshold or tolerance defining conformity.", "value_kind": "quantity", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "conformity-assessor-ref", "name": "Conformity assessor reference", "description": "Party competent to determine whether performance conforms.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "measurement-method", "name": "Measurement method", "description": "Test, sampling or calculation method used to assess conformity.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [ { "id": "acceptance-criteria-schedule", "name": "Acceptance criteria and service level schedule", "description": "Schedule stating, per obligation, the quality standard, thresholds, measurement method, measurement window and the party competent to assess conformity.", "media_or_form": [ "annex or schedule to an instrument", "structured service level table", "acceptance test specification" ], "serial": false, "identity_strategy": "Instrument annex identifier plus obligation identifier; individual criteria are addressed by criterion code within the schedule.", "source_refs": [ "SRC-007", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "quantification-and-progress", "name": "Quantity owed, partial performance and measure of progress", "description": "Discharge is often quantitative. UNIDROIT lets the obligee refuse a partial tender at the due time unless it has no legitimate interest in refusing, while IFRS 15 measures progress toward complete satisfaction of an obligation satisfied over time. ODRL supplies count and payAmount operands for quantity-based constraints. Outstanding balance must be derivable at any instant, which requires the fulfilled quantity to be recorded as an accumulation rather than a flag.", "source_refs": [ "SRC-007", "SRC-006", "SRC-002" ], "questions": [ { "id": "q-quantity-owed", "text": "What quantity, amount or count fully discharges this obligation?", "kind": "measurement", "answer_data": [ "Obligation quantity and unit", "Counting basis", "Rounding rule" ] }, { "id": "q-partial-performance", "text": "Is partial performance permitted at the due time, and does it proportionally reduce the outstanding amount?", "kind": "constraint", "answer_data": [ "Partial performance permitted flag", "Legitimate-interest-in-refusal assessment", "Reduction rule" ] }, { "id": "q-progress-method", "text": "By what method is progress toward complete satisfaction measured?", "kind": "process", "answer_data": [ "Progress method code (input or output based)", "Measurement inputs", "Progress percentage at the measurement instant" ] }, { "id": "q-outstanding-balance", "text": "What is the outstanding quantity at a given instant, and how is it recomputed after each contribution?", "kind": "state", "answer_data": [ "Fulfilled quantity to date", "Outstanding quantity", "Recomputation timestamp and trigger" ] } ], "data_elements": [ { "id": "obligation-quantity", "name": "Obligation quantity", "description": "Total quantity or amount required for complete discharge.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-002" ] }, { "id": "fulfilled-quantity", "name": "Fulfilled quantity", "description": "Cumulative quantity performed and accepted to date.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "outstanding-quantity", "name": "Outstanding quantity", "description": "Remaining quantity required, derived from obligation and fulfilled quantities.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "progress-method", "name": "Progress measurement method", "description": "Method used to measure progress toward complete satisfaction.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "partial-performance-allowed", "name": "Partial performance allowed", "description": "Whether a partial tender may be refused at the due time.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "progress-measurement-record", "name": "Progress measurement record", "description": "Dated record of measured progress or delivered quantity against one obligation, with the method applied, the inputs used and the resulting outstanding balance.", "media_or_form": [ "structured measurement record", "progress certificate", "meter or telemetry extract" ], "serial": true, "identity_strategy": "Obligation identifier plus measurement sequence number and measurement instant; where an external meter is the source, its reading identifier is retained as a cross-reference.", "source_refs": [ "SRC-006", "SRC-009" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "time-and-lifecycle", "name": "Temporal Structure and Lifecycle", "description": "When the duty bites, how often, for how long it remains enforceable, and the states it passes through.", "rationale": "LegalRuleML attaches temporal characteristics with legal status and status development to norms; UNIDROIT fixes time of performance and limitation; RFC 3339 fixes the representation. Time and state are grouped because state transitions are timestamped events and every state predicate in this model is time-indexed.", "source_refs": [ "SRC-003", "SRC-007", "SRC-008", "SRC-001" ], "layers": [ { "id": "due-time-and-recurrence", "name": "Due Time, Recurrence and Enforceability Window", "description": "The instant or window for performance, its repetition, the tolerances around it, and the outer bound of enforceability.", "source_refs": [ "SRC-007", "SRC-008", "SRC-010", "SRC-003" ], "findings": [ { "id": "due-time-and-window", "name": "Due instant, performance window and time basis", "description": "UNIDROIT distinguishes a fixed time, a period within which the obligor may choose the moment, and performance within a reasonable time where nothing is fixed; that distinction changes when non-performance can be declared and must be a first-class field, not implied by the presence or absence of a due date. RFC 3339 requires seconds and an explicit offset or Z, and gives -00:00 a distinct meaning when the local offset is unknown. Legal deadlines stated in local civil time must retain their timezone and business-day basis, since an early conversion to a UTC instant destroys the legal meaning.", "source_refs": [ "SRC-007", "SRC-008", "SRC-010" ], "questions": [ { "id": "q-due-instant", "text": "What is the due instant or performance window, expressed with seconds and an explicit offset or Z?", "kind": "temporal", "answer_data": [ "Due timestamp", "Window start and end timestamps", "Offset or Z designator" ] }, { "id": "q-time-basis", "text": "Is the time fixed, a period within which the obligor may choose, or an unspecified reasonable time?", "kind": "constraint", "answer_data": [ "Due basis code", "Period bounds", "Reasonableness determination note" ] }, { "id": "q-calendar-basis", "text": "Which time zone, calendar and business-day convention adjusts the nominal due date?", "kind": "interoperability", "answer_data": [ "Time zone identifier", "Calendar reference", "Business-day convention code" ] }, { "id": "q-derived-due", "text": "Where the deadline runs from a trigger event, what is the offset rule and from which event instant does it run?", "kind": "process", "answer_data": [ "Trigger event reference", "Offset duration", "Computed due timestamp and computation time" ] } ], "data_elements": [ { "id": "due-at", "name": "Due time", "description": "RFC 3339 instant by which performance must occur.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-007" ] }, { "id": "performance-window", "name": "Performance window", "description": "Start and end bounds of the period within which performance may be rendered.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "due-basis", "name": "Due basis", "description": "Fixed time, obligor-chosen period, reasonable time or event-derived.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-007" ] }, { "id": "time-zone-ref", "name": "Time zone reference", "description": "Time zone or civil-time locale in which the deadline is legally expressed.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008" ] }, { "id": "business-day-convention", "name": "Business-day convention", "description": "Rule adjusting a nominal due date that falls on a non-business day.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "derived-due-rule", "name": "Derived due rule", "description": "Offset rule computing the due time from a trigger event.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010" ] } ], "artifacts": [ { "id": "due-date-schedule", "name": "Due date schedule", "description": "Per-obligation schedule of nominal and adjusted due instants with their basis, time zone and business-day treatment, produced so that deadline computation is reproducible and reviewable.", "media_or_form": [ "structured schedule record", "calendar export", "tabular deadline listing" ], "serial": false, "identity_strategy": "Obligation identifier plus occurrence key; schedule releases carry a version identifier and a generation timestamp.", "source_refs": [ "SRC-008", "SRC-007" ] } ], "inline_only_rationale": null }, { "id": "recurrence-grace-notice", "name": "Recurrence, grace periods and notice requirements", "description": "Many commitments repeat on a rule rather than existing as one dated duty, so occurrences must be generated deterministically and remain individually addressable. Grace periods delay the declaration of non-performance without moving the due time. Notice duties are themselves obligations, often with their own lead times and recipients, and ODRL provides an inform action and informed-party function for exactly this shape. Amending a recurrence rule mid-life must not silently rewrite settled history.", "source_refs": [ "SRC-007", "SRC-002", "SRC-003" ], "questions": [ { "id": "q-recurrence-rule", "text": "Does the obligation recur, and by what deterministic rule are its occurrences generated?", "kind": "temporal", "answer_data": [ "Recurrence rule expression", "First and last occurrence bounds", "Generated occurrence keys" ] }, { "id": "q-grace-period", "text": "What grace period runs after the due time before non-performance may be declared?", "kind": "constraint", "answer_data": [ "Grace duration", "Grace start basis", "Effect of grace on remedies" ] }, { "id": "q-notice-requirement", "text": "What notice must be given, to whom, and how far in advance, before the obligation bites or is enforced?", "kind": "process", "answer_data": [ "Notice lead duration", "Notice recipient references", "Notice channel and form", "Notice action term" ] }, { "id": "q-recurrence-amendment", "text": "When the recurrence rule is amended, how are already generated and already settled occurrences treated?", "kind": "exception", "answer_data": [ "Amendment effective instant", "Regeneration policy", "List of preserved settled occurrences" ] } ], "data_elements": [ { "id": "recurrence-rule", "name": "Recurrence rule", "description": "Deterministic expression generating occurrences of a repeating obligation.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "occurrence-key", "name": "Occurrence key", "description": "Key identifying one generated occurrence of a recurring obligation.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "grace-duration", "name": "Grace duration", "description": "Period after the due time before non-performance may be declared.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "notice-lead-duration", "name": "Notice lead duration", "description": "Advance period by which required notice must precede the event it concerns.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "notice-recipient-ref", "name": "Notice recipient reference", "description": "Party or parties entitled to receive required notice.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002" ] } ], "artifacts": [ { "id": "occurrence-and-notice-schedule", "name": "Occurrence and notice schedule", "description": "Generated list of obligation occurrences with their due instants, grace expiry and the notices required before each, retained so that occurrence generation can be replayed and audited.", "media_or_form": [ "generated schedule record", "notification plan", "tabular occurrence listing" ], "serial": true, "identity_strategy": "Obligation identifier plus occurrence sequence number; the generating rule version and generation timestamp are recorded on every generated row.", "source_refs": [ "SRC-007", "SRC-009" ] } ], "inline_only_rationale": null }, { "id": "limitation-and-survival", "name": "Limitation periods, survival and enforceability", "description": "An obligation can be substantively owed yet no longer enforceable. UNIDROIT devotes a chapter to limitation periods, and LegalRuleML models temporal characteristics as pairs of time with a legal status and a status development, letting efficacy, applicability and enforceability be tracked separately. Survival after termination of the instrument is a distinct question from limitation. Both drive retention, since GDPR permits continued retention where necessary for the establishment, exercise or defence of legal claims.", "source_refs": [ "SRC-007", "SRC-003", "SRC-010" ], "questions": [ { "id": "q-limitation-period", "text": "For how long after the due time does the obligation remain legally enforceable, and under which law is that period fixed?", "kind": "temporal", "answer_data": [ "Limitation duration", "Limitation start basis", "Governing law reference" ] }, { "id": "q-survival", "text": "Does the obligation survive termination or expiry of the instrument that created it?", "kind": "lifecycle", "answer_data": [ "Survival flag", "Survival clause citation", "Survival end instant" ] }, { "id": "q-tolling", "text": "Which events suspend, interrupt or restart the limitation period?", "kind": "event", "answer_data": [ "Tolling event references", "Suspension start and end instants", "Recomputed enforceability end" ] }, { "id": "q-retention-justification", "text": "How does the enforceability window justify continued retention of the obligation and its evidence?", "kind": "retention", "answer_data": [ "Retention justification code", "Retention end instant", "Legal hold indicator" ] } ], "data_elements": [ { "id": "limitation-period", "name": "Limitation period", "description": "Period after which the obligation ceases to be enforceable.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "limitation-start-basis", "name": "Limitation start basis", "description": "Event from which the limitation period runs.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "survival-flag", "name": "Survival flag", "description": "Whether the obligation continues after the instrument ends.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "enforceability-end", "name": "Enforceability end", "description": "Instant after which enforcement is time-barred.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-008" ] }, { "id": "tolling-event-ref", "name": "Tolling event reference", "description": "Event suspending or restarting the limitation period.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "limitation-and-survival-determination", "name": "Limitation and survival determination", "description": "Reviewed determination recording the governing law, the applicable limitation period, any tolling events and whether the obligation survives termination, used as the retention justification for the obligation record.", "media_or_form": [ "legal determination memorandum", "structured determination record" ], "serial": false, "identity_strategy": "Obligation identifier plus determination date and determining party; superseded determinations are retained and linked rather than overwritten.", "source_refs": [ "SRC-007", "SRC-010" ] } ], "inline_only_rationale": null } ] }, { "id": "state-model", "name": "Lifecycle State Model", "description": "The permitted states of an obligation, the transitions between them and the timestamps that make the history reconstructible.", "source_refs": [ "SRC-001", "SRC-003", "SRC-014", "SRC-008" ], "findings": [ { "id": "lifecycle-state-machine", "name": "Obligation states, transitions and dual timestamps", "description": "An obligation moves through states that must be explicit rather than inferred: proposed, active but conditional, detached and due, in performance, partly fulfilled, fulfilled or discharged, breached, excused, waived or released, cancelled, transferred, expired and superseded. ODRL derives fulfilment from constraint satisfaction plus exercise of the refined action, and treats a duty as unfulfilled unless its consequences are also fulfilled; LegalRuleML makes Violation and Compliance explicit indications. Every transition needs both the instant the change legally took effect and the instant the system observed or ingested it, because these routinely differ for externally evidenced events. Maintenance commitments additionally need transient breach distinguished from terminal breach.", "source_refs": [ "SRC-001", "SRC-003", "SRC-014", "SRC-008" ], "questions": [ { "id": "q-state-set", "text": "Which states may this obligation occupy, and which transitions between them are permitted?", "kind": "lifecycle", "answer_data": [ "Enumerated state set", "Permitted transition matrix", "Terminal state list" ] }, { "id": "q-state-derivation", "text": "Is state derived by evaluating conditions and evidence, or asserted by an authorised party?", "kind": "decision", "answer_data": [ "State basis code (derived | asserted)", "Deriving rule or asserting party reference", "Precedence rule where they disagree" ] }, { "id": "q-dual-timestamps", "text": "How are the event time and the observation or ingestion time of each state change recorded separately?", "kind": "temporal", "answer_data": [ "State-entered-at timestamp", "State-observed-at timestamp", "Recording agent reference" ] }, { "id": "q-reopening", "text": "May an obligation return to an open state after being marked fulfilled, and on whose authority?", "kind": "exception", "answer_data": [ "Reopening permitted flag", "Authorising role", "Reopening reason code and timestamp" ] }, { "id": "q-transient-breach", "text": "For a maintenance obligation, how is a transient lapse distinguished from a terminal breach?", "kind": "state", "answer_data": [ "Lapse tolerance definition", "Cumulative lapse measure", "Terminal breach threshold" ] } ], "data_elements": [ { "id": "current-state", "name": "Current state", "description": "Governed state code the obligation currently occupies.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "state-entered-at", "name": "State entered at", "description": "RFC 3339 instant at which the state change legally took effect.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-008", "SRC-003" ] }, { "id": "state-observed-at", "name": "State observed at", "description": "RFC 3339 instant at which the state change was observed or ingested by the recording system.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-008", "SRC-009" ] }, { "id": "state-basis", "name": "State basis", "description": "Whether the state was derived by evaluation or asserted by a party.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "transition-history", "name": "Transition history", "description": "Ordered collection of prior state transitions with their timestamps, actors and reasons.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-009" ] }, { "id": "terminal-state-flag", "name": "Terminal state flag", "description": "Whether the current state closes the obligation to further transitions.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] } ], "artifacts": [ { "id": "state-transition-log", "name": "Obligation state transition log", "description": "Append-only log of every state change of an obligation, capturing prior and new state, event time, observation time, the acting agent, the triggering evidence and the rule or authority relied on.", "media_or_form": [ "append-only transition log", "event stream record", "audit report extract" ], "serial": true, "identity_strategy": "Obligation identifier plus a gapless, monotonically increasing transition sequence number; entries are never updated or deleted, only superseded by later entries.", "source_refs": [ "SRC-009", "SRC-003", "SRC-008" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "fulfilment-and-nonperformance", "name": "Fulfilment and Non-Performance", "description": "What discharges the duty and what happens when it is not discharged.", "rationale": "ODRL gives an operational fulfilment test and a consequence mechanism, LegalRuleML gives Violation, Compliance, PenaltyStatement and Reparation, and UNIDROIT gives the substantive law of non-performance, force majeure and hardship. Together they define the two outcomes an operating agent must be able to compute and defend.", "source_refs": [ "SRC-001", "SRC-003", "SRC-007", "SRC-012" ], "layers": [ { "id": "fulfilment-and-discharge", "name": "Fulfilment, Acceptance and Evidence", "description": "The test for complete discharge, the role of obligee acceptance, and the evidence that proves performance.", "source_refs": [ "SRC-001", "SRC-006", "SRC-012", "SRC-007" ], "findings": [ { "id": "fulfilment-and-acceptance", "name": "Fulfilment criteria, acceptance and discharge mode", "description": "ODRL states that a duty is fulfilled if all its constraints are satisfied and its action, with all refinements satisfied, has been exercised, and that where the action has not been exercised all consequences must be fulfilled instead. IFRS 15 ties satisfaction to transfer of control, either over time or at a point in time. Acceptance by the obligee is a separate step from performance and must not be conflated with it; discharge can also occur by substitute performance, set-off, waiver or release, each of which is a different discharge mode with different evidential needs.", "source_refs": [ "SRC-001", "SRC-006", "SRC-007" ], "questions": [ { "id": "q-fulfilment-test", "text": "What conjunction of conditions constitutes complete fulfilment of this obligation?", "kind": "definition", "answer_data": [ "Fulfilment criteria expression", "Constraint satisfaction status", "Action exercise evidence reference" ] }, { "id": "q-acceptance", "text": "Does discharge require obligee acceptance, and within what period may acceptance be withheld?", "kind": "process", "answer_data": [ "Acceptance required flag", "Acceptance period", "Accepting party reference", "Acceptance or rejection timestamp" ] }, { "id": "q-discharge-mode", "text": "By which mode was the obligation discharged: performance, substitute performance, set-off, waiver, release or expiry?", "kind": "classification", "answer_data": [ "Discharge mode code", "Supporting instrument reference", "Discharge timestamp" ] }, { "id": "q-control-transfer", "text": "When does control or benefit transfer, and does that instant determine discharge?", "kind": "event", "answer_data": [ "Control transfer instant", "Over-time versus point-in-time indicator", "Basis for the determination" ] } ], "data_elements": [ { "id": "fulfilment-criteria", "name": "Fulfilment criteria", "description": "Expression of the conditions that together constitute complete discharge.", "value_kind": "object", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "acceptance-required", "name": "Acceptance required", "description": "Whether obligee acceptance is a precondition of discharge.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-007" ] }, { "id": "accepted-at", "name": "Accepted at", "description": "Instant at which the obligee accepted performance.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-007" ] }, { "id": "discharge-mode", "name": "Discharge mode", "description": "Manner in which the obligation ceased to be owed.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007", "SRC-001" ] }, { "id": "discharged-at", "name": "Discharged at", "description": "Instant at which the obligation was fully discharged.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-006" ] } ], "artifacts": [ { "id": "acceptance-certificate", "name": "Acceptance or completion certificate", "description": "Issued record by which the obligee or a competent assessor accepts performance and confirms discharge, including the criteria assessed and any reservations.", "media_or_form": [ "signed certificate", "structured acceptance record", "countersigned completion notice" ], "serial": true, "identity_strategy": "Issuer-assigned certificate number within a governed series, cross-referenced to the obligation identifier and, where applicable, the occurrence key.", "source_refs": [ "SRC-007", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "fulfilment-evidence", "name": "Fulfilment evidence, integrity and revocation", "description": "An obligation record without evidence is an assertion, not a defensible fact. The Verifiable Credentials Data Model supplies the shape for competent, tamper-evident evidence: an issuer, a validity interval, a credential status for revocation or suspension, a proof and an explicit evidence property describing how the issuer verified the claims. PROV-O supplies attribution and the generating activity. Evidence must bind to the specific occurrence and quantity it discharges, and later revocation or correction must be able to reopen a settled state.", "source_refs": [ "SRC-012", "SRC-009", "SRC-001" ], "questions": [ { "id": "q-evidence-required", "text": "What evidence is required to demonstrate performance, and who is competent to issue it?", "kind": "evidence", "answer_data": [ "Required evidence type codes", "Competent issuer references", "Sufficiency rule" ] }, { "id": "q-evidence-integrity", "text": "How are the integrity and authenticity of fulfilment evidence verified?", "kind": "security", "answer_data": [ "Proof or signature reference", "Verification method", "Verification outcome and timestamp" ] }, { "id": "q-evidence-binding", "text": "How is each evidence item bound to the specific occurrence and quantity it discharges?", "kind": "relationship", "answer_data": [ "Occurrence key reference", "Quantity attributed to the evidence", "Binding assertion and actor" ] }, { "id": "q-evidence-revocation", "text": "What happens when evidence is later revoked, corrected or found insufficient?", "kind": "exception", "answer_data": [ "Evidence status value", "Reopening decision", "Corrected state and effective instant" ] } ], "data_elements": [ { "id": "evidence-ref", "name": "Evidence reference", "description": "Reference to an item of evidence supporting performance.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012" ] }, { "id": "evidence-type", "name": "Evidence type", "description": "Kind of evidence, such as receipt, attestation, telemetry or credential.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012" ] }, { "id": "evidence-issuer-ref", "name": "Evidence issuer reference", "description": "Party that issued and vouches for the evidence.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012", "SRC-009" ] }, { "id": "evidence-proof", "name": "Evidence integrity proof", "description": "Cryptographic proof or signature establishing authenticity and integrity.", "value_kind": "binary", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-012" ] }, { "id": "evidence-status", "name": "Evidence status", "description": "Current validity of the evidence, including revocation or suspension.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012" ] } ], "artifacts": [ { "id": "fulfilment-evidence-package", "name": "Fulfilment evidence package", "description": "Bounded set of evidence items supporting discharge of one obligation or occurrence, retained with issuer, validity interval, integrity proof and status so that discharge can be re-verified after the fact.", "media_or_form": [ "signed document set", "verifiable credential", "receipt or delivery confirmation", "sensor or telemetry record" ], "serial": false, "identity_strategy": "Issuer-assigned credential or document identifier where one exists; otherwise a Dimension-minted UUID or ULID for the package, always cross-referenced to the obligation identifier.", "source_refs": [ "SRC-012", "SRC-009" ] } ], "inline_only_rationale": null } ] }, { "id": "nonperformance-and-remedy", "name": "Non-Performance, Excuse and Remedy", "description": "Determining and declaring breach, the grounds that excuse it, and the secondary obligations it produces.", "source_refs": [ "SRC-007", "SRC-003", "SRC-001" ], "findings": [ { "id": "breach-determination", "name": "Non-performance determination and declaration", "description": "UNIDROIT treats non-performance as failure to perform any obligation, expressly including defective performance and late performance, so a model that records only a missed deadline is incomplete. LegalRuleML marks Violation as an explicit indication attached to a deontic specification, and Compliance as its counterpart. Who may declare breach, whether formal notice is required, whether the breach is fundamental, and how a contested determination is held pending resolution are all separate decisions that must be recorded rather than derived.", "source_refs": [ "SRC-007", "SRC-003", "SRC-001" ], "questions": [ { "id": "q-breach-form", "text": "What form does non-performance take here: non-delivery, defective performance, or lateness?", "kind": "definition", "answer_data": [ "Breach type code", "Deviation description", "Reference to the criterion not met" ] }, { "id": "q-breach-declaration", "text": "Who determines and declares breach, and is formal notice a precondition to remedies?", "kind": "authority", "answer_data": [ "Declaring party reference", "Notice requirement flag", "Notice reference and service timestamp" ] }, { "id": "q-materiality", "text": "Is the breach material or fundamental, and what threshold decides that?", "kind": "classification", "answer_data": [ "Materiality assessment", "Threshold or test applied", "Assessor and assessment timestamp" ] }, { "id": "q-disputed-breach", "text": "How is a disputed breach determination represented while it remains unresolved?", "kind": "state", "answer_data": [ "Dispute status code", "Positions of each party", "Provisional state and review date" ] } ], "data_elements": [ { "id": "breach-type", "name": "Breach type", "description": "Form of non-performance: non-delivery, defective, late or other.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "breach-declared-at", "name": "Breach declared at", "description": "Instant at which non-performance was formally declared.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-003" ] }, { "id": "declaring-party-ref", "name": "Declaring party reference", "description": "Party that determined and declared the non-performance.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "materiality-assessment", "name": "Materiality assessment", "description": "Recorded assessment of whether the breach is material or fundamental.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "dispute-status", "name": "Dispute status", "description": "Whether the breach determination is accepted, contested or under review.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] } ], "artifacts": [ { "id": "breach-notice", "name": "Breach or default notice", "description": "Formal notice served on the non-performing party stating the obligation, the failure, the evidence relied on and any cure period, retained with proof of service.", "media_or_form": [ "served legal notice", "signed letter", "structured notice record with delivery proof" ], "serial": true, "identity_strategy": "Issuer notice number within a governed series, cross-referenced to the obligation identifier and carrying an RFC 3339 service timestamp with explicit offset.", "source_refs": [ "SRC-007", "SRC-003" ] } ], "inline_only_rationale": null }, { "id": "excuse-remedy-consequence", "name": "Excuse grounds, cure periods and consequence obligations", "description": "UNIDROIT excuses non-performance for an impediment beyond the party's control under force majeure and provides a separate hardship regime for events fundamentally altering the equilibrium of performance. ODRL models the repercussions of not fulfilling a duty through the consequence property and the repercussions of infringing a prohibition through remedy, and expressly forbids a consequence duty from itself carrying a further consequence. LegalRuleML links a PenaltyStatement to a prescriptive statement through Reparation. Consequence and remedy duties are themselves obligations, so this model recurses onto itself.", "source_refs": [ "SRC-007", "SRC-001", "SRC-003" ], "questions": [ { "id": "q-excuse-grounds", "text": "What grounds excuse non-performance, and what notice and proof does an excuse require?", "kind": "exception", "answer_data": [ "Excuse ground code", "Notice requirement and deadline", "Evidence reference", "Effect on the obligation (suspended, extinguished, renegotiated)" ] }, { "id": "q-cure-period", "text": "Is there a cure period during which late performance still discharges the original obligation?", "kind": "constraint", "answer_data": [ "Cure duration", "Cure start basis", "Effect of cure on accrued remedies" ] }, { "id": "q-consequence-obligations", "text": "Which consequence or remedy obligations are triggered by non-fulfilment, and are they registered as obligations in their own right?", "kind": "composition", "answer_data": [ "Remedy obligation references", "Trigger condition", "Creation timestamp of the secondary obligation" ] }, { "id": "q-penalty-ceiling", "text": "What formula, cap or ceiling limits penalties and damages?", "kind": "measurement", "answer_data": [ "Penalty formula", "Cap amount and currency", "Accrual basis and period" ] }, { "id": "q-consequence-nesting", "text": "May a consequence obligation itself carry a further consequence, and how is that reconciled with the exchange format's prohibition on nesting?", "kind": "validation", "answer_data": [ "Nesting depth policy", "Flattening or linking strategy", "Recorded divergence from the exchange format" ] } ], "data_elements": [ { "id": "excuse-ground", "name": "Excuse ground", "description": "Recorded ground excusing non-performance, such as force majeure or hardship.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "cure-period", "name": "Cure period", "description": "Period during which performance still discharges the original obligation.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "remedy-obligation-ref", "name": "Remedy obligation reference", "description": "Reference to a consequence or remedy obligation created by non-fulfilment.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "penalty-formula", "name": "Penalty formula", "description": "Rule computing damages, interest or penalty amounts.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-007" ] }, { "id": "penalty-cap-amount", "name": "Penalty cap amount", "description": "Contractual or statutory ceiling on the amount payable.", "value_kind": "quantity", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "remedy-determination-record", "name": "Remedy and penalty determination record", "description": "Record of the remedies and penalties determined to apply following non-performance, the excuse grounds considered and rejected or accepted, the amounts computed and the secondary obligations created.", "media_or_form": [ "structured determination record", "settlement or waiver instrument", "penalty calculation statement" ], "serial": true, "identity_strategy": "Determination number within a governed series, linked to both the breached obligation identifier and the identifiers of any secondary obligations created.", "source_refs": [ "SRC-007", "SRC-003", "SRC-001" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "authority-and-governance", "name": "Authority, Provenance and Record Governance", "description": "What makes the obligation legitimate and defensible, who stewards the record, and how it is protected, audited and retained.", "rationale": "LegalRuleML makes Authority and Jurisdiction first-class, PROV-O supplies the record-provenance vocabulary, GDPR imposes concrete constraints on retaining obligation records containing personal data, and ISO 37301 frames the obligation register as a maintained management-system artefact. Without this bundle an obligation record cannot be relied on in a dispute.", "source_refs": [ "SRC-003", "SRC-009", "SRC-010", "SRC-011" ], "layers": [ { "id": "legal-basis-and-jurisdiction", "name": "Legal Basis, Authority and Jurisdiction", "description": "The instrument and authority that create the duty and the legal space in which it operates.", "source_refs": [ "SRC-003", "SRC-004", "SRC-010", "SRC-011" ], "findings": [ { "id": "source-and-authority", "name": "Source instrument, citation precision and issuing authority", "description": "Obligations arise from contracts, statutes and regulations, licences, court and administrative orders, internal policies and unilateral commitments. FIBO models the contractual commitment as a provision of a contract, so a contractual obligation must cite its clause, not merely its instrument. LegalRuleML defines an Authority as a person or organisation with power to create, endorse or enforce legal norms. ISO 37301 treats obligations as spanning externally imposed requirements and commitments the organisation adopts voluntarily, which changes who may amend or withdraw them.", "source_refs": [ "SRC-004", "SRC-003", "SRC-011", "SRC-010" ], "questions": [ { "id": "q-source-instrument", "text": "Which instrument creates this obligation, and at what clause or article-level citation?", "kind": "provenance", "answer_data": [ "Source instrument reference", "Clause or article locator", "Instrument version and date" ] }, { "id": "q-issuing-authority", "text": "Which authority issued or endorsed the norm, and does it have power to enforce it?", "kind": "authority", "answer_data": [ "Issuing authority reference", "Power to create, endorse or enforce", "Endorsement instrument" ] }, { "id": "q-external-or-voluntary", "text": "Is the obligation externally imposed or a commitment the organisation set for itself?", "kind": "classification", "answer_data": [ "Origin class", "Withdrawal authority", "Approval record reference" ] }, { "id": "q-source-change-propagation", "text": "How is an amendment to the source instrument propagated to obligation records derived from it?", "kind": "process", "answer_data": [ "Change detection method", "Impacted obligation list", "Re-derivation decision and timestamp" ] } ], "data_elements": [ { "id": "source-instrument-ref", "name": "Source instrument reference", "description": "Reference to the contract, statute, order, licence or policy creating the obligation.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-003" ] }, { "id": "source-citation", "name": "Source citation", "description": "Clause, article or paragraph-level locator within the source instrument.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-010" ] }, { "id": "source-kind", "name": "Source kind", "description": "Category of the creating instrument.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-003", "SRC-011" ] }, { "id": "issuing-authority-ref", "name": "Issuing authority reference", "description": "Authority that created, endorsed or enforces the norm.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "source-version", "name": "Source version", "description": "Version or consolidated-text date of the source instrument relied on.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010" ] } ], "artifacts": [ { "id": "source-citation-record", "name": "Obligation source citation record", "description": "Record binding an obligation to the exact instrument version and clause locator it derives from, with the extraction method and reviewer, so that the derivation can be re-checked against the authoritative text.", "media_or_form": [ "structured citation record", "annotated instrument extract", "register cross-reference table" ], "serial": false, "identity_strategy": "Obligation identifier plus source instrument identifier, instrument version and clause locator; the citation record has no independent identity.", "source_refs": [ "SRC-004", "SRC-010", "SRC-009" ] } ], "inline_only_rationale": null }, { "id": "jurisdiction-and-governing-law", "name": "Jurisdiction, governing law and applicability window", "description": "LegalRuleML defines Jurisdiction as a geographic area or subject matter over which an Authority applies its legal power, and models temporal characteristics with a legal status and status development, which is how efficacy, applicability and enforceability windows are kept distinct. The same factual duty can be governed by different law for different parties, and conflicting mandatory rules across jurisdictions must be recorded as a conflict rather than silently resolved.", "source_refs": [ "SRC-003", "SRC-007", "SRC-010" ], "questions": [ { "id": "q-governing-law", "text": "Which jurisdiction's law governs the obligation, and which forum resolves disputes about it?", "kind": "authority", "answer_data": [ "Governing law reference", "Forum or tribunal reference", "Choice-of-law clause citation" ] }, { "id": "q-jurisdiction-extent", "text": "Over what territory or subject matter does the issuing authority's power extend?", "kind": "spatial", "answer_data": [ "Jurisdiction codes", "Subject-matter scope", "Extraterritorial application note" ] }, { "id": "q-jurisdiction-conflict", "text": "Where two jurisdictions impose conflicting duties, which prevails and how is the conflict recorded?", "kind": "exception", "answer_data": [ "Conflicting obligation references", "Prevailing rule and basis", "Unresolved conflict flag" ] }, { "id": "q-applicability-window", "text": "During which period was the governing norm in force, applicable to this party, and enforceable?", "kind": "temporal", "answer_data": [ "In-force period", "Applicability period", "Enforceability period" ] } ], "data_elements": [ { "id": "governing-law-ref", "name": "Governing law reference", "description": "Legal system governing the obligation.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003", "SRC-007" ] }, { "id": "jurisdiction-code", "name": "Jurisdiction", "description": "Territorial or subject-matter jurisdiction of the issuing authority.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "forum-ref", "name": "Dispute forum reference", "description": "Court, tribunal or arbitral body competent to resolve disputes.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "applicability-period", "name": "Applicability period", "description": "Interval during which the norm applies to this bearer, distinct from its in-force period.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "jurisdiction-conflict-note", "name": "Jurisdiction conflict note", "description": "Recorded conflict between duties imposed by different jurisdictions.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003", "SRC-010" ] } ], "artifacts": [], "inline_only_rationale": "Governing law, jurisdiction and forum are reference values resolving into the legal-instrument and jurisdiction registries maintained by sibling models; the authoritative artefact is the choice-of-law clause in the source instrument, already addressed by the obligation source citation record. Minting a jurisdiction artefact here would create a competing copy of registry data this model excludes." } ] }, { "id": "stewardship-and-provenance", "name": "Stewardship, Accountability and Provenance", "description": "Who is answerable for the obligation record and how its history is proved.", "source_refs": [ "SRC-009", "SRC-011", "SRC-003" ], "findings": [ { "id": "ownership-and-accountability", "name": "Record ownership, monitoring duty and review cadence", "description": "A compliance management system keeps its obligations current and accessible to those who need them, which implies a named owner, a monitoring responsibility, a review cadence and an escalation route. These are distinct from the obligor: the party that owes the duty is often not the party that maintains the record about it. PROV-O's actedOnBehalfOf and qualified Delegation give the vocabulary for recording that separation without losing the chain of responsibility.", "source_refs": [ "SRC-011", "SRC-009", "SRC-003" ], "questions": [ { "id": "q-record-owner", "text": "Who owns this obligation record and is accountable for its accuracy and completeness?", "kind": "ownership", "answer_data": [ "Record owner reference", "Accountability statement", "Owner effective period" ] }, { "id": "q-monitoring-duty", "text": "Who monitors performance against this obligation and raises alerts before the due time?", "kind": "process", "answer_data": [ "Monitoring party reference", "Alert thresholds and lead times", "Alert channel" ] }, { "id": "q-review-cadence", "text": "How often is the record reviewed for currency, and who attests that it is current?", "kind": "quality", "answer_data": [ "Review cadence", "Last reviewed timestamp", "Attesting party reference" ] }, { "id": "q-escalation-path", "text": "What is the escalation path when the responsible party is absent, unresponsive or conflicted?", "kind": "exception", "answer_data": [ "Escalation sequence", "Trigger conditions", "Deputy or delegate references" ] } ], "data_elements": [ { "id": "record-owner-ref", "name": "Record owner reference", "description": "Party accountable for the accuracy of the obligation record.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-011", "SRC-009" ] }, { "id": "monitor-party-ref", "name": "Monitoring party reference", "description": "Party responsible for monitoring performance and raising alerts.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "review-cadence", "name": "Review cadence", "description": "Interval at which the record must be reviewed for currency.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "last-reviewed-at", "name": "Last reviewed at", "description": "Instant of the most recent currency review.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-011" ] }, { "id": "escalation-path", "name": "Escalation path", "description": "Ordered escalation route when the responsible party cannot act.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-009" ] } ], "artifacts": [ { "id": "ownership-and-review-record", "name": "Obligation ownership and review record", "description": "Record of the accountable owner, monitoring assignment, review cadence and each completed currency review of an obligation register entry.", "media_or_form": [ "structured stewardship record", "review sign-off log", "management review report extract" ], "serial": false, "identity_strategy": "Obligation identifier plus owner reference and effective-from timestamp; each review adds a dated entry rather than replacing the prior one.", "source_refs": [ "SRC-011", "SRC-009" ] } ], "inline_only_rationale": null }, { "id": "provenance-and-audit", "name": "Record provenance, derivation and tamper-evident audit trail", "description": "PROV-O supplies the minimum: which Agent the record is attributed to, which Activity generated it, which Entity it was derived from, and when that activity started and ended. For obligations extracted from documents by automated processes, the derivation link to the source clause is what makes the record contestable and correctable. Assertion time, event time and ingestion time must be kept apart, and the audit trail must be append-only if it is to be relied on after a dispute begins.", "source_refs": [ "SRC-009", "SRC-008", "SRC-010", "SRC-012" ], "questions": [ { "id": "q-generating-activity", "text": "Which agent and activity generated this obligation record, using which inputs, and when?", "kind": "provenance", "answer_data": [ "Generating activity reference", "Attributed agent reference", "Inputs used", "Activity start and end timestamps" ] }, { "id": "q-derivation-trace", "text": "How is a derived obligation traced back to the clause or rule it was extracted from, and with what confidence?", "kind": "evidence", "answer_data": [ "Derived-from references", "Extraction method and version", "Confidence score and human review status" ] }, { "id": "q-time-separation", "text": "How are assertion time, event time and ingestion time distinguished throughout the audit trail?", "kind": "temporal", "answer_data": [ "Assertion timestamp", "Event timestamp", "Ingestion timestamp", "Offset or Z designator on each" ] }, { "id": "q-tamper-evidence", "text": "Is the audit trail append-only and tamper-evident, and how is that demonstrated to a third party?", "kind": "security", "answer_data": [ "Append-only guarantee statement", "Integrity mechanism", "Independent verification method" ] } ], "data_elements": [ { "id": "generated-by-activity", "name": "Generating activity reference", "description": "Activity that produced or last modified the obligation record.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-009" ] }, { "id": "attributed-agent", "name": "Attributed agent reference", "description": "Agent to whom the obligation record is attributed.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-009" ] }, { "id": "derived-from-ref", "name": "Derived-from reference", "description": "Source entity, such as a clause or prior record, from which this record was derived.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-009" ] }, { "id": "record-created-at", "name": "Record created at", "description": "RFC 3339 instant at which the obligation record was created.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-008", "SRC-009" ] }, { "id": "record-ingested-at", "name": "Record ingested at", "description": "RFC 3339 instant at which the record entered this system, distinct from creation and event time.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-008", "SRC-009" ] }, { "id": "integrity-digest", "name": "Integrity digest", "description": "Digest or proof establishing that the record has not been altered since recording.", "value_kind": "binary", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-012" ] } ], "artifacts": [ { "id": "provenance-audit-trail", "name": "Provenance and change audit trail", "description": "Append-only trail of every creation, amendment, derivation and access decision affecting an obligation record, with agent, activity, inputs, reasons and separated event, assertion and ingestion timestamps.", "media_or_form": [ "append-only audit log", "provenance graph export", "exported audit report" ], "serial": true, "identity_strategy": "Obligation identifier plus a gapless audit sequence number; each entry carries an integrity digest chaining it to its predecessor.", "source_refs": [ "SRC-009", "SRC-008", "SRC-012" ] } ], "inline_only_rationale": null } ] }, { "id": "confidentiality-and-retention", "name": "Confidentiality, Access and Retention", "description": "Classification, lawful basis, retention and deletion of obligation records and their evidence.", "source_refs": [ "SRC-010", "SRC-007", "SRC-011" ], "findings": [ { "id": "access-and-retention", "name": "Confidentiality classification, personal data and retention", "description": "Obligation records routinely name individuals, so they attract data-protection constraints: storage limited to what is necessary, an identified lawful basis where processing is necessary for compliance with a legal obligation, and erasure rights that yield where retention is necessary for a legal obligation or for the establishment, exercise or defence of legal claims. Retention must therefore be justified by the enforceability window rather than set arbitrarily, and destruction must distinguish full deletion from tombstoning that preserves referential integrity.", "source_refs": [ "SRC-010", "SRC-007", "SRC-011" ], "questions": [ { "id": "q-confidentiality-class", "text": "What confidentiality classification applies, and who may read, amend, close or export the obligation?", "kind": "access", "answer_data": [ "Classification code", "Permitted role list per operation", "Export restriction" ] }, { "id": "q-personal-data", "text": "Does the record or its evidence contain personal data, and on what lawful basis is it processed?", "kind": "privacy", "answer_data": [ "Personal data flag", "Data categories present", "Lawful basis code" ] }, { "id": "q-retention-period", "text": "How long are the obligation record and its evidence retained after discharge, and on what justification?", "kind": "retention", "answer_data": [ "Retention period", "Retention trigger event", "Justification referencing the enforceability window" ] }, { "id": "q-erasure-vs-hold", "text": "How do erasure requests interact with legal holds and defence-of-claims retention?", "kind": "exception", "answer_data": [ "Legal hold flag and scope", "Erasure decision and reasoning", "Notification to the requester" ] }, { "id": "q-end-of-retention", "text": "At end of retention, what is destroyed and what is tombstoned to preserve referential integrity?", "kind": "decision", "answer_data": [ "Destruction scope", "Tombstone fields retained", "Destruction certificate reference" ] } ], "data_elements": [ { "id": "confidentiality-class", "name": "Confidentiality classification", "description": "Classification governing who may access the obligation record.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-010" ] }, { "id": "personal-data-flag", "name": "Personal data flag", "description": "Whether the record or its evidence contains personal data.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-010" ] }, { "id": "lawful-basis", "name": "Lawful basis", "description": "Basis relied on for processing personal data in the record.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010" ] }, { "id": "retention-period", "name": "Retention period", "description": "Period for which the record is retained after its retention trigger.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010", "SRC-007" ] }, { "id": "retention-trigger", "name": "Retention trigger", "description": "Event from which the retention period runs, such as discharge or end of enforceability.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "legal-hold-flag", "name": "Legal hold flag", "description": "Whether destruction is suspended because of an actual or anticipated claim.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010" ] } ], "artifacts": [ { "id": "retention-and-access-schedule", "name": "Retention and access schedule", "description": "Schedule stating, per obligation class, the confidentiality classification, permitted operations by role, retention trigger and period, legal hold rules and the end-of-retention destruction or tombstoning treatment.", "media_or_form": [ "records retention schedule", "access control matrix", "destruction certificate register" ], "serial": false, "identity_strategy": "Schedule identifier with a version and effective-from timestamp; individual rules are addressed by rule code within the version.", "source_refs": [ "SRC-010", "SRC-011" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "structure-and-interoperability", "name": "Structure, Transfer and Interoperability", "description": "How obligations relate to each other, how they move between parties, and how they map to external standards.", "rationale": "UNIDROIT devotes whole chapters to assignment, transfer and plurality, and prescribes the order and interdependence of performances; ODRL and LegalRuleML define the exchange forms this model must map to without overclaiming conformance. These concerns are separated because they operate on the obligation as a whole rather than on its content.", "source_refs": [ "SRC-007", "SRC-001", "SRC-003", "SRC-006" ], "layers": [ { "id": "composition-and-dependency", "name": "Composition and Dependency", "description": "Parent-child decomposition and interdependence between obligations.", "source_refs": [ "SRC-007", "SRC-006", "SRC-001" ], "findings": [ { "id": "finding-composition-and-dependency", "name": "Decomposition, order of performance and reciprocal dependency", "description": "UNIDROIT fixes the order of performance where obligations are interdependent, and IFRS 15 asks whether a promise is distinct or so integrated with others that it cannot stand alone; both are decomposition questions with operational consequences. A parent obligation discharged only when all children are discharged behaves differently from an obligation merely grouped with others for reporting. Reciprocal dependency, where each party's duty is conditional on the counterparty's, is a common source of deadlock and must be represented explicitly, along with a check against circular dependency.", "source_refs": [ "SRC-007", "SRC-006", "SRC-001" ], "questions": [ { "id": "q-decomposition", "text": "Is this obligation decomposed into sub-obligations, and does discharging all children discharge the parent?", "kind": "composition", "answer_data": [ "Parent and child references", "Roll-up discharge rule", "Partial-child treatment" ] }, { "id": "q-ordering", "text": "What ordering or interdependency exists between this obligation and the counterparty's obligations?", "kind": "relationship", "answer_data": [ "Dependency type code", "Performance order", "Simultaneity or withholding rights" ] }, { "id": "q-distinctness", "text": "Is the obligation distinct and separable, or so integrated with others that it cannot be performed alone?", "kind": "classification", "answer_data": [ "Distinctness assessment", "Integration rationale", "Bundled obligation references" ] }, { "id": "q-circularity", "text": "How are circular or self-referential dependencies detected and prevented before activation?", "kind": "validation", "answer_data": [ "Cycle detection method", "Detected cycles", "Resolution or activation block" ] } ], "data_elements": [ { "id": "parent-obligation-ref", "name": "Parent obligation reference", "description": "Obligation of which this one is a constituent part.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006", "SRC-004" ] }, { "id": "child-obligation-ref", "name": "Child obligation reference", "description": "Constituent sub-obligations of this obligation.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "dependency-type", "name": "Dependency type", "description": "Nature of dependency on another obligation, such as prerequisite, reciprocal or concurrent.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "performance-order", "name": "Performance order", "description": "Required sequence relative to interdependent obligations.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "distinctness-assessment", "name": "Distinctness assessment", "description": "Recorded assessment of whether the promise is distinct or integrated.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [ { "id": "obligation-dependency-map", "name": "Obligation dependency map", "description": "Graph of parent-child and dependency relations among obligations arising from one instrument or programme, with the cycle-detection result and the derived performance sequence.", "media_or_form": [ "dependency graph export", "structured relation table", "sequenced performance plan" ], "serial": false, "identity_strategy": "Instrument or programme identifier plus map version and generation timestamp; edges are keyed by the pair of obligation identifiers and the dependency type.", "source_refs": [ "SRC-007", "SRC-006" ] } ], "inline_only_rationale": null } ] }, { "id": "transfer-and-plurality", "name": "Transfer, Substitution and Plurality", "description": "Movement of the duty or its correlative right between parties, and multi-party structures on either side.", "source_refs": [ "SRC-007", "SRC-005", "SRC-001" ], "findings": [ { "id": "assignment-and-novation", "name": "Assignment of rights, transfer of duties and novation", "description": "UNIDROIT treats assignment of rights and transfer of obligations as separate regimes, alongside assignment of contracts as a whole; a right can usually be assigned more freely than a duty can be transferred, and transferring a duty raises whether the original obligor is released or remains bound. This directly determines identity continuity: a release-and-substitute novation is best modelled as a new obligation superseding the old, whereas a delegation of performance leaves identity intact. FIBO's commitment at large explains why some commitments are transferable as instruments in their own right.", "source_refs": [ "SRC-007", "SRC-005", "SRC-001" ], "questions": [ { "id": "q-right-assignment", "text": "May the correlative right be assigned, and does the obligor's consent or notice condition the assignment?", "kind": "authority", "answer_data": [ "Assignability of the right", "Consent or notice requirement", "Assignment effective instant" ] }, { "id": "q-duty-transfer", "text": "May the duty be transferred, and is the original obligor released or retained as guarantor?", "kind": "ownership", "answer_data": [ "Transferability flag", "Release indicator", "Guarantee or residual liability terms" ] }, { "id": "q-identity-continuity", "text": "On transfer or novation, does the obligation keep its identifier or does a successor obligation take over?", "kind": "identity", "answer_data": [ "Identity continuity rule applied", "Successor obligation reference", "Supersession link and effective instant" ] }, { "id": "q-transfer-evidence", "text": "What instrument evidences the transfer, and from which instant is it effective against each party?", "kind": "evidence", "answer_data": [ "Transfer instrument reference", "Effective instant per party", "Notice service evidence" ] } ], "data_elements": [ { "id": "transferability-flag", "name": "Transferability flag", "description": "Whether the right or duty may be transferred.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "transfer-type", "name": "Transfer type", "description": "Assignment of right, transfer of duty, delegation of performance or novation.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "transfer-effective-at", "name": "Transfer effective at", "description": "Instant from which the transfer takes effect.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008", "SRC-007" ] }, { "id": "original-obligor-released", "name": "Original obligor released", "description": "Whether the original obligor is discharged by the transfer.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "successor-obligation-ref", "name": "Successor obligation reference", "description": "Obligation record that continues the duty after a novation.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "assignment-or-novation-record", "name": "Assignment or novation record", "description": "Instrument-backed record of a transfer of a right or duty, naming the transferor, transferee, consenting parties, effective instant, release status and the identity continuity decision applied.", "media_or_form": [ "signed assignment or novation deed", "structured transfer record", "notice of assignment with proof of service" ], "serial": true, "identity_strategy": "Transfer instrument identifier where one exists, otherwise a governed series number, always linked to the predecessor and successor obligation identifiers.", "source_refs": [ "SRC-007", "SRC-005" ] } ], "inline_only_rationale": null }, { "id": "plurality-and-apportionment", "name": "Plurality of obligors and obligees, and apportionment", "description": "UNIDROIT devotes a chapter to plurality of obligors and obligees, which is where joint and several liability, divided shares, contribution between co-obligors and solidary obligees are settled. A model that stores a single obligor reference cannot express a syndicate, a consortium, a group of guarantors or a class of claimants, and cannot compute who may be pursued for how much. Apportionment must also carry a default rule for the common case where the instrument is silent.", "source_refs": [ "SRC-007", "SRC-005", "SRC-001" ], "questions": [ { "id": "q-liability-mode", "text": "Where several parties are bound, is liability joint and several or divided into shares?", "kind": "relationship", "answer_data": [ "Liability mode code", "Governing clause or default rule", "Per-obligor share where divided" ] }, { "id": "q-share-apportionment", "text": "How are shares apportioned, and what is the default when the instrument is silent?", "kind": "constraint", "answer_data": [ "Share allocation per party", "Apportionment basis", "Default rule citation" ] }, { "id": "q-full-demand-and-contribution", "text": "May the obligee demand full performance from any one obligor, and what contribution follows between co-obligors?", "kind": "process", "answer_data": [ "Full demand permitted flag", "Contribution entitlement", "Contribution claim references" ] }, { "id": "q-multiple-obligees", "text": "Where several obligees exist, may any of them demand full performance and give a valid discharge?", "kind": "authority", "answer_data": [ "Obligee solidarity mode", "Discharge validity rule", "Distribution obligation among obligees" ] } ], "data_elements": [ { "id": "liability-mode", "name": "Liability mode", "description": "Joint, several, joint and several, or divided liability among obligors.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "share-allocation", "name": "Share allocation", "description": "Per-party allocation of the obligation among co-obligors or co-obligees.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "default-share-rule", "name": "Default share rule", "description": "Rule applied to apportion shares where the instrument is silent.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "obligee-solidarity-mode", "name": "Obligee solidarity mode", "description": "Whether any single obligee may demand full performance and validly discharge the obligation.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-007" ] }, { "id": "contribution-claim-ref", "name": "Contribution claim reference", "description": "Claim by a performing co-obligor against the others for their shares.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007" ] } ], "artifacts": [ { "id": "liability-apportionment-schedule", "name": "Liability apportionment schedule", "description": "Schedule recording co-obligors and co-obligees, the liability mode, each party's share, the default rule applied where the instrument is silent, and contribution entitlements after performance.", "media_or_form": [ "schedule annex to an instrument", "structured apportionment table" ], "serial": false, "identity_strategy": "Obligation identifier plus party identifier and effective-from timestamp for each share row; the schedule version is recorded on every row.", "source_refs": [ "SRC-007" ] } ], "inline_only_rationale": null } ] }, { "id": "alignment-and-exchange", "name": "Standards Alignment and Exchange", "description": "Mapping to external obligation vocabularies, with recorded conflicts and honest conformance claims.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-006", "SRC-011" ], "findings": [ { "id": "standard-alignment", "name": "Crosswalk to external obligation vocabularies and recorded conflicts", "description": "This model must exchange with ODRL Duty, LegalRuleML Obligation and PenaltyStatement, FIBO contractual commitment, IFRS 15 performance obligation and compliance-obligation registers, but the mappings are not clean. ODRL binds permissions and prohibitions to exactly one target Asset, which does not fit duties with no asset; ODRL forbids a consequence duty from carrying its own consequence, whereas escalation chains in law are open-ended; ODRL requires a processor to stop when it does not recognise a profile identifier; and the IFRS 15 sense of obligation is far narrower than the legal sense. Each divergence must be recorded as a conflict, not resolved silently, and conformance must never be claimed without evidence of validation.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-006", "SRC-011" ], "questions": [ { "id": "q-term-mapping", "text": "To which external term does each element map, and is the mapping exact, broader, narrower or merely related?", "kind": "interoperability", "answer_data": [ "Target term IRI", "Mapping relation code", "Mapping justification and reviewer" ] }, { "id": "q-mapping-violations", "text": "Which constraints of the target vocabulary does the mapping violate, such as required targets or consequence nesting limits?", "kind": "constraint", "answer_data": [ "Violated constraint list", "Affected elements", "Mitigation or explicit divergence note" ] }, { "id": "q-conflict-strategy", "text": "Which conflict-resolution strategy applies when a permission and a prohibition on the same action collide?", "kind": "decision", "answer_data": [ "Conflict strategy code", "Default strategy where unspecified", "Resulting validity of the policy" ] }, { "id": "q-conformance-claim", "text": "What is asserted as formal conformance rather than mere alignment, and what validation evidence supports it?", "kind": "evidence", "answer_data": [ "Conformance claim scope", "Validator used and its version", "Validation report reference and date" ] }, { "id": "q-profile-identification", "text": "Which profile identifiers must a consuming processor recognise, and what must it do when it does not?", "kind": "interoperability", "answer_data": [ "Profile IRIs", "Unrecognised-profile handling rule", "Processing halt condition" ] } ], "data_elements": [ { "id": "alignment-target-term", "name": "Alignment target term", "description": "External vocabulary term to which a model element is mapped.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "mapping-relation", "name": "Mapping relation", "description": "Exact, broader, narrower or related character of the mapping.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "conformance-claim", "name": "Conformance claim", "description": "Scope of any formal conformance asserted, or an explicit statement that only alignment is claimed.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "validation-report-ref", "name": "Validation report reference", "description": "Evidence produced by a validator supporting a conformance claim.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "known-conflict", "name": "Known conflict", "description": "Recorded divergence between this model and a target vocabulary.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-006" ] } ], "artifacts": [ { "id": "alignment-crosswalk-table", "name": "Alignment crosswalk table", "description": "Versioned table mapping each element of this model to terms in ODRL, LegalRuleML, FIBO, IFRS 15 and compliance-obligation registers, with the mapping relation, the supporting citation and the recorded conflicts.", "media_or_form": [ "structured crosswalk table", "published mapping document", "machine-readable mapping set" ], "serial": false, "identity_strategy": "Crosswalk identifier with a version and the pinned versions of every target vocabulary; each row is keyed by source element identifier plus target term IRI.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "external-obligation-sense-alignment", "name": "Access, retention and interoperability mappings", "description": "XACML obligations must be fulfilled by the PEP in conjunction with the authorization decision and are identified with attribute assignments. HL7 ObligationPolicy conveys mandated workflow such as encrypt, citing XACML and ISO 22600-2. FHIR Obligation codes express SHALL/SHOULD/MAY handling of content and must not be treated as legal duties. Obligation records contain party and commercial data, so default access is restricted to role-holders, evaluators and auditors. Retention after discharge is a Dimension policy; legal holds are exceptions. Interoperability is by alignment maps, not by claiming dual conformance.", "source_refs": [ "SRC-019", "SRC-020", "SRC-001" ], "questions": [ { "id": "external-obligation-sense-alignment-q01", "text": "Who may read, create, update or delete this obligation record, at bundle, layer, finding and artefact scope, and which PEP obligations apply when access is decided?", "kind": "access", "answer_data": [ "access-scope", "permitted-roles", "xacml-obligation-ids" ] }, { "id": "external-obligation-sense-alignment-q02", "text": "If this instance is an access-control obligation, what ObligationId and attribute assignments must the PEP fulfil with the decision, and what happens if it cannot?", "kind": "security", "answer_data": [ "xacml-obligation-id", "attribute-assignments", "fulfil-with-decision-flag" ] }, { "id": "external-obligation-sense-alignment-q03", "text": "How long is the obligation record and its evidence retained after discharge, fulfilment or waiver, and is a legal hold or statutory retention in force?", "kind": "retention", "answer_data": [ "retention-period", "legal-hold-flag", "purge-eligible-at" ] }, { "id": "external-obligation-sense-alignment-q04", "text": "Which external classes is this instance aligned to (ODRL Duty, LegalRuleML Obligation, FIBO Commitment, IAS 37 provision, IFRS 15 PO, XACML Obligation, FHIR Obligation), and which conflicts are declared rather than hidden?", "kind": "interoperability", "answer_data": [ "alignment-targets", "declared-conflicts", "conformance-claimed-flag" ] }, { "id": "external-obligation-sense-alignment-q05", "text": "Does the record contain personal data of parties such that privacy obligations (including HL7 anonymize/encrypt workflow) attach to storage and sharing?", "kind": "privacy", "answer_data": [ "contains-personal-data-flag", "privacy-obligation-refs", "masking-required-flag" ] } ], "data_elements": [ { "id": "external-obligation-sense-alignment-data01", "name": "Access scope", "description": "Granted scopes among bundle, layer, finding and artefact.", "value_kind": "collection", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-019" ] }, { "id": "external-obligation-sense-alignment-data02", "name": "XACML ObligationId", "description": "Identifier of a PEP obligation attached to an authorization decision.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-019" ] }, { "id": "external-obligation-sense-alignment-data03", "name": "Retention period", "description": "Duration or end time for keeping the record after terminal state.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-020" ] }, { "id": "external-obligation-sense-alignment-data04", "name": "Legal hold", "description": "True when deletion is suspended.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] }, { "id": "external-obligation-sense-alignment-data05", "name": "Alignment targets", "description": "External classes this instance is mapped to, without implied conformance.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-015", "SRC-016", "SRC-019" ] }, { "id": "external-obligation-sense-alignment-data06", "name": "Conformance claimed", "description": "True only when a validator has evidence of conformance to a named profile.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] } ], "artifacts": [ { "id": "external-obligation-sense-alignment-artifact01", "name": "Authorization decision with obligations", "description": "XACML or equivalent decision response carrying Obligation elements to be fulfilled by the PEP.", "media_or_form": [ "application/xacml+xml", "application/json", "application/xml" ], "serial": true, "identity_strategy": "Decision identifier from the PDP; ObligationId values retained as child identifiers; Dimension UUID if the PDP id is absent.", "source_refs": [ "SRC-019", "SRC-020" ] } ], "inline_only_rationale": null } ] } ] } ] }, "functions": [ { "id": "register-obligation", "name": "Register obligation", "description": "Create an obligation record from a source instrument clause, statutory article, order or voluntary commitment, populating the deontic core and the source citation.", "inputs": [ "Source instrument reference and clause locator", "Deontic modality and action term", "Obligor and, where directed, obligee references", "Due basis and conditions" ], "outputs": [ "Obligation register entry with an assigned identifier", "Source citation record", "Provenance entry for the creating activity" ], "preconditions": [ "The source instrument version is resolvable and its clause locator is valid", "The action term resolves in a declared action vocabulary", "The obligor reference resolves in the party model" ], "effects": [ "A new obligation identity exists in the register", "The obligation enters the proposed or active state with both event and ingestion timestamps recorded" ], "source_refs": [ "SRC-004", "SRC-001", "SRC-011", "SRC-009" ] }, { "id": "classify-obligation", "name": "Classify obligation", "description": "Assign modality, violability, achievement or maintenance kind, effort standard, primary or secondary status and compliance category, with the criteria applied.", "inputs": [ "Obligation record", "Classification scheme version", "Clause wording and determination criteria" ], "outputs": [ "Populated classification fields", "Classification decision trace" ], "preconditions": [ "The classification scheme version is published and effective", "The obligated action is stated" ], "effects": [ "Downstream evaluation and measurement rules are selected by the assigned classes", "Alethic statements are rejected from the obligation register" ], "source_refs": [ "SRC-013", "SRC-007", "SRC-014", "SRC-006" ] }, { "id": "evaluate-antecedent", "name": "Evaluate antecedent and detach", "description": "Evaluate the obligation's antecedent and constraint set against observed operand values and, when satisfied, detach the obligation so that it becomes due.", "inputs": [ "Constraint and logical-constraint expressions", "Observed operand values with their observation times", "Evaluation instant" ], "outputs": [ "Satisfaction outcome per constraint", "Detachment decision and timestamp", "Condition evaluation log entry" ], "preconditions": [ "All left operands resolve in a recognised profile", "The evaluator recognises every declared profile identifier" ], "effects": [ "The obligation transitions to detached or remains conditional", "A durable, replayable evaluation record is appended" ], "source_refs": [ "SRC-001", "SRC-002", "SRC-007" ] }, { "id": "compute-due-schedule", "name": "Compute due schedule", "description": "Derive due instants and performance windows from the due basis, recurrence rule, time zone, business-day convention and any trigger events.", "inputs": [ "Due basis and stated times", "Recurrence rule and bounds", "Time zone, calendar and business-day convention", "Trigger event instants" ], "outputs": [ "Due date schedule with nominal and adjusted instants", "Generated occurrence keys", "Grace expiry instants" ], "preconditions": [ "The calendar and business-day convention references resolve", "Every input instant carries an explicit offset or Z" ], "effects": [ "Occurrences become individually addressable and monitorable", "Deadline computation becomes reproducible from recorded inputs" ], "source_refs": [ "SRC-007", "SRC-008", "SRC-010" ] }, { "id": "evaluate-fulfilment", "name": "Evaluate fulfilment", "description": "Determine whether the obligation is fulfilled by testing constraint satisfaction and exercise of the refined action, accounting for quantity, acceptance and any consequence duties.", "inputs": [ "Fulfilment criteria", "Performance and progress records", "Acceptance record where required", "Consequence duty states" ], "outputs": [ "Fulfilment determination", "Outstanding quantity", "State transition proposal" ], "preconditions": [ "Evidence supporting exercise of the action is present and unrevoked", "Acceptance has been given or is not required" ], "effects": [ "The obligation transitions toward fulfilled, partly fulfilled or unchanged", "Outstanding balances are recomputed" ], "source_refs": [ "SRC-001", "SRC-006", "SRC-007" ] }, { "id": "record-fulfilment-evidence", "name": "Record fulfilment evidence", "description": "Attach evidence of performance to an obligation or occurrence with its issuer, validity interval, integrity proof and status, and bind it to the quantity it discharges.", "inputs": [ "Evidence item and its issuer", "Integrity proof", "Obligation or occurrence key", "Quantity attributed" ], "outputs": [ "Fulfilment evidence package entry", "Verification outcome", "Provenance attribution" ], "preconditions": [ "The issuer is recognised as competent for this evidence type", "The integrity proof verifies against the evidence" ], "effects": [ "Discharge becomes independently re-verifiable", "Later revocation of the evidence can reopen the determination" ], "source_refs": [ "SRC-012", "SRC-009" ] }, { "id": "declare-non-performance", "name": "Declare non-performance", "description": "Determine and formally declare non-performance after the due time and grace period, classify it, assess materiality and serve any required notice.", "inputs": [ "Obligation state and due schedule", "Grace expiry", "Evidence of failure, defect or lateness", "Notice requirements" ], "outputs": [ "Breach determination record", "Breach or default notice with proof of service", "State transition to breached" ], "preconditions": [ "The grace period has expired without discharge", "No accepted excuse ground is in force", "The declaring party is authorised" ], "effects": [ "Consequence and remedy obligations become eligible for creation", "The dispute status field becomes available for contestation" ], "source_refs": [ "SRC-007", "SRC-003", "SRC-001" ] }, { "id": "apply-remedy", "name": "Apply remedy or penalty", "description": "Create the consequence, remedy or penalty obligations triggered by non-fulfilment or infringement, compute amounts against the formula and cap, and link them to the breached obligation.", "inputs": [ "Breach determination", "Consequence and remedy definitions", "Penalty formula, cap and accrual basis", "Excuse determinations" ], "outputs": [ "Secondary obligation records", "Remedy and penalty determination record", "Links from the breached obligation to its consequences" ], "preconditions": [ "Breach has been declared and any cure period has expired", "The consequence definition does not itself carry a further consequence in the exchange projection" ], "effects": [ "Secondary obligations enter the register with their own lifecycles", "The original obligation remains open until both it and its consequences are fulfilled" ], "source_refs": [ "SRC-001", "SRC-003", "SRC-007" ] }, { "id": "transfer-obligation", "name": "Transfer obligation or assign right", "description": "Record assignment of the correlative right, transfer of the duty, delegation of performance or novation, applying the identity continuity rule and any release of the original obligor.", "inputs": [ "Transfer instrument", "Transferor, transferee and consenting parties", "Effective instant", "Release and guarantee terms" ], "outputs": [ "Assignment or novation record", "Updated or successor obligation record", "Supersession links" ], "preconditions": [ "The right or duty is transferable under the governing instrument", "Any required consent or notice has been obtained and evidenced" ], "effects": [ "Party roles change from the effective instant", "Identity is preserved for delegation and replaced for release-and-substitute novation" ], "source_refs": [ "SRC-007", "SRC-005" ] }, { "id": "transition-state", "name": "Transition obligation state", "description": "Apply a permitted state transition, recording the prior and new state, the basis, the acting agent, the event time and the observation time.", "inputs": [ "Current state and proposed target state", "Transition basis and triggering evidence", "Acting agent reference" ], "outputs": [ "State transition log entry", "Updated current state and terminal flag" ], "preconditions": [ "The transition is permitted by the declared transition matrix", "The acting agent holds the required authority for asserted transitions" ], "effects": [ "The obligation history remains reconstructible at any past instant", "Terminal states block further transitions except authorised reopening" ], "source_refs": [ "SRC-003", "SRC-001", "SRC-008", "SRC-009" ] }, { "id": "report-obligation-register", "name": "Report obligation register", "description": "Produce a filtered, access-controlled view of obligations by owner, state, due window, jurisdiction or source, for monitoring, management review and assurance.", "inputs": [ "Selection criteria", "Requesting role and access scope", "Reporting instant" ], "outputs": [ "Register report with per-row provenance", "Access decision audit entries" ], "preconditions": [ "The requester holds read access at the requested scope", "Confidentiality classifications are resolved for every selected row" ], "effects": [ "Register currency and coverage become measurable", "Every disclosure is auditable" ], "source_refs": [ "SRC-011", "SRC-010", "SRC-009" ] }, { "id": "apply-retention", "name": "Apply retention and close", "description": "Evaluate the retention trigger, enforceability window and legal holds, then archive, tombstone or destroy the obligation record and its evidence, certifying the outcome.", "inputs": [ "Discharge or enforceability end instant", "Retention schedule rule", "Legal hold status", "Personal data flags" ], "outputs": [ "Retention decision record", "Destruction certificate or tombstone record" ], "preconditions": [ "No legal hold is in force", "Retention justification has been reviewed against the limitation determination" ], "effects": [ "Records are removed or reduced to tombstones while referential integrity is preserved", "Data-protection storage limitation is demonstrably observed" ], "source_refs": [ "SRC-010", "SRC-007", "SRC-011" ] }, { "id": "offer-cure-or-additional-period", "name": "Offer cure or grant additional period", "description": "Apply UNIDROIT 7.1.4 cure or 7.1.5 additional period, suspending inconsistent remedies until the period expires.", "inputs": [ "obligation instance", "notice of cure or additional period", "proposed manner and timing" ], "outputs": [ "cure window", "suspended-remedy flags" ], "preconditions": [ "non-performance has occurred", "cure is appropriate and notice is timely" ], "effects": [ "inconsistent remedies suspended until expiry", "aggrieved party may still withhold and claim delay damages" ], "source_refs": [ "SRC-017" ] } ], "composition": [ { "target": "Host record carrying duties (contract clause, statute or regulation article, licence condition, service commitment, internal policy statement, unilateral pledge)", "relation": "MIX-IN", "purpose": "WM-XCT-029 is applied to any host record that creates or carries a duty, supplying the deontic core, conditions, due structure, lifecycle and fulfilment semantics without changing the host's own identity or content model.", "required": true, "source_refs": [ "SRC-003", "SRC-004", "SRC-011" ] }, { "target": "Agreement / Contract model", "relation": "REFERENCE", "purpose": "Resolve the instrument, its version and the clause locator that creates a contractual obligation; the instrument's formation, consideration and clause text stay in that model.", "required": true, "source_refs": [ "SRC-004", "SRC-005" ] }, { "target": "Party / Legal Entity model", "relation": "REFERENCE", "purpose": "Resolve obligor, obligee, beneficiary, performing, enforcing and monitoring party references, including legal capacity, without duplicating party master data.", "required": true, "source_refs": [ "SRC-005", "SRC-003" ] }, { "target": "Right / Entitlement model", "relation": "REFERENCE", "purpose": "Link the correlative right created by the commitment so that assignment of the right and transfer of the duty remain separately governed.", "required": false, "source_refs": [ "SRC-005", "SRC-003" ] }, { "target": "Constraint / Condition expression model", "relation": "COMPOSE", "purpose": "Compose the antecedent, refinement and rule constraints from a shared expression structure of left operand, operator, right operand, unit and logical combination.", "required": true, "source_refs": [ "SRC-001", "SRC-002" ] }, { "target": "Obligation / Commitment (WM-XCT-029) as consequence, remedy or penalty obligation", "relation": "CHILD", "purpose": "Secondary obligations created by non-fulfilment or infringement are themselves obligations and recurse onto this model rather than being modelled as flat penalty attributes.", "required": false, "source_refs": [ "SRC-001", "SRC-003", "SRC-007" ] }, { "target": "Evidence / Document and credential model", "relation": "REFERENCE", "purpose": "Resolve fulfilment evidence, notices, certificates and their issuers, validity intervals, proofs and revocation status.", "required": true, "source_refs": [ "SRC-012", "SRC-009" ] }, { "target": "Provenance model aligned to PROV-O", "relation": "ALIGN", "purpose": "Align obligation-record provenance to Entity, Activity and Agent with generation, derivation, attribution, association and delegation, so that derived obligations remain traceable to their source clause.", "required": true, "source_refs": [ "SRC-009" ] }, { "target": "W3C ODRL 2.2 Duty and Constraint", "relation": "ALIGN", "purpose": "Provide a machine-evaluable exchange projection for duties, actions, constraints, consequences and remedies, with recorded divergences on asset targeting and consequence nesting.", "required": false, "source_refs": [ "SRC-001", "SRC-002" ] }, { "target": "OASIS LegalRuleML 1.0 Obligation, Violation and PenaltyStatement", "relation": "ALIGN", "purpose": "Provide a legal-norm exchange projection carrying bearer, auxiliary party, violation, compliance, reparation, authority, jurisdiction and temporal characteristics.", "required": false, "source_refs": [ "SRC-003" ] }, { "target": "IFRS 15 performance obligation", "relation": "ALIGN", "purpose": "Flag the narrower accounting subset of promises and their satisfaction pattern, without importing recognition or measurement into this model.", "required": false, "source_refs": [ "SRC-006" ] }, { "target": "Compliance obligations register (management system)", "relation": "EXTEND", "purpose": "Supply the per-entry structure that a compliance obligations register aggregates, covering both externally imposed requirements and voluntary commitments.", "required": false, "source_refs": [ "SRC-011" ] }, { "target": "Records retention and disposition model", "relation": "REFERENCE", "purpose": "Resolve retention triggers, periods, legal holds and destruction treatment for obligation records and their evidence.", "required": true, "source_refs": [ "SRC-010", "SRC-007" ] } ], "serviceLayers": { "dimension": { "owner_package_requirements": [ "The adopting Dimension MUST designate one accountable owner package for WM-XCT-029 and record it in the Dimension registry before any obligation record is created; unowned obligation records MUST be rejected at creation.", "The owner package MUST publish and version the controlled vocabularies this model depends on — deontic modality, violability class, obligation kind, effort standard, discharge mode, state set and transition matrix, breach type, excuse ground and transfer type — as resolvable terms with effective dates.", "The owner package MUST declare which host models may mix in this model and which sibling models are referenced rather than duplicated, and MUST re-declare that list whenever a sibling model changes its scope.", "The owner package MUST nominate a legal or compliance reviewer accountable for jurisdiction-bearing fields (governing law, limitation, survival, enforcement authority) and MUST NOT allow those fields to be set by automated extraction without review.", "The owner package MUST maintain the alignment crosswalk with pinned versions of every target vocabulary and MUST record divergences rather than silently adapting them." ], "namespace_guidance": "Mint obligation identifiers and vocabulary terms in a single stable namespace controlled by the owner package, segmented by concern (obligations, occurrences, states, actions, excuse grounds). Never reuse an external standard's namespace for locally defined terms; where a local term corresponds to an external one, record the correspondence in the crosswalk with an explicit mapping relation. Term IRIs are opaque and permanent: retire terms by deprecation with a replacement pointer, never by reuse or deletion. Occurrence keys are minted under the parent obligation's namespace so that they remain resolvable after the parent is superseded.", "registry_links": [ "Registry entry vr.wm-xct-029 (WM-XCT-029, entry kind mixin, nav path NAV.XCT.OBL, domain tag XCT.OBL) is the authoritative registration for this model and MUST carry the owner package and review state.", "The registry entry MUST link to the sibling models named in the composition section once their registry identifiers exist, replacing the descriptive target names used here.", "The registry entry MUST record the review state boundary-review-required until the boundaries against the agreement, right, policy and compliance-register models have been signed off by the nominated reviewer." ] }, "canon_and_patch": { "canonicalization_rules": [ "All timestamps are canonicalised to RFC 3339 with seconds and an explicit offset or Z; the originally stated local time, its time zone identifier and its business-day convention are retained alongside the canonical instant and are never discarded.", "Code values are canonicalised to their governed term IRIs; display labels are derived, never stored as the authoritative value.", "Quantities are canonicalised as an explicit value-plus-unit pair, and monetary amounts as an explicit amount-plus-currency pair; bare numbers are rejected.", "Absent and empty are distinguished: an omitted element means not asserted, an explicit null means asserted as not applicable, and an empty collection means asserted as none.", "References are canonicalised to resolvable identifiers with the referenced version pinned where the referent is versioned, so that a citation continues to mean what it meant when recorded." ], "patch_rules": [ "Patches address stable element identifiers, never positional paths, so that reordering a collection never changes the meaning of a stored patch.", "State changes are appended as transitions and never applied as in-place overwrites of the current state; the current state is a derived projection of the transition log.", "Changes to deontic modality, obligor, obligated action, due basis or governing law create a new version with a supersedes link rather than mutating the existing record, because these fields change what the obligation is.", "Every patch carries the acting agent, the reason code, the event time and the ingestion time; a patch missing any of these is rejected.", "Corrections to historical facts are recorded as corrective entries that preserve the superseded value, so that what the register said at any past instant remains reconstructible." ], "compatibility_rules": [ "Adding an optional element, a new vocabulary term or a new alignment mapping is a minor change.", "Adding a required element, narrowing a cardinality, removing an element, or removing or redefining a state, modality or discharge-mode code is a breaking change and requires a major version and a migration note.", "Changing the transition matrix to forbid a previously permitted transition is breaking; adding a permitted transition is minor only if no terminal state gains an outbound transition.", "Retargeting the crosswalk to a new version of an external vocabulary is minor when the conformance claim is unchanged, and breaking when a previously asserted conformance claim is withdrawn or narrowed.", "Consumers MUST tolerate unknown optional elements, and MUST stop processing rather than guess when they encounter an unrecognised profile identifier." ] }, "artifact_rules": { "identity_priority": [ "Use the identifier assigned by the authoritative master system for the obligation where such a master exists, for example the obligation identifier issued by a contract-management or regulatory-register system of record.", "Otherwise use a governed global identifier or IRI minted in the owner package's obligation namespace, resolvable and permanent.", "Otherwise mint a UUID or ULID under the adopting Dimension's control and record the minting agent and instant.", "A due date, a clause number, a party name or any combination of descriptive attributes is never an identifier; such combinations may serve only as declared match keys for deduplication.", "Occurrence identity is always composite: the standing obligation identifier plus the occurrence key generated by the recorded recurrence rule version." ], "timestamp_rule": "Every timestamp is an RFC 3339 date-time with seconds and an explicit numeric offset or Z. Event time (when the fact took legal effect) and observation or ingestion time (when the system learned of it) are recorded as separate elements and are never collapsed; where a legally relevant local civil time exists, its time zone identifier and business-day convention are stored alongside the canonical instant. The RFC 3339 -00:00 form is used only to mean that the local offset is genuinely unknown and is never written as a synonym for Z.", "serial_naming_rule": "Serial artefacts — state transition log entries, condition evaluation entries, progress measurements, acceptance certificates, breach notices, remedy determinations, assignment records and audit entries — are numbered within a series scoped to one obligation identifier, using a gapless monotonically increasing integer with no semantic content. The series name encodes the artefact class and the obligation identifier; gaps are treated as evidence of loss and must be investigated, and numbers are never reissued after voiding.", "integrity_rule": "Append-only artefacts (state transition log, condition evaluation log, provenance and change audit trail) carry a per-entry integrity digest chained to the preceding entry, so that removal or alteration of any entry is detectable. Externally issued evidence retains its issuer's proof and status endpoint unaltered; the register stores the verification outcome and instant rather than re-signing the evidence. Any artefact whose integrity check fails is quarantined, flagged on the obligation record and excluded from fulfilment evaluation until resolved." }, "policies": [ "An obligation record MUST NOT be created without a resolvable source instrument reference and a clause, article or paragraph-level citation; obligations asserted without a stated basis are held as candidates and excluded from the operative register.", "Alethic statements MUST NOT be registered as obligations; a statement that cannot in principle be violated belongs to the definitional vocabulary, not to the obligation register.", "Conformance to an external standard MUST NOT be claimed without a dated validation report from a named validator; absent that evidence, only alignment may be asserted and the divergences must be listed.", "Automated extraction MAY populate an obligation record, but jurisdiction-bearing fields and any transition into breached, waived, released or discharged states MUST be attributable to an authorised human or explicitly delegated agent.", "Deleting an obligation record is prohibited while it is within its enforceability window or under legal hold; disposal outside those constraints proceeds through the retention function and produces a destruction or tombstone record.", "Fulfilment MUST NOT be asserted on the basis of elapsed time alone; discharge requires the recorded fulfilment test to be satisfied or an explicit discharge mode such as waiver, release, set-off or expiry to be recorded with its instrument.", "Fulfilment cannot be asserted without linked evidence unless an authorised waiver exception is recorded.", "Access-control, legal and contractual senses of obligation MUST keep distinct deontic-kind-code values and MUST NOT be merged in queries by English label alone.", "Original duties remain required after consequence attachment unless an explicit discharge is recorded, matching ODRL consequence semantics.", "Logical discharge is preferred to physical delete; physical delete is blocked during legal hold and while statutory retention runs.", "Constraint evaluation precedes overdue and violation assertions; force-majeure and interference excuses must be coded rather than inferred from silence." ], "crud": { "read": [ "Reading an obligation returns its current state as a projection of the transition log together with the event and ingestion timestamps of the latest transition.", "Reads are filtered by confidentiality classification and requester role; suppressed elements are reported as suppressed rather than silently omitted, so that consumers cannot mistake redaction for absence.", "Historical reads at a past instant MUST be supported and MUST return what the register asserted at that instant, not the current values." ], "create": [ "Creation requires identifier assignment under the identity priority, a source citation, a deontic modality, an obligated action and an obligor; records failing any of these are rejected, not stored as partial.", "Creation records the generating activity, the attributed agent and both creation and ingestion timestamps.", "Creating a recurring obligation also records the recurrence rule version used, so that generated occurrences can be replayed." ], "update": [ "Content-defining fields (modality, obligor, action, due basis, governing law) are updated only by versioning with a supersedes link; other fields are patched in place with a reason code and dual timestamps.", "State is never updated directly; it changes only through the recorded transition function against the declared transition matrix.", "Updates to a superseded version are prohibited; corrections apply to the current version and cite the superseded one." ], "delete": [ "Hard deletion is prohibited for obligations within their enforceability window, under legal hold, or referenced by an open secondary obligation.", "End-of-retention disposal reduces the record to a tombstone retaining the identifier, the disposal decision and the destruction certificate reference, so that inbound references do not dangle.", "Append-only logs are never deleted individually; they are disposed only as whole series under a recorded retention decision, and the disposal is itself logged." ] }, "roles": [ { "name": "Obligation Model Owner", "responsibilities": [ "Own the specification, vocabularies and version history of WM-XCT-029 within the adopting Dimension", "Approve breaking changes, migrations and the declared list of host and sibling models", "Maintain the registry entry and drive the outstanding boundary review to closure" ] }, { "name": "Obligation Registrar / Steward", "responsibilities": [ "Create and maintain obligation records, assign identifiers under the identity priority and keep source citations accurate", "Run currency reviews at the declared cadence and attest that register entries remain correct", "Resolve duplicate and merge decisions against the declared match key" ] }, { "name": "Legal and Compliance Reviewer", "responsibilities": [ "Review and approve modality, violability, governing law, jurisdiction, limitation and survival determinations", "Approve breach declarations, excuse determinations and waiver or release decisions", "Record conflicts between jurisdictions or between this model and external vocabularies rather than resolving them silently" ] }, { "name": "Performance Monitor", "responsibilities": [ "Track due schedules, grace expiry and progress measurements and raise alerts within the declared lead times", "Attach fulfilment evidence and record verification outcomes", "Escalate impending or actual non-performance along the recorded escalation path" ] }, { "name": "Records and Retention Officer", "responsibilities": [ "Apply retention triggers, legal holds and disposition to obligation records and their evidence", "Issue destruction certificates and maintain tombstone integrity", "Reconcile erasure requests against enforceability-window and legal-claim retention justifications" ] }, { "name": "Interoperability Custodian", "responsibilities": [ "Maintain the alignment crosswalk with pinned target-vocabulary versions and recorded divergences", "Run validators against exchange projections and retain dated validation reports", "Block conformance claims that lack validation evidence" ] } ], "access": { "default_rule": "Deny by default. Access is granted per scope to named roles, and every grant carries a purpose and an expiry; obligation records are readable only by roles with a declared need arising from ownership, monitoring, legal review, assurance or a party's own involvement.", "scopes": [ "bundle", "layer", "finding", "artifact" ], "exceptions": [ "The obligor and obligee of an obligation may read the findings and artefacts describing their own duty, its due structure, its fulfilment state and the evidence relied on against them, even where the general classification is more restrictive.", "Auditors, supervisory authorities and courts may be granted time-boxed read access across all scopes for a stated proceeding, recorded as an exception with its legal basis, scope and expiry.", "Legal hold suspends any access restriction that would prevent preservation, but does not by itself widen read access.", "Automated evaluators may read constraint expressions, operand values and state at finding scope without access to free-text clause extracts or personal data, so that evaluation does not require broad disclosure.", "Legal hold and regulatory examination may extend read to named investigators without making them stewards.", "CommitmentAtLarge public instruments may be read more widely than bilateral duties.", "PEP obligation payloads may be visible to runtime enforcement components that are not party to the underlying commercial duty." ], "audit_requirements": [ "Every read, export and access-exception grant is logged with the requester, role, scope, purpose, decision and RFC 3339 timestamp with explicit offset.", "Every state transition, version supersession and patch is logged with acting agent, reason code, event time and ingestion time in the append-only audit trail.", "Access to obligation records containing personal data is separately reportable so that disclosure can be reconstructed for a data-subject or supervisory request.", "Audit trails are retained for at least the enforceability window of the obligation they concern and are disposed of only under a recorded retention decision.", "Log every create, state transition, evidence attach, consequence attach, waiver and delete with actor, event time, observation time and previous state.", "Audit logs retain ObligationId/uid aliases used at the time of the action.", "Evaluation results (active, overdue, fulfilled, violated) are attributable to a named evaluator or system." ] }, "agents_bootstrap": { "filename": "AGENTS.md", "required_fields": [ "Name", "Type", "Specification URL", "Storage type URL", "Interface URL", "Processes URL", "Owner package", "Registry ID", "Model version and effective date", "Vocabulary namespace URL", "Alignment crosswalk URL", "Access and retention policy URL" ], "read_order": [ "AGENTS.md — establish Name, Type, owner package, registry identifier and the four required URLs before touching any record", "Specification URL — read the model scope, boundaries, bundle/layer/finding structure and the required elements, so that records are interpreted with the correct semantics", "Storage type URL — learn the concrete projection in use (document store, graph, files under version control, or a service) and the canonicalisation and patch rules that apply to it", "Interface URL — learn the available operations, their authorisation scopes and the required timestamp and identifier formats", "Processes URL — learn the registration, classification, evaluation, breach, remedy, transfer and retention procedures and the roles authorised to run them", "Vocabulary namespace and alignment crosswalk — resolve controlled terms and check pinned external vocabulary versions before producing any exchange projection" ] } }, "coverage": { "claim": "The adjudicated structure covers, for a single directed duty used as a mixin: deontic core and violability, obligor/obligee/beneficiary/enforcement roles, obligated action and subject matter, antecedent conditions and ODRL-form constraint expression, due time, recurrence, limitation and survival, an explicit lifecycle state model with dual timestamps, fulfilment with acceptance and evidence, non-performance with excuse, cure and remedy, legal basis, authority and jurisdiction, stewardship, provenance, confidentiality and retention, composition, transfer, plurality, and standards alignment — plus the imported XACML/HL7 obligation-sense crosswalk and the UNIDROIT cure/additional-period operation. Grounding is limited to the cited primary standards; service-level-objective structure and obligations-register operations remain declared gaps. No claim of jurisdictional, deontic-logical or universal completeness is made.", "confidence": "medium", "checklist": [ { "dimension": "identity", "status": "covered", "notes": "Identity priority, scheme, standing-versus-occurrence granularity, versioning by supersession and an explicit deduplication match key; explicitly excludes dates and descriptive attribute combinations as identifiers. Grounded in ODRL uid requirements, LegalRuleML statement identification and FIBO commitment structure." }, { "dimension": "lifecycle", "status": "covered", "notes": "Explicit state set, transition matrix, derived-versus-asserted state basis, terminal states, authorised reopening and transient-versus-terminal breach for maintenance obligations. Grounded in the ODRL fulfilment test, LegalRuleML Violation/Compliance and the achievement/maintenance distinction from AAAI 2021." }, { "dimension": "relationships", "status": "covered", "notes": "Obligor, obligee, beneficiary, auxiliary and enforcing roles; correlative right link; parent-child decomposition; ordering and reciprocal dependency; plurality with joint and several liability and contribution. Grounded in FIBO party roles, LegalRuleML bearer/auxiliary party and UNIDROIT Chapters 6 and 11." }, { "dimension": "temporal", "status": "covered", "notes": "Due basis distinguishing fixed time, obligor-chosen period, reasonable time and event-derived deadlines; recurrence, grace, notice lead times, limitation, survival and enforceability windows; all instants RFC 3339 with explicit offset and separated event and observation times." }, { "dimension": "provenance", "status": "covered", "notes": "Generating activity, attributed agent, derived-from links to the source clause, extraction method and confidence, creation and ingestion timestamps, and a chained tamper-evident audit trail. Aligned to PROV-O starting-point and qualified terms." }, { "dimension": "ownership", "status": "covered", "notes": "Record owner separated from obligor; monitoring assignment, review cadence, attestation and escalation path; delegated performance with retained accountability expressed through PROV-O delegation. Register-upkeep grounding from ISO 37301 is scope-level only." }, { "dimension": "validation", "status": "covered", "notes": "Constraint consistency and unsatisfiability checks, non-empty collection refinement checks, null-operation checks on action refinement, role disjointness, cycle detection on dependencies, and conformance claims gated on dated validator evidence. Grounded in the ODRL Validator and Evaluator roles." }, { "dimension": "access", "status": "covered", "notes": "Deny-by-default with scoped grants across bundle, layer, finding and artifact; party self-access, supervisory and judicial exceptions, and a narrowed evaluator scope that excludes free text and personal data. Every read and grant is logged." }, { "dimension": "retention and deletion", "status": "covered", "notes": "Retention triggered by discharge or end of enforceability and justified by the limitation determination; legal hold; erasure reconciled against the legal-obligation and legal-claims exceptions; hard deletion prohibited in-window with tombstoning to preserve referential integrity. Grounded in GDPR Articles 5(1)(e), 6(1)(c), 17 and 30 and UNIDROIT Chapter 10." }, { "dimension": "interoperability", "status": "covered", "notes": "Crosswalk with mapping relations, pinned target versions, recorded divergences, conflict-resolution strategy, profile identification and the requirement to halt on unrecognised profiles; conformance separated from alignment." }, { "dimension": "deontic modality", "status": "covered", "notes": "Obligation, prohibition, permission and right typed explicitly, with violation polarity and the SBVR deontic-versus-alethic filter that keeps definitional necessities out of the register." }, { "dimension": "conditionality and detachment", "status": "covered", "notes": "Suspensive and resolutive conditions, detachment timestamps and evidence, duties pending the condition, interference findings, and ODRL constraint and logical-constraint expression form." }, { "dimension": "fulfilment and evidence", "status": "covered", "notes": "Fulfilment test as constraint satisfaction plus exercise of the refined action, acceptance as a separate step, discharge modes, and evidence with issuer, validity interval, integrity proof and revocation status aligned to VC 2.0." }, { "dimension": "non-performance and remedy", "status": "covered", "notes": "Non-performance covering non-delivery, defect and lateness; declaration authority and notice; materiality; excuse grounds; cure periods; and consequence, remedy and penalty obligations that recurse onto this model." }, { "dimension": "measurement", "status": "covered", "notes": "Quantity owed, partial performance, cumulative fulfilled and outstanding quantities, and input- or output-based measure of progress from IFRS 15, with penalty formulae and caps." }, { "dimension": "service level objectives and thresholds", "status": "gap", "notes": "Thresholds, tolerances and measurement windows are modelled generically because the cloud SLA standard normally relied on (ISO/IEC 19086-1) returned HTTP 403 and could not be read. Only UNIDROIT 5.1.6 reasonable-quality grounding is primary; treat the SLO shape as unsupported structure pending retrieval." }, { "dimension": "obligations register operations", "status": "gap", "notes": "Register upkeep, currency and accessibility requirements rest on the ISO 37301 committee scope statement only; the normative clause text is paywalled and was not read, so review cadence, escalation and register completeness requirements are presented as practice, not as cited normative requirements." }, { "dimension": "spatial", "status": "covered", "notes": "Place of performance with stated-versus-default indicator, jurisdictional territory and subject-matter extent, and ODRL spatial operands. Grounded in UNIDROIT 6.1.6 and LegalRuleML Jurisdiction." }, { "dimension": "geospatial precision and geometry", "status": "not-applicable", "notes": "Place of performance is a reference into a location or party model rather than a geometry; no coordinate reference system, precision or topology requirement arises from the sources for a general obligation mixin." }, { "dimension": "security", "status": "covered", "notes": "Integrity digests chained across append-only logs, quarantine of artefacts failing integrity checks, verification of external proofs without re-signing, and authority requirements for state assertions." }, { "dimension": "privacy", "status": "covered", "notes": "Personal data flag, lawful basis, minimised evaluator access, and separately reportable access to personal data. Grounded in GDPR Articles 6(1)(c) and 30." }, { "dimension": "transfer and succession", "status": "covered", "notes": "Assignment of rights, transfer of duties, delegation of performance and novation, each with consent or notice requirements, release status and an explicit identity continuity rule. Grounded in UNIDROIT Chapter 9." } ], "known_omissions": [ "ISO/IEC 19086-1 (cloud SLA framework, service level objectives and service qualitative objectives) could not be retrieved; the standard's page returned HTTP 403. The performance-standard finding therefore lacks the primary grounding that would normally define threshold, metric and measurement-window structure.", "The normative text of ISO 37301:2021 is paywalled; only the ISO/TC 309 committee scope statement was read. Obligations-register requirements are therefore treated as gap-level support.", "Multiagent commitment-protocol literature that formalises the operations create, cancel, release, delegate and assign over C(debtor, creditor, antecedent, consequent) could not be machine-read (the AAMAS commitment-alignment PDF failed to parse). The state model is grounded in ODRL, LegalRuleML and UNIDROIT, with the achievement-versus-maintenance distinction taken from the AAAI 2021 abstract only; the finer-grained commitment operations are deliberately not asserted.", "The OMG SBVR specification page yielded title, version and date but not the clause text on deontic and alethic modality; the distinction as used here is supported at the level of SBVR's stated purpose plus secondary commentary, so the violability filter is a weaker claim than the ODRL and LegalRuleML groundings.", "Insolvency effects on obligations — automatic stay, set-off on insolvency, subordination and rescission of preferences — are not modelled and would materially change enforceability.", "Tax, prudential and sector-specific statutory obligation catalogues are not enumerated; only GDPR is used as a worked statutory example.", "Non-Western and non-commercial obligation frameworks (Shariah-compliant structures, customary and community obligations, family-law duties) are not addressed; the model's grounding is commercial and regulatory.", "Distributed-ledger or self-executing settlement semantics are treated as an interface projection and are not modelled; automated execution introduces determinism and finality questions this model does not answer.", "Negotiation and pre-contractual commitments (letters of intent, memoranda of understanding, comfort letters) are not distinguished from binding commitments beyond the violability filter.", "Aggregate and portfolio-level views — exposure across obligations, netting, and covenant baskets — are out of scope; this model describes one obligation at a time.", "FIBO FND Law LegalCapacity contingent-obligation and condition-precedent properties were only snippet-searched, not fetched as a full ontology, so clause-linkage details are a gap.", "Assignment, delegation and novation of obligations are not specified in the fetched UNIDROIT chapter 7 section 1; likely belong to a sibling transfer/novation model.", "Joint and several liability multiplicity is asked but not grounded in a primary multiplicity scheme beyond FIBO party-role cardinality.", "Prescription, limitation periods and death/incapacity of the obligor lack primary support in the fetched set.", "CISG Article 33 (time of performance) is the acknowledged inspiration for UNIDROIT 6.1.1 but was not fetched.", "ISO 37301 compliance-management obligations and ISO 22600-2 (cited by HL7) were not fetched as primary texts.", "Smart-contract oracle fulfilment, Islamic finance consideration rules, and criminal-law duties are out of the fetched corpus.", "DPROD dutyState is an emerging profile, not W3C ODRL core; using it as canonical state without a Dimension declaration would be over-claim.", "Hohfeld correlatives are treated only via LegalRuleML Right and FIBO reciprocity, not via a jurisprudence primary text." ], "conflicts": [ "ODRL requires exactly one target Asset on a Permission and a Prohibition, and models actions as operations on assets. Many legal and regulatory obligations (file a return, maintain insurance, appoint an officer) have no asset. ODRL's Duty allows zero-or-one target, so duties remain expressible, but any projection that routes obligations through permissions will misfit; recorded as a divergence rather than resolved.", "ODRL forbids a consequence Duty from itself carrying a consequence, and forbids a remedy from referring to a Duty that includes a consequence. Legal escalation chains are open-ended (interest on unpaid damages, penalties on unpaid penalties). This model recurses onto itself for secondary obligations and therefore cannot round-trip deep escalation chains through ODRL without flattening; the flattening strategy must be recorded.", "LegalRuleML models a Right as a Permission to a bearer implying obligations on auxiliary parties, while FIBO models a Commitment as a promise giving rise to both an obligation and a reciprocal right. The modelling unit differs — a normative statement versus a promise — so a one-to-one mapping between LegalRuleML Right and FIBO Commitment must not be assumed.", "The IFRS 15 sense of performance obligation is narrower than the legal sense: it covers only promises to transfer distinct goods or services to a customer, and obligations falling outside it are addressed by other standards. Treating the accounting flag as a general obligation classifier would misclassify most regulatory and internal obligations.", "ODRL distinguishes a policy-level obligation from a duty attached as a pre-condition of a permission, with different fulfilment consequences. Collapsing both into a single obligation field loses the distinction between a freestanding duty and a duty that gates an entitlement.", "RFC 3339 requires an explicit offset, but many legal deadlines are stated in local civil time with a business-day convention and no offset. Canonicalising to a UTC instant at capture destroys legally relevant information; this model retains both representations, which means the canonical instant alone is not authoritative for deadline disputes.", "ODRL requires a processing system to stop when it does not recognise a profile identifier, whereas obligation registers commonly need best-effort ingestion of partially understood external policies. Silent partial processing would breach the ODRL requirement; the model therefore requires an explicit halt-and-quarantine rather than lenient parsing.", "ODRL fulfilment is binary exercise of an action; UNIDROIT non-performance includes defective and late performance of an otherwise exercised action. Do not collapse these tests.", "IAS 37 recognises constructive obligations; US GAAP Topic 450 generally does not under the same model. Overlay fields must not be overwritten across bases.", "XACML/HL7/FHIR 'obligation' is a mandated operation or conformance behaviour beside an access or data-handling decision, not a contractual Duty.", "ODRL consequence keeps the original duty required; some commercial practices treat liquidated damages as substituting for performance. Record the rule actually adopted.", "LegalRuleML Prohibition as [OBL]-p versus ODRL Prohibition as a disjoint Rule subclass: forbearance modelling will not round-trip without an explicit map.", "IFRS 15 performance-obligation satisfaction (control transfer) is not the same as ODRL Duty fulfilment or UNIDROIT due performance." ], "regional_assumptions": [ "The UNIDROIT Principles are soft law: they apply where the parties choose them, where they supplement an international instrument, or as gap-fillers. Their rules on best efforts, conditions, place and currency of performance, force majeure, hardship, assignment, limitation and plurality are used here as a well-attested reference frame, not as universally binding law.", "Limitation periods, survival rules and the enforceability of penalty and liquidated-damages clauses vary materially by jurisdiction; several common-law systems restrict penalty clauses that civil-law systems permit. Specific durations and enforceability outcomes must be determined per governing law and are deliberately not asserted here.", "GDPR-derived retention, erasure and lawful-basis structure applies to personal data within EU and EEA scope. Other regimes impose different retention floors and erasure rights, so the retention finding's mechanics are portable but its specific bases are not.", "IFRS 15 applies where IFRS Accounting Standards are used; converged but non-identical national standards exist elsewhere, and jurisdictions on local GAAP may define performance obligations differently or not at all.", "Business-day conventions, public holidays and civil-time offsets are jurisdiction-specific and are referenced from a calendar model rather than defined here; deadline computation is only as correct as that reference.", "Notice service rules, including what counts as effective service and when it takes effect, are jurisdiction-specific; the model records service evidence and instants but does not assert validity of service.", "UNIDROIT Principles are an international commercial-law restatement, not domestic mandatory law; local civil-code or common-law rules may add consideration, privity or formality requirements.", "IAS 37/IFRS 15 overlays assume IFRS reporting; US GAAP and other GAAPs differ on constructive obligations and contingency thresholds.", "LegalRuleML encodings are jurisdiction-neutral carriers of jurisdiction-specific norms; jurisdiction-code is an annotation, not a world-law identifier.", "ODRL is a web policy language widely used for rights, not a substitute for private-law obligation in courts.", "HL7/FHIR obligation codes reflect health-interoperability practice and must not be generalised as legal duties." ], "adversarial_checks": [ "Counterexample — commitment with no identified beneficiary. FIBO recognises a commitment at large made without direct involvement of potential beneficiaries. The model therefore makes the obligee reference optional (0..n) and adds an explicit directedness code, rather than requiring a counterparty as most contract-centric designs do.", "Counterexample — negative obligation. A duty to refrain is violated by performing the act, not by omitting it. A single boolean 'fulfilled' flag would be meaningless here, so violation polarity is a required element and forbearance is flagged on the action, keeping prohibition semantics from being silently coerced into obligation semantics.", "Counterexample — obligation with no asset. Statutory duties such as appointing a data protection officer or responding within one month have no target asset. Target references are therefore 0..n with an explicit assertion available for the target-free case, and the ODRL asset-targeting divergence is recorded rather than papered over.", "Counterexample — maintenance obligation. A duty to keep insurance in force is not discharged by a single act and cannot be modelled by a due date plus a completion flag. The achievement/maintenance axis is a required classification and the state model requires transient lapse to be distinguishable from terminal breach.", "Counterexample — obligation that is owed but unenforceable. Limitation and survival are modelled separately from discharge, so an obligation can be substantively outstanding while time-barred, which a simple open/closed state model cannot express.", "Rejected structure — a priority, urgency or workload layer. Attractive for operations, but these are attributes of the work item that discharges the obligation, not of the duty itself; admitting them would duplicate the task model and make obligation records vary with staffing.", "Rejected structure — a smart-contract or automation-execution layer. Self-execution is a property of a projection and an interface, not of the obligation's semantics; including it would violate the format-neutrality requirement and embed finality assumptions the sources do not support.", "Rejected structure — an accounting recognition and provisioning layer. IFRS 15's boundary makes clear that recognition and measurement are a separate discipline; the model carries only the performance-obligation flag and the distinctness assessment, and refers the rest out.", "Conflation test — obligation versus requirement or control. A compliance requirement in a register and an instantiated duty on a named bearer are different objects with different lifecycles; the model describes one entry and explicitly excludes control design and assurance results, keeping the register aggregation in a sibling model.", "Overreach test — conformance claims. Every alignment is stated as a mapping with a relation and recorded conflicts, and the service layer forbids asserting conformance without a dated validation report, so no node in this structure claims standard conformance on the strength of resemblance alone.", "Support test — every layer traced to primary sources. Two dimensions failed this test and are marked as gaps rather than presented as canonical: service-level objective structure (ISO/IEC 19086-1 unreachable) and obligations-register operations (ISO 37301 clause text paywalled).", "If an English label 'obligation' is used as a join key across ODRL, XACML and IAS 37, legally distinct senses will be merged; deontic-kind-code is the falsifier.", "If fulfilment is stored as a boolean without performance-quality-code, defective and late performance required by UNIDROIT 7.1.1 become invisible.", "If due dates are used as identifiers or stored as timezone-naive dates, overdue evaluation is not reproducible across regions.", "If consequence duties replace the original duty by default, the instance is not ODRL-compatible even if labelled as such.", "If FHIR SHALL-handle-field codes are treated as contractual commitments, healthcare conformance will be misread as legal liability.", "If IAS 37 recognition is taken as proof that no obligation exists when outflow is not probable, deontic duties will disappear from operations while still binding at law." ] }, "researchAdjudication": { "providerMode": "dual-provider", "activeProviders": [ "claude", "grok" ], "waivedProviders": [], "providerPolicy": {}, "boundaryDecision": { "entry_kind": "mixin", "status": "accepted", "rationale": "Both providers independently arrived at mixin, and the base scope statement, ten boundary notes and explicit out-of-scope list draw complete lines against the agreement instrument, party master data, the policy/rule container, task execution, payment and settlement mechanics, dispute management, control registers and accounting recognition. The base also passes the definitional/alethic filter (SBVR) that keeps non-violable necessities out of the register. The only boundary pressure in this adjudication is the imported access-control and conformance obligation sense, which is admitted as a crosswalk alignment entry only, leaving the base exclusion of decision-point and evaluation infrastructure intact." }, "decisions": [ { "concept": "Base provider selection", "disposition": "Claude as base", "rationale": "The base carries ten boundary notes, an explicit out-of-scope list and adversarial counterexamples (commitment at large, negative duty, asset-free statutory duty, maintenance duty, owed-but-time-barred duty) that close the model edges. The alternative's seven notes are sound but leave party roles, stewardship, provenance and retention thin. Node count was not decisive; edge completeness was." }, { "concept": "Entry kind", "disposition": "mixin retained", "rationale": "Both providers independently classified the entry as a mixin attachable to contracts, statutes, licences, orders, policies and unilateral commitments, and neither structure carries instrument formation, party identity or ledger semantics that would force a standalone entity." }, { "concept": "XACML and HL7/FHIR obligation senses", "disposition": "accepted into alignment-and-exchange", "rationale": "Tier-1 primary grounding for two obligation homonyms absent from the base crosswalk; admitted as mapping and sense-disambiguation only, with the source finding's access and retention material dropped as duplicative of base access-and-retention." }, { "concept": "IAS 37 provision recognition and measurement overlay", "disposition": "rejected", "rationale": "The base explicitly out-of-scopes accounting recognition and measurement and draws a boundary note to Liability/Provision. Importing provision amount, risk adjustment, discounting and onerous-contract testing would reopen a deliberately closed edge and duplicate a sibling financial-reporting model." }, { "concept": "IAS 37 legal versus constructive obligation classification", "disposition": "deferred", "rationale": "Adjacent to but not identical with the base external-versus-voluntary origin axis from ISO 37301. Deciding whether constructive obligation is an origin class of the duty or only a recognition trigger requires primary clause text neither provider read, so it is not bolted onto obligation-typology on inference." }, { "concept": "DPROD dutyState lifecycle vocabulary", "disposition": "rejected", "rationale": "Tier-3 non-primary profile, and the source provider itself flags adopting it as canonical as an over-claim. The base lifecycle-state-machine is grounded in the ODRL fulfilment test, LegalRuleML Violation/Compliance indications and the achievement/maintenance distinction, which is stronger support." }, { "concept": "Order, place and manner finding (order-location-manner)", "disposition": "rejected as duplicative", "rationale": "Place and currency of performance already sit in base subject-and-place, and ordering with reciprocal dependency in finding-composition-and-dependency; importing the finding would fragment place of performance across two nodes. Its one unique element, withholding performance, is deferred to research instead." }, { "concept": "Conditions, constraints and conditions precedent (grok)", "disposition": "rejected as duplicative", "rationale": "Base antecedent-and-detachment plus constraint-expression already carry suspensive and resolutive conditions, detachment evidence and timestamping, improper interference, and the full ODRL Constraint and LogicalConstraint expression form including andSequence ordering." }, { "concept": "Consequence, remedy and reparation (grok)", "disposition": "rejected as duplicative", "rationale": "Base excuse-remedy-consequence already carries the ODRL consequence and remedy nesting prohibitions, LegalRuleML PenaltyStatement and Reparation, cure periods, penalty caps, and the recursion of secondary duties back onto this model as obligations in their own right." }, { "concept": "Validator versus evaluator distinction", "disposition": "rejected as an added finding", "rationale": "The base already asserts ODRL Validator and Evaluator grounding in its validation checklist dimension and covers competent issuer and evidence sufficiency in fulfilment-evidence; importing the combined evidence finding would create a second evidence node for one extra distinction." }, { "concept": "Cure and additional-period operation", "disposition": "accepted as function", "rationale": "The base recognises cure as a question but exposes no operation between declaring non-performance and applying remedy, so the suspension of inconsistent remedies during an additional period is currently unreachable; grounded in a tier-1 primary source." }, { "concept": "Access-control PEP enforcement function", "disposition": "rejected", "rationale": "Enforcing ObligationExpressions on a Permit or Deny decision is decision-point infrastructure, which the base out-of-scopes. The XACML sense enters as a crosswalk entry only, never as an operation of this mixin." }, { "concept": "Present-obligation recognition function", "disposition": "rejected", "rationale": "Follows the same boundary as the rejected IAS 37 overlay: applying provision versus contingent-liability tests is a financial-reporting operation on some obligations, not an operation of the deontic record itself." }, { "concept": "Discharge, waive or release function (grok)", "disposition": "rejected as duplicative", "rationale": "Base transition-state applies permitted transitions with authority, basis, event time and observation time, and fulfilment-and-acceptance already enumerates discharge modes including substitute performance, set-off, waiver, release and expiry." }, { "concept": "Prohibition and forbearance modelling divergence", "disposition": "recorded as declared divergence, not resolved", "rationale": "Both providers independently find that LegalRuleML obligation-of-a-negated-act and the ODRL disjoint Prohibition subclass will not round-trip. The base already records violation polarity and a divergence list, so synthesis keeps this as a crosswalk conflict rather than choosing a winner without primary authority to do so." }, { "concept": "Service-concern layer merge", "disposition": "accepted", "rationale": "The two providers scatter access, retention, validation and interoperability service concerns across different bundles; merging them onto the base's single service surface prevents two competing access-control and retention narratives coexisting in one published model." } ], "publicationHolds": [ "Live-URL and version-pin verification for all fourteen base sources plus the two imported ones (XACML 3.0, HL7 FHIR obligation codes) before any citation is published.", "FIBO source conflict: the base pins spec.edmcouncil.org Agreements and Contracts at 'master/latest retrieved 2026-08-23' while the other provider pins raw.githubusercontent.com at versionIRI 20260601. Resolve to one dated release IRI before publication.", "UNIDROIT edition pin: the base cites the 2016 black-letter PDF, while the imported cure and additional-period function derives from a 2010 Chapter 7 Section 1 page. Confirm 2016 numbering for Articles 7.1.1 to 7.1.5 before citing them.", "Multi-profile domain validation: exercise the mixin against a contract clause, a statutory or regulatory duty, a court or administrative order, an internal voluntary commitment and an access-control or conformance obligation before claiming the alignment holds.", "Performance-standard finding remains partially supported: ISO/IEC 19086-1 returned HTTP 403, so thresholds, metrics and measurement windows must be published as generic structure explicitly labelled as lacking primary grounding.", "ISO 37301 normative clause text is paywalled and only the committee scope statement was read; register upkeep, review cadence and escalation must be published as practice, not as cited normative requirements.", "Confirm the imported XACML and FHIR sense alignment is published as a crosswalk entry only and does not reopen the base exclusion of access-control decision points and their evaluation infrastructure.", "No conformance claim to ODRL, LegalRuleML, FIBO, IFRS 15, XACML or FHIR may be published without a dated validation report; alignment relations only until then." ], "deferredResearch": [ "UNIDROIT 7.1.2: non-performance caused by the other party's act or by a risk it bears, and whether the base needs an explicit interference and risk-allocation defence distinct from the existing condition-interference question.", "UNIDROIT 7.1.3 withholding of performance in reciprocal obligations (simultaneous versus consecutive tender) as a distinct pre-remedy state of an unperformed duty, currently absent from both the composition and the non-performance layers.", "UNIDROIT 7.2.1 and 7.2.2 limits on specific performance (impossibility, unreasonable burden, reasonable cover from another source, exclusively personal character) and whether they belong to this mixin or to a remedies sibling model.", "Whether the IAS 37 constructive obligation and the ISO 37301 voluntary commitment are the same origin axis; requires the normative clause text of both, neither of which was read by either provider.", "Multiagent commitment operations (create, cancel, release, delegate, assign) over C(debtor, creditor, antecedent, consequent): the AAMAS commitment-alignment PDF failed to parse, so the finer-grained operations remain unasserted in the state model.", "Insolvency effects on enforceability — automatic stay, set-off on insolvency, subordination and rescission of preferences — listed as a base known omission and material to the limitation and survival findings.", "DPROD Duty profile status and whether any Dimension declares it, before its Pending/Active/Fulfilled/Violated vocabulary could ever be referenced as more than a third-party profile." ] }, "statistics": { "sources": 22, "bundles": 6, "layers": 16, "findings": 29, "questions": 123, "artifacts": 25, "functions": 13 } }