Hi, Stephen. There is no problem with using one of the alternate queries. I was just trying to figure out why that was happening and maybe suggest a query optimization improvement to Jena. So, thank you for the explanation.
Regards, Regis. On Sat, Dec 17, 2011 at 2:50 AM, Stephen Allen <[email protected]> wrote: > 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. > > >
