質問回答Prologファイルの作成中に問題が発生しました。私は場所を含むデータベースを持っており、すでに質問を取得して回答を書き出すことができます。ただし、オブジェクトにはさまざまな種類があり、さまざまなプレフィックスが必要です。そこで、プレフィックスにDCGを定義しました。
answer(P,A) :- location(P, Str, Nr),A = [there, is, article(G,K,N,P), noun(G,K,N,P), pre(P),Str,Nr].
question(A) --> questionsentence(P),{answer(P,A)}.
pre(P) --> [in, P], {member(P, [road66])}.
pre(P) --> [at, P], {member(P, [trafalgarsquare])}.
しかし、私が得るものは次のようなものです:
?-question(A, [where,is,a,kentuckys],[]).
A = [there, is, article(_G2791, _G2792, _G2793, kentuckys), noun(_G2791, _G2792, _G2793, kentuckys), prep(kentuckys), road66, 123]
これは入力を正しく検証するために機能しますが、出力には役に立たないようです。句ではなく変数だけを取得するにはどうすればよいですか?