@prefix convo: <https://ontology.inferal.com/modules/conversation/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@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#> .

convo:ArtifactDiscussionProfile
    a prof:Profile ;
    prof:isProfileOf convo: ;
    prof:hasResource <https://ontology.inferal.com/modules/conversation/profiles/artifact-discussion#constraints> .

<https://ontology.inferal.com/modules/conversation/profiles/artifact-discussion#constraints>
    a prof:ResourceDescriptor ;
    rdfs:label "Artifact Discussion constraints descriptor"@en ;
    rdfs:comment "Describes the SHACL artifact that validates conversations explicitly discussing managed resources."@en ;
    prof:hasArtifact <https://ontology.inferal.com/modules/conversation/profiles/artifact-discussion.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> .

convo:ArtifactDiscussionShape
    a sh:NodeShape ;
    rdfs:label "artifact discussion shape"@en ;
    rdfs:comment "Requires an artifact discussion to identify at least one discussed IRI resource."@en ;
    sh:targetClass convo:Conversation ;
    sh:property [ sh:path convo:discusses ; sh:nodeKind sh:IRI ; sh:minCount 1 ] .
