Prolog中readLine谓词的使用
在Blackburn和Bos的“自然语言的表示和推理——计算语义学的第一门课程”中,他们给出了以下谓词:Prolog中readLine谓词的使用,prolog,swi-prolog,natural-language-processing,Prolog,Swi Prolog,Natural Language Processing,在Blackburn和Bos的“自然语言的表示和推理——计算语义学的第一门课程”中,他们给出了以下谓词: parse :- readLine(Sentence), s(LambdaExpression,Sentence,[]), betaConvert(LambdaExpression,Formula), printRepresentation(Formula). 它应该启动分析句子和创建语义表示的过程。我省略了所有其他定义,因为我相信它们与我的问题无关。我很
parse :-
readLine(Sentence),
s(LambdaExpression,Sentence,[]),
betaConvert(LambdaExpression,Formula),
printRepresentation(Formula).
它应该启动分析句子和创建语义表示的过程。我省略了所有其他定义,因为我相信它们与我的问题无关。我很好奇如何使用这个谓词parse
我尝试了解析([Bob,walks])
,但收到了错误消息
你认为应该如何使用这个parse
Prolog中readLine谓词的使用
Readline是一个单独的模块,需要包含在使用Readline的代码中,例如
:- use_module(readLine,[readLine/1]).
文件名为readline.pl
您认为应该如何使用此解析
还有一个单独的测试文件。我会看看那些
评论如下: 您知道在SWI Prolog中哪里可以找到readline模块吗 注意到的
readline
不在SWI Prolog中,它是本书附带源代码的一部分
这本书有两个版本,每个版本都有相似但不同的代码。这两个版本的代码都可以从俄亥俄州的课程页面免费下载
第1册代码()第2册代码() 对于“自然语言的表示和推理——计算语义学的第一门课程”,有一本书,附有到源代码的链接 这本书的一个版本可以作为
该代码设计用于Linux。如果您使用的是Windows,并且想要使用代码,我将远离Cygwin,而使用WSL(),它将为您提供一个Linux shell,我使用()。然后在Linux shell中安装SWI Prolog(),然后安装本书的源代码
注意:我经常使用WSL,并在WSL上使用SWI Prolog。我还没有尝试在这方面使用图书代码,所以我不能说它会起作用,但如果我想在书中使用源代码,我会采取相同的行动。您只需使用
解析来调用它。
这里没有参数。readLine
是一个查询输入的谓词。据我所知,readLine
可能会提示您输入。@WillemVanOnsem所以我只需键入parse。
输入,然后我就可以键入[Bob,walks]
。您知道SWI prolog中readLine的模拟值是多少吗?请尝试read\u string(用户“\n”、“\r”、\u字符串),
@GuyCoder,谢谢,您对本书给出了正确的参考。我只是自己读。第50页是正确的。我将尝试你关于阅读字符串的建议。我在陈述问题时做出了妥协,试图避免问题太长。您知道在SWI Prolog中哪里可以找到readline
模块吗?就是这个:谢谢你这么详细的回答。我现在正在努力寻找printmentrepresentation
的定义。在本书的代码中有一个文件comsemPredicates
,它包含printmentresentations
。我从单数改为复数,但仍然使用[mia,snort]
返回失败
进行解析,我不知道如何进行故障排除,因为跟踪
无法使用读线
。虽然betaConvert工作得很好,但我很感谢您的邀请,不过我现在太忙了,没有时间尝试研究这个问题。我建议你把它作为一个新问题发布,并给出细节。我仍然需要检查最近对我几周前的一个问题的回答的有效性。您还应该注意,该代码设计为在Linux上运行,以及您正在使用的操作系统上运行。如果使用Windows,请注意如何使其在Windows上运行。