我正在尝试为给定的Cyc概念查找定义微理论。对于某些概念,当定义微理论存在时,”defining-mt” SubL命令确实会返回”NIL”(可以通过#$definingMt谓词进行验证)。
例如:
- subl代码 (defining-mt #$Person) -> NIL
- cyc查询 (#$definingMt #$Person ?MT) -> #$BiologyMt
在这种情况下,我如何让”defining-mt” SubL命令输出#$BiologyMt?
我使用的是Research Cyc 4.0q KB。
回答:
您遇到的情况是知识库(KB)已经超前于API。在这个特定情况下,如果您查看查询的理由,您会发现它引用了一条规则:
(implies (and (genls ?COLL ?TYPE) (defaultDefiningMtForSpecs ?TYPE ?MT)) (definingMt ?COLL ?MT))
您使用的SubL代码只是进行简单查找,因此无法利用这条规则。鉴于您使用的代码库和知识库,您最好的选择是继续使用您已有的查询。