Команда SubL "defining-mt" возвращает "NIL", когда существует определение микротеории
Я пытаюсь найти определяющую микротеорию для данной концепции Cyc. Для некоторых концепций команда "определения-mt" SubL возвращает "NIL", когда существует определение микротеории (это можно проверить с помощью предиката # $ definingMt).
Например:
- Суб-код (определение-mt #$Person) -> NIL
- цикл запроса (#$definingMt #$Person?MT) -> #$BiologyMt
Как в этом случае я могу сделать вывод команды "defining-mt" SubL # $ BiologyMt?
Я использую Research Cyc 4.0q KB.
1 ответ
Решение
Вы столкнулись с ситуацией, когда КБ опередил API. В этом конкретном случае, если вы посмотрите на обоснование запроса, вы увидите, что он обращается к правилу:
(implies
(and
(genls ?COLL ?TYPE)
(defaultDefiningMtForSpecs ?TYPE ?MT))
(definingMt ?COLL ?MT))
Код SubL, который вы используете, выполняет простой поиск, поэтому он не может воспользоваться этим правилом. Учитывая кодовую базу и KB, которые вы используете, лучше всего просто продолжать использовать полученный запрос.