本文介紹了使用Jena查詢Wikidata的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
目前,Wikidata有一個SPARQL終結點”https://query.wikidata.org/”,我想使用Jena(3.0.1)查詢此站點,我使用了以下代碼,但我收到錯誤消息”終結點返回Content-Type:Text/html,這當前不支持SELECT查詢“。有沒有辦法解決這個問題?相同的代碼在DBpedia上運行得很好。謝謝
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的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,