Este fichero, incluye las definiciones de los tipos de datos que se usarán a lo largo de toda la aplicación. Estos tipos representan:
Ejemplo:
Para representar la constante pedro: Con "pedro" Para representar la variable x: Var "X"
Para representar el comando salir se utiliza el constructor Salir.
Ejemplo:
Para representar el hecho de que el numero dos es par, par(dos) el atomo correspondiente sera: at("par",[Con "dos"])
El primer tipo de este producto es un atomo, que representará el consecuente de la implicación (si es que se trata de una implicación), o, en caso de ser un hecho, lo representa propiamente.
El segundo tipo del producto es una lista de atomos. Si la sentencia representada bajo este tipo es un hecho, entonces la lista, simplemente, estará vacía. Por el contrario si la sentencia a representar es una implicación, entonces esta lista contendrá el conjunto de atomos que representan la conjunción de sentencias atómicas que forma el antecedente.
De esta forma, bajo el mismo tipo de datos se representa cualquiera de las dos clases de expresiones que se pueden introducir en la BC.
Ejemplo:
Si queremos representar el hecho de que David es padre de Oscar: padre(David,Oscar) La expresion sera: exp(at("padre",[Con "david";Con "oscar"]),[]) Como se puede observar, al ser un hecho, la lista de antecedentes esta vacia. Representemos ahora la implicacion: padre(X,Y)->hijo(Y,X). La expresion resultante sera: exp(at("hijo",[Var "Y";Var "X"]),[at("padre",[Var "X";Var "Y"])]) Donde el predicado correspondiente a padre figura en la lista de antecedentes.
Si queremos introducir el hecho de que David es padre de Oscar en la base el tipo de dato ent_ord sera: ORD(Save,[e]) Donde e sera: exp(at("padre",[Con "david";Con "oscar"]),[]) Si queremos salir el dato ent-ord sera: ORD(Salir,[])