SPARQL查询从DBPedia检索国家人口密度

SPARQL查询从DBPedia检索国家人口密度,sparql,semantic-web,dbpedia,Sparql,Semantic Web,Dbpedia,注:此问题不同于。这个问题是关于人口密度的 如何从DBPedia检索国家人口密度 我尝试了以下操作,但返回一个空结果集: PREFIX p: <http://dbpedia.org/property/> SELECT DISTINCT ?name ?populationDensity WHERE { ?country a dbpedia-owl:Country . ?country rdfs:label ?name . ?country p:populat

注:此问题不同于。这个问题是关于人口密度的

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

我尝试了以下操作,但返回一个空结果集:

PREFIX p: <http://dbpedia.org/property/>
SELECT DISTINCT ?name ?populationDensity
WHERE {
    ?country a dbpedia-owl:Country . 
    ?country rdfs:label ?name . 
    ?country p:populationDensity ?populationDensity . }
前缀p:
选择不同的?名称?填充密度
在哪里{
?国家a数据库猫头鹰:国家。
?国家RDF:标签?名称。
?国家p:人口密度?人口密度。}

您当前的查询返回一个空表,因为不存在满足您的查询的rdf:type dbpedia owl:country(由表示)的?country。请跟我核对一下

要查找rdf的列表,请键入您可以使用的使用populationDensity的数据集。根据这条线索,您可以检查所有属性,发现它确实有populationDensity,但没有您使用的那个

作品:

前缀dbpedia ont PP: 选择不同的?国家?人口密度 在哪里{ ?国家a数据库猫头鹰:国家。 ?国家数据库ont PP:人口密度?人口密度。 }
请注意:对于以
开头的属性,我们通常使用dbpedia owl:前缀http://dbpedia.org/ontology/
。不幸的是,在本例中,IRI中还有另一个
/
,因此我们必须编写
dbpedia owl:PopulatedPlace/populationDensity
,这是不合法的(它与属性路径表示法不明确)。选项是要么使用另一个前缀(如这里所做的),要么完整地写出IRI。是的,当我遇到这个问题时,我总是定义另一个前缀。。。老实说,这是一个非常糟糕的设计,这种解决方案是必要的。关于它,有一些讨论。
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 . 
}