在实践中,前向链接擅长什么,而后向链接不擅长呢?我理解它们在理论上做了什么,但在实际应用中,它们的局限性和能力是什么?我正在考虑为新的AI项目选择 Drools 还是 Java Prolog,但也对其他建议持开放态度。对于在复杂的关系型数据集上进行推理,有哪些常用的方法或替代方案?
回答:
后向链接(如 Prolog)更像是寻找哪些初始条件构成通往目标的路径。在非常基础的层面上,它是一种从目标向后搜索,以寻找满足目标的条件的方法。
后向链接用于提问式应用(寻找满足特定标准的项目)——一个商业上的后向链接应用示例可能是查找哪些保险单由特定的再保险合同承保。
前向链接(如 CLIPS)匹配条件,然后从这些条件生成推论。这些条件反过来可以匹配其他规则。基本上,它接受一组初始条件,然后从中得出所有可能的推论。
这些推论(如果被断言)也可以是动作或事件,可以触发外部动作。这在事件驱动系统中非常有用,因为可以将规则集配置为(例如)启动工作流或其他动作。这种类型的规则引擎是商业应用中最常用的。
事件驱动系统是前向链接规则引擎的常见应用。前向链接应用的一个例子可能是电信套餐配置引擎(通常用于管理手机套餐)。输入具有特定套餐的特定用户将触发在各种电话交换机、计费系统、财务系统、CRM系统等中设置一系列项目。