基本概念

如果您是 Freebase 新手,本部分将介绍了解 Freebase 运作方式所需的基本术语和概念。

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

图表

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

主题

Freebase 包含超过 3, 900 万个与现实世界实体(例如人物、地点和事物)相关的主题。由于 Freebase 数据以图表形式表示,因此这些主题对应于图表中的节点。不过,并非每个节点都是主题。请参阅有关 CVT 的部分,了解非主题节点的示例。

Freebase 中包含的主题类型示例:

有些主题之所以值得关注,是因为它们包含大量数据(例如,沃尔玛),有些实体之所以值得注意,是因为它们链接到许多其他主题,可能涉及不同的信息领域。例如,爱情、贫困、侠义等抽象主题没有太多相关属性,但经常作为图书主题、诗歌主题、电影主题等出现,因此更加引人注目。

类型和属性

任何给定主题都可以从许多不同的角度来看,例如:

  • 鲍勃·迪伦曾担任词曲创作人、歌手、表演者、图书作者和电影演员;
  • 列奥纳多·达·芬奇是画家、雕塑家、解剖学家、建筑师、工程师、…;
  • 爱情是图书主题、电影主题、戏剧主题、诗歌主题……;
  • 任何城市都是一个位置,可能是一个旅游目的地,也是公务员的雇主。

为了体现许多主题的多方面性质,我们在 Freebase 中引入了类型的概念。Freebase 中的主题可以分配任意数量的类型。与 Bob Dylan 相关的主题被分配了多种类型:词曲作者类型、音乐作曲家类型、音乐人(歌手)类型、图书作者类型等。每种类型都包含一组与该类型相关的不同属性。例如,

  • 音乐人类型包含一个属性,其中列出了 Bob Dylan 制作的所有专辑以及他演奏过的所有乐器;
  • 图书作者类型包含一个属性,其中列出了 Bob Dylan 撰写或编辑的所有图书,以及他的写作思想或流派;
  • 公司类型包含许多属性,用于列出公司的创始人、董事会成员、母公司、部门、员工、产品、逐年收入和利润记录等。

因此,您可以将类型视为属性的概念性容器,这些属性通常是描述特定方面信息所必需的。(您可以将类型视为类似于关系表,并且每个“类型”表都有一个外键,指向唯一定义每个主题的“身份”表。)

网域和 ID

正如属性会分组为类型一样,类型本身也会分组为网域。可以将网域视为您喜爱的报纸中的版块:商业、生活方式、艺术与娱乐、政治、经济等。每个网域都有一个 ID(标识符),例如

网域的 ID 看起来像文件路径或网址中的路径。

每种类型也都有一个 ID,其 ID 基于所属的网域。例如,“公司”类型属于“业务”网域,并被赋予 ID /business/company。下面是其他一些示例:

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

因此,尽管 Freebase 中的类型并未按层次结构排列,但网域、类型和属性的 ID 在概念上是按类似文件目录的层次结构排列的。

复合值类型

复合值类型是 Freebase 中的一种类型,用于表示每条条目都包含多个字段的数据。复合值类型 (CVT) 用于在 Freebase 中表示复杂数据。起初可能有点令人困惑,但 CVT 是 Freebase 架构中非常重要的一部分,可让它更准确地对主题之间的复杂关系进行建模。

请考虑以下示例:城市人口数量会随着时间的推移而变化。也就是说,无论何时您查询 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 都是通过将相应键附加到命名空间的 ID 来形成的(例如,/business/company)。

除了与网域和类型对应的命名空间之外,还有多种其他类型的命名空间。最重要且最常遇到的是 /en 命名空间。这是英语命名空间,其中大多数知名主题都可以获得唯一的键,以形成人类可读的英语 ID。例如,多产的鲍勃·迪伦非常有名,因此他在 Freebase 中的主题在 /en 命名空间中获得了键 bob_dylan,因此该主题的 ID 为 /en/bob_dylan。借助此 ID,您可以通过简单的网址在 Web 客户端中访问他的主题

有关房源的更多信息

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

与传统数据库技术不同,Freebase 认为多值属性在对现实生活中的数据进行建模时非常有用,因此默认情况下支持多值属性。也就是说,在创建 /book/written_work/author 属性时,系统假定每本书允许多个作者,并且您可以通过完全相同的方式查询多值属性和单值属性。无需考虑是否需要与用于表示多对多关系的第三个表进行联接。

摘要

  • 类型是相关属性的概念性容器,通常用于描述主题的某个方面。
  • 一个主题可以分配一个或多个类型(默认类型为 /common/topic
  • 与属性分组为类型类似,类型分组为网域。
  • 系统会在命名空间/键层次结构中为网域、类型和属性分配 ID。
  • 常见的知名主题在 /en 命名空间中具有 ID,这些 ID 是用户可读的英文字符串。
  • 主题在 Freebase 中由 GUID 唯一标识。
  • 属性默认是多值的,并且多值属性和单值属性可以采用相同的方式进行查询。