In reality, an ontology should be an And-Or graph.
This, however, makes
inheritance very complex. Our ontology is an And graph where children
with multiple parents must be subsumed by each of the parents.
Multiple parents mean a conjunction of each of those parents. There is
no way to represent a disjunction of parent links. This can be a
problem when a child can have any of several parents but not all
instances of the child are subsumed by each of the parents.
Sometimes it is possible to overcome this problem by introducing an
ATTRIBUTE as a slot in the concept, instead of classifying further with
disjunctive multiple inheritance. For example, we have classified
all SERVICE-EVENTs into MEDICAL-SERVE, TRANSPORTATION-SERVE, COMMUNICATION-SERVE, and so on. Some of each of these types of service
involve direct interactions with customers and others do not. Rather
than classifying each of these concepts into
``medical-serve-customer-end,'' ``medical-serve-back-end,''
etc., we introduce a
CUSTOMER-CONTACT-ATTRIBUTE as a slot in SERVICE-EVENTs and specify ``yes''
and ``no'' as possible fillers. This now allows us to classify the various
types of service-events without unnecessarily proliferating the
ontology with a large number of concepts. It may be noted here (as
illustrated in Carlson and Nirenburg, 1990) that another
choice would have been to classify SERVICE-EVENTs first into
``service-customer-end'' and ``service-back-end.'' However, it should be clear
that this choice would lead to an even greater number of concepts under
this tree. We would now need medical service EVENTs under both
``service-customer-end'' and ``service-back-end,'' and so on.
The above solution of introducing an Attribute works when we do not have any other knowledge about that slot or Attribute that we need to encode. For example, we assumed in the above example that we do not need to elaborate on what a Customer-Contact-Attribute is or how it is related to customers and contacts. If we need to elaborate on such information we need a different solution.
For example, we have classified organizations into for-profit and non-profit organizations. There are some organizations such as a LABORATORY which can be of either type. We could not introduce a ``Laboratory-Attribute'' and say ``yes'' or ``no'' for each ORGANIZATION. This is not only awkward, but it also does not allow us to represent all the knowledge about laboratories that we want to represent. We do not have the expressive power to make a slot in a concept conditional on the value of a filler in another slot. For example, we cannot associate a ``research-area'' slot to ORGANIZATIONs and say this slot can be filled only when the ``Laboratory-Attribute'' slot is filled with Yes. In our representation, all slots represented in a concept are valid and can be filled any time. Moreover, no matter what dimensions (such as profit/non-profit) we choose for classifying a concept into its children concept, there will often be some children or descendants which do not belong exclusively under any one child. Since there is no disjunction in subsumption links (Is-A and Subclasses) in the ontology, we cannot make that descendant a child of more than one concept. For example, we cannot put LABORATORY directly under both FOR-PROFIT-ORGANIZATION and NON-PROFIT-ORGANIZATION. Such a thing would be self-contradictory since it would mean that every laboratory is both a FOR-PROFIT-ORGANIZATION and a NON-PROFIT-ORGANIZATION. Our solution to this problem is shown in Figure 4 . This solution guarantees that there is still a place to put all the knowledge that is common to both types of laboratories. However, classifications along multiple dimensions are collapsed into the same level of the hierarchy which could be unintuitive. For example, ORGANIZATIONs are now classified as LABORATORYs, NON-PROFIT-ORGANIZATIONs, and FOR-PROFIT-ORGANIZATIONs which could be read as ``laboratories are neither for-profit nor non-profit'' though this is not the intended meaning of the classification.
Figure 4:
Pattern to Produce Overlapping Subclasses.
In effect, we are saying that when a concept has more than one child, the children do not represent disjoint subsets that cover the parent concept. Rather, they represent overlapping subsets that together cover the parent concept. The relationships between these sets and subsets is shown in Figure 5 for our example of the LABORATORY. While Figure 5 shows the intended meaning of this representation, Figure 6 shows a possible misinterpretation of it. If the ontology developers themselves misinterpret such a representation in this manner (which is possible and in fact likely), they could add a third child to LABORATORY thereby making the interpretation in Figure 6 the only possible interpretation. There is nothing in our current representation to prevent such an eventuality. In addition, in some other case of a parent and a set of children, if the intended meaning is disjoint classification (as shown in Figure 7) , we do not have a representational mechanism to distinguish this from the overlapping cover of a parent set shown in Figure 5.
Figure 5:
Overlapping Subclasses: Intended Meaning.
Figure 6:
Overlapping Subclasses: Possible Misinterpretation.
Figure 7:
Disjoint Subclasses: Intended Meaning.
One solution to the above problems is to explicitly represent multiple orthogonal classifications in the ontology. For example, we could allow multiple sets of fillers for the Subclasses of each concept where each individual set is a partition (i.e., an exclusive-or classification) of the parent concept into children concepts. The cost of doing this is a significant decrease in the usability and ease of comprehension of the ontology. It will no longer be possible to look at an individual frame in the ontology and understand the full meaning of the concept it represents.
Kavi Mahesh