芬兰国家图书馆的Osma Suominen在美国国会图书馆(LC)发布MARC到BIBFRAME 2.0转换工具后,第一时间进行了试用,并在BIBFRAME邮件组分享了他的试用报告。
转换MARC书目记录为RDF,是芬兰国家图书馆关联数据工作流程中重要一环。相对于MARC到bf的原转换工具,试用报告对MARC到bf2转换工具给予较高评价,也非常赞赏规范与具体转换分离的方式,称之为solid engineering。只是对于LC来说,比较遗憾的或许是BIBFRAME只是作为一个中间过渡,芬兰国图的关联数据主要采用Schema.org作为目标数据模型。
LC的marc2bibframe2转换工具和芬兰国图的书目数据到RDF转换流程bib-rdf-pipeline 都放在GitHub上,Osma Suominen在使用过程中发现问题可随时提交,或给出自己的修正,充分显示了GitHub平台在应用分享和共同维护上的优势。
Osma Suominen使用报告摘译如下:
[BIBFRAME] First impressions of new MARC to BIBFRAME 2.0 converter / Osma Suominen (2017-3-23)
1、技术架构
转换器基于XSL样式表,有很多可用的实施。本次转换按README文件建议使用xsltproc XSL处理器。
代码分成约20个XSL文件,每个对应一个发布为Excel表的转换规范,还有相应的使用XSpec写的单元测试,用于验证转换是否产生想要的结果。
XSL执行比bf转换所用XQuery好很多。同时由规范(Excel表)到实施(XSL)和单元测试(XSpec)的链条,让转换的需求和实施验证显得很清晰。旧转换器中,代码本身作为规范,并且没有单元测试。
2、性能
性能良好。单记录少于0.2秒,原转换工具使用Saxon要4秒。批量,单CPU约每秒160条记录(快于原每秒100条记录)。用4CPU并行转换1M记录约20分钟,几乎是原4倍速(75分钟)。
3、问题
发现一些bug,已在GitHub上作为问题报告。生成不正确RDF语法的问题及时得到解决。最严重的问题是转换语言信息,会混如本批中其他记录中的信息,我已修改转换器防止此问题,并作为pull提交。
4、缺失性能
相对于原转换程序:
【1】没有从240字段创建译本的“作品”
【2】没有转换10位ISBN到13位,也没有去短横
【3】序列化格式只支持RDF/XML,原来有N-Triples和JSON。这个可以理解,可以用其他工具实现。
5、文档
所有文档都在GitHub repo的顶层的README文件中。