RE: Querying "all graphs"

-----Original Message-----
From: public-rdf-dawg-request@w3.org [mailto:public-rdf-dawg-request@w3.org]
On Behalf Of Chimezie Ogbuji
Sent: Tuesday, March 31, 2009 1:24 AM
To: Seaborne, Andy; Lee Feigenbaum
Cc: Kjetil Kjernsmo; 'RDF Data Access Working Group'
Subject: Re: Querying "all graphs"

I've created two features:

- http://www.w3.org/2009/sparql/wiki/Feature:CompositeDatasets
- http://www.w3.org/2009/sparql/wiki/Feature:AllNamedGraphs

CompositeDatasets is meant to be a comprehensive solution for composing
named, arbitrary subsets from all named graphs in a dataset, while
AllNamedGraphs is supposed to be 'low hanging fruit' (i.e., the feature that
there seems to be more consensus need around and corresponds to Lee's #1).


Chimezie

The usefulness of this is quite clear.  We have always queried the set of
the graphs when no default graph was specified.  More recently we have added
a way to have a single name stand for an enumerated collection of graphs.
There is a way of also querying all graphs except a specified list.  

If we are looking at an open web situation where each graph is a personal
foaf file, then some access control or reliability filtering will generally
be needed.  This means qualifying the graph by some query, for example
consider only graphs from people I know.  Such things can be expressed if
the graph is initially the union of everything and then restricted pattern
by pattern.

Like select * where graph <directory> { ?g has_author <me>} . graph ?g {
<me> foaf:knows ?x }}

This would be all the people I know according to me.  The directory graph
would be just a regular graphkeeping graph origins and maintained by
application logic.

Listing graphs as enumeration of literals is a bit easier to optimize even
though   the equivalent can be expressed as above.  
	
Orri

Received on Tuesday, 31 March 2009 06:48:33 UTC