私はこの事実を持っています:
morpheme(a,82).
morpheme(r,83).
そして、私はこのルールを持っています:
foo(er,Start) :-
morpheme(a,Start), morpheme(r,I), I is Start+1,
not(morfema(_,J)), J is I+1.
クエリを尋ねると:
foo(er,82).
「真」(正解)ではなく「偽」(不正解)になりました。
クエリで、「開始位置 "Start" に形態素 AR があり、より高い位置 (Start+1 より高い) に形態素が存在しない場合、ルールを実行する」と言いました。
\+ と cut-fail (http://stackoverflow.com/questions/3850563/writing-prolog-statement-with-not-operator) を使用してみましたが、成功しませんでした:(
問題はルールの書き方にあると思います。
前もって感謝します!!!