0

いくつかの述語に基づいて文を作成するように、プロローグで DCG を作成しようとしています。オブジェクトのプロパティ (「チャールズは男です」) とオブジェクト間の関係 (「チャールズはウィリアムの父です」) という 2 つの情報があります。

このような文章を作るのが課題です

[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) が述語部分 (is a man、is a woman) に対応するように関係を実装するにはどうすればよいですか?

4

2 に答える 2

1

次のように、DCG ルールを Prolog 述語と組み合わせることができます。

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

例はJRフィッシャーのチュートリアルから取られています

于 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 に答える