Hi Regis, The issue with the first query is that the optimizer is not able to see that transforming it into bindings as you've done in your alternate queries would be more efficient [1]. Instead it is performing a cross product on the two BGPs and then filtering the results.
The fix would be to improve the optimizer to look for this case (it's a rather special case of || where the operands contain equality filters on the same variables). But in the mean time, is there an problem with using one of the alternate queries? -Stephen [1] In the alternate query with the UNIONs the optimizer is able to identify equality filters and turn them into BINDINGS, which is why it is fast. 2011/12/16 Regis Pires Magalhães <[email protected]> > I have imported DBLP RDF dump (http://dblp.l3s.de/dblp.rdf.gz) to Jena TDB > which can be accessed through Fuseki. > The SPARQL Endpoint is: http://dblp.mooo.com/dblp/sparql > > I am executing some queries only to test alternatives to SPARQL 1.1. > BINDINGS. > The execution of the following query is slow compared with some equivalent > queries that yields the same results: > > *Original Query: FILTER + ||* > > prefix dc: <http://purl.org/dc/elements/1.1/> > > SELECT * WHERE { > ?publication dc:creator ?dblp_researcher . > ?publication dc:title ?pub_title > FILTER ( > ( ?dblp_researcher = < > http://dblp.l3s.de/d2r/resource/authors/Marco_A._Casanova> && ?publication > = <http://dblp.l3s.de/d2r/resource/publications/journals/jcss/CasanovaFP84 > > > ) || > ( ?dblp_researcher = < > http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal> && > ?publication = < > http://dblp.l3s.de/d2r/resource/publications/conf/pods/CasanovaV83> ) || > ( ?dblp_researcher = < > > http://dblp.l3s.de/d2r/resource/authors/Jos%C3%A9_Ant%C3%B4nio_Fernandes_de_Mac%C3%AAdo > > > && ?publication = < > http://dblp.l3s.de/d2r/resource/publications/journals/ijbdcn/VidalMPCP11> > ) > ) > } > > 10 Executions Min Time: *24635 *ms Average Time: *25683.7 *ms Max Time: > *26574 > *ms > > * > * > *The same query over D2R SPARQL Endpoint (** > http://dblp.l3s.de/d2r/sparql > ** > ) is much faster as seen below: > * > 100 Executions > Min Time: *438* ms > Average Time: *513.14* ms > Max Time: *3464* ms > > *Alternative queries:* > > *1. FILTER + UNION* > > prefix dc: <http://purl.org/dc/elements/1.1/> > > SELECT * WHERE { > { ?publication dc:creator ?dblp_researcher . > ?publication dc:title ?pub_title > FILTER ( ?dblp_researcher = < > http://dblp.l3s.de/d2r/resource/authors/Marco_A._Casanova> && ?publication > = <http://dblp.l3s.de/d2r/resource/publications/journals/jcss/CasanovaFP84 > > > ) > } > UNION > { ?publication dc:creator ?dblp_researcher . > ?publication dc:title ?pub_title > FILTER ( ?dblp_researcher = < > http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal> && > ?publication = < > http://dblp.l3s.de/d2r/resource/publications/conf/pods/CasanovaV83> ) > } > UNION > { ?publication dc:creator ?dblp_researcher . > ?publication dc:title ?pub_title > FILTER ( ?dblp_researcher = < > > http://dblp.l3s.de/d2r/resource/authors/Jos%C3%A9_Ant%C3%B4nio_Fernandes_de_Mac%C3%AAdo > > > && ?publication = < > http://dblp.l3s.de/d2r/resource/publications/journals/ijbdcn/VidalMPCP11> > ) > } > } > > 100 Executions > Min Time: 39ms > Average Time: 79.17ms > Max Time: 276ms > > > *2. BINDINGS* > * > * > prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> > prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> > prefix owl: <http://www.w3.org/2002/07/owl#> > prefix foaf: <http://xmlns.com/foaf/0.1/> > prefix dc: <http://purl.org/dc/elements/1.1/> > > SELECT * WHERE { > ?publication dc:creator ?dblp_researcher . > ?publication dc:title ?pub_title > } > BINDINGS ?dblp_researcher ?publication { > ( <http://dblp.l3s.de/d2r/resource/authors/Marco_A._Casanova> < > http://dblp.l3s.de/d2r/resource/publications/journals/jcss/CasanovaFP84> ) > ( <http://dblp.l3s.de/d2r/resource/authors/V%C3%A2nia_Maria_Ponte_Vidal > > > <http://dblp.l3s.de/d2r/resource/publications/conf/pods/CasanovaV83> ) > ( < > > http://dblp.l3s.de/d2r/resource/authors/Jos%C3%A9_Ant%C3%B4nio_Fernandes_de_Mac%C3%AAdo > > > <http://dblp.l3s.de/d2r/resource/publications/journals/ijbdcn/VidalMPCP11> > ) > } > > 100 Executions > Min Time: 33ms Average Time: 46.88ms Max Time: 90ms > > > What can be done to improve the speed of the first query when I use Fuseki > ( > *Fuseki-0.2.1*-incubating-SNAPSHOT)? > > Best Regards, > Regis. >
