- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Thu, 7 Apr 2016 07:08:10 -0700
- To: public-data-shapes-wg <public-data-shapes-wg@w3.org>
Here is my understanding of the intent of the current situation. I don't believe that all of these are supported by explicit wording in the current document. 1/ OK. The constraint has an explicit rdf:type link to sh:PropertyConstraint providing the valid type. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:s1 a sh:Shape ; sh:property [ rdf:type sh:PropertyConstraint ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 2/ OK. There is no rdf:type link for the constraint so default value type processing comes into play which provides the valid type. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:s1 a sh:Shape ; sh:property [ sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 3/ Not OK. The explicit rdf:type link prevents default value type processing from having an effect so there is no valid type. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:s1 a sh:Shape ; sh:property [ rdf:type ex:PropertyConstraint ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 4/ Not OK. Even though the class here is the universal class the explicit rdf:type link prevents default value type processing from having an effect so there is no valid type. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:s1 a sh:Shape ; sh:property [ rdf:type rdfs:Resource ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 5/ Not OK. There is no valid type even though the constraint is a SHACL instance of sh:PropertyConstraint. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:PropertyConstraint rdfs:subClassOf sh:PropertyConstraint . ex:s1 a sh:Shape ; sh:property [ rdf:type ex:PropertyConstraint ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 6/ OK. There is an explicit rdf:type link to sh:PropertyConstraint so the constraint has a valid type @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:s1 a sh:Shape ; sh:Property [ rdf:type sh:PropertyConstraint ; rdf:type ex:InversePropertyConstraint ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 7/ Unknown. There is an explicit rdf:type link to sh:PropertyConstraint so the constraint has a valid type. However, the constraint is a SHACL instance of both sh:PropertyConstraint and sh:InversePropertyConstraint. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:InversePropertyConstraint rdfs:subClassOf sh:InversePropertyConstraint . ex:s1 a sh:Shape ; sh:Property [ rdf:type sh:PropertyConstraint ; rdf:type ex:InversePropertyConstraint ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . 8/ Unknown. There is an explicit rdf:type link to sh:PropertyConstraint so the constraint has a valid type. However, the constraint is an instance of both sh:PropertyConstraint and sh:InversePropertyConstraint. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix ex: <http://ex.com/> . ex:subClassOf rdfs:subPropertyOf rdfs:subClassOf . ex:InversePropertyConstraint ex:subClassOf sh:InversePropertyConstraint . ex:s1 a sh:Shape ; sh:Property [ rdf:type sh:PropertyConstraint ; rdf:type ex:InversePropertyConstraint ; sh:predicate ex:p ; sh:nodeKind sh:IRI ] . The situation with sh:constraint is even more murky, as its name seems to indicate that its natural range should be sh:Constraint but instead it is sh:NodeConstraint.
Received on Thursday, 7 April 2016 14:08:39 UTC