2009-12-16 14 views
29

Soy un desarrollador de python desde hace mucho tiempo y recientemente me presentaron a Prolog. Me encanta el concepto de usar reglas de relación para ciertos tipos de tareas y me gustaría agregar esto a mi repertorio.Programación Relacional/Lógica en Python?

¿Existen buenas bibliotecas para programación lógica en Python? He hecho algunas búsquedas en Google, pero sólo encontré lo siguiente:

jtauber's blog series on relational_python

encantaría comparación con algunos otros ... gracias!

-aj

+2

wow man ... tengo respeto por cualquiera que pueda leer prolog! +1 – Perpetualcoder

+0

Lo intenté también: https://github.com/evertheylen/logicpy. Intenta encontrar un buen equilibrio entre demasiada magia de Python y demasiado engorroso de usar. – evertheylen

Respuesta

11

Tal vez debería google "programación lógica en Python". Pyke parece prometedor:

Pyke introduce una forma de programación lógica (inspirado en Prolog) a la comunidad Python proporcionando un motor de inferencia basada en el conocimiento (sistema experto) escrito en Python 100%.

A diferencia de Prolog, Pyke se integra con Python, lo que le permite invocar Pyke desde Python y entremezclar las declaraciones y expresiones de Python dentro de sus reglas de sistema experto.

+0

@Richie, parece un paquete útil. Gracias por el puntero! –

+0

de la página de Pyke: "Pyke introduce una forma de Programación Lógica (inspirada en Prolog) para la comunidad de Python al proporcionar un motor de inferencia basado en el conocimiento (sistema experto) escrito en 100% Python". – heltonbiker

2

También podría mirar a Dee, que se suma a las relaciones de Python: http://www.quicksort.co.uk

+0

es Dee una implementación de D (como se describe en los libros de la fecha?) –

+0

Es (sin las especificaciones de objeto/tipo) – greg

+0

es una lástima que parece muerto. parecía prometedor –

2

Un reciente implementación de Prolog en Python (o más bien RPython) en Pyrolog. Todavía es bastante experimental.

+0

que es muy bueno, pero ¿interopera con Python?está escrito encima de pypy, que también admite (famoso) una implementación de Python, pero no está claro para mí que implique interoperabilidad. Además, mientras estoy aquí, http://blog.herraiz.org/archives/238 tiene algunos años, pero enumeré varias opciones (implica pyrolog inter-op, pero también suena como que simplemente se supone debido a pypy, que es lo que estoy cuestionando). –

+1

Prueba de concepto más bien. Así que ir con las soruces podría permitir eso. – false

9

Es posible que desee utilizar pyDatalog, una biblioteca de programación lógica que he desarrollado para Python implementar Datalog. También funciona con SQLAlchemy para consultar bases de datos relacionales usando cláusulas lógicas.

+2

¡Tiene que revelar que es ** su ** proyecto! – ThiefMaster

2

LogPy es una implementación de miniKanren, un lenguaje de programación relacional, en Python. Sigue en la tradición de core.logic, la solución de programación lógica preeminente en Clojure. LogPy fue diseñado para la interoperabilidad con bases de código preexistentes.

Cuestiones relacionadas