W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > October to December 2009

RE: Re 2: [TF-ENT] Querying datasets with default plus named graphs

From: Seaborne, Andy <andy.seaborne@hp.com>
Date: Mon, 12 Oct 2009 15:55:24 +0000
To: Ivan Herman <ivan@w3.org>, Birte Glimm <birte.glimm@comlab.ox.ac.uk>
CC: SPARQL Working Group <public-rdf-dawg@w3.org>
Message-ID: <B6CF1054FDC8B845BF93A6645D19BEA3693F7D3E4D@GVW1118EXC.americas.hpqcorp.net>


> -----Original Message-----
> From: public-rdf-dawg-request@w3.org [mailto:public-rdf-dawg-request@w3.org]
> On Behalf Of Ivan Herman
> Sent: 12 October 2009 13:12
> To: Birte Glimm
> Cc: SPARQL Working Group
> Subject: Re 2: [TF-ENT] Querying datasets with default plus named graphs
> 
> Just thinking a bit further...
> 
> Ivan Herman wrote:
> >
> > Birte Glimm wrote:
> >> [snip]
> >>> Just for my understanding, based on your latest text (thanks for having
> >>> added it, b.t.w.!)... if I have
> >>>
> >>> <A> standing for the graph
> >>> :p rdfs:range :AA
> >>>
> >>> <B> standing for the graph
> >>> :p rdfs:domain :BB
> >>>
> >>> <C> standing for the graph
> >>> :x :p :y
> >>>
> >>> then the query:
> >>>
> >>> SELECT ?g
> >>> FROM NAMED <A>
> >>> FROM NAMED <B>
> >>> FROM <C>
> >>> WHERE {
> >>>   GRAPH ?g { :y a ?type }
> >>> }
> >>>
> >>> will return ?g-><A>, right?
> >> I would not say so. In this query you have not merged that data from
> >> the three graphs that you consider. Your query will go through all
> >> three graphs (the 2 named and the default graph) and try to find a
> >> binding for the variables in each graph without considering the data
> >> from the other graphs. I.e., you can first try ?g-><A>, but <A> alone
> >> does not provide a binding for ?type and entailment cannot do much if
> >> you have only the triple :p rdfs:range :AA. Then you go on to ?g-><B>,
> >> but again, the triples from <B> alone do not give a binding for ?type.
> >> Now you try the default graph, but that alone does also not give any
> >> type information and there is no answer for the query.
> >>
> >
> 
> This may not be a problem, but I must add that if this is what we mean
> than this means RDFS reasoning on named graphs fairly difficult to use.
> What this means that a specific named graphs should always include both
> the vocabulary part _and_ the data itself (this is where the missing
> import mechanism backfires).


> Indeed, for the default graph, I can have
> as many FROM statements as I want, some of those getting hold of the
> vocabulary and others of the data, this is not a possibility for a named
> graph... Or do I miss something again?

No, I don't think so. FROM and FROM NAMED have an asymmetry which is inconvenient sometimes.  FROM/FROM NAMED can't always describe the union named graph in the dataset you might want [*].  There have been proposals for FROM NAMED <..> AS <..> which allows a union named graph to be described but last time we decided not to go that far.

> As I said, we may want to live with this, but it is worth noting to
> ourselves...

Yes, to ourselves.

> 
> Ivan

	Andy

[*] Well, it can but you might like the way to do it :-)

....





FROM NAMED <http://service?query=CONSTRUCT{?s?p?o}WHERE{{GRAPH<A>{?s?p?o}}UNION{GRAPH<B>{?s?p?o}}}>

give or take some encoding.  Makes the graph name a bit untidy.

:-)


Received on Monday, 12 October 2009 15:56:30 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:40 GMT