[rdfweb-dev] rdf:ID vs rdf:nodeID

Jeremy Gray jeremy at jeremygray.ca
Mon Jul 12 18:59:34 UTC 2004

> Graham Klyne <GK at ninebynine.org> wrote:
> >I'd say the main difference is that if you use rdf:nodeID="a", it
> >cannot be (directly) referenced from outside the graph in which it 
> >appears.  When using rdf:nodeID="a", the name "a" is strictly local to 
> >the graph.
> >
> >When merging graphs that contain rdf:nodeID="...", care must be taken
> >to rename the node identifiers so that the corresponding nodes from 
> >different graphs are not combined (unless there is independent evidence 
> >that they really do denote the same thing).
> So which would you recommend I use in machine generated PPD FOAF?

It depends on whether or not you want those identifiers to be permanent,
public, and tied to the URI of the document in which the identifiers are
published, assuming the document even has a stable URI.

I'd suggest people think long and hard any time they are tempted to use ID.
If a resource really needs a permanent URI, make sure that you are in an
authoritative position to give it one and then give it an absolute URI that
isn't at risk of being mutated by an URL change of an instance document,
messed up xml:base handling, and/or naïve smushing processes.

In other words, use rdf:about, rdf:resource, and rdf:nodeID. Just forget
that rdf:ID even exists.

Jeremy Gray

More information about the foaf-dev mailing list