如何在DCG之后从知识库中生成一些短语?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在DCG之后从知识库中生成一些短语?相关的知识,希望对你有一定的参考价值。

我在Prolog中将我的语法定义为DCG(Definite Clause Grammar)。现在我想根据我的知识库中的事实生成一些短语。例如,如果我有likes(mark, julia).我想生成句子

马克喜欢朱莉娅。

我怎样才能做到这一点?

答案

我们必须考虑到likes/2是正常的Prolog谓词,而不是DCG。

因此,我们使用{}//1来指代DCG中的常规Prolog谓词。

例如:

sentence -->
        [X, likes, Y],
        { likes(X, Y) }.

样品用法:

?- phrase(sentence, Ls).
Ls = [mark, likes, julia].

以上是关于如何在DCG之后从知识库中生成一些短语?的主要内容,如果未能解决你的问题,请参考以下文章

在扩充XML文件之后,不会调用onCreate()

从mysql的片段中加载ListView

删除重复的短语[关闭]

PHP - 从请求中生成干净的 TXT 输出

使用在另一个片段(NPE)中生成的值设置片段的 TextView [重复]

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法