jsProlog
Interprete de Prolog en JS
El interpreter ha sido desarrollado por Jan, puedes encontrarlo en http://ioctl.org/logic/prolog-latest Yo solo he encapsulado el mismo y creado una API para facilitar su uso como librería
Carga
Navegador
<script src="jsProlog.js"></script>
var program = new jsProlog.program();
Node
var prolog = require("./jsProlog.js");
var program = new prolog.program();
Interface
prolog.getRules();
devuelve un array con todas la regala en formato texto (prolog)
prolog.addRule(rule);
Añade una nueva regla (no distingo entre hechos y reglas)
prolog.askQuery(query)
Ejecuta una query y devuelve un array con sus respuestas.
Answer(name, value){
this.name = name;
this.value = value;
this.print = function(){...};
}
name: nombre de la variable
value: valor
Cuando la respuesta es boleana y cierta el nombre será ‘_’ y el valor true (si no hay respuesta significa falso)
Ejemplo
program.addRule("human(socrates).");
program.addRule("mortal(X) :- human(X).");
var answer = program.askQuery("mortal(socrates).");
console.log(answer.value);
Demo
Puedes probar tu codigo en prolog aqui: demo