拥抱数据共享与代码开源的新时代 精选

已有 3950 次阅读 2014-10-30 12:25|个人分类:读书笔记|系统分类:科研笔记|关键词:数据 共享 代码 开源 Nature

现代科学研究中,人人都在关注数据:实验科学家以数据生存,理论家们受到数据的挑战,资助者也想知道如何在他们的支持下更容易产生数据而不用增加更多的预算,研究团体正在寻求新的数据存储库和标准,出版商想知道如何把控数据并提供质量控制。自然出版集团也正致力于开展研究论文可重复性(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月。

拥抱数据共享与代码开源的新时代相关推荐

  1. 开源软件新时代:55个经典开源Wind…

    开源软件新时代:55个经典开源Windows工具 开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同时,基于Linux的Web服务器也占据了 ...

  2. 开源软件新时代:55个经典开源Windows工具

    开源软件新时代:55个经典开源Windows工具 开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同 时,基于Linux的Web服务器也占据 ...

  3. 开源软件新时代 55个经典开源Windows工具

    开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同时,基于Linux的Web服务器也占据了最大的市场份额.人们普遍相信,开放源代码软件(op ...

  4. 八大操作系统掌门人齐聚 1024 程序员节,千年岳麓见证开源新时代

    岳麓山下,风起云涌:湘江之滨,技术之约.10月23-25日,由CSDN等多家单位精心筹划的"长沙 · 中国1024程序员节"将盛大举行,硬核科技+开源文化+节日嘉年华&创新 ...

  5. 谷歌开源了量子算法框架CIRQ,拥抱NISQ新时代

    量子栗 发自 凹非寺  量子位 报道 | 公众号 QbitAI NISQ,是嘈杂中型量子 (Noisy Intermediate-Scale Quantum) 的简称. 今年年初,美国人John Pr ...

  6. 【NLP】FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代

    文 | 阿毅 两周前,南加大Yuchen Lin(PhD student @USC and ex-research intern @GoogleAI)所在的团队在Twitter官宣开源首个以研究为导向 ...

  7. FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代

    文 | 阿毅 两周前,南加大Yuchen Lin(PhD student @USC and ex-research intern @GoogleAI)所在的团队在Twitter官宣开源首个以研究为导向 ...

  8. 对话阿里云李飞飞:数据库迎来开源新时代 | 《新程序员》

    在大数据.人工智能.5G.物联网等新兴产业的日益成熟发展下,业界对数据库的稳定性.冗余度.扩展性.独立性提出了越来越高的要求,对此,阿里云.TiDB等国产数据库厂商们不断加快前进与创新的步伐,探寻跨越 ...

  9. 第三届长沙 · 中国 1024 程序员节:共迎算力新时代,开源新未来

    10 月 23-25 日,由湖南省工业和信息化厅.湖南湘江新区管理委员会指导,长沙市工业和信息化局.长沙信息产业园管委会和 CSDN 联合主办的 2022 长沙·中国 1024 程序员节成功举办. 本 ...

  10. 腾讯王巨宏:拥抱开源是这个时代开发者应该具备的思维和能力

    近日, 腾讯 Techo Park 开发者大会开源专场在京举办,腾讯开源办公室执行总监许勇.Apache TubeMQ 项目负责人薛赵明.优品科技CTO兼TARS开源框架核心维护者阮曙东.意法半导体亚 ...

最新文章

  1. mac图标包_Mac 生产力配置手册,从 Homebrew 说开去
  2. 用Jmeter制造软件测试数据
  3. 剑指offer之python实现
  4. nginx proxy svn 加快_Hexo+Nginx+SVN搭建网站
  5. android中常用的下拉刷新加载更多_如何设计“加载流程”
  6. 把执行结果转成json对象报错_JSONObject获取值后为一个对象,将对象转为JSONObject时报错...
  7. 华为V3.4-RIP命令总结
  8. 2020-08-27
  9. updateStateByKey算子入门案例
  10. 深入浅出Hadoop: 高效处理大数据
  11. 如何为java添加日历控件_laydate日历控件使用方法详解
  12. 为什么要用 Lightly 在线 IDE?
  13. 最牛最新奶粉事件“争抢奶粉互殴”值得我们大家去深思
  14. HDU 3533 BFS
  15. 小米智能插座接入HomeKit
  16. NUC8冥王峡谷改装苹果网卡完美方案
  17. 爆款预订,2022 最值得关注的后台框架——Fantastic-admin
  18. 用 dfuse Lifecycle 保证你的交易被推送上链
  19. bns服务器不可用怎么修复,DNS服务器可能不可用怎么办
  20. python 协程库gevent学习 -- 超时、互斥锁(BoundedSemaphore)、local

热门文章

  1. JavaScript验证表单大全【自用】
  2. lucene使用与优化
  3. 【ProjectT】Tapestry • Quick Start • Forms
  4. html中图片阴影怎么写,css如何给图片加阴影?
  5. OSPF特殊区域和选路规则
  6. H3C ACL 访问控制
  7. numpy 中的nan和常用的统计方法
  8. POJ3421:X-factor Chains——题解
  9. LinkedIn首席数据科学家谈数据分析
  10. ln -s 一定要用绝对路径