我一直试图了解在特定环境中使用Prolog而不是Datalog是否具有显着优势。 Prolog是图灵完整而Datalog不是。但是使用Prolog还有其他重大优势吗?
特定的上下文可以是例如关系数据库......使用Prolog或Datalog会更好吗?
答案 0 :(得分:5)
除了Prolog的图灵完整性和vanilla数据记录的非图灵完整性(Datalog的扩展扩展了它的复杂性类别),Datalog和Prolog之间的几个显着差异如下:
在Datalog中,规则或规则中的原子的顺序对其评估或评估结果没有影响。另一方面,在Prolog中,原子的顺序可能意味着终止和非终止之间的差异,或终止评估的运行时间。 Prolog还提供必要的操作符,例如cut(!);典型的Datalog实现没有这样的运算符。因此,Datalog在这个意义上更具说明性。
数据记录实现通常支持自下而上的评估,而Prolog实现通常支持自上而下的评估。每种方法的优点和缺点取决于程序的使用方式,以及程序要操作的数据大小。
不确定您的具体用例的含义。这很大程度上取决于你正在尝试构建的内容 - 是否需要图灵完整性等。