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