Beyond Mere Controlled Vocabularies and Towards “Big Magic”
As we told you in our first article, Knowledge Representation (KR) is a central component of Logical AI. KR is supported by a language, called a KR Language (KRL), and we now address this topic. A KRL is so central a part of Logical-AI systems that a lot of the system’s behavior depends on it. At Tau we are aware of this and are currently researching several KRLs, in order to select the most adequate one — or, preferably, design our own KRL.
A KRL has to provide us with two features: it has to allow us to say most of what we say in natural English, and it has to be readable and interpretable by a machine. Although these two requirements can be addressed independently in a satisfactory way, their combination turns the task of creating a good KRL into an engineering problem. A simple example of this combination is Simple Knowledge Organization System (SKOS). SKOS can be considered a kind of controlled vocabulary, a collection of predefined authorized terms that have been selected and designed to organize knowledge and facilitate its retrieval. But don’t let the adjective “simple” fool you: no KRL, as an engineered language, is simple. SKOS is constituted of concepts (it considers a vocabulary from the viewpoint of concepts) that are defined as web resources (any Internet page can be a web resource). These concepts are organized by means of narrower-broader relationships in a hierarchical way or as relationships linked associatively. A useful aspect of SKOS is that it allows for graph representations like the one in Figure 1.
As you can see in Fig. 1, there are other components to SKOS, such as labels and preferred labels and related concepts, and it would take a few lines here to list them all. SKOS solves the engineering problem of a KRL in a lot of aspects, but it is not a candidate for a KRL to be used in Tau. The reason is that a Logical-AI system is expected to do more than just represent knowledge: it is expected to give us new knowledge, or, what is the same, new facts. Concepts and relationships between concepts are also core elements of a KRL for a Logical-AI system, but they are put together by means that allow us to extract new facts from the knowledge we already possess. This requires that concepts and relationships not only must be formalized in a specific logical way but also have to be combined by means of declarative rules. This requires a logical KRL.
Take for instance the concepts FATHER and CHILD. If you want to express the fact that X is the father of Y you can create an atomic binary predicate “is_father_of(X,Y)”. Simple, right? And also ingenious, because this simple predicate allows you to list all the elements in the world for the relationship “is_father_of.”
Of course, more often than not you work only with a knowledge base, which is essentially a list of facts. Here you are an example of a very simple knowledge base:
is_father_of(John,Brenda).
is_father_of(John,Charles).
is_father_of(Peter,Susan).
is_father_of(Dirk,Maureen).
is_female_child(Brenda).
is_female_child(Susan).
is_female_child(Maureen).
is_male_child(Charles.)
Suppose that you have this rule to apply over your knowledge base:
If is_father_of(Y,X) and is_female_child(X) then is_daughter_of(X,Y).
With this rule at hand, you can find out new facts of your knowledge base. For instance, you can find out that Brenda is John’s daughter; you can also find out that Susan is Peter’s daughter and Maureen is Dirk’s daughter, and you can even find out that Charles is no one’s daughter. We will tell you more about this “big magic” soon in a future article.