-1

我尝试从特殊的经度和纬度获取所有 POI。

你能给我一个提示以获得更好的结果吗?我现在在我的结果集中得到了:Germany和之类的主题。:M-Bahn

这是我的java代码:

public class DBPedia_SparqSql {

  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    float YOUR_LONG = 13.380834f;
    float YOUR_LAT = 52.516388f;
    float radius = 0.01f;
    String sparqlQueryString1= "PREFIX owl: <http://www.w3.org/2002/07/owl#> "+
    "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> "+
    "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+
    "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+
    "PREFIX foaf: <http://xmlns.com/foaf/0.1/> "+
    "PREFIX dc: <http://purl.org/dc/elements/1.1/> "+
    "PREFIX : <http://dbpedia.org/resource/> "+
    "PREFIX dbpedia2: <http://dbpedia.org/property/> "+
    "PREFIX dbpedia: <http://dbpedia.org/> "+
    "PREFIX skos: <http://www.w3.org/2004/02/skos/core#> "+
    "PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> "+
    "PREFIX onto: <http://dbpedia.org/ontology/> " +
    "PREFIX dcterms: <http://purl.org/dc/terms/> "+
    "SELECT DISTINCT ?s ?sub ?long ?lat WHERE {"+
    "?s a onto:Place . "+
    "?s geo:lat ?lat . "+
    "?s geo:long ?long . " +
    "?s dcterms:subject ?sub "+
    " FILTER ( ?long > "+(YOUR_LONG-radius)+"&& ?long < "+(YOUR_LONG+radius)+" && ?lat > "+(YOUR_LAT-radius)+" && ?lat < "+(YOUR_LAT+radius)+")}"+
    "LIMIT 200";
    System.out.println(sparqlQueryString1);

    Query query = QueryFactory.create(sparqlQueryString1);
    QueryExecution qexec = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query);

    ResultSet results = qexec.execSelect();
    ResultSetFormatter.out(System.out, results, query);       

    qexec.close() ;
  }

}
4

1 回答 1

1

这在一定程度上取决于您对“更好”的含义。您正在寻找的是一个区分特征,一些“好”结果确实具有的属性,而“坏”结果则没有(或相反)。

找出要查询的属性的一个好方法是访问特定主题的 DBPedia 资源页面,看看那里有什么。德国的页面显示了 DBPedia 所知道的关于该主题的所有信息:它是一个国家,它的人口规模是多少,等等。

一个很好的属性是rdf:type属性。查看您想要返回的结果是否共享一些价值,然后将其添加到您的查询中。但是您也可以使用其他(组合)属性。我不能告诉你这些属性或值应该是什么,只有你知道你自己的用例。

于 2012-06-17T20:18:18.447 回答