Re: [ontolog-forum] Last Call: OWL 2 and rdf:text primitive datatype

Dick,

RHM> I finally understand that Class is the extension set of Concept.
 > Now, all of the "strange" properties of "Class" are obvious, because
 > "Class" is just a set.

The word 'class' has created an enormous amount of confusion in computer
all branches of computer science and related subjects.  The problem is
caused by three very different definitions of the word:

  1. Cantor used the word 'Menge', which some people translated to
     English as 'set' and others as 'class'.  Therefore, many people
     still use the two English words as synonymous.

  2. As a result of the paradox of all sets that are not members of
     themselves, logicians have used the word 'class' as a supertype
     that includes sets and other collections that are "too big" to
     obey all the usual axioms of set theory.

  3. In object-oriented programming systems, people have adopted the
     word 'class' as a synonym for 'type'.  That is an extremely
     unfortunate choice of word that should be outlawed.  It creates
     an immense amount of confusion without any redeeming social value.

The distinction between intension and extension is critical.
The word 'type' has been well established in English and other
natural languages for distinguishing different kinds of entities
by their definitions, not by the sets of existing entities.
It is also widely used in programming languages and systems for
entities distinguished by their definitions, independently of
the sets of existing things of those types.

Since none of the sets used in computer science are so big that we
have to use the word 'class', there is no reason for anyone to use
the word 'class' in anything that has to do with computer systems.

Therefore, I suggest that we use two words: 'set' for the extensional
meaning, and 'type' for the intensional.  The word 'class' in O-O
systems should be replaced by 'type'.  I realize that it is an uphill
battle to get people to change the terminology of their programming
languages.  But I would use the pair of terms 'set' and 'type' for
all metalevel discussions about such languages and systems.

It is truly unfortunate that OWL has adopted the word 'class'
instead of 'type'.  However, that is not the only truly unfortunate
aspect of OWL.  I don't believe that the world should perpetuate
the decisions frozen into OWL.

John Sowa

Received on Sunday, 26 April 2009 17:18:39 UTC