slides (ppt) - The Open Provenance Model

advertisement
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 Domain Specialization: Workflow, Web
OPM Essential Profiles: Collections, Attribution
OPM Core
OPM Sig
OPM based APIs: record, query
Technology Bindings: XML, RDF
OPM Layered Model
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
SubClassOf(Used
SubClassOf(Used
SubClassOf(Used
SubClassOf(Used
SubClassOf(Used
SubClassOf(Used
ObjectSomeValuesFrom(cause Artifact))
ObjectAllValuesFrom(cause Artifact))
ObjectSomeValuesFrom(role Role))
ObjectAllValuesFrom(role Role))
ObjectSomeValuesFrom(effect Process))
ObjectAllValuesFrom(effect Process))
Edge)
DisjointClasses(Used
DisjointClasses(Used
DisjointClasses(Used
DisjointClasses(Used
WasTriggeredBy)
WasControlledBy)
WasDerivedFrom)
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
SubClassOf(Used
SubClassOf(Used
SubClassOf(Used
ObjectSomeValuesFrom(causeUsed Artifact))
ObjectSomeValuesFrom(role Role))
ObjectSomeValuesFrom(effectUsed Process))
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
Download