首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在联邦查询上构造RDF图?

在联邦查询上构造RDF图?
EN

Stack Overflow用户
提问于 2018-05-29 20:35:36
回答 1查看 209关注 0票数 0

我是第一次接触SPARQL和RDF。基本上,我必须设计基于Wikidata和Dbpedia的联邦SPARQL1.1查询。

下面是我的简单查询。这将选择莱昂纳多·迪·卡普里奥主演的电影。

代码语言:javascript
复制
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbr: <http://dbpedia.org/resource/> 
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?film WHERE {
  {
    SELECT ?film WHERE {
        ?film  wdt:P161 wd:Q38111.
    }
  }
  UNION 
  {
    SELECT ?film WHERE {
       ?film rdf:type dbo:Film .
       ?film dbo:starring dbr:Leonardo_DiCaprio .
    }
  }
}

我必须在上面构建一个图表。有没有人能帮我解决这类问题?我正在Apache Jena上测试它。

EN

回答 1

Stack Overflow用户

发布于 2018-05-29 21:09:55

在SPARQL中,SELECT查询将给出一个形式化为表格的答案。

要获得三元组,您需要使用CONSTRUCT查询,因此需要在它们上创建一个图。

有了CONSTRUCT查询的响应,您只需将语句添加到图中。

代码语言:javascript
复制
Graph graph = GraphFactory.createDefaultGraph(); // Create an empty graph

String queryString = "CONSTRUCT { ?s ?p ?o } WHERE ..."

// ... Depends on which way you want to query the dataset
QueryExecution qexec = QueryExecutionFactory.create(queryString, ...) 

Iterator<Triple> triples = qexec.execConstructTriples();

while(triples.hasnext()){
  graph.add(triples.next())
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50584568

复制
相关文章

相似问题

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