- From: Jeen Broekstra <jeen.broekstra@aduna-software.com>
- Date: Thu, 31 May 2007 09:50:06 +0200
- To: Pat Hayes <phayes@ihmc.us>
- CC: Bob MacGregor <bmacgregor@siderean.com>, public-rdf-dawg-comments@w3.org, Eric Prud'hommeaux <eric@w3.org>, Richard Newman <rnewman@franz.com>
Pat Hayes wrote: > >> Hi Pat, >> >> On May 29, 2007, at 1954, Pat Hayes wrote: >> >>> <snip> >>> >> >>> However, I am at a loss to understand how you refer to these 150,000 >>> graphs if you have no way to name them. How do you even know how many >>> you have? >>> >> >> Each of the graphs consists of triples extracted from a different >> document. The document might be identified by a file name, or a >> message ID, >> a documentum identifier, or whatever. The quads for that document >> share a common context argument; a blank node. The same >> blank node appears in subject position to record provenance assertions >> about the graph (which document, which extractor used, >> time of extraction, etc). > > That works as long as everything is inside the intended scope of the > blank node identifier, which is usually a document. BUt a query is not > usually inside the same scope as the graph(s) being queried, so to use > the blank node as an identifier in the query is (usually) impossible. Allow me to jump in at this point with my personal POV. I think you overlook the fact that you can address blank nodes 'existentially' from a query, e.g. "give me the triples from the graph identified with the source property ex:foo and value ex:bar" : SELECT ?x ?y ?z WHERE { ?g ex:foo ex:bar. GRAPH ?g { ?x ?y ?z .} } Surely in this kind of pattern ?g could well be allowed to be bound to a blank node. However, this is currently not possible in SPARQL because it explicitly requires that a graph name is a URI. FWIW we have implementation experience with allowing blank nodes here, because that is exactly what Sesame does; we call the mechanism 'context' rather than 'named graph', by the way since the notion of 'naming' indeed tends to suggest that it is an actual *name*. I don't think it's a matter of scope, because the scope of the blank node is still the original dataset, it is not directly addressed from the query. Cheers, Jeen -- Aduna - Guided Exploration www.aduna-software.com Prinses Julianaplein 14-b 3817 CS Amersfoort The Netherlands +31-33-4659987 (office)
Received on Thursday, 31 May 2007 07:52:22 UTC