Use Jena to query wikidata(使用Jena查询Wikidata)
问题描述
目前,Wikidata有一个SPARQL终结点"https://query.wikidata.org/",我想使用Jena(3.0.1)查询此站点,我使用了以下代码,但我收到错误消息"终结点返回Content-Type:Text/html,这当前不支持SELECT查询"。有没有办法解决这个问题?相同的代码在DBpedia上运行得很好。谢谢
java">queryString = "PREFIX bd: <http://www.bigdata.com/rdf#>
" +
"PREFIX wikibase: <http://wikiba.se/ontology#>
" +
"PREFIX wdt: <http://www.wikidata.org/prop/direct/>
" +
"PREFIX wd: <http://www.wikidata.org/entity/>
" +
"SELECT DISTINCT ?country ?countryLabel
" +
"WHERE
" +
"{
" +
" ?country wdt:P31 wd:Q3624078 .
" +
" ?country wdt:P1622 wd:Q13196750.
" +
" ?country wdt:P30 wd:Q15
" +
" FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}
" +
" SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
" +
"}
" +
"ORDER BY ?countryLabel";
query = QueryFactory.create(queryString);
qexec = QueryExecutionFactory.sparqlService("https://query.wikidata.org/", queryString);
try {
ResultSet results = qexec.execSelect();
ResultSetFormatter.out(System.out, results, query);
} catch (Exception ex) {
System.out.println(ex.getMessage());
} finally {
qexec.close();
}
推荐答案
根据the documentation,终结点的末尾有一个/SPARQL。上面写着
SPARQL查询可以通过对
https://query.wikidata.org/sparql?query={SPARQL}
的GET请求直接提交到SPARQL端点(POST和其他方法请求将被拒绝,并带有"403禁止")。默认情况下,结果以XML形式返回,如果提供了查询参数Format=json或头文件Accept:Application/SPARQL-Results+json,则以JSON形式返回。
这篇关于使用Jena查询Wikidata的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用Jena查询Wikidata
基础教程推荐
- 如何对 HashSet 进行排序? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01