基本概念

如果您刚接触 Freebase,本部分将介绍理解 Freebase 的工作原理所需的基本术语和概念。

  1. 图表
  2. 主题
  3. 类型和属性
  4. 网域和 ID
  5. 复合值类型
  6. 主题 MID
  7. 命名空间、键和主题 ID
  8. 详细了解媒体资源
  9. 摘要

图表

Freebase 数据存储在称为“图表”的数据结构中。图由边缘连接的节点组成。在 Freebase 中,节点使用 /type/object 定义,而边缘使用 /type/link 定义。通过以图表形式存储数据,Freebase 可以在各主题之间快速遍历任意连接,并轻松添加新架构,而无需更改数据的结构。

主题

Freebase 拥有超过 3900 万个有关真实实体(例如人物、地点和事物)的主题。由于 Freebase 数据以图表形式显示,因此这些主题与图表中的节点相对应。不过,并非每个节点都是主题。请参阅 CVT 部分,将其作为非主题节点的示例。

Freebase 中找到的主题类型示例:

一些主题非常值得注意,因为它们包含大量数据(例如,Wal-Mart),其中一些值得关注,因为它们链接到许多其他主题,这些主题可能位于不同的信息领域。例如,爱情、贫穷、骑士等抽象主题就没有太多关联点,但它们通常显示为图书主题、诗歌主题、电影主题等,从而让它们更加突出。

类型和属性

您可以从多个不同的视角查看任何给定主题,例如:

  • Bob Dylan 是一位歌曲作曲家、歌手、表演者、图书作者和电影演员;
  • 莱昂纳多·达芬奇是一位画家、雕塑家、解剖师、建筑师、工程师...
  • 爱情可以是图书主题、电影主题、播放主题、诗歌主题等;
  • 任何城市都是一个地点,可能是旅游目的地,也是公务员的雇主。

为了捕捉许多主题的这种多面性质,我们在 Freebase 中引入了类型概念。Freebase 中的主题可以分配到任意数量的类型。针对 Bob Dylan 的主题指明了多种类型:歌曲作者类型、音乐作曲家类型、音乐人(歌手)类型、图书作者类型等。每种类型包含一组不同的属性。例如,cHTML(适用于特定类型的移动设备)和HTML(通常用于台式计算机)的内容类型皆为

  • 音乐人类型包含有一项属性,列出鲍勃·迪伦制作的所有专辑,以及他已知会演奏的所有乐器;
  • 图书作者类型包含一个属性,列出了鲍勃·迪伦撰写或编辑的所有图书,以及他的写作思想或运动;
  • 公司类型包含很多用于列出公司创始人、董事会成员、母公司、部门、员工、产品、年收入和利润记录等方面的资源。

因此,类型可以理解为描述信息特定方面最常需要的属性的概念容器。(您可以认为某个类型类似于关系表,并且每个“类型”表具有指向该“身份”表的外键,该表可唯一定义每个主题。)

网域和 ID

就像属性会按类型分组一样,类型本身也会分为网域。网域可以是您喜爱的报纸版块,如商业、生活方式、艺术与娱乐、政治、经济等部门。每个网域都对应一个 ID(标识符),例如

网域的 ID 看起来就像一个文件路径或一个网址路径。

每种类型都被赋予了一个 ID,其 ID 基于其所属的域。例如,公司类型属于公司网域,其 ID 为 /business/company。下面是其他一些示例:

就像类型从其网域继承其 ID 的开头一样,属性也会从其所属的类型继承其 ID 的开头。例如,公司类型的行业属性(用于指定公司属于哪个行业)的 ID 为 /business/company/industry。下面是其他一些示例:

因此,即使类型不会排列在 Freebase 中的层次结构中,从概念上讲,网域、类型和属性是以类似文件目录的层次结构形式排列的。

复合值类型

复合值类型是 Freebase 中的类型,用于表示每个条目包含多个字段的数据。Freebase 中使用复合值类型 (CVT) 来表示复杂数据。一开始,这可能有点令人困惑,但 CVT 是 Freebase 架构中非常重要的组成部分,可让 CVT 更准确地描述主题之间的复杂关系。

请思考以下示例:城市的人口数据会随着时间推移而发生变化。这意味着,每次您在 Freebase 上查询人口时,您至少会在特定时间隐式要求填充。其中涉及两个值:人数和日期。在以下情况下,CVT 会变得非常有用。如果没有该属性,您需要为人口数据建模,因此需要构建一个主题,并将其命名为“温哥华在 1997 年的人口数量”,然后在那里提交相关信息。

CVT 可以视为无需您指定显示名称的主题。与普通主题一样,CVT 具有可以独立引用的 GUID。但是,Freebase 客户端处理它们的方式与主题截然不同。在大多数情况下,CVT 的每个属性都应是一个消除歧义属性。

主题 MID

主题不一定能通过命名空间/密钥 ID 识别,而是始终用 MID(机器标识符,由 /m/ 后跟 base-32 唯一标识符)标识。MID 是在创建时分配给主题的,并在主题的整个生命周期内进行管理。在合并或拆分主题时,它们发挥着关键作用,即使外部 Freebase 实体(主题的 GUID)可能会发生变化,外部应用也可以跟踪逻辑主题。机器生成的 ID 与其他人类可读的 Freebase ID(由“id”属性返回)不同,因为它们:

  • 保证存在
  • 机器生成
  • 旨在支持离线比较
  • 其设计宗旨并非向用户传达具体含义
  • 短(可能固定长度)
  • 非常适合在外部系统和组件之间快速交换密钥(外部、交换)

MID 是推荐用于解决 Freebase 中的主题的推荐标识符

命名空间、键和主题 ID

文件目录形式的网域、类型和媒体资源 ID 只是一个更为宽泛的概念:命名空间和键。命名空间类似于文件目录,键类似于文件名。正如同一文件目录下的所有文件名在各自之间必须是唯一的一样,特定命名空间内的所有键也必须其自身是唯一的。

举一个更具体的例子,/business 是与商家网域对应的命名空间。其中包含与业务相关的类型键(例如company)是唯一的。每个类型的 ID 都是通过将其键附加到命名空间的 ID(例如/business/company)。

与网域和类型相对应的命名空间旁边有几种命名空间。最重要且最常遇到的就是 /en 命名空间。这是英语命名空间,其中大多数已知主题都可以给出唯一的键,以形成直观易懂的英语 ID。例如,多产的 Bob Dylan 非常知名,他在 Freebase 中的主题被授予 /en 命名空间中的键 bob_dylan,因此主题的 ID 为 /en/bob_dylan。此 ID 可让您通过简易网址在 Web 客户端中访问其主题

详细了解媒体资源

我们讨论的最后一个基本概念涉及到 Freebase 属性与关系型数据库技术(即关系型表列)之间的相似性。对于每一行,关系型表格列只能包含一个值。例如,假设有一个典型的“book”关系表,其中有一个名为“author”的列。对于“book”表中的每一行,“author”列只能将一个外键用于存储“author”表。如果某本图书恰好有多位作者,那么这个简单的关系架构设计将不起作用,我们将必须创建一个新表来为作者建模。也就是说,我们需要一个“图书”表、一个“作者”表和一个“作者”表,用于存储图书和作者之间的 n-n 关系。当您从一个架构设计切换到另一个架构设计时,检索数据的方式会发生根本性变化。

与传统的数据库技术不同,Freebase 认为多值属性在建模真实数据时非常受欢迎,因此默认情况下支持多值属性。也就是说,在创建 /book/written_work/author 属性时,系统会假定每本图书允许多位作者,并且您可以采用同样的方式查询多值属性和单值属性。如果您需要联接第三个模型以模拟 n-n 关系,无需考虑。

总结

  • 类型是描述相关主题的某一方面通常所需的相关属性的概念容器。
  • 您可以为一个主题分配一种或多种类型(默认类型为 /common/topic
  • 属性分为类型,类型分为网域。
  • 在命名空间/键层次结构中为网域、类型和资源指定 ID。
  • 常见的主题均为 /en 命名空间中的 ID,这些 ID 是直观易懂的英语字符串。
  • 主题在 Gbase 中由 GUID 唯一标识。
  • 默认情况下,属性是多值属性,可多方式查询多值属性和单值属性。