Open Provenance Model Tutorial

sounderslipInternet and Web Development

Oct 22, 2013 (3 years and 9 months ago)

102 views

Open Provenance Model Tutorial


Session 3: OPM Serializations

Luc Moreau

L.Moreau@ecs.soton.ac.uk

University of Southampton

Session 3: Aims

In this session, you will learn about:


The XML Schema for OPM


The OWL ontology for OPM


Session 3: Contents


OPM Layered Architecture


XML Binding


RDF Binding


RDF Binding with OWL Inferences


Conclusion


OPM LAYERED ARCHITECTURE

OPM Layered Model

OPM Core

OPM Essential Profiles: Collections, Attribution

OPM Domain Specialization: Workflow, Web

Technology Bindings: XML, RDF

OPM Sig

OPM based APIs: record, query

5

XML BINDING

OPM Graph

<
opm:opmGraph

xmlns:opm
="http://openprovenance.org/model/v1.1.a"


xmlns:xsi
="http://www.w3.org/2001/XMLSchema
-
instance"


xmlns:xsd
="http://www.w3.org/2001/XMLSchema"


xmlns
="http://
example.com
/">


<
opm:accounts
/>


<
opm:processes
>


<
opm:artifacts
/>


<
opm:agents
/>


<
opm:causalDependencies
/>

</
opm:opmGraph
>


OPM Process

<
opm:process

id="p1">


<
opm:account

ref="black"/>


<
opm:label

value="
align_warp

1"/>


<
opm:annotation

id="an1_p1">


<
opm:property

uri
="http://
openprovenance.org/primitives#primitive
">


<
opm:value

xsi:type
="
xsd:string
">


http://
openprovenance.org/primitives#align_warp


</
opm:value
>


</
opm:property
>


</
opm:annotation
>

</
opm:process
>


id:
xs:ID

implies uniqueness within document

account membership

label: for pretty printing

annotation: set of property key value pairs

OPM Artifact

<
opm:artifact

id="a1">


<
opm:account

ref="black"/>


<
opm:label

value="Reference Image"/>


<
opm:type

value="http://
openprovenance.org/primitives#File
"/>


<
opm:annotation

id="an1_a1">


<
opm:property

uri
="http://
openprovenance.org/primitives#path
">


<
opm:value

xsi:type
="
xsd:string
">


/shomewhere/pc1/reference.img


</
opm:value
>


</
opm:property
>


</
opm:annotation
>

</
opm:artifact
>


id:
xs:ID

implies uniqueness within document

account membership

label: for pretty printing

annotation: set of property key value pairs

opm:type
: a predefined OPM annotation, with compact syntax

OPM edges

<
opm:used
>


<
opm:effect

ref="p1"/>


<
opm:role

value="
img
"/>


<
opm:cause

ref="a3"/>


<
opm:account

ref="black"/>

</
opm:used
>


<
opm:wasGeneratedBy
>


<
opm:effect

ref="a30"/>


<
opm:role

value="out"/>


<
opm:cause

ref="p15"/>


<
opm:account

ref="black"/>

</
opm:wasGeneratedBy
>


<
opm:wasDerivedFrom
>


<
opm:effect

ref="a11"/>


<
opm:cause

ref="a1"/>


<
opm:account

ref="black"/>

</
opm:wasDerivedFrom
>



ref: refers to nodes ids

RDF BINDING

History of RDF bindings


Tupelo (
Futrelle
)


OWL ontology from Tupelo


OWL ontology from Paulson


OWL ontology in OPM Toolbox


OWL ontology by
Tetherless

Team (PC3)

OWL Ontology for OPM (1)


OPM toolbox allows for conversion from XML
to RDF and back


Ontology design principle:


XML
toplevel

element corresponds to a OWL class


Introduce an
OPMGraph

class


Make graph membership explicit by means of
properties

OWL Ontology for OPM (1)

OWL Ontology for OPM (1)

// Class: http://
openprovenance.org/ontology#Used


SubClassOf(Used

ObjectSomeValuesFrom(cause

Artifact))

SubClassOf(Used

ObjectAllValuesFrom(cause

Artifact))

SubClassOf(Used

ObjectSomeValuesFrom(role

Role))

SubClassOf(Used

ObjectAllValuesFrom(role

Role))

SubClassOf(Used

ObjectSomeValuesFrom(effect

Process))

SubClassOf(Used

ObjectAllValuesFrom(effect

Process))

SubClassOf(Used

Edge)


DisjointClasses(Used

WasTriggeredBy
)

DisjointClasses(Used

WasControlledBy
)

DisjointClasses(Used

WasDerivedFrom
)

DisjointClasses(Used

WasGeneratedBy
)


OWL Ontology for OPM (1)

pc1:p5 a
opm:Process

;


opm:account

pc1:black ;


opm:label

"
Reslice

1" .


pc1:an1_p5 a
opm:Annotation

.


pc1:pr_18 a
opm:Property

;


opm:uri

"http://
openprovenance.org/primitives#primitive
" ;


opm:value

"http://
openprovenance.org/primitives#reslice
" .


pc1:an1_p5
opm:property

pc1:pr_18 .


pc1:p5
opm:annotation

pc1:an1_p5 .


pc1:u_103 a
opm:Used

;


opm:effect

pc1:p1 ;


opm:role

pc1:r_102 ;


opm:cause

pc1:a3 ;


opm:account

pc1:black .



pc1:gr_273 a
opm:OPMGraph

;


opm:hasAccount

pc1:black ;


opm:hasProcess

pc1:p5 , ...;


opm:hasArtifact

pc1:a25p, ...;


opm:hasDependency

pc1:u_103, ...

OWL Ontology for OPM (1)


Limitations


OPM edges are reified, i.e. represented as classes
and not properties


Transitive closure of OPM edges cannot be
expressed


Annotations are reified too


Not natural RDF representation


See
http://www.jenitennison.com/blog/node/142

for a discussion


But fully compatible with XML!

RDF BINDING AND OWL
INFERENCES

OWL Ontology for OPM (2)


Define properties to represent OPM edges


Use OWL property chains to infer these edges


OWL Ontology for OPM (2)

// Class: http://
openprovenance.org/ontology#Used


SubClassOf(Used

ObjectSomeValuesFrom(causeUsed

Artifact))

SubClassOf(Used

ObjectSomeValuesFrom(role

Role))

SubClassOf(Used

ObjectSomeValuesFrom(effectUsed

Process))

SubClassOf(Used

Edge)


// Object property: http://
openprovenance.org/ontology#_used


SubObjectPropertyOf(_used

_
used_star
)

ObjectPropertyDomain(_used

Process)

ObjectPropertyRange(_used

Artifact)

SubObjectPropertyOf(SubObjectPropertyChain(effectUsed
-
1
causeUsed
) _used)


// Object property: http://
openprovenance.org/ontology#_used_star


ObjectPropertyDomain(_used_star

Process)

ObjectPropertyRange(_used_star

Artifact)

SubObjectPropertyOf(
SubObjectPropertyChain(_used

_
wasDerivedFrom_star
)


_
used_star
)



OWL Ontology (2)


OPM inferences could alternatively be encoded as
SWRL rules


Problematic in the presence of multiple accounts: it
is meaningless to make inference over properties
corresponding to edges belonging to multiple
accounts


A solution is to use named graphs to represent
accounts


What is the semantics of
OWL+SWRL+Named

Graphs+SPARQL
? What is the complexity?



Conclusion on OPM Bindings


Two compatible bindings for RDF and XML, with
lossless conversions (up to
node naming)


Converter makes extra
-
assumptions on identifiers
(
xs:ID

in XML schema and URI in RDF)


Scope of an OPM graph is not clear in RDF


What other binding would be useful?


Challenges in implementing OPM with Semantic
Web technologies


Jun Zhao’s OPMV is an emerging alternative
serialization of OPM in RDF