又一个开源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)

博客巴士的标签功能

    BlogBus是较早提供标签功能的。一年前从博客网搬家到此,发现只有标签没有分类,很为原来那些博文如何分类伤脑筋。后来想到设立几个通用标签代替分类,每文除惯常的标签外,必加通用标签——还顺便解决了多重入类问题,一般博客是不能同时使用多个分类的。后来BlogBus也有了日志分类,为保持连续性,通用标签仍然在使用。所以自己使用频率最高的标签基本就是那几个通用标签,也就是自己的分类。

大小写敏感
    BlogBus的标签是大小写敏感的。
    曾经有一度,大小写不是由用户决定,而是由系统决定的。比如输入ISBD,系统默认了。但输入ISBN,系统给改成isbn,输入Amazon,系统给改成amazon。估计是采用了BlogBus第一个使用该标签的用户所用的大小写形式。
    后来,大小写由用户决定了,所以自己曾经有wiki、WIKI这样不同的标签,却在很长一段时间内一直没有发现。因为BlogBus的标签显示也是大小写敏感的,这两个标签显示在相距很远的位置。
    由于标签显示大小写敏感,所以要找ALA,在大写区没看到,以为不存在。其实排在了小写区,因为当初系统给的形式是ala。
    另外,尽管在写博文时标签大小写可以自定了,但标签管理时仍然只认一个。想要把WIKI改成wiki,不行。
    其实如果觉得大小写混排处理起来麻烦(其实不至于的),完全可以像Google Reader的标签一样,,系统一律改为小写。

标签云
    BlogBus的标签原来是按字顺排的,很漂亮的云图。虽然大小写分排,但耐着性子两处找找,还不算太麻烦。上月下旬系统升级后,标签改按使用次数排列(与首页的部分TAG列表一样),一下子让人找不到北了——比如我想给此文加一个标签“美味书签”,不知道自己以前是否用过,只能用浏览器的搜索功能。并且一样大小的显示字体,移到标签也没有显示使用次数,让人看着觉得面对的是一团乱麻(同样只用一次的,不知道凭什么排列先后?当然我现在知道了——见后)。
    标签显示可以按使用次数,也可以按字顺,这要看不同的需要。对查询而言,字顺方式一目了然,而云图也能同时图示出使用频率,更直观。

博文列表
    点击首页的Tag或日志分类,BlogBus会分页显示博文,而不是博文列表。幸好在标签云状态下点击标签,显示的是列表。比如我在MARC标签下有35篇博文,列出35篇标题,很快就可以找到自己需要的那篇。
    系统升级,标签显示改变的同时,列表显示也没有了,代之以全文显示。为保证页面快速装入,我设置的是一页显示5篇,35篇就要翻页7次,同时每页还要翻屏数次。即使设置为每页显示50篇,翻屏查看也是件累人的事。
    如此这般,标签功能可说形同虚设,还是直接全文检索、显示结果一览更方便。同样,日志分类也是如此。
    如果在标签页“搜索TAG”,出现的倒是如全文检索般的结果一览,只是结果还包括其他用户的博文。

标签管理
    标签管理首先要让用户了解自己使用了哪些标签,最好的显示方式是大小写混排的一览表。
    BlogBus的标签管理页面,标签分页显示,每页50个。最麻烦的是,既非按使用频率,也非按字顺方式排列,并且也不是按人个使用先后。从标签ID看,是按所有BlogBus用户的使用先后——比如把第一页中的“WIKI”改为“维基”,标签“维基”显示到了第二页而非最后一页。
    这种粗放的显示方式,对设计者而言或许减少了很多麻烦,却使用户无从知道自己所用标签的位置。我用了近180个标签,想要改名/合并或删除,除了在四个页面中逐个查找,没有别的办法。
    另外如上所述,虽然标签中可以有“wiki”,但想要把“WIKI”改成“wiki”,不成功。把“维基”改成“wiki”,结果还是改成了“WIKI”。这应该只是个小BUG吧。

榜样
    似乎BlogBus在标签功能设计中更多地想到了营造自己的社区,却没有想到社区是由个人组成的。个人在社区中不自在,又何以会加入社区活动呢?
    当然,自己对BlogBus升级前后的标签功能很有些不以为然的地方,但或许有其他用户更喜欢也不一定。至少系统设计时,应该是考虑过多方需求的吧?那么,让用户多一些选择如何?
    参考一下经典的美味书签(http://del.icio.us/)的标签功能吧:

标签形式:大小写敏感,用户自定,显示时合并排列
选择显示形式:云图或列表
选择排序形式:字顺或频率
显示频率限定:标签日渐庞大时,可选择只显示使用次数超过2或5个的标签
标签分捆(bundle):标签用得多了,可给标签分组,类似于分类功能
分捆显示形式:分捆先按捆的字顺,各捆内按字顺/频率(由排序形式决定)
编辑标签:重命名、删除,均依字顺(大小写合排)在一个下拉列表中显示各标签,同时附使用次数

参见:论题与关键词:我的BlogBus标签 (2006-09-23)

CALIS中、西文编目培训信息(2007)

CALIS联机合作编目中心9月10日发布中、西文编目培训信息,详情请见中心主页之滚动“动态信息”,概要如下:

CALIS中文图书编目业务培训
培训时间:2007年10月28日-11月4日
培训地点:上海交通大学闵行校区包玉刚图书馆
培训费用:800元
报名截止日期:2007年10月20日前,额满为止

CALIS西文图书编目业务培训
培训时间:2007年12月2-9日
培训地点:浙江大学图书馆(玉泉校区)
培训费用:800元
报名截止日期:2007年11月20日前,额满为止