- From: Enrico Franconi <franconi@inf.unibz.it>
- Date: Fri, 4 Nov 2005 11:55:51 +0100
- To: andy.seaborne@hp.com
- Cc: Pat Hayes <phayes@ihmc.us>, RDF Data Access Working Group <public-rdf-dawg@w3.org>
On 3 Nov 2005, at 19:38, Seaborne, Andy wrote: > Not sure what the ?{} syntax exactly means : original example was : > > [[ > GRAPH: :s :p _:b . > > query 1: { ?x :p _:a } > query 2: { ?x :p _:b } > ]] > > The syntax for getting a literal bNodes (a constant for the query) > that we have discussed before is <_:a>, that is, a pseudo-URI > scheme called "_", followed by the system dependent bNodes label. > This is not licensed by rq23 but the grammar allows it. This need > only apply when treating the graph as abstract syntax. A number of > other things need to line up as well (e.g. label stability; the way > results of earlier queries were delivered exposed the bNode label > (which is not true by default in the XML Results form but again not > ruled out)). > >> to get the empty answer, as opposed to >> query 2: { ?x :p _:a } >> to get the answer [?x/:s]. > > I would expect to get (and do get) this answer to both queries. > bNodes in query syntax arose from the requirements for the syntax > to be N-Triple/N3-like we discussed at the Feb F2F. Yes, if you mean the occurrence of both _:a and _:b in the query as standard bnodes. (but we meant them to be told-bnodes -- or, as you call them, literal bnodes). So, in your syntax, [[ GRAPH: :s :p _:b . query 1': { ?x :p <_:a> } query 2': { ?x :p <_:b> } ]] I expect the answer of query 1' to be empty, while query 2' should be [?x/:s]. > > In this case the user may wrongly gather that the triple <:s :p _:a> > > was *explicitely* asserted in the graph. > > Why might the user make that assumption? I haven't come across a > user who has done so. There is another level of bNode label > scoping in the XML results set so the user doubly can't assume > that. bNode labels are not exposed. Yeah, sorry if we were not clear enough: the thread is about told- bnodes, so we were assuming that the bnodes in the above example queries were actually told-bnodes. So, our proposal is to be able to specify in a query which bnodes are to be treated as told-bnodes (or literal bnodes). I am happy to know (I missed this before) that there is a syntactic way to distinguish them in the spec as <_:b> as opposed to _:b. > Bijan's example [1] is a single basic graph pattern. > > Suggestion: for this version of SPARQL, entailment beyond what can > be done by logical closure only applies to queries with a single > basic pattern matching Maybe some restricted set of FILTERs as well. > > The rest of the algebra applies to abstract syntax queries (and > hence over logical closures). We hope a later working group will > extend the algebra to entailment uses based on reseach done between > the end of the WG and the start of the next. > > Question to everyone: the best way to this would be a concrete use > case for entailment beyond RDFS that isn't covered. Anyone got one? > > More - there could be further restrictions such as: > > 1/ No told bNodes - I guess this is necessary > 2/ Even no bNodes in the query at all - that might be restrictive > on syntax but may be acceptable. I don't fully understand why are you requiring such restrictions. Bu most importantly, I don't understand at all the following statement: "Entailment beyond what can be done by logical closure only applies to queries with a single basic pattern matching." What does it mean? Nor I understand: "The rest of the algebra applies to abstract syntax queries (and hence over logical closures)." Can you explain? --e.
Received on Friday, 4 November 2005 10:56:11 UTC