# AUTHORED-BY Claude Opus 4.8 (Fable unavailable) — re-review/upgrade candidate # @prefix core: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix xsd: . @prefix dcterms: . @prefix skos: . @prefix time: . @prefix vann: . @prefix gufo: . @prefix qudt: . # ============================================================================= # Solid Core Ontology (SCO) — RE-BASED onto gUFO (UFO foundation). # # This is the v1 re-base of the v0 thin Solid Core, per recommendation R11 # (spec/recommendations/11-foundation-tiering-formalisation.md §1.3). Every # cross-sector root is now typed with a gUFO meta-type — gufo:Kind / SubKind / # Category / Relator / Role(Mixin) / Phase / Event / Situation / Mixin — instead # of a bare owl:Class rooted at a bespoke core:Entity. This carries real # ontological force: rigid-vs-anti-rigid discipline, reified relators, and # role/phase separation that keep independently-authored sector and jurisdiction # models non-overlapping (R11 §1.1). # # AUTHORING PROVENANCE: this file was AUTHORED as an OntoUML model # (solid-core.ontouml.json), verified anti-pattern-free by # OntoumlVerification.verify() (F3 gate, 0 issues), transformed to gUFO-OWL by # ontouml-js Ontouml2Gufo (solid-core.gufo.ttl backbone), then ENRICHED here # with F1 definitions, domains/ranges, annotation-property declarations, and the # property spine the v0 carried. The backbone's structural axioms (mediation # cardinalities, phase partitions, subclass spine) are preserved verbatim. # # The consistency engine resolves gUFO owl:imports to local files via imports/catalog-v001.xml (OASIS XML). # # FORMALISATION GATE (R11 §2): F1 definition, F2 gUFO stereotype, F3 OntoUML # well-formedness, F4 SHACL shape (solid-core.shacl.ttl), F5 OWL 2 DL validity, # F6 reasoner consistency over the pinned closure. All pass — see the track # verification report. # # DESIGN STANCE: open-world by default; SHACL profiles (solid-core.shacl.ttl) # carry the closed-world MUST/SHOULD contract. This file licenses meaning; the # shape checks conformance. External vocabulary bridges (gist/PROV/Org/vCard/ # SKOS/schema.org) live in the SEPARATE optional solid-core-alignments.ttl. # ============================================================================= a owl:Ontology ; dcterms:title "Solid Core Ontology (gUFO re-base)"@en ; rdfs:label "Solid Core Ontology"@en ; vann:preferredNamespacePrefix "core" ; vann:preferredNamespaceUri "https://w3id.org/jeswr/core#" ; owl:versionInfo "1.0.1" ; owl:versionIRI ; owl:imports ; dcterms:description """The foundational ontology of the Solid data federation, re-based onto gUFO (the gentle OWL-2-DL implementation of the Unified Foundational Ontology). Every sector and jurisdiction ontology imports and constrains-but-never-forks these terms. v1 is a BREAKING re-base of v0: the meta-types change the meaning of every root (e.g. core:Relationship and core:Account are now gufo:Relator, not bare classes), so this is a new MAJOR version. The single mandatory import is now gUFO + this thin profile. External vocabularies are reached via the companion alignments file, never re-derived."""@en ; dcterms:modified "2026-06-13"^^xsd:date ; rdfs:comment "Re-based per R11 §1.3. v1.0.1 ADDITIVE: adds core:Quantity (a foundational reified quantity value) + core:numericValue/core:unit; no existing term changed."@en . # ----------------------------------------------------------------------------- # Annotation-property declarations (F5: the v0 DL-authoring gap — ROBOT # validate-profile flagged undeclared dcterms:/vann: as untyped). Declared so # the merged closure is unambiguously OWL 2 DL. # ----------------------------------------------------------------------------- dcterms:title a owl:AnnotationProperty . dcterms:description a owl:AnnotationProperty . dcterms:modified a owl:AnnotationProperty . vann:preferredNamespacePrefix a owl:AnnotationProperty . vann:preferredNamespaceUri a owl:AnnotationProperty . skos:definition a owl:AnnotationProperty . skos:scopeNote a owl:AnnotationProperty . # ----------------------------------------------------------------------------- # External classes referenced in domains/ranges, declared so the DL profile is # satisfied even when their host ontology is not in the reasoned closure # (W3C OWL-Time is a Mode-C vendored import; declaring the punned class is the # F5 fix R11 §4 calls for). # ----------------------------------------------------------------------------- time:TemporalEntity a owl:Class ; rdfs:label "Temporal Entity"@en ; rdfs:isDefinedBy . # QUDT Unit — range of core:unit; declared (punned) so the DL profile holds even # when the QUDT slim is not in the reasoned closure (the F5 pattern, R11 §4). qudt:Unit a owl:Class ; rdfs:label "QUDT Unit"@en ; rdfs:isDefinedBy . # ============================================================================= # AGENCY — who can act, hold, and be attributed # R11 §1.3: Agent = gufo:Category (rigid, cross-kind); # Person/Organization/SoftwareAgent = gufo:Kind; Group = collective Kind. # ============================================================================= core:Agent a owl:Class, gufo:Category ; rdfs:subClassOf gufo:Object ; rdfs:label "Agent"@en ; skos:definition "An entity that can act, hold assets and accounts, and bear attributed responsibility — a Person, Organization, SoftwareAgent, or Group. A rigid, cross-kind category: it spans several kinds without itself supplying a principle of identity."@en ; skos:scopeNote "gufo:Category — rigid non-sortal. Members get their identity from the Person/Organization/SoftwareAgent/Group kind they instantiate."@en . core:Person a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex, core:Agent ; rdfs:label "Person"@en ; skos:definition "A person able to act as an agent — the bearer of identity for human (natural) and, by sub-kinding, legal-person agency. The subject of most personal data in a Solid pod."@en ; skos:scopeNote "gufo:Kind — supplies a rigid principle of identity. Specialised by the NaturalPerson sub-kind."@en . core:Organization a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex, core:Agent ; rdfs:label "Organization"@en ; skos:definition "A legal or social organization able to act as an agent — a company, public body, or association. Aligns to W3C Org in the alignments file."@en ; skos:scopeNote "gufo:Kind. Specialised by the LegalPerson sub-kind for regulated legal-entity contexts."@en . core:SoftwareAgent a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex, core:Agent ; rdfs:label "Software Agent"@en ; skos:definition "A non-human agent that acts on a principal's behalf — an application or an AI agent. The acting party recorded in a write receipt (governance plane L1)."@en ; skos:scopeNote "gufo:Kind."@en . core:Group a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:VariableCollection, core:Agent ; rdfs:label "Group"@en ; skos:definition "A collection of agents treated as one acting or holding party (a household, a team). A collective with possibly-varying membership."@en ; skos:scopeNote "gufo:Kind over a gufo:VariableCollection (collective nature)."@en . core:NaturalPerson a owl:Class, gufo:SubKind ; rdfs:subClassOf core:Person ; rdfs:label "Natural Person"@en ; skos:definition "A human being recognised as a person. The identity-preserving sub-kind of Person that bears life-stage phases (Minor/Adult) and is the data subject of personal-data sectors."@en ; skos:scopeNote "gufo:SubKind of the Person kind."@en . core:LegalPerson a owl:Class, gufo:SubKind ; rdfs:subClassOf core:Organization ; rdfs:label "Legal Person"@en ; skos:definition "An organization recognised as a bearer of legal rights and duties (a registered company, an incorporated body). The sub-kind specialised by jurisdiction-scoped legal-entity profiles."@en ; skos:scopeNote "gufo:SubKind of the Organization kind."@en . # ============================================================================= # IDENTITY — naming agents and entities across services # R11 §1.3: Identifier / IdentifierScheme = gufo:Object (information object); # scheme values also bind to skos:Concept (alignments). # ============================================================================= core:Identifier a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex ; rdfs:label "Identifier"@en ; skos:definition "A value that identifies an entity within some scheme (an account number, NI number, ISIN, patient MRN). The anchor for KYC and identity reuse."@en ; skos:scopeNote "gufo:Kind (information object). Its literal value carried by core:value; its scheme by core:inScheme."@en . core:IdentifierScheme a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex ; rdfs:label "Identifier Scheme"@en ; skos:definition "The authority and namespace within which an Identifier is unique and meaningful (ISO 6166 for ISINs, an NHS numbering scheme)."@en ; skos:scopeNote "gufo:Kind (information object). Governed by an Agent via core:schemeAuthority."@en . core:identifiedBy a owl:ObjectProperty ; rdfs:label "identified by"@en ; rdfs:domain gufo:Endurant ; rdfs:range core:Identifier ; skos:definition "Relates an endurant to one of its identifiers."@en . core:inScheme a owl:ObjectProperty ; rdfs:label "in scheme"@en ; rdfs:domain core:Identifier ; rdfs:range core:IdentifierScheme ; skos:definition "The scheme an identifier belongs to and within which it is unique."@en . core:schemeAuthority a owl:ObjectProperty ; rdfs:label "scheme authority"@en ; rdfs:domain core:IdentifierScheme ; rdfs:range core:Agent ; skos:definition "The agent (usually an Organization) that governs a scheme — who may issue identifiers in it. Ties to the trust framework."@en . core:value a owl:DatatypeProperty ; rdfs:label "value"@en ; rdfs:domain core:Identifier ; skos:definition "The literal value of an identifier."@en . # ============================================================================= # HOLDINGS — assets, accounts, ownership and custody # R11 §1.3: Asset = gufo:Object kind; # Account = gufo:Relator (a standing relationship, not a thing), # status carried by gufo:Phase (Active/Frozen/Closed). # ============================================================================= core:Asset a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex ; rdfs:label "Asset"@en ; skos:definition "Something of value that can be owned or held — financial (a holding), informational (a licensed track), or physical."@en ; skos:scopeNote "gufo:Kind (object)."@en . core:Account a owl:Class, gufo:Relator ; rdfs:subClassOf gufo:Relator ; rdfs:label "Account"@en ; skos:definition "A standing relationship between an account-holder agent and a provider agent through which assets, records, or activity are managed (a bank account, a streaming account). A reified relator, not a thing — it carries parties, time, jurisdiction, and lifecycle status."@en ; skos:scopeNote "gufo:Relator. Mediates AccountHolder and AccountProvider (≥1 each, see the mediation axioms). Lifecycle status via the ActiveAccount/FrozenAccount/ClosedAccount phase partition."@en . core:owns a owl:ObjectProperty ; rdfs:label "owns"@en ; rdfs:domain core:Agent ; rdfs:range core:Asset ; skos:definition "The agent that holds title to an asset. Distinct from custody (who physically holds it)."@en . core:custodian a owl:ObjectProperty ; rdfs:label "custodian"@en ; rdfs:domain gufo:Endurant ; rdfs:range core:Agent ; skos:definition "The agent that holds or controls an entity without necessarily owning it (a bank holding funds, a pod provider holding data)."@en . core:status a owl:ObjectProperty ; rdfs:label "status"@en ; rdfs:domain core:Account ; rdfs:range core:Category ; skos:definition "The coded lifecycle status of an account, drawn from a managed scheme. The phase partition (Active/Frozen/Closed) is the ontological backbone; this property carries the operational coded value used in data and SHACL value-set binding."@en . # ============================================================================= # INFORMATION — records, datasets, documents about subjects # R11 §1.3: InformationResource / Record = gufo:Object (information object); # keep the subject-vs-document split. # ============================================================================= core:InformationResource a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex ; rdfs:label "Information Resource"@en ; skos:definition "A document, dataset, or record — an information object, as opposed to the real-world thing it is about."@en ; skos:scopeNote "gufo:Kind (information object). The document side of the document-vs-subject split."@en . core:Record a owl:Class, gufo:SubKind ; rdfs:subClassOf core:InformationResource ; rdfs:label "Record"@en ; skos:definition "A structured information resource capturing facts about a subject at or over a time (a transaction record, a lab result, a calendar entry)."@en ; skos:scopeNote "gufo:SubKind of InformationResource."@en . core:about a owl:ObjectProperty ; rdfs:label "about"@en ; rdfs:domain core:InformationResource ; rdfs:range gufo:Endurant ; skos:definition "The real-world entity an information resource describes. Keeping subject distinct from document is essential for provenance and access control."@en . core:subject a owl:ObjectProperty ; rdfs:subPropertyOf core:about ; rdfs:label "subject"@en ; rdfs:domain core:Record ; rdfs:range core:Agent ; skos:definition "The agent a record is primarily about (the data subject)."@en . # ============================================================================= # QUANTITY — a reified quantity VALUE (value + unit). v1.0.1, ADDITIVE. # R11 §1.3 follow-up: cross-sector foundational concept for measured magnitudes — # monetary amounts (fin:MonetaryAmount), vital-sign values (health observations). # Modelled like qudt:QuantityValue: a gufo:Kind whose instances are value objects # rooting in gufo:Object (NOT gufo:Quantity, which in gUFO is an amount-of-matter). # ============================================================================= core:Quantity a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:Object ; rdfs:label "Quantity"@en ; skos:definition "A reified quantity value: a numeric magnitude paired with a unit of measure (a monetary amount, a heart-rate reading, a duration). A value object, modelled on qudt:QuantityValue — the cross-sector root every measured/valued quantity specialises. Not an Agent, Account, Asset, or Event."@en ; skos:scopeNote "gufo:Kind (Object value). Magnitude via core:numericValue; unit via core:unit (a qudt:Unit). Sectors subclass this for typed quantities (e.g. fin:MonetaryAmount, health observation values)."@en . core:numericValue a owl:DatatypeProperty ; rdfs:label "numeric value"@en ; rdfs:domain core:Quantity ; rdfs:range xsd:decimal ; skos:definition "The numeric magnitude of a quantity value (xsd:decimal; an xsd:double sub-value is admissible where higher-range precision is needed). The unit is carried separately by core:unit."@en . core:unit a owl:ObjectProperty ; rdfs:label "unit"@en ; rdfs:domain core:Quantity ; rdfs:range qudt:Unit ; skos:definition "The unit of measure of a quantity value, a qudt:Unit (reusing QUDT before minting). For a monetary amount the 'unit' is an ISO 4217 currency; sectors MAY bind a currency/UCUM code alongside via their own property."@en . # ============================================================================= # ACTIVITY & EVENT — things that happen, and participation in them # R11 §1.3: Activity and Event = gufo:Event (perdurants). # ============================================================================= core:Activity a owl:Class, gufo:EventType ; rdfs:subClassOf gufo:Event ; rdfs:label "Activity"@en ; skos:definition "Something that occurs over time and acts upon or generates entities (a payment, a data import, an appointment). Aligns to prov:Activity."@en ; skos:scopeNote "gufo:EventType — its instances are gufo:Event perdurants."@en . core:Event a owl:Class, gufo:EventType ; rdfs:subClassOf gufo:Event ; rdfs:label "Event"@en ; skos:definition "An occurrence located in time and (optionally) place that agents may participate in or observe (a concert, a transaction posting)."@en ; skos:scopeNote "gufo:EventType — its instances are gufo:Event perdurants."@en . core:performedBy a owl:ObjectProperty ; rdfs:label "performed by"@en ; rdfs:domain core:Activity ; rdfs:range core:Agent ; skos:definition "The agent that carried out an activity."@en . core:hadParticipant a owl:ObjectProperty ; rdfs:label "had participant"@en ; rdfs:domain core:Event ; rdfs:range core:Agent ; skos:definition "An agent that took part in an event."@en . # ============================================================================= # SITUATION — jurisdiction-relative recognition (Part 3 hook) # R11 §1.3 / §3.5: recognition contexts = gufo:Situation; the legal-gender / # legal-adult facts are reified jurisdiction-scoped claims grounded as relators # obtaining in such a situation. # ============================================================================= core:RecognitionSituation a owl:Class, gufo:SituationType ; rdfs:subClassOf gufo:Situation ; rdfs:label "Recognition Situation"@en ; skos:definition "A situation in which a fact about a person holds relative to a recognising authority or jurisdiction — 'person-as-recognised-by-government-X'. The foundational grounding for the reified, jurisdiction-scoped claims of §3.5 (legal gender, legal adulthood)."@en ; skos:scopeNote "gufo:Situation. Jurisdictional sub-federations specialise this with their value sets and authorities."@en . # ============================================================================= # TEMPORAL & SPATIAL location (reuse W3C Time + a thin Place) # ============================================================================= core:Place a owl:Class, gufo:Kind ; rdfs:subClassOf gufo:FunctionalComplex ; rdfs:label "Place"@en ; skos:definition "A spatial location. Reuse W3C Basic Geo / GeoSPARQL for coordinates via the alignments file."@en ; skos:scopeNote "gufo:Kind."@en . core:atTime a owl:ObjectProperty ; rdfs:label "at time"@en ; rdfs:range time:TemporalEntity ; skos:definition "Associates an entity (typically an Event, Activity, or Record) with a W3C Time temporal entity (instant or interval). No rdfs:domain: it spans both endurants and events/situations, which gUFO holds disjoint, so a domain axiom would force inconsistent typing — intended usage is enforced in SHACL instead."@en . core:timestamp a owl:DatatypeProperty ; rdfs:label "timestamp"@en ; rdfs:range xsd:dateTime ; skos:definition "A simple instant when literal-level precision is enough (e.g. record creation)."@en . core:validFrom a owl:DatatypeProperty ; rdfs:label "valid from"@en ; rdfs:range xsd:dateTime ; skos:definition "Start of an entity's validity or applicability period."@en . core:validUntil a owl:DatatypeProperty ; rdfs:label "valid until"@en ; rdfs:range xsd:dateTime ; skos:definition "End of an entity's validity or applicability period."@en . core:atPlace a owl:ObjectProperty ; rdfs:label "at place"@en ; rdfs:range core:Place ; skos:definition "The place an entity (endurant or event) is located at or associated with. No rdfs:domain — endurants and events are disjoint in gUFO; intended usage is enforced in SHACL."@en . # ============================================================================= # RELATIONSHIP — reified relationships between agents # R11 §1.3: Relationship = gufo:Relator (the central upgrade). Employment, # Delegation, Agreement, KYC, Consent subclass this in sectors, carrying # parties + time + jurisdiction + provenance. The v0 string-valued # core:relationshipRole is REPLACED by proper gufo:Role(Mixin)s below. # ============================================================================= core:Relationship a owl:Class, gufo:Relator ; rdfs:subClassOf gufo:Relator ; rdfs:label "Relationship"@en ; skos:definition "A reified relationship between agents, carrying the parties, a time span, a jurisdiction, and provenance (employment, family, agency/delegation). The central gUFO upgrade: sector relationships (Employment, Delegation, Agreement, KYC, Consent) subclass this relator."@en ; skos:scopeNote "gufo:Relator. Mediates ≥1 RelationshipParty role (the mediation axiom)."@en . # ============================================================================= # ROLES — derived from relators; replace the v0 string relationshipRole. # R11 §1.3: account-holder, custodian, data-subject, relationship-party etc. # = gufo:Role (or gufo:RoleMixin when cross-kind). Here all are cross-kind # (any Agent kind can play them), so gufo:RoleMixin. # ============================================================================= core:AccountHolder a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Account Holder"@en ; skos:definition "The role of the agent to whom an account belongs, played contingently and relationally while the Account relator mediates that agent."@en ; skos:scopeNote "gufo:RoleMixin (cross-kind, anti-rigid). Derived from the Account relator via the hasAccountHolder mediation."@en . core:AccountProvider a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Account Provider"@en ; skos:definition "The role of the agent (usually an Organization) that provides and administers an account."@en ; skos:scopeNote "gufo:RoleMixin. Derived from the Account relator via the hasAccountProvider mediation."@en . core:Custodian a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Custodian"@en ; skos:definition "The role of an agent that holds or controls an entity without necessarily owning it."@en ; skos:scopeNote "gufo:RoleMixin."@en . core:Owner a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Owner"@en ; skos:definition "The role of an agent that holds title to an asset."@en ; skos:scopeNote "gufo:RoleMixin."@en . core:DataSubject a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Data Subject"@en ; skos:definition "The role of the agent whom personal data is about — the data subject of a record, in the GDPR/personal-data sense."@en ; skos:scopeNote "gufo:RoleMixin (cross-kind, anti-rigid)."@en . core:RelationshipParty a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Relationship Party"@en ; skos:definition "The role of an agent party to a reified Relationship. Sector role-mixins (Employer, Delegate, Patient, Customer) specialise this."@en ; skos:scopeNote "gufo:RoleMixin. Derived from the Relationship relator via the relatesParty mediation. Replaces the v0 string-valued core:relationshipRole."@en . core:SchemeAuthority a owl:Class, gufo:RoleMixin ; rdfs:subClassOf core:Agent ; rdfs:label "Scheme Authority"@en ; skos:definition "The role of an agent that governs an identifier scheme — who may issue identifiers within it."@en ; skos:scopeNote "gufo:RoleMixin."@en . # --- mediation properties (relator → role, sub-properties of gufo:mediates) --- core:hasAccountHolder a owl:ObjectProperty ; rdfs:subPropertyOf gufo:mediates ; rdfs:domain core:Account ; rdfs:range core:AccountHolder ; rdfs:label "has account holder"@en ; skos:definition "Mediation tying an Account relator to the agent playing the AccountHolder role."@en . core:hasAccountProvider a owl:ObjectProperty ; rdfs:subPropertyOf gufo:mediates ; rdfs:domain core:Account ; rdfs:range core:AccountProvider ; rdfs:label "has account provider"@en ; skos:definition "Mediation tying an Account relator to the agent playing the AccountProvider role."@en . core:relatesParty a owl:ObjectProperty ; rdfs:subPropertyOf gufo:mediates ; rdfs:domain core:Relationship ; rdfs:range core:RelationshipParty ; rdfs:label "relates party"@en ; skos:definition "Mediation tying a Relationship relator to an agent playing a RelationshipParty role. Replaces v0 core:relatesAgent + core:relationshipRole."@en . # --- relator mediation axioms (B2: ported verbatim from the Ontouml2Gufo backbone # solid-core.gufo.ttl). Each relator mediates >=1 of its role(s); the inverse # someValuesFrom ties a role-player back to the mediating relator. Dropping these # left the relators with no mediation force; restored to match the header's # "structural axioms ... preserved verbatim" claim. --- core:AccountHolder rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty [ owl:inverseOf core:hasAccountHolder ]; owl:someValuesFrom core:Account ] . core:Account rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty core:hasAccountHolder; owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger; owl:onClass core:AccountHolder ] . core:AccountProvider rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty [ owl:inverseOf core:hasAccountProvider ]; owl:someValuesFrom core:Account ] . core:Account rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty core:hasAccountProvider; owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger; owl:onClass core:AccountProvider ] . core:RelationshipParty rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty [ owl:inverseOf core:relatesParty ]; owl:someValuesFrom core:Relationship ] . core:Relationship rdfs:subClassOf [ rdf:type owl:Restriction; owl:onProperty core:relatesParty; owl:minQualifiedCardinality "1"^^xsd:nonNegativeInteger; owl:onClass core:RelationshipParty ] . # ============================================================================= # PHASES — status / life-stage. R11 §1.3: status/life-stage enums = gufo:Phase # (ontologically distinct from roles). Account-status phases partition the # Account relator; life-stage phases partition NaturalPerson. # ============================================================================= core:ActiveAccount a owl:Class, gufo:Phase ; rdfs:subClassOf core:Account ; rdfs:label "Active Account"@en ; skos:definition "The phase of an Account that is open and operable."@en ; skos:scopeNote "gufo:Phase of the Account relator. Member of the accountStatus partition."@en . core:FrozenAccount a owl:Class, gufo:Phase ; rdfs:subClassOf core:Account ; rdfs:label "Frozen Account"@en ; skos:definition "The phase of an Account that is temporarily suspended (e.g. for a compliance hold)."@en ; skos:scopeNote "gufo:Phase of the Account relator. Member of the accountStatus partition."@en . core:ClosedAccount a owl:Class, gufo:Phase ; rdfs:subClassOf core:Account ; rdfs:label "Closed Account"@en ; skos:definition "The phase of an Account that has been terminated."@en ; skos:scopeNote "gufo:Phase of the Account relator. Member of the accountStatus partition."@en . core:Minor a owl:Class, gufo:Phase ; rdfs:subClassOf core:NaturalPerson ; rdfs:label "Minor"@en ; skos:definition "The life-stage phase of a natural person below the age of majority. Age of majority is a jurisdiction-scoped value (R11 §3) — this is the global abstract slot."@en ; skos:scopeNote "gufo:Phase of NaturalPerson. Member of the lifeStage partition."@en . core:Adult a owl:Class, gufo:Phase ; rdfs:subClassOf core:NaturalPerson ; rdfs:label "Adult"@en ; skos:definition "The life-stage phase of a natural person at or above the age of majority. Where the boundary lies is a jurisdiction-scoped profile."@en ; skos:scopeNote "gufo:Phase of NaturalPerson. Member of the lifeStage partition."@en . # --- phase partitions (preserved from the OntoUML source / Ontouml2Gufo backbone) --- # B2/M1: DISJOINT, complete partitions. Ontouml2Gufo emits only owl:unionOf for an # anti-rigid (Phase) partition (completeness), dropping pairwise disjointness — so an # individual typed ActiveAccount AND ClosedAccount (or Minor AND Adult) stayed consistent. # owl:disjointUnionOf gives both in one axiom: union (complete) + pairwise disjoint, # matching how finance.ttl asserts its FinancialAccount status partition. core:Account owl:disjointUnionOf ( core:ActiveAccount core:FrozenAccount core:ClosedAccount ) . core:NaturalPerson owl:disjointUnionOf ( core:Minor core:Adult ) . # ============================================================================= # CONTROLLED VOCABULARY — coded values shared by every sector # R11 §1.3: Category = keep; gUFO non-sortal Mixin + skos:Concept (alignments). # ============================================================================= core:Category a owl:Class, gufo:Mixin ; rdfs:subClassOf gufo:Object ; rdfs:label "Category"@en ; skos:definition "A controlled-vocabulary value: a status, type, role, or classification drawn from a managed scheme (an RSVP state, an account type, a clinical code). The shared root every sector's enumerations hang off; aligned to skos:Concept in the alignments file."@en ; skos:scopeNote "gufo:Mixin — a non-sortal whose instances are coded values. Bound to skos:Concept in solid-core-alignments.ttl."@en . # ============================================================================= # MEREOLOGY — part/whole, shared by every sector (sub-properties of the gUFO # parthood spine where applicable; kept transitive for the thin profile). # ============================================================================= core:partOf a owl:ObjectProperty, owl:TransitiveProperty ; rdfs:label "part of"@en ; rdfs:domain gufo:Endurant ; rdfs:range gufo:Endurant ; skos:definition "Transitive part-whole relation between endurants."@en . core:hasPart a owl:ObjectProperty, owl:TransitiveProperty ; owl:inverseOf core:partOf ; rdfs:label "has part"@en ; rdfs:domain gufo:Endurant ; rdfs:range gufo:Endurant ; skos:definition "Inverse of core:partOf."@en .