霍恩第是最多一个积极的,即unnegated,字面量条款(字面量的析取)。一个最多包含一个正(非否定)字面量的子句称为“ Horn子句”。
演绎数据库:
一种数据库类型,可以根据存储在数据库中的一组明确定义的规则得出结论。 RDBMS和逻辑编程使用此方法结合在一起。演绎数据库的设计是借助称为Datalog的纯声明式编程语言完成的。
号角条款的类型:
- 定冠词/严格角形子句–
它恰好有一个肯定的字面量。 - 单位条款–
不带否定字面量的确定子句。 - 目标条款–
没有正字面量的Horn子句。
在Datalog中,规则表示为子句的受限形式,称为Horn子句,其中子句最多可以包含一个正字面量。
公式可以包含以下量词:
- 通用量词–
可以理解为–“对于所有x,P(x)都成立”,这意味着P(x)对于宇宙中的每个对象x都是正确的。例如,所有卡车都有车轮。 - 存在量词–
可以理解为–“存在一个x,使得P(x)”,意味着P(x)对于宇宙的至少一个对象x是正确的。例如,有人在乎你。
号角条款的形式:
-
NOT(P1) OR NOT(P2) OR ... OR NOT(Pn) OR Q
-
NOT(P1) OR NOT(P2) OR ... OR NOT (Pn)
Horn子句的转换:
(1)中的Horn子句可以转换为子句–
P1 AND P2 AND ... AND Pn → Q
按照以下规则在Datalog中编写
Q :- P1, P2, ..., Pn
因此,上面的数据记录规则是Horn子句。
如果谓词P1和P2 AND…和Pn对于对它们的可变参数的特定绑定都成立,则Q也成立,因此可以推断出。
(2)中的Horn子句可以转换为–
P1 AND P2 AND ... AND Pn →
在Datalog中编写如下:
P1, P2, ..., Pn
上面的Datalog表达式可以视为完整性约束,其中所有谓词必须为true才能满足查询。
Datalog中的查询包含两个组件:
- Datalog程序,它是一组有限的规则。
- 字面量P(X1,X2,X3,…Xn),其中每个X是变量或常量。