開放科學簡介
- 「開放科學的概念是所有的科學知識都應在探索的過程中儘早開放」 — Michael Nielsen
什麼是「開放科學(Open Science)」?自二十一世紀後,「開放」的精神逐漸於學術界發酵,相同的目標都在追求打破知識或專有軟體(proprietary software)保護的障壁,期許能將知識予全體人類共享。開放科學和自由軟體(開放源碼是其要件之一)理念十分類似,其概念就是希望科學研究的過程及成果都是公開的,一方面能讓公眾了解科學的進展,並參與協作(collaboration)。另一方面開放的資料及研究過程能協助其他科學家確認其正確性及可再現性(reproducible)。一般而言開放科學有六項原則,分別為「開放資料」、「開放源碼」、「開放方法學」、「開放同儕審查」、「開放存取(期刊論文)」及「開放的教育資源」1。
近幾年來,網路及資訊工具的普及化也同時造就科學研究的躍進,各式各樣的科學研究工具隨著自由軟體、開放源碼的精神下紛至沓來,例如 Python 語言的科學研究套件 SciPy、NumPy ,或是專精統計計算的 R 語言等。其中多數的軟體源碼都置放在 Github 平台上給公眾使用、研究及開發。Github 是支援分散式版本控制系統(distributed version control system)的程式源碼(source code)代管平台,有許多著名專案都可在上面找到,例如自由地理資訊系統軟體 QGIS、 Julia 語言、建構 Python 輕量化的網路框架 Flask 等。除了上述獨立的科學研究工具外,亦有幾個熱門的開放科學研究框架(framework),和軟體不同的是,你可以使用這些開放科學研究框架來發展新的研究流程、撰寫新程式,並且能夠重複使用其元件。目前熱門的開放科學研究框架有 rOpenSci 及 Open Science Framework 等。以 rOpenSci 為例,其專案於 2011 年由幾個科學研究工作者發起,主要的初衷是希望進行科學研究中的資料及分析過程可重複使用及共享資料及軟體,透過研究者社群的維護,發展出一系列的 R 的套件,並建構嚴謹的審查過程來把關。在 rOpenSci 社群中,參與者可使用社群中的 R 套件,亦可自行開發套件提交至社群平台上或是審查同儕的 R 套件2。
當這類的開放源碼軟體及開放資料集愈來愈多時,該怎麼在研究論文引用呢?畢竟這些軟體或是資料集可能是研究者及作者花了許多時間和精力開發的!引用是對創作者最基本的尊重,也能鼓勵開放資料及開放源碼的開發者持續貢獻於社群。有些軟體工具會提供引用的指南,例如 R 語言內建的函示 citation() 即可顯示引用的格式:> citation()To cite R in publications use(要在文章中引用 R 請使用:): R Core Team (2018). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.(以下略)
但除了一般的文章之外,要如何使用建立識別碼來讓公眾引用你的作品呢?我們可以像期刊論文使用 DOI 來讓其他人引用,以下將以實際範例來教學,讓你能建立自己作品的 DOI。
DOI:數位資源的身份證
地址是定位空間上的一個特定位置,統一資源識別碼(Uniform Resource Identifier; URI)則是標定網路上的數位資源位置,例如網址(web address)是一種定位網路上的位置識別碼(通常稱為URL;Uniform Resource Locator)。但 URL 可能會因為伺服器或檔案變動而改變其名稱,另外其本身僅定義為數位資源的位址而非其本身的資訊,可能會造成後續管理上的問題。舉例來說,今天我開發了一個物種名錄產生器,把它放置在 Github 上並命名為 checklister,其 URL 為 http://github.com/mutolisp/checklister,但後來我建立了一個團隊並移到下列 URL http://github.com/TaiBON/checklister,此時這個軟體內容不變,但其 URL 已更動。為了解決這個問題,數位物件識別碼(Digital Object Identifier; DOI)因而產生,DOI 本身有兩部分並以「/」作為分隔,第一部分是前綴碼,主要由「國際物件識別號基金會(International Digital Object Identifier Foundation)」所制定,通常是代理註冊機構的代碼。第二部分則是屬於該機構底下的識別碼。以全球生物多樣性機構(Global Biodiversity Information Facility; GBIF)所製發的 DOI 為例:10.15468/dl.bfgeg7
上述其 DOI 的前綴碼為 10.15468,後面 dl.bfgeg7 則是數位資源,若你將這個 DOI 前方加上 http://doi.org,即 http://doi.org/10.15468/dl.bfgeg7,透過瀏覽器就會直接連到 GBIF 的 iNaturalist Research-grade Observations in Taiwan 的數位資源頁面,並顯示引用的格式為 「GBIF.org (05 September 2018) GBIF Occurrence Download https://doi.org/10.15468/dl.bfgeg7」1。此時若你透過這個頁面下載資料並分析,在發表的研究報告或論文中就能使用這個引用格式了。若你是開發者,想讓其他公眾能引用你的作品,建議將源碼放置 Github 並使用 Zenodo 來建立 DOI,詳細說明請參考下節。
開放科學的資料倉儲庫
Zenodo2 是歐盟 OpenAIRE(Open Access Infrastructure for Research in Europe;歐洲研究開放存取建設)計畫中的一份子。由 CERN (European Organization for Nuclear Research;歐洲核子研究組織)所開發的的巨量資料管理及開放科學、開放資料的數位圖書館。Zenodo 主要支援開放科學的服務,不僅限於科學領域,人文學科領域也一樣適用;你可以上傳相當廣泛的數位資源類型,例如研究論文草稿、預印本(preprint)3、資料集(dataset)、軟體(software)、海報(poster)等。每一筆上傳資源都能夠建立一個全球獨一無二的 DOI,分享給大眾使用並能被引用。
實例教學:分享並建立你的程式 DOI
了解 DOI 後,我們實際來建立一個程式或軟體的 DOI 。在以下教學文件中,你將知道如何建立一個 Github repository,發布釋出版(Release)和公眾共享你的科學研究分析軟體。最後透過 Zenodo 來建立你的程式 DOI,讓其他人能引用你的數位成果並表彰貢獻。
1. 建立一個 Github repository 及釋出版
請先註冊一個 Github 帳號,並參考建立一個 repository(Create a repository)的說明。開始寫源碼,並提交(commit)至版本控制庫中,最後建立一個釋出版(Release)。因為篇幅的關係這裡不做詳細介紹,若你不知道什麼是 git 或對 Github 不熟悉,可以參考其他網路上的教學文件4。
2. 註冊登入 Zenodo
你可以使用第三方登入的方式(支援 Github 及 ORCid 登入)或是註冊一個新帳號,如下圖一
3. 授權第三方程式權限
假設你已有 Github 帳號,點選 Sign up 註冊會連到以下的畫面 。請點 Sign up with GitHub
此時會出現授權 GitHub 權限給 Zenodo 的提示,包括 email 位址、repository webhooks 和服務及所屬團隊的權限,點選 Authorize Zenodo (授權給 Zenodo)後,即可透過 Zenodo 連結你的 GitHub 帳號
4. 啟用 Repository
接下來你在 Zenodo 右上角有個使用者帳號(你的 email 帳號),點選下拉式選單並選擇 GitHub,如下圖四
進入 GitHub 整合頁面後,會看到你所有的 repositories,以本例來說,我們將選擇 mutolisp/distrmap_tw.qgis 來建立 DOI。把要建立的 repository 開啟後(把開關滑向 ON),按右上角的 Sync now … Zenodo 就會自動連結到 GitHub 並建立 DOI,如下圖五所示:
點選啟用後的 DOI 徽章(badge)後,就會開出一個視窗讓你選擇使用的徽章的方法,一般來說我們在 GitHub repository 裡頭會使用 README.md (Markdown 語法的文件),所以就先把 Markdown 這個內容複製。
回到 mutolisp/distrmap_tw.qgis,編輯 README.md 加入上一步所複製的 DOI 徽章(參見圖七),存檔後就完成了(如圖八)。
5. 確認 Repository DOI
上述步驟都設定完成之後,回到首頁點選 Upload(參見圖九)就會顯示目前你所有連結並上傳的數位資源,此時可以直接點選剛剛建立的 distrmap_tw.qgis(參見圖十),將會顯示你的軟體(或是預印本、圖片等數位資源)的相關細節以及如何引用的格式。值得一提的是,Zenodo 對於軟體可以有共通的 DOI 或是不同版本的 DOI 引用,細節請參見版本引用說明。
小結
和過去紙本文件的時代比較,如何讓這些數位資料集、軟體、文件能妥適引用,公開分享及建立引用的連結是學術研究在數位化過程中所要面臨的挑戰。雖然可以你用網址來快速引用,但網站位址更迭頻繁 可能會導致這些連結失效,因此善用開放科學平台、引用資料庫,例如本文中使用 Zonodo 和 GitHub 整合,可快速提升你的作品及研究成果能見度,和社群分享並彼此審查砥礪,讓科學研究邁向協作及公開的目標,也讓知識普及貢獻於全體人類。
備註
- 並非所有的 DOI 引用格式都相同,和各機構採用格式有關
- Zenodo 名稱源自古希臘亞力山卓圖書館的第一個館員 Zenodotus
- 預印本指的是草稿、審稿階段或是被接受刊出前的研究論文。對於高度競爭的學術界中,有些研究創新可能是接近時間提出,但以往期刊審查週期較長,所以有些研究者選擇將研究論文預先上傳至公開的平台上以取得學術上發表成果的優先權,以防在審查期間被別人搶先或進行重複研究,例如 ArXiv、bioRxiv 及這裡提及的 Zenodo 等都是預印本分享平台
- 可參考為你自己學 git 或是連猴子都能懂的 git 指南
參考資料
[1] Open science as a practice. URL: http://openscienceasap.org/open-science/
[2] Scott Chamberlain, Anna Krystalli, Lincoln Mullen, Karthik Ram, Noam Ross, Maëlle Salmon (2018) rOpenSci Packages: Development, Maintenance, and Peer Review. URL: https://ropensci.github.io/dev_guide/ Accessed: Nov. 22, 2018
[3] GitHub Guides: Making your code citable (2018) URL: https://guides.github.com/activities/citable-code/ Accessed: Nov. 22, 2018