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

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


头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 671
dp2Catalog应用案例集锦

作者: xietao


 

dp2Catalog是数字平台推出的一个多协议的编目前端软件,目前提供给社会各界免费下载使用。

dp2Catalog目前主要支持Z39.50协议、DTLP协议、dp2Catalog协议。这句话听起来挺抽象,特别是许多朋友并不了解这些协议到底代表着什么,对实际工作有什么意义。

我将在后面提供一些具体的应用案例,感兴趣的朋友可以按照里面描述的步骤实际操作一番,真实体会“用dp2Catalog到底能做些什么?”



发表时间: 2011-08-23 10:36:41
最后修改时间: 2011-08-23 11:33:28





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 672
案例一:广东省文献编目中心,DTLP协议

作者: xietao


广东省文献中心是一个联合编目服务机构。

介绍文字在这里:

http://bmzx.zslib.com.cn/user/user.htm

其服务器很有特色,不但提供了Z39.50协议的数据检索服务,而且还提供了DTLP协议的数据检索服务。

DTLP协议是什么呢?DTLP协议是丹诚公司为其dt1000系统开发的一种专用协议,是一种建立在TCP/IP之上的应用层协议。具有快捷、灵便的特点。

由于DTLP伴随着dt1000系统的应用非常广泛,dp2Catalog软件也支持这种协议。

(注:dt1000是丹诚公司的产品,dp2Catalog是数字平台公司的产品)

下面介绍如何配置dp2Catalog,使其能访问广东省文献中心的DTLP服务器。

操作步骤如下:

1) 启动dp2Catalog,使用主菜单“帮助/参数配置”,可打开如下对话框:

 

2) 切换到“DTLP协议”属性页,按“服务器地址管理”按钮,可打开如下对话框:

上图显示了还没有配置任何一个DTLP服务器的情景。

3) 按“新增”按钮,可打开如下对话框:

如上图所示,在服务器地址中输入“data.zslib.com.cn”,这是广东省文献中心的DTLP服务器地址,域名形式。

DTLP协议的缺省端口号为3001,这里正好是它,就不必输入了。否则,需要在服务器地址的后部加上一个冒号后输入实际的端口号数字。

按“确定”按钮,回到“服务器地址配置”对话框:

4) 可以看到,这个新的服务器事项已经创建。按“确定”按钮,回到“参数配置”对话框:

如上图所示,在“用户名”文本框中输入“public”。这是广东省文献编目中心提供的测试用帐号的用户名,没有密码。

利用这个账户进行检索,所获得的MARC记录只有少量字段。如果要获得完整的MARC记录,请按照最上面提供的URL,根据介绍文字中提供的方式,申请正式的帐号。

~~~

至此,广东省文献编目中心的DTLP服务器参数已经配置好了。

~~~

下面我们进行一番检索,验证一下功能是否正常。

用主菜单的“文件/DTLP检索窗”命令,打开一个DTLP检索窗:

 

如上图所示,在DTLP检索窗的左上方资源树内,展开名为data.zslib.cm.cn的服务器节点,并选定“图书总库”的“作者”检索途径节点。然后在DTLP检索窗的右上角“检索词”文本框中输入一个适当的检索词,例如“史铁生”。在主菜单工具条上按“检索”按钮(倒数第二个按钮),则会看到检索正在进行,然后命中若干记录显示出来。

~~~

有心人可能仅从上面的典型检索过程操作中,就能感觉到中间会有明显的寻找检索点显示但是并不命中的阶段,而且直到检索最后彻底完成前,无法知道检索会命中多少条记录。这些,都是DTLP协议或者说是dt1000/dt1500服务器的固有缺点,一种体系结构上的局限。

出于兼容以往软件和协议的目的,dp2Catalog提供了对DTLP协议的支持,以便让以前的软件能延续其生命周期,特别是软件系统里面的数据能够得到妥善迁移。

dt1000是上个世纪,96年左右推出的产品,由于时间非常久远了,现在新的操作系统难以安装dt1000系统,或者勉强安装运行软件功能会不正常。因为dt1000是16位的Windows程序,也就是Windows 3.1时代的老程序。从Windows 95开始,就是32位的程序了。现在的最新Windows操作系统已经不支持16位的Windows程序运行。

所以,dp2Catalog是对老旧软件延续和过渡的一个工具软件。dp2Catalog采用100% .NET技术开发,在最新的Windows操作系统上更能展示其特色。

~~~

这里强调一下,广东省文献编目中心不仅仅提供了DTLP的服务器,还提供了Z39.50的服务器。当然dp2Catalog软件也不是仅仅支持DTLP协议,而更支持Z39.50协议。这在后面会继续介绍。



发表时间: 2011-08-23 10:45:22
最后修改时间: 2011-08-23 11:21:03





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 3 楼
文章id: 674
案例二:广东省文献编目中心,Z39.50协议

作者: xietao


上面介绍了如何使用DTLP协议访问广东省文献编目中心的服务器。

现在介绍如何使用Z39.50协议访问广东省文献编目中心的服务器。当然,广东省文献编目中心的DTLP服务器和Z39.50服务器不是同一个服务器。目前这两个服务器所访问的数据库是同一套基础软件,数据是完全相同的。

该中心提供了一个页面,介绍了其Z39.50服务器的配置参数:

http://bmzx.zslib.com.cn/fzxnews/Z3950a.htm

~~~

在dp2Catalog中配置这个服务器的操作步骤如下:

1) 利用dp2catalog主菜单的“文件/Z39.50检索窗”命令,打开一个Z39.50检索窗。如果已经有了这样的窗口处于打开状态,这一步就可以省去;

2) 在Z39.50检索窗的左上方,服务器框内,选择一个适当的目录节点,例如“中国”。用鼠标右键点这个节点,在随后出现的上下文菜单上选择“新增下级/服务器”命令。会出现如下“Z39.50服务器属性”对话框:

在“一般属性”属性页,输入服务器名、地址、端口号。

3) 切换到“数据库”属性页:

输入数据库名。每行输入一个数据库名。

4) 切换到“权限验证”属性页:

输入用户名和密码。需要和广东省文献编目中心联系,获得可用的用户名和密码,并输入在这里。

有一个好消息告诉大家,就是广东省文献编目中心几个月前已经宣布全部书目数据免费提供给图书馆界下载使用:

http://bmzx.zslib.com.cn/fzxnews/tz11.htm

广东省文献编目中心机读书目数据免费服务通知
 
 
尊敬的联编中心的各位用户:
 
     广东省文献编目中心自一九九七年成立以来,一直致力于宣传推广中国机读目录格式,开展联机编目,制作发行CNMARC数据,积极推进网络环境下书目数据资源共建共享的进程。在此期间,得到了来自同行和书目数据用户的大力支持和帮助,谨向您表示衷心的感谢!
目前,广东省编目中心书目数据总量达到300万条,期刊数据总量约4万条。作为全国图书馆联合编目中心第一家省级分中心,本中心还在广东省范围内独家拥有全国中心的全部中文图书即时数据的独立经营权,每年新增编目数据约14万条。
本中心决定自二○一一年四月一日起以公益原则为广大图书馆同行提供免费的联机数据下载和在线技术支持服务。欢迎垂询!
 
 
联系人:徐光霁
联系电话:020-81162738
E-mail:
gdbmzx@tom.com
 
                               广东文献编目中心
                               二○一一年四月一日  

但是不知何故他们并没有提供公开的用户名和密码。可能是因为出于管理上的某种需要吧。似乎也没有提供public帐号。

5) 切换到“检索/获取”属性页:

将“不检查 Reference ID”复选框勾上。

这里需要说明一下:目前广东省文献编目中心所采用的Z39.50服务器,具有一个程序方面的 Bug,就是它所发出的Z39.50响应包中的Reference ID字符串和前端先前发出的请求包中的Reference ID不一致。早先一点的dp2Catalog在遇到这种情况的时候,在准确提示错误信息后,停止执行后面的功能。dp2Catalog这样做自然是没有错的 --- 问题是出在Z39.50服务器一端。为了兼容目前广东省文献编目中心的这个存在问题的Z39.50服务器,最新版本的dp2Catalog在Z39.50服务器属性配置参数中增加了这个“不检查 Reference ID”的选项,以便绕过问题让用户能正常使用这个服务器。

6) 切换到“字符集”属性页: 

 

因为广东省文献编目中心的Z39.50服务器只能使用GB2312字符集,所以可以保持这个属性页的所有缺省配置状态即可。也就是说,让“检索词缺省编码方式”和“数据记录缺省编码方式”保持为空(图中红框部分)。这两项为空的意思是采用“gb2312”编码方式。如果特意点开下拉列表选上“gb2312”值也是一样的效果。

然后按对话框下方的“确定”按钮。广东省文献编目中心的服务器就配置好了。

选定一个数据库,例如 bmzx,然后输入检索词“中国”检索题名,上图所示的就是检索成功后的效果。

不过不知道什么原因,数据库 ybdata 无法进行检索,一检索Z39.50服务器就会切断连接。其他几个数据库检索使用都正常。

~~~

下面介绍“元素集”的概念和应用。

在配置Z39.50服务器的时候,在“检索/获取”属性页,可以配置一个“缺省元素集名”:

 

如上图所示,可以选定缺省元素集名为“Brief”,就是简要格式的意思。(如果保持缺省元素集名为空,则默认“Full”,也就是完整格式的意思)

这个配置选项影响到Z39.50检索窗中(对于该服务器)首次出现的元素集名下拉列表的自动选定值。如果不把一个Z39.50服务器的缺省元素集名设置为"Brief"的话,那么一开始软件总是在检索界面上把元素集名自动设定为“Full”。虽然,操作者可以手动去重选检索界面的元素集名下拉列表。

一般来说,针对绝大多数免费的Z39.50服务器,可以在Z39.50服务器属性配置的时候保持缺省元素集名为空,以便一开始检索的时候就获得完整格式的MARC记录。为了彻底屏蔽检索面板上元素集名下拉列表可能选定的“Brief”值,而强制采用“Full”值,还可以在Z39.50服务器属性里面,勾选“在获取浏览记录阶段即获取全记录”,上图中可以看到这个事项。

而针对计费的Z39.50服务器,通常的做法是在Z39.50检索窗浏览的阶段,需要使用“Brief”元素集方式,以避免被服务器计费。这样的简明记录被装入到MARC记录窗的时候,看起来差不多是这样的:

可以看出,记录中只包含少量MARC字段。如果决定采纳这条记录,比如即将保存到本地数据库中,可以点主窗口工具条上的“装载详细记录”按钮,重新下载当前记录的完整格式:

这样下载单条完整格式记录的时刻,才会被服务器计费一次。

如果不这样做的话,也就是说在检索浏览阶段就获得完整格式的记录,只要出现在浏览框中的记录就已经被服务器计费了。 

 

 



发表时间: 2011-09-09 18:36:29
最后修改时间: 2011-09-10 16:53:48





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 4 楼
文章id: 830
对 ISO2709 文件直接进行处理

作者: xietao


dp2Catalog 的 dp2检索窗功能增强后,可以直接将 ISO2709 文件内容导入到这个窗口,然后利用定制的 MarcQuery 脚本进行修改加工。修改后的记录内容,可以导出到另一个 ISO2709 文件,或保存到 dp2系统的数据库中。

什么是 MarcQuery? 这是数字平台创造的一种处理 MARC 数据的函数库,能非常方便地对 MARC 记录、字段、子字段进行各种变换修改。

下面将示范一个 MarcQuery 脚本文件,可以直接对 ISO2709 文件中的字段内容加拼音。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;
using System.Text;
using System.Xml;

using dp2Catalog;

using DigitalPlatform.Marc;
using DigitalPlatform.Xml;
using DigitalPlatform.Script;

public class MyMarcQueryHost : MarcQueryHost
{
    // 新的加拼音字段配置。$9
    string PinyinCfgXml = "<root>"
    + "<item name='200' from='a' to='9' />"
    + "<item name='510' from='a' to='9' />"
    + "<item name='512' from='a' to='9' />"
    + "<item name='513' from='a' to='9' />"
    + "<item name='514' from='a' to='9' />"
    + "<item name='515' from='a' to='9' />"
    + "<item name='516' from='a' to='9' />"
    + "<item name='517' from='a' to='9' />"
    + "<item name='520' from='a' to='9' />"
    + "<item name='530' from='a' to='9' />"
    + "<item name='532' from='a' to='9' />"
    + "<item name='540' from='a' to='9' />"
     + "<item name='541' from='a' to='9' />"
    + "<item name='701' indicator='@[^A].' from='a' to='9' />"
    + "<item name='711' from='a' to='9' />"
    + "<item name='702' indicator='@[^A].' from='a' to='9' />"
    + "<item name='712' from='a' to='9' />"
    + "<item name='721' from='a' to='9' />"
    + "<item name='722' from='a' to='9' />"
    + "</root>";
        // 老的加拼音配置。$A等
    string OldPinyinCfgXml = "<root>"
    + "<item name='200' from='aefhi' to='AEFHI' />"
    + "<item name='510' from='aei' to='AEI' />"
    + "<item name='512' from='aei' to='AEI' />"
    + "<item name='513' from='aei' to='AEI' />"
    + "<item name='514' from='aei' to='AEI' />"
    + "<item name='515' from='aei' to='AEI' />"
    + "<item name='516' from='aei' to='AEI' />"
    + "<item name='517' from='aei' to='AEI' />"
    + "<item name='520' from='aei' to='AEI' />"
    + "<item name='530' from='a' to='A' />"
    + "<item name='532' from='a' to='A' />"
    + "<item name='540' from='a' to='A' />"
    + "<item name='541' from='aei' to='AEI' />"
    + "<item name='700' from='a' to='A' />"
    + "<item name='701' indicator='@[^A].' from='a' to='A' />"
    + "<item name='711' from='a' to='A' />"
    + "<item name='702' indicator='@[^A].' from='a' to='A' />"
    + "<item name='712' from='a' to='A' />"
    + "<item name='720' from='a' to='A' />"
    + "<item name='721' from='a' to='A' />"
    + "<item name='722' from='a' to='A' />"
    + "</root>";

 public override void OnRecord(object sender, StatisEventArgs e)
 {
                this.MainForm.RemovePinyin(
                        this.MarcRecord,
                        this.OldPinyinCfgXml);
                 this.MainForm.RemovePinyin(
                        this.MarcRecord,
                        this.PinyinCfgXml);
 
                this.MainForm.AddPinyin(
                        this.MarcRecord,
                        this.PinyinCfgXml,
                        PinyinStyle.None);
  this.Changed = true;

 }
}



发表时间: 2013-10-16 21:19:54
最后修改时间: 2013-10-16 21:45:18



页 1 / 1
 

在线用户
访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
当前栏目在线用户数 33, 总在线用户数 42