https://ontology.solveit-df.org/solveit/observable/shapes/DateTimeRangeShape
Validates DateTimeRange instances have exactly one start and one end boundary.
sh:property [sh:datatype xsd:dateTime, sh:maxCount 1, sh:minCount 1, sh:path solveit-observable:startTimeInclusive] xor sh:property [sh:datatype xsd:dateTime, sh:maxCount 1, sh:minCount 1, sh:path solveit-observable:startTimeExclusive] )
sh:property [sh:datatype xsd:dateTime, sh:maxCount 1, sh:minCount 1, sh:path solveit-observable:endTimeInclusive] xor sh:property [sh:datatype xsd:dateTime, sh:maxCount 1, sh:minCount 1, sh:path solveit-observable:endTimeExclusive] )
@prefix default1: <https://ontology.solveit-df.org/solveit/observable/shapes/> .
@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 solveit-observable: <https://ontology.solveit-df.org/solveit/observable/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
default1:DateTimeRangeShape a sh:NodeShape ;
rdfs:label "Date Time Range Shape"@en ;
rdfs:comment "Validates DateTimeRange instances have exactly one start and one end boundary."@en ;
sh:targetClass solveit-observable:DateTimeRange ;
sh:xone ( [ sh:property [ sh:datatype xsd:dateTime ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:path solveit-observable:startTimeInclusive ] ] [ sh:property [ sh:datatype xsd:dateTime ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:path solveit-observable:startTimeExclusive ] ] ),
( [ sh:property [ sh:datatype xsd:dateTime ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:path solveit-observable:endTimeInclusive ] ] [ sh:property [ sh:datatype xsd:dateTime ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:path solveit-observable:endTimeExclusive ] ] ) .