W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > April 2016

the current situation with respect to ISSUE-134

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>
Message-ID: <570669CA.4010808@gmail.com>
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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:31 UTC