人間 =< 哺乳類;; 哺乳類/[呼吸 = 肺, 体温 = 定温];;と書くことによって哺乳類の属性が人間に受け継がれるますよね。 ところがこれを 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 を使われたら、すぐにお気づきになると思いますが、 モードの初期値は、「継承なし」になっていますので、ご注意下さい。
[A2] はい、 同じデータベースに関して、次のモードの変更時まで有効です。
[A3] 「big-Quixote システム利用マニュアル」の 2.3.4.16 qxt-get-default-mode 2.3.4.17 qxt-set-default-mode を御覧下さい。