This paper analyses the present Interlib Web OPAC bibliographic query system and using Google Android system to design a mobile library bibliographic query system. It also illustrates the design strategy and detailed steps.
Interlib Web OPAC被厦门图书馆等省市图书馆和其他高校图书馆采用,是一种应用比较广泛的联机公共书目查询系统(Online Public Access Catalogue,OPAC)。目前,国内大部分的移动书目功能是通过WAP实现,通过手机WAP地址访问图书馆网站查询书目。本文在深入分析Interlib Web OPAC书目查询运行机制的基础上,提出了基于Android的Interlib移动书目查询的设计,实现了在移动环境下对图书馆书目的移动查询。其优势是不需要设计和部署一个WAP网站,也不需要对原有的系统进行任何的改造和接口编程,直接利用现有的Interlib Web OPAC,并且可以在一个系统内查询国内其他采用Interlib Web OPAC系统图书馆的馆藏图书信息。
移动互联技术渗透至数字图书馆信息领域,一种崭新的以手机为移动终端的数字图书馆服务方式——基于手机服务的“手机图书馆”被提出[ 1]。随着移动通信和互联网的快速发展,特别是3G技术的不断普及,越来越多的人们利用手机、智能MP4、MID、平板电脑等智能移动设备使用互联网服务,与此同时图书馆也将信息服务扩展到移动平台上,使得图书馆的资源可以超越地理空间的限制,真正实现图书馆所追求的信息服务无处不在、无时不在的目标[ 2]。图书馆的联机公共书目查询系统是用户从图书馆获取信息的最基本最直接的手段。书目查询是手机图书馆中重要的组成部分[ 3]。
数字图书馆的服务组织是围绕“以用户为中心”[ 4]的模式进行的,构建移动书目查询服务是为了方便用户快捷地获取图书馆的资源。河源职业技术学院图书馆采用的是Interlib Web OPAC系统,为了使读者能在移动环境下搜索馆藏的图书资源,其进行了移动书目查询服务的开发工作。通过分析现有的Interlib Web OPAC系统的运行机制,笔者发现可以通过构造URL提交搜索参数,解析返回的XML信息,获取馆藏图书资源的信息。同时结合目前较流行的Android系统[ 5, 6, 7],开发了基于Android的Interlib移动书目查询。
(1)搜索URL参数分析
Interlib Web OPAC对馆藏资料的搜索参数包含在URL中,以GET的形式提交参数。例如在Interlib Web OPAC中按照系统的默认搜索参数对题名为Android的馆藏资源搜索。以笔者所在学校图书馆的Interlib Web OPAC为例,其书目查询界面如图1所示:
其搜索URL为:
http://library.hycollege.net/opac/websearch/bookSearch?pageNo=1&filter=%28title%3AAndroid%29+AND+%28hasholding%3Ay%29&cmdACT=list&xsl=BOOK_list.xsl&mod=oneXSL&columnID=1&searchSign=&bookType=all% 3Aundefined&marcType=undefined%3A%E5%85% A8%E9%83%A8&libNUM=5&ISFASTSEARCH=true&hasholding=y&col1=title&val1=Android&matching=radiobutton&marcformat=all&booktype=all&startPubdate=&endPubdate=&sortSign=score_sort&orderSign=true&raws=10&hasholdingCheckbox=y
从搜索的URL中可以得到搜索参数和搜索选项对照关系,如表1所示:
(2)Interlib Web OPAC书目查询搜索结果分析
提交图书搜索请求后,Interlib Web OPAC将搜索到的图书结果以XML形式返回,然后调用相应的XSL显示书籍的信息,并将信息在浏览器中呈现。返回的XML片段如下:
……
……
……
从返回的XML文件,可以得到 XML元素与元素含义对照表,如表 2 所示:
(3)设计思路
在基于Android系统的智能移动设备中构造基于题名、著者、ISBN、主题等的图书信息搜索URL,向Interlib Web OPAC发送图书搜索请求,解析返回的XML文件,得到图书的相关信息;如果用户要查看图书的馆藏情况,则构造一个显示图书馆藏信息的URL发起请求,解析返回包含馆藏信息的XML文件,显示图书的馆藏信息。具体的设计流程如下:
①在移动OPAC系统查询界面输入要查询的图书的相关信息;
②移动OPAC系统构造查询URL向图书馆的Interlib Web OPAC发送图书搜索请求;
③解析Interlib Web OPAC返回的XML文件,并使用Android Widget 中的ListView显示图书的书名、著者和出版时间;
④点击选择相应的图书后将跳转另一个Activity,显示图书的详细信息和图书的馆藏信息(摘要);
⑤点击图书的条码号,弹出窗口显示图书的详细馆藏信息。
获取用户输入的图书信息(图书的题名、著者、主题等信息),由于搜索参数是在URL中以GET的形式提交的,因此要先对参数进行UTF-8的编码转换,再构造搜索的URL,发起HTTP请求。解析返回的XML信息,定义了图书信息实体类BookItem,对应图书的相应的信息,图书信息解析类ReadBookInfoHandler继承org.xml.sax.helpers.DefaultHandler类,负责对XML的解析,将解析的图书信息绑定到ListView中显示。具体流程如图2所示:
图书信息显示界面如图3所示:
在图书详细信息显示界面中显示图书的详细信息和馆藏摘要信息,馆藏摘要信息通过构造图书的详细结果列表URL,解析并分析返回的XML,获取图书的馆藏信息。定义图书馆藏信息实体类BookStateItem,对应图书的相应的馆藏信息,图书馆藏信息解析类BookStateHandler负责对XML中的馆藏信息进行解析。图书详细信息显示界面如图4所示:
部分程序代码如下:
……
b.putString("title", feed.getItem(position).getTitle());//传递图书的题名信息
……
private String detailURL="http://library.hycollege.net/opac/websearch/bookSearch?
cmdACT=detailmarc&xsl=listdetailmarc.xsl&bookrecno=";//构造查询图书详细信息URL
this.BOOKRECNO=bundle.getString("BOOKRECNO");//得到图书的图书记录号
feed=getFeed(detailURL+BOOKRECNO);//获取图书的详细信息和馆藏信息
……
itemlist.setAdapter(adapter);//绑定图书详细信息到ListView
首先绑定ItemList的点击事件,获取图书的条码号、索书号、馆藏状态、所在馆位置、借阅次数、续借次数信息,并使用Android中的对话框显示。图书馆藏详细信息显示界面如图5所示:
利用Android系统强大的网络功能,依托现有的Interlib Web OPAC系统,实现了移动书目查询。并且只要是采用Interlib Web OPAC系统的图书馆都可以快速实现移动书目查询服务。采用Interlib Web OPAC的图书馆要创建移动图书查询服务,只需将搜索URL的域名修改为所在图书馆的域名。同时,根据本文的移动查询设计技术思路,可以在WM、Symbian、iOS系统中实现相同功能的Interlib移动书目查询。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|