Je voudrais créer une application qui peut faire un raisonnement simple en utilisant la logique du premier ordre. Quelqu'un peut-il recommander un "moteur" qui peut accepter un nombre arbitraire d'expressions FOL, et permettre l'interrogation de ces expressions (de préférence accessible via Python)?Moteur de logique de premier ordre
Répondre
PyLog est une première bibliothèque de logique de commande comprenant un moteur Prolog dans le python.
Recette 303057: Pythologic - syntaxe Prolog dans le python/http://code.activestate.com/recipes/303057/
Ne pas interroger en utilisant la logique du premier ordre (FOL) à moins que vous devez absolument: la logique du premier ordre n'est pas décidable, mais seulement semi-décidable, et si les requêtes seront souvent, inéluctablement pas fin.
Description logic est essentiellement un fragment décidable de la logique du premier ordre, reformulé d'une manière qui est bon pour parler des classes d'entité et de leurs interrelations. Il y a beaucoup de moteurs pour la logique de description en Python, par exemple seth, basé sur OWL-DL.
Si vous êtes vraiment sûr que vous avez besoin de l'immensité de FOL, alors FLiP vaut le détour. Je ne l'ai pas utilisé (pas vraiment passionné par Python, pour être honnête), mais c'est une bonne approche pour rendre la vérification logique disponible pour un langage de programmation.
Il semble que ni Seth ni Flip ne soient en développement actif. Seth utilise Pellet, qui semble toujours actif, mais je trouve très peu de documentation sur les utilisations du monde réel pour les raisonneurs OWL-DL en général. – Cerin
Merci pour les suggestions PyLog et Pythologic. Cependant, je suis déjà familier avec ceux-ci. Permettez-moi de clarifier. Je cherche des moteurs non-jouets. Quelque chose qui est évolutif, largement utilisé, et interagit facilement avec une base de données. Il ne doit pas être * implémenté * en Python, uniquement accessible depuis Python. – Cerin