两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng)的制作方法

文檔序號:6509189閱讀:365來源:國知局
面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng)的制作方法
【專利摘要】本發(fā)明屬于計算機支持的科學(xué)工作流【技術(shù)領(lǐng)域】,具體為一個面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析的基于provenance的工作流的匹配和發(fā)現(xiàn)系統(tǒng)。本系統(tǒng)在創(chuàng)建蛋白質(zhì)組學(xué)數(shù)據(jù)分析流程時,充分的利用了收集的歷史流程信息及其相關(guān)的provenance信息,實現(xiàn)了知識的重用,減少了流程創(chuàng)建時的時間和精力消耗,加快了數(shù)據(jù)分析實驗的進度。該系統(tǒng)內(nèi)部的處理過程可以被劃分為3個步驟:使用基于任務(wù)的科學(xué)工作流來描述實驗任務(wù);運用流程匹配和provenance信息發(fā)現(xiàn)算法機制從歷史流程知識庫中提取實例化的流程及其provenance信息;整合提取的流程信息并展示給研究人員,依據(jù)實驗要求研究人員重用或修改這些歷史流程配置信息。
【專利說明】面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機支持的科學(xué)工作流【技術(shù)領(lǐng)域】,具體涉及一個面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析,并支持基于provenance的工作流的匹配和發(fā)現(xiàn)系統(tǒng)。
【背景技術(shù)】
[0002]關(guān)于e-science中的科學(xué)工作流科學(xué)工作流技術(shù)在科學(xué)研究領(lǐng)域越來越受重視,研究人員已經(jīng)開始在他們的科學(xué)研究中應(yīng)用一些成熟的科學(xué)工作流管理系統(tǒng),這一做法極大地促進了科學(xué)研究中的發(fā)現(xiàn)。如今,隨著網(wǎng)絡(luò)技術(shù)發(fā)展愈加的成熟,為了提高科研領(lǐng)域的協(xié)作性,一些組織將實驗數(shù)據(jù)、計算和和分析工具等科研資源以web服務(wù)的形式發(fā)布出去,其他科學(xué)家可以通過網(wǎng)絡(luò)將這些共享資源應(yīng)用到他們的科學(xué)研究中。為了有效地組織這些分布式的資源,研究人員們設(shè)計了一些科學(xué)工作流和科學(xué)工作流管理系統(tǒng)。在這些系統(tǒng)的幫助下,研究人員可以編排計算密集型的工作任務(wù),分析大批量的數(shù)據(jù),整合分布式的資源和本地資源,可以將更多的精力放在專業(yè)問題的解決上而不必花費過多的時間在計算和數(shù)據(jù)資源的組織管理上。
[0003]目前比較典型的科學(xué)工作流管理系統(tǒng)有Taverna , Kepler, Triana等。Taverna是一個開源的科學(xué)工作流管理系統(tǒng),主要應(yīng)用于生物信息學(xué)領(lǐng)域。Taverna可以整合多種共享的 web 服務(wù),包括以下幾種類型:Arbitrary WSDL type , Soaplab type, Talismantype, Nested workflow type , String constant type, Local processor type。它為用戶提供了一個可視的操作平臺,在這個平臺上生物學(xué)家可以使用這些服務(wù)來描述和執(zhí)行以數(shù)據(jù)為中心的科學(xué)工作流。它還提供了 web服務(wù)發(fā)現(xiàn),異常處理及provenance信息獲取等功能。與Taverna相似,Kepler也是一個面向生物信息學(xué)領(lǐng)域并且開源的科學(xué)工作流管理工具。除了一般的共享web服務(wù),它可以整合諸如數(shù)據(jù)庫一類的資源,并且提供了靈活的控制策略來組合這些資源。Triana主要用于分布式環(huán)境下的服務(wù)和工作流的執(zhí)行。與Taverna和Kepler不同,Triana可以應(yīng)用于不同的領(lǐng)域。
[0004]隨著科學(xué)研究復(fù)雜性的增加,在科學(xué)研究中使用的共享資源越來越多,為了實現(xiàn)資源出處的追蹤,準(zhǔn)確性的審查以及實驗執(zhí)行步驟的再現(xiàn),科學(xué)家們開始將provenance引入到科學(xué)工作流中。
[0005]關(guān)于provenance因為科學(xué)研究的不確定性,必須提供一種機制可供科學(xué)家們審查科學(xué)實驗的結(jié)果有效性和正確性。另外隨著科學(xué)研究中協(xié)同合作現(xiàn)象的愈加普遍,貢獻的認證也引起人們的注意。Data Provenance (數(shù)據(jù)起源/世系)記錄了科學(xué)工作流執(zhí)行過程中產(chǎn)生的實驗數(shù)據(jù)的歷史信息,內(nèi)容包括數(shù)據(jù)對應(yīng)的初始數(shù)據(jù)和初始數(shù)據(jù)演變?yōu)楫?dāng)前數(shù)據(jù)所經(jīng)過的所有的處理步驟。作為一種新的技術(shù),它被應(yīng)用到科學(xué)工作流中。這不僅解決了上述問題,同時因為擁有記錄數(shù)據(jù)起源,數(shù)據(jù)再生和數(shù)據(jù)共享,解釋數(shù)據(jù)間的差異以及支持知識重用等能力,provenance在科學(xué)工作流中的重要作用得到了普遍的認可。
[0006]關(guān)于蛋白質(zhì)組學(xué)數(shù)據(jù)分析(proteomics data analysis) 蛋白質(zhì)組學(xué)是一門較新的科學(xué)研究領(lǐng)域。對蛋白質(zhì)組學(xué)的研究將有助于解釋生命科學(xué),揭示生命的奧秘。然而對蛋白質(zhì)組學(xué)數(shù)據(jù)分析事實上是一個多步驟并且復(fù)雜的流程。在蛋白質(zhì)組學(xué)數(shù)據(jù)分析中使用科學(xué)工作流將大大地減輕研究人員的負擔(dān)。最近幾年蛋白質(zhì)組學(xué)有了極大的發(fā)展,其中一個最重要的催動因素是愈加增多的開源或免費的數(shù)據(jù)分析工具。但是人們在使用這些工具的時候經(jīng)常會遇到以下幾種問題:1.工具不易安裝;2.在沒有專業(yè)人員指導(dǎo)的情況下無法使用這些工具;3.因為結(jié)果數(shù)據(jù)格式的不一致導(dǎo)致這些工具的接口不相容,因此不易組建數(shù)據(jù)分析流程。為了解決上述問題科學(xué)工作流被引入到蛋白質(zhì)組學(xué)數(shù)據(jù)分析領(lǐng)域。
[0007]面臨的問題與商業(yè)活動相比,科學(xué)研究具有內(nèi)在的探索性、不確定性。科學(xué)工作流程經(jīng)常是嘗試性的、動態(tài)變化的,因此科學(xué)工作流不像商業(yè)工作流,它沒有固定的解決方案和模式??茖W(xué)工作流的這些特點導(dǎo)致工作流的創(chuàng)建是一項費事耗力的工作。對于一項科研任務(wù),科學(xué)家們不僅要從眾多的服務(wù)中選擇一組合適的服務(wù)用于執(zhí)行實驗任務(wù),在執(zhí)行前還必須調(diào)試控制服務(wù)內(nèi)在行為的參數(shù)。而服務(wù)的選擇和其參數(shù)的設(shè)定往往要經(jīng)過不斷的嘗試才能找到符合本次實驗要求和實驗特點的一組服務(wù)和參數(shù)值。這個問題在蛋白質(zhì)組學(xué)數(shù)據(jù)分析流程中顯得更加明顯。因此,非常有必有尋找一種簡便有效的方法來輔助科學(xué)家們?yōu)樗麄兊目茖W(xué)實驗組建科學(xué)工作流??茖W(xué)研究中的知識重用可以作為一個突破口。但是如何充分使用歷史流程及相關(guān)的provenance信息來幫助科學(xué)家創(chuàng)建科學(xué)工作流仍是一個具有挑戰(zhàn)性的工作。
[0008]本發(fā)明正是為了解決以上主要問題而設(shè)計了一個基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng)。在創(chuàng)建數(shù)據(jù)分析流程時,它能夠提供多組服務(wù)流程,用戶依據(jù)實驗要求重用或修改這些服務(wù)流程。

【發(fā)明內(nèi)容】

[0009]本發(fā)明目的在于提出一個面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析流程的支持基于provenance的工作流匹配和發(fā)現(xiàn)的系統(tǒng)。
[0010]Taverna , Kepler, Triana的工作流管理系統(tǒng)都支持provenance信息的獲取,但是獲取的provenance信息主要用于記錄實驗數(shù)據(jù)的出處,實驗數(shù)據(jù)的再生和共享。它們對工作流創(chuàng)建階段知識的重用支持很少。本發(fā)明設(shè)計的系統(tǒng)將provenance信息作為參考因素添加到工作流的匹配和發(fā)現(xiàn)過程中,為新的科研任務(wù)查找更符合要求的歷史流程供用戶參考使用。
[0011]1、系統(tǒng)的處理流程和系統(tǒng)的結(jié)構(gòu)
圖1展示了基于provenance的工作流匹配和發(fā)現(xiàn)的處理流程。處理流程被劃分為3步。(I)使用抽象的科學(xué)工作流建模方式描述數(shù)據(jù)分析任務(wù);(2)以(I)中的工作流為模板,使用流程匹配算法從歷史流程中找出匹配的流程(或者最大匹配路徑)和其對應(yīng)的provenance信息;(3)獲取的匹配歷史流程(或者最大匹配路徑)和其provenance信息以一種易于理解的組織形式展示給用戶。
[0012]基于上述處理流程,本發(fā)明設(shè)計了系統(tǒng)的框架結(jié)構(gòu)。系統(tǒng)的框架結(jié)構(gòu)如圖2所示,包括:工作流模塊,信息發(fā)現(xiàn)模塊,數(shù)據(jù)庫更新模塊,數(shù)據(jù)庫,工作流引擎。其中:
工作流模塊,包括兩部分內(nèi)容:初始工作流和實例化的工作流。初始工作流表示為描述數(shù)據(jù)分析任務(wù)而由抽象任務(wù)組成的科學(xué)工作流,在工作流匹配過程中作為工作流模板;實例化的工作流表示為初始工作流中的每一個抽象任務(wù)指定具體服務(wù)后的科學(xué)工作流。
[0013]數(shù)據(jù)庫包括HFK (歷史流程知識存儲庫)和roc (源數(shù)據(jù)信息收集庫),它們分別用于記錄歷史流程信息(包括對應(yīng)的抽象工作流和實例化后的工作流)和它們執(zhí)行時生成的provenance 信息。
[0014]信息發(fā)現(xiàn)模塊有如下三個子模塊組成:流程匹配和信息整合子模塊,流程信息挖掘子模塊,源數(shù)據(jù)挖掘子模塊。流程信息挖掘子模塊用于從歷史流程知識存儲庫中找出與流程模板重疊的任務(wù)節(jié)點及其對應(yīng)的具體服務(wù)。源數(shù)據(jù)挖掘子模塊用于從源數(shù)據(jù)信息收集庫中獲取匹配流程對應(yīng)的provenance信息。流程匹配和信息整合子模塊用于整合上述兩個子模塊獲取的信息,然后將整合后的信息展示給用戶。
[0015]工作流引擎包括工作流的執(zhí)行監(jiān)控模塊和工作流執(zhí)行模塊。后者負責(zé)執(zhí)行實例化的工作流,前者負責(zé)收集流程執(zhí)行時產(chǎn)生的provenance信息。
[0016]數(shù)據(jù)庫更新模塊在工作流執(zhí)行模塊每次執(zhí)行完一個工作流后就更新HFK和roc。
[0017]上述各個模塊間的數(shù)據(jù)流向關(guān)系描述如下:
用戶根據(jù)任務(wù)描述創(chuàng)建初始工作流(包括對工作流的要求描述);信息發(fā)現(xiàn)模塊將初始工作流作為工作流模板從歷史流程知識存儲庫和源數(shù)據(jù)信息收集庫中找出匹配的歷史流程及其對應(yīng)的執(zhí)行時產(chǎn)生的源數(shù)據(jù)信息;系統(tǒng)將信息發(fā)現(xiàn)模塊獲取的信息展示給用戶,用戶使用這些信息來實例化初始工作流,從而得到實例化的工作流;系統(tǒng)中工作流引擎模塊的工作流執(zhí)行子模塊執(zhí)行實例化的工作流,同時工作流的執(zhí)行監(jiān)控模塊會收集工作流執(zhí)行時產(chǎn)生的源數(shù)據(jù)信息;數(shù)據(jù)庫更新模塊將工作流引擎獲取的源數(shù)據(jù)信息和實例化的工作流信息作為歷史流程信息更新到數(shù)據(jù)模塊的歷史流程知識存儲庫和源數(shù)據(jù)信息收集庫中。
·[0018]2、系統(tǒng)框架結(jié)構(gòu)中各個模塊的詳細描述
(I)抽象任務(wù)集和實體服務(wù)集。系統(tǒng)的初始工作流模塊在創(chuàng)建初始工作流和實例化工作流時要用到抽象的任務(wù)集S和實體服務(wù)集T。T表示系統(tǒng)用到的抽象任務(wù)的集合。用戶可以使用這些任務(wù)來描述一個數(shù)據(jù)分析流程。S表示系統(tǒng)中已經(jīng)整合的實體服務(wù),這些服務(wù)可以實現(xiàn)T中的抽象任務(wù)。另外,系統(tǒng)組建的流程是以數(shù)據(jù)為中心的pipeline類型。
[0019](2)科學(xué)工作流。系統(tǒng)的工作流模塊使用基于任務(wù)的工作流建模方法??茖W(xué)工作流是一個簡單的有向圖G=(V,E,F(xiàn))。V是一個由流程中抽象任務(wù)節(jié)點組成的有限集合。E是一個由任務(wù)節(jié)點之間的數(shù)據(jù)依賴關(guān)系組成的集合。F是抽象任務(wù)和具體服務(wù)的映射關(guān)系的集合。例如,V1和V2是V中的兩個任務(wù)節(jié)點,如果V2數(shù)據(jù)依賴于V1那么E中存在一個元素61=〈¥1,V2>來表示這種依賴關(guān)系。如果F中有一個元素fi=〈Vi, Si〉,那么它表示在工作流執(zhí)行時有服務(wù)Si負責(zé)執(zhí)行任務(wù)Vi。根據(jù)科學(xué)工作流中F的取值是否為空,我們將科學(xué)工作流劃分為兩種:初始工作流和實例化的工作流。初始工作流是指描述科研任務(wù)的抽象的工作流,此時F為空。實例化的工作流是指用戶通過知識重用過程后對初始工作流實例化的工作流,此時對于流程中的每一個任務(wù)節(jié)點都有一個指定的具體服務(wù),F(xiàn)記錄了任務(wù)與具體服務(wù)之間的這種映射關(guān)系。
[0020](3)歷史流程知識存儲庫模塊。本系統(tǒng)使用了基于任務(wù)的工作流建模方法,所以我們必須記錄歷史流程中的任務(wù)和服務(wù)的對應(yīng)關(guān)系,作為重用知識的一部分。歷史流程知識存儲庫模塊負責(zé)記錄這種對應(yīng)關(guān)系。它的信息組織方式為:(〈task” Servicei), {G1;G2D是歷史流程知識存儲庫模塊中的一個基本信息單元,它的語義為:G1; G2中的抽象任務(wù)taskj在流程執(zhí)行時由服務(wù)Servicei來執(zhí)行。
[0021](4)源數(shù)據(jù)信息收集庫模塊。源數(shù)據(jù)信息收集庫模塊負責(zé)記錄系統(tǒng)中工作流執(zhí)行時產(chǎn)生的provenance信息,這些信息將在工作流匹配過程中被抽取出來和匹配的流程一起展示給用戶。結(jié)合系統(tǒng)自身的特點,我們對OPM (見圖3)中提出的provenance信息組織進行了改進。蛋白質(zhì)組學(xué)數(shù)據(jù)分析流程多為pipeline類型,我們可以通過”產(chǎn)生于(wasGeneratedBy) ”和”使用”依賴關(guān)系推出(used) ”起源于(WasDerivedFrom) ”和”被觸發(fā)(wasTriggerrdBy)”依賴關(guān)系。所以在源數(shù)據(jù)信息收集庫模塊中我們只記錄前兩種依賴關(guān)系來節(jié)省空間。源數(shù)據(jù)信息收集庫模塊中信息組織形式為〈object” object2>,其中Object1和Object2之間存在偏序關(guān)系。
[0022](5)系統(tǒng)中的信息發(fā)現(xiàn)模塊用于依據(jù)工作流模板,從歷史流程知識存儲庫模塊和源數(shù)據(jù)信息收集庫模塊中,獲取匹配的歷史流程的實例化信息和其執(zhí)行時的provenance信息。在該模塊中的算法實現(xiàn)中用到了一些基本概念:任務(wù)或服務(wù)間的等價關(guān)系,工作流之間的重置關(guān)系,重置路徑和重置路徑集,最大重置路徑集。分別介紹如下:
(a)任務(wù)或服務(wù)間的等價關(guān)系。給出屬于抽象任務(wù)集(T)的兩個元素V1和V2,如果Vl、V2表示的任務(wù)是同一個,貝U認為V1和V2是等價的,記作vI = V2 ;給出屬于實體服務(wù)集(S)的兩個元素S1和S2,如果Sl、S2表示的服務(wù)是同一個,則認為S1和S2是等價的,記作S1= s2。
[0023](b)工作流之間的重疊關(guān)系。兩個工作流Gi=(Vi,Ei, Fi)和Gk=(Vk,Ek, Fk)之間存在重疊關(guān)系,當(dāng)且僅當(dāng)(I)存在vx e T,并且(2)Vx e Vi并且vxevk。此時vx稱為工作流Gi和Gk的重疊節(jié)點。
[0024](C)重疊路徑和重疊路徑集。Gi=Wi, Ei, Fi)和Gk=(Vk,Ek, Fk)是兩個工作流,令E = Ei n Eko如果ex e E,那么由涉及的兩個任務(wù)節(jié)點按照它們數(shù)據(jù)依賴關(guān)系決定的偏序關(guān)系排列組成的有序集合稱為一條重疊路徑。如果E=null,但兩個工作流之間有重疊關(guān)系,那么由單個重疊節(jié)點組成的集合是一條特殊的重疊路徑。如果I1和I2是兩條重疊路徑,并且I2的的第一個節(jié)點和I1中的最后一個節(jié)點相同,那么我們可以用一條新的路徑1= I1Ul2來代替I1和I2,這一過程稱為重疊路徑的合并。由所有的重疊路徑組成的集合稱為重置路徑集。
[0025](d)最大重疊路徑集。OPS是Gi和Gk的一個重疊路徑集。OPS是一個最大重疊路徑集,當(dāng)且僅當(dāng)OPS中的任意兩條路徑Ii滿足一下條件=(I)Ii和L不是同一條路徑;并且(2)不存在同時屬于Ii和L的節(jié)點;并且(3)對于Ii中的任意一個節(jié)點Vi和L中的任意一個節(jié)點Vj,Vi和Vj之間不存在可以由數(shù)據(jù)依賴關(guān)系傳遞性質(zhì)決定的偏序關(guān)系??梢宰C明對于兩個工作流Gi和Gk,它們之間的最大重疊路徑集是有限的集合并且是唯一的。
[0026]3、系統(tǒng)模塊中涉及的算法以及算法中使用的數(shù)據(jù)結(jié)構(gòu) 本系統(tǒng)在實現(xiàn)過程中主要涉及以下幾個算法:
(DAlgorithm 1: FIF (task,HFK)。流程信息挖掘子模塊包括該算法,用于從歷史流程知識存儲庫模塊中查找給定的某一抽象任務(wù)在歷史流程中對應(yīng)的所有實體服務(wù)。
[0027](2) Algorithm 2: PIF(Gx, servicex, F1DC)。源數(shù)據(jù)挖掘子模塊包括該算法,用于從源數(shù)據(jù)信息收集庫模塊中查找歷史流程Gx在執(zhí)行實體服務(wù)Servicex時對應(yīng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的provenance信息。
[0028](3) Algorithm 3:Merge (PS1, PS2)。流程匹配和信息整合子模塊包括該算法,在生成最大路徑集時使用該算法合并兩條已知的重疊路徑。
[0029](4) Algorithm 4: GMPS(G= (V, E,F(xiàn)),HFK, PDC) ? 流程匹配和信息整合子模塊包括該算法,使用該算法獲取工作流模板G= (V,E , F)與HFK中歷史流程的最大重疊路徑及H)C中最大重疊路徑對應(yīng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)。該算法實現(xiàn)過程中調(diào)用了 Algorithm
I,Algorithm 2, Algorithm 3。
[0030](5)Algorithm 5: UpdateHFK (Gx, HFK)。數(shù)據(jù)庫更新模塊中的HFK更新子模塊包括該算法,使用該算法將工作流引擎中的工作流執(zhí)行監(jiān)控模塊獲取的Gx流程的實例化的信息更新到歷史流程知識存儲(HFK)數(shù)據(jù)庫中。
[0031](6) Algorithm 6: UpdatePDC(PInfo, F1DC)。數(shù)據(jù)庫更新模塊中的 PDC 更新子模塊包括該算法,使用該算法將工作流引擎中的工作流執(zhí)行監(jiān)控模塊獲取的流程執(zhí)行時的provenance信息PInfo更新到源數(shù)據(jù)信息收集(F1DC)數(shù)據(jù)庫中。
[0032]在實現(xiàn)上述算法時,本發(fā)明用到了 3個數(shù)據(jù)結(jié)構(gòu)。DE(DElement)是一個用于存儲具有偏序關(guān)系的元素的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)可以盛放兩個具有偏序關(guān)系的基本元素(如任務(wù)節(jié)點,實體服務(wù)等XCE (CElement)是一個復(fù)合型的數(shù)據(jù)結(jié)構(gòu),它既可以盛放基本的元素還可以盛放DE元素。MList是一個多維的鏈表,其內(nèi)部結(jié)構(gòu)如圖4。MList中的TData負責(zé)存放工作流模板中的任務(wù)節(jié)點;SData負責(zé)記錄歷史流程中實現(xiàn)TData中抽象任務(wù)的具體服務(wù);PData負責(zé)記錄SData中服務(wù)執(zhí)行時的provenance信息(包括輸入數(shù)據(jù)和輸出數(shù)據(jù))。為了方便對算法進行描述,本發(fā)明為這些數(shù)據(jù)結(jié)構(gòu)定義了一些原子操作,具體如下:
①Ji1(DE):獲取DE中的第一個元素;2 (DE):獲取DE中的第二個元素。
[0033]②CE[i]:獲取 CE 中下標(biāo)為 i 的元素;Set CE[i]=object:為 CE[i]賦值 object。
[0034]③addTData (TData, M`List):將 TData 添加到 MList 中。
[0035]④addSData (task, SData, MList):將 SData 添加到 MList 中,SData 在 MList 中的地址由task決定。
[0036]⑤addPData (task, service, PData, MList):將 PData 插入到 MList 中,PData 在MList中的位置由task, service共同決定。
【專利附圖】

【附圖說明】
[0037]圖1為系統(tǒng)流程。
[0038]圖2為系統(tǒng)框架。
[0039]圖3為OPM中的provenance涉及的依賴關(guān)系。圖中,P表不具體服務(wù),A表不服務(wù)使用或產(chǎn)生的數(shù)據(jù)。
[0040]圖4為工作流匹配算法中使用的數(shù)據(jù)結(jié)構(gòu)。
【具體實施方式】
[0041]各個模塊的中算法的具體實現(xiàn)
(I)流程信息挖掘模塊用于從歷史流程知識存儲庫模塊(HFK)中查找給定的某一任務(wù)在歷史流程中對應(yīng)的實體服務(wù),實現(xiàn)的算法為:Algorithm 1: FIF(task, HFK)。由前述可知HFK中的基本信息單元組織形式為CE= (〈task” Servicei) , {Gx, Gy})。其中算法的具體實現(xiàn)如下:遍歷HFK中的的所有信息單元,如果CEi中的第一個元素taski與task是等價關(guān)系即tasktask,將CEi添加到返回鏈表中,重復(fù)這個過程直到遍歷結(jié)束。最后返回結(jié)果鏈表。偽代碼實現(xiàn)見說明書附錄(I)。
[0042](2)源數(shù)據(jù)挖掘模塊用于從源數(shù)據(jù)信息收集庫(PDC)中查找指定流程中的某一個具體服務(wù)執(zhí)行時的provenance信息,其實現(xiàn)的算法為:Algorithm 2: PIF(Gx, servicex,FOC)。由前述可知F1DC中的信息單元的組織形式為DE=〈 Object1, object2>。算法的具體實現(xiàn)如下:創(chuàng)建一個新的CE數(shù)據(jù)類型對象:CE。查找出PDC中由Gx標(biāo)志的所有信息單元,這些信息單元暫存放在鏈表DElementSet中。遍歷DElementSet中的元素:DE,如果Ji1(DE)與Servicex有等價關(guān)系,那么set CE [2]= π 2 (DE);否則,如果π 2 (DE)與Servicex有等價關(guān)系,那么set CE[1]= JI1(DE)15 Set CE[0]=Gx。將CE作為結(jié)果數(shù)據(jù)返回。偽代碼實現(xiàn)見說明書附錄(2)。
[0043](3)流程匹配和信息整合模塊負責(zé)根據(jù)上述兩個模塊得到的信息構(gòu)建最大重疊路徑集。在主體算法Algorithm4: GMPS ( G= (V, E,F(xiàn)),HFK, PDC)中通過調(diào)用流程信息挖掘模塊和源數(shù)據(jù)挖掘模塊中的算法Algorithm I和Algorithm 2將HFK和FDC中與指定工作流G相關(guān)的匹配信息暫存在MList中。當(dāng)完成上述工作后,根據(jù)MList中的數(shù)據(jù)構(gòu)建最大重疊路徑集,該過程分為兩步:第一步,構(gòu)造重疊路徑集;第二部,不斷地合并第一步中構(gòu)造的重疊路徑集,直至這些路徑不能再合并,此時得到的路徑集是一個最大路徑集。
[0044]為某一指定的任務(wù)構(gòu)造重疊路徑的過程描述如下:(I)根據(jù)指定工作流G中的抽象任務(wù)task從MList中取出所有的相關(guān)的SData數(shù)據(jù);(2)取出所有由(I)中SData決定的 F1Data ; (3)對于任意一個 F1Data Ei (= (G x, inputdata, outputdata))我們可以構(gòu)造一條重疊路徑 L1: Set Li [O] = CE [O], Set Li [2] =〈CE [I],CE[2]>,Set Li [I] =Ktaski,SDatak>>。根據(jù)所有的SData和TOata構(gòu)造的重疊路徑組成的集合就是該抽象任務(wù)對應(yīng)的重置路徑集。
[0045]路徑合并的算法描述如下:給定兩個重疊路徑集PS1;PS2。其中PS2中的所有任務(wù)節(jié)點都后序于(由數(shù)據(jù)偏序關(guān)系決定的)PSp對于PS1中的每一條重置路徑Li1:遍歷PS2中的每條路徑Lk2,(a)如果Lk2中的工作流標(biāo)志和Li1中的工作流標(biāo)志相等,執(zhí)行步驟(b);否則執(zhí)行步驟(c) ;(b)如果M Li1 [2])= π2( 12[2]),將1[1]中的所有元素依照偏序關(guān)系添加到Lk2[l]中;否則執(zhí)行步驟(c) ;(c)將Li1添加到PS2*。最后將PS2作為新的路徑集返回。偽代碼實現(xiàn)見說明書附錄(3)。
[0046]根據(jù)迭代路徑合并構(gòu)建最大路徑算法的過程描述如下:對給定工作流G的V集合中的每一個抽象任務(wù)節(jié)點構(gòu)造路徑集PS1, PS2,…,PSn (η為V中節(jié)點的數(shù)目)。依次合并?311和?311_1,?311和?311_2,…,PSn和PS115路徑合并結(jié)束后得到的PSn為給定工作流G和歷史流程的最大重疊路徑集(其中的重疊路徑包含相應(yīng)的輸入數(shù)據(jù)和輸出數(shù)據(jù))。偽代碼實現(xiàn)見說明書附錄(4)。
[0047](4)系統(tǒng)框架圖中數(shù)據(jù)更新模塊負責(zé)對歷史流程知識存儲庫(HFK)和源數(shù)據(jù)信息收集庫(PDC)進行更新。它有兩個子模塊:HFK更新和PDC更新。前者負責(zé)對HFK進行更新,后者負責(zé)對PDC進行更新。
[0048]HFK 的更新的實現(xiàn):假如 Gx= ([T2, T3, T4, T5, T7], [<Τ2, Τ3>, <Τ3, Τ4>, <Τ4,τ5>, <Τ5, Τ7>],[])是一個新定義的抽象工作流。實例化后Gx中的F= (<Τ2,S2X>, < T3,S3X >,< T4, S4X >,< T5, S5X >,< T7, S7X >)。對于 F 中的任意一個元素 f,如果 HFK 中存在一個單位元素CE[0] = f,則將Gx添加到CE[1]中。否則創(chuàng)建一個新的元素CE’ = (f,{Gx}),然后將CE’添加到HFK中。偽代碼實現(xiàn)見說明書附錄(5)。
[0049]PDC的更新的實現(xiàn):假設(shè)系統(tǒng)在Gx執(zhí)行時獲取的provenance信息為PInfo= (<Datax, S2X, Data2>, <Data2, S3X, Data3>, < Data3, S4X, Data4>, <Data4, S5X,Data5), < Data5, S7X, Data7>)。PDC的更新實現(xiàn)如下:對于PInfo中的每一個元素e:倉丨J建兩個DE類型的結(jié)構(gòu)對象DE1和DE2。其中DE1標(biāo)注為“使用(used)”依賴關(guān)系,DE2標(biāo)注“產(chǎn)生于(wasGeneratedBy)” 依賴關(guān)系。為 DE1, DE2 賦值:set DE1 [O] = e [I], set DE1 [I]=e[0] ;set DE2[0] = e[2], set DE2[I] = e[l]。以 Gx 作為 DE1, DE2 的流程標(biāo)志,然后添加到roc中。偽代碼實現(xiàn)見說明書附錄(6)。
[0050]另外要說明的一點是,系統(tǒng)耗時會隨著HFK和roc中數(shù)據(jù)量的增大而增加,因此有必要把HFK和roc中的數(shù)據(jù)量控制在一定范圍內(nèi)??梢酝ㄟ^對HFK、PDC中的信息聚類或刪減偏僻的歷史流程等方法來控制HFK和roc中的數(shù)據(jù)量。
[0051]附錄說明:
(I) Algorithm 1: FIF(task , HFK)。
[0052](2) Algorithm 2: PIF (Gx, servicex, PDC)。
[0053](3) Algorithm 3:Merge (PS1, PS2)。
[0054](4) Algorithm 4: GMPS (G= (V, E , F),HFK, PDC)。
[0055](5) Algorithm 5: UpdateHFK (Gx, HFK)。
[0056](6) Algorithm 6: UpdatePDC (PInfo, PDC)。
[0057]說明書附錄
【權(quán)利要求】
1.一個面向蛋白質(zhì)組學(xué)數(shù)據(jù)分析的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于包括:工作流模塊,信息發(fā)現(xiàn)模塊,數(shù)據(jù)庫更新模塊,數(shù)據(jù)庫,工作流引擎;其中: 所述工作流模塊,包括兩部分內(nèi)容:初始工作流和實例化的工作流;初始工作流表示為描述數(shù)據(jù)分析任務(wù)而由抽象任務(wù)組成的科學(xué)工作流,在工作流匹配過程中作為工作流模板;實例化的工作流表示為初始工作流中的每一個抽象任務(wù)指定具體服務(wù)后的科學(xué)工作流; 所述數(shù)據(jù)庫,包括歷史流程知識存儲庫(HFK)和源數(shù)據(jù)信息收集庫(PDC),它們分別用于記錄歷史流程信息和它們執(zhí)行時生成的provenance信息; 所述信息發(fā)現(xiàn)模塊,有如下三個子模塊組成:流程匹配和信息整合子模塊,流程信息挖掘子模塊,源數(shù)據(jù)挖掘子模塊;流程信息挖掘子模塊用于從歷史流程知識存儲庫中找出與流程模板重疊的任務(wù)節(jié)點及其對應(yīng)的具體服務(wù);源數(shù)據(jù)挖掘子模塊用于從源數(shù)據(jù)信息收集庫中獲取匹配流程對應(yīng)的provenance信息;流程匹配和信息整合子模塊用于整合上述兩個子模塊獲取的信息,然后將整合后的信息展示給用戶; 所述工作流引擎,包括工作流的執(zhí)行監(jiān)控模塊和工作流執(zhí)行模塊;后者負責(zé)執(zhí)行實例化的工作流,前者負責(zé)收集流程執(zhí)行時產(chǎn)生的provenance信息; 所述數(shù)據(jù)庫更新模塊,在工作流執(zhí)行模塊每次執(zhí)行完一個工作流后就更新HFK和roc ; 上述各個模塊間的數(shù)據(jù)流向關(guān)系如下: 用戶根據(jù)任務(wù)描述創(chuàng)建初始工作流;信息發(fā)現(xiàn)模塊將初始工作流作為工作流模板從歷史流程知識存儲庫和源數(shù)據(jù)信息收集庫中找出匹配的歷史流程及其對應(yīng)的執(zhí)行時產(chǎn)生的源數(shù)據(jù)信息;由信息發(fā)現(xiàn)模塊獲取的信息展示給用戶,用戶使用這些信息來實例化初始工作流,從而得到實例化的工作流;工作流引擎模塊的工作流執(zhí)行子模塊執(zhí)行實例化的工作流,同時工作流的執(zhí)行監(jiān)控模塊收集工作流執(zhí)行時產(chǎn)生的源數(shù)據(jù)信息;數(shù)據(jù)庫更新模塊將工作流引擎獲取的源數(shù)據(jù)信 息和實例化的工作流信息作為歷史流程信息更新到數(shù)據(jù)模塊的歷史流程知識存儲庫和源數(shù)據(jù)信息收集庫中。
2.根據(jù)權(quán)利要求1所述的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于系統(tǒng)的初始工作流模塊在創(chuàng)建初始工作流和實例化工作流時涉及抽象的任務(wù)集S和實體服務(wù)集T ;其中,T表示系統(tǒng)用到的抽象任務(wù)的集合,用戶使用這些任務(wù)來描述一個數(shù)據(jù)分析流程;S表示系統(tǒng)中已經(jīng)整合的實體服務(wù),這些服務(wù)實現(xiàn)T中的抽象任務(wù);另外,系統(tǒng)組建的流程是以數(shù)據(jù)為中心的pipeline類型。
3.根據(jù)權(quán)利要求2所述的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于所述的科學(xué)工作流是一個簡單的有向圖G= (V,E,F(xiàn)),其中,V是一個由流程中抽象任務(wù)節(jié)點組成的有限集合,E是一個由任務(wù)節(jié)點之間的數(shù)據(jù)依賴關(guān)系組成的集合,F(xiàn)是抽象任務(wù)和具體服務(wù)的映射關(guān)系的集合。
4.根據(jù)權(quán)利要求3所述的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于歷史流程知識存儲庫模塊中信息組織方式為:(〈task” service,), {G, G2}),表示歷史流程知識存儲庫模塊中的一個基本信息單元,它的語義為=G1, G2中的抽象任務(wù)taski在流程執(zhí)行時由服務(wù)Servicei來執(zhí)行; 源數(shù)據(jù)信息收集庫模塊中信息組織形式為〈object” object2>,其中Object1和Object2之間存在偏序關(guān)系。
5.根據(jù)權(quán)利要求4所述的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于 信息發(fā)現(xiàn)模塊涉及如下基本概念:任務(wù)或服務(wù)間的等價關(guān)系,工作流之間的重疊關(guān)系,重疊路徑和重疊路徑集,最大重疊路徑集;分別為: Ca)任務(wù)或服務(wù)間的等價關(guān)系,給出屬于抽象任務(wù)集(T)的兩個元素V1和V2,如果Vl、V2表示的任務(wù)是同一個,貝U認為V1和V2是等價的,記作vI = V2 ;給出屬于實體服務(wù)集(S)的兩個元素S1和S2,如果SpS2表示的服務(wù)是同一個,則認為S1和S2是等價的,記作S1= S2 (b)工作流之間的重疊關(guān)系,設(shè)兩個工作流Gi=(Vi,Ei,Fi)和Gk=(Vk,Ek, Fk)之間存在重疊關(guān)系,當(dāng)且僅當(dāng)(I)存在vx e T,并且(2)Vx e Vi并且vx e Vk,此時vx稱為工作流Gi和Gk的重疊節(jié)點; (c)重疊路徑和重疊路徑集,設(shè)Gi=(Vi, Ei, Fi)和Gk=(Vk,Ek, Fk)是兩個工作流,令E = Ei H Ek,如果ex e E,那么由ex所涉及的兩個任務(wù)節(jié)點按照它們數(shù)據(jù)依賴關(guān)系決定的偏序關(guān)系排列組成的有序集合稱為一條重疊路徑;如果E=null,但兩個工作流之間有重疊關(guān)系,那么由單個重疊節(jié)點組成的集合是一條特殊的重疊路徑;如果I1和I2是兩條重疊路徑,并且I2的的第一個節(jié)點和I1中的最后一個節(jié)點相同,那么用一條新的路徑1= I1Ul2來代替I1和I2,這一過程稱為重疊路徑的合并;由所有的重疊路徑組成的集合稱為重疊路徑集; Cd)最大重疊路徑集,設(shè)OPS是Gi和Gk的一個重疊路徑集,OPS是一個最大重疊路徑集,當(dāng)且僅當(dāng)OPS中的任意兩條路徑I1、Ij滿足一下條件=(I)Ii和Ij不是同一條路徑;并且(2)不存在同時屬于Ii和L的節(jié)點;并且(3)對于Ii中的任意一個節(jié)點Vi和L中的任意一個節(jié)點Vj,Vi和Vj之間不存在可以由數(shù)據(jù)依賴關(guān)系傳遞性質(zhì)決定的偏序關(guān)系。
6.根據(jù)權(quán)利要求5所述 的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于系統(tǒng)包括如下算法: (1)Algorithm 1: FIF (task,HFK),流程信息挖掘子模塊包括該算法,用于從歷史流程知識存儲庫模塊中查找給定的某一抽象任務(wù)在歷史流程中對應(yīng)的所有實體服務(wù); (2)Algorithm2: PIF(Gx, servicex, PDC),源數(shù)據(jù)挖掘子模塊包括該算法,用于從源數(shù)據(jù)信息收集庫模塊中查找歷史流程Gx在執(zhí)行實體服務(wù)Servicex時對應(yīng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)的provenance信息; (3)Algorithm3:Merge (PS1, PS2),流程匹配和信息整合子模塊包括該算法,在生成最大路徑集時使用該算法合并兩條已知的重疊路徑; (4)Algorithm 4: GMPS(G= (V, E,F(xiàn)),HFK, PDC),流程匹配和信息整合子模塊包括該算法,使用該算法獲取工作流模板G= (V,E , F)與HFK中歷史流程的最大重疊路徑及PDC中最大重疊路徑對應(yīng)的輸入數(shù)據(jù)和輸出數(shù)據(jù);該算法實現(xiàn)過程中調(diào)用Algorithm 1,Algorithm 2,Algorithm 3 ; (5)Algorithm 5: UpdateHFK(Gx, HFK),數(shù)據(jù)庫更新模塊中的HFK更新子模塊包括該算法,使用該算法將工作流引擎中的工作流執(zhí)行監(jiān)控模塊獲取的Gx流程的實例化的信息更新到歷史流程知識存儲(HFK)數(shù)據(jù)庫中; (6)Algorithm 6: UpdatePDC(PInfo, PDC),數(shù)據(jù)庫更新模塊中的PDC更新子模塊包括該算法,使用該算法將工作流引擎中的工作流執(zhí)行監(jiān)控模塊獲取的流程執(zhí)行時的provenance信息PInfo更新到源數(shù)據(jù)信息收集(F1DC)數(shù)據(jù)庫中。
7.根據(jù)權(quán)利要求6所述的基于provenance的工作流匹配和發(fā)現(xiàn)系統(tǒng),其特征在于系統(tǒng)算法使用如下3個數(shù)據(jù)結(jié)構(gòu):DE,一個用于存儲具有偏序關(guān)系的元素的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)盛放兩個具有偏序關(guān)系的基本元素;CE,一個復(fù)合型的數(shù)據(jù)結(jié)構(gòu),它既盛放基本的元素,還盛放DE元素;MList,一個多維的鏈表,其內(nèi)部結(jié)構(gòu)包括:TData,負責(zé)存放工作流模板中的任務(wù)節(jié)點,SData,負責(zé)記錄歷史流程中實現(xiàn)TData中抽象任務(wù)的具體服務(wù),F(xiàn)1Data,負責(zé)記錄SData中 服務(wù)執(zhí)行時的provenance信息。
【文檔編號】G06Q10/06GK103440553SQ201310380982
【公開日】2013年12月11日 申請日期:2013年8月28日 優(yōu)先權(quán)日:2013年8月28日
【發(fā)明者】翟廣猛, 盧暾, 黃興, 陳昭燦, 顧寧 申請人:復(fù)旦大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
西盟| 遵化市| 盐边县| 兴业县| 泊头市| 马边| 永安市| 五家渠市| 新沂市| 泰来县| 姜堰市| 崇文区| 城固县| 三穗县| 阿拉善左旗| 宁海县| 漯河市| 樟树市| 寿宁县| 禹城市| 麻江县| 杭锦后旗| 即墨市| 贵定县| 香港 | 开化县| 霍林郭勒市| 廉江市| 察隅县| 班玛县| 石嘴山市| 汉沽区| 东山县| 萨嘎县| 河西区| 东辽县| 五大连池市| 龙南县| 石台县| 乌兰察布市| 鄂托克旗|