开源代码库_3个开源代码库来处理MARC格式的记录

开源代码库

欢迎回到Nooks&Crannies! 在为我的婚礼休假一个月之后,我一直在为即将到来的专栏挖掘一些有趣的地方。 这个月,我将看一些开放源代码库,开发人员可以使用它们来处理MARC格式的记录。

MARC新手的一些背景知识

MARC代表机读目录记录。 这种格式最早是在1960年代为美国国会图书馆开发的,目的是促进图书馆之间书目记录的交换。 到1970年代中期,它已成为一种国际标准,已在世界范围内使用。

MARC格式有多种变体。 MARC21是1990年代USMARC和CANMARC的合并,当时使用的是美国和加拿大的变体,其他国家也有自己的格式。 在欧洲大部分地区,UNIMARC是最常见的变体。 所有的这些记录都格式化一样,用的是用来包含的信息标签的结构, 目录 ,告诉哪些变量是在记录,它们位于何处。

每个标签在每种格式下都表示特定的含义。 例如,在MARC21书目格式中,245标签保存有关作品标题的信息。 其他标签中还包含其他信息,包括出版商,作者,实体书的大小,出版日期和主题。

如果仅将记录打印出来,记录的格式将很难阅读。 它最初是为通过9磁道磁带进行串行交换而设计的,并且在我的职业生涯的早期,即1990年代,这种介质仍在使用。 记录的前五个字节是数字,并告诉您记录的长度(以字节为单位),包括这五个字节。 聪明的现代书呆子会立即意识到这种结构的局限性:记录的长度不能为100,000个字节。 接下来是标签目录,告诉要查找的标签以及每个标签从哪个字节开始。 之后是标签数据,其后的下一个字节是下一条记录的第一个字节。 领导者/目录/标签结构通常在ISO-2709中定义; MARC21或UNIMARC是定义标签含义的格式。

是的,按照现代标准,这是一种设计不良的格式。 是的,它需要以最坏的方式进行更新,但这是另一篇文章的主题。 在本文中,我将向您展示三个代码库,您可以使用它们来操纵MARC记录,而不必了解奥术标签目录的所有细节。

的Java:MARC4J

MARC4J允许创建迭代器来读取输入流(例如文件),并使用它在流中找到的MARC21或UNIMARC记录进行操作。 当然,也有记录写入工具,以及用于详细检查记录的迭代器。 这是一个快速的示例,它将读取记录文件,并且如果字段245中子标题a的标题以字母J开头,则将其写入另一个文件:



   
   
   
import org.marc4j.MarcReader ;
import org.marc4j.MarcStreamReader ;
import org.marc4j.MarcStreamWriter ;
import org.marc4j.marc.Record ;
import org.marc4j.marc.DataField ;
import org.marc4j.marc.Subfield ;
import java.io.InputStream ;
import java.io.OutputStream ;
import java.io.FileInputStream ;
import java.io.FileOutputStream ;

public class JMarcExample {

  public static void main ( String args [ ] ) throws Exception {

    InputStream  in   = new FileInputStream ( "inputfile.mrc" ) ;
    O
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值