1、基于 MapReduce 的书目数据关联匹配研究 虞为 陈俊鹏 南京大学信息管理学院 南京财经大学信息工程学院 摘 要: 提出一个基于 MapReduce 的书目数据关联匹配架构, 通过参引 MODS 本体将MARC 格式的书目数据转换成关联数据格式。再通过对书目数据和书目数据间的关联匹配, 以及书目数据和开放关联社区其他的关联数据间的匹配初步实现书目数据和其他关联数据集间的语义关联, 使关联的书目数据成为关联开放数据社区中的一部分, 为图书馆的知识发现和语义检索服务提供有效的语义数据支持。关键词: MapReduce; 关联匹配; 书目数据; 关联数据; 作者简介:虞为 E-mail:收稿日
2、期:2013-06-06基金:国家自然科学基金项目“面向知识服务的知识组织模式与应用研究” (项目编号:71273126) Linking and Mapping of Library Catalogue Data Based on MapReduceYu Wei Chen Junpeng School of Information Management, Nanjing University; School of Information Engineering, Nanjing University of Finance and Economics; Abstract: In this pa
3、per, the MARC data is transformed to linked data, based on MapReduce model and MODS Ontology. Through the mapping among different linked open data sets, the library catalogue data can become part of the linked open data community and provide efficient semantic data to knowledge discovery and semanti
4、c service.Keyword: MapReduce; Mapping and linkage; Catalogue data; Linked data; Received: 2013-06-061 引言在互联网大数据时代, 关联数据是构建网络大数据集之间的语义连接的有效途径1。关联数据的主要特性之一就是对不同的 RDF 数据集间有语义关联的实体或属性建立关联关系 (如 owl:same As, rdfs:see Also) , 同时通过 HTTP 协议和 URI 实现对互联网上信息对象的发现、关联和共享服务。因此, 实现不同关联数据集间的关联匹配是实现互联网信息共享的基础, 受到来自研究
5、领域和工业界的广泛关注。关联开放数据 (Linking Open Data, LOD) 2运动得到广泛的支持和关注, 来自各个会议、学术组织和企业团体发布了大量的关联开放数据。这些关联数据中包括地理信息3、生物科学数据4、百科词条5、政府信息6、出版数据7等。关联数据已渗透到网络信息服务的方方面面, 成为新的网络应用服务增长点和新研究热点。传统的书目数据是以 MARC 格式存放的一维线性组织数据, 拥有结构化程度高、机读速度快等优点, 被图书馆大量采用。但同时, MARC 数据格式也存在缺乏语义信息、没有对象层次、无法适应互联网环境下对信息共享和语义知识发现的需求的缺点。本文在对相关工作进行分
6、析的基础上, 提出基于 Map Reduce 模型的书目数据关联匹配架构, 通过对书目数据进行转换和关联匹配实现书目数据和其他的数据源间的语义关联。2 相关工作目前, 国内外已在图书馆关联数据服务研究方面取得了不少成果和进展。瑞典国家图书馆 LIBRIS 国家书目关联数据7是全球第一个将书目数据发布成关联数据的联合目录, 开放了所属的 200 多个成员馆的约 650 万条书目记录、20 万条规范文档记录等, 并创立了和 DBpedia 之间的关联链接。美国国会图书馆关联数据服务 LCSH 以 SKOS 格式实现数据关联化, 并创建了不同资源之间的联系8。2012 年 6 月, OCLC 将 W
7、orld Cat.org 中的书目元数据发布为关联数据, 是目前 Web 上最大的关联书目数据9。国内也有不少关于图书馆关联数据的研究。OTCSS10在中文叙词表的基础上通过引入本体相关的理论和技术来完成从中文叙词表到关联数据的转换。语义数字图书馆的核心元数据本体构建11通过连接不同的元数据构建关联数据在元数据层的无缝连接。而夏翠娟等12以Drupal 为平台, 对中国历史纪年和公元纪年对照表进行了关联数据格式的发布。白海燕等13对关联数据的自动关联构建做了相关的介绍。除了图书馆, 其他的文献发布和出版机构也积极地引入关联数据作为图书论文发布的有效工具。著名的计算机科技文献书目数据库 DBLP
8、 已通过 D2R 服务器将关系型数据库中的论文信息全部转换成关联数据并在互联网上公开发布14。同时, Cite Seer、ACM、NSF 以及部分 IEEE 会议也将学术资源组织成关联数据的格式以方便在网络上访问。爱尔兰和英国的研究者将语义网学术会议资料组织成关联数据的格式发布, 并称之为 Semantic Web Dog Food15。大量的关联数据带来了丰富的语义信息, 为用户提供了知识发现和语义检索的数据基础, 但也成为信息处理中的难点和热点。截止到 2011 年 9 月, 网络开放的关联数据云已包含 310 亿的 RDF 三元组, 5 亿多的 RDF 关联连接16。如何对如此海量的关联
9、数据进行匹配和处理成为关联数据服务中急需解决的问题。针对这个问题, 国外一些图书信息发布机构尝试运用海量数据处理技术来实现快速有效的信息服务。如 OCLC 构建了云计算服务平台 Dura Cloud17以满足用户对大数据的快速有效的服务需求。本文采用书目数据作为实验数据, 构建基于分布式编程模型 Map Reduce18的书目数据关联匹配架构, 研究并初步实现书目数据向关联数据的转换, 为图书馆的信息服务提供多方位的数据补充和有效的语义链接。3 书目数据关联匹配架构为了对书目数据进行有效的关联匹配, 本文提出了一个基于分布式编程模型Map Reduce 的书目数据关联匹配架构, 如图 1 所示
10、:图 1 关联匹配架构 下载原图这个架构主要有两部分功能:数据转换和获取功能、数据关联匹配功能。数据转换功能是对不同格式的书目数据进行转换, 使之成为关联数据格式。目前图书馆中的书目数据多是以 MARC 格式或 XML 格式存储, 但计算机并不能理解这些书目数据中蕴含的语义信息, 无法将这些书目数据和其他的数据互相关联起来。关联数据格式要求使用 RDF 数据, 同时以本体的形式对元数据格式进行描述, 使之能够描述数据中所包涵的语义信息。本文参照本体中的语义描述对书目数据进行转换, 使之成为关联数据格式。为了获取互联网上其他的关联数据, 可以采用在线 SPARQL Endpoint 访问、语义搜
11、索引擎查询关联数据集以及下载关联数据集这三种方式。对于从互联网上难以下载的网络大数据, 采用 SPARQL Endpoint 查询关联数据集的方式可以实时对其进行访问, 且有较高的准确率。但这种实时查询的方式需要占用大量的网络带宽, 且会造成较长的访问延迟。对于数据量较小的开源关联数据, 可以采用先将其下载到本地的方式。目前 LOD 中有 34%的数据集提供本地文件下载, 而 67%的数据集提供 SPARQL Endpoint19。语义网搜索引擎如 Sindice20、Falcons21等都提供查询 API 供机器访问, 但检索到的数据容易出现冗余和误差。本文实现了通过 SPARQL Endp
12、oint 进行关联数据集的访问和下载到本地的关联数据获取方式。在互联网大数据量的环境下, 快速获取和查找不同数据资源间的关联关系是实现关联数据服务的关键问题。在实际操作中, 数据之间的关联匹配操作类似求两张数据表间的笛卡尔映射, 会占用较长时间并产生大量的临时数据, 因此笔者采用 Map Reduce 模型来获取不同数据资源间的关联关系。Map Reduce 模型是云计算技术中的一项主要技术, 通过把大数据分成较小的数据块, 并应用Map 过程和 Reduce 过程来完成数据的分布式处理。Map Reduce 模型可以简化分布式程序的处理过程并提高对大数据的处理效率, 从而有效地查询关联数据集
13、间的语义关联。关联数据匹配的实现思路如图 2 所示。用户可以通过移动设备、便携电脑、个人 PC、局域网等多种方式来访问相互有语义关联的关联数据。同时, 技术透明的应用技术平台可以为用户提供检索、浏览、发布、下载等多方位的关联数据服务。图 2 关联数据匹配的实现思路 下载原图4 书目数据关联实现4.1 RDF 数据转换实现(1) 元数据转换为了把 MARC 格式的书目数据转换成 RDF 格式的关联数据, 首先需要将这些书目数据对应的元数据格式转换成本体表示的结构, 即构造和 MARC 格式相应的本体模式来描述书目数据中的语义信息。目前国内外已有一些描述书目数据的本体, 如欧盟 DERI (Dig
14、ital Enterprise Research Institute) 创建的 Marc Ont Ontology22, 用于不同格式的书目描述间的转换。DArcus属性则分为 6 大类, 分别是General Properties、Item Properties、Name Properties、Item Relationships、Record Properties 和 Roles。RDF Ontology for MODS V3.1 各个类的名称和包含子类个数如表 1 所示。RDF Ontology for MODS V3.1 的 Subject Type 中类和子类间继承关系如图 3 所
15、示。通过参照 RDF Ontology for MODS V3.1, 笔者可以将书目数据转换成 RDF 的描述格式。表 1 RDF Ontology for MODS V3.1 分类 下载原表 图 3 Subject Type 中类和子类间继承关系 下载原图(2) 书目数据转换笔者从 Project Gutenberg Australia (PGA) 项目29中下载 1 281 条 MARC格式的书目数据。Project Gutenberg Australia 网站是 Choat 在 2001 年创立的对澳大利亚的知识产权已经到期的电子书和电子文档进行免费共享的一个组织。为了对多种书目数据进行
16、关联, 笔者从 code4rda (Software for the Resource Description and Access (RDA) Library Standard) 项目中30下载了 155 兆的美国国家图书馆发布的 NT 格式的 RDA 数据。RDA 格式31是图书馆资源描述的新方式, 和传统的 FRBR 方式相比, 它更适合对网络上的互联数据进行描述, 并且非常适合由关联数据的格式进行表达。NT 格式是 RDF 数据格式的一种, 无需做数据转换即可和其他的网上数据资源进行关联匹配。笔者对PGA 中下载的 MARC 格式数据进行转换, 如图 4 所示:图 4 书目数据转换 下
17、载原图图 4 的上半部分是一段由 MARC 格式标记的书目数据, 包含相关的元数据信息和具体的书目信息。经过转换后生成的 RDF 文件保存了 MARC 数据中所应有的元数据信息, 同时把相关的书目数据实例转换成一个 RDF 资源实体的实例 () 。这个实例由 URI 标签唯一指定, 发布后可以在浏览器中直接浏览。对于书目数据中的作者数据, 转换后的 RDF 数据把作者作为一个实体 (Entity) 的实例 () , 并通过本体中定义的 Person 类型对作者这个实例进行数据类型的约束 () 。作者的生卒年月 (1873-1947) 和全名 (Cather, Willa.) 是这个作者实例的属
18、性, 和作者相关的作品被定义成本体中的文本类型 (), 作品的标题 (Death Comes for the Archbishop) 标记为 Title 标签 () 。为了方便在互联网上进行信息共享, 转换后的 RDF 数据采用 RDF/XML 格式, 方便被其他的网络应用程序访问和处理。为了最大化地防止信息丢失, 在 MARC 数据向 RDF 本体实例进行转换中保存了大部分的 MARC 数据物理格式和语言信息, 分别由标签 modsrdf:date Issued、modsrdf:language、modsrdf:physical Description 等进行描述。而与原始 MARC 数据相
19、关的项目信息也被保留在生成的 RDF 本体实例数据中, 由标签 modsrdf:note 进行标识。通过对比 RDF 本体实例数据和 MARC 格式的书目数据, 可以看出 RDF 本体实例数据对语义关系和实体属性的描述更加精确, 依照本体定义的实体属性关系对数据进行层次化的定义和描述, 不仅仅是平面化的、简单的数据描述。本体实例的方式对书目数据中的各个不同的部分进行描述, 可以灵活地对这些数据进行有机的组织和阐释, 也符合语义网的命名规范和关联数据原则32, 适用于现在广为接受的网络信息传播方式。4.2 关联数据匹配为了把图书馆的书目数据和其他关联数据集连接起来, 并成为开放关联数据社区的一部
20、分, 笔者主要把 MARC 格式的书目数据和两类数据互相关联:其他格式的书目数据资源和开放关联数据社区中的非书目数据资源。通过把不同的出版机构之间的书目数据资源互相关联, 用户可以对相同的作者、主题、作品等有全面的认识, 从而进行全面和系统的查找和理解。另一方面, 通过把书目数据和开放关联数据社区中的非书目数据资源相互连接, 可以使图书馆的数据信息真正融入关联数据社区, 为图书馆的语义服务提供数据资源和语义关系, 对关联社区进行有效的扩展和补充。由于人名数据在书目数据中出现频次较高, 且有较高的辨识度, 不易发生歧义, 本文对关联数据的匹配主要从作者人名方面进行实现。(1) Map Reduc
21、e 模型实现为了实现数据关联匹配任务, 笔者使用开源软件 Hadoop, 并应用分布式编程模型 Map Reduce 来进行任务部署。Map 过程先对数据进行处理, 然后将它们发给Reduce 过程。Reduce 过程接受到 Map 过程发来的文件后再进行详细的比较, 将有关系的关系对进行输出。这一过程的伪码如下所示:在 Map 过程中, 笔者将有相似的带比较字段的文件归并到一起。比如对文件中的人名字段进行比较, 可以把人名字段中姓的首字母相同的文件都放到同一个数据组中, 然后将这些有相似的带比较字段的文件发送给同一个 Reduce 过程进行处理。这一过程的伪码如下所示:Reduce 过程接受
22、来自 Map 过程的中间数据, 对于被比较字段相似的两个文件, 如果它们不是同一个文件, 就执行比较程序 Compare () , 找到并输出两个文件之间的关联关系。通过 Map Reduce 模型, 笔者可以在 Map 过程中对数据进行预处理, 从而在 Reduce 过程中只需对被比较字段相似的文件做比较, 从而避免了对所有输入的文件做笛卡尔映射来找到两两相似的关系。同时, 由于 Map Reduce 任务可以同时在多台计算机上并行运行, 可以有效地提高数据处理的效率。(2) 书目数据间的关联匹配在书目数据和书目数据的相互匹配中, 笔者使用由 PGA 项目提供的 MARC 数据和XML 数据
23、转换成的 RDF/XML 格式的数据, 见图 4。另外, 还采用 code4rda 项目中的 RDA 形式的 NT 格式的书目数据, NT 格式是以 RDF 三元组的形式来表示。图 5 所示的代码显示了书目的名称和作者关系, 包括书名“In a sunburned country”和作者“Bill Bryson”。图 5 RDA 形式的 NT 格式书目数据 下载原图为了找出两种书目数据之间的关系, 在进行关联比较的 Compare () 部分笔者使用了开源的关联数据连接工具 SILK33, 用 SILK-LSI 来查找并构建两个书目数据集间的数据关联如图 6 所示:图 6 SILK-LSI 语
24、义关联发现 下载原图SILK 使用一种专有的连接语言 Link Specificaiton Language (SILK-LSI) 来完成对两个关联数据资源间的语义关联发现, SILK-LSI 以 XML 的形式表现。由于两个书目数据都较易获取, 为了提高匹配效率, 笔者采用将数据源下载到本地进行匹配的方式。在 SILK-LSI 文件中使用对读取的数据源位置进行指定。如果需要在读取数据源时采用访问 SPARQL Endpoint 的方式, 只需要在标签中指明 endpoint URI 即可。代码如下所示:其中, type=“sparql Endpoint“表明使用的是 SPAR-QL Endp
25、oint 的方式进行访问, 对于一个返回数据的链接 retry Count, 返回数据的数量是 100 个, 即value=“100“。对于两个关联数据源, 可以通过标签来标注要进行匹配的关联信息, 并通过标签命名和解释每一个关联信息。图 6 显示了两个书目数据间的关联连接 Rda Library, 它连接的源数据是 RDF/XML 格式数据中的Person 类型, 目标数据是 RDA 数据中的 purl:Person 类型, 关系的类型是owl:same As 关系。在 RDA 数据中, 人名取用的 preferred Name For The Person 标签的值 (value) , 而
26、在 RDF/XML 格式数据中取的 modsrdf:full Name 的值。由于在不同的数据集中, 同一数据的表示形式可能会有区别, 如“Zane, Grey”在另一个数据集中的表现方式可能是“Grey Zane”。因此, 在进行匹配时, 去掉了数据中的标点和空格等没有意义的符号, 并把大小写不一致的数据全部转化为小写数据。这一步骤通过中的函数来完成。经过转换后的两个字符串通过笔者定义的条件即相等关系 equality 来进行比较, 并给拥有此关系的关系组赋予权值 1, 通过语句来实现。对于 owl:same As关系, 当两个进行匹配的关联实体间的最小相似度大于 0.8 的时候, 即认为这
27、组实体关系为 equality, 并对这组关联关系进行输出, 通过标签来完成。通过对两组书目数据进程匹配, 可以得到两个数据源中关于作者的关联关系共56 条。RDF/XML 数据和 RDA 数据间 owl:same As 关系中的一个例子如图 7 所示, 描述了 RDF/XML 数据中的一个数据资源实体“Entity#Allen_Grant_18481899”和 RDA 数据中的数据资源“person/00006568-1”间的关联关系。图 7 RDF/XML 数据和 RDA 数据间 owl:same As 关系 下载原图通过找到这些数据集之间的“owl:same As”关系, 笔者可以将 R
28、DF/XML 数据和RDA 数据互相联系起来, 通过 RDF/XML 数据中的内容可以直接查找到 RDA 数据与之相对应的部分, 如相同作者的不同出版物、作品等, 反之通过 RDA 数据也可以有效查找到 RDF/XML 数据中的相关内容。(3) 书目数据和 DBpedia 之间的关联匹配对于开放关联数据社区中的数据, 笔者选用 DB-pedia 来获取和书目数据间的关联关系。首先从网上获取 DBpedia 的相关数据 227 兆34, 并把它和 RDA 书目数据以及 RDF/XML 书目数据进行匹配。DBpedia 的数据格式如图 8 所示, 包含人名信息“Attila the Hun”, 类
29、型是“foaf/0.1/Person”, 以及相关描述“Khan of the Huns from 434 until his death”。图 8 DBpedia 数据 下载原图在 DBpedia 数据中关于人名的解释使用 FOAF 中定义的 Person 格式, 这种方式将人名分成了“sur Name”和“last Name”两部分来进行组织。因此, 笔者在做匹配的时候需要将这两部分组合起来以适应统一的人名匹配模式。通过将 DBpedia 的数据和 RDF/XML 数据进行匹配, 得到两组数据间相关的连接共 134 条, 如图 9 所示, 关联连接把 RDF/XML 书目数据中作者和 DB
30、pedia 中的人物联系起来。用户可以通过这些连接来查看作者在 DBpedia 中的相关生平和事迹, 也可以通过 DBpedia 中的人物来查询图书馆书目数据中与其相关的作品和出版物。图 9 DBpedia 和 RDF/XML 数据间的 owl:same As 关系 下载原图同样, 对 DBpedia 和 RDA 数据中有语义关联的数据进行查找, 共发现两者间的owl:same As 关系 1 279 条, 其关联关系如图 10 所示, 通过对不同数据源之间进行关联匹配, 可以找到其中相同的部分并建立语义连接, 从而方便读者进行信息浏览和知识发现。图 1 0 DBpedia 和 RDA 数据间
31、的 owl:same As 关系 下载原图5 结语关联数据作为语义网的最佳实践, 在网络信息服务的各个方面都得到相关的应用和研究。本文以书目数据为研究对象, 提出了一种对不同格式的书目数据进行转换, 并基于 Map Reduce 模型将书目数据和其他的关联数据资源互相关联的方法, 为实现图书馆的关联数据服务提供了丰富的语义连接和技术实现。在后续的工作中, 笔者将研究把已经转换的书目关联数据发布在网上, 并提供针对语义关联的查询检索服务, 进一步实现对关联数据在图书馆信息服务中的应用。参考文献1Heath T, Bizer C.Linked Data:Evolving the Web into
32、a Global Data SpaceM.The 1st Edition.Morgan&Claypool Publishers, 2011. 2Bizer C, Heath T, Idehen K, et al.Linked Data on the WebC.In:Proceedings of WWW2008, Beijing, China.2008:1265-1266. 3The GeoNames Geographical DatabaseEB/OL.2013-07-12.http:/www.geonames.org/. 4Samwald M, Jentzsch A, Bouton C, e
33、t al.Linked Open Drug Data for Pharmaceutical Research and DevelopmentJ.Journal of Cheminformatics, 2011, 3 (1) :19. 5Bizer C, Lehmann J, Kobilarov G, et al.DBpedia-A Crystallization Point for the Web of DataJ.Web Semantics:Science, Services and Agents on the World Wide Web, 2009, 7 (3) :154-165. 6Linking Open Government DataEB/OL.2013-07-12.http:/logd.tw.rpi.edu/. 7Malmsten M.Making a Library Catalogue Part of Semantic WebC.In:Proceedings of the 2008 International Conference on Dublin Core and Metadata Applications.2008:146-152.