- From: William Waites <wwaites@tardis.ed.ac.uk>
- Date: Sat, 16 Feb 2013 11:30:21 +0000 (GMT)
- To: phayes@ihmc.us
- Cc: andy.seaborne@epimorphics.com, public-rdf-wg@w3.org
- Message-Id: <20130216.113021.180004687.wwaites@tardis.ed.ac.uk>
On Fri, 15 Feb 2013 16:17:17 -0600, Pat Hayes <phayes@ihmc.us> said: > Not quite. In a sane world, the name of the graph would always > denote the graph, be it an IRI or a bnode. But the WG has > decided that IRIs can be used to label a graph while at the same > time denoting something else, eg you can use an IRI denoting a > person to be the graph label of a record pertaining to that > person (or an IRI denoting a time to label a graph true at that > time, etc..). It seems we are back to the two incompatible uses of graph: - For making statements about statements - For partitioning triples arbitrarily The obvious next question is, suppose we go back and do allow blank nodes to refer to graphs as seems to make sense, and we end up with a bunch of statements, and a bunch of statements about those (supposing only two levels deep for now), how do we then partition those into groups for administrative or provenance or whatever purposes? Pretty soon we also wonder why on earth we have a "default" graph that is special. Sure it makes sense as a configuration option for a query answering engine to have some sort of default to help compose queries more succinctly, but surely that's a surface detail. Graphs that are written down without labels in trig are just graphs without names. And why can't we refer to this graph without a name and that graph without a name? So, having got rid of the anomaly that means we can't refer to graphs in the usual way, and excised the special status of the "default" graph because we can now refer to any number of graphs, we need another level of indirection to express things like, "I heard from Alice that Bob thinks the moon is made of green cheese", { :bob :thinks { :moon :substance :cheese; :colour :green } } :source :alice. Or written out in longhand, _:b0 { _:b1 :source :alice. } _:b1 { :bob :thinks _:b2. } _:b2 { :moon :substance :cheese. :moon :colour :green. } And we could even add, _:bX { <statements_by_alice> :includes _:b0 } somewhere to effectively include the whole tree in the partition that we have made for things that Alice has said that may be otherwise unrelated. But I think that somehow trees are controversial. The whole idea of making the graph label not refer to the graph so as to make partitions was to avoid trees and nesting. If we wanted to make the design even simpler, we could just ditch the idea of a graph altogether and give each statement an identifier. Then the whole thing could be easily and consistently built up from that, :g1 a :Graph; :hasStatement :s1, :s2, :s3... But the WG has been over this ground before, hasn't it? -w
Received on Saturday, 16 February 2013 11:30:38 UTC