Thank you all. I'll give a chance to a more recent version of Jena.

Regards,
Milorad





>________________________________
> From: Andy Seaborne <[email protected]>
>To: [email protected] 
>Sent: Wednesday, October 2, 2013 12:27 PM
>Subject: Re: semantics of the FROM clause in SPARQL queries
> 
>
>On 02/10/13 10:41, Milorad Tosic wrote:
>
>> (arq-2.8.7, jena-2.6.4, tdb-0.8.9)
>
>Quite old.  Thgere may well have been fixes.
>
>> Next, let us run the following query ("return all resources that have a 
>> property with value  <ex:o1> and a property with value  <ex:o2>" would be an 
>> non-formal not-necessarily correct interpretation in English language):
>> PREFIX ex:<http://www.example.info>
>> FROM <ex:ds1>
>>
>> FROM <ex:ds2>
>> SELECT ?s WHERE {
>>   ?s ?p1 <ex:o1> .
>>   ?s ?p2 <ex:o2> .
>>
>> }
>>
>> One would expect the following result:
>> ?s
>>
>> <ex:r>
>> Rationale for the expectation is that FROM clause constructs union of the 
>> default graph and the graphs specified by FROM statements in the query, and 
>> then runs rest of the query against the union of graphs.
>>
>> However, experimentation results are different: The query returns an EMPTY 
>> result.
>> Rationale for the obtained results is that query was run against each 
>> individual dataset and then the union of results is returned.
>
>While I agree the results are wrong (try the current version), this 
>isn't a corect statement of why.
>
>{
>   ?s ?p1 <ex:o1> .
>   ?s ?p2 <ex:o2> .
>}
>
>both parts must match for the same ?s
>
>Each triple pattern is matched agains the combined graph, with duplicate 
>supression so the combined graoph really is a set of triples.  There is 
>no union going on after some matching, it happens as each triple pattern 
>is matched.
>
>It has to be that way:
>1/ Get the right cardinality
>2/ patterns can span graphs
>
>c.f the different:
>
>GRAPH ?g {
>    ?s ?p1 <ex:o1> .
>    ?s ?p2 <ex:o2> .
>}
>
>where the pattern does not span graphs.
>
>    Andy
>
>
>
>
>
>

Reply via email to