我想知道您是否知道使用prolog进行流处理的任何方法,即某种反应式编程,或者至少让查询在不断更新(有效地是流)并持续输出的知识库上运行推理的输出?
流行的“序言”中实现了什么,例如SWI-prolog?
最佳答案
您可以使用Logtalk对事件驱动的编程的支持来定义监视知识库更新事件并做出相应反应的监视器。您可以使用大多数Prolog系统作为支持的编译器(包括SWI-Prolog)来运行Logtalk。
例如,描述了事件驱动的特征。在用户手册中:
http://logtalk.org/manuals/userman/events.html
当前发行版包含一些使用事件和监视器的示例。考虑问题的一个有趣的例子是bricks
例子:
https://github.com/LogtalkDotOrg/logtalk3/tree/master/examples/bricks
首先运行此示例,然后查看其代码,应该可以使您更好地了解系统范围的事件和监视器。