Datalog

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

起源

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

David Maier发明了Datalog这个名称[6]

与Prolog的异同

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

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


参考资料

  1. Stefano Ceri; Georg gottlob, Letizia Tanca. 1. 1989年3月.
  2. , , [2014-02-15], (原始内容存档于2011-07-28)
  3. Fernan, , ES: UCM, [2014-02-15], (原始内容存档于2014-02-22)
  4. (PDF), [2014-02-15], (原始内容存档 (PDF)于2013-05-18)
  5. . [2014-02-14]. (原始内容存档于2014-02-25).
  6. Abiteboul, Serge; Hull, Richard; Vianu, Victor, : 305, [2014-02-15], (原始内容存档于2014-06-27)
  • Stefano Ceri; Georg gottlob, Letizia Tanca. 1. 1989年3月.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.