Datalog

Datalog是一种数据查询语言，专门设计与大型关系数据库交互，语法与Prolog相似。正如SQL只是一个规范，Transact-SQL、PL-SQL是其具体实现一样；Datalog也是一个规范，bddbddb、 DES、OverLog、Deals等都按照Datalog的语法实现了自己的语言，所以Datalog没有特定的执行环境（如Java之于Java虚拟机，Prolog之于SWI-Prolog）。

起源
二十世纪九十年代，为了解决更多的问题，带有人工智能的系统通常要携带一个自行开发的数据库。这样的数据库非常简陋，不能数据共享与恢复，也不能在其他人工智能系统间通用。为了降低智能系统与数据库之间的耦合（智能系统可以使用现有的成熟的数据库，并方便地从一种数据库切换到另一种数据库），需要一种在数据库与智能系统间交互的语言。于是Datalog应运而生。

发明了Datalog这个名称。

与Prolog的异同
Datalog的语法是Prolog的子集；但是Datalog的语义与Prolog不同。

Prolog程序里的事实和规则的出现顺序决定了执行结果。很可能两条规则的出现顺序对换，程序就陷入死循环。Datalog程序对事实和规则的出现顺序不做要求，两条规则的出现顺序对换，执行结果仍然是一样的。

 参考资料 

Category:邏輯編程語言
Category:数据查询语言