D2R在图书馆书目数据关联服务中的应用分析_图书馆论文

D2R在图书馆书目数据关联服务中的应用分析,本文主要内容关键词为:书目论文,图书馆论文,数据论文,D2R论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

      修回日期:2014-06-16 本文起止页码:132-138

      1 引言

      自2006年7月伯纳斯·李提出关联数据这一概念之后,书目数据关联服务逐渐成为图书馆界关注的热点之一。国际上,2008年瑞典国家图书馆将瑞典联合书目LIBRIS发布为关联数据[1],这是首个实现图书馆书目数据关联数据化的实例;2012年6月,OCLC将WorldCat.org中的书目元数据发布为关联数据[2],是目前Web上最大的关联书目数据。我国对关联数据的认识比较晚,2009年曾蕾将关联数据概念引入国内,之后涌现出大量的研究成果,白海燕[3-5]、沈志宏、张晓林[6]、黄永文[7]、范炜[8]、刘炜[9]等在研究国外相关项目的基础上,从技术实现和项目开发的角度全面系统地阐述了图书馆书目数据关联服务的可行性;欧石燕基于元数据层、本体层、关联数据层和应用层,提出了一个面向关联数据的语义数字图书馆资源描述与组织框架[10];司莉、李鑫等提出了一个基于关联数据的书目数据语义化框架,并使用D2R(Database to RDF)工具以武汉大学一定数量的书目数据进行具体实现[11];深圳大学图书馆NKOS研究室在《中国分类主题词表》一版基础上建立中文叙词表本体,继而构建和发布了书目数据关联服务[12]。

      但是,从理论上来看,国内目前的研究主要是引进与介绍国外成果,创新不足。实践上,面对庞大的、异构的图书馆书目数据集时,理论上构建的模式没有可操作性、难以推广;虽然深圳大学图书馆进行过一定的探索,但这些探索只是对既定词表的关联化,仍难以实现其与MARC数据的语义关联。有鉴于此,本文在调查图书馆书目数据服务现状与分析D2R优势的基础上,面向图书馆实际工作,应用D2R工具构建书目数据关联服务的实现框架,旨在普遍实现图书馆书目数据关联服务。

      2 图书馆书目数据组织现状

      2.1 调查背景

      书目数据关联服务的实现取决于相应图书馆系统的支持程度,为了解目前国内主流图书馆系统支持书目数据实现关联服务的现状,笔者于2013年12月~2014年3月选取全国112所“211”高校图书馆,从检索结果、FRBR化聚合、资源与服务的链接及与知识组织工具的关联等5个维度逐一检索、浏览其OPAC查询系统。

      2.2 调查情况

      通过调查,ILAS Ⅱ、汇文、MELINETS Ⅱ、SULCMIS、INNOPAC及ALEPH500 6个系统应用最为广泛。表1反映的是这些图书馆系统对书目数据关联服务的支持情况。

      2.3 调查结果分析

      2.3.1 检索结果分析 调查显示,被调查的系统都提供了基本的“字段名”显示格式,部分系统提供“MARC”显示格式,这些MARC数据都是以记录形式存在的,各个不同的元素被混合在同一条记录中,从中获取信息不但需要理解MARC字段的结构,还需要理解编目规则;此外,MARC的数据结构都是一维线性的,对于复杂的对象关系是固化在资源描述语言中的,没有提供明确的、规范化表达,不能进行调整,也不支持多维和立体的资源组织和展现方式。

      2.3.2 FRBR聚合作品分析 调查显示,虽然INNOPAC、HORIZON、UNICORN、ALEPH500系统提供基于责任者、主题、语种、载体形态、年代等书目层次关系的显示,但这只是将数量比较大的结果集划分为几大部分,每一维下按相同的特征进行集中,并没有区分实体层次和相关关系,缺少资源语义信息的形式化、规范化表达。

      2.3.3 资源与服务链接分析 网络环境下,OPAC系统应该充分实现对外部资源的无缝链接。调查显示,汇文、INNOPAC、HORIZON、UNICORN、ALEPH500可以兼容现有主流链接解析工具SFX,而ILAS Ⅱ、MELINETS Ⅱ、SULCMIS在此方面功能薄弱,只能通过书目信息中的“相关资源”与馆内外资源的链接。这些链接仅供读者去了解相关的书目信息,没有与网络上其他数据资源共享节点。

      2.3.4 与知识组织工具的关联 知识组织工具是指对自然语言进行控制并有利于提高检索效率的工具,具体包括图书分类表、主题词表、叙词表、Semantic Web、Taxonomies、Ontologies、Topic Maps等[13]。调查显示,深圳大学图书馆SULCMIS根据中文叙词表本体的需求和特点,实现了中文分类主题词表的Linked Data服务模块[12],一方面,提供所有叙词概念款目中的关联对象,并可通过关联对象的链接查询其详情;另一方面,实现检索的规范控制,而其他的系统目前则无法支持。

      2.4 调查结论

      通过以上分析,一方面,囿于MARC的数据编码方式,数据实体、属性及其间关系没有充分表达,数据的层次结构没有准确的划分,即资源描述语义化程度低;另一方面,因为图书馆书目数据一直封装在数据库中,虽然可以与外部资源进行形式链接,但是缺乏机器可识别的关联机制,内容上的语义链接程度不高。所以,图书馆必须积极采用语义网技术,实现书目数据的语义关联和资源服务的无缝链接。

      

      3 D2R实现书目数据关联服务的优势

      3.1 D2R工具自身的技术优势

      目前,能够实现图书馆书目数据关联服务的软件很多,例如D2R、Linked Media Framework、Virtuoso Universal Server、Pubby、Linked Data API/Elda、OAI2lod Server等,但是从功能、特点来看,D2R具有难以比拟的优势,见表2。

      通过表2比较发现,D2R支持任何关系型数据库的数据转换,通用性很强;提供标准的转换和发布,支持灵活的映射配置文件;生成虚拟Linked Data,保证数据库内容更新简易。Linked Media Framework针对大批量关系型数据库数据无法提供一次性转换操作;Virtuoso Universal Server目前只提供Linux的开源版本;Pubby、Linked Data API/Elda、OAI2lod Server无法支持多个数据集同时查询。

      

      3.2 D2R的数据组织优势

      3.2.1 提供了跨系统跨平台的互操作通用语言 在创建数据和传递数据方面,D2R扩展了图书馆以前使用的共享模型,其中的数据集是可共享、可扩展和重用的;在数据和用户服务方面,D2R具有支持多语言的功能,概念的多语言标签通过language-agnostic URIs标识[14]。利用D2R技术,各个图书馆可以合作对资源进行描述,也可以参引其他机构或者个人对资源进行描述的数据。

      3.2.2 使用了统一资源标识符 D2R用统一资源标识符(URI)标识作品、地点、人物、事件、主题或者相关概念,利用标识符,图书馆的资源可以跨领域得到广泛的参引,图书馆描述性元数据可以被广泛获取;数据发布者可以将发布的数据信息的部分内容作为“声明”信息[15]。在当前的文档系统中,数据的交换总是以整条记录的形式进行的,每条记录都视为是一个完整的描述,而在图示化的系统里,每个机构都可以为资源提供单个“声明”信息,所有关于某一特定标识资源的“声明”都可以整合到一张图示中,图书馆服务从外部资源获取以上这些“声明”信息[16]。

      

      图1 图书馆书目数据关联服务的系统设计

      4 基于D2R的图书馆书目数据关联服务的框架设计

      4.1 系统设计

      系统设计主要包括数据源的构建、SQL Server数据库的构建、D2R Sever发布关联数据,见图1。

      (1)数据源主要来自图书馆结构化的书目数据和网络资源,并参照FRBR结构模型对图书馆书目数据进行解析,按照相关性进行聚类。

      (2)应用SQL Server构建名为Bil的数据库及相关数据表。

      (3)通过路径设置、概念映射和数据映射,实现SQL Server关系型数据库的RDF标注,D2R提供HTML、RDF、Sparql三种格式显示。

      4.2 详细设计

      基于D2R的图书馆书目数据关联服务框架的详细设计主要包括数据集的构建、书目数据库及数据表的构建、内部数据关联的构建、D2RQ(Database to RDF Query)语义映射。

      4.2.1 数据集的构建

      (1)图书馆书目数据。图书馆MARC格式包含几百个字段,揭示了书目信息的各个方面。每一个字段的目的、格式和内容在MARC标准中有清晰的定义,但是大量字段对于用户来说是毫无意义的,因此笔者选取了大多数书目数据中都存在能够反映文献内容、能够把不同书目记录区分开来的字段。

      (2)网络信息资源。论文中的数据集主要从Wiki中手工抽取,MediaWiki提供的所有编辑、链接、元数据标注都是在文章的文本内、通过增加特殊的语法结构来完成的。因此,通过解析文本语法,可以获得结构化的信息。

      (3)数据集的形成。本文依照FRBR概念模型对图书馆书目数据进行聚合,以作品为中心,为每一个作品建立一条主干记录,同时建立许多分支记录。分支记录揭示同一作品的不同内容表达、载体表现和文献单元,同时连接相关作品的相关记录。这样,记录通过相互关系形成一个数据网,具体聚合关系如图2所示。

      

      图2 书目数据实例中FRBR聚合关系

      4.2.2 书目数据库及数据表的构建

      (1)建立Bil数据库,如下:

      CREATE DATABASE Bil ON PRIMARY

      (2)在Bil数据库中,依次建立作品表、责任者、出版者表,如下:

      作品(题名、ISBN、责任者ID、出版者ID、出版时间、语种、摘要、主题、复本、状态、分类号);

      责任者表(ID、责任者姓名、别名、性别、国别、出生日期、出生地点、死亡日期、受影响者、施影响者、评价、图片);

      出版者表(出版者ID、出版者名称、性质、主营业务、级别、城市、具体地点、邮编、隶属机构、主管、分机构、营业时间)

      4.2.3 内部数据的关联关系构建

      (1)不同表之间的关系。基于外键引用的表间关系,即一个表中的非主属性来自于另一个表的主属性。例如,作品表中,作品的主题属性,引自主题数据表概念_id;出版者表的城市属性,引自主题数据表概念_id属性。对这些数据进行关联数据发布时,应表达这些在数据库中显性构建的关联关系。

      基于属性关联的表间关系,例如作品和责任者,都有责任者属性,表明两者存在一定的关系,当使用SQL语句(Selcet作品,责任者where作品,责任者ID=责任者,姓名ID,则可以得到作品与责任者基于相同人物的关联关系。

      (2)同一表的内部关系。一个表及其列代表一个实体及其属性之间存在的一对多的关系,可通过Class-Map及PropertyBridge的描述来实现。而对于同一表内所包含的内在实体关系,D2RQ映射语言提供对SQL语言中的“别名”的支持,即d2rq:alias区分不同的逻辑对象,再利用d2rq:join进行关系描述[17]。因此,可以通过使用别名,实现同一表内部关系的提取,并将这种关系在关联数据中转换为RDF链接。

      4.2.4 D2RQ语义映射

      (1)D2R的映射机制。在D2R中,D2R Server利用D2RQ Enging中的D2RQ Mapping将SQL Server数据库中的数据换成RDF格式,如图3所示。

      

      图3 D2R结构体系[18]

      D2R Server是一个HTTP Server,它的主要功能是提供对RDF数据的查询访问接口,以供上层的RDF浏览器、SPARQL查询客户端以及传统的HTML浏览器调用。D2RQ Engine的主要功能是使用一个可定制的D2RQ Mapping将关系型数据库中的数据换成RDF格式。D2RQ Engine并没有将关系型数据库发布成真实的RDF数据,而是使用D2RQ文件将其映射成虚拟的RDF格式[19]。该文件的作用是在访问关系型数据时将RDF数据的查询语言SPARQL转换为RDB数据的查询语言SQL,并将SQL查询结果转换为RDF三元组或者SPARQL查询结果。

      (2)SQL Server与关联数据的转换。在SQL Server关系数据库与RDF的映射实现研究方面,本文采用Lu Yanhui[20]等提出的方法,即通过抽取关系模型的语义并映射到RDF模型,关系模型和三元组之间的映射转换关系可描述为概念映射和数据映射两个方面,具体见表3。

      通过表3可以看出,类与实体的映射体现为表与RDF类的映射,即表映射为RDF三元组中的主体或客体,表的主键映射为主语或对象的URI;数据属性的映射,即二维表的列对应为三元组中的谓词,其行数据映射为文本对象;对象之间的语义关系通过RDF链接来表达。

      

      (3)SQL Server关系型数据库的映射。将SQL Server的驱动JDBC下的Jar包放在D2R Server的lib目录下,并在系统的Class环境变量中增加该驱动的路径,实现SQL Server与D2R Server的连接。

      在命令行中进入D2R所在的路径,执行生成映射文件的命令,实现SQL Server的D2RQ Mapping。

      (4)数据表的映射。数据表的映射主要包括三方面:从数据库中选择关联的数据表,形成记录集;利用D2R Sever中的the d2r:groupBy columns对记录集表进行分类形成分类记录集;构建实体实例及标识;将分类记录集映射为数据属性,如图4所示。

      

      图4 D2RQ映射流程

      这个映射流程主要通过自动映射和手工添加映射来实现:

      ●自动映射。在linked data中,每一个表自定义为一个类,并为每个表设置主外键,D2R通过主外键关系自动为其创建RDF关联。具体做法为,如果一个表A被表B外键引用,则为A对应的ClassMap创建一个PropertyBridge,其中d2rq:belongsToClassMap为A所对应的ClassMap,d2rq:refersToClassMap为B所对应的ClassMap[21-22]。这样,在浏览A的实例资源时,便可以通过该PropertyBridge跳转到B的实例资源。

      ●手工添加映射。很多数据之间虽然有联系,但创建者们并没有为之建立主外键的关系,可以手动地修改Mapping文件,为之建立一些必要的关联。其创建方法如下:在某一数据库中,都含有属性C的数据表,数据表A中的数据是从Hompage上抽取的,数据表B中的数据是从Wikipedia上抽取的,这两张表并没有主外键的关联。可以人工定义一定的规则(关系属性,如WikiInfor),将Homepage这个类资源与B这个类资源关联起来。

      4.2.5 使用D2R发布关联数据

      (1)URI模式定义。D2RQ映射语言有4种方式:绝对URI模式(URI Pattern)、相对URI模式(Relative URI Pattern)、URI列模式(URI Columns Pattern)和空节点模式(Blank Nodes Pattern)[23]。

      本文采用绝对URI模式,即使用d2rq:uriPattern属性对每个表对象进行配置,形如作品/@@作品.责任者ID@@,“/”前面的部分为表名,后面“@@”之间的部分为表的列[9]。

      (2)运行与实施。生成映射文件、URI模式定义之后,通过D2R服务启动脚本d2r.server.bat,执行以上操作所成生的映射文件,启动关联数据的Web发布服务D2R Server。执行命令:D:/d2r-server/d2r-serveroutfile.n3启动服务,成功启动后,在浏览器中输入访问地址http://localhost:2020,显示D2R Server的运行入口页面,分别提供了HTML浏览、RDF浏览和SPARQL查询端三类功能。从图5可以看到,数据表作品、责任者、出版者等已经作为类显示。

      

      图5 书目数据实例D2R Server的运行界面

      图6显示的是“作品”的详细信息。

      

      图6 书目数据实例“作品”类数据

      4.2.6 与外部数据集的关联构建

      (1)与常量的关联,即为每一个资源增加一个属性,通过类映射的d2rq:constantValue,为这个属性关联一个常量[24]。与常量关联的编码如下:

      map:personClassMap a d2rq:ClassMap;

      d2rq:class:person;

      map:seeAlsoBridge a d2rq:PropertyBridge;

      d2rq:belongsToClassMap map:PlaceClassMap;

      d2rq:property rdfs:seeAlso;

      d2rq:constantValue<http://zh.wikipedia.org/wiki/luxun>:

      其中,rdfs:seeAlso带有一个固定的URL对象,连接到每个map:placeClassMap类映射的实例中,即为每一个人物类增加了一个Wikipedia的地名概念。

      (2)与词表的关联。D2RQ提供了附加类定义(d2rq:additionalClassDefinition)和附加属性定义(d2rq:additionalPropertyDefinition)[24],分别与类映射和属性映射相对应,能够为私有的类和属性词汇建立与通用词表之间的映射。

      与通用词表的关联编码如下:

      map:AuthorClassMapa d2rq:ClassMap;

      d2rq:class:creator;

      d2rq:additionalClassDefinitionProperty

      map:creator Equivalence.

      map:creator Equivalence a d2rq:AdditionalProperty;

      d2rq:propertyName owl:equivalentClass;

      d2rq:propertyValue foaf:person.

      其中,通过附加一个类映射creator Equivalence,为creator类与通用的foaf:person类建立了映射关联,通过附加一个属性映射workTitleEquivalence,为Title建立了与dc:title的映射。而foaf:Person、dc:title也能够像creator和Title一样,参与SPARQL的模式查询,实现诸如(additionalName,ANY,ANY)、(URI,ANY,additionalName)和(URI,additionalName,ANY)的模式匹配查询。

      4.2.7 SPARQL查询端

      (1)创建D2RQ model。该步骤需要注意的是,创建model时需要指定Mapping文件的路径,路径可以是绝对路径,也可以是基于工程根目录的相对路径,路径之前必须加上前缀“file:/”,例如,Model D2RQ m=new ModelD2RQ(“file:/D:/Bil.n3”)。

      (2)SPARQL语言。SPARQL查询语句[26]需要有命名空间(元数据)的前缀说明,并且声明必须与Mapping文件的前缀相一致。在执行SPARQL语句时,需要指明要执行的语句以及所依附的D2RQ model。同时,D2R提供了一些类似SQL的接口去获取每个查询结果项。在构建查询命令时,如果需要查询某一具体实例资源的属性值,在写SPARQL语句的时候注意需要将路径用“<>”引起来,如图7所示。

      

      图7 书目数据实例SPARQL查询端

      5 基于D2R书目数据关联服务框架的应用价值

      本文尝试了将D2R应用于书目数据以解决传统书目数据语义化程度低的问题,在调查分析图书馆书目数据组织现状并分析D2R的技术与实践优势的基础上,构建基于D2R的书目数据关联服务的框架,可以充分地将书目数据和其他数据融合起来,使书目信息更加丰富和完整,不仅能提高数据的结构化程度,还可以扩大数据的组织对象,更能促进数据服务的功能嵌入。

      5.1 提高数据的结构化程度

      D2R依据RDF模型实现“资源—属性—属性值”的形式表达,使用URI来标识不同的对象,并将不同的URI连接起来,清楚地表达对象间的关系。为揭示对象间关系而由URI连接而成的RDF有向图,摆脱了MARC所隐含资源结构的限制,可以更加灵活地表达知识或资源,使数据之间的关系显性化和语义化关联[27]。同时,这种以通用的格式(RDF)发布的图书馆数据,易于被其他系统汇聚和利用。

      5.2 扩大数据的组织对象

      D2R使用URI标识事物,对象从信息资源扩大到描述事物。URI用来识别作为资源公开给Web的事物,这种URI是基于HTTP的URI,即可供定位和参引这些信息节点,并在参引URI时提供关于这些资源的有用信息,以便在公开的数据中包含对其他相关URI的链接,改进Web上信息发现的手段。

      通过相关URI的链接,关联数据将各种数据源无缝地关联起来,将图书馆资源建成一个广域分布的数据库。尤其重要的是,关联数据对关系形式化描述,形成一张关系地图,使得机器可以通过理解和处理数据之间的各种关系,发现新的数据。通过关联数据,图书馆系统可以按图索骥,集成更多的信息与功能。

      5.3 促进数据服务的功能嵌入

      URI是一种深度的数据嵌入,甚至是功能嵌入。图书馆将现有的指代性元数据(surrogate metadata)和对象结合起来,使图书馆的OPAC不只是图书馆馆藏的描述,而是利用关联数据提供更多的信息[28],这样用户可以通过移动终端访问OPAC来获取和具体馆藏相关联的整个知识对象,加强图书馆目录服务的功能。

标签:;  ;  ;  ;  ;  ;  ;  ;  

D2R在图书馆书目数据关联服务中的应用分析_图书馆论文
下载Doc文档

猜你喜欢