我正在学习、DCG语法、和解析树,在Prolog中使用Ivan的人工智能编程。在一个使用DCG语法来推断句子含义的程序中,我发现这两个谓词表示了一种语义知识。
properName(john) --> [john].
properName(mary) --> [mary].我应该如何阅读这些谓词?我认为它们的意思是:字符串" John“表示的列表中的一个元素确实是一个正确的名称,而这个正确的名称是John(玛丽也是这样)。
这是我的阅读正确还是有其他的含义?
发布于 2013-05-17 14:38:07
这是一个琐碎的谓词,它不适合在使用它的上下文之外进行解释。
换句话说,它只能用于要求以某种方式使用专有名称,这是通过在其右侧使用的DCG规则来实现的。孤立地说,你展示它的方式,只不过意味着:
“约翰”是个恰当的名字,玛丽也是。
编辑
我可能错了,但你仍然在滥用英语来描述那些最好用正式语言来描述的东西。Prolog是一种形式语言,具有定义的语法和语义。它可以用于形式化地描述逻辑关系或计算。试图忠实地把它翻译成英语肯定是笨拙和不必要的。像你问题中的谓词这样琐碎的事情变成了一些愚蠢、难以理解和难以使用的东西。
representation是你最喜欢的单词的正确拼写。
https://stackoverflow.com/questions/16611441
复制相似问题