- From: Gray, Alasdair J G <A.J.G.Gray@hw.ac.uk>
- Date: Mon, 23 Nov 2015 13:20:47 +0000
- To: Jose Emilio Labra Gayo <jelabra@gmail.com>
- CC: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
- Message-ID: <281451C0-355E-4EDD-A9A2-CD8BABF980A4@hw.ac.uk>
I suspect that the same problem arises if you want to capture the constraint that a single created date property is provided but its type can be any of the xsd date types, i.e. in ShEx I wrote
<Item> {
(dct:created xsd:date | dct:created xsd:dateTime | dct:created xsd:gYearMonth | dct:created xsd:gYear | dct:created psd:dateTime)
}
Alasdair
On 22 Nov 2015, at 07:47, Jose Emilio Labra Gayo <jelabra@gmail.com<mailto:jelabra@gmail.com>> wrote:
Imagine that I want to declare items that either have rdfs:label or rdfs:comment, but no both.
I ShEx, I can define:
<Item> {
rdfs:label xsd:string | rdfs:comment xsd:string
}
In Shacl, I was able to define it in the following way:
:Item a sh:Shape ;
sh:constraint [
a sh:OrConstraint ;
sh:shapes (
[ sh:property [
sh:predicate rdfs:label ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
]]
[ sh:property [
sh:predicate rdfs:comment ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
]]
)
] ;
sh:constraint [
a sh:NotConstraint ;
sh:shape [
sh:constraint [
a sh:AndConstraint ;
sh:shapes (
[sh:property [
sh:predicate rdfs:label ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1
]]
[sh:property [
sh:predicate rdfs:comment ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1
]] )
]
]
]
.
Is there any other way to do this in SHACL?
--
-- Jose Labra
Alasdair J G Gray
Fellow of the Higher Education Academy
Assistant Professor in Computer Science,
School of Mathematical and Computer Sciences
(Athena SWAN Bronze Award)
Heriot-Watt University, Edinburgh UK.
Email: A.J.G.Gray@hw.ac.uk<mailto:A.J.G.Gray@hw.ac.uk>
Web: http://www.alasdairjggray.co.uk
ORCID: http://orcid.org/0000-0002-5711-4872
Office: Earl Mountbatten Building 1.39
Twitter: @gray_alasdair
-----
We invite research leaders and ambitious early career researchers to
join us in leading and driving research in key inter-disciplinary themes.
Please see www.hw.ac.uk/researchleaders for further information and how
to apply.
Heriot-Watt University is a Scottish charity
registered under charity number SC000278.
Received on Monday, 23 November 2015 13:21:48 UTC