- From: Alberto Reggiori <alberto@asemantics.com>
- Date: Wed, 28 Jul 2004 16:15:12 +0200
- To: andy.seaborne@hp.com
- Cc: Eric Prud'hommeaux <eric@w3.org>, RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Jul 28, 2004, at 3:13 PM, Seaborne, Andy wrote:
>
> Could this be addressed with a general paramterised queries (see also
> [1]) mechanism? If CDDB and IMDB were on the same site it would be
> nice to flow the paramters from the first query to the second without
> a round trip back to the client.
interesting to see how recently the federation use case seems to come
up again and still of interest to people here - which reminds me about
the discussion started sometime ago
http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JanMar/
0062.html
which was probably not down-to-earth enough and less clear - while
EricP example instead gives a more concrete scenario about a possible
CDDB and IMDB data federation.
In some BRQL dialect I would rewrite EricP Algae federated query as
CONSTRUCT
(?t foo bar)
WHERE
SOURCE ?cddb (?m tt:rank ?rc)
SOURCE ?cddb (?m cddb:soundtrack ?s)
SOURCE ?cddb (?s dc:title ?t)
(?cddb dc:source <http://somedb.cddb.org> ) // CDDB source
SOURCE ?imdb (?r tt:rank ?ri)
SOURCE ?imdb (?r dc:title ?t)
(?imdb dc:source
<ftp://ftp.fu-berlin.de/pub/misc/movies/database/> ) // IMDB source
AND ?rc <= 10 && ?ri <= 10
and would apply the constraints after the federated join has happened -
and dc:source might be used as special property to bind BRQL SOURCEs to
any thought?
Yours
Alberto
>
> Andy
>
> [1]
> http://lists.w3.org/Archives/Public/public-rdf-dawg/2004JulSep/
> 0090.html
>
> Eric Prud'hommeaux wrote:
>
>> Joe wants to see what top 10 movies of also had top-ten soundtracks.
>> IMDB has information about movies and CDDB has info about music. Joe
>> writes a query that gets the titles of all the top 10 movies. These
>> are boudn to the variable ?t. He uses those bindings for ?t to then
>> query IMDB to filter out the ones that did not have top 10
>> soundtracks.
>> from CDDB:
>> CONSTRUCT (?t foo bar)
>> WHERE (?m tt:rank ?rc)
>> (?m cddb:soundtrack ?s)
>> (?s dc:title ?t)
>> AND ?rc <= 10
>> from IMDB:
>> SELECT ?t
>> WHERE (?r tt:rank ?ri)
>> (?r dc:title ?t)
>> AND ?ri <= 10
>> This needs the ability to use variables bound in an earlier query to
>> constrain later queries. It also requires some sort of query
>> targeting. In algae, this looks like:
>> ns tt=<...> ns cddb=<...> ns dc=<...> attach
>> <http://www.w3.org/...#remoteQuery> ?cddb (
>> server=<http://cddb.com/rq>)
>> ask ?cddb ( ?m tt:rank ?rc {?rc <= 10} .
>> ?m cddb:soundtrack ?s .
>> ?s dc:title ?t )
>> attach <http://www.w3.org/...#remoteQuery> ?imdb (
>> server=<http://imdb.com/querySrvc>)
>> ask ?cddb ( ?r tt:rank ?ri {?ri <= 10} .
>> ?r dc:title ?t )
>> collect (?t)
>> This is very different from (more rigorous and expensive than) our
>> current definition of aggregate query [1]. Such a query would, if the
>> data is divided as the above queries suggest, return zero results.
>> [1] http://www.w3.org/2001/sw/DataAccess/UseCases#d4.5
Received on Wednesday, 28 July 2004 10:15:02 UTC