@prefix ae: <https://ontology.inferal.com/modules/artifact-evolution/> .
@prefix conf: <https://ontology.inferal.com/modules/confidence/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex: <https://example.com/artifact-evolution/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ss: <https://ontology.inferal.com/modules/scoped-statements/> .
@prefix ver: <https://ontology.inferal.com/modules/versioning/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# A continuing ontology identity and two immutable published versions.

ex:example-ontology
    a ae:GovernedArtifact, mod:SemanticArtefact, owl:Ontology ;
    dcterms:title "Example Ontology"@en ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    rdfs:label "example ontology"@en ;
    vann:preferredNamespacePrefix "exonto" ;
    vann:preferredNamespaceUri "https://example.com/ontology/" ;
    owl:versionInfo "1.1.0" ;
    ae:hasArtifactVersion ex:ontology-v1, ex:ontology-v2 ;
    ae:currentArtifactVersion ex:ontology-v2 ;
    dcat:hasVersion ex:ontology-v1, ex:ontology-v2 ;
    dcat:hasCurrentVersion ex:ontology-v2 .

ex:ontology-version-ordering a ver:NumericComponentOrdering .

ex:version-1
    a ver:ComponentVersionIdentifier ;
    ver:versionText "1.0.0" ;
    ver:versionMajor 1 ;
    ver:versionMinor 0 ;
    ver:versionPatch 0 ;
    ver:inVersionOrdering ex:ontology-version-ordering .

ex:version-2
    a ver:ComponentVersionIdentifier ;
    ver:versionText "1.1.0" ;
    ver:versionMajor 1 ;
    ver:versionMinor 1 ;
    ver:versionPatch 0 ;
    ver:inVersionOrdering ex:ontology-version-ordering ;
    ver:greaterThanVersion ex:version-1 .

ex:ontology-v1
    a ae:ArtifactVersion ;
    ae:versionOfArtifact ex:example-ontology ;
    ae:versionIdentifier ex:version-1 .

ex:ontology-v2
    a ae:ArtifactVersion ;
    ae:versionOfArtifact ex:example-ontology ;
    ae:versionIdentifier ex:version-2 ;
    dcat:previousVersion ex:ontology-v1 .

# Operational evidence motivates a proposal but does not change the ontology.

ex:mapping-loss-report
    a prov:Entity ;
    dcterms:description "Three source systems use deprecated identifiers that the current mapping cannot preserve."@en .

ex:deprecation-signal
    a ae:EvolutionSignal ;
    ae:concernsArtifact ex:example-ontology ;
    ae:hasSignalKind ae:MappingLossSignal ;
    ae:supportedBy ex:mapping-loss-report .

ex:deprecated-statement
    a ss:QuadTarget, ss:ScopedTarget ;
    ss:subjectTerm ex:legacyIdentifier ;
    ss:predicateTerm owl:deprecated ;
    ss:objectLiteralValue true .

ex:deprecate-legacy-identifier
    a ae:ChangeOperation ;
    ae:hasChangeKind ae:AxiomAddition ;
    ae:affectsResource ex:legacyIdentifier ;
    ae:affectsStatementTarget ex:deprecated-statement .

ex:deprecation-proposal-confidence
    a conf:ConfidenceAssessment ;
    conf:assessmentTarget ex:deprecation-proposal ;
    conf:confidenceValue ex:deprecation-proposal-confidence-value .

ex:deprecation-proposal-confidence-value
    a conf:ProbabilityValue ;
    conf:scale conf:ProbabilityScale ;
    conf:score 0.92 .

ex:compatibility-analysis
    a prov:Entity ;
    dcterms:description "The legacy IRI remains defined, so existing graphs retain their meaning while new use is discouraged."@en .

ex:deprecation-impact
    a ae:ImpactAssessment ;
    ae:assessmentSubject ex:deprecation-proposal ;
    ae:hasCompatibilityImpact ae:BackwardCompatible ;
    ae:supportedBy ex:compatibility-analysis .

ex:deprecation-proposal
    a ae:ChangeProposal ;
    dcterms:conformsTo
        ae:GovernedArtifactProfile ,
        ae:SemanticArtifactProfile ,
        ae:OntologyEvolutionProfile ;
    dcterms:description "Deprecate the legacy identifier term without changing its adopted meaning."@en ;
    ae:concernsArtifact ex:example-ontology ;
    ae:baselineVersion ex:ontology-v1 ;
    ae:hasOperation ex:deprecate-legacy-identifier ;
    ae:supportedBy ex:deprecation-signal, ex:mapping-loss-report ;
    ae:confidenceAssessment ex:deprecation-proposal-confidence ;
    ae:hasImpactAssessment ex:deprecation-impact .

# A review generates an attributable decision. Acceptance still does not entail
# implementation or publication.

ex:ontology-maintainer a prov:Agent .

ex:proposal-review
    a ae:ChangeReview ;
    prov:used ex:deprecation-proposal, ex:compatibility-analysis ;
    prov:wasAssociatedWith ex:ontology-maintainer ;
    prov:generated ex:accept-deprecation .

ex:accept-deprecation
    a ae:ChangeDecision ;
    dcterms:description "Accept because the term remains stable and the change only adds an explicit deprecation marker."@en ;
    ae:decidesProposal ex:deprecation-proposal ;
    ae:hasDecisionOutcome ae:Accepted ;
    prov:wasAttributedTo ex:ontology-maintainer ;
    prov:wasGeneratedBy ex:proposal-review ;
    prov:generatedAtTime "2026-07-12T18:00:00Z"^^xsd:dateTimeStamp .

# A realization generates v2. A later comparison records what actually changed.

ex:implement-deprecation
    a ae:ChangeRealization ;
    ae:realizesProposal ex:deprecation-proposal ;
    ae:implementsOperation ex:deprecate-legacy-identifier ;
    ae:generatedArtifactVersion ex:ontology-v2 ;
    prov:used ex:deprecation-proposal, ex:deprecate-legacy-identifier ;
    prov:generated ex:ontology-v2 .

ex:asserted-canonical-dataset-regime
    a ae:ComparisonRegime ;
    dcterms:title "Canonical asserted RDF dataset comparison"@en ;
    dcterms:description "Compares canonicalized asserted RDF datasets while preserving named-graph scope; it does not calculate RDFS or OWL entailments."@en .

ex:compare-v1-v2
    a ae:ArtifactComparison ;
    ae:baselineVersion ex:ontology-v1 ;
    ae:resultVersion ex:ontology-v2 ;
    ae:usesComparisonRegime ex:asserted-canonical-dataset-regime ;
    ae:coverageStatus ae:CompleteCoverage ;
    ae:generatedChangeSet ex:v1-v2-changes ;
    prov:used ex:ontology-v1, ex:ontology-v2 ;
    prov:generated ex:v1-v2-changes .

ex:v1-v2-changes
    a ae:ChangeSet ;
    ae:concernsArtifact ex:example-ontology ;
    ae:baselineVersion ex:ontology-v1 ;
    ae:resultVersion ex:ontology-v2 ;
    ae:hasChange ex:realized-deprecation ;
    prov:wasGeneratedBy ex:compare-v1-v2 .

ex:realized-deprecation
    a ae:RealizedChange ;
    ae:hasChangeKind ae:AxiomAddition ;
    ae:affectsResource ex:legacyIdentifier ;
    ae:affectsStatementTarget ex:deprecated-statement ;
    ae:realizesOperation ex:deprecate-legacy-identifier ;
    ae:plannedByProposal ex:deprecation-proposal ;
    ae:hasImpactAssessment ex:deprecation-impact .
