鄧仲華 魏銀珍
(武漢大學信息管理學院 湖北武漢 430074)
在以云計算和大數據為代表的新信息技術的影響下,關于科學的一切幾乎都在變化中,實驗的、理論的和計算的科學范式都正在被數據密集型科研范式——科學研究第四范式所影響,這一科學范式的目標是擁有一個所有科學文獻和科學數據都在線且能夠彼此交互的世界(見圖1)。科學家可以利用云計算的資源和業界已有的數據庫來提高他們的發明能力,在閱讀論文的同時查看相關的原始數據,重新分析;或者在查看數據時閱讀相關的文獻,藉此來提高科學的“信息速率”,促進研究人員的科學生產力。

圖1 數據和文獻交互
事實上,為實現以上目的,科學工作流已經成為被廣泛采用的工具。科學工作流可以:(1)系統地、自動化地實現跨越多個數據集和多個應用領域的數據分析;(2)捕捉處理過程,從而使結果可以重現;(3)可視化的腳本界面,使科學家可以創建各類流水線而不考慮底層編程;(4)匯聚不斷增長的各種資源,使科學家不必專長于每一種資源1。
借助工作流工具,科學家的實驗可以部署在網絡上,以便利用第三方提供的計算分析服務如云科學工作流以及Web Service、本地程序或腳本。在科學工作流中,數據依賴說明一個操作所產生的數據是如何作為下一個操作執行時的輸入,所有的操作利用數據依賴組織在一起。
科學家發布工作流執行后的結果數據集,作為驗證假說證據、確認一個已有的事實或者暗示一個新的科學發現。但為了能夠被業界重用,則必須保存這些數據集以便將來的分析和計算。開放文檔信息參考模型(Open Archival Information System(OAIS)Reference Model)確定了數據發布時的三種類型的元數據信息:(1)明確標識數據的參考信息;(2)定義數據的起源包括所有權、演變過程;(3)概述數據集與其他的數據集以及環境信息上下文信息(如引用、數據依賴、假設等)。通常,在數據發布之前,數據監護人員對照報告或論文手工完成標注工作,顯然,該工作繁冗耗時且易出錯。因此,迫切需要一個幫助數據監護人員完成數據發布任務的方法。
科學工作流可以記錄前面提到的三種元數據,也就是說數據的溯源軌跡可以作為科學工作流執行的結果之一被記錄下來,這一點對科學工作流來說很容易做到。目前,大多數的科學工作流系統都具有(內置或者外掛)收集工作流運行軌跡的功能,但這種軌跡記錄并不能解決數據監護人員的工作困難,因為在科學家發布的工作流說明及其執行結果中并不包含溯源信息。
分析發現,主要原因是工作流中所記錄的“原生態”的溯源信息不適用于數據發布。本文針對原始溯源信息的缺點,探討適用于數據發布的溯源模型,提出一種提純原始溯源信息的方法,討論實現該方法在知識發現領域中的挑戰。
本文以一個科學工作流的運行實例,揭示工作流執行過程中的溯源信息在數據發布方面的缺陷。
近年來,在E-Science的推動下,科學工作流被廣泛應用到眾多學科的科學研究來完成自動化和片上實驗項目。與業務工作流不同,科學工作流是數據驅動的:我們可以將工作流看作是一個有向無環圖(Directed Acyclic Graph,DAG),節點表示數據處理過程,邊表示數據依賴關系,如圖2所示的就是一個太陽物理領域(主要研究來自太陽的高能事件及其傳播)的工作流示例,在這個工作流中,來自多個資料庫的數據被匯聚合并,執行過程為:首先創建一個對“太陽特征表HFC(Helio Feature Catalog)”的查詢,來檢索在給定時間段內檢測到的太陽表面活動區域;接著,查詢執行的結果字符串將被解析成集合結構,每條記錄進而作為生成檢索“太陽事件表HEC(Helio Events Catalog)”的查詢參數,在HEC中檢索上一查詢中標識的活動區域內的太陽耀斑數;然后,MergeHessiField過程匯總這些耀斑數據,將其作為一個新列(Flare Count)添加到“活動區域(Active Rigion)”數據集中。該工作流將HFC表和HEC表做連接運算以獲得耀斑事件及其發生的區域位置。
要發布圖2中科學工作流所產生的數據,工作流執行時捕獲的溯源軌跡仿佛為數據發布提供了豐富的溯源信息和上下文信息的元數據,但不幸的是這種原始溯源記錄并不適合于數據發布,主要原因有如下三點:
(1)原始溯源信息混亂。科學處理步驟,如分析、可視化和數據檢索伴隨著“平凡”或者說并不重要的操作,如數據格式轉換、數據遷移以及為了整合第三方的資源而進行的數據轉接等。因此,在工作流執行過程中捕獲了每一個活動、輸入、輸出的所有信息,這些信息沒有經過任何刪減,信息量巨大。而且,這樣的溯源信息中不能分辨哪些是重要數據項(如可視化的結果輸出),哪些僅僅是副產品(如執行狀態信息、臨時文件地址等)。
(2)數據世系不透明。構成科學工作流的活動是黑盒,不能揭示輸入數據和輸出數據之間的依賴關系,因此我們無法確定某數據項是否是對數據集查詢的結果,也無法確定一個輸出項是否是輸入數據的清洗或修訂的結果。
(3)粗粒度。由于數據項之間透明的依賴關系,工作流溯源認為所有的輸出都依賴于所有的輸入。在許多學科中,數據通常以表格形式存在,同時,大多數工作流中的信息組織活動都是數據從輸入到輸出過程中非常必要的中繼活動,如過濾、鏈接、合并等。然而,在所有科學工作流框架中,由于科學工作流對數據的結構和活動的性質是完全透明的,所以,每一個輸出項都被認為是新項。因此,輸出結果中的某一項無法追溯其起源,也無法在溯源日志中發現哪些活動應該對本項數據負責。

圖2 太陽物理學領域的一個工作流示例[2]
很多學者對以上問題做了研究,文獻[3]和文獻[4]針對于超大規模的溯源信息,提出了溯源信息查詢語言和基于的查詢瀏覽器;文獻[5]中,其作者描述了一個能夠依據用戶興趣建模的方法并將科學工作流分解為多個視圖,以減少相應溯源查詢的數據量。正如前文中提到的,工作流中有一些平凡操作,在抽象過程中并沒有被有意消除。
領域工作流的人工注解和溯源日志,是另一種使溯源信息更加有效的方法。通常,注解說明輸入輸出端口的類型和活動功能的定義,這些方法使科學家能夠使用領域術語提出溯源信息的查詢。
關于粗粒度溯源問題,文獻[6]采用的數據庫查詢方式,文獻[7]的作者贊成白盒數據流處理活動,跟蹤哪些數據經過哪些處理后得到哪些數據;細粒度溯源跟蹤數據依存關系,亦稱為Why溯源,可以對輸入和輸出數據之間的關系進行What-If分析,但這對發生在白盒中的值拷貝操作是透明;文獻[8]以非具體化的方式實現較為精確的Why溯源(如記錄內部屬性之間的數據依賴關系而不是整條記錄之間的關系)。我們認為,科學工作流中值復制關系,亦稱Where溯源在數據發布中是非常必要的,因為數據監護人員需要知道一個結果數據產品的起源。
以上工作都集中研究科學工作流設計和執行時發生在本地計算機上的實驗活動,如調試、審計和跟蹤中間的數據項,目前還沒有專門針對數據發布的方法。在文獻[9]中,其作者試圖在發布之前,通過用戶定義數據提取、匿名化來解決溯源數據整體保存定制問題。我們認為,對溯源金字塔中間層,還需要更多的研究和實驗來解決起源和上下文問題,這里我們提出了提純的方法,以消除原始溯源信息中對平凡操作的溯源記錄,得到一個更有價值的溯源信息的子集。
本文中,我們借鑒了文獻[10]中的數據金字塔的思想,提出了溯源金字塔(見圖3)。可以發現,科學工作流中的原始溯源和數據發布所需要的溯源信息位于溯源金字塔的兩端,數據的價值與其數量成反比,在數據分段過程中,只有重要數據項才能夠從本地區流向交流區。
由于原始溯源信息包含了工作流中所有活動和數據項的溯源信息,因此,我們將原始溯源數據置于溯源金字塔的底部,這種形式對基于工作流的本地實驗非常有用,如調試和轉換。金字塔頂端的是有交流價值的溯源信息,如生物數據庫中的“Evidence Code”或數據引用,這些信息通常由人工校對。實驗證明,交流層的數據對數據溯源意義重大。這種形式的溯源信息,可以進一步幫助科學家進行數據質量計算、信用計量,甚至會有新的科學數據發現。

圖3 溯源金字塔
對數據發布任務來說,溯源金字塔的中間層是非常必要的,該層可以通過對原始溯源數據的提純得到,進而為頂層提供信息,如,可以用于數據引用和數據效用度量。
本文提出提純溯源方式:(1)結果數據上簡潔的起源標注;(2)凸顯工作流中的重要活動。
溯源信息應該滿足用戶需求。例如,當用戶調試工作流時,他期望溯源信息能夠回答“為什么X在結果中”,或者“如果不輸入Y,我還能得到Z嗎?”這樣的問題。而另一方面,如果溯源信息用于報告實驗,或者決定引用哪些資源,我們希望對諸如“在工作流中發生了什么?”或“這些結果來自哪里?”的問題給出簡要的回答。我們將這些問題的答案稱為提純溯源。提純后的溯源信息應該包含:
第一,淺注釋數據的來源和范圍。工作流固有的復雜性,使得原始的溯源數據中包含了大量的中間數據項。鑒于其體積巨大不適合發布,科學家不會發布原始溯源信息,取而代之的是工作流執行的最終結果、人工標注來源引用等。接著我們討論起源信息的提純形式,這種形式的注解在數據檢索和分析時被附加在數據項中,用來說明兩點:(1)來源信息;(2)范圍信息,即是記錄對生成數據具有重要意義(如生成查詢條件)的工作流輸入參數以及一些配置參數。這些標注必須能夠在整個工作流中傳播。
第二,工作流內部半有序的活動集合,即工作流摘要。為了說明摘要,圖4對圖2所示的工作流做了抽象,只包含有科學意義的數據生成步驟和工作流的輸入輸出跟蹤步驟。
如圖5所示的是提純工作流溯源方法的整體思路,首先,在工作流內部描述活動設計時間注解,標明面向數據的活動,如檢索、分析、數據組織等,我們稱之為主題,該類型將在3.2節中做詳解闡述,是提純方法的重要組成部分,因為主題注解既能實現工作流摘要又能實現運行時的起源標注。在主題注解過程中,標注重要輸入數據,如查詢參數和分析任務的關鍵配置參數。其次是執行帶有注解的工作流,工作流引擎具體執行過程如下:
(1)識別數據上的起源標注。用輸入數據生成新數據的活動在工作流內部是透明的處理步驟,期間不僅僅生成數據,同時也生成該數據的起源標注,數據檢索和數據分析活動就是這樣的例子。起源標注在一定程度上解決了黑盒的挑戰。在本文提出的提純方法中,不是標記所有的數據處理步驟,而只是標記產生新數據的步驟,在對生成新數據有影響的輸入數據(如參數/配置參數)和輸出結果之間建立一條鏈路。
(2)傳播起源標注。在Taverna工作平臺中擴展了表敏感部件,包含了一組定義良好的數據組織功能,如投影、選擇、鏈接等運算,這些運算有助于起源信息的標注,我們稱之為中繼步驟。使用表感知部件,可以使這些中繼步驟的執行透明或者半透明,如使用定義良好的過濾表達式的選擇運算就是透明操作,使用基于數據清洗的人工編輯為半透明操作。在這個例子中,記錄級的注解可以被傳播,但屬性級的卻不能。如果有一個數據結構適合數據傳播,跟蹤細粒度從輸入到輸出的軌跡,從而傳播細粒度注解。
最后,利用工作流定義中的主題標注生成工作流摘要,消除工作流中的次要步驟,保留重要步驟,這有助于解決工作流的模糊問題。另外,數據上的重要標記也是摘要的一部分。
主題具有面向數據的工作流活動的特征。圖2中工作流實例展示了不同類型的數據主題。主題是輕量級的可達本體,下面我們將簡要描述面向數據的主題。

圖4 工作流的摘要

圖5 提純工作流溯源的整體思路
(1)數據檢索。工作流或者工作流的特定步驟將數據送入數據密集通道,我們可以用不同的方式從本地和遠程資源庫中檢索數據,比如本地或遠程的數據庫查詢,或者是與圖2中的HEC和HFC類似的Web服務。
(2)數據準備。數據訪問和分析階段通常由外部服務或工具完成,需要結構良好的請求作為輸入。所以,在工作流中,大量的任務是通過增補參數來生成這種格式的輸入,在示例工作流中,BuildHFCQuery和BuildHECQuery兩個子工作流就是完成這個功能的,在輸出結果前還要進行逆運算。數據訪問和分析階段的輸出承擔數據抽取和分解任務,將數據從服務格式轉換為工作流內部的數據結構。
(3)數據組織。進入工作流的數據不一定全部被處理,數據集合可能被進一步過濾或抽取為多個子集。除了過濾處理,來自不同的分支工作流的數據可能會被合并。在我們的示例中,過濾(FilterEmptyResults)和合并(MergeHESSIField)同時存在。
(4)數據分析/可視化。分析處理的結果通常是從輸入導出的新信息。在本文的示例工作流中,計算單位活動區域內事件發生的次數就是這樣的處理過程。
(5)數據清洗和校驗。文中的示例工作流沒有提到這類操作,該操作通常是由專門的服務或工具(如Google Refine)完成或者由人工交互完成。清洗校驗階段保持并豐富了數據的內容。
(6)數據遷移。我們雖然沒有重點強調數據遷移,但在工作流內部經常發生的活動就是數據的移出和移進,通常通過臨時引用(如從URL下載,讀取文件)或建立引用(如將結果上傳到URL或者創建一個文件)來完成。
分析顯示,工作流的模糊性是一個永恒的問題。工作流內部過半的活動都跟數據準備和數據組織有關,其中數據準備類活動占多數,起到數據轉換的作用,在本文的提純方法中,我們將這類活動予以消除。另外,在領域工作流中,數據遷移約占所有活動的1/4的,這表明數據組織應該被整合在科學工作流系統中,來支持表感知功能。
從公共資源庫中檢索科學數據,進而再利用、再融合生成新的數據集,接著對這些集合進行計算分析、發布,已經成為新時期科學工作的常見活動。本文主要研究科學工作流中面向數據發布的數據溯源。當我們查詢數據記錄起源信息和工作流內部簡潔的活動報告時,發現現有的工作流有其固有的模糊性和不透明性。為此我們提出了提純原始溯源信息的方法,實現數據溯源信息的發布。
提純溯源的核心是主題標注,主題標注指出了工作流活動面向數據的本質。為了能夠實現半自動化注解,作為下一步研究的重點,數據挖掘和機器學習技術將被應用于工作流描述和執行溯源中。
本文提出的提純溯源方法主要目的是支持數據監護人員的實驗數據報告和數據發布工作。我們將進一步評估在一般情況下,這種提純溯源方法在知識發現背景下的有效性,特別是數據發布和引用的有效性。
[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.