Formato de intercambio de conocimiento

Knowledge Interchange Format (KIF) es un lenguaje diseñado para utilizarse en el intercambio de conocimiento entre distintos sistemas. Se basa semánticamente en la lógica de predicados y sintácticamente en LISP. Permite representar oraciones arbitrarias en la lógica de predicados de primer orden. Este lenguaje fue definido dentro del proyecto Ontolingua, que proporciona un constructor cooperativo de ontologías que permite exportar ontologías a varios formalismos.

Cuando se usa KIF, normalmente se implementa en KIF un formalismo de representación y se utiliza esa implementación para representar una ontología o conocimiento particular. Este es también el caso de Ontolingua: Frame Ontology, que define clases, ranuras, facetas, etc., fue definida en KIF, y KIF junto con la ontología de marcos forman el lenguaje de Ontolingua, que permite escribir ontologías en una forma canónica. Estas ontologías pueden luego exportarse a otros formalismos, como Prolog. Aunque KIF fue pensado principalmente como interlingua, actualmente se utiliza para codificar conocimiento directamente. Otros formatos pueden exportarse automáticamente desde una definición en KIF (véase por ejemplo SUMO).

Por ejemplo, la definición en KIF que expresa que un vehículo ferroviario es un vehículo diseñado para moverse sobre vías férreas se escribe así:

   (subclass RailVehicle LandVehicle)
   (documentation RailVehicle
        "A Vehicle designed to move on &%Railways.")
   (=>  (instance ?X RailVehicle)
        (hasPurpose ?X
         (exists (?EV ?SURF)
           (and  (instance ?RAIL Railway)
                 (instance ?EV Transportation)
                 (holdsDuring (WhenFn ?EV)
                         (meetsSpatially ?X ?RAIL))))))

Dado que KIF es muy expresivo para poder servir como formato de intercambio entre distintos formalismos de representación del conocimiento, no sorprende que nunca se haya proporcionado soporte de razonamiento dentro de Ontolingua.