On 14/08/12 14:35, Gary King wrote:
FROM isn't legal inside of a sub-select (at least, it's not according to the 
grammer at http://www.w3.org/TR/sparql11-query/):

[8]     SubSelect         ::=   SelectClause WhereClause SolutionModifier 
ValuesClause

maybe that's an oversight or worth changing...

It's by design.

Put the SERVICE clause aside for a moment and consider a sub-SELECT in single-site query.

The dataset does not change in the middle of query.

GRAPH is used to choose a graph to access.

FROM/FROM NAMED describes what data to query.

Now to SERVICE:

The design goal of SERVICE was access to remote data, not general computation. The endpoint determines the data to be queried; it is nto a client choice.

You can construct use cases where this simple model is not good enough but that is not the goal of basic federated query (and also given the varity of interpretation of FROM, it's going to difficult to agree fixed semantics).

The main thing FROM gives you is the ability to merge several graphs and query the resultant graph. That is not web friendly - if there is a large datasets, the last thing it wants is to create (virtual or materialized) so one-off specialised combination. If it was valuable, providing the data as either a different endpoint or as a named graph would be sensible.

There is one hole -

SERVICE <http://host/endpoint?default-graph-uri=http://example/>
{
   ...
}

works in ARQ - additional query parameters are handled - if the remote endpoint does do arbitrary graph query (few do) then it will work.

This is

https://issues.apache.org/jira/browse/JENA-195

        Andy

The query could be:

SELECT *
WHERE
{
   SERVICE <http://example.org:8890/sparql>
   {  GRAPH <http://ex.com/base>
       {   ?s a <http://ex.com/resource/Batch> .
            ?s <http://ex.com/resource/id> ?id .
       }
   }
}





On Aug 13, 2012, at 8:24 PM, Holger Knublauch <[email protected]> wrote:

On 8/13/2012 14:14, Macedo Maia wrote:
Sorry, now i understand your question. Do you want to acess any data in a
virtuoso graph? If yes, you can try this query:

Yes, but Jena doesn't accept the FROM clause inside the nested SELECT and 
that's what my question is about (probably to Andy).

Thanks
Holger



SELECT *
WHERE
{
        SERVICE <http://example.org:8890/sparql>
         {
               SELECT ?s ?id
               from <http://ex.com/base>
               WHERE {
                      GRAPH ?g{?s a <http://ex.com/resource/Batch> .
                                       ?s <http://ex.com/resource/id> ?id .}
                }
     }
}


2012/8/12 Holger Knublauch <[email protected]>
The following query is not valid (verified with Jena 2.7.3):

SELECT *
WHERE
{
    SERVICE <http://example.org:8890/sparql>
    {  SELECT *
        FROM <http://ex.com/base>
        WHERE
        {   ?s a <http://ex.com/resource/Batch> .
             ?s <http://ex.com/resource/id> ?id .
        }
    }
}

The parser complains about the FROM. Is this supposed to work, or are we
limited to using GRAPH instead?

Thanks
Holger



--
*Macedo Sousa Maia*
*Bacharel em Computação
Mestrando em Computação
ARIDA(Advanced Research in Database)
*
*Universidade Federal do Ceará(UFC)*



--
*Macedo Sousa Maia*
*Bacharel em Computação
Mestrando em Computação
ARIDA(Advanced Research in Database)
*
*Universidade Federal do Ceará(UFC)*






--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM * gwking on twitter


Reply via email to