clipspy
1.0.0
「C」言語統合プロダクション システム CLIPS 6.41 の Python CFFI バインディング。
ソース: | https://github.com/noxdafox/clipspy |
---|---|
ドキュメント: | https://clipspy.readthedocs.io |
ダウンロード: | https://pypi.python.org/pypi/clipspy |
NASA のジョンソン宇宙センターで最初に開発された CLIPS は、命令型のソリューションよりもヒューリスティックなソリューションの実装と保守が容易なエキスパート システムや運用システムの作成に役立つルールベースのプログラミング言語です。 CLIPS は、人間の知識や専門知識をモデル化するソフトウェアの開発を容易にするように設計されています。
CLIPSPy は、Python エコシステム内に CLIPS 機能をもたらします。
Linux では、CLIPSPy は PEP-513 ガイドラインに従って、x86_64 アーキテクチャ用にホイールとしてパッケージ化されています。ほとんどのディストリビューションがサポートされるはずです。
$ pip インストール Clipspy
Apple Silicon は、Python バージョン 3.11 以降でサポートされています。
$ pip インストール Clipspy
CLIPSPy は、Python のほとんどのバージョンとアーキテクチャのホイールとして提供されます。
> pip インストール Clipspy
提供されている Makefile は、CLIPS ソース コードの取得と、それと一緒に Python バインディングのコンパイルを処理します。
$ make# make install
ソースから CLIPSPy を構築する方法の詳細については、ドキュメントを確認してください。
import ClipsDEFTEMPLATE_STRING = """(deftemplate person (スロット名 (STRING 型)) (スロット名 (STRING 型)) (スロット生年月日 (SYMBOL 型)))"""DEFRULE_STRING = """(defrule hello-world "挨拶新しい人。" (人 (名前 ?名前) (姓 ?姓)) => (println "こんにちは " ?名前 " " ?surname))"""environment = Clips.Environment()# コンストラクトを定義しますsenvironment.build(DEFTEMPLATE_STRING)environment.build(DEFRULE_STRING)# ファクトを取得します templatetemplate = Environmental.find_template('person')# その templatefact を通じて新しいファクトをアサートします= template.assert_fact(name='John',surname='Doe',birthdate=clips.Symbol('01/01/1970'))# ファクトスロットは辞書要素としてアクセスできますassert fat['name'] == 'ジョン'# agendaenvironment.run() でアクティベーションを実行します