擁抱資料共享與程式碼開源的新時代

zyex1108發表於2017-01-14

擁抱資料共享與程式碼開源的新時代 精選

已有 3950 次閱讀 2014-10-30 12:25|個人分類:讀書筆記|系統分類:科研筆記|關鍵詞:資料 共享 程式碼 開源 Nature

現代科學研究中,人人都在關注資料:實驗科學家以資料生存,理論家們受到資料的挑戰,資助者也想知道如何在他們的支援下更容易產生資料而不用增加更多的預算,研究團體正在尋求新的資料儲存庫和標準,出版商想知道如何把控資料並提供質量控制。自然出版集團也正致力於開展研究論文可重複性(replicability)和可再現性(reproducibility)的工作,他們認為這是出版的重要元素,可讓同行對研究工藝和結果進行驗證。

20145月,自然出版集團發行了一本新雜誌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 EdgarRick 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月。

相關文章