OPM OWL Ontology
From Semantic Portal Wiki
| ||
|
{{#vardefine:ns| }}{{#vardefine:p|namespace }}{{#vardefine:v|http://openprovenance.org/ontology# }} {{#vardefine:ns| }}{{#vardefine:p|prefix }}{{#vardefine:v|ontology }} |
Contents |
Overview
This is the recommend OWL ontology OPM, and there are several other alternative OWL encoding for OPM
- OPM OWL ontology: http://openprovenance.org/model/opm.owl
- OPM Tupello OWL ontology: http://twiki.ipaw.info/pub/Challenge/OpenProvenanceModelBindings/opm.owl
- OPM RPI OWL ontology: http://www.cs.rpi.edu/~michaj6/provenance/PC3OPM.owl
- References
{{#vardefine:pagename|the open provenance model }}
- [[]]
Domain Concept Coverage
- named entity
- opm:Entity
- opm:Agent
- opm:Artifact ...... (opm:avalue)
- opm:Process
- dependency relation
- opm:Node ...... (opm:account)
- opm:Edge ...... (opm:account, opm:cause, opm:effect )
- opm:WasGeneratedBy ...... (opm:role)
- opm:Used ...... (opm:role)
- opm:WasControlledBy ...... (opm:role, opm:endTime, opm:startTime)
- opm:WasTriggeredBy
- opm:WasDerivedFrom
- context
- opm:OPMGraph ...... (opm:hasAccount, opm:hasAgent, opm:hasArtifact, opm:hasDependency, opm:hasProcess)
- opm:Account
- opm:Role ...... (opm:value)
- time
- opm:OTime ...... (opm:exactlyAt, opm:noEarlierThan, opm:noLaterThan)
- opm:EventEdge...... (opm:time)
- annotation
- opm:Annotation ...... (opm:account, opm:property)
- opm:Property ...... (opm:value, opm:uri)
- opm:Annotable ...... (opm:annotation, opm:label, opm:pname, opm:profile, opm:type)
- opm:AValue...... (opm:content, opm:encoding)
Concept Modeling
mutually disjointed classes
- disjoint set1: opm:Agent, opm:Artifact, opm:Process
- disjoint set2: opm:Used, opm:WasControlledBy, opm:WasDerivedFrom, opm:WasGeneratedBy, opm:WasTriggeredBy
here is an example for disjoint set1.
<rdf:Description rdf:about="#Agent">
<owl:disjointWith>
<rdf:Description rdf:about="#Artifact" />
</owl:disjointWith>
<owl:disjointWith>
<rdf:Description rdf:about="#Process" />
</owl:disjointWith>
</rdf:Description>
<rdf:Description rdf:about="#Process">
<owl:disjointWith>
<rdf:Description rdf:about="#Artifact" />
</owl:disjointWith>
</rdf:Description>
named union class
the concept opm:Annotable is considered as the union of a collection of classes, and each of the classes is a rdfs:subClassOf the union class.
<owl:Class rdf:ID="Annotable">
<rdfs:subClassOf rdf:resource="#Entity"/>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Edge"/>
<owl:Class rdf:about="#Node"/>
<owl:Class rdf:about="#Annotation"/>
<owl:Class rdf:about="#Role"/>
<owl:Class rdf:about="#OPMGraph"/>
<owl:Class rdf:about="#Account"/>
<!-- add here other classes that can be annotated -->
</owl:unionOf>
</owl:Class>
cardinality integrity constraint
An instance of the given class is required to have exactly one (at least one) property.
- card >=1: for an instance of opm:WasGeneratedBy, it must be described by at least one triple using predicate opm:role (by owl:someValuesFrom definition)
- card =1: for an instance of opm:WasGeneratedBy, it must be described by at least one triple using predicate opm:cause (by owl:someValuesFrom definition) and at most one (via owl:FunctionalProperty definition).
<owl:Class rdf:ID="WasGeneratedBy">
<rdfs:subClassOf rdf:resource="#Edge"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#cause"/>
<owl:allValuesFrom rdf:resource="#Process"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#cause"/>
<owl:someValuesFrom rdf:resource="#Process"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#effect"/>
<owl:allValuesFrom rdf:resource="#Artifact"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#effect"/>
<owl:someValuesFrom rdf:resource="#Artifact"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#role"/>
<owl:someValuesFrom rdf:resource="#Role"/>
</owl:Restriction>
</rdfs:subClassOf>
<owl:disjointWith rdf:resource="#WasTriggeredBy"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="cause">
<rdf:type rdf:resource="&owl;FunctionalProperty" />
<rdfs:domain rdf:resource="#Edge"/>
<rdfs:range rdf:resource="#Node"/>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">the cause of an Edge</rdfs:comment>
</owl:ObjectProperty>
<owl:Class rdf:ID="Role">
<rdfs:subClassOf rdf:resource="#Entity"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#value" />
<owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
complex relation
The relation "wasGeneratedBy" could be modeled by a binary relation from opm:Artifact to opm:Process; however it can be described in details as an instance of n-ary relation opm:WasGeneratedBy which additionally provide more annotations such as opm:role and opm:time.
Semantic Web Language Feature Usage
Below are some general information about this ontology. The analytical results are generated based on Semantic Web Ontology Analysis Techniques.
- RDF
{{#vardefine:ns| }}{{#vardefine:p|number of triples }}{{#vardefine:v|328 }}
- OWL
{{#vardefine:ns| }}{{#vardefine:p|OWL Species }}{{#vardefine:v|DL }} {{#vardefine:ns| }}{{#vardefine:p|DL Expressivity }}{{#vardefine:v|ALCF(D) }}
AL - Attribute Logic: Conjunction, Universal Value Restriction, Limited Existential Quantification C - Complement (together with AL allows Disjunction, Full Existential Quantification) H - Role Hierarchy (D) - Datatypes
Usage of OWL Constructs
source: http://www.mygrid.org.uk/OWL/Validator
- Some
- Union
- All
- Functional
- Datatype
- Disjoint
- Partial
- Complete
Meta Usage of Semantic Web Terms
(see Semantic Web Ontology Analysis Techniques#Meta Usage)
classes populated in this ontology (POP-C)
- Category:owl:FunctionalProperty
- Category:owl:ObjectProperty
- Category:owl:Class
- Category:owl:Restriction
- Category:owl:Ontology
- Category:owl:DatatypeProperty
properties populated in this ontology (POP-P)
- Property:rdf:first
- Property:rdf:rest
- Property:rdf:type
- Property:rdfs:comment
- Property:rdfs:domain
- Property:rdfs:range
- Property:rdfs:subClassOf
- Property:owl:allValuesFrom
- Property:owl:disjointWith
- Property:owl:onProperty
- Property:owl:someValuesFrom
- Property:owl:unionOf
classes defined in this ontology (DEF-C)
- Category:opm:AValue
- Category:opm:Account
- Category:opm:Agent
- Category:opm:Annotable
- Category:opm:Annotation
- Category:opm:Artifact
- Category:opm:Edge
- Category:opm:Entity
- Category:opm:EventEdge
- Category:opm:Node
- Category:opm:OPMGraph
- Category:opm:OTime
- Category:opm:Process
- Category:opm:Property
- Category:opm:Role
- Category:opm:Used
- Category:opm:WasControlledBy
- Category:opm:WasDerivedFrom
- Category:opm:WasGeneratedBy
- Category:opm:WasTriggeredBy
properties defined in this ontology (DEF-P)
- Property:opm:account
- Property:opm:annotation
- Property:opm:avalue
- Property:opm:cause
- Property:opm:content
- Property:opm:effect
- Property:opm:encoding
- Property:opm:endTime
- Property:opm:exactlyAt
- Property:opm:hasAccount
- Property:opm:hasAgent
- Property:opm:hasArtifact
- Property:opm:hasDependency
- Property:opm:hasProcess
- Property:opm:label
- Property:opm:noEarlierThan
- Property:opm:noLaterThan
- Property:opm:pname
- Property:opm:profile
- Property:opm:property
- Property:opm:role
- Property:opm:startTime
- Property:opm:time
- Property:opm:type
- Property:opm:uri
- Property:opm:value
Class Hierarchy (Frame-ish view)
- opm:Entity
- opm:OTime ...... (opm:exactlyAt, opm:noEarlierThan, opm:noLaterThan)
- opm:Annotable ...... (opm:annotation, opm:label, opm:pname, opm:profile, opm:type)
- opm:Node ...... (opm:account)
- opm:Agent
- opm:Artifact ...... (opm:avalue)
- opm:Process
- opm:Edge ...... (opm:account, opm:cause, opm:effect )
- opm:EventEdge...... (opm:time)
- opm:WasGeneratedBy ...... (opm:role)
- opm:Used ...... (opm:role)
- opm:WasControlledBy ...... (opm:role, opm:endTime, opm:startTime)
- opm:WasTriggeredBy
- opm:WasDerivedFrom
- opm:EventEdge...... (opm:time)
- opm:OPMGraph ...... (opm:hasAccount, opm:hasAgent, opm:hasArtifact, opm:hasDependency, opm:hasProcess)
- opm:Annotation ...... (opm:account, opm:property)
- opm:Role ...... (opm:value)
- opm:Account
- opm:Node ...... (opm:account)
- opm:Property ...... (opm:value, opm:uri)
- opm:AValue...... (opm:content, opm:encoding)

