- From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
- Date: Fri, 18 Nov 2016 08:53:04 +0200
- To: Holger Knublauch <holger@topquadrant.com>
- Cc: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
- Message-ID: <CA+u4+a0SRpNPwOcNHNAskt9NxBXNFQcRvAuwSYgVUUEi4dowUA@mail.gmail.com>
On Fri, Nov 18, 2016 at 7:48 AM, Holger Knublauch <holger@topquadrant.com> wrote: > I was tasked to research why the definition of sh:stem in the current > draft does not align with Eric's original proposal from > > https://lists.w3.org/Archives/Public/public-data-shapes-wg/ > 2016Mar/0311.html > > and in particular excludes Range Exclusions or Union/or stems. > > His proposal was > > PROPOSAL: write stems in shacl like: > > <http://a.example/S1> a sh:Shape; > sh:propValues ( > <http://a.example/p1> [ > sh:values [ > a sh:StemRange; > shex:stem <http://a.example/v> > ] > ] > ). > > which is based on a syntax variation proposed by Peter, using > sh:propValues instead of sh:property. It also uses shex:stem as the wrong > namespace. So clearly it was impossible to agree on this proposal in this > form, and we must have instead voted on some follow-up variation. > > Updated to the actual syntax of SHACL his example would look like > > <http://a.example/S1> a sh:Shape; > sh:property [ > sh:predicate <http://a.example/p1> ; > sh:values [ > a sh:StemRange; > sh:stem <http://a.example/v> > ] > ] . > > which differs from the current draft: > > <http://a.example/S1> a sh:Shape; > sh:property [ > sh:predicate <http://a.example/p1> ; > sh:stem "http://a.example/v" ; > ] . > > His original email also has a second PROPOSAL that was only visible when > you scroll down: > > PROPOSAL: write exclusions in shacl like: > > <http://a.example/S1> a sh:Shape; > sh:propValues ( > <http://a.example/p1> [ > sh:values [ > a sh:StemRange; > shex:stem <http://a.example/v> > sh:exclusions: ( > [ "type": "Stem", "stem": <http://a.example/v1> ], > [ "type": "Stem", "stem": <http://a.example/v2> ], > [ "type": "Stem", "stem": <http://a.example/v3> ] > ) > ] > ] > ). > > > The vote at https://www.w3.org/2016/04/07-shapes-minutes.html was about > > PROPOSED: Close ISSUE-80, adding sh:stem to the spec outlined in Eric's > email https://lists.w3.org/Archives/Public/public-data- > shapes-wg/2016Mar/0311.html > > There was no prior discussion in the minutes above, but we have talked > about it in the meeting beforehand: > > https://www.w3.org/2016/03/31-shapes-minutes.html#item05 > > The discussion there is focused on sh:stem as syntactic sugar for > sh:pattern, e.g. Peter stated "as sugar its not very sweet", Karen "worth > it to her. doing it with patterns could be helpful. sh:stem makes it more > specific, easier for more casual users.". Then there must have been an > unscribed section which Peter summarized as "the point was whether to have > this construct have an implicit disjunction somehow, either along with the > current top-level disjunction (which would be new) or like in sh:classIn'", > but no conclusion is recorded. > > The actual edit to fold this in was done by Dimitris, see > > https://github.com/w3c/data-shapes/commit/0e6ed4d3692e30bd02cfc3f321fe5c > 118b6b5d3e > > And this definition has been read by many people over the last 7 months, > nobody objected. > > I am also 100% sure that I would not have voted for the complete proposal > with the intermediate objects, exclusions, disjunction etc. This would have > been a huge implementation overhead. > > My only explanation is that: > > 1) The discussion that is not recorded must have concluded that the WG is > only supporting sh:stem as the light-weight syntactic sugar for sh:pattern > + sh:nodeKind sh:IRI. > > 2) In the PROPOSAL, Arnaud simply linked to Eric's specific email as a > placeholder for the discussion that happened. We have similar cases and > many other rather informal PROPOSALs elsewhere. > > 3) People glancing over the email link only saw the first proposal, not > the second one further down. And even the first proposal was misleading due > to the syntax variations. > > Although I cannot formally prove how we got there, my verdict is quite > clear that the current draft does reflect what we really voted on at the > time. Since exclusions and disjunctions are easily covered by sh:or and > sh:not I do not think we need to change the current draft, and we could > even delete sh:stem if it doesn't provide enough value over sh:pattern. > > Dimitris, you did the actual edits. Do you remember anything about the > history? > Although I was missing from the discussion about sh:stem yesterday I recall voting for sh:stem as a simple shortcut for sh:pattern and sh:nodekind sh:IRI. I also confirm that I understood the addition of sh:stem as a simple one-argument constraint and not with nested values I also recall talking that Eric's example was based on Peter's syntax Best, Dimitris > > Thanks, > Holger > > -- Dimitris Kontokostas Department of Computer Science, University of Leipzig & DBpedia Association Projects: http://dbpedia.org, http://rdfunit.aksw.org, http://aligned-project.eu Homepage: http://aksw.org/DimitrisKontokostas Research Group: AKSW/KILT http://aksw.org/Groups/KILT
Received on Friday, 18 November 2016 06:54:05 UTC