DBpedia入门

Ube*_*der 5 sparql dbpedia

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

我的目标

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

到目前为止我发现了什么

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

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

麻生太郎我找到了https://docs.data.world/tutorials/sparql/Your_First_Sparql_Query.html这是SPARQL的指南,但它再次假设你正在使用他们自己的DataWorld环境.

在Stackoverflow上,我从DBpedia找到了来自DBpediaList国家的列表国家,但他们再次假设您已经设置了SPARQL环境.

问题(S)

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

Shu*_*ngi 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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)