首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ARQ jena查询多个表?

如何使用ARQ jena查询多个表?
EN

Stack Overflow用户
提问于 2015-05-19 08:21:28
回答 1查看 378关注 0票数 0

概述

我使用ARQ来查询本地RDF文件。该查询应用于5个文件,这些文件是:

  • a_m.nt,description.nt,labels.nt,links.nt,literals.nt

信息被建模为一组三元组:

  • 主语谓词对象

算法

首先,我想从a_m.nt文件中选择特定的主题。其次,我想从description.ntlabels.nt中选择所选主题的标签和描述。以另一种方式,搜索description.ntlabels.nt,查找与从a_m.nt提取的主题相同的描述和标签。最后,我想从、links.nt、和中提取其余的属性。

查询

代码语言:javascript
复制
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

select ?x ?y ?p ?o
where { 
?topic rdf:type music. 
?topic rdf:description ?x.
?topic rdf:label ?y. 
?topic ?p ?o. 
}

命令行

代码语言:javascript
复制
sparql --data a_m.nt --data description.nt --data label.nt --data links.nt --data literals.nt --query query_sparql

问题

通过使用这个查询,我首先选择一个具有music类型的主题,然后选择它的描述、标签和其他属性。对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-19 10:03:57

在当前的查询中,您似乎不需要where子句中的所有绑定,因为您无论如何都要使用最后一个语句?topic ?p ?o检索所有这些绑定。您需要正确命名music变量,并可能将DISTINCT添加到select子句中。因此,也许可以这样重写查询:

代码语言:javascript
复制
PREFIX : <http://example.org/>
select DISTINCT ?topic ?p ?o
where { 
  ?topic a :music. 
  ?topic ?p ?o. 
}

一个可能的结果可能是:

代码语言:javascript
复制
<foo> <type> <music>
<foo> <description> "this is foo"
<foo> <label> "foo"
<bar> <type> <music>
<bar> <label> "bar"

这与您的查询不同,更一般。基本上,您将获得music类型的所有内容以及与它们相关的所有属性和值。在查询中,您只能获得具有某些描述和标签(并具有music类型)的结果,以及与它们关联的所有属性和值:

代码语言:javascript
复制
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX : <http://example.org/>
select ?x ?y ?p ?o
where { 
  ?topic rdf:type :music. 
  ?topic rdf:description ?x.
  ?topic rdf:label ?y. 
  ?topic ?p ?o. 
}

把它想象成一个表,其中?x ?y ?p ?o是列标题。一个可能的结果可能是:

代码语言:javascript
复制
"this is foo" "foo" <type> <music>
"this is foo" "foo" <description> "this is foo"
"this is foo" "foo" <label> "foo"

等。

查询将取决于数据的组织方式。我的问题是,在description.ntlabels.nt中是否还有您希望在结果中避免的其他属性?如果是这样的话,那么您可能希望将数据加载到命名图中,并且只从查询中的图中提取描述和标签。任意的例子:

代码语言:javascript
复制
SELECT ?a ?b
FROM <A>
FROM NAMED <B>
WHERE
{
  ?x a <foo> .
  GRAPH <B> { ?x ?a ?b }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30320277

复制
相关文章

相似问题

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