实战 Wikipedia 与 Wikidata 知识图谱数据获取 (8)

内容预告

今天,我们深入探索如何从 Wikipedia 和 Wikidata 这两大公共知识图谱平台上提取数据。文章将首先解析 Wikidata 背后的复杂数据模型,通过具体案例来阐释其工作原理,继而详细指导您如何运用 SPARQL 语言,从 Wikidata 和 Wikipedia 获取所需数据。文末特别赠送一本精选的知识图谱开源书籍 📚。

DBpedia 历史简介

image.png
简要概述:DBpedia 的数据源自 Wikipedia 的信息框和文章,而 Wikidata 的数据则基于 DBpedia,进一步为 Wikipedia 提供信息支持。通过社区成员的持续贡献,这两个平台每年都在不断地丰富和更新数据。In short: Wikipedia → \rightarrow DBPedia → \rightarrow Wikidata。WikiData 的数据质量整体要比 DBpedia 上的要好

很多同学不知道如何从 WikiData 上获取数据主要有两个难点:

  1. 不了解 WikiData 的数据模型
  2. 因为 WikiData 奇怪的命名实体和属性的方式,让我们摸不着头脑

难点一:WikiData 数据模型

image.png
前缀命名空间介绍:
wd: Wikidata. 用于命名实体 URI 。比如 wd:Q317521 (埃隆马斯克)。
wdt: Wikidata Truth. 用于命名属性。比如 wdt:P26 (配偶)。

p: property. 用于命名某个属性(property) 的 Statement 节点 (Wikidata Statement 节点来连接所有跟某个属性相关的信息。相当于属性的注解)。比如 p:P26 (配偶的 Statement 节点)。
ps: property statement. 用于命名 Statement 节点值的属性,也就是用 wdt 为前缀的属性的值。比如 ps:P26 (配偶 Statement 节点的值,跟 wdt:P26 获取的值一样)。
pq: property qualifier. 用于命名描述 Statement 节点值的属性。

prov:wasDerivedFrom: 用于获取 Statement 节点的参考节点。也就是说这个 Statement 是根据什么网上的信息得来的。
pr: property reference. 用于命名参考节点信息的属性,比如参考链接 pr:P854

埃隆马斯克例子

我在埃隆马斯克 (他的 URI 是 wd:Q317521) 的 wikidata page: https://www.wikidata.org/wiki/Q317521 中截取了一段关于他第一任老婆 贾丝廷·威尔逊 (后改姓 Musk) 的信息。
image.png

SPARQL 查询从 Wikidata 获取埃隆马斯克所有老婆的信息

Wikidata 的查询入口: https://query.wikidata.org

SELECT ?spouseName ?marriageStartTime ?marriageEndTime ?referenceURL ?referenceRetrievedTime WHERE {
  wd:Q317521 p:P26 ?marriageStatement.
  ?marriageStatement ps:P26 ?spouse.
  ?spouse rdfs:label ?spouseName.
  OPTIONAL { ?marriageStatement pq:P580 ?marriageStartTime. }
  OPTIONAL { ?marriageStatement pq:P582 ?marriageEndTime. }
  OPTIONAL { 
    ?marriageStatement prov:wasDerivedFrom ?refNode.
    OPTIONAL { ?refNode pr:P854 ?referenceURL. }
    OPTIONAL { ?refNode pr:P813 ?referenceRetrievedTime. }
  }
  FILTER(LANG(?spouseName) = "en")
}

查询结果如下:
image.png

难点二:不知道属性的 URI

这里有三个方法帮助找到你想要的属性 URI

  1. 用 Propbrowse 查询 https://hay.toolforge.org/propbrowse/. 这个工具可以根据你给的关键猜你想要的属性 URI。比如 end time (P582)。这个方法比较宽泛。
    image.png
  2. 用 Wikidata Graph Builder https://angryloki.github.io/wikidata-graph-builder/. 输入 Wiki page link 后,可以像上面方法一样去根据关键词检索可用的属性 URI。这个方法可以针对具体的实体。
    image.png
  3. 用 SPARQL 直接搜。比如搜索所有以 埃隆马斯克 为主语,并且 prefix 为 wdt 的属性 URI。
SELECT DISTINCT ?p WHERE {
  wd:Q317521 ?p ?o .
  FILTER(STRSTARTS(STR(?p), STR(wdt:)))
}

SPARQL 查询获取 DBPedia 数据

DBPedia 的查询入口: https://dbpedia.org/sparql
首先搜索到埃隆马斯克的 DBpedia 页面 https://dbpedia.org/page/Elon_Mus.
可以推出他的 URI 是 http://dbpedia.org/resource/Elon_Musk
DBpedia 上的实体都是以 dbr 做为 prefix,属性都是以 dbo 或者 dbp 作为 prefix
image.png
这里可以直接看到他所有可用的属性 URI. 比 WikiData 来说,写 SPARQL 的难度低了很多。随便写一个,查找他的出生地和教育 :

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>

SELECT ?birthPlace ?edu WHERE {
  dbr:Elon_Musk dbo:birthPlace ?birthPlace . 
  dbr:Elon_Musk dbo:education ?edu
}

image.png
这里提示下,在 WikiData 和 DBpedia 上的查询,如果你使用它们的默认 prefix 名可以省略 PREFIX 语法. 这意味下面这个查询可以直接在 DBpedia 上执行。

SELECT ?birthPlace ?edu WHERE {
  dbr:Elon_Musk dbo:birthPlace ?birthPlace . 
  dbr:Elon_Musk dbo:education ?edu
}

文末送书 (开源的)

分享一本2021发布的好书 《Knowledge Graph》by Aidan Hogan 等。包含了知识图谱基础,知识图谱 deductive 和 inductive Inference,知识图谱创建和质量评估等内容。这是一本 open source 的书,大家可在公众号回复: 20240112 领取,省去科学上网。

之前的文章

知识图谱 (1)
本体论介绍 (2)
动手构建你的第一个知识图谱 by RDF (3)
图数据模型介绍 (4) 数学符号警告
SPARQL查询:如何高效检索Web数据 (5)
深入探索 SPARQL,复杂查询和聚合函数 (6)
用逻辑降维打击 SPARQL 查询:无痛写 NOT EXISTS (7)

不定期更新专业知识和有趣的东西,欢迎反馈、点赞、加星

您的鼓励和支持是我坚持创作的最大动力!ღ( ´・ᴗ・` )

参考

  1. https://en.wikibooks.org/wiki/SPARQL/WIKIDATA_Qualifiers,_References_and_Ranks
  2. Scientific Data Management & Knowledge Graph, by Maria-Esther Vidal
  3. DBPedia Endpoint: https://dbpedia.org/sparql
  4. Wikidata Endpoint: https://query.wikidata.org
  5. Wikidata Property Browser: https://tools.wmflabs.org/hay/propbrowse/
  6. Wikidata Graph Builder: https://angryloki.github.io/wikidata-graph-builder/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值