📜  演绎数据库中的Horn子句

📅  最后修改于: 2021-08-24 04:41:49             🧑  作者: Mango

霍恩第是最多一个积极的,即unnegated,字面量条款(字面量的析取)。一个最多包含一个正(非否定)字面量的子句称为“ Horn子句”。

演绎数据库:
一种数据库类型,可以根据存储在数据库中的一组明确定义的规则得出结论。 RDBMS和逻辑编程使用此方法结合在一起。演绎数据库的设计是借助称为Datalog的纯声明式编程语言完成的。

号角条款的类型:

  • 定冠词/严格角形子句–
    它恰好有一个肯定的字面量。
  • 单位条款–
    不带否定字面量的确定子句。
  • 目标条款–
    没有正字面量的Horn子句。

在Datalog中,规则表示为子句的受限形式,称为Horn子句,其中子句最多可以包含一个正字面量。

公式可以包含以下量词:

  • 通用量词–
    可以理解为–“对于所有x,P(x)都成立”,这意味着P(x)对于宇宙中的每个对象x都是正确的。例如,所有卡车都有车轮。
  • 存在量词–
    可以理解为–“存在一个x,使得P(x)”,意味着P(x)对于宇宙的至少一个对象x是正确的。例如,有人在乎你。

号角条款的形式:

  1. NOT(P1) OR NOT(P2) OR ... OR NOT(Pn) OR Q
  2. 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是变量或常量。