- From: Nathan <nathan@webr3.org>
- Date: Sun, 06 Mar 2011 21:53:46 +0000
- To: Richard Cyganiak <richard@cyganiak.de>
- CC: Andy Seaborne <andy.seaborne@epimorphics.com>, RDF Working Group WG <public-rdf-wg@w3.org>
Richard Cyganiak wrote: > On 6 Mar 2011, at 19:23, Nathan wrote: >> Andy Seaborne wrote: >>> RDF datasets don't address the assertions about graphs UC very well. >>> They can - with careful graph naming (naming the g-snap, not the g-box), the default graph can contain assertions about the properties of a graph, just like graph literals can be used for RDF datasets. It's just there is "some assemble required". >> There's a very critical detail here, the need to talk about a g-box, and the need to talk about a g-snap > > Just to be sure we're on the same page in this discussion, can you give an example for “talking about a g-box” and one for “talking about a g-snap”, in particular one where the distinction matters? All the graph use-cases which we are collecting can be broken down in to a core set of generic uses cases relating to the generic concepts we have. The generic concepts (apologies, I need to use different terms here to disambiguate them) anonymous-snap: a distinct set of triples anonymous-box: a container of triples who's value changes over time named-snap: a distinct set of triples, associated with a name. named-box: a container of triples who's value changes over time, associated with a name. named-box-snap: a distinct set of triples which represents the value (or state) of a named-box at a certain time (previous state, current state etc) I've included anonymous-box here just to give a full list, typically this would correlate to something like a Graph Class instance which you can add and remove triples from, but that isn't associated with any name. anonymous-snap can be correlated to quoted-graphs in N3, they're useful when you want to make statements about a distinct set of triples, create rules, rdf diff and patch, or apply your own provenance and annotation data to a set of triples. { ... } :created "2011-03-01"; :by "john" . named-snap is another approach to some of the anonymous-snap use-cases, where rather than having a graph quoted in the subject/object position, you instead give it a (temporary) name, then talk about the name (nb: the name is a property of the serialization, and not some uri for a named-box) G1: { ... } G2: { :G1 :created "2011-03-01"; :by "john" . } named-box correlates to a named-with-a-uri graph in a quad store or the URI of an rdf-providing information resource on the web, any statements made about a named-box relate to the box over time, not to it's current state <u> a :Graph/:Document ; :about :monkeys . <x> rdfs:seeAlso <doc> . named-box-snap correlates to the memento or web archive side of things, grabbing the state of a named graph or information resource at a certain time, and talking about it. see: http://www.w3.org/2011/rdf-wg/wiki/TF-Graphs-UC/Changes_over_time or example 3 here: http://www4.wiwiss.fu-berlin.de/bizer/TriG/#example On the last one, named-box-snap, there are only really two approaches to this, one is to talk about a set of triples and say where they came from and when (the first linked to example) - or - to capture the current state and transfer that (trig example 3). personal viewpoint ahead! Essentially, a large proportion of the use-cases (if not 100%) can be handled with either anonymous-snap or named-snap, the difference between the two is that with anonymous-snap it's all within the RDF data model, where-as with the named-snap approach (example 1 of trig) the names are properties of the serialization, and it requires out of band knowledge about the document in order to know what the :Gn's are for / how to piece them together etc. To expand on this last comment, if you take examples 1 and 3 from the trig documentation, and replace :G1,:G2,:G3 in the first example for their full URIs, then what do you have here? is it a capture of the current state of three named-box's, or is it three named-snap's to be considered for provenance information? This is what I mean by out of band knowledge. With a trig-like syntax, we could specify that graph names can be bnode identifiers or uris, when it's a uri the contained graph is a named-box-snap (where the uri identifies the named-box), and when it's a bnode identifier then it's a named-snap. There is a very fun question though, if we did move to a trig like syntax, and one wanted to take a snapshot of a trig doc and talk about it, how would you do it? wrap things up in a nother set of curly braces and assign another name? or? Will leave it there Best, Nathan
Received on Sunday, 6 March 2011 21:55:29 UTC