- From: Holger Knublauch <holger@topquadrant.com>
- Date: Thu, 9 Jun 2016 14:44:51 +1000
- To: public-data-shapes-wg@w3.org
On 9/06/2016 14:40, Karen Coyle wrote: > sh:scopeClass <foaf:Person> and sh:scopeNode <foaf:Person> appear to > identify the same focus node(s) in the data graph. sh:scopeNode means "the (class) node itself". sh:scopeClass means "all SHACL instances of the class". So they do not identify the same focus nodes. Holger > > ***shape1*** > ex:MyShape > a sh:Shape ; > sh:scopeNode foaf:Person ; > sh:inverseProperty [ > sh:predicate rdf:type ; > sh:maxCount 2 ; > ] . > > ***shape2*** > ex:PersonShape > a sh:Shape ; > sh:scopeClass ex:Person . > > ***data graph*** > > ex:Alice a ex:Person . > ex:Bob a ex:Person . > ex:NewYork a ex:Place . > > Where does the spec address the reason for this? > > kc > > On 6/7/16 10:09 PM, Holger Knublauch wrote: >> >> >> On 8/06/2016 14:57, Karen Coyle wrote: >>> >>> >>> On 6/7/16 7:38 PM, Holger Knublauch wrote: >>>> Yes and SHACL should implement the same policy, because sh:maxCount >>>> also >>>> only makes sense for predicate-based constraints and not node >>>> constraints. >>> >>> Does this then rule out a constraint like "n things of type x"? For >>> example, if you want to limit the number of foaf:Person nodes? >> >> No. To express "A graph must have at most 2 instances of foaf:Person" >> you would write >> >> ex:MyShape >> a sh:Shape ; >> sh:scopeNode foaf:Person ; >> sh:inverseProperty [ >> sh:predicate rdf:type ; >> sh:maxCount 2 ; >> ] . >> >> In other words "there must be at most 2 triples that have foaf:Person as >> object and rdf:type as predicate". >> >> Peter's suggested use of sh:maxCount at node constraints would mean >> >> "Verify that the set of value nodes is not larger than two. Oh, and >> regardless of the actual data, I already know that this set of value >> nodes has size 1, because it always consists of the focus node only. So >> actually I only need to test whether the value of sh:maxCount > 0." >> >> which is a rather useless construct. You have just confirmed that >> misusing sh:maxCount as node constraints will likely confuse users. >> >> Is this difference clearer now, or what else could I clarify? >> >> Thanks, >> Holger >> >> >> >
Received on Thursday, 9 June 2016 04:45:29 UTC