- From: Holger Knublauch <holger@topquadrant.com>
- Date: Wed, 8 Jun 2016 15:09:10 +1000
- To: public-data-shapes-wg@w3.org
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 Wednesday, 8 June 2016 05:09:46 UTC