OPM OWL Ontology

From Semantic Portal Wiki

Jump to: navigation, search
Infobox (OWL Ontology) edit with form

{{#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

References

{{#vardefine:pagename|the open provenance model }}

  1. [[]]

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)

properties populated in this ontology (POP-P)

classes defined in this ontology (DEF-C)

  1. Category:opm:AValue
  2. Category:opm:Account
  3. Category:opm:Agent
  4. Category:opm:Annotable
  5. Category:opm:Annotation
  6. Category:opm:Artifact
  7. Category:opm:Edge
  8. Category:opm:Entity
  9. Category:opm:EventEdge
  10. Category:opm:Node
  11. Category:opm:OPMGraph
  12. Category:opm:OTime
  13. Category:opm:Process
  14. Category:opm:Property
  15. Category:opm:Role
  16. Category:opm:Used
  17. Category:opm:WasControlledBy
  18. Category:opm:WasDerivedFrom
  19. Category:opm:WasGeneratedBy
  20. Category:opm:WasTriggeredBy

properties defined in this ontology (DEF-P)

  1. Property:opm:account
  2. Property:opm:annotation
  3. Property:opm:avalue
  4. Property:opm:cause
  5. Property:opm:content
  6. Property:opm:effect
  7. Property:opm:encoding
  8. Property:opm:endTime
  9. Property:opm:exactlyAt
  10. Property:opm:hasAccount
  11. Property:opm:hasAgent
  12. Property:opm:hasArtifact
  13. Property:opm:hasDependency
  14. Property:opm:hasProcess
  15. Property:opm:label
  16. Property:opm:noEarlierThan
  17. Property:opm:noLaterThan
  18. Property:opm:pname
  19. Property:opm:profile
  20. Property:opm:property
  21. Property:opm:role
  22. Property:opm:startTime
  23. Property:opm:time
  24. Property:opm:type
  25. Property:opm:uri
  26. 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:OPMGraph ...... (opm:hasAccount, opm:hasAgent, opm:hasArtifact, opm:hasDependency, opm:hasProcess)
      • opm:Annotation ...... (opm:account, opm:property)
      • opm:Role ...... (opm:value)
      • opm:Account
    • opm:Property ...... (opm:value, opm:uri)
    • opm:AValue...... (opm:content, opm:encoding)
Facts about OPM OWL OntologyRDF feed
Dcterms:modified2010-5-29
Dcterms:relationOPM  +
Def-cOpm:AValue  +, Opm:Account  +, Opm:Agent  +, Opm:Annotable  +, Opm:Annotation  +, Opm:Artifact  +, Opm:Edge  +, Opm:Entity  +, Opm:EventEdge  +, Opm:Node  +, Opm:OPMGraph  +, Opm:OTime  +, Opm:Process  +, Opm:Property  +, Opm:Role  +, Opm:Used  +, Opm:WasControlledBy  +, Opm:WasDerivedFrom  +, Opm:WasGeneratedBy  +, and Opm:WasTriggeredBy  +
Def-pOpm:account  +, Opm:annotation  +, Opm:avalue  +, Opm:cause  +, Opm:content  +, Opm:effect  +, Opm:encoding  +, Opm:endTime  +, Opm:exactlyAt  +, Opm:hasAccount  +, Opm:hasAgent  +, Opm:hasArtifact  +, Opm:hasDependency  +, Opm:hasProcess  +, Opm:label  +, Opm:noEarlierThan  +, Opm:noLaterThan  +, Opm:pname  +, Opm:profile  +, Opm:property  +, Opm:role  +, Opm:startTime  +, Opm:time  +, Opm:type  +, Opm:uri  +, and Opm:value  +
Foaf:homepagehttp://github.com/lucmoreau/OpenProvenanceModel/raw/master/elmo/src/main/resources/opm.owl  +
Foaf:nameOPM OWL Ontology
Pop-cOwl:FunctionalProperty  +, Owl:ObjectProperty  +, Owl:Class  +, Owl:Restriction  +, Owl:Ontology  +, and Owl:DatatypeProperty  +
Pop-pRdf:first  +, Rdf:rest  +, Rdf:type  +, Rdfs:comment  +, Rdfs:domain  +, Rdfs:range  +, Rdfs:subClassOf  +, Owl:allValuesFrom  +, Owl:disjointWith  +, Owl:onProperty  +, Owl:someValuesFrom  +, and Owl:unionOf  +
Skos:altLabelOPM OWL Ontology  +
Uses OWL constructSome  +, Union  +, All  +, Functional  +, Datatype  +, Disjoint  +, Partial  +, and Complete  +
Personal tools
Semantic Web Community
Tetherless World constellation
maintenance