2017-02-04 98 views
0

我正嘗試使用以下代碼從dbpedia獲取有關國家/地區的信息。但是,我沒有得到任何。也是找到可能的信息的方式。無法使用SPARQL從dbpedia獲取數據查詢

public void getCountriesInformation() throws FileNotFoundException, IOException { 
    { 
     System.out.println(listOfCountries); 
     ParameterizedSparqlString qs = new ParameterizedSparqlString("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n " 
       + "SELECT * {  ?Subject rdf:type <http://dbpedia.org/page/" + listOfCountries.get(0) +"> .  ?Subject ?Predicate ?Object } ORDER BY ?Subject LIMIT 10000 OFFSET 10000"); 

     QueryExecution exec = QueryExecutionFactory.sparqlService("https://dbpedia.org/sparql", qs.asQuery()); 
     //exec.setTimeout(10000000); 
     exec.setTimeout(10, TimeUnit.MINUTES); 
     ResultSet results = exec.execSelect(); 
     ResultSetFormatter.outputAsCSV(new FileOutputStream(new File("C:/Users/leons/Desktop/CountryData.csv")), results); 
     //ResultSetFormatter.out(results); 
    } 
    //CSVCountryNameFetcher countryNameFetcher = new CSVCountryNameFetcher(); 
    //countryNameFetcher.fetchDataFromCSV(); 
} 
+0

您從哪裏有這樣的查詢? – AKSW

回答

1

整個查詢是錯誤的:

  1. 國家都在DBpedia中的資源,因此,他們不會在物體位置的三帶謂詞rdf:type發生。這沒有任何意義。

  2. DBpedia中的命名空間是http://dbpedia.org/resource/

示例查詢是

SELECT * WHERE { 
    <http://dbpedia.org/resource/France> ?p ?o . 
}