44 votes

Interpréteur / compilateur Prolog intégré pour Java

Je travaille sur une application en Java, qui a besoin de faire quelques complexité de la logique de la règle retenues dans le cadre de ses fonctionnalités. Je voudrais le code de ma logique déductions dans le Prologue ou d'une autre logique/constraint langage de programmation, au lieu de Java, je crois que le code résultant sera nettement plus simple et plus facile à gérer.

J'ai Googlé pour l'embarqué implémentations Java sur Prolog, et a trouvé nombre d'entre eux, chacun avec très peu de documentation. Mon (modeste) les critères de sélection sont les suivants:

  • devrait être intégré dans Java (par exemple, peuvent être regroupés avec mon package java au lieu d'exiger de tous les naturels les installations sur les programmes externes)
  • interface simple à utiliser à partir de Java (pour l'initiation de déductions, de l'inspection des résultats, et l'ajout de règles)
  • venir avec au moins quelques exemples sur la façon de l'utiliser
  • n'a pas nécessairement à être Prolog, mais d'autres logiques/contrainte langages de programmation avec les critères ci-dessus permettrait de répondre à mes besoins, aussi.

Quels sont mes choix et quels sont leurs avantages et leurs inconvénients?

22voto

Chip Uni Points 4739

Selon Wikipedia, les versions suivantes de Prolog ont interfaces Java. J'ai lié aux pages principales pour eux:

Bonne chance avec votre recherche!

9voto

Hassan Syed Points 10746

SWI prolog très populaire de la mise en œuvre semble avoir une interface Java comme SiCStus qui serait plus facile que d'utiliser JNI pour instancier une instance dans votre Processus Java. J'ai utilisé à la fois à partir de C, depuis longtemps et ne les recommande. Mon prefference serait SWI comme il est open-source et de mon expérience, le de facto la mise en œuvre.

La documentation de SWI l'interface Java semble être suffisant, et l'intégration de processus assez simple.

7voto

Juanjo Conti Points 4810

J'ai eu besoin de faire la même chose il y a 2 ans. J'ai utilisé SWI interface qui est appelé JPL. Il vous permet de charger un fichier Prolog, faire valoir sur elle et de la requête sur elle. Il n'est requise d'une installation de SWI Prolog, mais ce n'est pas du tout un problème. SWI Prolog est disponible pour de nombreuses plates-formes.

J'ai aussi essayé des solutions de rechange qui ont été de 100% implémenté en Java et n'a pas requis de programmes externes. Tous étaient buggy ou difficile à utiliser. Ne perdez pas votre temps.

4voto

Vincent Ramdhanie Points 46265

Amzi Prolog existe depuis un moment. Je l'ai utilisé brièvement mais pas la version intégrée. Cependant, ils ont une bonne documentation et un support peut être acheté. Ils ont un port Java donc ça vaut le coup d'oeil.

2voto

Charles Stewart Points 7698

Il existe Mini-Kanren for Scala , qui fournit une implémentation JVM native d’un langage de programmation logique, lean, hackable et moderne, basé sur la clause Horn.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X