Pregunta

Como muchos programadores estudié Prolog en la universidad, pero sólo muy poco. Entiendo que Prolog y registro de datos están estrechamente relacionados, pero el registro de datos es más simple? Además, creo que leí que el registro de datos no depende del orden de las cláusulas de lógica, pero no estoy seguro de por qué esto es ventajas. Supuestamente clips es totalmente diferente, pero es demasiado sutil para mí entender. Por favor alguien puede proporcionar un destacado generales de los idiomas en los otros idiomas?

¿Fue útil?

Solución

registro de datos es un subconjunto del prólogo. el subconjunto que lleva registro de datos tiene dos cosas en mente:

  1. adoptar una API que apoyaría reglas y consultas
  2. Asegúrese de que todas las consultas terminan

Prolog es Turing completo. registro de datos no lo es.

conseguir registro de datos fuera del camino, vamos a ver cómo se compara con los clips de prólogo.

La experiencia de prólogo es "resolución de problemas", mientras que los clips es un "sistema experto". Si he entendido bien, "resolución de problemas" implica el uso de conocimientos de código y datos. "Sistemas expertos" en su mayoría utilizan estructuras de datos para expresar la experiencia. ver http://en.wikipedia.org/wiki/Expert_system#Comparison_to_problem-solving_systems

Otra forma de verlo es:

sistemas expertos operan en la premisa de que se conocen la mayoría (si no todos) los resultados. todos estos resultados se compilan en los datos y luego se introduce en un sistema experto. dar al sistema experto de un escenario, el sistema experto calcula el resultado de los datos recopilados, también conocido como base de conocimientos. siempre es un "un número par más un número par es siempre incluso" tipo de pensamiento.

Los sistemas de resolución de problemas tienen una visión incompleta del problema. por lo que se parte con datos y modelado del comportamiento, que formarían la base de conocimientos (esto hace justicia al término "caso límite") y termina con "si se añaden dos a seis, nos encontramos con ocho. es de ocho divisible por dos? entonces es aún "

Otros consejos

La diferencia entre los clips y Prolog / registro de datos es que los clips es un "sistema de reglas de producción" que opera por encadenamiento hacia adelante : dado un conjunto de hechos y reglas, que tratará de hacer todo lo posible derivación de nuevos hechos y tienda de los de la memoria. Una consulta se contestó entonces comprobando si coincide con algo en la tienda hecho. Así, en los clips, si tiene (pseudo-sintaxis):

parent(X,Y) => child(Y,X)
parent(john,mary)

lo hará inmediatamente derivan child(mary,john) y recordar ese hecho. Esto puede ser muy rápido, pero impone restricciones sobre el posible conjunto de reglas y ocupa la memoria.

Prólogo y registro de datos operan por encadenamiento hacia atrás , lo que significa que una consulta (llamado predicado) es contestada por tratar de demostrar la consulta, es decir, la ejecución del programa Prolog / registro de datos. Prolog es un lenguaje de programación Turing completo, por lo que cualquier algoritmo puede ser implementado en el mismo.

registro de datos es un subconjunto no Turing completa de Prolog que no permite, por ejemplo, la negación. Su principal ventaja es que cada programa termina de registro de datos (no hay bucles infinitos). Esto hace que sea útil para los llamados "bases de datos deductivos," bases de datos es decir, con reglas en adición a los hechos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top