Knowledge Interchange Format (KIF) is a formal language for the interchange of knowledge among disparate computer programs (written by different programmers, at different times, in different languages, and so forth).
KIF is not intended as a primary language for interaction with human users (though it can be used for this purpose). Different programs can interact with their users in whatever forms are most appropriate to their applications (for example frames, graphs, charts, tables, diagrams, natural language, and so forth).
KIF is also not intended to be an internal representation for knowledge within computer programs or within closely related sets of programs (though it can be used for this purpose as well). Typically, when a program reads a knowledge base in KIF, it converts the data into its own internal form (specialized pointer structures, arrays, etc.). All computation is done using these internal forms. When the program needs to communicate with another program, it maps its internal data structures into KIF.
The purpose of KIF is roughly analogous to that of Postscript. Postscript is commonly used by text and graphics formatting programs in communicating information about documents to printers. Although it is not as efficient as a specialized representation for documents and not as perspicuous as a specialized wysiwyg display, Postscript is a programmer-readable representation that facilitates the independent development of formatting programs and printers. While KIF is not as efficient as a specialized representation for knowledge nor as perspicuous as a specialized display (when printed in its list form), it too is a programmer-readable language and thereby facilitates the independent development of knowledge-manipulation programs.
The definition of KIF is highly detailed. Some of these details are essential; others are arbitrary. The following general features are essential in the definition of KIF.
In addition to these hard criteria, KIF is designed to maximize in a joint fashion the following somewhat softer measures as well (to the extent possible while satisfying the preceding criteria).
This document supplies full technical details of KIF. Chapter 2 presents the formal syntax of the language. Chapter 3 discusses conceptualizations of the world. Chapter 4 defines the semantics of the language. Chapter 5 deals with lists; chapter 6, with sets; and chapter 7, with functions and relations. Chapter 8 describes how metaknowledge is encoded. Chapter 9 describes the formalization of monotonic and nonmonotonic rules of inference. Chapter 10 discusses definitions.