- From: Dan Connolly <connolly@w3.org>
- Date: Tue, 28 Jan 2003 12:07:25 -0600
- To: Jeremy Carroll <jjc@hpl.hp.com>
- Cc: www-rdf-comments@w3.org
On Tue, 2003-01-28 at 11:22, Jeremy Carroll wrote: > Hi Dan, > > before the WG discusses this issue I wanted to understand your concern. > > I believe that you think the concept described in > > 6.3 Graph Equality > http://www.w3.org/TR/rdf-concepts/#section-graph-equality > > is one that is relevant to RDF and should be described in RDF Concepts, but > that you take issue with it being labelled "Equality". Earlier drafts called > this concept "Isomorphism" Well, that's a different way to resolve this matter, but the semantics doc doesn't use that notion of graph; it uses the notion of graph where the n-triples documents below definitely correspond to the identically same graph, even if the sets of triples don't share a blank node. So going that way would involve a change to the semantics doc that might be quite significant. > see: > 3.6 Graph Equality > http://www.w3.org/TR/2002/WD-rdf-concepts-20020829/#xtocid103648 > (which uses both terms) > > If I have two N-triple files of one line each > > <eg:a> <eg:b> _:x . > > and > > <eg:a> <eg:b> _:y . > > Do you think they are equal or unequal? Those two files are clearly distinguishable, hence they are not equal. > Personally, I would say they are equal as RDF graphs, and unequal as text > documents. "as RDF graphs"... I'm not sure what you mean by that, formally. I don't think you mean that N-triples file are RDF graphs. I think you mean that there's a straightforward correspondence from N-triples files to RDF graphs, and that the two distinct N-triples files above correspond to the same RDF graph. That's certainly how the semantics doc discusses it. <aside> Ironically, it imports terms such as uriref and literal from the concepts spec, but not the term graph. I find that quite odd. "We use the following terminology defined there: uriref, literal, plain literal, typed literal, blank node and triple." -- http://www.w3.org/TR/2003/WD-rdf-mt-20030123/#graphsyntax </aside> OK, now, to get really formal, our specs don't say whether "_:x" and "_:y" above represent the same blank node or not. So let's take both cases... If they represent distinct blank nodes, then the set of triples from those two n-triples files are distinct. But we want their graphs to be the same. So we can't just say that the graph *is* the set of triples. There's a many-to-one relationship between sets of triples and graphs. If they represent the same blank node, then it might not seem that there's a problem with defining graphs to be sets of triples, but... if you look at the discussion of merging in the semantics doc, you'll see that to merge this graph with itself, you need to construct another triple that contains a distinct blank node. Now look at the set-of-triples containing just this new triple... it's distinct from the set-of-triples containing the one we got from the n-triples above, right? But we want it to correspond to the very same graph, right? Again, we see that the relationship from sets of triples to graphs is many-to-one. You could define a graph to be the equivalence class of sets of triples under blank-node-replacement-equivalence. In my larch stuff, http://www.w3.org/XML/9711theory/RDFAbSyn.lsl v 1.7 2003/01/27 23:55:04 I just declared an operator from sets of triples to graphs g: Set[RDF_triple] -> Graph and constrained the operator so that when one set of triples can be obtained from another by blank-node-mapping, the two sets map to the same graph: forall ts1, ts2: Set[RDF_triple] m: Map[Blank_node, Blank_node] (m[ts1] = m[ts2]) => (g(ts1) = g(ts2)); % where blank-node maps extend to triple-set maps % in the obvious fashion... Or you could wave your hands ala... "This slight abuse of terminology allows us to simplify the presentation by ignoring questions of re-naming of bound variables." -- http://www.w3.org/TR/2003/WD-rdf-mt-20030123/#graphsyntax Hmm... now that I think about it, I think the fact that semantics doesn't import 'graph' from concepts is the most important part of my issue. Perhaps it's a notion that's OK to define locally in each spec... but I don't think so. I think it should be imported into the OWL spec and lots of other places, so it's important enough to (a) specify rigorously, and (b) specify in exactly one place, with normative references from other places where it's used. > Another example about the usage of the word equal, from mathematics, would be: > Take a piece of paper. Near the top draw a circle and put three blobs on it. > Near the bottom draw a triangle with a blob on each corner. > It would be normal practice in graph theory to say that: > Both the circle and the triangle form plane graphs (with the blobs as nodes). > And that the two graphs are equal (as graphs). > While from a different point of view they are clearly unequal. The graphs are equal and the pictures are not equal, but neither are the graphs equal to the pictures. This "as graphs" phrasing is really misleading... it's more like coersing one resource to another than looking at the same thing as members of different classes. > I'm trying to understand what your issue is, I guess I need to hear a bit more > from you. > > Jeremy -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Tuesday, 28 January 2003 13:08:09 UTC