0

我正在尝试在序言中制作一个 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,但是我如何实现关系,以便主语(查尔斯、卡米拉、查尔斯)对应于谓词部分(是男人,是女人)?

4

2 回答 2

1

您可以将 DCG 规则与 Prolog 谓词组合如下

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

示例取自JR Fisher 的教程

于 2012-05-28T17:23:54.470 回答
0
zdanie --> person, " ", iss, " ", animal, ".".

 man --> "adam" or "john".
women --> "eve" or "travolta".
iss --> "is".
animal --> "dog" or "cat" or "bird".

sentence(Z) :-
   phrase(zdanie, [I|R]),
   code_type(I, to_lower(J)),
   atom_codes(Z, [0' , J|R]).

等等。

于 2012-05-28T17:10:55.223 回答