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