federation use case

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

office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
                        Shonan Fujisawa Campus, Keio University,
                        5322 Endo, Fujisawa, Kanagawa 252-8520
                        JAPAN
        +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741 (does not work in Asia)

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.

Received on Tuesday, 27 July 2004 00:58:25 UTC