无法使用 SPARQL 查询从 dbpedia 获取数据
Can't fetch data from dbpedia using SPARQL Query
我正在尝试使用以下代码从 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();
}
整个查询错误:
国家是DBpedia中的资源,因此,它们不会与谓词rdf:type
出现在对象位置的三元组中。这没有任何意义。
DBpedia的命名空间是http://dbpedia.org/resource/
示例查询是
SELECT * WHERE {
<http://dbpedia.org/resource/France> ?p ?o .
}
我正在尝试使用以下代码从 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();
}
整个查询错误:
国家是DBpedia中的资源,因此,它们不会与谓词
rdf:type
出现在对象位置的三元组中。这没有任何意义。DBpedia的命名空间是
http://dbpedia.org/resource/
示例查询是
SELECT * WHERE {
<http://dbpedia.org/resource/France> ?p ?o .
}