我在序言中将语法定义为DCG(定语从句)。
现在,我想根据我知识库中的事实生成一些短语。
例如,如果我有likes(mark, julia).
,我想生成句子
马克喜欢朱莉娅。
我该怎么做?
答案 0 :(得分:3)
我们必须考虑到likes/2
是正常的Prolog谓词,不是 DCG。
因此,我们使用 {}//1
来指代DCG中的常规Prolog谓词。
例如:
sentence --> [X, likes, Y], { likes(X, Y) }.
样品用量:
?- phrase(sentence, Ls). Ls = [mark, likes, julia].