@prefix gedrm: <https://specs.kivanura.org/gedrm#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@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#> .

<https://specs.kivanura.org/gedrm/0.1> a owl:Ontology ;
  dcterms:title "GEDRM 0.1 — Generic Enterprise Data Reference Model Ontology" ;
  dcterms:identifier "GEDRM-0.1" ;
  dcterms:description "RDF/OWL companion ontology for the normative GEDRM 0.1 human-readable specification." ;
  owl:versionInfo "0.1" ;
  owl:versionIRI <https://specs.kivanura.org/gedrm/0.1/ontology> ;
  dcterms:issued "2026-09-08"^^xsd:date ;
  rdfs:seeAlso <https://specs.kivanura.org/spec/gedrm/0.1/gedrm-0.1.context.jsonld> ,
               <https://specs.kivanura.org/spec/gedrm/0.1/gedrm-0.1.concept-registry.yaml> ;
  gedrm:normativeSemanticAuthority "gedrm-specification.md" ;
  gedrm:precedenceRule "The human-readable GEDRM 0.1 specification is the normative semantic authority. Machine-readable artefacts MUST remain semantically consistent with it." .

#################################################################
# Ontology metadata properties
#################################################################

gedrm:conceptId a owl:AnnotationProperty ; rdfs:label "concept identifier" .
gedrm:status a owl:AnnotationProperty ; rdfs:label "status" .
gedrm:introducedIn a owl:AnnotationProperty ; rdfs:label "introduced in" .
gedrm:primaryQuestion a owl:AnnotationProperty ; rdfs:label "primary question" .
gedrm:normativeSemanticAuthority a owl:AnnotationProperty ; rdfs:label "normative semantic authority" .
gedrm:precedenceRule a owl:AnnotationProperty ; rdfs:label "precedence rule" .

#################################################################
# Formal concept-kind taxonomy
#################################################################

gedrm:GEDRMConcept a owl:Class ; rdfs:label "GEDRM Concept" .
gedrm:ActorParty a owl:Class ;
  rdfs:label "Actor / Party" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:Role a owl:Class ;
  rdfs:label "Role" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:AccountabilityGovernanceRole a owl:Class ;
  rdfs:label "Accountability / Governance Role" ;
  rdfs:subClassOf gedrm:Role .

gedrm:OperationalDataFlowRole a owl:Class ;
  rdfs:label "Operational / Data-Flow Role" ;
  rdfs:subClassOf gedrm:Role .

gedrm:LegalPrivacyRole a owl:Class ;
  rdfs:label "Legal / Privacy Role" ;
  rdfs:subClassOf gedrm:Role .

gedrm:DataObjectKind a owl:Class ;
  rdfs:label "Data Object / Data Asset" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:DataClassification a owl:Class ;
  rdfs:label "Data Classification" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:BusinessSemanticClassification a owl:Class ;
  rdfs:label "Business / Semantic Classification" ;
  rdfs:subClassOf gedrm:DataClassification .

gedrm:ProvenanceClassification a owl:Class ;
  rdfs:label "Provenance Classification" ;
  rdfs:subClassOf gedrm:DataClassification .

gedrm:LegalSensitivityClassification a owl:Class ;
  rdfs:label "Legal / Sensitivity Classification" ;
  rdfs:subClassOf gedrm:DataClassification .

gedrm:ProcessingGovernanceState a owl:Class ;
  rdfs:label "Processing / Governance State" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:DataRepresentation a owl:Class ;
  rdfs:label "Data Representation" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:ActivityProcess a owl:Class ;
  rdfs:label "Activity / Process" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:GovernedConstruct a owl:Class ;
  rdfs:label "Governed Construct" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:NormativeArtefact a owl:Class ;
  rdfs:label "Normative Artefact" ;
  rdfs:subClassOf gedrm:GovernedConstruct .

gedrm:InteractionArtefact a owl:Class ;
  rdfs:label "Interaction Artefact" ;
  rdfs:subClassOf gedrm:GovernedConstruct .

gedrm:EvaluationArtefact a owl:Class ;
  rdfs:label "Evaluation Artefact" ;
  rdfs:subClassOf gedrm:GovernedConstruct .

gedrm:AssuranceMechanism a owl:Class ;
  rdfs:label "Assurance Mechanism" ;
  rdfs:subClassOf gedrm:GovernedConstruct .

gedrm:AssuranceEvidence a owl:Class ;
  rdfs:label "Assurance Evidence" ;
  rdfs:subClassOf gedrm:GovernedConstruct .

gedrm:ExecutableGovernanceRepresentation a owl:Class ;
  rdfs:label "Executable Governance Representation" ;
  rdfs:subClassOf gedrm:GovernedConstruct .

gedrm:Relationship a owl:Class ;
  rdfs:label "Relationship" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

gedrm:ExternalTraceabilityReference a owl:Class ;
  rdfs:label "External Traceability Reference" ;
  rdfs:subClassOf gedrm:GEDRMConcept .

#################################################################
# Classification dimensions
#################################################################

gedrm:hasBusinessSemanticClassification a owl:ObjectProperty ;
  rdfs:label "has business / semantic classification" ;
  rdfs:domain gedrm:DataObject ;
  rdfs:range gedrm:BusinessSemanticClassification .

gedrm:hasProvenanceClassification a owl:ObjectProperty ;
  rdfs:label "has provenance classification" ;
  rdfs:domain gedrm:DataObject ;
  rdfs:range gedrm:ProvenanceClassification .

gedrm:hasProcessingGovernanceState a owl:ObjectProperty ;
  rdfs:label "has processing / governance state" ;
  rdfs:domain gedrm:DataObject ;
  rdfs:range gedrm:ProcessingGovernanceState .

gedrm:hasLegalSensitivityClassification a owl:ObjectProperty ;
  rdfs:label "has legal / sensitivity classification" ;
  rdfs:domain gedrm:DataObject ;
  rdfs:range gedrm:LegalSensitivityClassification .

#################################################################
# Core GEDRM concepts
#################################################################

gedrm:DataOriginator a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-OA-001" ;
  rdfs:label "Data Originator" ;
  skos:definition "A party that originally creates data." ;
  gedrm:primaryQuestion "Where did the data first originate?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataProducer a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-OA-002" ;
  rdfs:label "Data Producer" ;
  skos:definition "A party or capability that creates, captures, generates, or introduces data into a defined data flow." ;
  gedrm:primaryQuestion "Who introduces the data into this flow?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:SystemOfRecord a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-OA-003" ;
  rdfs:label "System of Record" ;
  skos:definition "A system responsible for maintaining authoritative operational business state for a defined scope." ;
  gedrm:primaryQuestion "Where is the authoritative business state maintained?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:AuthoritativeSource a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-OA-004" ;
  rdfs:label "Authoritative Source" ;
  skos:definition "A source formally recognized as the approved or trusted source from which defined data SHOULD be obtained, validated, or reused for a defined scope or purpose." ;
  gedrm:primaryQuestion "From where should defined data be obtained or validated?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataHolder a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-OA-005" ;
  rdfs:label "Data Holder" ;
  skos:definition "A party having legal, contractual, custodial, or equivalent authority sufficient to possess, control, or authorize use or processing of data within a defined context." ;
  gedrm:primaryQuestion "Who is entitled or responsible to hold or authorize use of the data in this context?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataTransformer a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-PM-001" ;
  rdfs:label "Data Transformer" ;
  skos:definition "A party or capability that materially changes data values, structure, semantics, representation, or derivation state." ;
  gedrm:primaryQuestion "Who or what materially transforms the data?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataTransportRelay a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-PM-002" ;
  rdfs:label "Data Transport / Relay" ;
  skos:definition "A party or capability that moves or relays data without materially changing its business meaning." ;
  gedrm:primaryQuestion "Who or what moves the data?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataProvider a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-PM-003" ;
  rdfs:label "Data Provider" ;
  skos:definition "A party or capability that makes data available for access, retrieval, receipt, or consumption." ;
  gedrm:primaryQuestion "Who makes the data available?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataPublisher a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-PM-004" ;
  rdfs:label "Data Publisher" ;
  skos:definition "A party or capability that intentionally exposes or releases data through a defined publication context, interface, version, contract, policy, or product promise." ;
  gedrm:primaryQuestion "Who deliberately publishes or releases the data?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataDistributor a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-PM-005" ;
  rdfs:label "Data Distributor" ;
  skos:definition "A party or capability responsible for delivering or distributing data from a source, provider, or publisher to permitted recipients or consumers." ;
  gedrm:primaryQuestion "Who delivers the data?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataBroker a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-PM-006" ;
  rdfs:label "Data Broker" ;
  skos:definition "An intermediary that mediates discovery, selection, access, exchange, routing, policy, entitlement, or the provider-consumer relationship without necessarily originating, owning, publishing, or physically delivering the data." ;
  gedrm:primaryQuestion "Who mediates the data relationship?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataObject a owl:Class, gedrm:DataObjectKind ;
  dcterms:identifier "GEDRM-DO-001" ;
  rdfs:label "Data Object" ;
  skos:definition "An identifiable body, element, collection, or representation of data that may be classified, governed, processed, exchanged, or consumed." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataAsset a owl:Class, gedrm:DataObjectKind ;
  dcterms:identifier "GEDRM-MD-001" ;
  rdfs:label "Data Asset" ;
  skos:definition "A Data Object recognized as having actual or potential value and managed accordingly." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdfs:subClassOf gedrm:DataObject .

gedrm:DataProduct a owl:Class, gedrm:DataObjectKind ;
  dcterms:identifier "GEDRM-MD-002" ;
  rdfs:label "Data Product" ;
  skos:definition "A Data Asset intentionally productized as a governed, reusable, consumable, discoverable, versioned, and accountable product with an explicit product promise and consumer-facing obligations." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdfs:subClassOf gedrm:DataAsset .

gedrm:MasterData a owl:Class, gedrm:BusinessSemanticClassification ;
  dcterms:identifier "GEDRM-DC-001" ;
  rdfs:label "Master Data" ;
  skos:definition "Data describing core, relatively persistent, identity-bearing business entities that are shared or reused across multiple business processes, transactions, applications, or organizational contexts." ;
  gedrm:primaryQuestion "Which business thing or entity is this?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:ReferenceData a owl:Class, gedrm:BusinessSemanticClassification ;
  dcterms:identifier "GEDRM-DC-002" ;
  rdfs:label "Reference Data" ;
  skos:definition "Controlled values, codes, classifications, taxonomies, or enumerations used to classify, constrain, interpret, validate, or consistently describe other data." ;
  gedrm:primaryQuestion "Which allowed value, type, category, or classification applies?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:TransactionalData a owl:Class, gedrm:BusinessSemanticClassification ;
  dcterms:identifier "GEDRM-DC-003" ;
  rdfs:label "Transactional Data" ;
  skos:definition "Data representing or evidencing a discrete business event, activity, exchange, instruction, commitment, or state transition involving one or more business entities, usually with an associated occurrence time and business context." ;
  gedrm:primaryQuestion "What business activity or state transition happened?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:MarketData a owl:Class, gedrm:BusinessSemanticClassification ;
  dcterms:identifier "GEDRM-DC-004" ;
  rdfs:label "Market Data" ;
  skos:definition "Data representing observed, quoted, published, calculated, or otherwise established values describing the state or measurable condition of a market, instrument, benchmark, or financial environment at a defined point or period in time." ;
  gedrm:primaryQuestion "What is or was the measurable market state?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:DerivedData a owl:Class, gedrm:ProvenanceClassification ;
  dcterms:identifier "GEDRM-PC-001" ;
  rdfs:label "Derived Data" ;
  skos:definition "Data whose value, structure, classification, or representation is produced from one or more existing data inputs through calculation, transformation, aggregation, inference, enrichment, correlation, reconciliation, or other derivation logic." ;
  gedrm:primaryQuestion "Was this data produced from other data through derivation?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:Mastered a owl:Class, gedrm:ProcessingGovernanceState ;
  dcterms:identifier "GEDRM-GS-001" ;
  rdfs:label "Mastered" ;
  skos:definition "A processing/governance state reached when data has undergone governed matching, identity resolution, reconciliation, standardization, consolidation, survivorship, or equivalent mastering activity." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:GoldenRecord a owl:Class, gedrm:DataRepresentation ;
  dcterms:identifier "GEDRM-DR-001" ;
  rdfs:label "Golden Record" ;
  skos:definition "A governed, reconciled representation of a specific business entity identity produced through mastering and trusted as a preferred enterprise representation for a defined scope." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataRecipient a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-CO-001" ;
  rdfs:label "Data Recipient" ;
  skos:definition "A party or capability that receives data." ;
  gedrm:primaryQuestion "Who receives the data?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataConsumer a owl:Class, gedrm:OperationalDataFlowRole ;
  dcterms:identifier "GEDRM-CO-002" ;
  rdfs:label "Data Consumer" ;
  skos:definition "A party, capability, product, process, or actor that uses data for a defined purpose." ;
  gedrm:primaryQuestion "Who or what uses the data, and for what purpose?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataOwner a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-GA-001" ;
  rdfs:label "Data Owner" ;
  skos:definition "An accountable governance role responsible for defined data and associated management decisions within a governed scope." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataSteward a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-GA-002" ;
  rdfs:label "Data Steward" ;
  skos:definition "A governance role responsible for operational stewardship, meaning, quality, issue management, or other delegated governance activities for defined data." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataCustodian a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-GA-003" ;
  rdfs:label "Data Custodian" ;
  skos:definition "A role responsible for technical custody, safeguarding, storage, handling, or operational protection of data." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataProductOwner a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-GA-004" ;
  rdfs:label "Data Product Owner" ;
  skos:definition "An accountable role responsible for the governed lifecycle, product promise, consumer value, and obligations of a Data Product." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:ControlOwner a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-GA-005" ;
  rdfs:label "Control Owner" ;
  skos:definition "An accountable role responsible for the design, ownership, operation, effectiveness, or governance of a Data Control within a defined scope." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:SourceOfAuthority a owl:Class, gedrm:AccountabilityGovernanceRole ;
  dcterms:identifier "GEDRM-GA-006" ;
  rdfs:label "Source of Authority" ;
  skos:definition "A governance actor or normative basis that establishes, recognizes, or mandates which source, value, or representation is authoritative for a defined data scope." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataController a owl:Class, gedrm:LegalPrivacyRole ;
  dcterms:identifier "GEDRM-LP-001" ;
  rdfs:label "Data Controller" ;
  skos:definition "A natural or legal person, public authority, agency, or other body that, alone or jointly with others, determines the purposes and essential means of processing Personal Data." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataProcessor a owl:Class, gedrm:LegalPrivacyRole ;
  dcterms:identifier "GEDRM-LP-002" ;
  rdfs:label "Data Processor" ;
  skos:definition "A natural or legal person, public authority, agency, or other body that processes Personal Data on behalf of a Data Controller." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:PersonalData a owl:Class, gedrm:LegalSensitivityClassification ;
  dcterms:identifier "GEDRM-LC-001" ;
  rdfs:label "Personal Data" ;
  skos:definition "Data classified as personal data under applicable privacy law." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" ;
  rdf:type owl:NamedIndividual .

gedrm:ProcessingActivity a owl:Class, gedrm:ActivityProcess ;
  dcterms:identifier "GEDRM-AC-001" ;
  rdfs:label "Processing Activity" ;
  skos:definition "A governed activity in which data is collected, used, transformed, stored, disclosed, combined, analyzed, erased, or otherwise processed." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DerivationActivity a owl:Class, gedrm:ActivityProcess ;
  dcterms:identifier "GEDRM-AC-002" ;
  rdfs:label "Derivation Activity" ;
  skos:definition "An activity that produces Derived Data from one or more data inputs through calculation, transformation, aggregation, inference, enrichment, or related derivation logic." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:MasteringActivity a owl:Class, gedrm:ActivityProcess ;
  dcterms:identifier "GEDRM-AC-003" ;
  rdfs:label "Mastering Activity" ;
  skos:definition "A governed activity that performs matching, identity resolution, reconciliation, standardization, consolidation, survivorship, or equivalent mastering operations." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:ControlExecution a owl:Class, gedrm:ActivityProcess ;
  dcterms:identifier "GEDRM-AC-004" ;
  rdfs:label "Control Execution" ;
  skos:definition "A particular execution, invocation, assessment, or application of a Data Control for a defined scope and time." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataPolicy a owl:Class, gedrm:NormativeArtefact ;
  dcterms:identifier "GEDRM-GO-001" ;
  rdfs:label "Data Policy" ;
  skos:definition "A governed normative artefact establishing obligations, permissions, prohibitions, principles, or constraints concerning the management, processing, distribution, consumption, protection, lifecycle, or governance of data." ;
  gedrm:primaryQuestion "What MUST, MAY, or MUST NOT be true?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:PolicyAsCode a owl:Class, gedrm:ExecutableGovernanceRepresentation ;
  dcterms:identifier "GEDRM-GO-002" ;
  rdfs:label "Policy as Code" ;
  skos:definition "An executable representation of one or more resolved and applicable Data Policy obligations." ;
  gedrm:primaryQuestion "What executable representation implements resolved policy?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataContract a owl:Class, gedrm:InteractionArtefact ;
  dcterms:identifier "GEDRM-GO-003" ;
  rdfs:label "Data Contract" ;
  skos:definition "A governed interaction artefact defining semantics, obligations, expectations, interfaces, compatibility conditions, and commitments at a provider, publisher, or Data Product-consumer boundary." ;
  gedrm:primaryQuestion "What has the provider or product committed to?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataQualityRule a owl:Class, gedrm:EvaluationArtefact ;
  dcterms:identifier "GEDRM-GO-004" ;
  rdfs:label "Data Quality Rule" ;
  skos:definition "A governed evaluative artefact defining how a specified data-quality characteristic or condition is measured, determined, or validated." ;
  gedrm:primaryQuestion "How is the quality condition evaluated?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:DataControl a owl:Class, gedrm:AssuranceMechanism ;
  dcterms:identifier "GEDRM-GO-005" ;
  rdfs:label "Data Control" ;
  skos:definition "A governed assurance mechanism that prevents, detects, corrects, verifies, or evidences whether a policy obligation, rule, contract commitment, product promise, regulatory obligation, or equivalent governed expectation is satisfied." ;
  gedrm:primaryQuestion "How is the obligation operationally assured, enforced, detected, evidenced, or remediated?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:ControlEvidence a owl:Class, gedrm:AssuranceEvidence ;
  dcterms:identifier "GEDRM-GO-006" ;
  rdfs:label "Control Evidence" ;
  skos:definition "A governed assurance artefact that records, demonstrates, or substantiates the execution, outcome, exception, remediation, approval, or effectiveness of a Data Control for a defined scope and point or period in time." ;
  gedrm:primaryQuestion "What substantiates that the control operated and what outcome occurred?" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:RequirementReference a owl:Class, gedrm:ExternalTraceabilityReference ;
  dcterms:identifier "GEDRM-TR-001" ;
  rdfs:label "Requirement Reference" ;
  skos:definition "A lightweight reference to an external requirement or source of requirement intent used for traceability from GEDRM governed constructs." ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

#################################################################
# Registered semantic relationships
#################################################################

gedrm:originates a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-001" ;
  rdfs:label "originates" ;
  skos:definition "creates data at its point of origin" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:produces a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-002" ;
  rdfs:label "produces" ;
  skos:definition "introduces data into a defined flow" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:recordsAuthoritativeStateFor a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-003" ;
  rdfs:label "records-authoritative-state-for" ;
  skos:definition "maintains authoritative business state for scope" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:isAuthoritativeSourceFor a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-004" ;
  rdfs:label "is-authoritative-source-for" ;
  skos:definition "is the approved source for a defined data scope" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:transforms a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-005" ;
  rdfs:label "transforms" ;
  skos:definition "materially transforms or derives data" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:transports a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-006" ;
  rdfs:label "transports" ;
  skos:definition "moves data without material semantic transformation" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:provides a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-007" ;
  rdfs:label "provides" ;
  skos:definition "makes data available" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:publishes a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-008" ;
  rdfs:label "publishes" ;
  skos:definition "intentionally exposes or releases data" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:distributes a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-009" ;
  rdfs:label "distributes" ;
  skos:definition "delivers data to recipients or consumers" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:brokersMediates a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-010" ;
  rdfs:label "brokers / mediates" ;
  skos:definition "mediates provider/publisher-consumer interaction" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:derivedFrom a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-011" ;
  rdfs:label "derived-from" ;
  skos:definition "identifies derivation provenance" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:isInputTo a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-012" ;
  rdfs:label "is-input-to" ;
  skos:definition "identifies contextual input role for an activity" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:sourcedFrom a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-013" ;
  rdfs:label "sourced-from" ;
  skos:definition "identifies contextual sourcing relationship" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:masters a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-014" ;
  rdfs:label "masters" ;
  skos:definition "performs mastering activity" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:productizes a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-015" ;
  rdfs:label "productizes" ;
  skos:definition "promotes/manages a Data Asset as a Data Product" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:receives a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-016" ;
  rdfs:label "receives" ;
  skos:definition "receives data" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:consumes a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-017" ;
  rdfs:label "consumes" ;
  skos:definition "uses data for a defined purpose" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:owns a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-018" ;
  rdfs:label "owns" ;
  skos:definition "has accountable governance responsibility" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:stewards a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-019" ;
  rdfs:label "stewards" ;
  skos:definition "performs operational stewardship" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:custodians a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-020" ;
  rdfs:label "custodians" ;
  skos:definition "performs technical custody and safeguarding" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:establishesAuthorityFor a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-021" ;
  rdfs:label "establishes-authority-for" ;
  skos:definition "establishes authority for a defined scope" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:designatesAuthoritativeSource a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-022" ;
  rdfs:label "designates-authoritative-source" ;
  skos:definition "designates a source as authoritative" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:constrains a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-023" ;
  rdfs:label "constrains" ;
  skos:definition "applies normative constraint" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:representedAs a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-024" ;
  rdfs:label "represented-as" ;
  skos:definition "links a concept to an executable or technical representation" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:definesCommitmentFor a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-025" ;
  rdfs:label "defines-commitment-for" ;
  skos:definition "defines a governed interaction commitment" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:evaluates a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-026" ;
  rdfs:label "evaluates" ;
  skos:definition "evaluates a defined condition or characteristic" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:assures a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-027" ;
  rdfs:label "assures" ;
  skos:definition "assures, enforces, detects, verifies, or remediates an obligation" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:playsRole a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-028" ;
  rdfs:label "plays-role" ;
  skos:definition "assigns a contextual role to an eligible bearer" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:hasScope a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-029" ;
  rdfs:label "has-scope" ;
  skos:definition "identifies the governed scope of a role, authority, or construct" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:determinesPurposeAndMeansOf a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-030" ;
  rdfs:label "determines-purpose-and-means-of" ;
  skos:definition "relates a Data Controller to a Processing Activity" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:processesOnBehalfOf a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-031" ;
  rdfs:label "processes-on-behalf-of" ;
  skos:definition "relates a Data Processor to a Controller / Processing Activity context" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:processesPersonalData a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-032" ;
  rdfs:label "processes-personal-data" ;
  skos:definition "identifies Personal Data processed by an activity" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:engagesProcessor a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-033" ;
  rdfs:label "engages-processor" ;
  skos:definition "identifies processor or sub-processor engagement" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:instantiatesAs a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-034" ;
  rdfs:label "instantiates-as" ;
  skos:definition "relates a Data Control definition to a Control Execution" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:producesEvidence a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-035" ;
  rdfs:label "produces-evidence" ;
  skos:definition "relates a Data Control or Control Execution to Control Evidence" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:evidenceForControl a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-036" ;
  rdfs:label "evidence-for-control" ;
  skos:definition "identifies the Data Control substantiated by Control Evidence" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:evidenceForExecution a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-037" ;
  rdfs:label "evidence-for-execution" ;
  skos:definition "identifies the Control Execution substantiated by Control Evidence" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:derivedFromRequirement a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-038" ;
  rdfs:label "derived-from-requirement" ;
  skos:definition "traces a governed construct to an external Requirement Reference" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

gedrm:satisfiesRequirement a owl:ObjectProperty ;
  dcterms:identifier "GEDRM-R-039" ;
  rdfs:label "satisfies-requirement" ;
  skos:definition "traces satisfaction to an external Requirement Reference" ;
  gedrm:status "normative-draft" ;
  gedrm:introducedIn "0.1" .

#################################################################
# Additional properties referenced by normative cardinalities
#################################################################

gedrm:hasAccountableOwner a owl:ObjectProperty ;
  rdfs:label "has accountable owner" ;
  rdfs:domain gedrm:DataProduct ;
  rdfs:range gedrm:AccountabilityGovernanceRole .

gedrm:hasControlOwner a owl:ObjectProperty ;
  rdfs:label "has control owner" ;
  rdfs:domain gedrm:DataControl ;
  rdfs:range gedrm:ControlOwner .

gedrm:represents a owl:ObjectProperty ;
  rdfs:label "represents" ;
  rdfs:domain gedrm:GoldenRecord ;
  rdfs:range owl:Thing .

gedrm:hasDataController a owl:ObjectProperty ;
  rdfs:label "has data controller" ;
  rdfs:domain gedrm:ProcessingActivity ;
  rdfs:range gedrm:DataController .

gedrm:hasDataProcessor a owl:ObjectProperty ;
  rdfs:label "has data processor" ;
  rdfs:domain gedrm:ProcessingActivity ;
  rdfs:range gedrm:DataProcessor .

#################################################################
# Selected domain/range semantics
#################################################################

gedrm:derivedFrom rdfs:domain gedrm:DataObject ;
  rdfs:range gedrm:DataObject .

gedrm:isInputTo rdfs:domain gedrm:DataObject ;
  rdfs:range gedrm:ActivityProcess .

gedrm:sourcedFrom rdfs:domain gedrm:DataObject ;
  rdfs:range owl:Thing .

gedrm:recordsAuthoritativeStateFor rdfs:domain gedrm:SystemOfRecord ;
  rdfs:range owl:Thing .

gedrm:isAuthoritativeSourceFor rdfs:domain gedrm:AuthoritativeSource ;
  rdfs:range owl:Thing .

gedrm:definesCommitmentFor rdfs:domain gedrm:DataContract ;
  rdfs:range owl:Thing .

gedrm:determinesPurposeAndMeansOf rdfs:domain gedrm:DataController ;
  rdfs:range gedrm:ProcessingActivity .

gedrm:processesOnBehalfOf rdfs:domain gedrm:DataProcessor ;
  rdfs:range owl:Thing .

gedrm:processesPersonalData rdfs:domain gedrm:ProcessingActivity ;
  rdfs:range gedrm:DataObject .

gedrm:instantiatesAs rdfs:domain gedrm:DataControl ;
  rdfs:range gedrm:ControlExecution .

gedrm:producesEvidence rdfs:domain owl:Thing ;
  rdfs:range gedrm:ControlEvidence .

gedrm:evidenceForControl rdfs:domain gedrm:ControlEvidence ;
  rdfs:range gedrm:DataControl .

gedrm:evidenceForExecution rdfs:domain gedrm:ControlEvidence ;
  rdfs:range gedrm:ControlExecution .

gedrm:derivedFromRequirement rdfs:domain gedrm:GovernedConstruct ;
  rdfs:range gedrm:RequirementReference .

gedrm:satisfiesRequirement rdfs:domain owl:Thing ;
  rdfs:range gedrm:RequirementReference .

#################################################################
# Minimal semantic OWL restrictions
# SHACL remains the primary conformance mechanism for cardinality.
#################################################################

gedrm:SystemOfRecord rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:recordsAuthoritativeStateFor ;
  owl:minCardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:AuthoritativeSource rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:isAuthoritativeSourceFor ;
  owl:minCardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:DataProduct rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:hasAccountableOwner ;
  owl:minCardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:DataControl rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:hasControlOwner ;
  owl:minCardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:ControlEvidence rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:evidenceForControl ;
  owl:cardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:GoldenRecord rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:represents ;
  owl:cardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:DataContract rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:definesCommitmentFor ;
  owl:minCardinality "1"^^xsd:nonNegativeInteger
] .

gedrm:DataProcessor rdfs:subClassOf [
  a owl:Restriction ;
  owl:onProperty gedrm:processesOnBehalfOf ;
  owl:minCardinality "1"^^xsd:nonNegativeInteger
] .

#################################################################
# Supporting datatype properties
#################################################################

gedrm:effectiveFrom a owl:DatatypeProperty ; rdfs:label "effective from" ; rdfs:range xsd:dateTime .
gedrm:effectiveTo a owl:DatatypeProperty ; rdfs:label "effective to" ; rdfs:range xsd:dateTime .
gedrm:evaluatedAt a owl:DatatypeProperty ; rdfs:label "evaluated at" ; rdfs:range xsd:dateTime .
gedrm:outcome a owl:DatatypeProperty ; rdfs:label "control or evaluation outcome" ; rdfs:range xsd:string .
gedrm:requirementId a owl:DatatypeProperty ; rdfs:label "requirement identifier" ; rdfs:range xsd:string .
gedrm:referenceSource a owl:DatatypeProperty ; rdfs:label "reference source" ; rdfs:range xsd:string .
gedrm:referenceVersion a owl:DatatypeProperty ; rdfs:label "reference version" ; rdfs:range xsd:string .
gedrm:referenceAuthority a owl:DatatypeProperty ; rdfs:label "reference authority" ; rdfs:range xsd:string .
gedrm:externalUri a owl:DatatypeProperty ; rdfs:label "external URI" ; rdfs:range xsd:anyURI .

#################################################################
# Semantic modelling notes
#################################################################

gedrm:MasterData skos:scopeNote "Business / semantic classification: identifies core, relatively persistent business entities." .
gedrm:ReferenceData skos:scopeNote "Business / semantic classification: controlled values used to classify, constrain, interpret, or validate other data." .
gedrm:TransactionalData skos:scopeNote "Business / semantic classification: represents discrete business events, activities, exchanges, instructions, commitments, or state transitions." .
gedrm:MarketData skos:scopeNote "Business / semantic classification: represents observed or calculated market state at a point or period in time." .
gedrm:DerivedData skos:scopeNote "Provenance classification, not a peer business / semantic category." .
gedrm:Mastered skos:scopeNote "Processing / governance state, not a peer business data type." .
gedrm:PersonalData skos:scopeNote "Legal / sensitivity classification orthogonal to business / semantic categories." .

gedrm:SourceDataDecision a owl:NamedIndividual ;
  rdfs:label "Source Data decision" ;
  skos:note "Source Data is not a first-class intrinsic category in GEDRM 0.1; source-ness is represented contextually through isInputTo, derivedFrom, and sourcedFrom." .

gedrm:DataRequirementDecision a owl:NamedIndividual ;
  rdfs:label "Data Requirement decision" ;
  skos:note "Data Requirement is external traceability in GEDRM 0.1 and is represented through RequirementReference rather than as a first-class core concept." .
