如何将一些查询从sql转换为sparql?

时间:2017-03-21 20:43:08

标签: sql sparql

我刚刚学习Sparql,我有以下表格:

国家,欧洲国家,城市和首都

我想知道如何进行以下查询,因为我不理解它们......

1)哪个国家有城市"巴黎"作为资本。 2)打印所有欧洲国家 3)打印所有国家和地区的首都。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

这就是说,有DBpedia提供类似于描述的信息,并且是一个很好的游乐场。要查询它,http://yasgui.org(这是一个更好的sparql编辑器)或http://factforge.net/sparql(这是我们自己的集成,几个月,但有一些额外的好处)。

哪个国家/地区以“巴黎”为首都

select * {
  ?x a dbo:Country; dbo:capital dbr:Paris
}

yasgui结果会让您感到惊讶:

dbr:Bourbon_Restoration
dbr:France
dbr:Francia
dbr:French_Fifth_Republic
dbr:Kingdom_of_France
dbr:Office_International_d'Hygiène_Publique
dbr:Second_French_Empire
dbr:West_Francia

我了解所有历史悠久的王国,但dbr:Office_International_d'Hygiène_Publique有点令人震惊。原因是它是一个国际组织(uses Infobox Former International Organization,而redirects to https://en.wikipedia.org/wiki/Template:Infobox_former_country,“目前正与Template:Infobox国家合并”。请参阅http://mappings.dbpedia.org/index.php/Cleaning_up_Countries

factforge会从链接的数据集中返回更多结果(所有这些都意味着法国):

geodata:3017382/
http://ontologi.es/place/FR
http://psi.oasis-open.org/iso/3166/#250
leaks:country-FRA
wfr:fr

所有欧洲国家

那更好,因为恰好有维基百科类别:

select * {
  ?x a dbo:Country; dct:subject dbc:Countries_in_Europe
}

yasgui

所有国家/地区及其首都

select * {
  ?x a dbo:Country; dbo:capital ?capital
}

这将返回一堆历史悠久的国家和首都,以及一些国际组织,例如

League_of_Nations
International_Authority_for_the_Ruhr
Japanese_occupation_of_British_Borneo

那么,你可能会有更好的运气与维基数据(https://query.wikidata.org/)。在https://twitter.com/search?q=wikidatafacts%20country,您可以找到一系列与国家/地区相关的有趣查询。

维基数据上的国家和首都

select ?country ?countryLabel ?city ?cityLabel {
  ?country wdt:P36 ?city
  filter exists {?country wdt:P31/wdt:P279* wd:Q6256}
    SERVICE wikibase:label {
        bd:serviceParam wikibase:language "en,pl,ru,es" .
    }
} order by ?countryLabel

它使用了一堆QnnPnn但您可以在鼠标悬停时解码它们。

  • 我怎么发现wdt:P36意味着“资本”? Search for property:capital
  • 为什么filter exists?因为某个国家/地区可能有几个wd:Q6256“国家/地区”的子类型,如果我在主查询中使用该子类型,则会为每个国家/地区返回多个结果。这样它只返回一个。

<强>地图

您也可以轻松display it on a map

#defaultView:Map
select ?country ?countryLabel ?city ?cityLabel ?coords {
  ?country wdt:P36 ?city
  filter exists {?country wdt:P31/wdt:P279* wd:Q6256}
  ?city wdt:P625 ?coords
  SERVICE wikibase:label {bd:serviceParam wikibase:language "en,pl,ru,es"}
}

查看几张照片https://twitter.com/valexiev1/status/844870994942603264