@prefix dash: . @prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix sh: . @prefix xsd: . @prefix dcterms: . @prefix vann: . @prefix sarefsh: . @prefix schema: . sarefsh:OntologyShape a sh:NodeShape ; sh:targetClass owl:Ontology ; sh:closed true ; sh:property [ sh:path rdf:type ; sh:minCount 1 ; sh:hasValue owl:Ontology ; ] ; sh:property [ sh:path owl:versionInfo ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation owl:versionInfo shall not be set in the source file, as it will be computed automatically." ] ; sh:property [ sh:path owl:versionIRI ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation owl:versionIRI shall not be set in the source file, as it will be computed automatically." ] ; sh:property [ sh:path owl:priorVersion ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation owl:priorVersion shall not be set in the source file, as it will be computed automatically." ] ; sh:property [ sh:path owl:imports ; sh:nodeKind sh:IRI ; sh:pattern "^https://saref.etsi.org/(core|saref4[a-z]{4})/v[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*/$" ; sh:severity sh:Violation ; sh:message "Only SAREF ontologies with specific versions shall be imported. Their URIs conform to the regular expression `^https://saref.etsi.org/(core|saref4[a-z]{4})/v[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*/$`" ] ; sh:property [ sh:path dcterms:title ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:maxCount 1 ; sh:severity sh:Violation ; sh:message "The ontology should have exactly one ." ] ; sh:property [ sh:path dcterms:abstract ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:maxCount 1 ; sh:severity sh:Warning ; sh:message "The ontology should have exactly one ." ] ; sh:property [ sh:path dcterms:description ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:maxCount 1 ; sh:severity sh:Warning ; sh:message "The ontology should have exactly one ." ] ; sh:property [ sh:path rdfs:comment ; sh:nodeKind sh:Literal ; sh:minCount 0 ; ] ; sh:property [ sh:path dcterms:issued ; sh:datatype xsd:date ; sh:minCount 0 ; sh:severity sh:Warning ; ] ; sh:property [ sh:path dcterms:modified ; sh:datatype xsd:date ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation shall not be set in the source file, as it will be computed automatically." ] ; sh:property [ sh:path dcterms:source ; sh:minCount 0 ; sh:severity sh:Warning ; ] ; sh:property [ sh:path dcterms:license ; sh:nodeKind sh:IRI ; sh:minCount 1 ; sh:pattern "https://forge.etsi.org/etsi-software-license" ; sh:severity sh:Violation ; sh:message "There shall be at least one annotation ." ] ; sh:property [ sh:path dcterms:creator ; sh:nodeKind sh:BlankNodeOrIRI ; sh:minCount 0 ; sh:severity sh:Warning ; sh:message "The shall be blank nodes or IRIs." ] ; sh:property [ sh:path dcterms:creator ; sh:severity sh:Warning ; sh:node sarefsh:PersonShape ; sh:message "Every creator shall be a with , , and ." ] ; sh:property [ sh:path dcterms:contributor ; sh:nodeKind sh:BlankNodeOrIRI ; sh:minCount 0 ; sh:severity sh:Warning ; sh:message "The shall be blank nodes or IRIs." ] ; sh:property [ sh:path dcterms:contributor ; sh:severity sh:Warning ; sh:node sarefsh:PersonShape ; sh:message "Every contributor shall be a with , , and ." ] ; sh:property [ sh:path dcterms:publisher ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation shall not be set in the source file, as it will be computed automatically." ] ; sh:property [ sh:path vann:preferredNamespacePrefix ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation shall not be set in the source file, as it will be computed automatically." ] ; sh:property [ sh:path vann:preferredNamespaceUri ; sh:maxCount 0 ; sh:severity sh:Warning ; sh:message "The annotation shall not be set in the source file, as it will be computed automatically." ] . sarefsh:PersonShape a sh:NodeShape ; sh:targetClass schema:Person ; sh:severity sh:Warning ; sh:property [ sh:path rdf:type ; sh:hasValue schema:Person ; sh:severity sh:Warning ; sh:message "Each contributor shall be a ." ] ; sh:property [ sh:path schema:givenName ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "Each contributor shall have at least one ." ] ; sh:property [ sh:path schema:familyName ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "Each contributor shall have at least one ." ] ; sh:property [ sh:path schema:affiliation ; sh:minCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:node sarefsh:AffiliationShape ; sh:severity sh:Warning ; sh:message "Each contributor shall have at least one , that shall be a blank node or a IRI of type with at least one ." ] . sarefsh:AffiliationShape a sh:NodeShape ; sh:targetClass schema:Organization ; sh:severity sh:Warning ; sh:property [ sh:path rdf:type ; sh:hasValue schema:Organization ; sh:severity sh:Warning ; sh:message "The affiliation of each contributor shall be a ." ] ; sh:property [ sh:path schema:name ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The affiliation of each contributor shall have at least one ." ] . [] a sh:NodeShape ; sh:targetClass owl:Class ; sh:message "The owl:Class should have at least one rdfs:label and one rdfs:comment" ; sh:severity sh:Warning ; sh:or ( [ sh:nodeKind sh:BlankNode ] [ sh:and ( [ sh:path rdfs:label ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:label." ] [ sh:path rdfs:comment ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:comment." ] ) ] ) . [] a sh:NodeShape ; sh:targetClass owl:ObjectProperty ; sh:message "The owl:ObjectProperty should have at least one rdfs:label and one rdfs:comment" ; sh:severity sh:Warning ; sh:or ( [ sh:nodeKind sh:BlankNode ] [ sh:and ( [ sh:path rdfs:label ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:label." ] [ sh:path rdfs:comment ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:comment." ] ) ] ) . [] a sh:NodeShape ; sh:targetClass owl:DatatypeProperty ; sh:message "The owl:DatatypeProperty should have at least one rdfs:label and one rdfs:comment" ; sh:severity sh:Warning ; sh:or ( [ sh:nodeKind sh:BlankNode ] [ sh:and ( [ sh:path rdfs:label ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:label." ] [ sh:path rdfs:comment ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:comment." ] ) ] ) . [] a sh:NodeShape ; sh:targetClass owl:NamedIndividual ; sh:message "The owl:NamedIndividual should have at least one rdfs:label and one rdfs:comment" ; sh:severity sh:Warning ; sh:or ( [ sh:nodeKind sh:BlankNode ] [ sh:and ( [ sh:path rdfs:label ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:label." ] [ sh:path rdfs:comment ; sh:nodeKind sh:Literal ; sh:minCount 1 ; sh:severity sh:Warning ; sh:message "The term should have at least one rdfs:comment." ] ) ] ) .