RE: The RDF model *is* part of the problem

David Megginson wrote:
> "Perry A. Caro" <caro@adobe.com> writes:
> 
> [snipped way out of context]
> 
> > RDF may fail the using part without understanding all criteria --
> > lack of full understanding of the model can get you into trouble.
> 
> > When I help people who are having a hard time understanding the
> > model, I use this approach.  The interesting bits of the full
> > directed graph can often be transformed into ordinary trees without
> > loss of information, each rooted at a node that was originally
> > identified with an rdf:about attribute.
> 
> I agree, but I'd take it much further -- I find that the people I work
> with (many of them software developers, granted) find the RDF model
> terribly confusing, but light bulbs go on when I tell them to compare
> a Java interface
> 
>   [Java stuff ...]
> 
> with an RDF instance
> 
>   [RDF stuff ...]
> 
> When they realize that RDF is just a way to serialize objects in XML,
> and that they can safely ignore all of the bizarre pseudo-grammatical
> and pseudo-KR terminology (sometimes after several wasted days
> puzzling over it), they warm up to RDF a little.

But it isn't really. The Java you gave defines the extent of the object.
By that I mean that base classes aside, the entirety of the class is
defined by the code you gave. I could say from your code, that there is
a class called Person that is defined by having these - and only these -
properties.

The RDF on the other hand does not really say the same thing. It says
that there is some object ".../001", which is *for you* an instance of a
class called acme:Person. In *your* system there are additional
properties for that person (the instance, not the class) which you then
specify.

I suggest this distinction because by only dealing with serialisation
you ignore the fact that I can say:

  <xp:Person rdf:about="http://www.acme.com/ids/0001">
    <acme:name>Jane Smith</acme:name>
    <xp:job>Train Driver</xp:job>
  </xp:Person>

*I* have made statements about *your* object. So the extent of your
object is not expressible in the way it was with Java.

Anyway, explaining RDF in terms of serialisation does not actually
explain RDF. I'm sure many people on these lists have grappled with the
notion "why should I serialise with RDF when I can just use a straight
XML document"? The answer is unfortunately "you don't have to". If you
remove the distributed nature of RDF then it cannot represent any more
than an XML DTD can (to put it another way, I can easily interpret XML
documents as 'nodes and arcs'). You can just as easily serialise your
information like this:

  <Person ID="3">
    <url>http://www.acme.com/ids/0001</url>
    <name>Jane Smith</name>
    <birth-date>1970-11-17</birth-date>
    <nationality>US</nationality>
    <father IDREF="1" />
    <mother IDREF="2"/>
  </Person>

I'm not saying RDF serialisation isn't useful, but it is not what marks
RDF out.

Best regards,

Mark Birbeck
x-port.net Ltd.

E: Mark.Birbeck@x-port.net
T: +44 (20) 7878 1509

(Putting full signature now because there seem to be two of us who just
put 'Mark' at the end of our emails!)

Received on Tuesday, 29 February 2000 13:52:21 UTC