DBpedia入门

时间:2018-02-14 15:36:21

标签: sparql dbpedia

我想开始使用DBpedia。目前我所知道的是,DBpedia是维基百科数据的结构化形式,可以使用SPARQL进行查询。对我来说,DBpedia的基本思想(给维基百科数据提供结构)看起来真的太棒了,所以如果我的问题是基本的话,请放轻松。

我的目标

从DBpedia获取简单的数据摘录。例如世界各国及其首都和人口。或者获得100名随机名人,他们的日期和出生地以及简短的描述。最后,我想查询元数据,找出哪些类型的'实体'是在DBpedia(例如山脉?里弗斯?城市?)和他们的属性'。但这是一个单独的问题,一旦我掌握了基础知识,我就可以进行实验。

到目前为止我找到了

在Google中我找到http://wiki.dbpedia.org/develop/getting-started,但我认为它是关于安装所有DBpedia的,我只想查询它。

此外我发现https://mickael.kerjean.me/2016/05/20/walkthrough-dbpedia-and-triplestore/但它假设您已经设置了SPARQL或SNORQL,我无法看到如何执行此操作。

Aso我发现https://docs.data.world/tutorials/sparql/Your_First_Sparql_Query.html是SPARQL的指南,但它再次假设您使用的是自己的DataWorld环境。

在Stackoverflow上,我找到了List countries from DBpediaList countries from DBpedia,但他们再次假设您已经设置了SPARQL环境。

问题(S)

  1. 我使用什么软件来编写关于DBpedia数据的简单查询 - 我需要SPARQL还是SNORQL?我是在本地安装还是使用基于Web的工具?我使用的是Windows 10,我对SQL查询感到满意。
  2. 一旦我设置了软件,获取世界各国和首都及人口名单的最简单查询是什么?
  3. 另外,我如何编写一个基本查询来返回(比方说)100个随机人及其基本细节?

2 个答案:

答案 0 :(得分:7)

关于您的第一个问题的答案,实际上SPARQL是一种查询语言而非软件,您可以在此处https://dbpedia.org/sparql编写查询。

为了获得国家,资本和各自的人口:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT  min(?country_name) as ?Country_name min(?capital_name) as ?Capital_name min(?population) as ?Population
WHERE {
?country a dbo:Country.
?country rdfs:label ?country_name.
?country dbo:capital ?capital.
?capital  rdfs:label ?capital_name.
?country ?p ?population .
FILTER(?p = dbo:populationTotal || ?p = dbp:populationCensus). 
FILTER NOT EXISTS { ?country dbo:dissolutionYear ?year }
FILTER langMatches( lang(?country_name), "en"  ).
FILTER langMatches( lang(?capital_name), "en"  ).}
GROUP BY ?country_name

对于您的第三个问题,这是一个示例解决方案:

SELECT  distinct ?link ?person_full_name ?birth_year   WHERE { 
     ?link a foaf:Person. 
     ?link ?p ?person_full_name. 
     FILTER(?p IN(dbo:birthName,dbp:birthName,dbp:fullname,dbp:name)). 
     ?link rdfs:label ?person_name .    
     ?person_name bif:contains "abdul" . 
     OPTIONAL { ?link dbo:birthYear ?birth_year .  }
     FILTER(langMatches(lang(?person_full_name), "en"))
     }
     LIMIT 100

答案 1 :(得分:1)

结帐About DBpediaUsing DBpedia

另外