刘兵,徐建良
(中国海洋大学 信息科学与工程学院,山东 青岛 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.