This repository was archived by the owner on Feb 12, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathsurvey-service-offering.shacl.ttl
More file actions
104 lines (95 loc) · 3.58 KB
/
Copy pathsurvey-service-offering.shacl.ttl
File metadata and controls
104 lines (95 loc) · 3.58 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix survey: <https://w3id.org/gaia-x4plcaad/ontologies/survey/v6/> .
@prefix envited-x: <https://w3id.org/ascs-ev/envited-x/envited-x/v3/> .
@prefix manifest: <https://w3id.org/ascs-ev/envited-x/manifest/v5/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
# The Shapes Graph URI appends "/shapes/<offering-type>" to the Ontology URI
<https://w3id.org/gaia-x4plcaad/ontologies/survey/v6/shapes/service-offering>
a owl:Ontology ;
# The Shapes Graph must import the Domain Ontology
owl:imports <https://w3id.org/gaia-x4plcaad/ontologies/survey/v6> .
survey:SurveyServiceOfferingShape a sh:NodeShape ;
sh:closed false ;
sh:targetClass survey:SurveyServiceOffering ;
# 1) hasServiceOffering
sh:property [
sh:path survey:hasServiceOffering ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:or (
[ sh:node envited-x:ServiceOfferingBaseShape ]
[ sh:and ( manifest:LinkShape envited-x:ExtendedLinkShape ) ]
) ;
sh:message "Each SurveyServiceOffering must have exactly one associated ServiceOfferingBase (either inline or a valid manifest:Link)."@en ;
] ;
# 2) hasDomainSpecification
sh:property [
sh:path survey:hasDomainSpecification ;
sh:node survey:ServiceDomainSpecificationShape ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Each SurveyServiceOffering must have one associated DomainSpecification with content."@en ;
] ;
# 3) hasManifest
sh:property [
sh:path survey:hasManifest ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:or (
[ sh:and ( manifest:ManifestShape envited-x:ManifestShape ) ]
[ sh:node envited-x:ManifestLinkReferenceShape ]
) ;
sh:message "Each SurveyServiceOffering must have exactly one manifest."@en ;
] .
# DomainSpecification shape for service offering
survey:ServiceDomainSpecificationShape a sh:NodeShape ;
sh:closed false ;
sh:property [
sh:path survey:hasContent ;
sh:node survey:ServiceContentShape ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Each ServiceDomainSpecification must have one Content facet."@en ;
] .
# Content shape for service offering
survey:ServiceContentShape a sh:NodeShape ;
sh:closed false ;
sh:property [
sh:path survey:surveyUrl ;
sh:datatype xsd:string ;
skos:example "'Example URL'" ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Validation of survey URL failed." ;
sh:name "Survey URL" ;
] ;
sh:property [
sh:path survey:surveyCreationTime ;
sh:datatype xsd:dateTime ;
skos:example "'Date 1'" ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Validation of survey creation time failed." ;
sh:name "Survey creation time" ;
sh:description "When the survey was created" ;
] ;
sh:property [
sh:path survey:surveyEndTime ;
sh:datatype xsd:dateTime ;
skos:example "'Date 3'" ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:message "Validation of survey end time failed." ;
sh:name "Survey end time" ;
sh:description "When the survey will end automatically" ;
] ;
sh:property [
sh:path survey:dataSize ;
sh:datatype xsd:float ;
sh:minCount 0 ;
sh:maxCount 1 ;
sh:message "Validation of data size failed." ;
sh:name "Data size" ;
] .