- From: Holger Knublauch <holger@topquadrant.com>
- Date: Sat, 24 Jan 2015 19:12:05 +1000
- CC: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
On 1/24/15, 3:53 PM, Jose Emilio Labra Gayo wrote:
> 4.- Does it handle/distinguish open/closed shapes? Open Shapes means
> that you can allow remaining triples, while closed shapes means that
> you are only allowed to have the properties specified by the shape.
> For example, with a shape like:
>
> <Course> {
> rdfs:label xsd:string
> , :student @<Student>*
> }
>
> the nodes that have that shape contain one property rdfs:label with
> value string and zero or more properties with shape <Student>. With
> open shapes you could allow more properties that those, while with
> closed shapes you could only allow those properties.
This currently requires SPARQL (although we may be able to create a more
built-in solution if closed shapes are an important requirement):
ex:Course
a rdfs:Class ;
rdfs:subClassOf rdfs:Resource ;
ldom:property [
ldom:predicate rdfs:label ;
ldom:valueType xsd:string ;
ldom:maxCount 1 ;
] ;
ldom:property [
ldom:predicate ex:student ;
ldom:valueType ex:Student ;
] ;
ldom:constraint [
ldom:message "No other property than label or student allowed" ;
ldom:sparql """
ASK {
?this ?p ?o .
FILTER (?p NOT IN (rdfs:label, ex:student))
}
"""
] .
Holger
Received on Saturday, 24 January 2015 09:12:36 UTC