- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Fri, 17 Mar 2017 08:52:19 -0700
- To: Holger Knublauch <holger@topquadrant.com>, public-rdf-shapes@w3.org
There is more wrong with the example, as I tried to indicate in my initial message. If anything, the change made for more problems. An example that uses meaningful words should be plausible with respect to these words. This example uses "hand", "digit", "thumb", and "finger" so it should abide by some plausible meaning for these words. The only reasonable plausible meaning for hand in the example is normal human hand. So ex:HandShape should both state and enforce conditions that are true for normal human hands. Neither of these are the case for either version of the example. A normal human hand has 5 digits. Of these digits one is a thumb and four are fingers. None of the digits can be both a thumb and a finger. Changing the text of the example to allow more than five digits is the wrong way to go. Instead the shape should be changed to enforce the correct conditions or a different example chosen. A SHACL shape that enforces the conditions for normal human hand locally on instances of ex:Hand is ex:HandShape1 a sh:NodeShape ; sh:targetClass ex:Hand ; sh:property [ sh:path ex:digit ; sh:maxCount 5 ] ; sh:property [ sh:path ex:digit ; sh:qualifiedValueShape [ sh:and ( [ sh:class ex:Thumb ] [ sh:class ex:Finger ] ) ] ; sh:qualifiedMaxCount 0 ] ; sh:property [ sh:path ex:digit ; sh:qualifiedValueShape [ sh:class ex:Thumb ] ; sh:qualifiedMinCount 1 ; sh:qualifiedMaxCount 1 ] ; sh:property [ sh:path ex:digit ; sh:qualifiedValueShape [ sh:class ex:Finger ] ; sh:qualifiedMinCount 4 ; sh:qualifiedMaxCount 4 ] . There are several other SHACL shapes that express the same conditions without using sh:qualifiedValueShapesDisjoint. A SHACL shape that indirectly expresses these conditions using sh:qualifiedValueShapesDisjoint is ex:HandShape2 a sh:NodeShape ; sh:targetClass ex:Hand ; sh:property [ sh:path ex:digit ; sh:maxCount 5 ] ; sh:property [ sh:path ex:digit ; sh:qualifiedValueShape [ sh:class ex:Thumb ] ; sh:qualifiedValueShapesDisjoint true ; sh:qualifiedMinCount 1 ; sh:qualifiedMaxCount 1 ] ; sh:property [ sh:path ex:digit ; sh:qualifiedValueShape [ sh:class ex:Finger ] ; sh:qualifiedValueShapesDisjoint true ; sh:qualifiedMinCount 4 ; sh:qualifiedMaxCount 4 ] . This version is slightly shorter than the previous shape, but slightly shortening a few shapes is not worth the extra complications that sh:qualifiedValueShapesDisjoint adds to SHACL. Peter F. Patel-Schneider Nuance Communications On 03/15/2017 05:31 PM, Holger Knublauch wrote: > If I understand your issue correctly, you are pointing out that such hands may > have other values in addition to the 5 expected ones, while the description of > the example was stating "... must have 5 values"? If that's all, I have added > "... must have *at least* 5 values". If there is anything else here please > clarify and point at specific sentences that are misleading. > > https://github.com/w3c/data-shapes/commit/a315a25c32e1cd21b36f21efa7d6799dd0a9f2e7 > > > BTW your example doesn't work at all since you have used sh:digit instead of > ex:digit, but I have assumed the latter. > > Holger > > > On 16/03/2017 1:07, Peter F. Patel-Schneider wrote: >> The example shapes graph using of sh:qualifiedValueShapesDisjoint does not >> correspond to its textual description. The following data graph conforms to >> the shapes graph but does not match the textual description because it >> contains a hand that has seven digits and where its fingers and thumbs are >> not disjoint. A correct example is needed to justify the inclusion of >> sh:qualifiedValueShapesDisjoint in SHACL. >> >> ex:SixFingerHand rdf:type ex:Hand ; >> sh:digit [ rdf:type ex:Thumb ] ; >> sh:digit [ rdf:type ex:Finger ] ; >> sh:digit [ rdf:type ex:Finger ] ; >> sh:digit [ rdf:type ex:Finger ] ; >> sh:digit [ rdf:type ex:Finger ] ; >> sh:digit [ rdf:type ex:Finger, ex:Thumb ] ; >> sh:digit [ ] . >> >> Peter F. Patel-Schneider >> Nuance Communications >> > >
Received on Friday, 17 March 2017 15:52:55 UTC