{ "info": { "author": "Guenter Bartsch", "author_email": "guenter@zamia.org", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Prolog", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "py-xsb\n======\n\nA Python - XSB bridge enabling querying XSB in your Python programs. It\nfeatures a ctypes mapping of XSB\u2019s C-Interface as well as some higher\nlevel convenience wrappers.\n\nConstructive comments, patches and pull-requests are very welcome.\n\nExamples\n--------\n\n### High Level Wrappers (demo\\_highlevel.py)\n\nSetup XSB engine:\n\n from pyxsb import pyxsb_start_session, pyxsb_end_session, pyxsb_command, \\\n pyxsb_query, XSBFunctor, XSBVariable, xsb_to_json, json_to_xsb\n\n pyxsb_start_session()\n # in case auto-detection fails, you can pass the XSB arch dir here like so:\n # pyxsb_start_session('/opt/xsb-3.8.0/config/x86_64-redhat-linux-gnu')\n #\n # to determine the location of the XSB arch dir on your machine, run this query in XSB:\n # xsb_configuration:xsb_configuration(config_dir,Dir).\n\nrun a string XSB command:\n\n pyxsb_command('consult(ft).')\n\nrun a string query:\n\n for row in pyxsb_query('label(X, L).'):\n print u\"label of %s is %s\" % (row[0], row[1])\n\nqueries and commands can also be constructed structurally:\n\n for row in pyxsb_query(XSBFunctor('descend', [XSBVariable('X'), XSBVariable('Y')])):\n print u\"decendant of %s is %s\" % (row[0], row[1])\n\nthe wrappers (XSBFunctor, XSBVariable, XSBString, XSBAtom) are the same\nones used to represent the query results. For integers, floats and lists\nprimitive python types are used:\n\n for row in pyxsb_query(u'A = 1, B = 0.5, C = \"hello\", D = yes, E = foo(bar), F = [1.1,2.2], G = \\'g\u00fcnter\\'.'):\n for i, r in enumerate(row):\n print u\"#%d: %-10s (type: %-20s, class: %-20s)\" % (i, r, type(r), r.__class__)\n\nthe wrappers can also converted to and from JSON:\n\n js = xsb_to_json(row)\n print \"json: %s\" % js\n\n row2 = json_to_xsb(js)\n print \"restored: %s\" % str(row2)\n\nclose the session:\n\n pyxsb_end_session()\n\n### XSB Low Level API (demo\\_lowlevel.py)\n\nFirst, import xsb and init the library:\n\n from pyxsb import pyxsb_start_session\n pyxsb_start_session()\n\n from pyxsb import *\n\nexecute an XSB command:\n\n c2p_functor(\"consult\", 1, reg_term(1))\n c2p_string(\"ctest\",p2p_arg(reg_term(1),1))\n if xsb_command():\n raise Exception (\"Error consulting ctest\")\n\nsame thing using the string interface:\n\n if xsb_command_string(\"consult(basics).\"):\n raise Exception (\"Error (string) consulting basics.\")\n\nrun a query:\n\n # Create the query p(300,X,Y) and send it.\n c2p_functor(\"p\",3,reg_term(1))\n c2p_int(300,p2p_arg(reg_term(1),1))\n\n rcode = xsb_query()\n\n # Print out answer and retrieve next one.\n while not rcode:\n if not is_string(p2p_arg(reg_term(2),1)) and is_string(p2p_arg(reg_term(2),2)):\n print \"2nd and 3rd subfields must be atoms\"\n else:\n print \"Answer: %d, %s(%s), %s(%s)\" % ( p2c_int(p2p_arg(reg_term(1),1)),\n p2c_string(p2p_arg(reg_term(1),2)),\n xsb_var_string(1),\n p2c_string(p2p_arg(reg_term(1),3)),\n xsb_var_string(2))\n rcode = xsb_next()\n\nrun a string query:\n\n xsb_make_vars(3)\n xsb_set_var_int(300,1)\n rcode = xsb_query_string(\"p(X,Y,Z).\")\n\n # Print out answer and retrieve next one.\n while not rcode:\n if not is_string(p2p_arg(reg_term(2),2)) and is_string(p2p_arg(reg_term(2),3)):\n print \"2nd and 3rd subfields must be atoms\"\n else:\n print \"Answer: %d, %s, %s\" % (xsb_var_int(1),\n xsb_var_string(2),\n xsb_var_string(3))\n rcode = xsb_next()\n\nclose the connection:\n\n pyxsb_end_session()\n\nInstallation Notes\n------------------\n\n`py-xsb` needs the XSB dynamic library to work: First, follow the\nstandard XSB build instructions:\n\n tar xfvz XSB.tar.gz\n cd XSB/build\n ./configure\n ./makexsb\n\nnow, in order to build `libxsb.so`, execute this command:\n\n [guenter@dagobert build]$ ./makexsb dynmodule\n\nLinks\n-----\n\n- [XSB]\n\nRequirements\n------------\n\n- Python 2.7 or Python 3.6\n\n- libxsb.so shared library installed and in ld\u2019s path\n\nLicense\n-------\n\nMy own code is Apache-2.0 licensed unless otherwise noted in the\nscript\u2019s copyright headers.\n\nAuthors\n-------\n\n- Guenter Bartsch \\<\\>\n\n- Many improvements and bugfixes by Michael Kifer, Annie Liu, David\n Warren (XSB team at Stony Brook University of New York)\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/gooofy/py-xsb", "keywords": "XSB interface AI artificial intelligence reasoning programming in logic", "license": "Apache", "maintainer": "", "maintainer_email": "", "name": "py-xsb", "package_url": "https://pypi.org/project/py-xsb/", "platform": "Linux", "project_url": "https://pypi.org/project/py-xsb/", "project_urls": { "Homepage": "https://github.com/gooofy/py-xsb" }, "release_url": "https://pypi.org/project/py-xsb/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "Python interface for XSB", "version": "1.0.0" }, "last_serial": 4460842, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "e6ebd79787f6d37342c521246cac0d1e", "sha256": "d5978290160e9c72f059b22e8aa8ed91f6c07dfe19d721b9c997e883f1b58947" }, "downloads": -1, "filename": "py_xsb-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e6ebd79787f6d37342c521246cac0d1e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9048, "upload_time": "2018-07-13T11:19:35", "url": "https://files.pythonhosted.org/packages/be/3e/9b725531e98272c07d8bacfc4eea3d728883f599de5997f43adbed07cb66/py_xsb-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a84f04f3152aa283ffd42a6890fc850e", "sha256": "9375c3bfd747bc2a5702a5b26957cf7e1899166b0eb7e90329f0a6f6e688e30d" }, "downloads": -1, "filename": "py-xsb-0.3.0.tar.gz", "has_sig": false, "md5_digest": "a84f04f3152aa283ffd42a6890fc850e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9657, "upload_time": "2018-07-13T11:19:37", "url": "https://files.pythonhosted.org/packages/9c/99/7c55d52740f34521aef2dc703cb60f671e7a57e4db0e2aeb16b0e66b23cf/py-xsb-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b2c32be8599972c298293d21bac9de88", "sha256": "57a676f5137932f1520d2ecae44b04f53999cd297c02e102663be45dc1a8db65" }, "downloads": -1, "filename": "py_xsb-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b2c32be8599972c298293d21bac9de88", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12380, "upload_time": "2018-07-13T11:22:10", "url": "https://files.pythonhosted.org/packages/5f/92/b37470a63cebf58c567d80c1de203c28d64bb3dd3290bb3857abf659d703/py_xsb-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f30674ab558959e682d2aa4b977bb28", "sha256": "f80861e041d85f96143ea9298d2c6458c0e9dc54d7237c34bf85b4b1f4615730" }, "downloads": -1, "filename": "py-xsb-0.3.1.tar.gz", "has_sig": false, "md5_digest": "1f30674ab558959e682d2aa4b977bb28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11639, "upload_time": "2018-07-13T11:22:12", "url": "https://files.pythonhosted.org/packages/3b/4f/a14628b487489e95bbd289d48b3c1c2f9bef8096d96f884f0238231cdb0b/py-xsb-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "ce29de4e7baaeccfeaec9534fa5ea6dc", "sha256": "a980f0ad54282589c3648646d7065d1ca35506ef7fd62c84ead2d614db827e28" }, "downloads": -1, "filename": "py_xsb-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ce29de4e7baaeccfeaec9534fa5ea6dc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12654, "upload_time": "2018-07-15T12:48:33", "url": "https://files.pythonhosted.org/packages/f5/e9/8a4788a67f424de16e6870f1076ba28b5fde9185ee575a3eb6be16385cc8/py_xsb-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "99b99371a20f96874c0a268d66f4e26e", "sha256": "4619c567b6225d27cc9ba1a468a65ded60eefe8aebb872df7dff9d58879b6ed1" }, "downloads": -1, "filename": "py-xsb-0.3.2.tar.gz", "has_sig": false, "md5_digest": "99b99371a20f96874c0a268d66f4e26e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11936, "upload_time": "2018-07-15T12:48:34", "url": "https://files.pythonhosted.org/packages/9d/b5/a8fa8bbba52948b0b10d472086771534825701cb9b80ed1f9422131b9a60/py-xsb-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "6b34d32702d4652d45ba89f4dacf93a1", "sha256": "fe01818e3fc524b73576d5fc26e04debd78486340bdb72d2ebf7a3be649ef4f2" }, "downloads": -1, "filename": "py_xsb-0.3.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b34d32702d4652d45ba89f4dacf93a1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13044, "upload_time": "2018-09-03T20:54:59", "url": "https://files.pythonhosted.org/packages/0e/d0/2c23585c7d00946ae5a0d8c876505658cb1b0935cfcb6b78ab5e5f3f731e/py_xsb-0.3.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4bbb551d52dc9d2b7caf8a3ba7ce280c", "sha256": "7428e5f3df9513b145ee02e15fc325698b56e3b6f2aa1802152875ebfe56dc31" }, "downloads": -1, "filename": "py-xsb-0.3.3.tar.gz", "has_sig": false, "md5_digest": "4bbb551d52dc9d2b7caf8a3ba7ce280c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11903, "upload_time": "2018-09-03T20:55:01", "url": "https://files.pythonhosted.org/packages/eb/d7/9500975cba6446bfa3f4417f81593e8913df2c9ba79647d1bb6beca28cff/py-xsb-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "c0e0c1c125dbdf03ea8c4fe592d5ee53", "sha256": "8f52aa7731e2a82a7e0d6e1775274fd9f7928c1cd65ea8fcc65835d5e69d592c" }, "downloads": -1, "filename": "py_xsb-0.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c0e0c1c125dbdf03ea8c4fe592d5ee53", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12923, "upload_time": "2018-09-05T04:57:31", "url": "https://files.pythonhosted.org/packages/b7/b7/a1433f00c0b929eaf5937984dfc51ae0810b88ec54969c02458b55f452b4/py_xsb-0.3.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3984a0692eee3652466f3ebb4c7f2051", "sha256": "4706278f626d808ae055ddd7fd6e08a081af7be26868cb9bcd5705665a85c04c" }, "downloads": -1, "filename": "py-xsb-0.3.4.tar.gz", "has_sig": false, "md5_digest": "3984a0692eee3652466f3ebb4c7f2051", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11752, "upload_time": "2018-09-05T04:57:32", "url": "https://files.pythonhosted.org/packages/ef/83/e2e935cf1b0d67afd4dc3688fe07c80c82a617d2c4f14bb87de4ac97b57d/py-xsb-0.3.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "667557d80964d0350e350f3b2e42bfe1", "sha256": "4dd349cc662ad13a06bff9dbf55730acbea2d5001af612835c1107f738478fad" }, "downloads": -1, "filename": "py_xsb-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "667557d80964d0350e350f3b2e42bfe1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12919, "upload_time": "2018-11-07T10:27:56", "url": "https://files.pythonhosted.org/packages/53/7e/eebe0939c304f8a2430e323d03f3563540ca9f4eb00749bd064c5ea24293/py_xsb-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3013bfb0cb4057883a7b741b6a9a7477", "sha256": "f6ead82af483a32405f40d7851d0809c473154419e6d6db85fbb0b55c7f672d9" }, "downloads": -1, "filename": "py-xsb-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3013bfb0cb4057883a7b741b6a9a7477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11756, "upload_time": "2018-11-07T10:27:58", "url": "https://files.pythonhosted.org/packages/61/3e/9bf85ae615fa90892e6f2629ea63abfcb19b615ac7431f579d759349572d/py-xsb-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "667557d80964d0350e350f3b2e42bfe1", "sha256": "4dd349cc662ad13a06bff9dbf55730acbea2d5001af612835c1107f738478fad" }, "downloads": -1, "filename": "py_xsb-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "667557d80964d0350e350f3b2e42bfe1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12919, "upload_time": "2018-11-07T10:27:56", "url": "https://files.pythonhosted.org/packages/53/7e/eebe0939c304f8a2430e323d03f3563540ca9f4eb00749bd064c5ea24293/py_xsb-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3013bfb0cb4057883a7b741b6a9a7477", "sha256": "f6ead82af483a32405f40d7851d0809c473154419e6d6db85fbb0b55c7f672d9" }, "downloads": -1, "filename": "py-xsb-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3013bfb0cb4057883a7b741b6a9a7477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11756, "upload_time": "2018-11-07T10:27:58", "url": "https://files.pythonhosted.org/packages/61/3e/9bf85ae615fa90892e6f2629ea63abfcb19b615ac7431f579d759349572d/py-xsb-1.0.0.tar.gz" } ] }