W3C home > Mailing lists > Public > www-rdf-logic@w3.org > June 2002

Re: properties as nodes etc.

From: Graham Klyne <GK@ninebynine.org>
Date: Fri, 21 Jun 2002 16:40:14 +0100
Message-Id: <>
To: "Danny Ayers" <danny666@virgilio.it>
Cc: <www-rdf-logic@w3.org>

I don't know if this helps, but I wrestled with something similar a while ago.

When you have a triple:

      subj prop obj

the 'subj'/'obj' and 'prop' play different roles:  the subj and obj URIrefs 
identify specific nodes, so that if you have:

      s p1 o1
      s p2 o2

the very same graph node 's' is included both triples.  Similarly for the 
object of a triple.

But, the property URIref behaves differently; e.g.

      s1 p o1
      s2 p o2

In this case, the arcs labelled 'p' are different arcs, despite having the 
same label.

A way to view this is that where the node identifiers in a triple are 
instance identifers, the arc identifier is a *type* identifier, and the 
graph arc can be viewed as an *instance* of the type thus identified.

To echo Seth's comment, then, the arc is not identified by the arc label 
alone;  it might be viewed as being identified by the combination of two 
endpoint nodes AND the arc label.


At 12:00 PM 6/17/02 +0200, Danny Ayers wrote:
>Hi folks,
>I'm struggling with an implementation problem that is rooted in MT, so I was
>hoping someone here might be able to shed light. What I'm having a problem
>with is teasing out the inherent difference(s) between a node and arc in an
>RDF graph. It's likely that I'm not seeing the wood for the trees, because
>I'm trying to deal with these things from an OO point of view, and find it
>difficult to hop between boxes.
>If we have one node connected to another by an arc, what is the significance
>(assuming legality) of using the arc as the end node of another
>relationship? In other words, if we have a triple {s1, p1, o1}, what are the
>possibilities/limitations meaningwise in {p1, p2, o2} and {s3, p3, p1}?
>Taking this from another angle, if I have triple 1 {s1, p1, o1} and triple 2
>{s2, p1, o2} and want to say that p1 in the first triple has an extra
>characteristic not found in the second?
>In the app I'm working on, I have a (OO) class Item, with subclasses Vertex
>and Edge. It's easy enough to wrap/constrain these subclasses as RDF
>properties and resources as distinct kinds of entities, each with a specific
>range of roles. The problems start when I try to swap the roles around, and
>continue when I try and deal with the class/instance divide of RDF and that
>of OO. I want to avoid tying things completely to the RDF graph, which I
>guess would have Property as an (OO) subclass of Resource, but I still want
>to be able to (for example) transform an edge in one graph into a vertex in
>another. So far I've been able to do quite a lot by working with a
>generalized graph model and considering RDF as one interpretation, but at
>this point things have stalled somewhat (in my mind at least ;-)
>I suppose the root of my problem is not really having worked out whether
>this kind of manipulation makes enough sense in the RDF model, or whether it
>would be necessary/easier to remove the RDF glue first before transforming
>(keeping only topological constraints), then reapplying (as appropriate)
>RDF-model semantics. I've a feeling it should be possible to do this by
>making a kind of canonical version of the RDF graph (including all the
>assertions made in the relevant RDFS) and transforming that under RDF MT,
>but here again the box-hopping OO/RDF class/instance things make me dizzy.
>Suggestions very welcome.
>Danny Ayers
><stuff> http://www.isacat.net </stuff>

Graham Klyne
Received on Friday, 21 June 2002 11:31:04 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 2 March 2016 11:10:38 UTC