Skip to content
loopasam edited this page Mar 22, 2013 · 4 revisions

If you are not familiar with Description Logic I recommend the following documents: A Description Logic Primer by Markus Krötzsch, František Simančík and Ian Horrocks (local version in case the link doesn't work anymore).

If you want to learn more about OWL 2 and the various profiles I recommend this paper by Markus Krötzsch: OWL 2 Profiles: An Introduction to Lightweight Ontology Languages, specially the first two parts (local version in case the link doesn't work anymore).

The W3C documentation is also a good source: OWL 2 Web Ontology Language Primer and OWL 2 Web Ontology Language Profiles - OWL 2 EL.

You can also look at a recent document (2013) illustrating how to represent the Steven's family history using OWL (local version in case the link doesn't work anymore).

The table below summarises some equivalences between Description Logic and OWL using various syntaxes. A example of implementation using Brain is also listed when available. The list does not cover all possible constructs covered by Brain and is strongly inspired from the documents mentioned above.

Description Logic (DL) Syntax OWL Functional-Style Syntax OWL Manchester Syntax Example of Brain Implementation
Individuals
individual name a Declaration(NamedIndividual(a)) Individual: a Not supported (To be implemented in a future version)
Roles
atomic role R Declaration(ObjectProperty(P)) ObjectProperty: P brain.addObjectProperty("P");
Concepts
atomic concept A Declaration(Class(A)) Class: A brain.addClass("A");
intersection C⊓D ObjectIntersectionOf(C D) C and D brain.equivalentClasses("A", "C and D");
top concept owl:Thing owl:Thing brain.getOWLClass("Thing");
top concept owl:Nothing owl:Nothing brain.getUnsatisfiableClasses();
existential restriction ∃R.C ObjectSomeValuesFrom(P C) P some C brain.subClassOf("X", "P some C");
union C⊔D ObjectUnionOf(C D) C or D Not supported (Not in EL profile)
complement ¬C ObjectComplementOf(C) not C Not supported (Not in EL profile)
universal restriction ∀R.C ObjectAllValuesFrom(P C) P only C Not supported (Not in EL profile)
Axioms
ABox (assertional axioms)
concept assertion C(a) ClassAssertion(C a) Individual: a
Types: C
Not supported (To be implemented in a future version)
role assertion R(a, b) ObjectPropertyAssertion(P a b) Individual: a
Facts: R b
Not supported (To be implemented in a future version)
individual equality a=b SameIndividual(a b) Individual: a
SameAs: b
Not supported (To be implemented in a future version)
individual inequality a≠b DifferentIndividuals(a b) Individual: a
DifferentFrom: b
Not supported (To be implemented in a future version)
TBox (terminological axioms)
concept inclusion C⊑D SubClassOf(C D) Class: C
SubClassOf: D
brain.subClassOf("C", "D");
concept equivalence C≡D EquivalentClasses(C D) Class: C
EquivalentTo: D
brain.equivalentClasses("C", "D");
concept disjointness C⊓D⊑⊥ DisjointClasses(C D) Class: C
DisjointWith: D
brain.disjointClasses("C", "D");
RBox (relational axioms)
role inclusion R⊑S SubObjectPropertyOf(R S) ObjectProperty: R
SubPropertyOf: S
brain.subPropertyOf("R", "S");
role equivalence R≡S EquivalentObjectProperties(C D) ObjectProperty: R
EquivalentTo: S
brain.equivalentProperties("R", "S");
complex role inclusion R1◦R2⊑S EquivalentObjectProperties(C D) ObjectProperty: S
SubPropertyChain: R1 o R2
brain.chain("R1 o R2", "S");
role transitivity R◦R⊑R TransitiveObjectProperty(R) ObjectProperty: R
Characteristics: Transitive
brain.transitive("R");
Clone this wiki locally