- From: Polleres, Axel <axel.polleres@deri.org>
- Date: Tue, 12 Jul 2011 15:03:20 +0100
- To: "Polleres, Axel" <axel.polleres@deri.org>, "Carlos Buil Aranda" <cbuil@fi.upm.es>, "SPARQL Working Group" <public-rdf-dawg@w3.org>
--
Dr. Axel Polleres
axel.polleres@deri.org http://www.polleres.net/
-----Original Message-----
From: public-rdf-dawg-request@w3.org on behalf of Polleres, Axel
Sent: Tue 7/12/2011 2:28 PM
To: Carlos Buil Aranda; SPARQL Working Group
Subject: RE: regrets and completed action (ACTION-462 & ACTION-487)
jsut added action labels understandable for the tracker in the subject...
@all : If you complete actions label the mails announcing completions with "ACTION-XYZ" in subject or message body, such that our tracker recognises them.
Thanks,
I looked at the example in Section 2.6 of
http://www.w3.org/2009/sparql/docs/fed/service.xml
i.e.
http://www.w3.org/2009/sparql/docs/fed/service.xml#bindings
I assume that's the new part.
Comments:
1) Firstly, I would suggest to rename the section from
2.6 BINDINGS
to
2.6 Interplay of SERVICE and BINDINGS
2) Frankly, I am not sure the example is covers the intuition. In that example, I guess one would just write
PREFIX : <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?s ?o1 ?o2
{
?s ?p1 ?o1
OPTIONAL { SERVICE <http://example.org/sparql> {?s foaf:knows :b }}
} }
So, maybe it's just me who doesn't get BINDINGS, but I'd suggest, that the example is modified is follows:
I would first add information in the default graph, stating that
these are foaf:person. (just to avoid duplicate rows and make the result table simpler
Data in default graph:
<http://example.org/a> a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/name> "Alan" ;
<http://xmlns.com/foaf/0.1/mbox> "alan@example.org" .
<http://example.org/b> a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/name> "Bob" ;
<http://xmlns.com/foaf/0.1/mbox> "bob@example.org" .
<http://example.org/c> a <http://xmlns.com/foaf/0.1/Person> ;
<http://xmlns.com/foaf/0.1/name> "Alice" ;
<http://xmlns.com/foaf/0.1/mbox> "alice@example.org" .
and then
"The following example shows how SERVICE and BINDINGS are combined. The query asks for all foaf:Persons in the default graph and optionally obtaining their known people in the remote endpoint <http://example.org/sparql>.
When the original query
PREFIX : <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?s ?o
{
?s a foaf:Person
OPTIONAL { SERVICE <http://example.org/sparql> {?s foaf:knows ?o }}
} }
is executed naively, with an unconstrained service call
SELECT * {?s foaf:knows ?o }
to <http://example.org/sparql>, the endpoint may not return all results: many existing SPARQL endpoints have restrictions in the number of results they return and may miss the ones matching subjects ?s from the default graph.
Thus, an implementation of a query planner for federated queries, may decide to decompose the query into two queries instead, where first the bindings from the default graph are evaluated:
PREFIX : <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?s ?o1 ?o2
{
?s a foaf:Person
}
obtaining results for ?s :
+------+
| ?s |
+------+
| :a |
| :b |
| :c |
+------+
and then, instead of issuing an unconstrained Query, dispatch the constrained query
SELECT * {?s foaf:knows ?o } BINDINGS ?s { (:a) (:b) (:c) }
to <http://example.org/sparql> .
Does that make sense?
Axel
Axel
-----Original Message-----
From: public-rdf-dawg-request@w3.org on behalf of Carlos Buil Aranda
Sent: Mon 7/11/2011 7:27 PM
To: SPARQL Working Group
Subject: regrets and completed action
Hello all,
regrets for tomorrow. I won't be able to join the call. I have completed actions 462 and 487. Regarding ACTION 487 I wrote a small readme file which is in the tests folder. I do not know if it is enough with it.
cheers,
Carlos
Received on Tuesday, 12 July 2011 14:03:57 UTC