- From: John F. Sowa <sowa@bestweb.net>
- Date: Sun, 26 Apr 2009 13:18:01 -0400
- To: "[ontolog-forum]" <ontolog-forum@ontolog.cim3.net>
- CC: Alan Ruttenberg <alanruttenberg@gmail.com>, Sandro Hawke <sandro@w3.org>, public-owl-comments@w3.org, KR-language <KR-language@YahooGroups.com>
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