good afternoon; you have to consider that a query processor is free to consolidate statement patterns in a nominal bgp - which itself implicitly joins them, or separate them in order to either apply a different join strategy or - as in this case, to interleave an operation under the suspicion that it will reduce solution set cardinality.
best regards, from berlin, > On 19. Sep 2023, at 13:20, Hashim Khan <engr.hashimwa...@gmail.com> wrote: > > Hi, > > Having a look on this SPARQL query: > --------------------------------------------------------------------------- > prefix dbo:<http://dbpedia.org/ontology/> > prefix dbr:<http://dbpedia.org/resource/> > prefix foaf:<http://xmlns.com/foaf/0.1/> > > SELECT DISTINCT ?name ?birth ?death > WHERE { ?person dbo:birthPlace dbr:Berlin . > ?person dbo:birthDate ?birth . > ?person foaf:name ?name . > OPTIONAL { ?person dbo:deathDate ?death . } > FILTER (?birth < "1900-01-01") . > } > LIMIT 100 > ----------------------------------------------------------------------------- > Using Apache Jena ARQ command, ./arq --query exampleQuery.sparql --explain > I got this result. > > 13:11:41 INFO exec :: ALGEBRA > (slice _ 100 > (distinct > (project (?name ?birth ?death) > (conditional > (sequence > (filter (< ?birth "1900-01-01") > (bgp > (triple ?person <http://dbpedia.org/ontology/birthPlace> < > http://dbpedia.org/resource/Berlin>) > (triple ?person <http://dbpedia.org/ontology/birthDate> > ?birth) > )) > (bgp (triple ?person <http://xmlns.com/foaf/0.1/name> ?name))) > (bgp (triple ?person <http://dbpedia.org/ontology/deathDate> > ?death)))))) > 13:11:41 INFO exec :: BGP > ?person <http://dbpedia.org/ontology/birthPlace> < > http://dbpedia.org/resource/Berlin> > ?person <http://dbpedia.org/ontology/birthDate> ?birth > 13:11:41 INFO exec :: Reorder/generic > ?person <http://dbpedia.org/ontology/birthPlace> < > http://dbpedia.org/resource/Berlin> > ?person <http://dbpedia.org/ontology/birthDate> ?birth > 13:11:41 INFO exec :: BGP :: ?person < > http://xmlns.com/foaf/0.1/name> ?name > ------------------------ > | name | birth | death | > ======================== > ------------------------ I have a question about the Basic Graph Patterns. > I think, in this query there are two BGPs. But here i shows 3. Can anyone > explain it to me? Also, I want to know, the number of joins, no of > projection variables, number of left joins, depth, and such other relevant > info about the query features. How can I get all at one place? > > Best Regards, > > > *Hashim Khan* --- james anderson | ja...@dydra.com | https://dydra.com