[Top] [All Lists]

Re: [ontac-forum] Type vs. Class - last chance to vote.

To: ONTAC-WG General Discussion <ontac-forum@xxxxxxxxxxxxxx>
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Sun, 22 Jan 2006 11:26:52 -0500
Message-id: <43D3B24C.7050906@xxxxxxxxxxx>
Various themes have emerged from this discussion, and I'll
try to sort them out:    (01)

  1. The fundamental distinction which many of us have
     emphasized for years is between _intension_ and
     _extension_.  To avoid prejudging the choice of
     technical terms, I'll use the example of Rabbit vs.
     Peter or Thumper.  The intension of 'Rabbit' is
     determined by some definition that is independent of
     any actual rabbits, real or fictional.  The extension
     of "Rabbit" at a particular point in time consists
     of all the rabbits that happen to exist at that time.    (02)

  2. The word 'set', as used in all versions of set theory
     for over a century, refers to the extension.  Since
     rabbits are notoriously prolific, the set of rabbits
     at the instant you're reading this sentence is very
     different from the set at the instant I wrote it.
     The fact that sets are constantly being replaced by
     new ones means that sets are not suitable for defining
     any "meaning" that is supposed to remain constant.    (03)

  3. Aristotle introduced the word 'kategoria' as his term
     for the intension, and that word was translated to Latin
     as 'praedicatum'.  From those, we get the English words
     'category' and 'predicate'.  The latter term has become
     popular for the symbols used in _predicate calculus_, and
     I would say that the defining rule for a predicate is
     sufficiently stable to be used as the basis for drawing
     a clear distinction between intensions and extensions:    (04)

     - The intension of 'Rabbit' would be determined by the
       definition of a monadic predicate rabbit(x).    (05)

     - The extension of 'Rabbit' at time t would be the set
       of all x at time t for which rabbit(x) is true.    (06)

  4. If we wanted to be traditional, we could use the four-
     syllable word 'category'.  Otherwise, we could adopt
     a one-syllable word, of which the two main contenders
     seem to be 'type' and 'class'.  The word 'set' is not
     a contender because all technical uses are extensional.    (07)

  5. The word 'type' has a long history of use as a technical
     term whose meaning was very close to its use as a common
     English word.  Unfortunately, Bertrand Russell gave it a
     very narrow sense in logic, which caused many logicians
     to introduce the word 'sort' with a slightly different
     technical sense.  Meanwhile computer language designers
     adopted the word 'type' for the kinds of data structures
     used in their systems.  All these uses fall within the
     scope of the informal senses of the word 'type', and it
     seems possible to adopt 'type' as a generalization that
     would include all the technical senses and most, if not
     all of the common senses.    (08)

  6. In another unfortunate twist, the object-oriented group
     adopted the word 'class' to distinguish their thingies,
     which have associated procedures called 'methods', from
     the more static data types of the older languages.  More
     recently the Semantic Webbers adopted 'class' for the
     thingies used in OWL, but as Chris, Michael, and others
     have pointed out, OWL also uses the word 'type', and
     all of its definitions are very confused and confusing.    (09)

  7. Meanwhile, the word 'class' has long been used as a
     synonym for 'set' in some versions of set/class theory.
     In other versions of set theory, a class is something
     that is just as extensional as a set, but too "big"
     to be a proper set.    (010)

The major argument for using the word 'class' is that it has
been adopted by the Semantic Web movement, which currently
has a great deal of momentum.  But one could also say that
the Semantic Web has also adopted the word 'type' in a way
that seems to be very closely linked to the word 'class'.    (011)

Summary, I strongly believe that the word 'class' is the
*worst* possible choice to represent the intensional side
of the distinction between intensions and extensions:    (012)

  1. Logicians use the word 'class' in the same extensional
     sense as the word 'set'.    (013)

  2. Object-oriented programmers use the word 'class' as
     something that has associated procedures, and that
     is definitely *not* a meaning we want to suggest.    (014)

  3. The OWL group uses both 'class' and 'type' in ways that
     are related, but it seems safe to say that there is
     probably nobody in the OWL community who could give
     a clear argument for any distinction between them.    (015)

In short, the distinction between intension and extension
is fundamental to ontology, and it *must* be highlighted.
The word 'class' would hopelessly confuse the issue.    (016)

John Sowa    (017)

Message Archives: http://colab.cim3.net/forum/ontac-forum/
To Post: mailto:ontac-forum@xxxxxxxxxxxxxx
Shared Files: http://colab.cim3.net/file/work/SICoP/ontac/
Community Wiki: 
http://colab.cim3.net/cgi-bin/wiki.pl?SICoP/OntologyTaxonomyCoordinatingWG    (018)
<Prev in Thread] Current Thread [Next in Thread>