Prologの宿題片付けます
■ このスレッドは過去ログ倉庫に格納されています
010493
2010/06/07(月) 17:21:16では、以降からは知識ベースの記述を始めます。まず基礎のファクトを書きます。
人物(為義). % 為義という人物が存在する。
人物(義朝). % 義朝という人物が存在する。
人物(頼朝). % 頼朝という人物が存在する。
ここで、「親-子」と「先祖-子孫」を(関係ではなく)エンティティとして認識した上で、
ファクトとして書いてみます。
関係(親_子). % 親-子という関係が存在する。
関係(先祖_子孫). % 先祖-子孫という関係が存在する。
関係(親_子, 為義, 義朝). % 為義と義朝の間には親-子という関係が存在する。
関係(親_子, 義朝, 頼朝). % 義朝と頼朝の間には親-子という関係が存在する。
これらファクトを前提にルールを書きます。
関係(先祖_子孫, A, B) :- 人物(A), 人物(B), A¥=B, 関係(親_子, A, B).
% あるA, Bについて、AおよびBという人物が存在し、
% かつAとBの間に親-子という関係が存在するならば、
% AとBの間には先祖-子孫という関係が存在する。
関係(先祖_子孫, A, B) :-
人物(A), 人物(B), 人物(C), A ¥= B, B ¥= C, A ¥= C,
関係(親_子, A, C), 関係(先祖_子孫, C, B).
% あるA, Bについて、A、BおよびCという人物が存在し、
% かつAとCの間に親-子という関係が存在し、
% かつCとBの間に先祖-子孫という関係が存在するならば、
% AとBの間にも先祖-子孫という関係が存在する。
(まだ続く)
■ このスレッドは過去ログ倉庫に格納されています