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

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


文章数: 10
积分: 100
注册时间: 2011/8/25
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 781
为册加入索取号和卷期信息方案

作者: xiaoma


这个方案用于书目统计窗,可以为书目信息下属的册信息加入索取号和卷期信息,索取号取的是905的d子字段和e子字段,卷期信息取的是905的y子字段和v子字段。



发表时间: 2013-02-01 14:50:19
最后修改时间: 2013-02-17 16:10:16


头衔: 竹林剑客
文章数: 15
积分: 150
注册时间: 2011/11/2
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 782

作者: xiaohuo




资源:

-- ID: 0 文件名: 为册记录添加索取号和卷期.projpack 尺寸: 11754 最后修改时间: 2013-02-01 15:12:19 --
为册记录添加索取号和卷期.projpack [下载] 警告:某些文件下载后,如打开(或执行),可能危害您的计算机安全,请谨慎行事。


发表时间: 2013-02-01 15:06:55
最后修改时间: 2013-02-01 15:12:23


头衔: 竹林剑客
文章数: 15
积分: 150
注册时间: 2011/11/2
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 3 楼
文章id: 783

作者: xiaohuo




发表时间: 2013-02-01 15:07:35
最后修改时间: 2013-02-01 15:07:58


文章数: 20
积分: 200
注册时间: 2009/11/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 4 楼
文章id: 785
回复:

作者: 精灵


==========

以下是引用 xiaohuo 于 2013/2/1 15:06:55 发表的文字:

==========

这个方案非常好,不过我感觉是否可以这样做,是否可以修改一下“library.xml”中的“public int GetBiblioPart(XmlDocument bibliodom,string strPartName,out string strResultValue)”函数,在这个函数中添加一个判断语句

if (bibliodom.DocumentElement.NamespaceURI == Ns.usmarcxml)

        {

            mngr.AddNamespace("usmarc", Ns.usmarcxml);    // "http://www.loc.gov/MARC21/slim"

            string strXPath = "";

            if (strPartName == "volume")

            {

                string v = "";

                string y = "";

                strXPath = "//usmarc:record/usmarc:datafield[@tag='905']/usmarc:subfield[@code='y']";

                node = bibliodom.SelectSingleNode(strXPath, mngr);

                if (node != null)

                    y = node.InnerText;

                strXPath = "//usmarc:record/usmarc:datafield[@tag='905']/usmarc:subfield[@code='v']";

                node = bibliodom.SelectSingleNode(strXPath, mngr);

                if (node != null)

                    v = node.InnerText;

                if (y != null)

                    strResultValue = y + "/";

                if (v != null)

                    strResultValue = strResultValue + v;

                else

                    strResultValue = strResultValue.Replace("/", "");

                return 1;

            }

            else if (strPartName == "price")

                strXPath = "//usmarc:record/usmarc:datafield[@tag='020']/usmarc:subfield[@code='c']";

                         ........................................................................................

                         ........................................................................................

                         ........................................................................................

                         ........................................................................................

                         ........................................................................................

        }

然后,在前端的“种册窗”中的“选项”里面,在卷期一项中填写入“@volume”。这样,采编部的同事,在做完书目数据后,直接扫描册条码就会自动填写上卷期信息。不用再统一添加卷期信息,可以加快图书加工效率。

但是,我还有一个小小的疑问,就是905字段中是否有X与Y这两个子字段。我查了一下MARC数据库方面的资料,没有发现里面记载着Y与X这两个子字段,也可能是我手中的资料太少。所以想请“xiaohuo”老师帮一下忙,帮忙指点一下这两个字段的出处。



发表时间: 2013-03-13 10:25:15
最后修改时间: 2013-03-13 14:29:54


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

作者: xietao


CNMARC 905 字段的 $y 是 year 的意思,索书号的年代部分;$v 是 volumn 的意思,索书号的卷期部分。这是我的记忆,不一定准确。

这两个子字段被一些单位用过。例如北图(期刊)。我有较深的印象。

回头我再查查具体的出处。

==========

以下是引用 精灵 于 2013/3/13 10:25:15 发表的文字:

==========

以下是引用 xiaohuo 于 2013/2/1 15:06:55 发表的文字:

==========

这个方案非常好,不过我感觉是否可以这样做,是否可以修改一下“library.xml”中的“public int GetBiblioPart(XmlDocument bibliodom,string strPartName,out string strResultValue)”函数,在这个函数中添加一个判断语句

if (bibliodom.DocumentElement.NamespaceURI == Ns.usmarcxml)

        {

            mngr.AddNamespace("usmarc", Ns.usmarcxml);    // "http://www.loc.gov/MARC21/slim"

            string strXPath = "";

            if (strPartName == "volume")

            {

                string v = "";

                string y = "";

                strXPath = "//usmarc:record/usmarc:datafield[@tag='905']/usmarc:subfield[@code='y']";

                node = bibliodom.SelectSingleNode(strXPath, mngr);

                if (node != null)

                    y = node.InnerText;

                strXPath = "//usmarc:record/usmarc:datafield[@tag='905']/usmarc:subfield[@code='v']";

                node = bibliodom.SelectSingleNode(strXPath, mngr);

                if (node != null)

                    v = node.InnerText;

                if (y != null)

                    strResultValue = y + "/";

                if (v != null)

                    strResultValue = strResultValue + v;

                else

                    strResultValue = strResultValue.Replace("/", "");

                return 1;

            }

            else if (strPartName == "price")

                strXPath = "//usmarc:record/usmarc:datafield[@tag='020']/usmarc:subfield[@code='c']";

                         ........................................................................................

                         ........................................................................................

                         ........................................................................................

                         ........................................................................................

                         ........................................................................................

        }

然后,在前端的“种册窗”中的“选项”里面,在卷期一项中填写入“@volume”。这样,采编部的同事,在做完书目数据后,直接扫描册条码就会自动填写上卷期信息。不用再统一添加卷期信息,可以加快图书加工效率。

但是,我还有一个小小的疑问,就是905字段中是否有X与Y这两个子字段。我查了一下MARC数据库方面的资料,没有发现里面记载着Y与X这两个子字段,也可能是我手中的资料太少。所以想请“xiaohuo”老师帮一下忙,帮忙指点一下这两个字段的出处。

==========



发表时间: 2013-03-26 12:47:05





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

作者: xietao


看到有个网页:

http://library.gxccedu.com/wt3.html

最后一句话是这样的:

905 |a收藏馆代码|b登录号|d分类号|e书次/种次号|f复本数|v入藏卷期|y年代范围

但原始出处依然不清楚。



发表时间: 2013-03-26 12:55:13





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 7 楼
文章id: 797
回复: 为册加入索取号和卷期信息方案

作者: xietao






以下是引用 xiaoma 于 2013/2/1 14:50:19 发表的文字:

这个方案用于书目统计窗,可以为书目信息下属的册信息加入索取号和卷期信息,索取号取的是905的d子字段和e子字段,卷期信息取的是905的y子字段和v子字段。


这个统计方案不知道用于什么场合?

CNMARC 格式的 905 字段就是一笔糊涂账,假如一种图书或者一种期刊里面有很多册,每一册的卷期都是不同的,年代都是不同的,905字段无法表达。905里面的$v$y是和$d$e配套的一组子字段,目的是描述索取号里面的第三行、第四行,但因为905字段没有提供重复如何操作的办法,即便是重复后也缺乏其他定位信息。(国外对于馆藏信息是采用单独的一个 MARC 记录描述一册来实现通讯交换的,例如 USMARC 就有专门的 holding 格式)

而在 dp2 系统中,书目记录下面有期记录和册记录,期记录里面有出版日期和年代卷期信息,册记录里面的索取号只是一个笼统的字段,用斜杠分隔表示索取号字符串,册记录里面也有卷期字段,和期记录里面的是冗余的。一个正常运作的系统,期记录和册记录里面本来就不缺这些信息,这些信息是从业务流程中自然创建产生的,一期一期,一册一册,非常清晰,没有歧义。如果用户感兴趣在 MARC 记录里面维持 905 字段,可以从期记录和册记录中抽取信息用于创建 905 字段,而不是倒过来从 905 字段到册记录中。

有一种很小的可能是用户单位从以前的系统转换到 dp2 系统的时候,需要从 905 的蛛丝马迹里面构造以前没有的期信息和册信息相关字段,但这个课题远非一个统计方案能单独解决的。请小马不妨说说这些背景情况。


发表时间: 2013-03-27 08:11:38
最后修改时间: 2013-03-27 08:14:21



页 1 / 1
 

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