{ "info": { "author": "Chris Mungall", "author_email": "cmungall+github@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries", "Topic :: Utilities" ], "description": "prologterms - a python library for constructing prolog terms\n============================================================\n\nExample::\n\n from prologterms import TermGenerator, PrologRenderer, Var\n\n X = Var('X')\n P = TermGenerator()\n term = P.member(X, [1, 2, 3])\n r = PrologRenderer()\n print(r.render(term))\n\nwrites::\n\n member(X, [1, 2, 3])\n\nAll prolog escaping conventions are handled automatically.\n\nSee the `Jupyter notebook `_\n\nRules\n=====\n\nThe \"<=\" operator in python is overloaded to mean the same as prolog\n\":-\". This means a rule object can be created as follows:\n\n::\n\n P.ancestor(X,Y) <= (P.parent(X,Z), P.ancestor(Z,Y))\n\nThis can be done more explicitly using a Rule constructor:\n\n::\n\n from prologterms import TermGenerator, PrologRenderer, Var, Rule\n\n X = Var('X')\n Y = Var('Y')\n Z = Var('Z')\n P = TermGenerator()\n rule = Rule(P.ancestor(X,Y), (P.parent(X,Z), P.ancestor(Z,Y))\n\nUsage\n=====\n\nThis module is of little use by itself. It is intended to be used to\ngenerate prolog programs that can be fed into a prolog execution\nengine.\n\n- write prolog programs and queries to a file, and load these using an engine like swi-prolog\n- through web services, e.g. via pengines\n\nPengines\n========\n\n[Note: requires latest pengines which may not be on pypi]\n\nOne of the intended applications is pengines\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\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cmungall/prologterms-py", "keywords": "prolog,swipl,swi-prolog,logic programming,pengines", "license": "BSD3", "maintainer": "", "maintainer_email": "", "name": "prologterms", "package_url": "https://pypi.org/project/prologterms/", "platform": "", "project_url": "https://pypi.org/project/prologterms/", "project_urls": { "Homepage": "https://github.com/cmungall/prologterms-py" }, "release_url": "https://pypi.org/project/prologterms/0.0.6/", "requires_dist": null, "requires_python": "", "summary": "A simple python library for generating prolog terms", "version": "0.0.6" }, "last_serial": 5668012, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "af61d8bbdc3eae6b47ffe703f1143601", "sha256": "e6cfa496521bf264d62ff98d534ac8cfbb486fefdb9b107ba1db29bc0de69ffc" }, "downloads": -1, "filename": "prologterms-0.0.1.tar.gz", "has_sig": false, "md5_digest": "af61d8bbdc3eae6b47ffe703f1143601", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2276, "upload_time": "2018-05-06T20:51:14", "url": "https://files.pythonhosted.org/packages/63/41/bfc7f6a8567718025ead17d5a18120dfdecf64198a658097121e9391bde0/prologterms-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c12707ff3834f63e43a2d7bae01ac491", "sha256": "d4af26d0977b60562d6aa2afcdd69870acc3db0e77c7c8532c4e36f092b58450" }, "downloads": -1, "filename": "prologterms-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c12707ff3834f63e43a2d7bae01ac491", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3641, "upload_time": "2018-05-06T23:35:40", "url": "https://files.pythonhosted.org/packages/59/fd/682da6c1dd7ce1bad1dea055adc41868667646070db8e7c41ce84c7d1d2e/prologterms-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc98542eb8e95a8802fe439acd8443fb", "sha256": "c4a9cbc776ea8df9e4a3f405a6230453298701fbfca3afb6c72f2ba8f13654ab" }, "downloads": -1, "filename": "prologterms-0.0.2.tar.gz", "has_sig": false, "md5_digest": "bc98542eb8e95a8802fe439acd8443fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3611, "upload_time": "2018-05-06T23:35:41", "url": "https://files.pythonhosted.org/packages/26/55/17a5aa4bd8a59c691f95f9e099055043351520044ae2891e3ab40eb2a147/prologterms-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "7e960e4c0333d7db530a04604c6ca300", "sha256": "1529bbcaedcd316ee0486897cab2a501cf97176f735a2a5629e2368d43628840" }, "downloads": -1, "filename": "prologterms-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7e960e4c0333d7db530a04604c6ca300", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3638, "upload_time": "2018-05-07T00:19:41", "url": "https://files.pythonhosted.org/packages/11/b1/b0378008e0e5645121b16913c049616c2254baf0d4bfa32d085544055223/prologterms-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2b540c6fd7446f18bb5fd09caec7d48", "sha256": "e8dcd377635578abf7d1e3834b58a4ebce156237bb90566e11057e9bf56b0e79" }, "downloads": -1, "filename": "prologterms-0.0.3.tar.gz", "has_sig": false, "md5_digest": "c2b540c6fd7446f18bb5fd09caec7d48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3608, "upload_time": "2018-05-07T00:19:42", "url": "https://files.pythonhosted.org/packages/52/e1/cba9f8e95861147d7d0b9aaab5dbcf63cb3e2ab9929040bea15da9d0141f/prologterms-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "840a13337e107168ea639c13ba8e9f01", "sha256": "45dca3b49e4be8e22b87d3b40a7c9a570cb7579bf7980d814dfc0c417e4fc819" }, "downloads": -1, "filename": "prologterms-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "840a13337e107168ea639c13ba8e9f01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3705, "upload_time": "2018-05-07T00:33:03", "url": "https://files.pythonhosted.org/packages/32/f6/35193158a17a791e1db36ddf775fcf6e284facdaec74ba8e6da357e26935/prologterms-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5bb2224d8a894c3ee67de51bd0f47233", "sha256": "d23886eddce2ea094a92aa8df3eac39c951a6249062bc57db7126fb6edfe5eed" }, "downloads": -1, "filename": "prologterms-0.0.4.tar.gz", "has_sig": false, "md5_digest": "5bb2224d8a894c3ee67de51bd0f47233", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3678, "upload_time": "2018-05-07T00:33:04", "url": "https://files.pythonhosted.org/packages/cd/c5/ff73570f12c2d14fd3558c79b3f836d2b198862d7e1364aebf5880bfbfdd/prologterms-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "01dd8604da856b0ec8aff9bab2299140", "sha256": "068859126e12c93361f4b89aea02483711f0f33d52f79ff5c89275602d6549ed" }, "downloads": -1, "filename": "prologterms-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "01dd8604da856b0ec8aff9bab2299140", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3816, "upload_time": "2018-05-19T03:11:26", "url": "https://files.pythonhosted.org/packages/d8/fd/ac01d0c5f964ceac82aab1e54d998860e2c719ffaac9316be80d5b1df8dc/prologterms-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c0173280e865a536b16f37263feae09", "sha256": "24926bc80b4203efe074b7699080036d5c4ded3e7615beaf4642d8d8b7e05093" }, "downloads": -1, "filename": "prologterms-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4c0173280e865a536b16f37263feae09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3779, "upload_time": "2018-05-19T03:11:27", "url": "https://files.pythonhosted.org/packages/15/f1/c44b4a4fd4f004683a3dca16db7188983522870df8b8900d6f4dae223631/prologterms-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6f7b0e79344e82a2e308d81384e82a66", "sha256": "9b8f6272dcae5a0a9257daa41cd455d5b060147486cea36623f91a3226a656e9" }, "downloads": -1, "filename": "prologterms-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6f7b0e79344e82a2e308d81384e82a66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3988, "upload_time": "2019-08-12T18:27:01", "url": "https://files.pythonhosted.org/packages/e7/66/cd1904c6268b0f9146e0e3c25ca4993ef52a5077e8d30f9a604c90610c4d/prologterms-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93c2d6056580d3e68545755b87d95235", "sha256": "c63cfc291ccfa3e2eeea89eed93bc7fc0214a1f2d748a200de0a5fdd90e0426a" }, "downloads": -1, "filename": "prologterms-0.0.6.tar.gz", "has_sig": false, "md5_digest": "93c2d6056580d3e68545755b87d95235", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3913, "upload_time": "2019-08-12T18:27:03", "url": "https://files.pythonhosted.org/packages/1e/99/7783b44e82a5a7943222ec57fd75dd9dc38b14c72949e2619a3ee231abad/prologterms-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f7b0e79344e82a2e308d81384e82a66", "sha256": "9b8f6272dcae5a0a9257daa41cd455d5b060147486cea36623f91a3226a656e9" }, "downloads": -1, "filename": "prologterms-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6f7b0e79344e82a2e308d81384e82a66", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3988, "upload_time": "2019-08-12T18:27:01", "url": "https://files.pythonhosted.org/packages/e7/66/cd1904c6268b0f9146e0e3c25ca4993ef52a5077e8d30f9a604c90610c4d/prologterms-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93c2d6056580d3e68545755b87d95235", "sha256": "c63cfc291ccfa3e2eeea89eed93bc7fc0214a1f2d748a200de0a5fdd90e0426a" }, "downloads": -1, "filename": "prologterms-0.0.6.tar.gz", "has_sig": false, "md5_digest": "93c2d6056580d3e68545755b87d95235", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3913, "upload_time": "2019-08-12T18:27:03", "url": "https://files.pythonhosted.org/packages/1e/99/7783b44e82a5a7943222ec57fd75dd9dc38b14c72949e2619a3ee231abad/prologterms-0.0.6.tar.gz" } ] }