维基数据查询服务简介

2020-10-19 13:53:08

跳转到导航跳转到搜索维基数据是一个知识库。您可以在我们的介绍页面上阅读关于Wikidata背后的理念和概念的介绍。

用来问类似维基数据问题的查询语言叫做SPARQL。如果这对你来说听起来太技术性和过于复杂,别担心。对于这个温和的介绍,你不必学习SPARQL。相反,我们将查看现有示例查询以及如何编辑它们。

查询是计算机系统可以理解和回答的一种特殊形式的问题。除非你与人工智能互动,否则你需要学习如何以某种方式表达你的问题。

哦,是的。任何人都可以使用Wikidata做任何事情,因为所有数据都在公共领域(CC0)中。

我们将从一个简单的示例开始,向您展示如何使用此服务,随着我们构建更详细的示例,您将获得基本问题的答案。答应我。

让我们来看一个简单的例子,演示如何获得世界上所有已知猫科动物的列表。

这给了我们一份互联网上所有著名和恶名昭彰的猫的名单-或者至少是维基数据知道的那些。这很棒,只要你是爱猫的人,而不是,比如说,喜欢狗的人。

如果您想要列出狗(或任何其他内容),有两种方法可以编辑您的查询:

手动编辑查询维基数据上的每一项都使用代码唯一标识。这个代码是Q146,代表“猫”。要找到“狗”的对应代码,你可以在维基数据上查找:

从打开的维基数据页面上记下“Dog”的项目编号(Q144)。

要将查询从“猫”更改为“狗”,只需在SPARQL查询编辑器中将Q146替换为Q144。

运行该程序,您将看到互联网上所有有名和臭名昭著的狗的名单。

现在,让我们分析代码来概括这一点,这样我们就可以搜索任何单个对象(例如,狗、行星、国家、歌曲):

选择查询选择某项内容。您要选择和显示的确切内容将在稍后描述,但目前您只需说明占位符(或变量)。在这里,它们被称为“物品”和“物品标签”。如果某物以问号开头,就可以看出它是一个变量。

这是我们要找的商品清单。在我们的情况下,那应该是著名的猫。维基数据上的项目有许多不同的语言,几乎有300种。因为我们不认为世界上的一切都是英语,而所有其他语言都只是英语的特例,所以物品的存储方式可以跨语言工作。每个概念都有一个数字。Q146是猫的概念,Q64是德国柏林,Q42是作家道格拉斯·亚当斯等等。提示:?Item只是一个变量名,我们决定在查询中使用它。它可以是任何东西,例如:?动物。

标签人类能比数字更好地消化人类语言中的名字。标签是人类语言中项目的名称,例如英语(或世界语、日语或祖鲁语…)。。我们希望在查询中显示标签,以便Q1371145显示为“SOCKS”(属于Bill Clinton及其家人的猫)。用户手册中有关标签服务的详细信息。

WHERE{这是查询的WHERE子句。这里我们定义占位符中的内容。WHERE子句以左大括号开头{以右大括号结束}。

WDT:p31这是主语的谓语。如果你将鼠标悬停在它上面,你会看到它代表着。

WD:Q146。这就是目标。如果你悬停在它上面,你会看到它代表猫。

所有这些都是相当冗长的。用自然语言表达查询可能会有所帮助:

“给我一个项目及其标签的列表,其中项目是CAT的实例。然后为物品生成英文标签。“。

通过我们在示例中使用的代码,我们向您展示了Internet上所有有名和恶名的猫的列表。例如,可以很容易地更改此查询以显示类似的狗列表。

下面的动画展示了如何用自然语言编写三元组,并将它们转换为SPARQL查询。

关键是用?作为变量的前缀,用wd:为项目加前缀,用wdt:为属性加前缀,然后使用Ctrl+Space(或Ctrl+Alt+Space或Alt+Enter)键盘快捷键激活自动完成功能,该功能会用实际的Wikidata标识符替换后两者。

使用此搜索查询工具,您不仅可以自定义和搜索简单或聚合、复合、嵌套和复杂的查询,还可以使用任何语言进行搜索并获得任何语言的结果。

将默认语言代码从“en”(英语)更改为任何其他语言代码,例如“ja”表示日语。

#Cats select?Item?itemLabel其中{?Item wdt:p31 wd:q146.。服务维基:Label{bd:serviceParam wikibase:language";ja";}}。

在界面中可以很容易地更改显示项目的顺序。只需单击搜索结果的相关列即可自定义排序顺序:

到目前为止,我们已经看到查询的输出显示为表。让我们尝试一些图片:

单击“示例”按钮并选择“更多的猫,带图片”示例。运行查询,应该会在屏幕的下半部分弹出CAT图像。

这就是将结果显示为图像而不是表格的方式。您可以使用结果右下角的“显示”菜单手动切换数据的显示方式。尝试将菜单切换到“表”,以便在表视图中查看相同的结果。

让我们来看看该查询与上一章中的查询相比有哪些新功能。用通俗易懂的英语写,查询应该是“给我所有与猫有关的物品。还要给我每件商品的图片。顺便说一下,将结果显示为图像网格,而不是表格。“

#defaultView:ImageGrid看起来像是注释,实际上是将查询结果显示为图像而不是表格的指令。

?x1这意味着我们查询任何谓词,而不仅仅是“is a instance of”。想想“描述”(第180页)或“以此命名”(第138页)这样的谓词。我们没有在查询中的其他任何地方使用?X1,这意味着占位符代表“我不在乎谓词是什么,给我所有以猫为主语的结果”

可选在大括号内,您可以看到另一条语句,该语句将可选数据添加到结果中。占位符?项被重用,并与谓词P18(表示“(HAS)image”和新的占位符?pic.。使用可选对语句进行包装意味着项不一定要有P18谓词才能显示在列表中,并且?ic占位符可以是空的。

寻找狗而不是猫。提示:更改WHERE中第一条语句的对象部分。

只展示“描绘”猫的物品(你会得到画)。提示:用其他代码替换?x1。

还有其他方法可以显示您的数据,但并不是所有的方法都适用,这就是为什么菜单中有些会灰显的原因。只有当结果数据实际包含图像URL时,“图像映射”才是可选的。在以下章节之一中,您将学习如何将项目显示为地图上的点。

如果你想与其他人分享你的查询--比如在社交媒体上--你可以为你的查询创建一个简短的链接。

有更多方法可以可视化查询结果。如果查询要求提供地理坐标,则可以在地图上显示结果。

看看这个挪威灯塔的例子。运行查询时,您将看到标记挪威海岸灯塔位置的红点。

加载查询结果后,您可以在每个结果上看到放大镜图标。单击此图标将打开资源管理器对话框。

默认情况下,资源管理器对话框显示表示该特定结果的单个节点。在节点下方,您可以看到一个默认为“Output”的切换。这意味着单击任何节点都将从整个Wikidata知识库展开该节点的所有属性。将其切换为“传入”允许您查看指向该节点的所有传入链接或属性。这是一种使用Wikidata探索各种项及其属性之间的所有关系的方法。

您可以一次打开多个资源管理器对话框,从而可以一次比较多个查询的结果。资源管理器对话框在右下角也有一个工具栏,用于在多个视图(如Graph、Tree、Map、Table等)之间切换。

在编辑器中,您可以在查询中的任何位置按Ctrl+空格键,并获得可能适合的代码建议;使用向上/向下箭头键选择正确的建议,然后按Enter键将其选中。

例如,不是写出服务wikibase:label{bd:serviceParam wikibase:language";en";。}每次只需输入server,按Ctrl+空格键,第一个建议就是完整的标签服务咒语,可以使用了!只需按Enter键接受即可。(格式会稍有不同,但这无关紧要。)。

自动完成功能还可以搜索您的信息。如果您键入某个Wikidata前缀,如wd:或wdt:,然后只需输入文本,Ctrl+Space将在Wikidata上搜索该文本并提供建议结果。WD:搜索项目,WDT:搜索属性。例如,您可以直接键入wd:bach和wdt:fath,然后从自动完成中选择正确的条目,而不是查找Johann Sebastian Bach和Parent的条目。(这甚至适用于文本中的空格,例如 G.wd:约翰·塞巴斯蒂安·巴赫。)。

您现在大概可以在维基数据查询服务中找到自己的路了。探索界面并更改查询中的值是学习如何在Wikidata上提出您自己的问题的好方法。