Exemplar S006 — Agents & roles paired report

    proprietorship-relator-multi-proprietor

    Proprietorship as a UFO Relator with multiple Proprietor Role instances — the joint-tenancy case.

    Input instance (ABox)

    # Diagnostic exemplar — ODR-0004 §8a, IC-only — input to ODR-0006 (Agents & Roles).
    # Situation: a registered title with two joint proprietors (a married couple). The
    # Proprietorship relator binds two Person Role instances (Proprietor-A, Proprietor-B) to one
    # RegisteredTitle. Each Proprietor borrows identity from its Person bearer; the Relator
    # itself has no independent identity beyond the Title + Persons it mediates.
    # Status: ratified. Namespace: https://opda.org.uk/pdtf/ (Session 003b + ADR-0006).
    # ODR-0004 status: accepted (council: session-004); ODR-0006 status: accepted (council: session-006).
    
    @prefix opda:    <https://opda.org.uk/pdtf/> .
    @prefix opda-x:  <https://opda.org.uk/pdtf/harness/data/exemplar/proprietorship-relator-multi-proprietor/> .
    @prefix dct:     <http://purl.org/dc/terms/> .
    @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix skos:    <http://www.w3.org/2004/02/skos/core#> .
    @prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
    
    opda-x:exemplar
        a opda:DiagnosticExemplar ;
        dct:title "Proprietorship Relator — joint-tenancy multi-proprietor hard case" ;
        dct:status "ratified" ;
        dct:references <ODR-0006> , <ODR-0005> , <ODR-0004> ;
        skos:scopeNote
            "Tests S006 Q3: Proprietorship modelled as a UFO Relator with mediating Role instances (Proprietor) for each natural person on title. Two Persons jointly own a freehold (registered as joint tenants per HMLR Practice Guide 24); the title's Proprietorship register lists both. Under UFO: one opda:Proprietorship Relator binds two opda:Proprietor Roles (one per Person). Each Role has no identity qua-Role (S005 Anti-pattern §3 — never key a Role); each Role borrows identity from its Person bearer. The Relator's IC = the (Title, Persons-set) tuple. Joint-tenancy vs tenants-in-common is a property of the Relator (S006 may settle), NOT of the Roles." .
    
    # Two natural persons (joint proprietors)
    opda-x:person-a
        a opda:Person ;
        rdfs:label "Person A — Sarah Holroyd" ;
        opda:dateOfBirth "1981-11-03"^^xsd:date ;
        opda:niNumber "QQ234567D" .
    
    opda-x:person-b
        a opda:Person ;
        rdfs:label "Person B — James Holroyd" ;
        opda:dateOfBirth "1979-05-18"^^xsd:date ;
        opda:niNumber "QQ345678E" .
    
    # One RegisteredTitle (S005 §3c)
    opda-x:title
        a opda:RegisteredTitle ;
        rdfs:label "HMLR title NK112233 (freehold; joint proprietors)" ;
        opda:titleNumber "NK112233" .
    
    # Two Proprietor Roles — each borrows identity from its Person bearer
    # Two Proprietor Roles — each borrows identity from its Person bearer.
    # opda:playedBy names the bearer (Role → Person, ODR-0006 §Q2 / ODR-0032 §R2;
    # Council session-047 Q4).
    opda-x:proprietor-role-a
        a opda:Proprietor ;
        rdfs:label "Proprietor Role borne by Person A" ;
        opda:playedBy opda-x:person-a .
    
    opda-x:proprietor-role-b
        a opda:Proprietor ;
        rdfs:label "Proprietor Role borne by Person B" ;
        opda:playedBy opda-x:person-b .
    
    # Proprietorship Relator — mediates the two Proprietor Roles (≥2, the relator
    # spine) and binds them against the RegisteredTitle via opda:hasRegisteredTitle
    # (Proprietorship → RegisteredTitle, ODR-0006 §Q3 / ODR-0032 §R2; Council
    # session-047 GATED).
    opda-x:proprietorship
        a opda:Proprietorship ;
        rdfs:label "Joint-tenancy proprietorship of title NK112233" ;
        opda:tenancyKind "joint-tenancy" ;
        opda:mediates opda-x:proprietor-role-a , opda-x:proprietor-role-b ;
        opda:hasRegisteredTitle opda-x:title .
    

    Expected SHACL validation report

    # proprietorship-relator-multi-proprietor-expected-report.ttl — paired SHACL validation report
    # Generated by opda-gen 1.0.2; DO NOT HAND-EDIT.
    # Specification: https://opda.org.uk/pdtf/harness/adr/ADR-0007-ontology-generator-specification
    # Implementation: https://opda.org.uk/pdtf/harness/adr/ADR-0014-baspi5-round-trip-mvp-harness
    # Ratifying ODR: ODR-0004 §8a (diagnostic exemplar pairing).
    # Comparison is semantic-equivalence (focusNode, resultPath, severity, constraint, message) per tests/baspi5_round_trip/compare_reports.py.
    
    @prefix dct: <http://purl.org/dc/terms/> .
    @prefix opda: <https://opda.org.uk/pdtf/> .
    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix sh: <http://www.w3.org/ns/shacl#> .
    @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
    
    <https://opda.org.uk/pdtf/harness/data/exemplar-reports/report>
        rdf:type sh:ValidationReport ;
        dct:source <https://opda.org.uk/pdtf/harness/data/exemplar/proprietorship-relator-multi-proprietor> ;
        sh:conforms "true"^^xsd:boolean .
    

    The full exemplar catalogue and round-trip contract: Exemplars; the shapes this graph validates against: SHACL shapes; the overlay profiles it loads: Overlay profiles.