2

在 Blackburn 和 Bos 的“自然语言的表示和推理 - 计算语义的第一门课程”中,他们给出了以下谓词:

parse :- 
    readLine(Sentence),
    s(LambdaExpression,Sentence,[]),
    betaConvert(LambdaExpression,Formula),
    printRepresentation(Formula).

它应该启动解析句子和创建语义表示的过程。我省略了所有其他定义,因为相信它们与我的问题无关。我很好奇如何使用这个谓词parse

我试过parse([Bob, walks])了,但收到错误消息。

你觉得这parse应该怎么用?

4

1 回答 1

1

Prolog 中 readLine 谓词的使用

Readline 是一个单独的模块,需要包含在使用 readline 的代码中,例如

:- use_module(readLine,[readLine/1]).

该文件名为readline.pl

你认为应该如何使用这个解析?

还有一个单独的测试文件。我会看那些。


来自评论:

你知道我在哪里可以找到 SWI-Prolog 中的 readline 模块吗?

注释readline不在 SWI-Prolog 中,它是本书随附源代码的一部分。

这本书有两个版本,每个版本都有相似但不同的代码。两个版本的代码都可以从俄亥俄州立大学的这个课程页面免费下载。

第 1 册代码 ( BB1 )
第 2 册代码 ( BB2 )

对于“自然语言的表示和推理 - 计算语义的第一门课程”,有一个书和一个单独的页面,其中包含指向源代码的链接。

该书的一个版本可以以PDF 格式下载。


该代码旨在在 Linux 上运行。如果您使用的是 Windows 并且想要使用代码,我会远离 Cygwin,而是安装WSL(文档),这将为您提供 Linux shell,我使用(Ubuntu)。然后在 Linux shell 中安装 SWI-Prolog ( PPA ) 和本书的源代码。

注意:我经常使用 WSL 并在 WSL 上使用 SWI-Prolog。我没有尝试在这方面使用书籍代码,所以我不能说它会起作用,但如果我想将源代码与本书一起使用,我会采取相同的行动。

于 2019-01-21T23:40:35.647 回答