Полагаю, Дэвид Уиттен технически прав, то есть вы можете выполнить свою собственную функцию, называемую genls-p. Однако, имейте в виду, что в SubL уже есть функция, которая делает то, что вы хотите, чтобы genls-p делал (и это, вероятно, намного быстрее, чем функция, созданная вручную).
Эта функция называется "genls?".
Вот несколько примеров:
Если поставить ....
(genls? #$Automobile #$RoadVehicle)
... в некоторый интерпретатор SubL (например, в SubL Interactor в графическом интерфейсе) он вернет ...
T
.... Другими словами, если вы спросите Cyc "Является ли автомобиль подклассом дорожного транспортного средства?" оно ответит на Т, что означает «истина», т. е. «да».
Точно так же, если вы поставите что-то вроде ...
(genls? #$Automobile #$BaseKB)
... в интерпретатор SubL, он вернет ...
NIL
... Другими словами, если вы спросите его «Является ли автомобиль подклассом BaseKB, т.е. самым общим контекстом, который делает самые слабые предположения о вселенной», то Cyc ответит NIL, то есть False, то есть «Нет» .
Обратите внимание, что микротеории могут иногда приводить к запутанным результатам. Рассмотрим следующие иллюстративные примеры:
(genls? #$Ghost #$SupernaturalBeing) ==> NIL
Однако, если вы зададите этот вопрос в контексте с соответствующими предположениями, убеждениями о мире, в результате вы получите не NIL, а T. Например.
(with-mt #$WorldMythologyMt (genls? #$Ghost #$SupernaturalBeing)) ==> T
... В то время как в микротеории, которая является менее суеверной, более научной, такой как # $ LinnaeanTaxonomyPhysiologyMt, вы получите NIL, а не T в результате ...
(with-mt #$LinnaeanTaxonomyPhysiologyMt (genls? #$Ghost #$SupernaturalBeing)) ==> NIL
... и если вы спросите об этом в самой общей, самой слабой предположительной микротеории, известной как BaseKB, вы также получите NIL ....
(with-mt #$BaseKB (genls? #$Ghost #$SupernaturalBeing)) ==>
... Иногда вам захочется игнорировать сложности микротеорий и разрушать микротеории. Я думаю это один из способов сделать это ...
(with-all-mts (#$genls? #$Ghost #$SupernaturalBeing)) ==> T
... хотя имейте в виду, что вы можете получить противоречивые результаты. Например. Если бы у вас было ...
«Земля - плоский объект» в «микротеории верований плоской земли»
.. и ...
«Земля - круглый объект» в «Общей научной консенсусной микротеории»
... вы могли бы попросить Цикла ответить противоречивым ответом, что земля была как плоским, так и круглым объектом. В большинстве практических приложений. Вы можете просто не беспокоиться о таких противоречиях, и, таким образом, все-со-мтс - нормальная ставка.
Надеюсь, я вас не смутил.
Напомним, самый важный момент: если вы хотите достичь желаемой функциональности, это выражение SubL будет вам полезно ...
(genls? #$Automobile RoadVehicle)