17:57:14 RRSAgent has joined #shapes 17:57:14 logging to http://www.w3.org/2016/06/23-shapes-irc 17:57:16 RRSAgent, make logs rdf-data-shapes 17:57:16 Zakim has joined #shapes 17:57:18 Zakim, this will be SHAPES 17:57:18 ok, trackbot 17:57:19 Meeting: RDF Data Shapes Working Group Teleconference 17:57:19 Date: 23 June 2016 17:58:09 agenda: https://www.w3.org/2014/data-shapes/wiki/Meetings:Telecon2016.06.23 17:58:13 chair: Arnaud 17:58:56 present+ 17:59:25 present+ 17:59:38 present+ AndyS, ericP 18:00:31 Welcome Andy. 18:00:59 hello everyone. 18:02:04 present+ 18:02:06 Remember, this system is not connected to Zakim the right way. :-( 18:02:31 https://www.w3.org/2014/data-shapes/wiki/Meetings:Telecon2016.06.23 18:02:39 jamsden has joined #shapes 18:02:51 kcoyle has joined #shapes 18:02:53 The link works, but it still red 18:03:46 I think that Arnaud copied the link when the page didn't exist 18:04:23 Yeah this appears to be a caching problem, newly introduced 18:05:45 regrets: Dimitris, marq, simonstey 18:06:51 scribe:jamsden topic: Admin 18:07:48 PROPOSED: Approve minutes of the 16 June 2016 Telecon: http://www.w3.org/2016/06/16-shapes-minutes.html 18:07:52 minutes look fine 18:08:00 RESOLVED: Approve minutes of the 16 June 2016 Telecon: http://www.w3.org/2016/06/16-shapes-minutes.html 18:08:36 Arnaud not be available for the next meeting, Eric to chair topic: Disposal of Raised Issues 18:09:07 169 is a fine issue to open 18:09:11 new raised issues: ISSUE-169 to rename scope and inverse property 18:09:12 PROPOSED: Open ISSUE-169 18:09:16 +1 18:09:20 +1 18:09:21 +1 18:09:48 +1 18:09:58 RESOLVED: Open ISSUE-169 18:10:26 topic: Review of open issues 18:11:08 look at open issues to establish a context for evaluating progress 18:11:22 determine if there are some issues that could be pruned 18:12:13 https://www.w3.org/2014/data-shapes/track/issues/open 18:12:33 #93 may have been dealt with via edits 18:12:49 Arnaud: we have 32 open issues; just opened another 18:12:55 Arnaud calling for volunteers to prune the list 18:13:03 ... it might seem daunting 18:14:36 q+ 18:14:41 q+ 18:14:56 ack hknublau 18:14:58 Arnaud: welcomes input on what issues to addres 18:15:54 hknublau: introduced sh:partion feature from Arthur. Evaluated. may be overlapping with other features. 18:16:02 related to issue 92 18:16:31 pfps: partition didn't provide composition of and and ors 18:16:47 ack kcoyle 18:16:52 ... will look into resolving this 18:17:23 kcoyle: issue 93 and 137 were alread addressed? 18:17:32 If anyone in the working group thinks that an issue has been resolved they should point this out by email so that the WG can check and resolve the issue 18:18:14 hknublau: not addressed yet. 18:19:06 requires additional analysis 18:20:20 topic: ISSUE-168 18:20:20 ISSUE-168 -- How to constrain number of instances of a class in a graph -- open 18:20:20 http://www.w3.org/2014/data-shapes/track/issues/168 18:21:22 not sure we have common understanding of the problem or whether its addressed by the current spec 18:22:36 kcoyle: would prefer that classes not be used at all in SHACL, but if used, should be used consistently. predicate of rdf:type as a class needs to be treated that way throughout. Would prefer everything to be treated just as triples, including rdf:type 18:23:10 count instances of Class or rdf:type properties 18:25:52 hknublau: already to count based on rdf:type, cardinality constraint on inverse triples syntax exists. Don't have a clean feature to find instances of a subclass. minCount, maxCount would require extensions to nodeConstraint. 18:26:28 ...compromise that doesn't require changes to nodeConstraint, instanceCount applied to scope node 18:27:50 kcoyle: can triples and subclasse be handled with Holger's proposal? 18:29:10 predicates with rdf:type shouldn't be treated in different ways 18:29:32 ... but don't need a specific solution to instance count 18:29:40 q+ 18:30:13 ack hknublau 18:31:19 hknublau: many ways of triggering validations, minimize what is in core and use extension mechanisms as needed. Not covered in use cases so shouldn't be adding anything new at this time. 18:32:01 Arnaud: propose we close ISSUE-168 18:32:17 PROPOSED: Close ISSUE-168, without adding min/maxInstanceCount as not motivated enough 18:32:19 +1 18:32:25 +1 18:32:27 +1 18:32:31 0 18:32:50 +1 18:33:03 RESOLVED: Close ISSUE-168, without adding min/maxInstanceCount as not motivated enough 18:33:29 topic: ISSUE-68 18:33:29 ISSUE-68 -- pre-binding not defined in SHACL spec -- open 18:33:29 http://www.w3.org/2014/data-shapes/track/issues/68 18:33:38 q+ 18:34:16 pre-binding does not rely directly on exists, but exists is related to pre-binding 18:34:18 Arnaud: relying on something unstable in SPARQL 18:34:23 ack pfps 18:35:25 The current definition of SPARQL has counterintuitive consequences for 18:35:27 SHACL. One of these consequences is that even if pre-binding was fixed, 18:35:28 sh:class would not work correctly. For example, even if pre-binding was 18:35:29 pfps: two related problems. ours and SPARQL, related because prebinding is close definition of exists which has problems. Almost all of SPARQL SHACL depends on exists. and it has problems. 18:35:30 fixed sh:class would not work correctly because 18:35:31 SELECT $this ($this AS ?subject) $predicate (?value AS ?object) 18:35:33 WHERE { 18:35:34 $this $predicate ?value . 18:35:36 FILTER NOT EXISTS { ?value rdf:type/rdfs:subClassOf* $class } . 18:35:37 } 18:35:39 will return a result for any blank node that is an object of a triple with 18:35:40 subject ?this and predicate $predicate only if no node in the graph is a 18:35:42 SHACL instance of $class. 18:35:43 So, even if pre-binding is fixed according to the SPARQL specification there 18:35:45 will be no violations reported for 18:35:47 ex:s1 a sh:Shape ; 18:35:48 sh:scopeNode ex:Bob ; 18:35:50 sh:property [ sh:predicate ex:child ; sh:class ex:Person ] . 18:35:51 on the data graph 18:35:53 ex:Bob ex:child _:Bill . 18:35:54 ex:Susan a ex:Person . 18:36:48 ...use SPARQL spec to provide meaning to SHACL core components, they will not be correct 18:37:28 ...could get SPARQL spec fixed, publish warning about changes to SPARQL for SHACL to work right. 18:37:40 ...SHACL spec says something we can't use 18:38:20 How do you disagree with this analysis? 18:39:23 AndyS: disagrees with this analysis. SPARQL engines seem to follow SHACL semantics. Treat blank nodes as constants. For some operations, have to transform SPARQL 18:39:27 So the SPARQL specification is indeed saying something that SHACL can't use? 18:39:46 ...did not disagree with the analysis 18:40:20 It is not that the spec is unclear here. The spec is clear, unambiguous, and unproblematic. 18:40:53 Arnaud: implementations by convention do things that are consistent with SHACL, but there is risk in relying on this. 18:40:57 It may be that implementations diverge from the SPARQL spec here. 18:41:04 Note that this is not pre-binding. 18:41:35 Arnaud: fixing SPARQL probably isn't an option 18:41:58 q+ 18:42:09 If the SPARQL community put together a consensus errata that clearly indicated a change to the SPARQL spec then I think that that would be adequate. 18:42:11 q+ 18:42:21 ack AndyS 18:42:21 would require recharting the working group and could take a year 18:42:58 AndyS: parameterized queries was not addressed in SPARQL 1.1 due to limited time. 18:43:03 ack pfps 18:43:52 pfps: hard to make fixes to W3C recommendations. Community group could come together and agree that what we all do should be updated in the spec - should be sufficient to move forward 18:44:02 q+ 18:44:53 ... right now SHACL depends on something that is counter to current SPARQL. 18:44:57 ack ericP 18:45:29 ericP: if Peter makes the case in writing, ericP will bring it forward 18:46:10 ... eventually go to w3m 18:47:20 pfps: all the implementations agree with each other, but not the spec regarding what SHACL needs 18:48:00 all the implementations that I know of, at least 18:48:20 Arnaud: there is no owner to address this for SPARQL. Could we treat this as an errata? 18:49:26 ... has been an ongoing problem with W3C process 18:50:51 q+ 18:51:08 ack pfps 18:51:10 "RDF Tests Community Group" 18:51:21 pfps: RDF test community may be the right group to address this 18:51:23 which already exists. 18:52:01 q+ 18:52:07 ack AndyS 18:53:00 AndyS: start with RDF test community, see where we get, then widen it as needed depending on what happens. Not the first bug in the spec. 18:53:40 SPARQL errata -- https://www.w3.org/2013/sparql-errata 18:54:07 Anarud: second option: say that SHACL is not based on SPARQL or uses or expects SPARQL to be used, in a specific way. 18:56:00 q+ 18:56:09 ack pfps 18:57:19 pfps: wg could do that but leaves open to complaints at succeeding stages. W3C management would possibly override the constraints. Not like SHACL needs and extension, it needs SPARQL to be changed to work as needed. 18:57:37 ... this would essentially be forking the SPARQL spec 19:00:00 q+ 19:00:19 Who would define this? where would it be implemented? how would it be standardized? 19:00:40 ack hknublau 19:01:23 jamsden PROPOSE: clarify meaning of EXISTS in the context of SHACL based on commun implementations and discuss the issue in SPARQL to motivate the clarification 19:02:18 hknublau: SHACL creates its own function to do the proper exists implementation. 19:03:42 pfps: this could introduce additional issues. A user function cannot take SPARQL syntax, but other arguments could be used 19:06:05 q+ to bring up the second half of this issue 19:07:01 agree with that plan 19:07:04 Arnaud: could combine approaches, introducing new SHACL function if changes to SPARQL are not possible 19:07:14 should we write that down as a PROPOSAL? 19:07:35 ... results in deferring ISSUE-68 19:09:00 PROPOSAL: we'll wait for the community to come up with an erratum for SPARQL we can use regarding EXISTS, if this doesn't pan out we will have to investigate defining our own extension instead 19:09:03 0 19:09:07 +1 19:09:08 +1 19:09:17 0 19:09:20 0 19:09:25 what does this dependency mean? 19:10:26 what are the implications for moving forward without resolving this. 19:11:11 there is actually disagreement on other parts of EXISTS, some of which are related to SHACL's use of SPARQL 19:12:48 this this seems high risk and requires a proactive solution 19:15:53 AndyS: there is already awareness of the problem, issues recognized and that a change is required. This group could write up a proposed solution, but there may be ongoing progress already 19:16:22 Arnaud: put a deadline on assessing the progress and making a decision to seek another solution. 19:16:50 +1 19:16:54 RESOLVED: we'll wait for the community to come up with an erratum for SPARQL we can use regarding EXISTS, if this doesn't pan out we will have to investigate defining our own extension instead 19:17:43 ACTION: AndyS to work on an ERRATUM for EXISTs 19:17:43 Error finding 'AndyS'. You can review and register nicknames at . 19:18:34 ACTION: aseaborne-tq to work on an ERRATUM for EXISTs 19:18:34 Created ACTION-38 - Work on an erratum for exists [on Andy Seaborne - due 2016-06-30]. 19:18:55 ack pfps 19:18:55 pfps, you wanted to bring up the second half of this issue 19:18:57 The current definition of pre-binding does not work at all. The current 19:18:59 definition is, in effect, "whenever a SPARQL processor evaluates a pre-bound 19:19:00 variable, it must use the given value." However, SPARQL only evaluates 19:19:02 variables in specific circumstances. 19:19:03 For example, in 19:19:05 SELECT $this ($this AS ?subject) $predicate (?value AS ?object) 19:19:06 WHERE { 19:19:08 $this $predicate ?value . 19:19:09 FILTER NOT EXISTS { ?value rdf:type/rdfs:subClassOf* $class } . 19:19:11 } 19:19:12 no evalution of $this, $predicate, or $class is done. 19:19:14 This has the effect that sh:class will not return any validation results for 19:19:15 any object in the data graph that is a SHACL instance of any node in the 19:19:17 data graph, even if the counterintuitive effects of EXISTS here are fixed. 19:19:18 However, if an object in the data graph is not a SHACL instance of any node, 19:19:20 then sh:class will always return a violation result for it if the 19:19:21 counterintuitive effects of EXISTS here are fixed. 19:19:23 So, even if EXISTS is fixed in SPARQL there will be a violation reported for 19:19:24 ex:s1 a sh:Shape ; 19:19:26 sh:scopeNode ex:Bob ; 19:19:27 sh:property [ sh:predicate ex:child ; sh:class ex:Person ] . 19:19:29 on the data graph 19:19:30 ex:Susan ex:child ex:Bill . 19:20:17 pfps: first half was problem with SPARQL, the second problem is pre-binding. SPARQL didn't define pre-binding, but implementations implement it in some cases. SHACL defined its own. Substitution was originally used, but had problems, now overriding the evaluation 19:21:10 doesn't evaluate when matching triples against the graph, results in example failures - match of triple with prebound data against the data graph 19:26:05 I have brought up this precise problem in the past 19:28:46 q+ 19:28:57 ack pfps 19:30:14 pfps: we have to define what pre-binding has to do. Raises the EXISTS problem, that figure out something that works with the SPARQL specification - Peter has done this with a proposed fix, but won't be around to followup 19:31:21 ... put a fake value at right after the where that supports blank nodes, put in the pre-bound values, then everything else works. Some implementations are probably actually doing this, but hard to know. Difficult to determin how implementations are doing pre-binding 19:31:53 here is the draft of a message on blank nodes and EXISTS 19:32:04 Here is a situation where the SPARQL 1.1 Query recommendation says something 19:32:05 clearly, unambiguously, and unproblematically that is counterintuitive. At 19:32:07 least some SPARQL implementations diverge from the SPARQL specification 19:32:08 here, and it is entirely possible that all major SPARQL implementations do. 19:32:10 Consider the query 19:32:11 prefix ex: 19:32:13 SELECT ?this WHERE { 19:32:14 ?this ex:p ?value . 19:32:16 FILTER NOT EXISTS { ?value ex:q ex:d } . 19:32:17 } 19:32:19 and the graph 19:32:20 @prefix ex: . 19:32:22 ex:b ex:p _:v . 19:32:23 ex:c ex:q ex:d . 19:32:25 According to the SPARQL 1.1 Query recommendation there will be no results 19:32:26 from evaluating this query on this graph. This happens because the 19:32:28 definition of EXISTS is via substitution, which ends up producing 19:32:29 BCP( _:v ex:q ex:d ) 19:32:31 which then matches against the ex:c ex:q ex:d triple. 19:34:11 -> https://github.com/w3c/rdf-tests/issues/42 rdf-tests issue for defn of EGCYSTS 19:34:15 ACTION: aseaborne-tq to email WG lists about the places where discussion on EXISTS is happening. 19:34:15 Created ACTION-39 - Email wg lists about the places where discussion on exists is happening. [on Andy Seaborne - due 2016-06-30]. 19:34:33 trackbot, end meeting 19:34:33 Zakim, list attendees 19:34:33 As of this point the attendees have been pfps, Arnaud, AndyS, ericP, hknublau, kcoyle, jamsden 19:34:41 RRSAgent, please draft minutes 19:34:41 I have made the request to generate http://www.w3.org/2016/06/23-shapes-minutes.html trackbot 19:34:42 RRSAgent, bye 19:34:42 I see 3 open action items saved in http://www.w3.org/2016/06/23-shapes-actions.rdf : 19:34:42 ACTION: AndyS to work on an ERRATUM for EXISTs [1] 19:34:42 recorded in http://www.w3.org/2016/06/23-shapes-irc#T19-17-43 19:34:42 ACTION: aseaborne-tq to work on an ERRATUM for EXISTs [2] 19:34:42 recorded in http://www.w3.org/2016/06/23-shapes-irc#T19-18-34 19:34:42 ACTION: aseaborne-tq to email WG lists about the places where discussion on EXISTS is happening. [3] 19:34:42 recorded in http://www.w3.org/2016/06/23-shapes-irc#T19-34-15