Re: new walkthrough (rdfs:label usage)

From: Dan Connolly (connolly@w3.org)
Date: 03/22/01


"Peter F. Patel-Schneider" wrote:
> 
> From: pat hayes <phayes@ai.uwf.edu>
> Subject: Re: new walkthrough
> Date: Wed, 21 Mar 2001 14:12:07 -0600
[...]
> > 3. The document says:
> > --------------------------------------
> > <daml:Class rdf:ID="Animal">
[...]
> > --------------------------------------
> > Question: since we have rdf:ID="Animal" in the opening tag, why do we
> > need to say that the rdfs:label is also "Animal" ? This seems
> > redundant. Which of these two is the one that actually attaches the
> > name 'Animal' to the class for purposes of #-subscripting? Or must
> > one write both? (If so that is DUMB.)

The rdf:ID is the one for the purpose of #-subscripting
(and in general, for refering to the class in
formulas/assertions/statements.)

You don't need both for that purpose. The rdfs:label
is a label for documentation etc.

The ID just gives a logical symbol used
to denote the class; keep in mind that the rdf:ID
syntax is short for
	rdf:about="#Animal"
which is short for
	rdf:about="http://www.daml.org/2001/03/daml+oil-ex#Animal"
(presuming I got that URI right)

and there's no meta-logical machinery for taking apart symbols
and so on to get "Animal" back. So if you want the
string "Animal" associated
with that class, you have to say so explicitly.

The idiom
	<rdfs:Class rdf:ID="Animal">
	  <rdfs:label>Animal</rdfs:label>
	</rdfs:Class>
is somewhat analagous to

	<a name="Animal">Animal</a>


> > If it is not redundant (for
> > some reason connected with the rdf/rdfs distinction which is opaque
> > to me) could the rdf:ID and the rdfs:label be different?

yes. In particular, it's customary to give several rdfs:labels,
one in English, one in French, and so on.

> > If so, we
> > should actually have them as being different in the example, to make
> > the point.

Good idea.

> > If not, we should say something about whatever the
> > brain-damaged reason is for having to say the same thing twice.
> > Either way it isn't good enough to just say that the label 'makes it
> > possible for others to refer', since the rdf:ID does that already.
> >
> > More later.
> 
> I'm not sure what rdfs:label is supposed to be used for.


>  Sure it is in the
> rdfs rec, and is supposed to be a ``human readable'' version of a resource
> name, but what is that supposed to be?  I suggest that we remove rdfs:label
> from our examples.

I'd rather include an example showing a different
ID and label, or two labels or something. Here's one for
consideration:

<rdfs:Property about="#latinName">
  <rdfs:subPropertyOf
resource="http://www.w3.org/2001/01/rdf-schema#label"/>
</rdfs:Property>

<rdfs:Class about="#Person">
  <rdfs:label>Person</rdfs:label>
  <latinName>Homo sapien</latinName>
</rdfs:Class>

or, if you find lisp/KIF easier to read
(and making up a form of namespace support in KIF...):

  (with-namespaces ((rdfs "http://www.w3.org/2001/01/rdf-schema"))
    (rdfs:subPropertyOf latinName rdfs:label)
    (rdfs:Class Person)
    (rdfs:label Person "Person")
    (latinName Person "Homo sapien")
  )

or in n3:

@prefix : <#>.
@prefix rdfs: <http://www.w3.org/2001/01/rdf-schema#>
:latinName rdfs:subPropertyOf rdfs:label.
:Person a rdfs:Class;
  rdfs:label "Person";
  :latinName "Homo sapien".


-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
office: tel:+1-913-491-0501
pager: mailto:connolly.pager@w3.org
  (put return phone number in from/subject)


This archive was generated by hypermail 2.1.4 : 04/02/02 EST