Команда 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, которые вы используете, лучше всего просто продолжать использовать полученный запрос.

Другие вопросы по тегам