Hi Pavel,
You wrote:
If possible_individual have the same set of members as class_of_individual (both class extensions contain exactly the same set of individuals) - so why you consider them as different entities?
The basic definition of set equivalence is "Two sets A and B are equivalent if they consist of exactly same members".
[HT] They are equivalent, but not equal.
I quote W3C:
owl:equivalentClass is a built-in property that links a class description to another class description. The meaning of such a class axiom is that the two class descriptions involved have the same class extension (i.e., both class extensions contain exactly the same set of individuals).
The use of owl:equivalentClass does not imply class equality. Class equality means that the classes have the same intensional meaning (denote the same concept). In the example below, the concept of "President of the US" is related to, but not equal to the concept of the principal resident of a certain estate. Real class equality can only be expressed with the owl:sameAs construct. As this requires treating classes as individuals, class equality can only be expressed in OWL Full.
<owl:Class rdf:about="#US_President">
<owl:equivalentClass rdf:resource="#PrincipalResidentOfWhiteHouse"/>
</owl:Class>
The entity type <possible_individual> is not equal to the instance 'Individual' of the entity type <class_of_individual>.
Let me explain:
1) A <possible_individual> is a <thing> that exists in space and time.
2) A <class> is a <thing> that is an understanding of the nature of things.
So an instance of the first is something that exists in space and time, and an instance of the second is an "understanding", so quite different.
In case you instantiate <possible_individual> you should further qualify that instance by stating that it is also an instance of <actual_individual> and/or <arranged_individual> and/or <whole_life_individual>.
In case you instantiate the instance 'Individual' of <class_of_individual> what do you get?
An instance of <possible_individual> is a member of the instance of <class_of_individual> called 'Individual' (which is not really adding any information).
All instances of <possible_individual> are member of that class 'Individual' and all members of the class 'Individual' are instances of <possible_individual>.
So the class
extension (i.e. the collection of members alias instances) of both is the same, and owl:equivalentClass is legitimate.
But they are
not equal and hence
not interchangeable.
I suggest to use that instance of <class_of_individual> called 'Individual' only as the top of its class hierarchy.
Regards,
Hans