又一个开源OPAC——Fac-Back-OPAC

    独立于ILS的新OPAC越来越多,不少还是开源的,最近出现的例子就是Fac-Back-OPAC (faceted backup OPAC),一个分面OPAC,可作为图书馆集成系统OPAC的替代品。

    项目源于Casey Durfee在今年code4lib会议上提出的250行左右的“开源Endeca”代码,使用Solr(http://lucene.apache.org/solr)和Django(http://djangoproject.org/),可以实现类似于Endeca和AquaBrowser的分面功能。Casey在西雅图公共图书馆采用杜威分类法的Horizon系统上实现。
    Dan Scott下载Casey的代码后,用于Laurentian大学图书馆,该馆是采用国会分类法的Unicorn系统。据称只花了两个晚上就有不错的表现了。
    Mike Beccaria同样使用Casey的代码并加以强化,现在Paul Smith学院已经使用了Fac-Back-OPAC。
    Casey也加入该项目,并贡献出称为Helios的最新代码,具有标签云及其他功能。目前可以在西雅图公共图书馆目录中看到挺有意思的标签云显示选项。
    Mike Beccaria和Dan Scott在最新一期Computers in Libraries上发表文章 "Fac-Back-OPAC: An Open Source Interface to Your Library System" 介绍该项目。文章最后说,Fac-Back-OPAC尚在幼年期,还有很多成长的空间。Paul Smith学院打算在今秋监测用户行为,在基于用户需求与检索行为的前提下继续开发。打算强化的附加功能如用户书单、杜威法/LC主题浏览、全MARC显示,或者Web 2.0工具如标签、用户评论。作者们期望感兴趣者的加入。

    文章中有一节(Technology Building Blocks),介绍Fac-Back-OPAC的实现方法,称其成功大部分直接归功于那些开源组件:Solr, marc4j, Django。文后还有相关软件链接(More About the Software and Sites Mentioned in This Article)。
    从MARC记录经过处理成为一个可检索文件的生命周期如下,可供新型OPAC开发者参考:

第一步:从ILS到MARC
像北卡州及其他机构一样,在ILS之外建立目录,始于每晚导出所有MARC记录与馆藏记录。在首次导出后,可以只导出新的或有变化的记录,以更新Fac-Back-OPAC中的实例(instance,记录集?)。

第二步,从MARC到MARCXML:使用marc4j和Jython
由于MARC格式不适合传统搜索引擎标引,因之使用marc4j库将每条MARC记录转换成更易于处理的MARCXML格式。由于Solr只能理解UTF-8,还要将所有记录由MARC-8转换成UTF-8。此外,使用Jython编程语言(运行在Java虚拟机上的Python编译器)以控制marc4j,并用简单的Python句法以控制其余索引过程。

第三步,索引记录:使用Solr
Solr搜索解决方案建立在提供Web服务的企业级Lucene搜索引擎上,简化文件索引、增加附加功能如分面检索结果。每个Solr实例可配置一个Schema,描述文件的字段,以及这些字段的类型(如文本型、日期型或整数型)。Fac-Back-OPAC使用一个带书目Schema的Solr实例,运行于Jetty应用服务器。处理每个MARCXML记录,抽取感兴趣的字段用于分面与索引,生成一个XML文件,作为一个字串,发送到Solr实例,用于通过HTTP POST方式做索引。

第四步,检索界面:使用Django
Django是一个流行的Web应用框架,以Python写成,实现模型-视图-控制器(model-view-controller, MVC)模式,还能提供对一些特性的支持,如缓存搜索结果供展示、翻译成不同的语言、设定RSS种子。只需编辑HTML格式的模板,就可以定制Django的三个模板,即最初检索屏、检索结果页及详细显示页。

相关链接:
Google Code网站上的项目主页:
fac-back-opac: Faceted online public access catalogue; use as an alternate interface
论文:
Fac-Back-OPAC: An Open Source Interface to Your Library System / by Mike Beccaria and Dan Scott. Computers in Libraries, October 2007 (Vol. 27 No. 9)
实例:
西雅图公共图书馆目录(http://catalog.spl.org/catalog/)
Paul Smith学院目录(http://library.paulsmiths.edu/catalog/
[update 2007-10-8: 相关截图见Google Docs共享的演示文稿]

关于开源OPAC,参见:
开源OPAC发布:VuFind (2007-07-23)
二小时建立分面OPAC (2007-04-08)
AADL的新版OPAC (2007-01-22)
开源OPAC也精彩 (2007-01-14)
从获奖看国外流行的开源软件 (2006-12-07)

《又一个开源OPAC——Fac-Back-OPAC》上有6条评论

  1. 这么及时地得到新的而且全面的开源OPAC信息,非常感谢!很是,从另一方面看,用户还是不会来,很可惜.可能从找已知和指定文献来说,这些OPAC很有用,但是,问题在于这种查找是少数的,而且用户的口味已经变了。OCLC Perceptions of Libraries and Information Resources (2005) 报告指出 84% 的被调查的人(来自多国)的都将检索引擎作为查询起点, 仅1%从图书馆的网站开始,2%从主题性的网站(估计是数字图书馆)开始。大学生仅2% 从图书馆的网站开始 (p.1-17) 。估计这个数字现在更糟。 这些开源库如果愿意公开数据,那么自己也就已成为一个data service, 则应当也可以向其它OAI harvesters和检索引擎充分展现(expose)自己的数据。现在已有给MARC的OAI XML Schema, http://www.openarchives.org/OAI/1.1/oai_marc.xsd. 这使得愿意公开数据的人非常容易成为支持OAI的数据提供者(data providers), 并注册。不知道有没有中文目录或是自图书馆已试验先公开一部分数据,哪怕是用简单的static 的方式。
    不好意思,现学现卖,算是抛砖引玉吧。

  2. 独立于ILS之外的问题是预约和续借等涉及数据更新问题,比较难解决。当然,如果仅立足于馆藏的揭示,独立的OPAC,绝对大有前景。
    为什么ILS公司都没有一丝风声?假如某些大公司能提供一定的支持,例如开放部分技术参数、甚至提供资金赞助,相信OPAC的发展会迅猛起来,而出现实际性的突破。

  3. 谢谢远洋提供的信息。
    关于公开数据,这次桂林数图会上,厦大有一个POSTER,好象就是讲他们把数据向搜索引擎公开,并且还有通过搜索引擎过来的访问数量的统计数据。
    我想两方面都需要吧。一方面开放数据,吸引用户到自己的OPAC;另一方面完善自己的功能,让吸引来的用户喜欢用。比如从澳大利亚的LibraryLab看到的例子,通过对书目数据挖掘后的分面展示,的确能直观地得到一些通过简单的OPAC不易得到的信息。

  4. ILS公司希望你买他们的新产品,而不是抛开他们。比如的Innovative系统,没有对OPAC做什么更新,却推出具有新型OPAC特性的产品encore。想要?肯定不是一般的系统升级,而是另购的。

  5. Casey Durfee有个presentation演示了一下他的代码(http://extranet.spl.org/talks/open%5Fsource%5Fendeca/)。像小钟说的未见续借等模块,但是写的很干净。endeca搬到了图书馆的OPAC,有意思。Dan和Mike的OPAC的索引和搜索引擎架构不错,不知道他们为什么没有申请GPL,估计他们的想完善略显单薄的原型。

评论已关闭。