Heim  >  Artikel  >  Datenbank  >  Datalog简单回顾

Datalog简单回顾

WBOY
WBOYOriginal
2016-06-07 15:22:464535Durchsuche

Datalog是一种基于逻辑的编程语言。它是一阶谓词逻辑中Horn子句逻辑的一种受限形式,只允许变量或常量作为谓词的自变元,不允许函数作为谓词的自变元。Datalog的语句由事实和规则组成,同Prolog一样,它可以实现对知识库的演绎推理,即可以从已知事实中根据

Datalog是一种基于逻辑的编程语言。它是一阶谓词逻辑中Horn子句逻辑的一种受限形式,只允许变量或常量作为谓词的自变元,不允许函数作为谓词的自变元。Datalog的语句由事实和规则组成,同Prolog一样,它可以实现对知识库的演绎推理,即可以从已知事实中根据跟着推理得到新的事实。一条Datalog的规则包括如下三部分的内容:

(1)规则头P

(2)蕴含符号:- (可以读为if,蕴含表明的是一种逻辑关系,而不是一种运算符号)

(3)规则体,即一个或多个子目标P1,P2,…,Pn,各子目标之间相当于AND连接。规则的含义描述为:检查规则中变量的所有可能的取值,当这些变量使规则体中所有子目标均为真时,规则头为真。

ex.

P:-P1,P2,…,Pn //若P1,P2,…Pn均为真,则P为真

\

Fig. Association of several logicmodels

1.一阶谓词逻辑

一阶谓词逻辑又称一阶谓词演算,是基于命题逻辑发展起来的。1879年,德国数学家弗雷格首先引入量词的概念,从而建立了一阶谓词逻辑,一阶谓词逻辑与命题逻辑的最主要区别是增加了两次,使原子公司参量化,从而达到一型多义。

一阶谓词逻辑的主要构成:个体、谓词、量词

个体:确定的个体称为变元,不确定的个体称为常元

谓词:语句中表示个体性质或关系的语言成分

量词:是一种约束变元的方法,分全称量词和存在量词

2.子句逻辑

不含任何连接词的谓词公式称为原子公式,而原子或原子的否定统称为文字(Literal)。在逻辑编程中,子句通常被写为从体部到头部的蕴含。在最简单的情况下,体部是文字的合取而头部是一个单一的文字。如果B1,…Bm是在子句体中的文字,而H1,…,Hn是子句头重的文字,则子句通常写为:

H1,…Hn:- B1,…,Bm

3. Horn子句逻辑

语句B?A1,…An 和B← 都是仅有一个正文字B的子句,称为定子句。而没有正文字出现的子句如 ?A1,…An则称为目标子句。定字句和目标子句统称为Horn子句,也即最多含有一个正文字的子句。1951年由逻辑学家Horn提出来的,所以称为Horn子句。

Horn子句的合取是合取范式,也叫做Horn公式。下面是Horn子句的例子:

实际上,Prolog就是基于Horn子句集合归结原理的实用的面向人工智能的高级编程语言。Prolog既是一种程序设计语言,又是一种逻辑系统,它是一种描述性语言。

Datalog语法

Datalog的程序的含义用纯声明性的方式定义,而Prolog有更多的过程化语义。尽管知识的表达可能有许多方法,但数据逻辑的公式是最接近人的思维的形式,因而也是知识的最直观的表达形式。

关系:如father(x,y),关系father描述了x是y的父亲

规则:具有如下形式P:- P1,P2,…,Pn,意思为如果P1,P2,…Pn(规则体)均为真,那么P(规则头部Head)也为真。规则建立在文字量的基础上。

事实:就是一条原子公式,代表总是成立的事实,是所有推理的基础。但规则中的规则体为空时,规则就变成了事实。如事实father(john,lucy)表示john是lucy的父亲。

Positive literal: p(t1,t2,t3) 表示包含事实p(t1,t2,t3)

Negative literal: not p(t1,t2,t3) 表示不包含事实p(t1,t2,t3)

查询:用“?-”表示

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn