[Q] 属性継承ができません。
[Q1] Quixoteでは
人間 =< 哺乳類;;
哺乳類/[呼吸 = 肺, 体温 = 定温];;
と書くことによって哺乳類の属性が人間に受け継がれるますよね。
ところがこれを big-Quixote を使って、プログラムのなかで
確かめるにはどうすればいいのでしょう。
[A1] 以下のようにしてみて下さい。
-----------------------------------------------------------
&program;;
&subsumption;;
人間 =< 哺乳類;;
&rule;;
哺乳類/[呼吸 = 肺, 体温 = 定温];;
人間;;
&end.
-----------------------------------------------------------
ここで、人間;; がないと、?- 人間/… と聞いた時に
fail しますので、注意して下さい。
さて、継承を実行させる方法ですが、マニュアルなどが分かり難く、
大変恐縮 (__) なのですが、Quixote では
モードを設定する(qxt-set-default-mode)
あるいは、
質問に &q_mode[&inheritance=&all] などを付加する
という、2つの方法があります。
例えば、
===========================================================
?- 人間/[呼吸 = X, 体温 = Y];;&q_mode[&inheritance=&all].
===========================================================
のように、問い合わせに付加する方法を実行すると、
答えは、
-----------------------------------------------------------
database> ** 1 answer exists **
** Answer 1 **
X =< 肺, Y =< 定温
database>
-----------------------------------------------------------
となります。
Quixote の継承は、
o =< p ===> o.l =< p.l
で、定義しているので、(X=肺、Y=定温 ではなく)上記の答えになります。
又、Quixote を使われたら、すぐにお気づきになると思いますが、
モードの初期値は、「継承なし」になっていますので、ご注意下さい。
[Q2] 質問にいちいち &q_mode[…] を付け加えるのはめんどうですが、
モード設定を1度すれば後はそのまま何回か質問ができますか?
[A2] はい、
同じデータベースに関して、次のモードの変更時まで有効です。
[Q3] それから、もう1つ。これらに関してはマニュアルのどこを見れば
分りますか?
[A3] 「big-Quixote システム利用マニュアル」の
2.3.4.16 qxt-get-default-mode
2.3.4.17 qxt-set-default-mode
を御覧下さい。