我想了解为什么我在Stardog和Protege推理之间获得不同的结果。Stardog和Protege之间的不同推理结果
我有两个工具以下本体:
数
Class: Number
Number DisjointUnionOf OddNumber,EvenNumber
OddNumber
OddNumber subClassOf Number
EvenNumber
EvenNumber subClassOf Number
EvenNumber EquivalentTo hasValue {"2", "4", "6" }
hasValue的
DataProperty: hasValue
hasValue Range xsd:string
hasValue SubPropertyOf: owl:topDataProperty
hasValue Domain Number
Functional: hasValue
然后,我创建两个实例称为NUM1和NUM2其被定义为如下:
NUM1
num1 hasValue "1"^^xsd:string
individual: num1
num1 Type Number
NUM2
num2 hasValue "2"^^xsd:string
individual: num2
num2 Type Number
当门徒和Stardog施加推理,这两个reasoners都表明num2是EvenNumber和Number的一个实例。 当使用num1的reasoners时,Protege说num1是OddNumber和Number的一个实例,而Stardog说num1只是Number的一个实例。
我需要Stardog将num1分类为OddNumber。我是否错过了一些限制以实现此行为?是否有可能配置Stardog的行为是这样的?
注意:默认情况下,默认情况下,我使用默认安装的Stardog(版本4.2.3)和Protege(版本5.1.0),推理器Hermit 1.3.8。
谢谢。
Stephen,谢谢你的回答。 我已经创建了数据库,stardog日志没有显示任何问题,你提到的限制,实际上它正好与实例num2(Stardog说是一个EvenNumber)。 我也尝试启用推理近似,但我得到了相同的结果,因为我在问题中提到(num1不被视为OddNumber的一个实例)。 – semanticuy