PyKE(Python Knowledge Engine)は、Python 上で知識ベースと推論を扱うためのライブラリでした。ルールと Python コードを組み合わせ、後ろ向き推論を中心に問い合わせを処理するスタイルが説明されやすく、ロジックプログラミングに近い「ルールで駆動する」書き方と親和します。
開発の動機(Python にエキスパート系推論を載せる)
主な作者は Bruce Frederiksen(文献によって綴りが揺れることがあります)として紹介されることが多いです。動機は、Prolog に触発された知識推論を Python に持ち込み、コードの再利用や生成をルールで駆動したい、というものでした。公式サイトでは、ルールをコンパイルして Python 関数に結びつけることで高速化や統合を図る、と説明されています。
SourceForge とコミュニティ時代
長らく SourceForge でホストされ、チュートリアルやメーリングリストを通じてコミュニティが育ちました。2008 年の PyCon で Applying Expert System Technology to Code Reuse with Pyke が発表されるなど、学会・コミュニティでの露出もありました。
Python 3 とメンテナンスの移り変わり
Python 2 から 3 への移行期には、互換やリリースペースが課題になりました。その後、GitHub 上のミラー(例: nvitucci/pyke)で Python 3 向けの維持が続けられた、という経緯が読み取れます。新規プロジェクトで採用する前に、リポジトリの更新状況とライセンスを必ず確認してください。
ざっくりいうと
知識をルールや事実として記述し、アプリケーションから呼び出して結論や手続き分岐に使う、という位置づけです。CLIPS のような単体シェルというより、言語内に埋め込む枠組みに近いイメージです。
他との違い(目安)
- Drools が JVM・企業向けに成熟したのに対し、PyKE は Python エコシステムに寄せた選択肢でした。プロジェクトの存続や環境互換は利用前に確認するのが安全です。
- CLIPS(エキスパートシステム領域のノート)は長く独立したシェルとして使われてきましたが、PyKE は Python との一体化が前提でした。