📜  序言 |一个介绍

📅  最后修改于: 2021-10-19 05:41:45             🧑  作者: Mango

介绍 :

Prolog 是一种逻辑编程语言。它在人工智能中具有重要作用。与许多其他编程语言不同,Prolog 主要用作声明式编程语言。在序言中,逻辑表示为关系(称为事实和规则)。 prolog 的核心在于所应用的逻辑。通过对这些关系运行查询来执行公式化或计算。

在 Linux 中安装:

打开终端(Ctrl+Alt+T)并输入:

sudo apt-get install swi-prolog

语法和基本字段:

在序言中,我们声明了一些事实。这些事实构成了系统的知识库。我们可以查询知识库。如果我们的查询已经在知识库中或者知识库隐含了它,我们就会得到肯定的输出,否则我们得到的输出是否定的。因此,知识库可以被认为类似于数据库,我们可以对其进行查询。 Prolog 事实以明确的模式表示。事实包含实体及其关系。实体写在用逗号 (, ) 分隔的括号内。它们的关系在括号内和括号外表示。每个事实/规则都以点 (.) 结尾。因此,一个典型的序言事实如下:

Format : relation(entity1, entity2, ....k'th entity).

Example :
friends(raju, mahesh).
singer(sonu).
odd_number(5).

Explanation :
These facts can be interpreted as :
raju and mahesh are friends.
sonu is a singer.
5 is an odd number.

主要特征 :
1. 统一:基本思想是,可以使给定的术语表示相同的结构。
2. 回溯:当任务失败时,prolog 向后追溯并尝试满足先前的任务。
3.递归:递归是程序中任何搜索的基础。

运行查询:
一个典型的 prolog 查询可以这样问:

Query 1 : ?- singer(sonu).
Output : Yes.

Explanation : As our knowledge base contains the above fact, so output was 'Yes', otherwise it would have been 'No'. 

Query 2 : ?- odd_number(7).
Output : No.

Explanation : As our knowledge base does not contain the above fact, so output was 'No'.

优点 :
1.易于建立数据库。不需要大量的编程工作。
2.模式匹配很容易。搜索是基于递归的。
3.内置列表处理。可以更轻松地使用任何涉及列表的算法。

缺点:
1. LISP(另一种逻辑编程语言)在 I/O 功能方面优于 prolog。
2.有时输入输出并不容易。

应用:

Prolog 高度用于人工智能(AI)。 Prolog 还用于对自然语言解析树进行模式匹配。

参考 1: https://en.wikipedia.org/wiki/Prolog

参考 2: http://www.swi-prolog.org/