查找有关某个地方的信息

时间:2016-11-06 21:16:23

标签: sparql semantic-web dbpedia

我想找个地方的信息(例如:纽约http://dbpedia.org/page/New_York)。我试着获取最近的城市,博物馆等信息...... 我的请求没有返回任何内容......

String name = "New_York";
String s4 = "PREFIX  g:    <http://www.w3.org/2003/01/geo/wgs84_pos#>\n" +
            "PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
            "PREFIX  onto: <http://dbpedia.org/ontology/>\n" +
            "PREFIX dbpedia: <http://dbpedia.org/resource/>PREFIX dcterms: <http://purl.org/dc/terms/>\n"+
            "PREFIX dp: <http://dbpedia.org/resource/>\n"+
            "PREFIX dbprop: <http://dbpedia.org/property/>\n" +
            "PREFIX grs: <http://www.georss.org/georss/>\n"+
            "PREFIX dbpedia-oll: <http://dbpedia.org/ontology/> \n"+
            "PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>PREFIX category: <http://dbpedia.org/resource/Category:>\n"+
            "\n" +
            "SELECT ?nearestCity \n" +

            "WHERE\n" +
            "{ OPTIONAL{onto:"+name+" grs:nearestCity ?nearestCity .}\n"+
    "  }\n" +
            "LIMIT   300\n" +
            "";

1 个答案:

答案 0 :(得分:2)

您正在执行的查询存在一些问题:

1)有些名称空间错误:资源 New_York有URI:http://dbpedia.org/resource/New_York。在您的查询中,该查询将转换为"dbpedia:"+name而不是"onto:"+name

2)您要查找的属性指向资源New_York,而不是相反。例如,对于最近的城市1,这是有效的查询(请注意属性的名称空间):

SELECT  ?nearestCity where {
?nearestCity <http://dbpedia.org/property/nearestCity>  <http://dbpedia.org/resource/New_York>.
}LIMIT  300

(见results

对于博物馆:

SELECT  ?m where {
    ?m <http://dbpedia.org/ontology/museum>  <http://dbpedia.org/resource/New_York>.
    }LIMIT  300

(见results