{ "info": { "author": "Ian Andrich, Chris Mungall", "author_email": "iandrich87+github@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Python Pengines\n===============\n\nThis is a module for interfacing python with the Prolog Pengines\nknowledge base.\n\nAPI\n---\n\nCreate a basic run pengine server script, and run it with swipl.\n\n::\n\n :- use_module(library(http/thread_httpd)).\n :- use_module(library(http/http_dispatch)).\n :- use_module(library(pengines)).\n\n server(Port) :- http_server(http_dispatch, [port(Port)]).\n\n :- server(4242).\n\nInitialize a basic PengineBuilder\n\n::\n\n from pengines.Builder import PengineBuilder\n from pengines.Pengine import Pengine\n\n pengine_builder = PengineBuilder(urlserver=\"http://localhost:4242\")\n\nCreate the pengine querying object.\n\n::\n\n pengine = Pengine(builder=pengine_builder)\n pengine.create()\n\nMake your query -- note the lack of ending period -- Pengine performs\nthe query like 'ask(member(X, [1,2,3], [])).'\n\n::\n\n query = \"member(X, [1,2,3])\"\n pengine.ask(query)\n print(pengine.currentQuery.availProofs)\n\nIterate through the proofs like this:\n\n::\n\n while pengine.currentQuery.hasMore:\n pengine.doNext(pengine.currentQuery)\n print(pengine.currentQuery.availProofs)\n\nprologterms library\n-------------------\n\nThe python library prologterms aims to make it easier to construct\nprolog programs and query terms from within python.\n\nFor an example of how to use prologterms in conjunction with pengines,\nsee:\n\nhttps://pypi.org/project/prologterms/\n\n::\n\n from pengines.Builder import PengineBuilder\n from pengines.Pengine import Pengine\n from prologterms import TermGenerator, PrologRenderer, Program, Var\n\n P = TermGenerator()\n X = Var('X')\n Y = Var('Y')\n Z = Var('Z')\n R = PrologRenderer()\n\n p = Program(\n P.ancestor(X,Y) <= (P.parent(X,Z), P.ancestor(Z,Y)),\n P.ancestor(X,Y) <= P.parent(X,Y),\n P.parent('a','b'),\n P.parent('b','c'),\n P.parent('c','d')\n )\n\n q = P.ancestor(X,Y)\n\n factory = PengineBuilder(urlserver=\"http://localhost:4242\",\n srctext=R.render(p),\n ask=R.render(q))\n pengine = Pengine(builder=factory, debug=True)\n while pengine.currentQuery.hasMore:\n pengine.doNext(pengine.currentQuery)\n for p in pengine.currentQuery.availProofs:\n print('{} <- {}'.format(p[X.name], p[Y.name]))\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/ian-andrich/PythonPengines/0.1.4", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ian-andrich/PythonPengines", "keywords": "pengines,pengine,prolog,swipl,swi-prolog,logic programming", "license": "", "maintainer": "", "maintainer_email": "", "name": "pengines", "package_url": "https://pypi.org/project/pengines/", "platform": "", "project_url": "https://pypi.org/project/pengines/", "project_urls": { "Download": "https://github.com/ian-andrich/PythonPengines/0.1.4", "Homepage": "https://github.com/ian-andrich/PythonPengines" }, "release_url": "https://pypi.org/project/pengines/0.1.8/", "requires_dist": null, "requires_python": "", "summary": "A simple python library for interacting with SWI-Prologs Pengines", "version": "0.1.8" }, "last_serial": 5668908, "releases": { "0.1.5": [ { "comment_text": "", "digests": { "md5": "a70870fcbe378b4f3fd5b423bb8e6fe8", "sha256": "b18edf075a8c800b738229dfccc58cdc451e3352e299d57931bf030c59bc5286" }, "downloads": -1, "filename": "pengines-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "a70870fcbe378b4f3fd5b423bb8e6fe8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8332, "upload_time": "2018-07-10T05:32:30", "url": "https://files.pythonhosted.org/packages/62/33/8062363725d9e4fa521385d5648eed0744fe08eacd74f197d397a967bd21/pengines-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "081da4b61ba70bef5da81b8177d85927", "sha256": "66446ff0ad31ed04d2b7ec36403bd673ec63b41f5c096b8b8554e8e12b82aeee" }, "downloads": -1, "filename": "pengines-0.1.5.tar.gz", "has_sig": false, "md5_digest": "081da4b61ba70bef5da81b8177d85927", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7244, "upload_time": "2018-07-10T05:32:31", "url": "https://files.pythonhosted.org/packages/0b/25/e17c35062863fb432751d5096e04cbfc41cac158115b5cd40ca011e8aa14/pengines-0.1.5.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "ae09696b602f57414f7b1fe0826bcafe", "sha256": "7ea00d3aa81209a1f4d416b888363f0c974c39c49178b620675c867d51f2537b" }, "downloads": -1, "filename": "pengines-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "ae09696b602f57414f7b1fe0826bcafe", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9214, "upload_time": "2019-08-12T18:32:01", "url": "https://files.pythonhosted.org/packages/c0/76/8073ef7371612db261a76c97248c3fdad655e9c34d429532ac28ab0070f1/pengines-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ca256ff0bd73021907b00d742b19a375", "sha256": "24d668521795b4374247a7222553fca2b2d5c24a338a631c2fefdda178601e77" }, "downloads": -1, "filename": "pengines-0.1.7.tar.gz", "has_sig": false, "md5_digest": "ca256ff0bd73021907b00d742b19a375", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8147, "upload_time": "2019-08-12T18:32:03", "url": "https://files.pythonhosted.org/packages/0d/28/2a8682efdc81b0d7a2eab8f1e9eb116271b6c685315dd531c2d28686cb8a/pengines-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "0499d3efac6414e6d3259111b48f5060", "sha256": "35ea10b7d2c77757b2a97160298c5d28b4145b00635005647afecdbf5a47763b" }, "downloads": -1, "filename": "pengines-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "0499d3efac6414e6d3259111b48f5060", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9205, "upload_time": "2019-08-12T21:39:24", "url": "https://files.pythonhosted.org/packages/bc/de/fab4d98642b805839e7d7779780a1c567db61f1a0f8829686b55e1d265f8/pengines-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c3c73c847763602cfae7a4479be5b85", "sha256": "5325205eaa538f0c02ec886ff5bfd031949e141d0459479817173ec99a6c9d95" }, "downloads": -1, "filename": "pengines-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7c3c73c847763602cfae7a4479be5b85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8149, "upload_time": "2019-08-12T21:39:27", "url": "https://files.pythonhosted.org/packages/74/a3/fd7e21f2d00d6eb6f6a6e932f6479149ce01265f125b203942cdfcac9089/pengines-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0499d3efac6414e6d3259111b48f5060", "sha256": "35ea10b7d2c77757b2a97160298c5d28b4145b00635005647afecdbf5a47763b" }, "downloads": -1, "filename": "pengines-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "0499d3efac6414e6d3259111b48f5060", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9205, "upload_time": "2019-08-12T21:39:24", "url": "https://files.pythonhosted.org/packages/bc/de/fab4d98642b805839e7d7779780a1c567db61f1a0f8829686b55e1d265f8/pengines-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c3c73c847763602cfae7a4479be5b85", "sha256": "5325205eaa538f0c02ec886ff5bfd031949e141d0459479817173ec99a6c9d95" }, "downloads": -1, "filename": "pengines-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7c3c73c847763602cfae7a4479be5b85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8149, "upload_time": "2019-08-12T21:39:27", "url": "https://files.pythonhosted.org/packages/74/a3/fd7e21f2d00d6eb6f6a6e932f6479149ce01265f125b203942cdfcac9089/pengines-0.1.8.tar.gz" } ] }