2017-02-04 96 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 . 
}