基于Google图书搜索引擎的Web OPAC图书预览功能实现
叶红卫
河源职业技术学院电子与信息工程学院 河源517000
摘要

将Google 图书搜索引擎嵌入到Web OPAC中,实现Web OPAC的图书预览功能,并详细介绍实现的技术思路和具体实现步骤,利用Web OPAC为用户提供更好的信息服务。

关键词: Google Book Search API; 图书预览; 书目查询
中图分类号:G250
Implementation of Book Preview Service in Web OPAC Based on Google Book Search API
YE Hongwei
Abstract

This paper applies the book preview service in Web OPAC based on Google Book Search API. The author illustrates its design strategy and detailed steps,from which Web OPAC users can experience a better information service.

Keyword: Google Book Search API; Book preview; Book search
1 引 言

联机公共书目查询系统(Online Public Access Catalogue,OPAC),是利用计算机终端来查询馆藏数据资源的一种现代化检索系统。它从功能简单的第一代 OPAC发展到基于网络的Web OPAC (基于Web的联机书目检索服务),功能一直在不断扩展。OPAC的基本功能包括:查询、揭示图书[ 1]。随着Web2.0技术的发展,图书搜索引擎和网上书店逐渐兴起,其良好的搜索界面和丰富的检索功能,冲击着图书馆Web OPAC。在现有的数字信息环境下,将图书馆提供的网络服务无缝嵌入用户的工作与学习环境中,使用户在需要时可以随时利用信息而不必离开自己熟悉的环境,已经成为图书馆服务的一种发展趋势[ 2]。本文将Google Book Search API嵌入到Web OPAC中,与现有的OPAC系统功能进行整合并提供图书预览功能,适应读者对图书信息新的需求。

2 需求分析与设计思路
2.1 应用现状

数字图书馆正在尝试推行“嵌入到用户信息使用环境”的服务[ 3]。文献[4]对中国科学评价中心第6次发布的中国大学排行榜“2009年我国重点大学排名前30强”的图书馆OPAC系统进行调查,各大Web OPAC系统提供的书目信息显示,包含了封面图片、基本录著内容、MARC格式、相关主题、摘要等内容,在与其他资源链接方面提供与Google、百度、当当网上书店以及豆瓣网站的相关信息的链接。这样的链接只是提供了资源的跳转,并没有

做到真正意义上的嵌入式服务,用户还是要脱离图书馆的Web OPAC系统进行浏览。在用户新的信息需求和信息行为的要求下,这些功能还是远远不够的,图书预览功能为读者提供更直接的了解图书各种信息(如章节内容等)的方式。笔者对上述30所大学的图书馆OPAC系统进行访问,发现目前各个高校的图书馆Web OPAC都没有提供图书预览功能。

2.2 需求分析

数字图书馆的服务组织是围绕“以用户为中心”[ 5]的服务组织模式进行的,构建Web OPAC的系统功能,也应体现“以用户为中心”的服务理念,方便用户快捷地获取图书馆的资源,而不用脱离熟悉的OPAC系统环境。图书预览功能正是为了用户更好地获取图书信息,将图书内容以“可视化”的方式呈现在用户面前,为用户选择合适的图书提供了“一站式”的信息服务;还可以自动地识别图书的预览可用信息,并以嵌入的形式整合在现有的Web OPAC功能当中。图书预览功能的实现采用轻量级的、异步调用的形式,无须安装浏览器插件,可以在主流浏览器如IE、Firefox、Opera等进行浏览。

2.3 技术思路

用户在Web OPAC书目检索中,基于题名、著者、ISBN、主题等进行图书信息搜索,在图书馆数据库中查找到书目信息,则在书目的信息中嵌入图书内容预览功能。具体技术思路如图1所示:

图1 Web OPAC图书预览功能实现技术思路

(1)用户通过Internet连接到图书馆的Web OPAC书目检索系统,通过表单提交检索信息,发送书目查询请求,Web OPAC在图书馆数据库进行查询,查询到要检索的图书,返回题名、出版发行、载体形态、摘要、馆藏信息等书目相关信息。

(2)获取该图书的ISBN码,通过Google Book Search API查询Google图书搜索数据库,返回该图书的内容预览信息。

(3)识别返回的包含图书预览信息的XML文件,生成图书预览相关信息。

(4)装载图书预览,返回图书预览到客户端。

3 功能实现
3.1 实现环境与步骤

在“以用户为中心”的服务理念下,本校原有的Web OPAC系统已经跟不上Library 2.0的发展步伐。目前正在开发一个“以用户为中心”的Web OPAC系统,该系统采用ASP.NET 技术,其主要功能模块如图2所示:

图2 系统的主要功能模块

将图书预览功能嵌入到书目检索模块中,当用户进行书目检索时,在本地Web OPAC检索的同时调用Google图书搜索引擎进行图书预览信息的获取,并在检索结果页面显示图书的预览信息。图书预览功能的实现步骤如表1所示:

表1 图书预览功能实现步骤

Google图书搜索引擎的调用是基于JavaScript的,在Web OPAC的功能页面中嵌入一段JavaScript代码即可完成调用。然而,关键的问题是用户检索图书的预览信息从何处获取与识别,并且如何与所采用的Web OPAC系统整合在一起,Web OPAC系统和Google图书搜索引擎如何协同处理图书信息。对于上述关键问题,本文给出了解决的方法和实现步骤,这是本研究的主要工作和创新点。图书馆自动化系统的设计者可以利用该方法和实现步骤,将图书预览功能嵌入到现有的汇文、INNOPAC等图书馆自动化系统中,为用户提供更好的图书信息服务。

3.2 获取图书预览信息

(1)获取图书XML信息

Google 图书搜索的图书预览方式按版权拥有者的授权为标准,分为4类:全书预览(Full View)、部分预览(Limited Preview)、摘录视图(Snippet View)、无预览(No Preview)[ 6]。在获取图书的ISBN码后,构造搜索请求到Google 图书搜索引擎。如果搜索到该图书的信息,则返回一个搜索结果的XML文件。返回的书籍搜索结果的主要信息如下:

<?xml version='1.0' encoding='UTF-8'?>

<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:gbs='http://schemas.google.com/books/2008'

……>

<gbs:embeddability value='http://schemas.google.com/books/2008 embeddable'/>

<gbs:openAccess value='http://schemas.google.com/books/2008 disabled'/>

<gbs:viewability value='http://schemas.google.com/books/2008 view_partial'/>

……

从上述的XML信息可以看出,元素<gbs:embeddability>定义图书的嵌入预览类型,元素<gbs:viewability>定义图书的预览类型,具体的预览类型和嵌入类型如表2所示:

表2 预览类型和嵌入类型一览表

(2)生成相应的提示文本和按钮

LINQ to XML开发者提供了一系列新的XML编程API。这是一套轻量级的、在内存中进行操作的API[ 7]。基于LINQ to XML的优点和ASP.NET开发环境对其良好的支持性,采用LINQ to XML对返回的XML进行识别。运行结果界面如图3所示:

图3 书目检索结果详细信息

主要程序代码如下:

……

//从本地Web OPAC书目检索页面的URL中获取用户检索图书的ISBN码

string isbn = Server.HtmlEncode(Request.QueryString["q"]);

bookisbn.Value = "ISBN:" + isbn;

//使用获取的ISBN码构造Google图书搜索URL

string url = "http://www.google.com/books/feeds/volumes?q=ISBN"+isbn;

XNamespace ns = "http://schemas.google.com/books/2008";

//装载返回的搜索结果XML信息

XElement tags = XElement.Load(url);

//获取元素的值

var BookViewStatus= tags.Descendants(ns + "viewability");

string[] sArray={};

foreach (var viewstatus in BookViewStatus){

//使用“#”分割得到的元素的值,得到图书的预览状态信息

sArray = ((string)viewstatus.Attribute("value")).Split('#');

}

//生成相应的图书预览信息文本

switch (sArray[1]){

case "view_all_pages":

Label1.Text = "全书预览";

break;

……

}

3.3 装载图书预览

Google Book Search API中的Embedded Viewer API[ 8]允许将图书预览内容直接嵌入到网站。当用户点击书籍预览中的“查看”按钮时,这时浏览页面上弹出嵌入窗口,装载图书预览。具体实现步骤如图4所示:

图4 装载图书预览流程

(1)定义装载区域

根据Embedded Viewer API的调用要求,在装载图书预览前先定义装载位置,在页面定义一个装载位置的DIV。代码如下:

(2)加载Embedded Viewer API

在页面中嵌入JavaScript代码操纵Embedded Viewer API,完成图书预览加载前的准备。主要程序代码如下:

(3)装载图书预览

若图书处于可预览状态,当用户点击页面中的“查看”按钮时,先获取图书的ISBN码,再在弹出的嵌入窗口中装载图书预览。为了让用户拥有更好的图书预览体验,应用jQuery进行调用装载图书预览和jQuery UI 进行页面布局。运行界面如图5所示:

图5 图书预览界面

4 结 语

利用Google图书搜索引擎的强大功能,为现有Web OPAC提供了图书预览功能。本地图书馆Web OPAC系统和Google图书搜索引擎协同处理用户检索的图书信息,将图书馆馆藏资源和Google图书搜索网络资源整合在一起,为用户提供了更好地了解图书信息的方式,并将其整合呈现在用户面前,提供更为丰富的信息服务和服务体验。

参考文献
[1] 李淑芬. 图书馆OPAC与图书搜索引擎、网上书店的功能比较和启示[J]. 图书馆建设, 2008(6): 49-51. [本文引用:1]
[2] 周虹. 基于Google工具栏定制图书馆个性化工具栏[J]. 现代图书情报技术, 2009(6): 66-69. [本文引用:1]
[3] 李明伍. 图书馆电子资源OpenSearch搜索插件开发与实现[J]. 现代图书情报技术, 2010(4): 92-96. [本文引用:1]
[4] 司莉, 陈新元. 我国高校图书馆OPAC系统的功能调查与优化对策[J]. 现代图书情报技术, 2009(7): 28-31. [本文引用:1]
[5] 聂娜, 翟晓娟. 以用户为中心的新型OPAC系统[J]. 现代图书情报技术, 2009(3): 85-90. [本文引用:1]
[6] Getting Started Guide-Google Book Search APIs[EB/OL]. [2010-07-03]. http://code.google.com/intl/zh-CN/apis/books/docs/getting-started.html. [本文引用:1]
[7] 陈黎夫. LINQ实战[M]. 北京: 人民邮电出版社, 2009. [本文引用:1]
[8] Google Book Search Embedded Viewer API Example[EB/OL]. [2010-07-03]. http://code.google.com/intl/zh-CN/apis/books/docs/viewer/examples/book-dataapi/titlesearch.html. [本文引用:1]