Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@prefix dash: <http://datashapes.org/dash#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix sarefsh: <https://saref.etsi.org/shape#> .
@prefix schema: <http://schema.org/> .
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 <http://purl.org/dc/terms/title>."
] ;
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 <http://purl.org/dc/terms/abstract>."
] ;
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 <http://purl.org/dc/terms/description>."
] ;
sh:property [
sh:path rdfs:comment ;
sh:nodeKind sh:Literal ;
sh:minCount 0 ;
] ;
sh:property [
sh:path dcterms:issued ;
sh:datatype xsd:date ;
] ;
sh:property [
sh:path dcterms:modified ;
sh:datatype xsd:date ;
sh:maxCount 0 ;
sh:severity sh:Warning ;
sh:message "The annotation <http://purl.org/dc/terms/modified> shall not be set in the source file, as it will be computed automatically."
] ;
sh:property [
sh:path dcterms:source ;
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 <http://purl.org/dc/terms/license> <https://forge.etsi.org/etsi-software-license>."
sh:property [
sh:path dcterms:creator ;
sh:nodeKind sh:BlankNodeOrIRI ;
sh:minCount 0 ;
sh:severity sh:Warning ;
sh:message "The <http://purl.org/dc/terms/creator> 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 <http://schema.org/Person> with <http://schema.org/givenName>, <http://schema.org/familyName>, and <http://schema.org/affiliation>."
] ;
sh:property [
sh:path dcterms:contributor ;
sh:nodeKind sh:BlankNodeOrIRI ;
sh:message "The <http://purl.org/dc/terms/contributor> shall be blank nodes or IRIs."
] ;
sh:property [
sh:path dcterms:contributor ;
sh:message "Every contributor shall be a <http://schema.org/Person> with <http://schema.org/givenName>, <http://schema.org/familyName>, and <http://schema.org/affiliation>."
] ;
sh:property [
sh:path dcterms:publisher ;
sh:maxCount 0 ;
sh:severity sh:Warning ;
sh:message "The annotation <http://purl.org/dc/terms/publisher> 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 <http://purl.org/vocab/vann/preferredNamespacePrefix> 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 <http://purl.org/vocab/vann/preferredNamespaceUri> shall not be set in the source file, as it will be computed automatically."
] .
sarefsh:PersonShape
a sh:NodeShape ;
sh:targetClass schema:Person ;
sh:property [
sh:path rdf:type ;
sh:hasValue schema:Person ;
sh:severity sh:Warning ;
sh:message "Each contributor shall be a <http://schema.org/Person>."
] ;
sh:property [
sh:path schema:givenName ;
sh:minCount 1 ;
sh:message "Each contributor shall have at least one <http://schema.org/givenName>."
] ;
sh:property [
sh:path schema:familyName ;
sh:minCount 1 ;
sh:message "Each contributor shall have at least one <http://schema.org/lastName>."
] ;
sh:property [
sh:path schema:affiliation ;
sh:minCount 1 ;
sh:nodeKind sh:BlankNodeOrIRI ;
sh:node sarefsh:AffiliationShape ;
sh:message "Each contributor shall have at least one <http://schema.org/affiliation>, that shall be a blank node or a IRI of type <http://schema.org/Organization> with at least one <http://schema.org/name>."
] .
sarefsh:AffiliationShape
a sh:NodeShape ;
sh:targetClass schema:Organization ;
sh:property [
sh:path rdf:type ;
sh:hasValue schema:Organization ;
sh:severity sh:Warning ;
sh:message "The affiliation of each contributor shall be a <http://schema.org/Organization>."
] ;
sh:property [
sh:path schema:name ;
sh:minCount 1 ;
sh:message "The affiliation of each contributor shall have at least one <http://schema.org/name>."
] .
[] a sh:NodeShape ;
sh:targetClass owl:Class ;
sh:message "The owl:Class should have at least one rdfs:label and one rdfs:comment" ;
sh:or (
[ sh:nodeKind sh:BlankNode ]
[
sh:and (
[
sh:path rdfs:label ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
sh:message "The term should have at least one rdfs:label."
]
[
sh:path rdfs:comment ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
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:or (
[ sh:nodeKind sh:BlankNode ]
[
sh:and (
[
sh:path rdfs:label ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
sh:message "The term should have at least one rdfs:label."
]
[
sh:path rdfs:comment ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
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:or (
[ sh:nodeKind sh:BlankNode ]
[
sh:and (
[
sh:path rdfs:label ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
sh:message "The term should have at least one rdfs:label."
]
[
sh:path rdfs:comment ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
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:or (
[ sh:nodeKind sh:BlankNode ]
[
sh:and (
[
sh:path rdfs:label ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
sh:message "The term should have at least one rdfs:label."
]
[
sh:path rdfs:comment ;
sh:nodeKind sh:Literal ;
sh:minCount 1 ;
sh:message "The term should have at least one rdfs:comment."