Prolog 中 readLine 谓词的使用

Usage of readLine predicate in Prolog

在 Blackburn 和 Bos 的 "Representation and Inference for Natural Language - A First Course in Computational Semantics" 中,他们给出了以下谓词:

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

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

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

你觉得这个parse应该怎么用?

Usage of readLine predicate in Prolog

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

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

文件名为readline.pl

How do you think this parse should be used?

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


来自评论:

Do you know where I can find readline module in SWI-Prolog?

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

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

图书 1 代码 (BB1)
图书 2 代码 (BB2)

对于 "Representation and Inference for Natural Language - A First Course in Computational Semantics",有一本书 page and separate page,其中包含指向源代码的链接。

本书的一个版本可以下载为 PDF


代码设计用于 Linux。如果您正在使用 Windows 并且想使用我会远离 Cygwin 的代码,而是 install WSL (Documentation) which will give you a Linux shell, I use (Ubuntu). Then in the Linux shell install SWI-Prolog (PPA) 然后是本书的源代码。

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