{"id":21441029,"url":"https://github.com/noxdafox/clipspy","last_synced_at":"2025-05-15T20:05:39.321Z","repository":{"id":25930918,"uuid":"104657438","full_name":"noxdafox/clipspy","owner":"noxdafox","description":"Python CFFI bindings for the 'C' Language Integrated Production System CLIPS","archived":false,"fork":false,"pushed_at":"2025-03-17T20:53:29.000Z","size":310,"stargazers_count":185,"open_issues_count":1,"forks_count":35,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-19T02:14:54.143Z","etag":null,"topics":["artificial-intelligence","cffi","clips","expert-system","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/noxdafox.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-24T16:06:11.000Z","updated_at":"2025-04-08T08:12:12.000Z","dependencies_parsed_at":"2025-04-11T23:15:23.912Z","dependency_job_id":"b0ef3b28-4e6f-4816-8355-be93b748156b","html_url":"https://github.com/noxdafox/clipspy","commit_stats":{"total_commits":188,"total_committers":3,"mean_commits":"62.666666666666664","dds":"0.021276595744680882","last_synced_commit":"cdc3fe427363c58bee790c0e6eb8df0eb9f79fc3"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noxdafox%2Fclipspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noxdafox%2Fclipspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noxdafox%2Fclipspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noxdafox%2Fclipspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noxdafox","download_url":"https://codeload.github.com/noxdafox/clipspy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","cffi","clips","expert-system","python"],"created_at":"2024-11-23T01:20:07.806Z","updated_at":"2025-05-15T20:05:34.273Z","avatar_url":"https://github.com/noxdafox.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"CLIPS Python bindings\n=====================\n\nPython CFFI_ bindings for the 'C' Language Integrated Production System CLIPS_ 6.42.\n\n:Source: https://github.com/noxdafox/clipspy\n:Documentation: https://clipspy.readthedocs.io\n:Download: https://pypi.python.org/pypi/clipspy\n\n|build badge| |docs badge|\n\n.. |build badge| image:: https://github.com/noxdafox/clipspy/actions/workflows/linux-wheels.yml/badge.svg\n   :target: https://github.com/noxdafox/clipspy/actions/workflows/linux-wheels.yml\n   :alt: Build Status\n.. |docs badge| image:: https://readthedocs.org/projects/clipspy/badge/?version=latest\n   :target: http://clipspy.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation Status\n\n\nInitially developed at NASA's Johnson Space Center, CLIPS is a rule-based programming language useful for creating expert and production systems where a heuristic solution is easier to implement and maintain than an imperative one. CLIPS is designed to facilitate the development of software to model human knowledge or expertise.\n\nCLIPSPy brings CLIPS capabilities within the Python ecosystem.\n\nInstallation\n------------\n\nLinux\n+++++\n\nOn Linux CLIPSPy is packaged for `x86_64` and `aarch64` architectures as a wheel according to PEP-513_ guidelines. PEP-656_ is supported solely for `x86_64` at the moment. Minimum Python version is 3.9.\n\n.. code:: bash\n\n    $ pip install clipspy\n\nmacOS\n+++++\n\nApple Intel and Silicon are supported for Python versions starting from 3.9.\n\n.. code:: bash\n\n    $ pip install clipspy\n\nWindows\n+++++++\n\nCLIPSPy comes as a wheel for Python versions starting from 3.9.\n\n.. code:: batch\n\n    \u003e pip install clipspy\n\nBuilding from sources\n+++++++++++++++++++++\n\nThe provided Makefiles take care of retrieving the CLIPS source code and compiling the Python bindings together with it.\n\n.. code:: bash\n\n    $ make\n    # make install\n\nPlease check the documentation_ for more information regarding building CLIPSPy from sources.\n\nExample\n-------\n\n.. code:: python\n\n    import clips\n\n    DEFTEMPLATE_STRING = \"\"\"\n    (deftemplate person\n      (slot name (type STRING))\n      (slot surname (type STRING))\n      (slot birthdate (type SYMBOL)))\n    \"\"\"\n\n    DEFRULE_STRING = \"\"\"\n    (defrule hello-world\n      \"Greet a new person.\"\n      (person (name ?name) (surname ?surname))\n      =\u003e\n      (println \"Hello \" ?name \" \" ?surname))\n    \"\"\"\n\n    environment = clips.Environment()\n\n    # define constructs\n    environment.build(DEFTEMPLATE_STRING)\n    environment.build(DEFRULE_STRING)\n\n    # retrieve the fact template\n    template = environment.find_template('person')\n\n    # assert a new fact through its template\n    fact = template.assert_fact(name='John',\n                                surname='Doe',\n                                birthdate=clips.Symbol('01/01/1970'))\n\n    # fact slots can be accessed as dictionary elements\n    assert fact['name'] == 'John'\n\n    # execute the activations in the agenda\n    environment.run()\n\n.. _CLIPS: http://www.clipsrules.net/\n.. _CFFI: https://cffi.readthedocs.io/en/latest/index.html\n.. _PEP-513: https://www.python.org/dev/peps/pep-0513/\n.. _PEP-656: https://peps.python.org/pep-0656/\n.. _documentation: https://clipspy.readthedocs.io\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoxdafox%2Fclipspy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoxdafox%2Fclipspy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoxdafox%2Fclipspy/lists"}