Re: Graph to retrieve DESCRIBE result from

Kjetil Kjernsmo wrote:
> All,
> 
> Our latest application makes extensive use of named graphs, but it has 
> also been the source of much confusion. 
> 
> We haven't documented most of this confusion very well, since we are 
> focused on pragmatic solutions to problems. I hope to document and 
> share more of these problems, as I believe it can be quite nice to have 
> to clarify the spec. I just want to make sure that we're not just being 
> silly before sharing it. :-) 
> 
> There is however, one case that I brought up on the Virtuoso list last 
> year that I feel would be interesting to discuss. The discussion begins 
> with this message (which is part of a longer thread), and the responses 
> to it:
> 
> http://sourceforge.net/mailarchive/message.php?msg_name=200901051326.51443.Kjetil.Kjernsmo%40computas.com
> 
> The essence is that we have a default graph which has only triples that 
> state the types of the graphs we have. Then, without knowing the exact 
> graph names (which may be added after the queries are coded into the 
> application), we should be able identify the needed graphs, and then identify 
> the URIs by using
>  
> ?g a <http://msone.computas.no/graphs/vocab/mediasone#InstanceGraph> .
> GRAPH ?g 
> {
> ?uri ms:coverArt <http://ruby3.computas.no/covers/nfi/48739.jpg> .
> }
> 
> If I DESCRIBE ?uri, this should give me the triples from the 
> <#InstanceGraph> with ?uri as subject, and they do in this case exist 
> (otherwise the example would be moot).
> 
> What the linked email shows is that this strategy doesn't work in 
> Virtuoso with DESCRIBE, but it sort of works with CONSTRUCTs (but can't 
> be used in our app since we do not have Feature:LimitByResource). 
> 
> Indeed, I find nothing in the SPARQL 1 spec that would say it should 
> work, but I think it should. :-) 
> 
> I have not identified the concrete problems that would have to be solved 
> for this to work, so I'm just throwing the ball in the hope that 
> someone with a deeper understanding than me will identify those 
> problems.
> 

As far as I can tell, if the RDF dataset for the query includes all of 
the graphs that the engine knows about as named graphs, then this query 
will work.

Different implementations have different ways of expressing "query 
against a dataset consisting of all named graphs you know about". Some 
implementations do this by default when no other dataset is specified; 
others use a "magic" URI to indicate "all graphs".

It's been suggested multiple times in the past that SPARQL have a "FROM 
NAMED *" construct that would explicitly ask that an engine query over 
all known graphs.

The problem that I have always had with this suggestion is that the very 
concept of "all known graphs" is not one that the SPARQL specification 
defines (nor do I really have any idea how one would begin to define it).

Nevertheless, if an advocate of this feature can explain what it would 
mean and would like to champion it as a potential feature for the group 
to consider working on, please go ahead!

Lee

Received on Sunday, 22 March 2009 07:25:16 UTC