首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在graphdb回购中对多个数据集使用上下文

在graphdb回购中对多个数据集使用上下文
EN

Stack Overflow用户
提问于 2016-12-22 18:24:11
回答 2查看 997关注 0票数 3

我正在从事一项研究项目,其中正在研究牙齿修复程序(即填充物)的成功。我们正在收集一些牙科诊所的数据,我们将把所有数据聚合到一个GraphDB三重存储中。我的问题与如何使用GraphDB上下文有关,以便将所有数据存储在单个回购中,但仍然能够在需要时单独查询每个实践。我使用的是GraphDB的免费版本7.0.3和GraphDB工作台。

当我在回购中导入数据时,它给了我指定上下文的选项。我的理解是,这本质上是整个RDF图的一个子图。对吗?但我有点不确定这与基本URI有何不同。在示例页面中,基本URI和上下文都是相同的。

我对如何设置回购的一般想法是给它一个基URI,并保持每个实践数据集的基本URI相同,但是在加载每个实践时更改上下文。例如:

  • 要加载实践1数据: 基URI: www.example.com/牙科-实践/ 背景:www.example.com/牙科-实践/实践-1
  • 要加载实践2数据: 基URI: www.example.com/牙科-实践/ 背景:www.example.com/牙科-实践/实践-2
  • 要加载实践3数据: 基URI: www.example.com/牙科-实践/ 背景:www.example.com/牙科-实践/实践-3

..。等等..。

为了查询所有数据的聚合(我想),我将使用不指定图形的SPARQL查询。例如,要查找所有患者:

代码语言:javascript
复制
select ?patient where { ?patient rdf:type :Patient }

但是,我如何查询特定的实践呢?我是指定一个图形还是使用"from“键工作。例如:

代码语言:javascript
复制
select ?patient from <practice-1> where { ?patient rdf:type :Patient }

代码语言:javascript
复制
select ?patient where { graph <practice-1> { ?patient rdf:type :Patient } }

最后,有人知道哪里有解释如何有效使用上下文的页面/文档吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-02 00:06:10

您可以使用这两种方法来查询特定的图表。在本例中,GRAPH关键字和FROM关键字都做了大致相同的事情。但是,使用FROM-variant可能更快,因为为查询计划器优化这个变体稍微容易一些。

一些背景:在SPARQL中,FROM (和FROM NAMED)子句指定查询范围所在的数据集,而GRAPH关键字只是“放大”当前查询数据集的子集。如果省略了FROM子句,则在数据库的默认数据集上计算查询。在GraphDB中,默认的SPARQL数据集包含数据库中所有可用的命名图--这就是为什么在本例中使用Graph关键字和FROM关键字做同样的事情。注意,这是特定于存储的:其他数据库可以并且确实选择以不同的方式定义默认数据集。

顺便说一句:所有这些都与基本URI无关。基URI只是在解析输入数据中的相对URI引用时使用的一种语法机制。像GraphDB这样的RDF数据库实际上并不存储相对URI,因此解析器使用基本URI将数据中的任何相关URI转换为绝对URI,然后再将其添加到数据库中。

为了进一步阅读,我推荐GraphDB自己的查询行为文档。还有一个关于RDF4J编程文档中的命名图的章节-- GraphDB与RDF4J API紧密相连,因此它遵循了它的大多数约定。

票数 1
EN

Stack Overflow用户

发布于 2017-01-03 15:11:48

此外,在Jeen的回答中,我要补充的是,基URL是存储库的默认名称空间。默认情况下,值是空的,但是使用非空基URLs是个好主意,因为如果匿名(空白)节点出现,它将确保它们的唯一性。

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

https://stackoverflow.com/questions/41289538

复制
相关文章

相似问题

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