首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stardog和Protege的推理结果不同

Stardog和Protege的推理结果不同
EN

Stack Overflow用户
提问于 2017-04-12 23:18:22
回答 1查看 214关注 0票数 3

我试图理解为什么我在Stardog和Protege推理中得到了不同的结果。

我在这两个工具中都有以下本体:

代码语言:javascript
复制
Class: Number

Number DisjointUnionOf OddNumber,EvenNumber

OddNumber

代码语言:javascript
复制
OddNumber subClassOf Number

EvenNumber

代码语言:javascript
复制
EvenNumber subClassOf Number

EvenNumber EquivalentTo hasValue {"2", "4", "6" }

hasValue

代码语言:javascript
复制
DataProperty: hasValue

hasValue Range xsd:string

hasValue SubPropertyOf: owl:topDataProperty

hasValue Domain Number

Functional: hasValue

然后我创建了两个名为num1和num2的实例,它们的定义如下:

num1

代码语言:javascript
复制
num1 hasValue "1"^^xsd:string

individual: num1

num1 Type Number

num2

代码语言:javascript
复制
num2 hasValue "2"^^xsd:string

individual: num2

num2 Type Number

当在Protege和Stardog中应用推理时,这两个推理都表明num2是EvenNumber和Number的一个实例。当使用num1进行推理时,Protege说num1是OddNumber和Number的一个实例,而Stardog说num1只是Number的一个实例。

我也需要Stardog将num1归类为OddNumber。为了实现这个行为,我是否遗漏了一些限制?是否可以将Stardog配置为这样的行为?

注意:我使用的是Stardog (4.2.3版)和Protege (5.1.0版)的默认安装,reasoner 1.3.8默认安装。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-04-13 03:21:46

Stardog没有返回任何结果的原因是,在您的本体(EvenNumber EquivalentTo hasValue {"2", "4", "6" })中存在一个不受支持的公理,它被忽略了。在您的stardog.log文件中应该有一行这样的内容。

有两种可能的解决方案:

使用

  1. Configure your Stardog server近似支持的公理,而不是忽略不支持的公理(通过reasoning.approximate=true)。不能保证这一点,但在这种情况下它可以工作。
  2. 将这个公理替换为一个受支持的公理;stardog rule可以很好地工作。

要获得更多帮助,请随时在Stardog community的支持论坛上发表帖子。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43373587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档