Prolog中的定句语法

Prolog中的定句语法,prolog,grammar,dcg,clause,Prolog,Grammar,Dcg,Clause,我试图在prolog中创建一个DCG,以便根据一些谓词创建一个句子。我有两条信息=物体的属性(“查尔斯是个男人”)和物体之间的关系(“查尔斯是威廉的父亲”) 任务是创造这样的句子 [charles,is,a,man] [camilla,is,a,woman] [camilla,is,the,wife,of,charles] [charles,is,the,father,of,william] [charles,is,the,husband,of,camilla] 我可以创建一个简单的DCG,它

我试图在prolog中创建一个DCG,以便根据一些谓词创建一个句子。我有两条信息=物体的属性(“查尔斯是个男人”)和物体之间的关系(“查尔斯是威廉的父亲”)

任务是创造这样的句子

[charles,is,a,man]
[camilla,is,a,woman]
[camilla,is,the,wife,of,charles]
[charles,is,the,father,of,william]
[charles,is,the,husband,of,camilla]
我可以创建一个简单的DCG,它可以生成句子,但是我如何实现这些关系,使主语(charles,camilla,charles)对应于谓语部分(是男人,是女人)


依此类推。

您可以将DCG规则与Prolog谓词组合在一起,如下所示

rpn --> [RPN], {rpn(RPN)}.   /* relative pronoun */
rpn(that).
rpn(which).
rpn(who).

示例取自

你的意思是问你如何记录查尔斯是男性名字而卡米拉是女性名字的信息吗?不,真的,更像是当我有谓语男子(查尔斯)和父亲(查尔斯,威廉)时,如何将其与DCG联系起来。
rpn --> [RPN], {rpn(RPN)}.   /* relative pronoun */
rpn(that).
rpn(which).
rpn(who).