欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 812

点击:17852[回复顶层] [树状] [简明]


头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 809
一些新鲜事儿

作者: xietao


最近半年来一直很忙,做了一些东西,都没有来得及在论坛和大家分享交流。

有些东西可能因为需要一段时间公司内部测试,才能正式给用户使用,但经过这段时间以后,似乎就忘记了它是个新功能了。

下面总结一下。后面我争取抽空一个一个写出文章详细介绍。

1) dp2OPAC 的分面导航功能

在这里已经可以看到示范:

http://dp2003.com/dp2opac/searchbiblio.aspx

这是全年年底做的一个功能了。为保守起见,升级安装 dp2OPAC 的时候,如果不进行专门配置,检索命中的画面还是延续以前的没有分面导航的风格。后面我会专门写文字介绍如何配置,感兴趣的单位可以试试应用它。

分面导航功能,是在检索的画面中,提供一种多层次的导航入口,列出这一批命中的记录的书名、作者、出版社、出版时间、主题词等“多面”的信息,方便访问者跳转,探索这一批书目的更多信息。这是 OPAC 系统提升和完备功能的一个方向。

没有分面导航功能的时候,访问者怎么达到上述目的呢?那就必须要一个一个书目记录地观看,如果看到感兴趣的锚点,跳过去。那时候的画面并不提供一个总结各种线索的面板,信息散布在所有页面中,页面中的各处。假如一批记录数目较多,需要翻页,一般访问者很快会失去翻看的兴趣,一般人也不会耐心从头到尾每页都看。这样会和很多有价值的机会和点失之交臂。

分面导航就是把各种访问者可能会感兴趣的点汇总起来,有点分析这批记录的意思。所以这种功能也可以叫“分面分析”。也可以理解为把浏览画面搬到了普通检索画面来了,对命中的一批记录进行分面浏览。

做出来这个功能后,加上在少数单位试用后,我发现一个平时不显眼的问题,突然上升为明显的问题了。因为分面导航中,作者这个“面”很重要,在导航面板上各种作者名称也是很显眼的,这些名称都是采自 UNIMARC 的 7XX 字段(假如是中文数据的话),这时候很多单位草率的数据中,当初随便从 200$f$g 复制过去没有修改的带有“(美)”“(英)”等部分就都展现出来了,非常扎眼。(一个好的信息展示方式,自然是也能突出数据本来的问题的) 这使得我想到另外一个话题:如何快速发现和修改书目记录中的某种特征?

2) dp2circulation 书目查询窗的 MarcQuery 脚本功能

MarcQuery 是一种方便操作 MARC 数据的 C# 脚本开发方法,也可以理解为一个函数库,因为它非常方便,而且重要,我们给它取了个专门的名字 -- MarcQuery。这个东西的构想和初步试验,其实在早几年前就开始了,后来因为各种耽误,一直到今年年初才发大力做完(这里感谢阿甲的促进),目前已经投入实用 --- 但大家基本上都不知道是不是?这就是我在这里介绍的用意了。

dp2 系统牛一点的用户,很早就知道 dp2circulation 里面有各种统计窗,甚至后来框架窗口也有了二次开发的“方案”。在 dp2library 的 library.xml 中可以使用脚本函数;在 dp2kernel 的各种库的 keys 配置文件中可以有脚本函数。MarcQuery 并不是颠覆这些的,它只是其中一个脚本函数库,在延续我们系统中脚本的传统和优势。

但它太方便了,在程序设计概念思路方面,有很大的突破,会给使用它的用户带来很大的效率收益。我觉得它也会给我们一个机会重新审视脚本这种设施,发现更多的价值。自从它诞生后,现在我们的一次开发中许多涉及到 MARC 数据操作的场合,也都开始使用 MarcQuery 函数库了。

MarcQuery 的基本作用就是,操作 MARC 数据,操作记录、字段、子字段,关注什么头标区、指示符、子字段符号之类概念。MARC 数据一直就是 dp2 系统的安身立命之本,那在 MarcQuery 出现以前,人们是怎么操作 MARC 数据的呢?当然也有办法,日子也要过。但老式的一套函数库非常繁琐、困难。开发成本很高。MarcQuery 的使命就是改变这个局面。

它通过两个法宝来处理 MARC 这个难题。

第一个法宝:XPATH。很多人听了可能觉得诧异,XPATH 难道不是操纵 XML 数据的一种方法么?是的,没错。但 XPath 的思想可不限于 XML 。MARC 数据本来就有层次结构,所以是很适合用 XPath 来表达搜索定位的需求的。通过这些年人们持续在 XML 方面的学习投入,XPath 已经被很多开发者熟悉,MarcQuery 采用XPath 来作为定位筛选 MARC 结构的基本设施,就是善用了这部分设施。通过这一项努力,MARC 的内部结构可以方便被搜索和列举了。

(注:MarcQuery 不是操作变换为 MARCXML 以后的数据结构。不是的。MarcQuery 操作的直接是 MARC 的一种内存数据结构,这种结构是我们长期发展起来的一套概念。所以,完全符合 W3C XPath 规范的解析器等等,都是技术关键点了)

第二个法宝:面向集合的程序设计理念。XPath 选出来的 MARC 结构对象,最常见的都是集合的形式,就是一批这样的对象被选中了。同时操作多个对象,作为一种基本的理念被贯彻。MarcQuery 的数据变换的函数,重点提供了集合方式的设施,使得修改 MARC 结构对象非常便利。这也使得脚本代码级联书写方式得以存在和应用。

MarcQuery 作为一个函数库,在 dp2 系统中所有可以使用脚本的地方都可以使用它。但既然 MarcQuery 的主要目的是操作 MARC 记录数据,那它目前在 dp2circulation 前端中最能发挥作用的地方就应该是“书目查询窗”了。

为了应用好 MarcQuery,书目查询窗增加了一种专门的轻便的 MarcQuery 脚本类型,在书目查询窗的上下文菜单中就可以创建一个新脚本文件并执行。为了方便操作者观察脚本执行的效果,书目查询窗提供了一种内存存储修改后记录的机制,等操作者观察好以后,发出保存的命令的时候,这些修改后的记录才真正存入服务器的书目库中。这些优化和改进,真正把 MarcQuery 脚本推进到方便实用的程度。为了对比观察修改前后两条记录,又发展出一种颜色突出显示的对照方法,并在日志窗等多处也有应用。

3) 指纹识别

这个功能的缘起是,去年一次在和红泥巴的阿甲和探长闲谈的时候,他们说到现在小学里面很多一年级二年级的小豆包,很容易丢东西,什么图书馆的借书卡,那基本上是别指望能保管好。能不能有什么替代的办法,让小读者不用借阅证就能借书?当时想到了指纹识别这种方法。但因为开发工作较忙,一直没有真正去实现这个功能,到了年底,探长给寄过来一台指纹阅读器,于是这个功能就出来了。

指纹识别分为 1: 1 和 1: n 两种模式。所谓 1:1,就是在已经确定读者身份的情况下,要求扫描他的指纹作为进一步鉴别,好像输入密码一样。这时候计算机只需要采集一个指纹,和一个以前存储的指纹进行比对。而 1: n,就是在不知道读者姓名证号等一切信息的情况下,让读者扫入他的指纹,然后计算机从数据库中比对所有的以前采集好的指纹,定位这个读者的基本信息。可以看出,1: n这种模式,难度完全在于读者的总规模,如果数据库中的读者数量太多,可能比对识别的时间就会很长,以致于到了无法实用的地步。

(目前综合各种信息推断,读者总规模在1000-2000人的单位比较适合用指纹识别,人数更多可能效果就不好了。这个限制因素不是我们的 dp2 系统造成的,而是目前指纹设备厂家的通行技术水平决定的。不过,一个单位其实常常是部分人采用指纹识别的,假如不是每个人都用指纹识别,那么这个技术还是可以用于人数很多的大单位的)

所以,指纹识别的功能出来后,虽然少量的数据下测试效果都很好,我们还是有种心理准备,就是读者数量大到一定规模的时候,可能会出现识别缓慢和误识别的问题,情况怎样还需要评估,而唯一的评估方法就是投入实用检验。春节以后,在望湖小学进行了较大规模的试验,目前已经有汇报说出现了一些误识别的情况,结合厂家所说万分之几的误识别率,评估了一下觉得还是在预计的范围,但能切身体会到这个技术不是一个绝对完美的技术,还需要其他辅助措施,例如在扫入指纹并识别后,需要语音提示读者姓名帮助判断,后续优化工作正在进行中。这里感谢望湖小学提供第一手的实践经验。

指纹阅读器硬件本身很廉价(目前典型的一款设备在淘宝上只要200多元人民币一个),它主要提供扫入指纹图像的简单功能,而识别的算法什么的都是在计算机软件(驱动程序模块)中完成的,后面这部分主要决定了系统的运作质量。

读者对指纹阅读器这种新设备的适应也是个课题,为此我们专门开发了练习模式,能够提供给读者熟悉指纹阅读器之用。

从隐私和安全的角度,目前读者库中仅保存指纹特征码,这是厂家才知道具体算法的一种编码,里面有一些形态特征信息,但不等于指纹图像。如果指纹特征码泄密,对于不知道厂家的运算规则的人来说,这种特征码信息无异于天书(我们作为dp2系统的开发者也是不知道这种特征的内部结构和算法的)。读者库中不保存任何指纹图像。这部分能解除人们对指纹应用的隐私安全担忧。不过,隐私和安全始终是一个很重要的话题,我们将密切关注,尽可能将产品做到完善。



发表时间: 2013-04-04 16:28:33
最后修改时间: 2013-04-04 17:18:11





头衔: 农村户口
文章数: 22
积分: 220
注册时间: 2006/6/25
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 812
刚刚又发现了一件新鲜事儿

作者: 阿甲


dp2Catalog编目前端也有重大更新,亚马逊检索窗已经可以正式使用了,可以非常方便地从亚马逊网站上读出基础的Marc数据!

最有意思的是,能把外文书的资料直接读取为UNIMarc,我觉得这也挺好的O(∩_∩)O哈哈~

多谢辛勤的而且是富有创意的工作!



发表时间: 2013-04-25 11:52:38





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 3 楼
文章id: 813
回复: 刚刚又发现了一件新鲜事儿

作者: xietao


以下是引用 阿甲 于 2013/4/25 11:52:38 发表的文字:

dp2Catalog编目前端也有重大更新,亚马逊检索窗已经可以正式使用了,可以非常方便地从亚马逊网站上读出基础的Marc数据!

最有意思的是,能把外文书的资料直接读取为UNIMarc,我觉得这也挺好的O(∩_∩)O哈哈~

多谢辛勤的而且是富有创意的工作!

 
哈哈,这个秘密被您发现了。最近几天正在测试 dp2Catalog 的亚马逊检索窗,功能很快会稳定完善。


发表时间: 2013-04-29 18:53:32





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 4 楼
文章id: 834
二维码借阅图书

作者: xietao


4) 二维码借阅图书

现在的智能手机等移动设备,应用非常广泛,大抵高校里面,每个学生都有自己的手机已经是普遍的情况了。

dp2OPAC 的最新版本中,当读者登录进去后,在读者信息的页面上,可以显示一个二维码图像,这个图像代表了读者的身份信息,相当于传统借阅证上的一维条码。

 

如果图书馆有 wifi,读者就可以用自己的手机登录到 OPAC 界面,拿着手机当作借阅证使用了。

dp2circulation 的新版本中,出纳窗的“读者证条码号”输入域,可以接受二维码识别输入。在dp2circulation 的固定面板区域,现在具有一个“QR识别”属性页,在这里可以选定摄像头 --- 电脑上其实可以插入多个摄像头的,也可以观察视频捕捉的情况。在借书流程中,当需要输入读者证条码的时刻,图书馆工作人员用摄像头对准读者的手机,就可以自动识别出二维码图像信息,然后进行借阅操作。

dp2circulation中,原本需要扫描读者证条码的其他环节,也都可以使用读者二维码。

 

为了安全起见,惟恐读者的二维码图像泄密以后,被别人冒用来借书,系统特意为二维码设定了一个失效期,24 小时以后失效。读者也应该注意设置强度足够的密码,保护好自己的 OPAC 账户。

这个二维码显示在 OPAC 读者信息页面的功能,是可以配置的,缺省情况下并没有打开这个功能。后面我会介绍如何配置这些参数。

打开 dp2OPAC 的数据目录,修改 webui.xml 配置文件,在根元素下插入这样一个片段:

 <personalInfoControl>
  <qrImage display="true" />
 </personalInfoControl>

这样 OPAC “个人信息”页面就可以显示二维码了。

dp2OPAC 要获取二维码信息,其在 dp2library 中的读者代理账户 reader 还应该具有 getpatrontempid 权限,注意在 dp2circulation 的用户窗中为它增加这个权限: 



发表时间: 2013-11-16 23:21:04
最后修改时间: 2013-11-17 00:18:12



页 1 / 1
 

在线用户
(无) 
当前栏目在线用户数 0, 总在线用户数 1