创新元数据的设计、实施和最佳实践

关于DCMI抽象模型的思考(2011)

注:这篇于2011年发布在DCMI wiki上的短文,在2019年为DCMI博客进行了重新格式化和轻微编辑。

抽象模型(DCAM)指定独立于特定具体编码语法的元数据记录的抽象语法。DCAM抽象语法的组件明确地映射到RDF抽象语法的组件。此外,DCAM的抽象语法提供了RDF中不存在的几种分组构造——特别是“描述集”(原则上可映射为实例化为“元数据记录”的命名图)、“描述”(原则上可映射为关于单个主题的RDF三元组的子图)、“DCAM语句”(可映射为由RDF语句加上关于该语句值的上下文信息组成的子图)、和“值代理”(可映射到不同的语句集,这些语句集用于描述直接编码为文字字符串值的值,而不是由uri或空白节点标识的值)。

这些结构用于对用于保存实例元数据中使用的uri和字符串字面量的语法“槽”进行分组。uri(用于标识所描述的资源、值、属性、词汇表编码模式或RDF数据类型)和文字(语言标记或文本字符串)是可以测试或验证的DCAM抽象语法的组件。DCMI抽象模型被设计成与一种约束语言一起使用,以一种独立于特定具体编码语法的形式指定特定于应用程序的元数据记录格式的内容——都柏林核心™的功能应用程序配置文件

为Dublin Core™定义数据模型的早期工作

都柏林核心™社区始于1995年,它定义了12个(后来是15个)元素.这些要素在1997年又增加了限定符(原来称为堪培拉限定符.2000年7月,随着DCMI建议书的公布,都柏林核心™限定符,限定符被分化为“元素细化”和“元素编码方案”。这种类型演变成2003年的DCMI使用委员会词汇维护决策指南DCMI语法原则-它进一步将“编码方案”分为“词汇编码方案”和“语法编码方案”。

除了发展“术语类型学”和基于该类型学的特定术语集之外,还努力指定一种独立于格式的抽象数据结构——一种“抽象语法”,在其中引用这些术语。2000年D-Lib杂志的一篇文章总结了这项工作,都柏林语法核心,它清晰地表达了“语句”的“语法”,由以下几个部分组成:

  • 暗指对被描述事物的暗指
  • 对Dublin Core™元数据元素集的15个“属性”或“元素”之一的引用
  • “属性值”(被描述为“适当的文字”)
  • 对一个或多个“限定符”的可选引用

Dublin Core™元数据的第一个具体语法规范,RFC 2731:编码都柏林核心™元数据的HTML,至少非正式地基于这个模型。

从1997年开始,DCMI中元数据模型的开发与W3C定义通用资源描述框架(RDF)的努力并行——这一努力最终形成了第一个W3C建议书,RDF模型和语法规范,并经过广泛的审查过程,提出了第二个W3C推荐标准RDF概念和语法2004年2月。在RDF标准化的基础上,DCMI制定了“编码指南”,指定了在RDF中使用Dublin Core™术语的两种略有不同的约定:

DCMI抽象模型的基本原理

到21世纪初,出现了越来越多的“Dublin Core™元数据”实现,其中大多数缺乏对通用抽象语法的任何引用。结果是出现了互操作性存在问题的应用程序前景。RDF抽象语法被都柏林核心™社区的部分成员认为是实现互操作性的技术——“都柏林核心™语法”模型的部分目的是普及其“基于语句的”元数据的概念——但RDF被都柏林核心™社区的大部分成员视为一个实用价值可疑的研究项目。RDF很少被认为是一种根本不同的元数据概念化方法,而更多地被视为元数据的另一种XML格式——而且与显然更简单、可读性更强的XML格式相比,它并不占优势。

考虑到将RDF抽象语法直接提升为元数据的通用基础的困难,2003年开始了DCMI抽象模型的工作,试图:

  • 澄清并形式化从早期的都柏林核心™研讨会中产生的元数据的“本土”模型,并形成了DCMI语法原则的基础;而且
  • 随着时间的推移,越来越多地使该模型与RDF抽象语法和RDF语义保持一致。

这一努力导致了第一个DCMI抽象模型于2005年3月提出的DCMI建议其次,修正后的模型2007年6月。2007年的修订版通过弱化“元素”这个词而改用“RDF属性”,明确地将“元素细化”定义为“RDF子属性”,将“语法编码模式”定义为RDF数据类型,并进一步弱化泛型命名“编码模式”和更泛型的术语“限定符”,从而更接近RDF术语。

DCMI抽象模型基于一个称为描述集的数据结构定义了一个抽象语法。该规范使用资源描述框架(RDF)表达Dublin Core™元数据,解释了描述集模型如何映射到RDF的抽象语法。2007年修订的DCMI抽象模型成为修订的具体语法规范的基础使用HTML/XHTML元数据和链接元素表示Dublin Core™元数据(又名DC-HTML),使用XML表示Dublin Core™描述集(DC-DS-XML),使用DC-Text格式表示Dublin Core™元数据

2009年,迈克尔·尼尔森(Mikael Nilsson)概述了这种可能性基于rdf的版本DCMI抽象模型是2007年模型的戏剧性简化。建议的修订版将删除2007模型的三个组件模型中的两个:DCMI资源模型(将被RDF的简单引用取代)和DCMI词汇模型(将被RDF词汇描述语言的简单引用取代,也称为RDF模式)。这个修订的动机(从未发展成完整的规范)是完全按照RDF定义抽象模型,同时维护2007模型的第三个组件描述集模型(Description Set model)中定义的构造的“接口”。

DCAM描述集模型与RDF的关系

DCAM的核心是描述集模型,该模型的构造与RDF的关系在2008指南中有描述,使用资源描述框架表达Dublin Core™元数据(DC-RDF)。

描述集模型既指定了一组语法元素(在数据中找到的东西),也指定了现实世界中的一组引用物(语法元素可能被解释为引用的东西)。忽略描述集模型的语义元素,它已经被合理地批评为“混乱”,这是可能的,以其语法元素来严格查看描述集模型。这些包括分组构造(描述集、描述、语句、非文字值代理和文字值代理)和URI和字符串的插槽(描述资源URI、属性URI、值URI、词汇编码方案URI、语法编码方案URI、值字符串语言、普通值字符串和类型化值字符串)。可以将这些槽视为DCAM抽象语法的组件,可以对其进行测试或验证。在DCMI抽象模型中,这些语法元素使用UML进行描述,但它们更常用的形式是嵌套元数据模板,如下面的图1所示。

图1:描述集模型(DCMI抽象模型的一部分)

图1:描述集模型(DCMI抽象模型的一部分)

为了说明如何使用描述集模型的语法元素,图2在占位符中显示了一组与图1中所示的值相对应的示例信息值。

图2:描述用示例uri和字符串设置模型槽

图2:描述用示例uri和字符串设置模型槽

描述集模型的元素如何与RDF相关在图3中进行了描述,在下面的附录B中进行了更详细的描述。

图3:描述集概要文件组件与RDF图的关系

图3:描述集概要文件组件与RDF图的关系

DCAM的未来发展

一旦这些规范在Web上发布,就很难跟踪它们的使用情况,但是截至2010年,DCMI并不知道任何与dcam相关的规范(可能除了特定的语法指导原则外)已经被广泛实现。抽象模型并没有建立起从传统元数据社区到语义Web的桥梁,而是落在了两种情况之间——它对“描述集”抽象的使用让更习惯于用具体语法定义元数据规范的用户感到困惑,而它增加的都柏林核心特定术语层则让已经熟悉RDF模型的用户感到困惑。面对缺乏对基于dcam的方法的应用程序配置文件,DCMI进行了一项评论的DCAM规范栈作为讨论的基础联合会议在2010年10月获得了DCMI架构论坛和W3C库关联数据孵化器小组的支持。