Punning not harmless

I have to disagree with Pat on the issue of allowing a class and a
property to share the same name.

>From Pat Hayes:
>It might help if we were to add that one way to think about this is 
>that the use of the same name for a class and a property is really 
>only a 'pun'; it doesn't imply that the class extension (which is 
>often thought of as being the class itself) and the property 
>extension (similarly) are the same extension. But this kind of 
'>punning' is harmless in the RDF semantics; and since in this case it 
>seems natural, we have decided to take advantage of it.

We implemented the kind of punning that Pat describes above 
when we built the Loom KR system, and we regretted that particular decision.  
When we built PowerLoom, we mandated that class and property
names (in the RDF sense) be disjoint.  Briefly, the use of the same 
name to denote both a class and a property (a binary relation),
is OK until you make (syntactially) second-order statements, in
which case it is NOT OK.  For example:

To assert that the class  xsdr:decimal  has arity one (using someone's arity property)
would be:

   <xsdr:decimal> <arity> 1

To assert that the property  xsdr:decimal has arity two would be:

   <xsdr:decimal> <arity> 2

I will (partially) rescind my objection if someone can tell me how to distinguish
between the two denotations of <xsdr:decimal> (or whatever class and property),
using a triples syntax.  I say "partially" because I still believe that punning 
is more trouble than it is worth.

The short summary is, punning is not OK for any language where a class/property
can be reified.

- Bob
----- Original Message ----- 
> Message-Id: <p05111b05b95b5cb86c02@[65.217.30.45]>
> Date: Wed, 17 Jul 2002 12:48:51 -0500
> To: Brian McBride <bwm@hplb.hpl.hp.com>
> From: pat hayes <phayes@ai.uwf.edu>
> Cc: Piotr Kaminski <piotr@ideanest.com>, www-rdf-interest@w3.org
> Subject: Re: Input sought on datatyping tradeoff
> 
> >At 13:43 11/07/2002 -0700, Piotr Kaminski wrote:
> >>A side comment on the datatype question:
> >>
> >>From: "Brian McBride" <bwm@hplb.hpl.hp.com>:
> >>>  Test D:
> >>>
> >>>     <Jenny>      <ageInYears> "10" .
> >>>     <ageInYears> <rdfs:range> <xsdr:decimal> .
> >>>
> >>>     <John>  <ageInYears>      _:a .
> >>>     _:a     <xsdr:decimal>   "10" .
> >>
> >>According to RDF Model Theory rules, this means that <xsdr:decimal> is both
> >>a class and a property.  As far as I can tell this is legal (?),
> >
> >Yes
> >
> >>  but is it
> >>the desired effect?
> >
> >Yes.  We did at one point in our discussions have different terms 
> >for the value space (Class) and lexical to value mapping (property) 
> >of the datatype.  We decided however that it was simpler, and easier 
> >for the non-expert user, to have just one term to represent the 
> >datatype.  Fortunately, the way the semantics are defined this works.
> >
> >>   What does it mean?
> >
> >Remember, that in the model theory, a class is not a set of things, 
> >it is a resource which has an associated set, the class extension, 
> >which is the set of members of the class.  This is how we addressed 
> >the issue of Class being a member of itself.  A class can be a 
> >member of its own extension, and we can do that and stick with the 
> >most commonly understood set theory.
> >
> >Similarly a Property is not a set of pairs, but is a resource with a 
> >property extension which is the set of pairs defining the relation.
> >
> >A resource can have both a Class extension and a property extension 
> >and it all works fine (so Pat tells me - I'm not a mathematician).
> >
> >The way we have defined datatypes, a datatype is a resource which 
> >has both a class and property extension.  The advantage of doing 
> >things this way is, as I said above, users need only understand one 
> >concept, the datatype and don't have to use different names in 
> >different contexts.
> >
> >Pat: feel free to jump in here if I'm getting this wrong.
> 
> No, you have it just right.
> 
> It might help if we were to add that one way to think about this is 
> that the use of the same name for a class and a property is really 
> only a 'pun'; it doesn't imply that the class extension (which is 
> often thought of as being the class itself) and the property 
> extension (similarly) are the same extension. But this kind of 
> 'punning' is harmless in the RDF semantics; and since in this case it 
> seems natural, we have decided to take advantage of it.
> 
> BTW, notice that it would NOT be OK to have 'punning' between two 
> different classes or two different properties. But since classes and 
> properties are distinct syntactic categories in RDF, it is harmless 
> to use the same name for a class and a property; it couldn't ever be 
> ambiguous which you meant.
> 
> Pat
> -- 
> ---------------------------------------------------------------------
> IHMC     (850)434 8903   home
> 40 South Alcaniz St.   (850)202 4416   office
> Pensacola,  FL 32501   (850)202 4440   fax
> phayes@ai.uwf.edu 
> http://www.coginst.uwf.edu/~phayes
> 
===========================================
Bob MacGregor                                   macgregor@isi.edu
Project Leader                                     voice: 310.448.8423
Distributed Scalable Systems Division   cell: 310.251.8488
University of Southern California            fax: 310.822.6592
Information Sciences Institute
4676 Admiralty Way
Marina del Rey, CA 90292

Received on Friday, 26 July 2002 00:07:20 UTC