现代科学研究中,人人都在关注数据:实验科学家以数据生存,理论家们受到数据的挑战,资助者也想知道如何在他们的支持下更容易产生数据而不用增加更多的预算,研究团体正在寻求新的数据存储库和标准,出版商想知道如何把控数据并提供质量控制。自然出版集团也正致力于开展研究论文可重复性(replicability)和可再现性(reproducibility)的工作,他们认为这是出版的重要元素,可让同行对研究工艺和结果进行验证。
2014年5月,自然出版集团发行了一本新杂志Scientific Data,将有助于解决其中的一些挑战。其中,Data Descriptors是对数据集进行正式描述的主要文章类型,使数据更加容易获取。这个杂志是要经过同行评议的,而且只在线发表,作者支付出版费用,保证他们的文章可免费获取。每篇文章都有机器可读元数据,以便数据能被最大限度地进行复用。这个杂志也是可引用的,并让原始发布者获取一定的学术信用。换句话说,数据的传递和共享成为一种值得的信用积累,原则上与传统研究论文的发表类似。重要的是,在对研究的评估以及研究者的奖励中,这从科学的重要组成部分出发引导了更多的公正性。引用Scientific Data的社论:“这不再是研究数据是否应该共享的问题,而是如何让有效的数据能共享并成为研究文化的高回报部分”。自然出版集团的许多期刊一直坚持数据在发表前存入可用的存储库中。现在的Scientific Data,终于成为了可以让研究人员正式描述数据集,以及用于获得这些数据的技术,并指引读者看到已经整合这些数据的研究论文[1]。有关这本新开源期刊的详细内容,请参考我的另外一篇博文[2]。下面举Data Descriptors中的两个例子来说明一下这样的文章是什么样子的:
第一个例子是由Zengchao Hao及其同事所提供的跟踪全球干旱的详细数据集(Z. Hao et al. Sci. Data http://doi.org/sww; 2014),是跟踪全球干旱的详细数据集,以前未曾发表过。任何人都可以下载数据,生成自己对世界上任何地方的地图(过去或未来),甚至可使用作者的源代码重新计算干旱指标。另一篇文章,是Graham Edgar和Rick Stuart-Smith提供的基于之前发表文章中数据的例子(G. J. Edgar and R. D. Stuart-Smith Sci. Data http://doi.org/sxv; 2014)。它是基于珊瑚礁生命调查所产生的数据,是一个公民科学的项目,由志愿者帮助来调查全球珊瑚礁的生物多样性。分析这些数据,可让我们理解相关珊瑚礁生态和保护。Data Descriptor给出了完整的数据,包括作者对调查过程和数据标准化的描述——这对其他有兴趣使用这些数据的科学家来说是非常关键的信息。
许多论文的核心要素是作者在模型、仿真和数据分析中使用的计算机代码。理想状况下,这些代码应该是可移植的,也很容易被他人使用。Nature希望能共享为他人免费使用,而且正在让数据和研究资料的共享变成现实。今天发表的Nature社论中[3],申明在Nature上发表的论文,其计算机代码将可被访问。Nature出版集团认为,由于目前所出版的刊物覆盖学科很广,可能难于做到在所有情况下都共享计算机代码,但要尽量做到这一点。因此现在规定,如果论文中的核心结论是来自这个代码的,就必须申明是否提供这个代码以及所设置的访问权限是什么。由编辑来审视提供代码是否合适:任何阻碍代码分享的实际问题都由编辑来评价,他们有权拒绝任何不提供重要代码的文章。此外,将在文章中提供一个专门的部分来放置计算机代码的信息。
数据杂志GigaScience开创了这方面的先河,要求论文提供提供代码,让他人可以分析其中的数据。开放软件源代码在计算科学中往往被视为一种可再现性的道路。但在实践中,即使代码是完全免费的,也可能有很多障碍,表现在如下几个方面:1)可移植性(Portability)。复杂的模型往往针对特定的平台进行精心优化的,现在要求它们可方便移植到其他平台是一件两难的事儿;2)可配置性(Configurability)。移植代码是一个艰巨的任务,可能优势需要为一个特定的模型运行而进行进行艰难的配置。即使有用户手册和配置脚本,要找出哪些配置是用于产生某种特定结果也是很难的,因为对科学模型配置的描述缺乏标准的方式;3)巨大差距(Entrenchment)。在复杂的科学模型中,许多决策层进入了代码,有些系统模拟中甚至包括了跨越几十年发展的决策层。虽然它们作为模型的部分一直在不断精练,但这些决策却很少进行过全面记录。开发这个模型的实验室之外的人不可能详细理解这些代码;4)模型-数据的模糊性(Model-data blur)。现在越来越难将计算模型和观测数据进行实质性分离。以地学研究为例,我们所说的观测数据通常包含数据处理的产品。如遥感通常就包括通过各种算法的转换以获得所需的变量,然后校验、规整、将数据重新栅格化。同样,计算模型不断输入了各种观测数据,可用于纠正偏差,参数化那些不能被明确计算或设定边界条件的过程。因此,不检查所输入的数据,也就不能讨论代码的有效性,反之亦然;5)出处(Provenance)。要再现一系列结果,必须知道所有的计算步骤。但要获得完整的出处进一步加工,规整数据集仍是一个挑战,特别是一些步骤中如果涉及商业软件工具或难于理解和复制的探索性技术,更是难上加难[4]。
但是,开放源码的政策至少会让代码质量变得更好。代码质量差在许多领域都有,并不是仅仅出现在科学计算中。编程者总是会编写一些“快速而肮脏”的代码,总想之后再来清理。这在一些前沿领域是尤其突出的——如果不能确定要做的事儿有多大可能,为什么一开始就要花时间来设计精美的代码呢?在软件工程中,这被称为技术“债”:如推迟代码可读性和可维护性问题,这个债务未来总是需要人来偿还的,需要重新运行或修改代码,付出额外的努力。这里比喻为“债”,并不是说这样不好。毕竟,我们为了快速获取某个有价值的东西经常会借债,比如如用贷款买房子。问题是这种债务必须进行仔细管理,防止它们失控。学术期刊中的开源政策是有帮助的。如果期刊要求开放代码,这就对作者清理代码产生了强烈的激励作用,而不再是无限期地推迟这个工作。作为其次级效应,这样的政策应该鼓励更多的科学家借此机会提高自己的编程技能。因此,尽管简单的开源政策不太可能迎来更大的共享和可再现性时代,就是上面所谈到许多障碍难于逾越。但是,这些政策通过刺激科学家来仔细地管理它们的技术债,从而在提高科学软件的质量中发挥了重要作用[4]。
越来越多的科学期刊,包括自然出版集团,现在鼓励作者分享他们的软件,并要求他们在论文中提供一个对代码可用性的申明。这样的政策对计算科学来说是重要的一步,而且对这些政策的期望应该也是现实的。在软件工具的共享,以及使得基于计算的研究可重复,所需要的不仅仅是获得代码。同样也应该看到这些政策的短期利益也是不可忽略的。
总之,如果更多的研究人员采取措施使他们的数据容易获得和发现,这正是科学的核心原则——其他人可以重复这个工作。现在又有一些杂志致力将代码共享变成规范,这是值得提倡的又一次飞跃。在这样一个开放文化的氛围下,小数据集和新软件工具可以更容易被发现,可再现性也就更容易实现了。
参考文献:
[1] Welcome, Scientific Data! Nature 509, 534 (29 May 2014).
[2] Nature将推出数据杂志开源期刊——Scientific Data(http://blog.sciencenet.cn/blog-502444-733516.html)
[3] Code share, Nature 514, 536 (30 October 2014).
[4] Steve M. Easterbrook, Open code for open science? Nature GeoScience 7, 779-781 (November 2014).
该文整理后发表于《中国计算机学会通讯》2015年1月。
转载本文请联系原作者获取授权,同时请注明本文来自赵斌科学网博客。
链接地址:https://wap.sciencenet.cn/blog-502444-839800.html?mobile=1
收藏