首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何存储本体的TBOX和ABOX ?推理应该在哪里进行?

如何存储本体的TBOX和ABOX ?推理应该在哪里进行?
EN

Stack Overflow用户
提问于 2019-05-28 23:13:08
回答 2查看 334关注 0票数 1

我正在研究一个语义IoT架构,它由一些服务和一些服务组成。目标是使用我在Protege上构建的本体添加语义注释。我还使用了在Ubuntu 18.04服务器上设置的Virtuoso 6,以及带有Pellet reasoner的Jena 3.6API (Java 8)。我知道最好的做法是将TBOX和ABOX分开,这样推理和SPARQL查询就会更快,但是我该如何使用Virtuoso做到这一点呢?那么,考虑到我在.owl文件中的本体以及我拥有的所有个体,我应该如何存储我的TBOX和ABOX,以及在什么阶段应该进行推理?

起初,我构建体系结构的方式是,每次我必须发出SPARQL请求时,我都会发送给Jena,Jena将依次获取上传到Virtuoso上的图形,然后使用reasoner进行查询,最终返回结果。

然而,我的教授并不同意这种方法,因为他说这种方法不够快,并建议我将我的体系结构更改为仅在必要时才进行推理的体系结构,而不是每次都必须进行SPARQL查询。因此,我在问如何使用Virtuoso (或任何其他三元组存储)以一种有效的方式来存储我的本体。

EN

回答 2

Stack Overflow用户

发布于 2019-05-29 10:29:19

Virtuoso支持命名图(因为它在RDF DBMS方面是一个RDF Quad存储)。

只需将TBox三元组加载到一个命名图中,然后将ABox三元组加载到另一个命名图中。

Virtuoso中的推理和推理以两种形式提供。在任何一种情况下,它都是由编译指示控制的;也就是说,您可以根据需要打开和关闭它:

关于Built-In Reasoning and Inference

  • Custom的
  1. 内置--请参阅关于Custom Reasoning and Inference

的这篇文章

注意:这两篇文章都用实例演示了Virtuoso方法的实用性。

票数 0
EN

Stack Overflow用户

发布于 2019-06-29 19:55:19

在IoT部署中,值通常不断变化,因此实时查询方法可能是合适的。因此,如果您暂时忽略了实时推理方面(也许您可以预先计算它,因为IoT部署的动态方面与您想要进行的推理无关),您可以使用如下查询:

代码语言:javascript
运行
复制
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX sosa: <http://www.w3.org/ns/sosa/>
SELECT ?value
FROM <http://my-fancy-iot-device/temperature-sensor-abox>
FROM <http://my-ldp-server/the-reasoned-tbox>
WHERE {
  ?x a ?sensor ; rdf:value ?value .     # from the 1st source and changes often
  ?sensor rdfs:subClassOf sosa:Sensor . # from the 2nd source and changes seldom
}

您需要一个SPARQL引擎来解释FROM部件中的图形名称,其方式是执行对该图形名称的HTTP请求,例如。roqet。推理也可以引入,但存在roqet是不够的。

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

https://stackoverflow.com/questions/56345266

复制
相关文章

相似问题

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