gpt4 book ai didi

java - 在联合查询上构建 RDF 图?

转载 作者:行者123 更新时间:2023-12-02 11:11:32 25 4
gpt4 key购买 nike

我是 SPARQL 和 RDF 的新手。基本上,我必须通过 Wikidata 和 Dbpedia 设计联合 SPARQL 1.1 查询。

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

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 上测试它。

最佳答案

在 SPARQL 中,SELECT 查询将为您提供形式化为表格的答案。

要获取三元组,您需要使用 CONSTRUCT 查询,从而在它们上创建图表。

通过 CONSTRUCT 查询的响应,您只需将语句添加到图表中即可。

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())
}

关于java - 在联合查询上构建 RDF 图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50584568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com