【问题标题】:SPARQL query to retrieve countries population density from DBPedia从 DBPedia 检索国家人口密度的 SPARQL 查询
【发布时间】:2014-09-12 06:13:28
【问题描述】:

注意:这个问题不同于SPARQL query to retrieve countries population from DBpedia。这个问题是关于人口密度的understood by DBPedia itself

如何从 DBPedia 检索国家人口密度?

我尝试了以下方法,但 Virtuoso endpoint 返回一个空结果集:

PREFIX p: <http://dbpedia.org/property/>
SELECT DISTINCT ?name ?populationDensity
WHERE {
    ?country a dbpedia-owl:Country . 
    ?country rdfs:label ?name . 
    ?country p:populationDensity ?populationDensity . }

【问题讨论】:

    标签: sparql semantic-web dbpedia


    【解决方案1】:

    您当前的查询返回一个空表,因为没有 ?country 可以满足您的查询,该查询具有 rdf:type dbpedia-owl:Country(由 'a' 表示)。使用this query 进行检查。

    要查找确实使用您的 populationDensity 的数据集的 rdf:type 列表,您可以使用 this query。按照这个提示,您可以检查 Portugal 的所有属性,发现它确实有 populationDensity,但不是您使用的那个。

    This 工作:

    PREFIX dbpedia-ont-PP: <http://dbpedia.org/ontology/PopulatedPlace/>
    SELECT DISTINCT ?country ?populationDensity
    WHERE {
        ?country a dbpedia-owl:Country .
        ?country dbpedia-ont-PP:populationDensity ?populationDensity . 
    }
    

    【讨论】:

    • 请注意:我们通常对以http://dbpedia.org/ontology/ 开头的属性使用 dbpedia-owl: 前缀。不幸的是,在这种情况下,IRI 中还有另一个/,所以我们必须写dbpedia-owl:PopulatedPlace/populationDensity,这是不合法的(它与属性路径表示法有歧义)。选项是使用另一个前缀(如此处所做的),或完整地写出 IRI。
    • 是的,当我遇到那个前缀时,我总是定义另一个前缀......说实话,这种解决方法是非常糟糕的设计。
    • this question周围有一些讨论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多