如何在 DCG 之后从知识库中生成一些短语?
How can I generate some phrases from a knowledge base after DCG?
我在 prolog 中将我的语法定义为 DCG(Definite Clause Grammar)。
现在我想根据我的知识库中的事实生成一些短语。
例如,如果我有 likes(mark, julia).
我想生成句子
Mark likes Julia.
我该怎么做?
我们必须考虑到 likes/2
是一个普通的 Prolog 谓词,不是 DCG。
因此,我们使用 {}//1
来引用 DCG 中的常规 Prolog 谓词。
例如:
sentence -->
[X, likes, Y],
{ likes(X, Y) }.
示例用法:
?- phrase(sentence, Ls).
Ls = [mark, likes, julia].
我在 prolog 中将我的语法定义为 DCG(Definite Clause Grammar)。
现在我想根据我的知识库中的事实生成一些短语。
例如,如果我有 likes(mark, julia).
我想生成句子
Mark likes Julia.
我该怎么做?
我们必须考虑到 likes/2
是一个普通的 Prolog 谓词,不是 DCG。
因此,我们使用 {}//1
来引用 DCG 中的常规 Prolog 谓词。
例如:
sentence --> [X, likes, Y], { likes(X, Y) }.
示例用法:
?- phrase(sentence, Ls). Ls = [mark, likes, julia].