自从二十世纪 80 年代中期出现数字音乐以来,已经有许多关于它的争论,甚至连对数字音乐元数据的管理也逃脱不了这种纷争。但有时好的技术解决方案还是会从带有政治色彩的纷争中脱颖而出。在本文中,Uche Ogbuji 将介绍 MusicBrainz,这是一个用于管理数字媒体元数据的项目。MusicBrainz 在其核心数据格式中使用 RDF,这样做的结果是使它比原先的此类项目具有一些重要的技术优势。
数字音乐仍然是信息时代的重要内容之一,它之所以重要是因为它给音乐爱好者带来方便,同时也给高科技公司提供了商机。您可以在数字存储器中存储成百上千的专辑,并且按您喜欢的方式给这些音乐编目。由于这一时代有如此多的音乐是以 CD 形式销售的,所以存在着不计其数的工具用于收集艺术家和曲目信息,以产生数字格式(mp3 和 Ogg Vorbis 等)维护或 标记这些信息。这些信息是数字音乐常见的元数据。
在 90 年代早期,Internet Compact Disc Database(CDDB)作为将 CD 特征与元数据匹配起来的分布式数据库而诞生了。它在许多非正式用户的努力下发展很快,这些用户无偿提供有关他们 CD 的信息,他们以为 CDDB 的系统和软件是开放和免费的。但在一次颇有争议的举动中,一个现在名为 Gracenote 的商业性团体强行给 CDDB 加上了发放许可证的限制,从而促使了几个真正开放的替代项目的开发。在这些倡议中,freedb.org 和 MusicBrainz 最引人注目。前者仍然将 CDDB 格式用于它的数据库,而 MusicBrainz 则另起炉灶,彻底地重新构造了其数字音乐元数据格式和系统。在这项重构工作中,他们选择了 RDF 在此项目中发挥重要作用。
MusicBrainz 旨在成为数字音频和视频的 元数据库(metadatabase),而不只是 CD 曲目信息。它被称为“开放音乐百科全书”。开放性由一个明确的 OpenContent 许可证来确保,所有 MusicBrainz 信息都被授予了此许可证。MusicBrainz 是分散的,它将多个 Web 位置上的信息汇集在一起。可以很容易地获得这个作为开放源码的服务器软件。目前大约有一百万条曲目的信息。数据基于 RDF 格式,这使得此服务具有一些独一无二的优势。首先,每条曲目(以及所有其它重要概念)都有以 URI 格式表示的唯一标识符。凭借 URI,可以形成 通用播放列表(universal playlist)。可以用压缩形式发布该播放列表,而且该播放列表可以唯一地标识一个特定的歌曲序列。CDDB 没有这样的全局标识符。MusicBrainz 还定义了用于查询这一百科全书的 RDF 词汇表。
命名曲目
MusicBrainz Metadata Initiative 2.0 规范中定义了 MusicBrainz 的 RDF 子系统,该规范定义了用于此百科全书条目和查询的 RDF。MusicBrainz 为它提供的不同(但却相关)RDF 词汇表定义了几种基本的 URI(称为名称空间)。
让我们着重讨论 mm 和 cdmp 名称空间,因为这两个已经很完善了。目前正在对 mem 进行扩展和改进,所以它还未投入使用。 mq 有可能成为项目中接下来的工作重心,但目前还没有完全就绪。
MusicBrainz 元数据名称空间涉及核心音乐元数据,它使用了以下类:
MusicBrainz 在任何可行的位置都使用 Dublin Core 元数据元素。正如我在 前一篇文章中讨论的那样,这使 MusicBrainz 元数据在某种程度上甚至能被通用 RDF 代理程序访问。
还赋予曲目一个特性以使其与它们的 TRM 声纹(TRM Acoustic Fingerprint)联系起来。TRM 是 Relatable, LLC 开发的技术,作为用于数字媒体的唯一条形码。每个 TRM ID 都是一个全球唯一标识符(UUID)。例如,The Roots 的“Mellow My Man”的 TRM 是 f13069e3-da60-4782-82dd-a9f375e5c374 。可以选择将该信息用于数字产品版权管理(digital rights management,DRM),尽管 MusicBrainz 在 DRM 问题上是中立的。
清单 1是一个 MusicBrainz 元数据记录的示例。
清单 1. 音乐元数据示例的快照
因为顺序是不相关的,所以专辑列表是一个包。为了保留曲目的顺序,所以曲目列表是一个序列。这有点多余,因为每条曲目都已经有了带有其曲目编号的特性。
查询 CD 信息
MusicBrainz 还定义了用于 CD 元数据的查询服务:CD 元数据建议书(Compact Disc Metadata Proposal,CDMP)。这个协议非常简单。可以将 RDF 查询文档使用 HTTP POST 放到 MusicBrainz 服务器,然后获得与 清单 1类似的以 MusicBrainz 元数据格式表示的响应,但是带有 CDMP 封装器元素。也可以使用带一些特殊查询参数的 HTTP GET。CDMP 最常见的情形是:用户将 CD 放入到计算机中,CD 播放器应用程序启动。它随即读取 CD 以确定每条曲目的偏移量,在许多情况下可以用这些偏移量来唯一地标识 CD。它将这些偏移量发送到 MusicBrainz 服务器以便获取与偏移量数据匹配的 CD 及其曲目信息。 清单 2是这类查询的示例。
清单 2. CD 及曲目信息的样本查询
实际上,这是由 RDF 对象组成的查询,特性则作为查询参数。这是用 RDF 表示查询的常用方法,尽管当查询变得更复杂时,它会显得比较笨拙。幸运的是,大多数 MusicBrainz 查询都相当简单。 清单 3是对 清单 2中查找的样本响应。
清单 3. CDMP 查询的样本响应
这个响应完全就是 CDMP 封装器类中的 MusicBrainz Metadata 名称空间格式。超过 CDDB 的一个优势是,可以从这样的查询返回多个 CD 结果,以便处理不同 CD 的曲目偏移量详细信息之间可能的冲突。
也可以通过标题、艺术家或其它数据的精确或部分匹配来生成搜索 CD 的 CDMP 查询。另外 CDMP 用户可以提交新的 CD 信息。通常,如果 CD 播放器进行查找,但未找到匹配的 CD 信息,那么软件的确会允许您手工输入曲目数据。您随后可以将这些数据提交给 MusicBrainz。MusicBrainz 在适当的位置有一个缓冲系统,它使提交过程中的滥用情况和无心的错误情况降到最低。这很重要,可以由最近的例子证明:CDDB 数据曾被使用污秽语言的恶作剧所破坏。大多数坏数据并没有那么过份,通常是拼写错误、曲目位置颠倒之类的错误。MusicBrainz 允许用户在最初提交之后在缓冲系统的控制下编辑数据项。
CDMP 最初被设计用于与其它一些开放式 CD 查找系统协同工作,但这样的协作没有达到预期效果,所以可能会用 s mp 名称空间查询取代 CDMP,前者更关注于一般 MusicBrainz 百科全书概念。
结束语
MusicBrainz 在几个层次都很重要。首先,它展示了致力于开放技术的各个社区的能力。它们常常能有效地避免由不择手段的商业利益团体所造成的损害。MusicBrainz 诞生于 CDDB 转向限制性许可证之时,而开发人员们则利用这个机会重新设计了 CD 信息系统,使其更灵活、有更多特性并且支持更广泛的信息类型。广大用户已经无偿提供了大量的数据来支持这项工作,并且这个数据库是一个了不起的公共财产。
RDF 在 MusicBrainz 中的使用意味着它可以方便地集成到其它元数据倡议。RDF 格式还有几个不方便的地方。首先,它沿袭了 RDF 1.0 容器的所有不便,而且这些不便还结合了这样一个事实:除了需要正确同步的其它关系之外,有时还要使用容器关系。例如: mm:trackList 所指定序列中的次序对于等价的 mm:trackNum 特性是多余的。尽管有这些小的技术缺陷,但数据最终还是非常清楚并且许多工具可以方便地使用它。例如,XML 的基本特征是其优秀的国际化能力,MusicBrainz 正是从 XML 借用了这一能力,这与原来 CDDB 中国际化的暧昧状态形成鲜明对比。即使不熟悉 RDF 的人也可以利用这一点,因为 MusicBrainz 使用开放源码客户机库。如果您要开发任何处理数字媒体的应用程序,请考虑将 MusicBrainz 格式和协议用于元数据。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10752019/viewspace-950180/ ,如需转载,请注明出处,否则将追究法律责任。