W3C home > Mailing lists > Public > www-rdf-interest@w3.org > June 2004

RE: Multiple queries is a single request

From: Seaborne, Andy <andy.seaborne@hp.com>
Date: Wed, 2 Jun 2004 16:24:26 +0100
Message-ID: <E864E95CB35C1C46B72FEA0626A2E808031A9CB8@0-mail-br1.hpl.hp.com>
To: Phil Dawes <pdawes@users.sourceforge.net>
Cc: Chris Bizer <chris@bizer.de>, www-rdf-interest@w3.org

Phil,

I have considered it and multiple queries per request can be useful.
However, the need for it is lessened because HTTP request can be issued one
after another on the same connection without first getting a reply.  This is
not the same as merging at the server but does mean many queries can be
issued at a time and independent queries don't an accumulate the
round-trip-time (RTT).  The language APIs to HTTP I have used don't make
this easy but HTTP does allow it.

More below ...

-------- Original Message --------
> From: Phil Dawes <>
> Date: 2 June 2004 15:45
> 
> Hi Andy,
> 
> Have you considered allowing multiple queries in a single
> request for joseki?
> 
> For example, in order to render a veudas resource view (like a fetch,
> but with rdfs:labels used to render the statements), veudas does the
> following:
> 
> 1) a query to retrieve the resource information
>     'select ?p, ?o where (foo:bah, ?p, ?o)'
> 2) a query to retrieve the labels for the properties
>     'select ?p, ?o ?l where (foo:bah, ?p, ?o) (?p rdfs:label ?l)'
> 3) a query to retrieve the labels for the objects
>     'select ?p, ?o ?l where (foo:bah, ?p, ?o) (?o rdfs:label ?l)'

I would do this as a "fetch" with a custom handler for the fetch operation.
If you think of "fetch" as "describe" then you are defining one such
operation that gets (foo:bah, ?p, ?o) and any labels for ?p and ?o.  "fetch"
isn't supposed to be a fixed operation, it is defined by the server.

I have also done this with a client-side label cache.  More so for
properties, the same ones keep getting used so the cache quickly gets to a
high hit rate.

> 
> These queries don't depend on each other and so could be done in a
> single request.
> 
> With multiple source stores, the number of requests grows rapidly as
> veudas attempts to iterate around terms it doesnt have labels for,
> firing off a query request for each one. I suspect that multiple
> queries in a single dispatch would improve performance massively. It
> would also mitigate some of the performance lost to not having
> optional query parameters in RDQL.

It seems that what you want to avoid is the accumulated RTT of doing things
request-response.  And, yes, optional triples in RDQL would help!

> 
> Could this be as simple as allowing multiple query parameters to the
> GET request and merging the resulting graphs?
> 
> Many thanks,
> 
> Phil
Received on Wednesday, 2 June 2004 11:25:21 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:07 GMT