Design and Implementation of a Type System for a Knowledge Representation System
Résumé
A knowledge representation system ({\sc krs}) is made up of both a language to represent knowledge of a domain and well-defined reasoning facilities to infer new knowledge from known facts. This paper deals with {\sc krs}s close to frame-based systems, that include \Dstems and object-based systems. In these systems, the main relation that leads to inferences is {\em §B{}}. Knowledge terms are described through roles which refer to either other \K{} terms or data types. Subsumption between term \Ds usually interpreted as data set inclusion, where data is either a \K{} term or an external term (integer, string, etc.). Although §B{} between \K{} terms is well-defined, its \IP{} on external data depends upon the host language since there are actually the data types of the {\sc krs}. As a consequence, no {\sc krs} is able to integrate a new data type ({\em e.g.} Matrix) such that its values can be safely involved in §B{} and further inferences. This is the problem addressed in this paper. The proposed solution is the design of a polymorphic \TS{} connected to both the {\sc krs} and the host language. It is designed so that it can extend the {\sc krs} with any data type \IP{} available in the host language (library, user-coded). Meanwhile, the values of the new data type get safely involved in the {\sc krs} reasoning processes. The presented \TS{} avoids the incompleteness of §B{} due to its incomplete processing on external data.