220 likes | 370 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
E N D
Open Provenance Model TutorialSession 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 Model OPM Domain Specialization: Workflow, Web Technology Bindings: XML, RDF OPM Essential Profiles: Collections, Attribution OPM based APIs: record, query OPM Core OPM Sig
OPM Graph <opm:opmGraphxmlns: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:propertyuri="http://openprovenance.org/primitives#primitive"> <opm:valuexsi: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:propertyuri="http://openprovenance.org/primitives#path"> <opm:valuexsi: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
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) // Class: http://openprovenance.org/ontology#Used SubClassOf(UsedObjectSomeValuesFrom(cause Artifact)) SubClassOf(UsedObjectAllValuesFrom(cause Artifact)) SubClassOf(UsedObjectSomeValuesFrom(role Role)) SubClassOf(UsedObjectAllValuesFrom(role Role)) SubClassOf(UsedObjectSomeValuesFrom(effect Process)) SubClassOf(UsedObjectAllValuesFrom(effect Process)) SubClassOf(Used Edge) DisjointClasses(UsedWasTriggeredBy) DisjointClasses(UsedWasControlledBy) DisjointClasses(UsedWasDerivedFrom) DisjointClasses(UsedWasGeneratedBy)
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!
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(UsedObjectSomeValuesFrom(causeUsed Artifact)) SubClassOf(UsedObjectSomeValuesFrom(role Role)) SubClassOf(UsedObjectSomeValuesFrom(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+NamedGraphs+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