Computer understandable ontologies
"Language is arbitrary" is one of the first rules of linguistics. This arbitrary thing is our means to communicate and thus far we have managed quite well. We assign labels to all sorts of things but actually associate the thing with the label. Sometimes we get confused. In this case we communicate the meaning of the label by describing it or pointing it out until we only use labels that are familiar to us and which help us to narrow down the possible meanings of the new label. Labels are symbols. Inherently discrete. The world, however, is inherently continuous. Our thinking is fuzzy and we can deal with irregularities and noise.
The symbols we use have a grounding. We associate certain things, concepts/classes or instances with these labels. A computer lacks this grounding. It doesn't "know", what a symbol means. If we're lucky, we have given it instructions as to how it should deal with a certain symbol. That's a point where we need to ask how much intelligence this involves - knowing how to process a symbol. Searle's Chinese room example is an analogy for this question. We like to give our instructions to computers in form of symbols because they are familiar to us. But the structure of a computer, the way it processes information, is inherently different from the way we think. That's the fallacy of all efforts to make computers understand human symbols. We try to give it our symbols, try to make it process the symbols, maybe convert it to a more suitable representation for the machine and then translate it back to our representation. Of course there is loss. We lose information, even when we, humans, translate symbols of one language into symbols of another language. Different cultures have different sets of instances that represent a label. Suppose a concept 'edible animals'. Without question, we can translate this noun phrase into all languages. The concepts are very different. In order to correctly translate not only the labels, but also the underlying meaning, we have to add background information. In order to make a computer understand, we will have to translate our concepts in something a computer understands.
One example: We have been working on semiautomatic taxonomy generation using text clustering and NLP techniques. the input to the clusterer is a set of documnets, the output is a concept hierarchy. The hardest and most error-prone part of the system is the assignment of labels to the nodes in the concept hierarchy. The least biased way to measure the quality of such an algorithm is to analyze the documents in the clusters and check whether they are actually related. The labels itself don't give us much information about the quality of the hierarchy.
But maybe the objective is wrong. If we want to generate a taxonomy of concepts for human use, maybe we should go ahead and do it ourselves. If we want the computer to use the hierarchy to, for example, help us find or classify new documents, we should have it have it's "own" representation of the concept. A point and a radius in vector space, for instance. Internally, the computer can use it's representation for all computations. Again, the most error prone part is the human-computer interface. But then again, this also holds for human-human interaction. Our internal representation of concepts is usually quite definite. Errors occur, when we try to convey something to another person.
To put this in the nerdy slang we all understand; our internal computation is sort of consistent, sound and complete. The problem is unfolding the internal representation to simple types and passing the unfolded representation as parameters to another person. Information is lost. A class represents more than the collection of its simple data types.
Ontology description languages have very limited semantics. This is done for a good reason. The more complex the semantics of a language, the less efficient the reasoning about statements in the language. this means, it is not possible to have a multi-purpose language for everything, which is still efficiently computable.
But this might not be necessary. A description of a node in an ontology could have a description of an algorithm that identifies the concept or the instance. For example an ontology of persons could have a description of a neural network associated with it that is trained to recognize the faces of the persons in the ontology.Such an ontology could still be used by multiple systems. It just would not be text that represents a node, but something a computer understands.
[this page just contains early stages of thoughts and will be changed and extended frequently]
|