Prolog 为什么我们把没有一个是正的文本的析取称为目标子句?

Prolog 为什么我们把没有一个是正的文本的析取称为目标子句?,prolog,logic,Prolog,Logic,我想我知道目标从句和霍恩从句的含义,但我很困惑为什么人们把没有一个是正的文本的析取命名为目标从句 这里的目标是什么?有三种类型的 明确条款:-p∨ q∨ ⋯ ∨ t∨ u 事实:u 目标条款:-p∨ q∨ ⋯ ∨ t 与序言相关。 示例Prolog来自 定冠词是序言: 事实就是序言: 目标子句是序言: 另一种看待Prolog常见的三种方法是使用头,体和:- 规则是头:-体。 事实是头。 查询是body. 主体由对谓词(head)的调用组成,因此主体可以是这样的A、B、C 当您使用查询时,它实际上

我想我知道目标从句霍恩从句的含义,但我很困惑为什么人们把没有一个是正的文本的析取命名为目标从句

这里的目标是什么?

有三种类型的

明确条款:-p∨ q∨ ⋯ ∨ t∨ u
事实:u
目标条款:-p∨ q∨ ⋯ ∨ t

与序言相关。
示例Prolog来自

定冠词是序言:

事实就是序言:

目标子句是序言:

另一种看待Prolog常见的三种方法是使用
:-

规则是头:-体。
事实是头。
查询是
body.

主体由对谓词(head)的调用组成,因此主体可以是这样的
A、B、C

当您使用查询时,它实际上是

goal :- body. 

序言示例 事实

目标条款

location(X, kitchen), edible(X).
答复

X = apple
X = crackers
早先的答复 从Prolog中的谓词开始

ancestor(X,Y) :- parent(X, Z) , ancestor(Z,Y).
其中
祖先(X,Y)
被称为head子句,
父(X,Z),祖先(Z,Y)
被称为body

将序言转换为含义
:-


其含义是相反的

(parent(X,Z) ∧ ancestor(Z,Y)) ⊃ ancestor(X,Y) 
转换连词(∧) 将文字转换为析取(∨) 字面值

not parent(X,Z) ∨ not ancestor(Z,Y) ∨ ancestor(X,Y) 
结果
不是父项(X,Z)∨ 不是祖先(Z,Y)
,它是序言主体,或者在您的问题中是目标子句

换句话说,goal子句是需要满足的语句,以实现目标,即Prolog头
祖先(X,Y)

要查看使用Prolog祖先的示例,请参阅。请注意,此示例中给出的规则只是用于定义祖先的两个规则之一,缺少的Prolog规则是
祖先(A,B):-parent(A,B)。

工具书类 爱丁堡大学课程:自动推理学生Prolog程序设计-第10讲-

维基百科的定义-

没有正文本的Horn子句有时称为goal子句

-p∨ q∨ ... ∨ -t

SWI序言

()

在线试用Prolog 使用(已通过此链接输入序言规则)
在右下角的
?-
中,它显示
您的查询在这里…
输入
祖先(X,john)。

然后在右下角单击运行!

在上面,你应该看到约翰的祖先
X=david

在该菜单下,单击“下一步”,您将看到约翰的另一位祖先
X=jim

继续单击
Next
查看其他祖先,然后您应该看到
false
表示没有更多有效答案

节选 来自弗兰克·芬宁

为了从推理规则过渡到逻辑编程,我们 需要实施一个特定的战略。两个基本的想法表明 他们自己:我们可以从猜测中向后搜索, 向上生长一棵(潜在的)证明树,或者我们可以向前努力 从应用规则的公理开始,直到我们得出猜想 将第一个称为目标导向,第二个称为正向推理

如何搜索 评论

你能告诉我你是怎么做的吗?因为当我遇到 一些复杂的问题我通常不知道如何搜索 资源

通常情况下,我会让OP(原始海报)作为另一个问题提问,但由于这是一个主观问题,而不是客观问题,它将在SO(StackOverflow)上被击落,并获得向下和接近的投票,我可以使用与原始问题相关的示例,因此我将在这里回答

在寻找成功之路时,要找出该领域专家使用的当前术语,以及该术语中的哪些关键词与您所寻求的内容相关。有时,我对这些关键词了如指掌,就像这个问题中的
文本析取
目标
我知道它们是关键术语一样在逻辑、推理、定理证明和逻辑语言中。其他时候,我在猜测或在黑暗中这样做

在尝试学习当前术语时,有时会获得成功的一种方法是搜索标题中通常包含
survey
,因此
survey
是一个好的关键字。例如,在第一页使用with finds

作为搜索具有
数学规范形式
的数学表达式的规范形式的示例,发现相关性很小,但在发现
标准更常用后,获得了更好的结果

有时,不是文字帮助你找到答案,而依赖文字的搜索引擎会让你失望。对于我每隔几周左右看到的一种搜索类型,包括查找生成数字序列的模式/公式/等,而你只知道序列的一部分,通常是序列的开始。这是一种使用(Integer Sequences®在线百科全书)派上了用场。另一种与数学相关的搜索引擎是。因此,请注意还有其他类型的搜索引擎

一旦你有了关键词,@WillNess notes,你有时会以单字
目标从句
的形式查询,但有时会以引号
“目标从句”
的形式查询。对于这个问题,使用准确的词会得到更好的结果

接下来要认识到的是,信息的来源往往与信息的质量相对应

  • 我对来自大学课程、在线数字科学图书馆和书籍的资源很感兴趣
  • PDF(Po)
    location(apple, kitchen).
    location(crackers, kitchen).
    location(flashlight, desk).
    
    edible(apple).
    edible(crackers).
    
    location(X, kitchen), edible(X).
    
    X = apple
    X = crackers
    
    ancestor(X,Y) :- parent(X, Z) , ancestor(Z,Y).
    
    (parent(X,Z) ∧ ancestor(Z,Y)) ⊃ ancestor(X,Y) 
    
    not parent(X,Z) ∨ not ancestor(Z,Y) ∨ ancestor(X,Y) 
    
    :- dynamic pred1, pred2.
    :- writeln("I have just reached the end of the database file").
    
    a.        % premise 1
    b :- a.   % premise 2
    % ... plus many other facts and relationships not involving a or b
    
    ?- b.