IRC log of shapes on 2016-06-23

Timestamps are in UTC.

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