劉兵,徐建良
?。ㄖ袊Q蟠髮W 信息科學與工程學院,山東 青島 266100)
摘要:PROV模型是W3C推薦的數(shù)據(jù)溯源模型,擁有豐富的語義詞匯和數(shù)據(jù)模型。結合大洋樣品領域知識,從溯源信息的描述、溯源信息的存儲和溯源信息的查詢?nèi)矫娼榻BPROV模型在大洋樣品領域的應用過程和技術路線。
關鍵詞:PROV;大洋樣品;數(shù)據(jù)溯源
0引言
大洋樣品館的主要職能為樣品的收集、整理、保存、分配,屬性數(shù)據(jù)提?。?],而為了能夠更好地實現(xiàn)信息化,為樣品管理工作提供更強大的信息支持,樣品館設計并開發(fā)了大洋樣品管理系統(tǒng),該系統(tǒng)主要負責對入館樣品從入館交接到樣品分配出庫之間的信息管理工作。
目前,隨著數(shù)據(jù)量的增加,以及對樣品信息可靠性要求的提高,管理系統(tǒng)漸漸暴露出一些問題,隨著樣品數(shù)據(jù)的變遷很難保證樣品信息的可靠性。這個問題隨著數(shù)據(jù)量與業(yè)務的不斷增長,變得愈發(fā)嚴重。
近幾年數(shù)據(jù)溯源技術的流行,為解決大洋樣品管理系統(tǒng)產(chǎn)生的問題提供了比較合適的解決方案。數(shù)據(jù)溯源的研究最早可追溯到20世紀90年代,它的名稱是從“data provenance”翻譯過來的,意思是對數(shù)據(jù)來源進行追蹤然后將數(shù)據(jù)的歷史狀態(tài)重現(xiàn)出來。
目前國內(nèi)數(shù)據(jù)溯源的研究還比較少,將數(shù)據(jù)溯源應用到大洋樣品管理中的也較為少見。國外這方面的研究比較流行,數(shù)據(jù)溯源模型也很多,較為流行的有OPM模型和PROV模型。
1PROV模型
PROV是一個由W3C定義的有關溯源的標準文檔集合(PROV Family),目前共由11個文檔組成,其中4個為推薦標準,如圖1所示。
作為一個抽象模型,PROV并不針對具體的應用環(huán)境,而只是對于各領域下數(shù)據(jù)起源過程的一般化表達[2]。因此,如果要將PROV應用到特定的環(huán)境中,必須根據(jù)具體情況進行相應的擴展,否則會帶來諸如語義不準確等問題。
PROV數(shù)據(jù)模型(PROVDM) 是PROV標準家族的核心,其為溯源數(shù)據(jù)的表述提供了通用的術語概念。PROV模型作為一個上層溯源模型獨立于具體領域,從抽象層次上描述了溯源過程,其核心包括實體(Entity)、活動(Activity)和代理(Agent)。
實體和實體間的變化和流動通過屬性prov:wasDerivedFrom來表示;實體和活動之間的關系有prov:used和prov:wasGeneratedBy,分別表示實體被活動所使用和實體由活動產(chǎn)生;活動和活動之間利用屬性prov:wasInformedBy表示時間次序關系;代理之間的關系使用prov:actedOnBehalfOf屬性表示;代理與實體存在的關聯(lián)使用屬性prov:wasAttributedTo表達;代理與活動的關聯(lián)使用屬性prov:wasAssociatedWit h表達[3]。這三個比較核心的概念及其相互關系如圖2所示。
PROV還包含了一個專門為數(shù)據(jù)模型而定義的比較輕量級的本體,即PROVO[4]。PROVO使用標準網(wǎng)絡本體語言OWL描述,支持PROV的數(shù)據(jù)模型向RDF映射[5]。PROV本體根據(jù)用戶的應用需求分為三個級別,本文使用第一級別描述大洋樣品溯源信息。
2樣品信息溯源
2.1溯源信息描述
資源描述框架(Resource Description Framework, RDF)是用來描述網(wǎng)絡資源的W3C標準,RDF事實上已成為PROV模型的標準描述方式[6]。
以樣品的分割活動為例,假設某科學家申請樣品A中的一部分,樣品管理員(Admin01)需要將樣品A(SampleA)分割成為樣品B(SampleB)與樣品C(SampleC)。假設上述樣品只存在樣品編碼(Coding)屬性。
該場景涉及樣品管理領域的多個概念,這些概念在PROV模型的基礎上用相應的本體詞匯進行描述,該詞匯集在“http://www.cosr.or g.cn/mso#”命名空間下。
這些詞匯建立在PROV模型之上,是對PROV模型在本領域內(nèi)的擴展,這里只列舉出上文場景中出現(xiàn)的詞匯。上述樣品分割操作的RDF描述如下:
@prefix foaf: <http://xmlnscom/foaf/0.1/> .
@prefix prov: <http://wwww3org/ns/prov#> .
@prefix : <http://wwwcosrorgcn/mso#> .
:sampleA
a :Sample,prov:Entity;
prov:wasGeneratedBy: code01;
:Coding "1L4130126"^^xsd:string;.
:sampleB
a :Sample,prov:Entity;
prov:wasGeneratedBy:separate01;
:Coding "1L4130127"^^xsd:string; .
:sampleC
a :Sample,prov:Entity;
prov:wasGeneratedBy:separate01;
:Coding "1L41301268"^^xsd:string;.
:Admin01
a :Admin,foaf:Person,prov:Agent;
foaf:mbox<mailto:XX@example.org>;
foaf:name"XiaoMing"; .
:separate01
a :Separate,prov:activity;
prov:used:sampleA;
prov:wasAssociatedWith :application01;
prov:wasAssociatedWith :Admin01;
prov:startedAtTime "20160105"^^xsd:dateTime;
prov:endedAtTime "20160105"^^xsd:dateTime;
2.2溯源信息存儲
在傳統(tǒng)PROV溯源系統(tǒng)中,一般直接使用RDF文件或者關系型數(shù)據(jù)庫存儲溯源數(shù)據(jù),文件存儲存在數(shù)據(jù)共享性差、獨立性差和冗余度大等缺點,關系型數(shù)據(jù)庫由于存在過于結構化的特點,在數(shù)據(jù)庫擴展和存儲非結構化數(shù)據(jù)時比較困難[7]。
BrightstarDB數(shù)據(jù)庫可以解決上面的問題,BrightstarDB是原生的基于.NET的用于存儲RDF所描述的三元組的非關系型數(shù)據(jù)庫,支持SPARQL查詢語法。利用BrightstarDB提供的API,可以方便地將描述存入數(shù)據(jù)庫。如下所示將一條三元組描述存入數(shù)據(jù)庫:
var addTriples = new StringBuilder();
//三元http://wwwcosrorgcn/mso/separate01是PROV活動
addTriplesAppendLine("http://wwwcosrorgcn/mso/separate01 http://wwww3org/1999/02/22-rdf-syntax-ns/type http://www.w3.org/ns/prov/activity .");
//創(chuàng)建事務數(shù)據(jù)參數(shù)
var transactionData = new UpdateTransactionData { InsertData = addTriples };
//執(zhí)行事務
var jobInfo = clientExecuteTransaction(storeName, transactionData);
2.3溯源信息查詢
SPARQL是W3C推薦的RDF查詢語言,SPARQL語言的RDF數(shù)據(jù)查詢實現(xiàn)原理是圖模式匹配[8],由于BrightstarDB支持SPARQL查詢語言,所以可以直接使用SPARQL對溯源信息進行查詢。
在大洋樣品溯源查詢中,假設已知樣品B的樣品編碼,要查詢出它的母樣品的編碼和執(zhí)行分割操作的管理員的姓名。圖3是該查詢的圖模式(查詢意圖)。
圖中每條連線都是一條三元組陳述,用SPARQL語言實現(xiàn)代碼如下:
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-synt ax-ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix : <http://www.cosr.org.cn/mso#> .
SELECT ?Coding ?name
WHERE {?B :Coding “1L4130127”;
prov:wasGeneratedBy ?AC .
?AC prov:used ?A ;
prov:wasAssociatedWith ?Admin .
?Admin rdf:type :Admin ;
foaf:name ?name .
?A:Coding ?Coding .
}
該語句的執(zhí)行結果如表1所示。
3結論
隨著大洋領域業(yè)務量的增加和用戶需求的豐富,現(xiàn)行的大洋樣品管理系統(tǒng)在一定程度上已經(jīng)暴露出缺陷。本文通過對PROV模型的研究,將PROV模型應用到大洋樣品管理領域,解決了大洋樣品衍生數(shù)據(jù)可靠性的問題,為以后大洋樣品管理系統(tǒng)升級提供技術支持。
參考文獻
?。?] 杜林濤.大洋樣品倉庫信息化管理的研究[D].青島:中國海洋大學,2013.[2] 柯潔,董紅斌,梁意文,等. 基于PROV的ETL起源信息統(tǒng)一表達機制[J]. 四川大學學報(工程科學版),2015,47(5):126130.
[3] LEBO T,SAHOO S,MCGUINNESS D, et al.ProvO: The PROV ontology[EB/OL].(2013XXXX)[20160330]http: / /www.w3.org /TR/2013 /REC provo 20130430.
[4] MOREAU L,MISSIER P,BELHAJJAME K,et al.Provdm:the PROV data model[EB/OL].(2013XXXX)[20160330]http://www.w3.org/TR/2013 /REC prov dm 20130430.
[5] LIU X,WANG C. Data with provenance: models and storage[J]. China Academic Journal Electronic Publishing House,2008,35(10): 187191.
?。?] 倪靜,孟憲學.關聯(lián)數(shù)據(jù)環(huán)境下數(shù)據(jù)溯源描述語言的比較研究[J]. 現(xiàn)代圖書情報技,2013(2):1823.
[7] 陳彥.應用SPARQL進行RDF數(shù)據(jù)查詢[J].企業(yè)技術開發(fā),2007(7):610.
?。?] 周邠林,趙麗敏,蔣薇.基于RFID的生豬溯源系統(tǒng)設計與實現(xiàn)[J].微型機與應用,2014,33(10):8385.
?。?] 唐永瑞,張達敏. 基于Ajax與MVC模式的信息系統(tǒng)的研究與設計[J].電子技術應用,2014,40(2):7578.