Freebase 的基本概念

本文简单介绍使用 Freebase 需要了解的基本术语和概念。 注意,Freebase 是已经被废弃的知识库。

Freebase 的数据被存储在一个叫做图的数据结构中。一个图由边连接的结点组成。在 Freebase 中,结点使用 /type/object 定义,边使用 /type/link 定义。通过以图的形式存储数据,Freebase 可以快速遍历主题(topic)之间的任意连接,并轻松添加新的模式(schema),而无需改变数据的结构。

主题

Freebase 有超过 3900 万个关于真实世界的实体,例如人、地点和事物。由于 Freebase 的数据由图表示,这些主题对应图中的结点。然而,不是每个结点都是主题。CVT 就是这样一个例子,它不是主题但是结点。

关于 Freebase 主题类型的例子:

  • 物理实体,例如 Bob Dylan, the Louvre Museum, the Saturn planet
  • 艺术/媒体产品,例如 The Dark Knight (film), Hotel California (song)
  • 分类,例如 noble gas, Chordate
  • 抽象概念,例如 love
  • 思想流派或艺术运动,例如 Impressionism

有些主题之所以显著,是因为它们包含了很多数据(如,沃尔玛);有些主题之所以显著,是因为它们与很多其他主题有联系,可能是不同领域的信息。例如,爱情、贫穷、侠义等抽象话题并没有太多属性与之相关,但它们经常作为图书题材、诗歌题材、电影题材等出现,使得它们更值得注意。

类型和属性

任何一个主题都可以从很多不同的角度来看待,例如:

  • 鲍勃·迪伦是一个作家、歌手、表演者、书籍作者和电影演员。
  • 达芬奇是画家、雕塑家、解剖学家、建筑师、工程师。
  • 爱情是书籍题材、电影题材、游戏题材、诗歌题材。
  • 任何一个城市都是一个地点,有可能是一个旅游胜地,也是公务员的雇主。

为了把握许多主题的这种多面性,Freebase 中引入了类型的概念。Freebase 的主题可以分配有任意数量的类型,例如,鲍勃·迪伦被分配为歌曲作者类型、音乐作曲家类型、音乐艺术家类型、书籍作者类型。每种类型都带有一组与该类型相关的不同属性,例如:

  • 音乐艺术家类型包含一个属性,列出了鲍勃-迪伦制作的所有专辑,以及他所掌握的所有乐器。
  • 书籍作者类型包含一个属性,列出鲍勃-迪伦编写过的所有书籍,以及他的写作流派的思想或运动。
  • 公司类型包含许多属性,用于列出公司的创始人、董事会成员、母公司、部门、员工、产品、每年的收入和利润记录等。

因此,一个类型可以被认为是一个概念性的容器,它包含了描述某方面信息时最常用的属性。 你可以把一个类型看成类似于一个关系表,每个 "类型" 表都有一个外键进入一个 "身份" 表,该表唯一地定义了每个主题。

域和 ID

就像属性被归为类型一样,类型本身也被归为域。把域想象成你最喜欢的报纸上的栏目。 商业,生活方式,艺术和娱乐,政治,经济等。每一个域都有一个 ID(标识符),例如:

  • /business 是商业领域的 ID
  • /music 音乐领域
  • /film 电影领域
  • /medicine 医药领域

域的标识符如同文件路径,或 Web 地址的路径。

每个类型也被分配一个标识符,该标识符基于它所属的域。例如,

  • /business/company,Company 类型属于 Business 域。
  • /music/album
  • /film/actor
  • /medicine/disease

正如一个类型从它的域继承它的 ID 开头一样,一个属性也从它所属的类型继承它的 ID 开头。例如,公司类型的行业属性(用于指定公司所在的行业)被赋予了 ID /business/company/industry。下面是其他一些例子:

  • /automotive/engine/horsepower
  • /astronomy/star/planet_s
  • /language/human_language/writing_system

因此,即使类型在 Freebase 中没有被安排成层次结构;域、类型和属性在概念上被赋予 ID,以类似文件目录的层次结构来安排。

复合值类型

复合值类型是 Freebase 中的一种类型,用于表示每个条目由多个字段组成的数据。

考虑这样一个例子,一个城市的人口会随着时间变化,即每次查询 Freebase 中的人口数据时,隐含地是在询问某个日期的人口。这涉及到两个 value,一个是人口数量,一个是日期。在这种情况下,CVT 就非常有效。如果没有 CVT,对人口数据进行建模,需要添加一个主题,将其命名为类似于“1997 年的温哥华人口”的名称,然后在此提交数据。

CVT 可以被认为是一个不需要展示名称的主题,和普通主题一样有一个 GUID,可以被独立引用。然而,Freebase 客户端对 CVT 的处理方式与主题有很大不同。多数情况下,CVT 的每个属性都是非歧义属性。

主题的机器标识符 MID

虽然一个主题可能或可能不会用命名空间/密钥 ID 来识别,但它总是可以用 MID,即机器标识符来识别,它由 /m 和一个基数为 32 的唯一标识符组成。MID 在创建时被分配给主题,并在主题的整个生命周期中被管理。

当主题被合并或拆分时,MID 可以发挥关键作用,允许外部应用跟踪逻辑主题,即使物理的 Freebase 标识(主题的 GUID)可能改变。

机器生成的 MID 与其他人类可读的 Freebase ID 的不同之处在于,它们是:

  • 保证是存在的
  • 由机器产生
  • 旨在支持离线比较
  • 不是为了向人类传达含义设计的
  • 长度较短,可能是固定长度
  • 外部系统和组件之间快速交换密钥的理想选择
  • MID 是被推荐用于处理 Freebase 主题的标识符

命名空间、键和主题 ID

文件目录式的域、类型和属性 ID 的层次结构,是一个更通用概念的应用:命名空间和键。

命名空间如同文件目录,键如同文件名。

就像一个特定文件目录中的所有文件名必须是唯一的,一个特定命名空间中的所有键也必须是唯一的。

除了与域和类型对应的命名空间之外,还有其他几种命名空间,最常见的是 /en 命名空间。在该空间里,多数著名的主题都被赋予唯一的键,形成人类可读的英文 ID,例如 /en/bob_dylan,该 ID 允许在 Web 客户端中使用简单的 URL 来访问它的主题。

关于属性的更多

这个基本概念涉及 Freebase 的属性与其在关系型数据库技术中的类比的一个主要区别,即关系表列。

在关系型数据库中,每个表列只能容纳一个值。例如 book 表中的每一行,author 列只能持有一个作者的外键。如果一本书恰好有几个作者,这种简单的关系模式设计就不能用了,我们必须使用一个新的表来模拟作者关系,即书和作者之间的多对多关系。

Freebase 认为多值属性对现实生活中的数据进行建模非常理想,在创建 /book/written_work/author 属性时,就假定每本书允许有多个作者。多值属性和单值属性可以通过完全相同的方式查询,不需要考虑使用第三张表连接,来模拟多对多关系。

小结

  • 类型是一个概念性的容器,它包含了描述一个主题的某个方面通常需要的相关属性。
  • 一个主题可以被分配一个或多个类型(默认类型是/common/topic)
  • 正如属性被归为类型,类型被归为
  • 域、类型和属性在命名空间/键的层次结构中被赋予 ID
  • 常见的知名主题在 /en 命名空间中被赋予 ID,这些 ID 是人类可读的英文字符串。
  • 主题在 Freebase 中通过 GUIDs 唯一标识。
  • 属性默认是多值的,多值属性和单值属性可以用同样的方式查询。
发布于 2021-03-02 16:41