@prefix ae: <https://ontology.inferal.com/modules/artifact-evolution/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

ae:SemanticArtifactProfile
    a prof:Profile ;
    dcterms:title "Semantic Artifact Evolution Profile"@en ;
    dcterms:description "Evolution constraints and change kinds shared by vocabularies, schemas, shapes, mappings, profiles, and ontologies."@en ;
    prof:isProfileOf ae:, ae:GovernedArtifactProfile ;
    prof:hasResource
        <https://ontology.inferal.com/modules/artifact-evolution/profiles/semantic-artifact#constraints> ,
        <https://ontology.inferal.com/modules/artifact-evolution/profiles/semantic-artifact#governed-constraints> ;
    rdfs:label "semantic artifact evolution profile"@en ;
    rdfs:comment "Composes the governed artifact profile and adds requirements for semantic artifacts without assuming OWL ontology semantics."@en .

<https://ontology.inferal.com/modules/artifact-evolution/profiles/semantic-artifact#constraints>
    a prof:ResourceDescriptor ;
    rdfs:label "semantic artifact constraints descriptor"@en ;
    rdfs:comment "Describes the SHACL artifact containing semantic-artifact-specific constraints."@en ;
    prof:hasArtifact <https://ontology.inferal.com/modules/artifact-evolution/versions/0.1.0/profiles/semantic-artifact.ttl> ;
    prof:hasRole role:constraints, role:validation ;
    dcterms:conformsTo <http://www.w3.org/ns/shacl#> ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/turtle> .

<https://ontology.inferal.com/modules/artifact-evolution/profiles/semantic-artifact#governed-constraints>
    a prof:ResourceDescriptor ;
    rdfs:label "inherited governed artifact constraints descriptor"@en ;
    rdfs:comment "Makes the governed artifact constraints an explicit component of semantic-artifact conformance."@en ;
    prof:hasArtifact <https://ontology.inferal.com/modules/artifact-evolution/versions/0.1.0/profiles/governed-artifact.ttl> ;
    prof:hasRole role:constraints, role:validation ;
    dcterms:conformsTo <http://www.w3.org/ns/shacl#> ;
    dcterms:format <https://www.iana.org/assignments/media-types/text/turtle> .

ae:SemanticChangeKinds
    a skos:ConceptScheme ;
    rdfs:label "semantic artifact change kinds"@en ;
    rdfs:comment "Change kinds shared by machine-readable and human-readable semantic contracts."@en ;
    skos:prefLabel "semantic artifact change kinds"@en .

ae:ValidationStrengthening a ae:ChangeKind ; rdfs:label "validation strengthening"@en ; rdfs:comment "A validation change that rejects or warns about graphs previously accepted without that result."@en ; skos:broader ae:Modification ; skos:inScheme ae:SemanticChangeKinds ; skos:prefLabel "validation strengthening"@en .
ae:ValidationWeakening a ae:ChangeKind ; rdfs:label "validation weakening"@en ; rdfs:comment "A validation change that accepts graphs previously rejected or lowers a validation result's severity."@en ; skos:broader ae:Modification ; skos:inScheme ae:SemanticChangeKinds ; skos:prefLabel "validation weakening"@en .
ae:ProfileRequirementModification a ae:ChangeKind ; rdfs:label "profile requirement modification"@en ; rdfs:comment "Modification of a named conformance profile's applicability or completeness requirements."@en ; skos:broader ae:Modification ; skos:inScheme ae:SemanticChangeKinds ; skos:prefLabel "profile requirement modification"@en .
ae:MappingModification a ae:ChangeKind ; rdfs:label "mapping modification"@en ; rdfs:comment "Modification of a logical alignment, RDF projection, or declared source-to-RDF mapping contract."@en ; skos:broader ae:Modification ; skos:inScheme ae:SemanticChangeKinds ; skos:prefLabel "mapping modification"@en .
ae:HumanSemanticsModification a ae:ChangeKind ; rdfs:label "human semantics modification"@en ; rdfs:comment "Modification of a normative label, definition, scope statement, example interpretation, or other human-readable semantic contract."@en ; skos:broader ae:Modification ; skos:inScheme ae:SemanticChangeKinds ; skos:prefLabel "human semantics modification"@en .
ae:PublicationMetadataModification a ae:ChangeKind ; rdfs:label "publication metadata modification"@en ; rdfs:comment "Modification of artifact identity, distribution, catalog, version, license, or publication metadata without an asserted domain-semantic change."@en ; skos:broader ae:Modification ; skos:inScheme ae:SemanticChangeKinds ; skos:prefLabel "publication metadata modification"@en .

ae:SemanticArtifactProfileArtifactShape
    a sh:NodeShape ;
    rdfs:label "semantic artifact profile artifact shape"@en ;
    rdfs:comment "Requires governed artifacts in this profile to be identified as semantic artifacts."@en ;
    sh:targetClass ae:GovernedArtifact ;
    sh:property [ sh:path rdf:type ; sh:hasValue mod:SemanticArtefact ] .

ae:SemanticArtifactProfileProposalShape
    a sh:NodeShape ;
    rdfs:label "semantic artifact profile proposal shape"@en ;
    rdfs:comment "Requires semantic-artifact proposals to identify the profile, structured confidence, and an impact assessment."@en ;
    sh:targetClass ae:ChangeProposal ;
    sh:property [ sh:path dcterms:conformsTo ; sh:hasValue ae:SemanticArtifactProfile ] ;
    sh:property [ sh:path ae:confidenceAssessment ; sh:minCount 1 ] ;
    sh:property [ sh:path ae:hasImpactAssessment ; sh:class ae:ImpactAssessment ; sh:minCount 1 ] .
