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.
> >
>

Reply via email to