View on GitHub

jsProlog

Prolog interpreter in JS

Español # English

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

<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