Prolog编程:让您的AI Bot拥有最佳生活。

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Prolog是一种逻辑编程语言。因此,对于像C ++或Perl之类的人来说,这似乎是完全奇怪的。这个想法很简单。在程序中,您定义事实和规则(事实之间的关系)。基于此,您可以执行查询。但是,通过这些简单的功能,可以完成很多工作

为了让您对Prolog的功能有所了解,它旨在进行自然语言处理。您可能听说过ELIZA,这是有史以来最早编写的聊天机器人之一。这就是Prolog旨在做的事情.

实际上,在线上有ELIZA的Prolog版本。但这仅仅是开始。它广泛应用于我们广泛认为是“人工智能”的许多领域,尤其是在专家系统中.

Prolog如何运作

对于有程序语言经验的人来说,Prolog可能会使您感到困惑。尽管它当然具有程序方面的内容,但这主要是建立事实及其联系方式的问题。然后,让Prolog管理其完成方式的详细信息。过程编程通常涉及询问很多“如果”问题。 Prolog已将这一方面内置到数据系统中.

要获得有关Prolog的基本概念,我们需要讨论其三个基本方面:事实,规则和查询.

  • 事实:这些就是您会想的。它告诉系统一些信息。在以下示例中,我们声明希瑟喜欢托马斯:
    • 喜欢(希瑟,托马斯).
  • 规则:这些创建逻辑表达式。他们使用诸如:-运算符之类的东西,基本上表示“如果:
    • 喜欢(托马斯,希瑟):-喜欢(希瑟,托马斯).

    这说明如果“希瑟喜欢托马斯”为真,则托马斯喜欢希瑟。请注意,原始事实是一个隐式规则,可以写为:

    • 喜欢(希瑟·托马斯):= true.
  • 查询:这些使我们可以向系统提问。例如:
    • ? 喜欢(托马斯,希瑟).

    这问了一个问题,“托马斯喜欢希瑟吗?”然后Prolog会回答,“是”。这是因为我们首先确定希瑟有事实地喜欢托马斯。然后我们创建了一条规则,规定托马斯喜欢希瑟,如果她喜欢他.

Prolog的另一个重要方面是变量的使用。您可能已经注意到,到目前为止提供的所有示例都是小写的。在Prolog中,以大写字母开头的元素(称为“原子”)是变量。因此,想象一下我们想找出Heather拥有的朋友,我们可以创建一个变量Friends来实现:

? 喜欢(希瑟,朋友).

这问了一个问题,“希瑟喜欢谁?”而且Prolog会将定义好的内容加载到Friends中。在我们的情况下,是托马斯。但这可能是一堆人.

资源资源

既然您已经了解了Prolog的全部内容,那么让我们看一些可以让您成为逻辑程序员的资源.

讲解

  • Prolog简介:这是一个非常简单的教程,但其中涉及一些其他教程往往会掩盖的基本问题.
  • 尝试逻辑编程! Prolog简介:它专注于将逻辑编程作为一种不同的编程范例.
  • Prolog:-教程:这是对该语言的详细的,面向示例的介绍.
  • 立即学习Prolog:这是一个详尽的教程,从一开始就开始学习高级主题.

影片教学

除了标准教程外,Prolog上还有许多不错的视频教程。它们是学习基​​础知识的一种非常简单的方法.

  • Derek Banas的Prolog教程:这是一个长达一小时的出色视频教程,使您从一开始就可以开始:在计算机上安装Prolog.
  • 在Prolog中编程:这是The Simple Engineer使用SWI-Prolog的四部分视频介绍,几乎可以在所有内容上运行.
  • 逻辑编程:这是Pallab Dasgupta关于人工智能的系列讲座的一部分。这是关于逻辑编程的全部内容。还有关于Prolog的后续讲座.

前言书

如果您真的有兴趣,您可能需要阅读一本书,这可以使您更全面地了解本主题。.

  • Sam Key一天完成Prolog编程成功:一本很小的书,确实在一天内(或晚上)介绍了Prolog.
  • Clocksin Mellish在Prolog中进行编程:这是对Prolog的全面而简洁的介绍.
  • 伊万·布拉特科(Ivan Bratko)撰写的Prolog for AI人工智能编程:尽管听起来很像,但这是Prolog的简介,并且深入探讨了该主题。.
  • Prolog的艺术:Sterling和Shapiro撰写的《高级编程技术》:这是经典之作,而不是介绍。熟悉该语言后,您应该检查一下.

序言实施

有多种免费的Prolog编译器和解释器可用.

  • 玩具Prolog口译员:这是莫纳什大学(Monash University)的在线口译员,它是检查一点点代码的好工具。特别适合与教程一起使用,然后再去在计算机上安装编译器。.
  • SWI-Prolog:这是广泛使用的Prolog实现,几乎可用于所有平台.
  • GNU Prolog:这是Daniel Diaz的免费编译器.
  • 免费的Prolog编译器和实施:免费国家/地区的其他Prolog实施列表.

其他资源

还有许多其他资源可用。其中一些可以追溯到很长一段时间,因此请注意,某些信息可能已过时.

  • Prolog资源指南:这是一个非常古老的资源,但是其中包含大量有用的信息.
  • SWI-Prolog中的真实世界编程:对于SWI-Prolog编码人员来说,这里有很多信息,但是对于使用其他环境的人来说,其中的许多信息将非常有用。特别有趣的是## Prolog的常见问题.
  • Prolog WikiBook:这是该语言的绝佳概述,其中包含许多高级资料.
  • Stack Overflow Prolog:这是面向程序员的在线论坛,提供大量信息。另请查看Prolog标记问题页面.
  • SWI-Prolog Google小组:这不是一个非常活跃的小组,但是仍然有很多知识渊博的人参加。还要检查comp.lang.prolog组.

摘要

无论您是要专注于它还是仅仅使用它来补充其他编程工具,Prolog都是一门学习的好语言。作为一种逻辑编程语言,它使您可以以较少的程序性方式思考问题。借助此处的资源,您可以学习和推进Prolog编程.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map