流程推理/ prolog中的反应式编程?

Sam*_*mpa 6 stream prolog swi-prolog reactive-programming

我想知道你是否知道使用prolog进行流处理的任何方法,即某种反应式编程,或者至少让查询在不断更新的知识库上运行(实际上是一个流),并且连续输出推理的输出?

流行的"prologs"中实现了什么,比如SWI-prolog?

Pau*_*ura 6

您可以使用Logtalk对事件驱动编程的支持来定义监视知识库更新事件的监视器并做出相应的反应.您可以使用大多数Prolog系统作为支持的编译器运行Logtalk,包括SWI-Prolog.

事件驱动的功能在用户手册中有描述:http: //logtalk.org/manuals/userman/events.html

当前分发包含一些使用事件和监视器的示例.考虑到您的问题的一个有趣的bricks例子是:https: //github.com/LogtalkDotOrg/logtalk3/tree/master/examples/bricks

首先运行此示例然后查看其代码应该可以很好地了解您可以对系统范围的事件和监视器执行的操作.