2016-04-10 48 views
4

目前,維基數據有一個SPARQL端點「https://query.wikidata.org/」,我想查詢使用耶拿(3.0.1)這個網站,我用下面的代碼,但我得到一個錯誤信息「端點返回內容類型:目前不支持SELECT查詢的text/html「。有沒有辦法解決它?相同的代碼適用於dbpedia。謝謝使用耶拿查詢維基數據

queryString = "PREFIX bd: <http://www.bigdata.com/rdf#>\n" + 
       "PREFIX wikibase: <http://wikiba.se/ontology#>\n" + 
       "PREFIX wdt: <http://www.wikidata.org/prop/direct/>\n" + 
       "PREFIX wd: <http://www.wikidata.org/entity/>\n" + 
       "SELECT DISTINCT ?country ?countryLabel\n" + 
       "WHERE\n" + 
       "{\n" + 
       "\t?country wdt:P31 wd:Q3624078 .\n" + 
       " ?country wdt:P1622 wd:Q13196750.\n" + 
       " ?country wdt:P30 wd:Q15\n" + 
       "\tFILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}\n" + 
       "\tSERVICE wikibase:label { bd:serviceParam wikibase:language \"en\" }\n" + 
       "}\n" + 
       "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(); 
     } 

回答

7

根據the documentation,端點的末尾有一個/ sparql。它說

SPARQL查詢可直接與GET請求提交給SPARQL端點https://query.wikidata.org/sparql?query={SPARQL}(POST和其他方法請求將與「403禁止」被拒絕)。如果查詢參數format = json或提供了Accept:application/sparql-results + json,則結果默認以XML格式返回,或以JSON格式返回。

+2

非常感謝您的幫助,將URL更改爲「https://query.wikidata.org/sparql」解決了此問題。 –