[rdfweb-dev] advocating use of rdf:ID / rdf:about attributes on foaf:Person tags

David Madore david.madore at ens.fr
Sat Aug 16 19:14:45 UTC 2003


Hi.

First I should say that I'm new to this mailing-list.  I've known RDF
for some time, now (starting from the necessity of reading Mozilla
configuration files), and find it fascinating, but I've only very
recently heard of the FOAF project.  Actually, strangely enough, I
heard of it the very day after I wrote a short RDF description of
myself, using various *ad hoc* vocabularies.  Anyway.

I'd just like to raise a few points.

The most important one, as the subject of this mail implies, concerns
the use of the rdf:ID and rdf:about on foaf:Person elements.  I don't
see this very much advocated on the FOAF intro/documentation pages.
For example, the FOAF-a-matic creates RDF files that contain a
foaf:Person element with no rdf:ID attribute on it; now I think this
is very unfortunate: wouldn't it be better to add rdf:ID="me" or some
such thing, so that the person in question can afterward be referred
to with rdf:resource="http://somesite.tld/foaf.rdf#me" through the
generic URI referral mechanism?  This seems far less clumsy than using
foaf:name and/or foaf:mbox_sha1sum and misusing rdfs:seeAlso.  After
all, that's much what RDF is about, referring to all manner of things
through URIs.

Let me restate this, for clarity.  Suppose Joe Smith wrote a file
http://www.joesmith.tld/~joesmith/foaf.rdf containing

<?xml version="1.0" encoding="us-ascii"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xml:base="http://www.joesmith.tld/~joesmith/foaf.rdf">
<foaf:Person rdf:ID="joesmith">
  <foaf:name>Joe Smith</foaf:name>
  <foaf:mbox rdf:resource="mailto:joesmith&#x40;joesmith&#x2e;tld" />
</foaf:Person>
</rdf:RDF>

Then Jane Doe should be able to say she knows Joe Smith simply with

<?xml version="1.0" encoding="us-ascii"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/"
         xml:base="http://www.doefamily.tld/~jane/foaf.rdf">
<foaf:Person rdf:ID="janedoe">
  <foaf:name>Jane Doe</foaf:name>
  <foaf:mbox rdf:resource="mailto:jane&#x40;doefamily&#x2e;tld" />
  <foaf:knows>
    <foaf:Person
      rdf:about="http://www.joesmith.tld/~joesmith/foaf.rdf#joesmith"
      foaf:name="Joe Smith"
      foaf:mbox_sha1sum="c21678171b3c1102dd9b67b02708bf76adf0dfba" />
  </foaf:knows>
</foaf:Person>
</rdf:RDF>

- and even the foaf:name and foaf:mbox_sha1sum attributes are
unnecessary.  If people wants to know more about Joe Smith starting
from Jane Doe's FOAF file, they should simply follow the rdf:about
link, which is the URI that uniquely identifies Joe Smith, globally.
The use of rdfs:seeAlso is dubious at best: it is certainly correct
and valid RDF to use it to point to an RDF file that describes Joe
Smith, but it is equally correct to use it to point to Joe Smith's
(human-readable, not machine-readable) Web site, or to anything
remotely associated with Joe Smith (except that it can't be a
literal); so it is dubious for a robot, FOAF crawler of any kind, to
attempt to follow rdfs:seeAlso links systematically.  Whereas if the
target has been identified by its own URI, as per an rdf:about
attribute, it is the obvious course of action to follow that link.

Hence the question: why the reticence in using RDF URI to refer to
people, in the FOAF framework?  Or am I misinterpreting something?
The example on <URL: http://usefulinc.com/foaf/addingPeople > does not
give the foaf:Person element an rdf:about attribute.

My recommendation would be to make the use of rdf:ID tags systematic
in all FOAF examples and automatic generators.  Furthermore, for
backward compatibility, keep using rdfs:seeAlso, but perhaps introduce
a foaf:import (or some such) property, which is rdfs:subPropertyOf
rdfs:seeAlso, to indicate the semantics in a clearer way.

Further remarks: I'm surprised, upon reading the FOAF spec, that even
such obvious properties as "date of birth" and "gender" are not part
of the vocabulary.  I can understand that some people might not wish
to disclose them, but surely they are desirable additions.  I have not
been able to find a single RDF vocabulary or ontology that includes
them, as a matter of fact, so I created them myself as <URL:
http://www.eleves.ens.fr:8080/home/madore/meta.rdf#birthDate > and
<URL: http://www.eleves.ens.fr:8080/home/madore/meta.rdf#gender >, but
I would rather have them be part of something a little more
"official".

I guess that's all (for now!).  Cheers, happy hacking, and
congratulations to whoever came up with the FOAF idea in the first
place.

-- 
     David A. Madore
<URL: http://www.eleves.ens.fr:8080/home/madore/meta.rdf#dmadore >



More information about the foaf-dev mailing list