- From: RDF Data Shapes Working Group Issue Tracker <sysbot+tracker@w3.org>
- Date: Fri, 02 Oct 2015 01:19:09 +0000
- To: public-data-shapes-wg@w3.org
shapes-ISSUE-98 (Node constraints): Proposal to generalize property constraints into node constraints [SHACL Spec]
http://www.w3.org/2014/data-shapes/track/issues/98
Raised by: Holger Knublauch
On product: SHACL Spec
I am still not sure why this requires a new ISSUE, because it is mainly a response to already open issues such as
- ISSUE-84 (limit IRIs of focus nodes to enumeration)
- ISSUE-88 (sh:qualifiedValue)
As already mentioned in https://lists.w3.org/Archives/Public/public-data-shapes-wg/2015Sep/0128.html I would like to propose a generalization of the mechanism that we currently use for sh:property and ui:inverseProperty so that it also applies to sh:constraint. This would allow a syntax such as
ex:MyShape
a sh:Shape ;
sh:property [
# Applies to all objects of the property
sh:predicate ex:someProperty ;
sh:class ex:SomeClass ;
] ;
sh:inverseProperty [
# Applies to all subjects of the property
sh:predicate ex:someIncomingProperty ;
sh:class ex:SomeClass ;
] ;
sh:constraint [
# Applies to the focus node itself
a sh:NodeConstraint ;
sh:class ex:SomeClass ;
] .
Summary of suggested changes:
- Rename sh:valueClass to sh:class
- Rename sh:directValueType to sh:directType
- Rename sh:allowedValues to sh:memberOf (or sh:oneOf)
- Add sh:NodeConstraint with properties sh:datatype, sh:class, etc
- Generalize validation function mechanism to also work with NodeConstraints
- Make sh:NodeConstraint the default type of sh:constraint
- Use sh:SPARQLConstraint at sh:constraint if you need sh:sparql
Since the bulk of the property constraints has already been represented by validation functions, it is a relatively small step to allow these same validation functions to be used at sh:constraint, and have them apply to the focus node.
The spec should probably contain a matrix that ticks off constraint types against the columns sh:property, sh:inverseProperty, sh:constraint (and sh:argument).
I can elaborate and provide an updated SHACL system file if anyone needs details.
Received on Friday, 2 October 2015 01:19:12 UTC