Re: Issues danc-01 Re: 2 formalities in RDF concepts

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