ストリーム処理、つまりある種のリアクティブ プログラミングにプロローグを使用する方法、または少なくとも継続的に更新されるナレッジ ベース (事実上ストリーム) でクエリを実行し、継続的に出力する方法を知っているかどうか疑問に思っていました。推論の出力?
SWI-prolog などの一般的な「プロローグ」に実装されているものはありますか?
ストリーム処理、つまりある種のリアクティブ プログラミングにプロローグを使用する方法、または少なくとも継続的に更新されるナレッジ ベース (事実上ストリーム) でクエリを実行し、継続的に出力する方法を知っているかどうか疑問に思っていました。推論の出力?
SWI-prolog などの一般的な「プロローグ」に実装されているものはありますか?
Logtalk のイベント駆動型プログラミングのサポートを使用して、ナレッジ ベースの更新イベントを監視し、それに応じて反応するモニターを定義できます。SWI-Prolog を含むほとんどの Prolog システムをサポートされたコンパイラとして使用して、Logtalk を実行できます。
イベント駆動型の機能については、ユーザー マニュアルなどで説明されています: http://logtalk.org/manuals/userman/events.html
現在のディストリビューションには、イベントとモニターの使用例がいくつか含まれています。あなたの質問を考慮した興味深いbricks
例は次のとおりです:
https://github.com/LogtalkDotOrg/logtalk3/tree/master/examples/bricks
最初にこの例を実行してから、そのコードを調べると、システム全体のイベントとモニターで何ができるかについての良いアイデアが得られるはずです。