前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Wikidata】维基数据详解

【Wikidata】维基数据详解

作者头像
WZEARW
发布2018-06-05 16:34:36
3.9K0
发布2018-06-05 16:34:36
举报
文章被收录于专栏:专知专知

【导读】维基数据(Wikidata)是一个具有超过4600万个数据项的维基数据库,本文介绍了利用SPARQL方法对维基数据进行查询等操作,以便大家对维基数据有更深入的了解。

作者 | Björn Hartmann

编译 | 专知

参与 | Yingying, Xiaowen

Wiki数据简介

你听说维基数据吗? 可能你最先想到维基百科 - 这并没有错。 Wikidata也是维基媒体基金会的一个项目。

尤其是:

“Wikidata作为其维基媒体姊妹项目结构化数据的中央存储,包括维基百科(...)。”

可以将Wikidata看成具有超过4600万个数据项的维基数据库(2018年4月)。

根据维基媒体的使命,每个人都可以添加和编辑数据,并免费使用它。

可用的数据



像维基百科一样,维基数据中存储着各种数据。因此,当你正在寻找特定数据集或想要回答一个奇怪的问题时,可以先去维基数据找找。

示例问题:

什么是每个欧盟成员国的首都以及有多少居民住在那里?

诺贝尔物理学奖得主长什么样?

哪些国家使用112作为急救电话?

维基数据的优点和缺点



维基数据有一些特点:

• 它是一个自由开放的知识库,可以被人类和机器阅读和编辑

• 包含各种数据类型(例如文本,图像,数量,坐标,地理形状,日期)

• 它使用SPARQL查询

最后一条可能会让没用过SPARQL的逆陷入困境,但没关系,我们马上介绍它。

SPARQL的理念和概念



SPARQL是RDF数据库的查询语言。与SQL等关系数据库相比不同的是,项目不是任何表的一部分,而是像图表或网络一样相互链接的:

为了描述这些关系,我们可以使用三元组:

三元组是一个包含主语、谓语和宾语的语句。

例子: 德国(主语)有首都(谓语)柏林(宾语)。 柏林(主语)的坐标(谓语)为350万(宾语)。 欧盟(主语)有成员(谓语)德国(宾语)。 德国(主语)是(谓语)欧盟(宾语)的成员。 你可以拿出各种陈述来描述上面的图表。 这是SPARQL的一大优势。 不限于关系数据库的特定结构,并且可以轻松添加新信息。

如何查询维基数据中的数据?



要从维基数据中获取数据,只需使用三元组(如上所述)来编写SPARQL查询。 请注意,我们使用特定的标识符来定义正确的关系和项目:

代码语言:javascript
复制
SELECT ?country
WHERE 
{
  ?country   wdt:P463     wd:Q458.
  #country   #member of   #European Union
}

在这里,我们只要欧盟的国家。

我们只选择那些条件成立的国家:国家(?country)是欧洲联盟(wdt:P463)的成员(wd:Q458)。

使用Wikidata查询服务作为端点为我们提供了以下结果:

https://query.wikidata.org/

现在,我们只能获得成员国的标识码。 要查看国家/地区名称,我们只需使用标签服务并将其添加到我们的查询中:

代码语言:javascript
复制
SELECT ?country ?countryLabel
WHERE 
{
  ?country   wdt:P463          wd:Q458.
  SERVICE wikibase:label { bd:serviceParam wikibase:language
  "[AUTO_LANGUAGE],en". }
}

如何获得正确的标识符?



对于所有查询,正确确定的项目和关系是至关重要的。 为此,Wikidata使用特定的标识符。

在上面的例子中,我已经看过它们:“作为成员”的关系具有标识符wdt:P463,并且项目“欧盟”由wd:Q458标识。

但你如何得到它们?

我推荐的是查看查询结果的维基百科。 了解法国是欧盟的成员之一,我会检查其维基数据项目:

1. 在Wikipedia中打开法国以查看其Wikidata项目:

2. 检查WikiData项:

在这里,你只需将鼠标悬停在关系“成员”和“欧盟”项目上即可获得他们的标识码。

更多例子



你还记得引言中的问题吗? 下面的查询可以回答这些问题:

1. 什么是每个欧盟成员国的首都以及有多少居民住在那里?

代码语言:javascript
复制
SELECT ?country ?countryLabel ?capitalLabel ?population 
WHERE 
{
  ?country wdt:P463 wd:Q458.
  ?country wdt:P36 ?capital.
  ?capital wdt:P1082 ?population.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "   [AUTO_LANGUAGE],en". }
}

2.诺贝尔物理学奖得主长什么样?

代码语言:javascript
复制
# defaultView:ImageGrid
SELECT ?person ?personLabel ?image
WHERE
{
?person
wdt: P18 ?image;
wdt: P166
wd: Q38104.

    SERVICE
wikibase: label
{bd: serviceParam wikibase: language "[AUTO_LANGUAGE],en".}
}

3.哪些国家使用112作为紧急电话?

代码语言:javascript
复制
# defaultView:Map
SELECT ?country ?countryLabel ?location
WHERE
{
?country
wdt: P2852
wd: Q1061257;
wdt: P625 ?location.

    SERVICE
wikibase: label
{bd: serviceParam wikibase: language "en"}
}

参考链接:

https://towardsdatascience.com/a-brief-introduction-to-wikidata-bb4e66395eb1

-END-

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 专知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 示例问题:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档