Thanks a lot Rob,

Yes, the hint given by James  "*jena emit an sse, rather than an execution
plan*" has worked and I got the desired results, i.e through the command
you mentioned.        ./qparse --print=op --file exampleQuery.sparql ...
About the "*arq --optimize=off or off --query exampleQuery.sparql --explain*"
let me try some more queries to actually feel the difference here.  I thank
you all for helping me.

Best Regards.
Hashim

On Thu, Sep 21, 2023 at 11:22 AM Rob @ DNR <[email protected]> wrote:

> Hashim
>
> I think what you want is probably --optimize=off and that should yield you
> the expected two BGPs e.g.
>
>
> arq --optimize=off --query exampleQuery.sparql --explain
>
>
> 09:43:57 INFO  exec            :: ALGEBRA
>
>   (slice _ 100
>
>     (distinct
>
>       (project (?name ?birth ?death)
>
>         (filter (< ?birth "1900-01-01")
>
>           (leftjoin
>
>             (bgp
>
>               (triple ?person http://dbpedia.org/ontology/birthPlace
> http://dbpedia.org/resource/Berlin)
>
>               (triple ?person http://dbpedia.org/ontology/birthDate
> ?birth)
>
>               (triple ?person http://xmlns.com/foaf/0.1/name ?name)
>
>             )
>
>             (bgp (triple ?person http://dbpedia.org/ontology/deathDate
> ?death)))))))
>
>
>
> As James noted query engines are free to apply optimisations to the raw
> algebra of the query provided that those optimisations preserve the
> semantics of the query.  Jena’s ARQ query engine contains many of these
> that have been developed over many years based on implementation
> experience, academic papers, applying well known query optimisation
> techniques etc.
>
>
>
> Note that turning optimisations off (whatever engine you are using) is
> rarely a good idea.
>
> You may want to experiment with the qparse command whose --print option
> allows you to ask to see various forms of the query from the perspective of
> Jena’a ARQ engine.  For example, the following shows the raw algebra and
> the optimised algebra in the same output.
>
> qparse --query exampleQuery.sparql --print=op --print=optquad
>
>
>
> (prefix ((dbo: http://dbpedia.org/ontology/)
>
>          (dbr: http://dbpedia.org/resource/)
>
>          (foaf: http://xmlns.com/foaf/0.1/))
>
>   (slice _ 100
>
>     (distinct
>
>       (project (?name ?birth ?death)
>
>         (filter (< ?birth "1900-01-01")
>
>           (leftjoin
>
>             (bgp
>
>               (triple ?person dbo:birthPlace dbr:Berlin)
>
>               (triple ?person dbo:birthDate ?birth)
>
>               (triple ?person foaf:name ?name)
>
>             )
>
>             (bgp (triple ?person dbo:deathDate ?death))))))))
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> (prefix ((dbo: http://dbpedia.org/ontology/)
>
>          (dbr: http://dbpedia.org/resource/)
>
>          (foaf: http://xmlns.com/foaf/0.1/))
>
>   (slice _ 100
>
>     (distinct
>
>       (project (?name ?birth ?death)
>
>         (conditional
>
>           (sequence
>
>             (filter (< ?birth "1900-01-01")
>
>               (quadpattern
>
>                 (quad <urn:x-arq:DefaultGraphNode> ?person dbo:birthPlace
> dbr:Berlin)
>
>                 (quad <urn:x-arq:DefaultGraphNode> ?person dbo:birthDate
> ?birth)
>
>               ))
>
>             (quadpattern (quad <urn:x-arq:DefaultGraphNode> ?person
> foaf:name ?name)))
>
>           (quadpattern (quad <urn:x-arq:DefaultGraphNode> ?person
> dbo:deathDate ?death)))))))
>
>
>
> Hope this helps,
>
>
>
> Rob
>
> From: James Anderson <[email protected]>
> Date: Wednesday, 20 September 2023 at 22:06
> To: Hashim Khan <[email protected]>
> Cc: [email protected] <[email protected]>
> Subject: Re: Query features info
> good evening;
>
> if you want to reproduce those results, you will have to examine the
> parsed syntax tree.
> that should comprise just two bgps, as that is the immediate syntax.
> if, on the other hand, you examaine the results of a query planner, you
> are not looking at a systax tree, you are looking at the query processor's
> prospective exection plan.
> execution model permits the transformations to which i alluded.
> you will more likely get your desired representation by having jena emit
> an sse, rather than an execution plan.
>
> best regards, from berlin,
>
> > On 20. Sep 2023, at 17:48, Hashim Khan <[email protected]>
> wrote:
> >
> > Thanks for the quick reply.
> >
> > To be precise, I want to clarify the table on page 7 of the attached
> paper. Here, the No. of BGPs is 2, and also some more values. I want to
> extract all the info using Jena. But I could not till now. About the LSQ, I
> will check it, but I am following this paper and want to reproduce the
> results.
> >
> > Best Regards,
> > Hashim
> >
> > On Tue, Sep 19, 2023 at 4:18 PM James Anderson <
> [email protected]> wrote:
> > 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 <[email protected]>
> 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>)<
> http://dbpedia.org/resource/Berlin%3e)>
> > >                (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><
> http://dbpedia.org/resource/Berlin%3e>
> > >  ?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><
> http://dbpedia.org/resource/Berlin%3e>
> > >  ?person <http://dbpedia.org/ontology/birthDate> ?birth
> > > 13:11:41 INFO  exec            :: BGP ::   ?person <
> > > http://xmlns.com/foaf/0.1/name><http://xmlns.com/foaf/0.1/name%3e>
> ?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 | [email protected] | https://dydra.com
> >
> >
> >
> >
> > --
> > Hashim Khan
> >
> > <swj3336.pdf>
>
> ---
> james anderson | [email protected] | https://dydra.com
>
>

-- 
*Hashim Khan*

Reply via email to