-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Correlation and Substitution in SPARQL #89
Comments
please describe the issue. |
Please read the description |
i did. |
Your first response said, “please describe the issue” and now you’re saying that it’s not sufficient. I don’t really have a problem with expanding on the description but I do have a problem with the way you’re asking so the answer is no. I added this because I thought that some people might appreciate it or like to discuss it but you are free to ignore it or delete it. |
the initial text is not a description. it does not describe the issue. |
This is not a productive way to continue this conversation. While @lisp's comment might have been brusque, I agree with him that the issue description doesn't give enough information. For those not in a position to read an entire technical report to understand the issue being raised here, can you provide a summary? Is this the identical to the issue that the SPARQL Exists Community Group is meant to address? Overlapping with it? |
I'm kind of busy but @lisp says he read it so I think he is more than adequately prepared to write a summary that is precisely to his liking. I'm looking forward to reading it. |
as a start, if i may transcribe from seaborne's note on this topic in issue #1:
the cited email is also not an issue description, but it does introduce the topic in more detail. |
Yes, this isn't a new feature. Instead it points out problems with EXISTS in the SPARQL 1.1 specification. Thus this appears to be out of scope for the CG. I also hesitate to recommend the referenced document as it does not have adequate pointers to related work (some of it mine). |
This is not just about EXISTS. This also has implications for parameterisation of SPARQL queries, which is a pretty common use case but different systems do it in different ways and there are queries which produce different results under different interpretations. The problem statement is: given a query Q and a variable replacement map M (a partial mapping from variables to constants), evaluate Q under M. Possible interpretations:
Usually the results are the same, but not always. Here's a simple example:
Under the substitution semantics the query returns Differences also occur in the presence of subqueries which use the same variable names as in the outer query but don't project them (i.e. they are in fact different variables). This causes very real issues in practice so it'd be good to define the notion of substitution in SPARQL. |
an additional possible interpretation is to define sparql query execution in terms of environments and introduce "dynamic" environments in addition to solution sets. that is what dydra does. |
I think the query returns |
That's what would happen without the Actually since that discussion @afs pointed me to his work https://afs.github.io/substitute which looks like a good technical proposal to me. |
yes, @afs describes a mechanism to implement dynamic bindings. |
This isn't really a new feature but I came across this paper and thought that it should at least be brought up.
"In the current sparql specification the notion of correlation and substitution are not well defined. This problem triggers several ambiguities in the semantics. In fact, implementations as Fuseki, Blazegraph, Virtuoso and rdf4j assume different semantics."
https://arxiv.org/pdf/1606.01441.pdf
The text was updated successfully, but these errors were encountered: