Representing OWL relations

A.Aziz Altowayan
Pace University
5/27/2015

Ontology, OWL, and Protege

Ontology:

Formal specification (and representation) of knowledge in a specific domain.

Simply, you may think of it as a punch of classes (concepts) connected to one another by a relation (relationships).

i.e. The anatomy of a human.


OWL:

Web Ontology Language.

A way to experss ontology in a machine-readable formal.


Protege (Ontology Editor):

".. is a free, open-source ontology editor and framework for building intelligent systems."

Making ontology

To simplify things, we discuss two types of relations:

Representing relations in OWL

Example: IS-A relation

Car is a vehicle.

Vehicle(Car)

<owl:Class rdf:about="ns#Car">
       <rdfs:subClassOf rdf:resource="ns#Vehicle"/>
</owl:Class>

Example: Part-Of

Engine is a part of Car.

PartOf(Engine, Car)

<owl:Class rdf:about="ns#Engine">
       < WHAT SHOULD GO HERE ?? ?? />
</owl:Class>

Problem of representing relations in OWL

Creating a non IS-A relation ..

So the questions become:

Work Done (Extending OWLVIZ plugin)

Extending a Protege's plugin to visualize more relation types.

See video

Work Done (Work around)

Simplified representation of OWL relations.

Example

simplified part-of relation

<owl:Class rdf:about="ns#Engine">
    <relation:partOf rdf:transitive="yes" rdf:about="Car"/>
</owl:Class>

Standard OWL-DL AFTER transformation:

<!-- Property partOf -->
<owl:ObjectProperty rdf:about="ns#partOf">
    <rdf:type rdf:resource="&owl;TransitiveProperty"/>
</owl:ObjectProperty>

<!-- Property hasPart (inverse of partOf) -->
<owl:ObjectProperty rdf:about="onto#hasPart">
    <rdf:type rdf:resource="&owl;TransitiveProperty"/>
</owl:ObjectProperty>


<!-- Class Car -->
<owl:Class rdf:about="onto#Car">
    <rdfs:subClassOf>
      <owl:Restriction>
          <owl:onProperty rdf:resource="onto#hasPart"/>
          <owl:someValuesFrom rdf:resource="onto#Engine"/>
      </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>


<!-- Class engine -->
<owl:Class rdf:about="ns#Engine">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="ns#partOf"/>
            <owl:someValuesFrom rdf:resource="ns#Car"/>
        </owl:Restriction>
    </rdfs:subClassOf>
</owl:Class>

Complete example (Work around)

See the worked example.

Current status