鄧仲華 魏銀珍
(武漢大學(xué)信息管理學(xué)院 湖北武漢 430074)
在以云計算和大數(shù)據(jù)為代表的新信息技術(shù)的影響下,關(guān)于科學(xué)的一切幾乎都在變化中,實驗的、理論的和計算的科學(xué)范式都正在被數(shù)據(jù)密集型科研范式——科學(xué)研究第四范式所影響,這一科學(xué)范式的目標(biāo)是擁有一個所有科學(xué)文獻(xiàn)和科學(xué)數(shù)據(jù)都在線且能夠彼此交互的世界(見圖1)??茖W(xué)家可以利用云計算的資源和業(yè)界已有的數(shù)據(jù)庫來提高他們的發(fā)明能力,在閱讀論文的同時查看相關(guān)的原始數(shù)據(jù),重新分析;或者在查看數(shù)據(jù)時閱讀相關(guān)的文獻(xiàn),藉此來提高科學(xué)的“信息速率”,促進(jìn)研究人員的科學(xué)生產(chǎn)力。
圖1 數(shù)據(jù)和文獻(xiàn)交互
事實上,為實現(xiàn)以上目的,科學(xué)工作流已經(jīng)成為被廣泛采用的工具??茖W(xué)工作流可以:(1)系統(tǒng)地、自動化地實現(xiàn)跨越多個數(shù)據(jù)集和多個應(yīng)用領(lǐng)域的數(shù)據(jù)分析;(2)捕捉處理過程,從而使結(jié)果可以重現(xiàn);(3)可視化的腳本界面,使科學(xué)家可以創(chuàng)建各類流水線而不考慮底層編程;(4)匯聚不斷增長的各種資源,使科學(xué)家不必專長于每一種資源1。
借助工作流工具,科學(xué)家的實驗可以部署在網(wǎng)絡(luò)上,以便利用第三方提供的計算分析服務(wù)如云科學(xué)工作流以及Web Service、本地程序或腳本。在科學(xué)工作流中,數(shù)據(jù)依賴說明一個操作所產(chǎn)生的數(shù)據(jù)是如何作為下一個操作執(zhí)行時的輸入,所有的操作利用數(shù)據(jù)依賴組織在一起。
科學(xué)家發(fā)布工作流執(zhí)行后的結(jié)果數(shù)據(jù)集,作為驗證假說證據(jù)、確認(rèn)一個已有的事實或者暗示一個新的科學(xué)發(fā)現(xiàn)。但為了能夠被業(yè)界重用,則必須保存這些數(shù)據(jù)集以便將來的分析和計算。開放文檔信息參考模型(Open Archival Information System(OAIS)Reference Model)確定了數(shù)據(jù)發(fā)布時的三種類型的元數(shù)據(jù)信息:(1)明確標(biāo)識數(shù)據(jù)的參考信息;(2)定義數(shù)據(jù)的起源包括所有權(quán)、演變過程;(3)概述數(shù)據(jù)集與其他的數(shù)據(jù)集以及環(huán)境信息上下文信息(如引用、數(shù)據(jù)依賴、假設(shè)等)。通常,在數(shù)據(jù)發(fā)布之前,數(shù)據(jù)監(jiān)護(hù)人員對照報告或論文手工完成標(biāo)注工作,顯然,該工作繁冗耗時且易出錯。因此,迫切需要一個幫助數(shù)據(jù)監(jiān)護(hù)人員完成數(shù)據(jù)發(fā)布任務(wù)的方法。
科學(xué)工作流可以記錄前面提到的三種元數(shù)據(jù),也就是說數(shù)據(jù)的溯源軌跡可以作為科學(xué)工作流執(zhí)行的結(jié)果之一被記錄下來,這一點對科學(xué)工作流來說很容易做到。目前,大多數(shù)的科學(xué)工作流系統(tǒng)都具有(內(nèi)置或者外掛)收集工作流運行軌跡的功能,但這種軌跡記錄并不能解決數(shù)據(jù)監(jiān)護(hù)人員的工作困難,因為在科學(xué)家發(fā)布的工作流說明及其執(zhí)行結(jié)果中并不包含溯源信息。
分析發(fā)現(xiàn),主要原因是工作流中所記錄的“原生態(tài)”的溯源信息不適用于數(shù)據(jù)發(fā)布。本文針對原始溯源信息的缺點,探討適用于數(shù)據(jù)發(fā)布的溯源模型,提出一種提純原始溯源信息的方法,討論實現(xiàn)該方法在知識發(fā)現(xiàn)領(lǐng)域中的挑戰(zhàn)。
本文以一個科學(xué)工作流的運行實例,揭示工作流執(zhí)行過程中的溯源信息在數(shù)據(jù)發(fā)布方面的缺陷。
近年來,在E-Science的推動下,科學(xué)工作流被廣泛應(yīng)用到眾多學(xué)科的科學(xué)研究來完成自動化和片上實驗項目。與業(yè)務(wù)工作流不同,科學(xué)工作流是數(shù)據(jù)驅(qū)動的:我們可以將工作流看作是一個有向無環(huán)圖(Directed Acyclic Graph,DAG),節(jié)點表示數(shù)據(jù)處理過程,邊表示數(shù)據(jù)依賴關(guān)系,如圖2所示的就是一個太陽物理領(lǐng)域(主要研究來自太陽的高能事件及其傳播)的工作流示例,在這個工作流中,來自多個資料庫的數(shù)據(jù)被匯聚合并,執(zhí)行過程為:首先創(chuàng)建一個對“太陽特征表HFC(Helio Feature Catalog)”的查詢,來檢索在給定時間段內(nèi)檢測到的太陽表面活動區(qū)域;接著,查詢執(zhí)行的結(jié)果字符串將被解析成集合結(jié)構(gòu),每條記錄進(jìn)而作為生成檢索“太陽事件表HEC(Helio Events Catalog)”的查詢參數(shù),在HEC中檢索上一查詢中標(biāo)識的活動區(qū)域內(nèi)的太陽耀斑數(shù);然后,MergeHessiField過程匯總這些耀斑數(shù)據(jù),將其作為一個新列(Flare Count)添加到“活動區(qū)域(Active Rigion)”數(shù)據(jù)集中。該工作流將HFC表和HEC表做連接運算以獲得耀斑事件及其發(fā)生的區(qū)域位置。
要發(fā)布圖2中科學(xué)工作流所產(chǎn)生的數(shù)據(jù),工作流執(zhí)行時捕獲的溯源軌跡仿佛為數(shù)據(jù)發(fā)布提供了豐富的溯源信息和上下文信息的元數(shù)據(jù),但不幸的是這種原始溯源記錄并不適合于數(shù)據(jù)發(fā)布,主要原因有如下三點:
(1)原始溯源信息混亂??茖W(xué)處理步驟,如分析、可視化和數(shù)據(jù)檢索伴隨著“平凡”或者說并不重要的操作,如數(shù)據(jù)格式轉(zhuǎn)換、數(shù)據(jù)遷移以及為了整合第三方的資源而進(jìn)行的數(shù)據(jù)轉(zhuǎn)接等。因此,在工作流執(zhí)行過程中捕獲了每一個活動、輸入、輸出的所有信息,這些信息沒有經(jīng)過任何刪減,信息量巨大。而且,這樣的溯源信息中不能分辨哪些是重要數(shù)據(jù)項(如可視化的結(jié)果輸出),哪些僅僅是副產(chǎn)品(如執(zhí)行狀態(tài)信息、臨時文件地址等)。
(2)數(shù)據(jù)世系不透明。構(gòu)成科學(xué)工作流的活動是黑盒,不能揭示輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的依賴關(guān)系,因此我們無法確定某數(shù)據(jù)項是否是對數(shù)據(jù)集查詢的結(jié)果,也無法確定一個輸出項是否是輸入數(shù)據(jù)的清洗或修訂的結(jié)果。
(3)粗粒度。由于數(shù)據(jù)項之間透明的依賴關(guān)系,工作流溯源認(rèn)為所有的輸出都依賴于所有的輸入。在許多學(xué)科中,數(shù)據(jù)通常以表格形式存在,同時,大多數(shù)工作流中的信息組織活動都是數(shù)據(jù)從輸入到輸出過程中非常必要的中繼活動,如過濾、鏈接、合并等。然而,在所有科學(xué)工作流框架中,由于科學(xué)工作流對數(shù)據(jù)的結(jié)構(gòu)和活動的性質(zhì)是完全透明的,所以,每一個輸出項都被認(rèn)為是新項。因此,輸出結(jié)果中的某一項無法追溯其起源,也無法在溯源日志中發(fā)現(xiàn)哪些活動應(yīng)該對本項數(shù)據(jù)負(fù)責(zé)。
圖2 太陽物理學(xué)領(lǐng)域的一個工作流示例[2]
很多學(xué)者對以上問題做了研究,文獻(xiàn)[3]和文獻(xiàn)[4]針對于超大規(guī)模的溯源信息,提出了溯源信息查詢語言和基于的查詢?yōu)g覽器;文獻(xiàn)[5]中,其作者描述了一個能夠依據(jù)用戶興趣建模的方法并將科學(xué)工作流分解為多個視圖,以減少相應(yīng)溯源查詢的數(shù)據(jù)量。正如前文中提到的,工作流中有一些平凡操作,在抽象過程中并沒有被有意消除。
領(lǐng)域工作流的人工注解和溯源日志,是另一種使溯源信息更加有效的方法。通常,注解說明輸入輸出端口的類型和活動功能的定義,這些方法使科學(xué)家能夠使用領(lǐng)域術(shù)語提出溯源信息的查詢。
關(guān)于粗粒度溯源問題,文獻(xiàn)[6]采用的數(shù)據(jù)庫查詢方式,文獻(xiàn)[7]的作者贊成白盒數(shù)據(jù)流處理活動,跟蹤哪些數(shù)據(jù)經(jīng)過哪些處理后得到哪些數(shù)據(jù);細(xì)粒度溯源跟蹤數(shù)據(jù)依存關(guān)系,亦稱為Why溯源,可以對輸入和輸出數(shù)據(jù)之間的關(guān)系進(jìn)行What-If分析,但這對發(fā)生在白盒中的值拷貝操作是透明;文獻(xiàn)[8]以非具體化的方式實現(xiàn)較為精確的Why溯源(如記錄內(nèi)部屬性之間的數(shù)據(jù)依賴關(guān)系而不是整條記錄之間的關(guān)系)。我們認(rèn)為,科學(xué)工作流中值復(fù)制關(guān)系,亦稱Where溯源在數(shù)據(jù)發(fā)布中是非常必要的,因為數(shù)據(jù)監(jiān)護(hù)人員需要知道一個結(jié)果數(shù)據(jù)產(chǎn)品的起源。
以上工作都集中研究科學(xué)工作流設(shè)計和執(zhí)行時發(fā)生在本地計算機(jī)上的實驗活動,如調(diào)試、審計和跟蹤中間的數(shù)據(jù)項,目前還沒有專門針對數(shù)據(jù)發(fā)布的方法。在文獻(xiàn)[9]中,其作者試圖在發(fā)布之前,通過用戶定義數(shù)據(jù)提取、匿名化來解決溯源數(shù)據(jù)整體保存定制問題。我們認(rèn)為,對溯源金字塔中間層,還需要更多的研究和實驗來解決起源和上下文問題,這里我們提出了提純的方法,以消除原始溯源信息中對平凡操作的溯源記錄,得到一個更有價值的溯源信息的子集。
本文中,我們借鑒了文獻(xiàn)[10]中的數(shù)據(jù)金字塔的思想,提出了溯源金字塔(見圖3)??梢园l(fā)現(xiàn),科學(xué)工作流中的原始溯源和數(shù)據(jù)發(fā)布所需要的溯源信息位于溯源金字塔的兩端,數(shù)據(jù)的價值與其數(shù)量成反比,在數(shù)據(jù)分段過程中,只有重要數(shù)據(jù)項才能夠從本地區(qū)流向交流區(qū)。
由于原始溯源信息包含了工作流中所有活動和數(shù)據(jù)項的溯源信息,因此,我們將原始溯源數(shù)據(jù)置于溯源金字塔的底部,這種形式對基于工作流的本地實驗非常有用,如調(diào)試和轉(zhuǎn)換。金字塔頂端的是有交流價值的溯源信息,如生物數(shù)據(jù)庫中的“Evidence Code”或數(shù)據(jù)引用,這些信息通常由人工校對。實驗證明,交流層的數(shù)據(jù)對數(shù)據(jù)溯源意義重大。這種形式的溯源信息,可以進(jìn)一步幫助科學(xué)家進(jìn)行數(shù)據(jù)質(zhì)量計算、信用計量,甚至?xí)行碌目茖W(xué)數(shù)據(jù)發(fā)現(xiàn)。
圖3 溯源金字塔
對數(shù)據(jù)發(fā)布任務(wù)來說,溯源金字塔的中間層是非常必要的,該層可以通過對原始溯源數(shù)據(jù)的提純得到,進(jìn)而為頂層提供信息,如,可以用于數(shù)據(jù)引用和數(shù)據(jù)效用度量。
本文提出提純溯源方式:(1)結(jié)果數(shù)據(jù)上簡潔的起源標(biāo)注;(2)凸顯工作流中的重要活動。
溯源信息應(yīng)該滿足用戶需求。例如,當(dāng)用戶調(diào)試工作流時,他期望溯源信息能夠回答“為什么X在結(jié)果中”,或者“如果不輸入Y,我還能得到Z嗎?”這樣的問題。而另一方面,如果溯源信息用于報告實驗,或者決定引用哪些資源,我們希望對諸如“在工作流中發(fā)生了什么?”或“這些結(jié)果來自哪里?”的問題給出簡要的回答。我們將這些問題的答案稱為提純溯源。提純后的溯源信息應(yīng)該包含:
第一,淺注釋數(shù)據(jù)的來源和范圍。工作流固有的復(fù)雜性,使得原始的溯源數(shù)據(jù)中包含了大量的中間數(shù)據(jù)項。鑒于其體積巨大不適合發(fā)布,科學(xué)家不會發(fā)布原始溯源信息,取而代之的是工作流執(zhí)行的最終結(jié)果、人工標(biāo)注來源引用等。接著我們討論起源信息的提純形式,這種形式的注解在數(shù)據(jù)檢索和分析時被附加在數(shù)據(jù)項中,用來說明兩點:(1)來源信息;(2)范圍信息,即是記錄對生成數(shù)據(jù)具有重要意義(如生成查詢條件)的工作流輸入?yún)?shù)以及一些配置參數(shù)。這些標(biāo)注必須能夠在整個工作流中傳播。
第二,工作流內(nèi)部半有序的活動集合,即工作流摘要。為了說明摘要,圖4對圖2所示的工作流做了抽象,只包含有科學(xué)意義的數(shù)據(jù)生成步驟和工作流的輸入輸出跟蹤步驟。
如圖5所示的是提純工作流溯源方法的整體思路,首先,在工作流內(nèi)部描述活動設(shè)計時間注解,標(biāo)明面向數(shù)據(jù)的活動,如檢索、分析、數(shù)據(jù)組織等,我們稱之為主題,該類型將在3.2節(jié)中做詳解闡述,是提純方法的重要組成部分,因為主題注解既能實現(xiàn)工作流摘要又能實現(xiàn)運行時的起源標(biāo)注。在主題注解過程中,標(biāo)注重要輸入數(shù)據(jù),如查詢參數(shù)和分析任務(wù)的關(guān)鍵配置參數(shù)。其次是執(zhí)行帶有注解的工作流,工作流引擎具體執(zhí)行過程如下:
(1)識別數(shù)據(jù)上的起源標(biāo)注。用輸入數(shù)據(jù)生成新數(shù)據(jù)的活動在工作流內(nèi)部是透明的處理步驟,期間不僅僅生成數(shù)據(jù),同時也生成該數(shù)據(jù)的起源標(biāo)注,數(shù)據(jù)檢索和數(shù)據(jù)分析活動就是這樣的例子。起源標(biāo)注在一定程度上解決了黑盒的挑戰(zhàn)。在本文提出的提純方法中,不是標(biāo)記所有的數(shù)據(jù)處理步驟,而只是標(biāo)記產(chǎn)生新數(shù)據(jù)的步驟,在對生成新數(shù)據(jù)有影響的輸入數(shù)據(jù)(如參數(shù)/配置參數(shù))和輸出結(jié)果之間建立一條鏈路。
(2)傳播起源標(biāo)注。在Taverna工作平臺中擴(kuò)展了表敏感部件,包含了一組定義良好的數(shù)據(jù)組織功能,如投影、選擇、鏈接等運算,這些運算有助于起源信息的標(biāo)注,我們稱之為中繼步驟。使用表感知部件,可以使這些中繼步驟的執(zhí)行透明或者半透明,如使用定義良好的過濾表達(dá)式的選擇運算就是透明操作,使用基于數(shù)據(jù)清洗的人工編輯為半透明操作。在這個例子中,記錄級的注解可以被傳播,但屬性級的卻不能。如果有一個數(shù)據(jù)結(jié)構(gòu)適合數(shù)據(jù)傳播,跟蹤細(xì)粒度從輸入到輸出的軌跡,從而傳播細(xì)粒度注解。
最后,利用工作流定義中的主題標(biāo)注生成工作流摘要,消除工作流中的次要步驟,保留重要步驟,這有助于解決工作流的模糊問題。另外,數(shù)據(jù)上的重要標(biāo)記也是摘要的一部分。
主題具有面向數(shù)據(jù)的工作流活動的特征。圖2中工作流實例展示了不同類型的數(shù)據(jù)主題。主題是輕量級的可達(dá)本體,下面我們將簡要描述面向數(shù)據(jù)的主題。
圖4 工作流的摘要
圖5 提純工作流溯源的整體思路
(1)數(shù)據(jù)檢索。工作流或者工作流的特定步驟將數(shù)據(jù)送入數(shù)據(jù)密集通道,我們可以用不同的方式從本地和遠(yuǎn)程資源庫中檢索數(shù)據(jù),比如本地或遠(yuǎn)程的數(shù)據(jù)庫查詢,或者是與圖2中的HEC和HFC類似的Web服務(wù)。
(2)數(shù)據(jù)準(zhǔn)備。數(shù)據(jù)訪問和分析階段通常由外部服務(wù)或工具完成,需要結(jié)構(gòu)良好的請求作為輸入。所以,在工作流中,大量的任務(wù)是通過增補(bǔ)參數(shù)來生成這種格式的輸入,在示例工作流中,BuildHFCQuery和BuildHECQuery兩個子工作流就是完成這個功能的,在輸出結(jié)果前還要進(jìn)行逆運算。數(shù)據(jù)訪問和分析階段的輸出承擔(dān)數(shù)據(jù)抽取和分解任務(wù),將數(shù)據(jù)從服務(wù)格式轉(zhuǎn)換為工作流內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。
(3)數(shù)據(jù)組織。進(jìn)入工作流的數(shù)據(jù)不一定全部被處理,數(shù)據(jù)集合可能被進(jìn)一步過濾或抽取為多個子集。除了過濾處理,來自不同的分支工作流的數(shù)據(jù)可能會被合并。在我們的示例中,過濾(FilterEmptyResults)和合并(MergeHESSIField)同時存在。
(4)數(shù)據(jù)分析/可視化。分析處理的結(jié)果通常是從輸入導(dǎo)出的新信息。在本文的示例工作流中,計算單位活動區(qū)域內(nèi)事件發(fā)生的次數(shù)就是這樣的處理過程。
(5)數(shù)據(jù)清洗和校驗。文中的示例工作流沒有提到這類操作,該操作通常是由專門的服務(wù)或工具(如Google Refine)完成或者由人工交互完成。清洗校驗階段保持并豐富了數(shù)據(jù)的內(nèi)容。
(6)數(shù)據(jù)遷移。我們雖然沒有重點強(qiáng)調(diào)數(shù)據(jù)遷移,但在工作流內(nèi)部經(jīng)常發(fā)生的活動就是數(shù)據(jù)的移出和移進(jìn),通常通過臨時引用(如從URL下載,讀取文件)或建立引用(如將結(jié)果上傳到URL或者創(chuàng)建一個文件)來完成。
分析顯示,工作流的模糊性是一個永恒的問題。工作流內(nèi)部過半的活動都跟數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)組織有關(guān),其中數(shù)據(jù)準(zhǔn)備類活動占多數(shù),起到數(shù)據(jù)轉(zhuǎn)換的作用,在本文的提純方法中,我們將這類活動予以消除。另外,在領(lǐng)域工作流中,數(shù)據(jù)遷移約占所有活動的1/4的,這表明數(shù)據(jù)組織應(yīng)該被整合在科學(xué)工作流系統(tǒng)中,來支持表感知功能。
從公共資源庫中檢索科學(xué)數(shù)據(jù),進(jìn)而再利用、再融合生成新的數(shù)據(jù)集,接著對這些集合進(jìn)行計算分析、發(fā)布,已經(jīng)成為新時期科學(xué)工作的常見活動。本文主要研究科學(xué)工作流中面向數(shù)據(jù)發(fā)布的數(shù)據(jù)溯源。當(dāng)我們查詢數(shù)據(jù)記錄起源信息和工作流內(nèi)部簡潔的活動報告時,發(fā)現(xiàn)現(xiàn)有的工作流有其固有的模糊性和不透明性。為此我們提出了提純原始溯源信息的方法,實現(xiàn)數(shù)據(jù)溯源信息的發(fā)布。
提純溯源的核心是主題標(biāo)注,主題標(biāo)注指出了工作流活動面向數(shù)據(jù)的本質(zhì)。為了能夠?qū)崿F(xiàn)半自動化注解,作為下一步研究的重點,數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)將被應(yīng)用于工作流描述和執(zhí)行溯源中。
本文提出的提純溯源方法主要目的是支持?jǐn)?shù)據(jù)監(jiān)護(hù)人員的實驗數(shù)據(jù)報告和數(shù)據(jù)發(fā)布工作。我們將進(jìn)一步評估在一般情況下,這種提純溯源方法在知識發(fā)現(xiàn)背景下的有效性,特別是數(shù)據(jù)發(fā)布和引用的有效性。
[1]Tony Hey,Stewart Tansley,Kristin Tolle.The fourth paradigm[M].Microsoft Press,2009:17-18.
[2]Alper P,Belhajjame K,Goble C A,et al.Enhancing and abstracting scientific workflow provenance for data publishing [C].Proceedings of the Joint EDBT/ICDT 2013 Workshops.ACM,2013:313-318.
[3]Scheidegger C,Koop D,Santos E,et al.Tackling the provenance challenge one layer at a time[J].Concurrency and Computation:Practice and Experience,2008,20(5):473-483.
[4]Anand M K,Bowers S,Ludascher B.Provenance browser:Displaying and querying scientific workflow provenance graphs[C].Data Engineering (ICDE),2010 IEEE 26th International Conference on.IEEE,2010:1201-1204.
[5]Bhagwat D,Chiticariu L,Tan W C,et al.An annotation management system for relational databases[J].The VLDB Journal,2005,14(4):373-396.
[6]Cheney J,Chiticariu L,Tan W C.Provenance in databases:Why,how,and where[M].Now Publishers Inc,2009.
[7]Amsterdamer Y,Davidson S B,Deutch D,et al.Putting lipstick on pig:enabling database-style workflow provenance[J].Proceedings of the VLDB Endowment,2011,5(4):346-357.
[8]Ikeda R,Cho J,Fang C,et al.Provenance-based debugging and drill-down in data-oriented workflows [C].Proceedings of the 28th International Conference on Data Engineering,Washington,DC,2012.
[9]Dey S C, Zinn D, Lud scher B.PROPUB:towards a declarative approach for publishing customized,policyaware provenance[C].Scientific and Statistical Database Management.Springer Berlin Heidelberg,2011:225-243.
[10]Berman F.Got data:a guide to data preservation in the information age [J].Communications of the ACM,2008,51(12):50-56.
[11]Ingwersen P,Chavan V.Indicators for the Data Usage Index (DUI):an incentive for publishing primary biodiversity data through global information infrastructure[J].BMC bioinformatics, 2011,12(Suppl 15):S3.