# KEHOME/doc/CASharmful.txt
# Nov/20/2002

rdfs:Class and rdfs:subClassOf considered harmful
=================================================
Author: Richard H. McCullough
Date: November 20, 2002

Contents
========
Abstract
rdfs:Class
rdfs:subClassOf
References


Abstract
========
In two previous documents [1],[2], I pointed out some
logical problems with rdfs:Class and rdfs:subClassOf.
In this document I identify the exact nature of the
problems.

rdfs:Class is a contradicton with two distinct,
essentially-different definitions.

The definition of rdfs:subClassOf logically permits
contradictions.

rdfs:Class
==========
rdfs:Class has two separate definitions (not explicitly
stated anywhere).

1. Class1 is the Datatype used to represent a concept.

2. Class2 is concept.

Definition 1 implies that statements such as

	<rdfs:Resource> <rdf:type> <rdfs:Class>

should be replaced by

	<rdfs:Resource> <rdfs:Datatype> <rdfs:Class1>

Definition 2 implies that statements such as

	<Person> <rdfs:subClassOf> <rdfs:Class>
	<rdfs:Class> <rdfs:subClassOf> <rdfs:Resource>

should be replaced by

	<Person> <rdfs:subClassOf> <rdfs:Class2>
	<rdfs:Class2> <rdfs:subClassOf> <rdfs:Resource>

I recommend that Class2 be removed from RDFS.

rdfs:subClassOf
===============
Example:

	<man> <rdfs:subClassOf> <animal>

logically permits the alternative that the set of all
men is identical to the set of all animals, which is
clearly false.

I recommend that subClassOf be replaced by speciesOf
and individualOf, i.e., replace subset by proper subset
and explicitly distinguish Individuals from Classes. 


References
==========
[1] Class and Subclass
    "http://rhm.cdepot.net/doc/ClassAndSubclass.txt"
[2] owl:definitionOf
    "http://rhm.cdepot.net/doc/definitionOf.txt"
