我正在尝试在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,它可以生成句子,但我如何实现关系,以便主题(查尔斯,卡米拉,查理)对应于谓词部分(男人,女人)?
答案 0 :(得分:1)
您可以将DCG规则与Prolog谓词结合使用,如下所示
rpn --> [RPN], {rpn(RPN)}. /* relative pronoun */
rpn(that).
rpn(which).
rpn(who).
答案 1 :(得分: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]).
等等。