0

What are the OWL ontology language boundaries? Like:

  1. Can I use a class with different parents? (Multiple inheritance) Protege doesn't allow this.
  2. What characters I can or cannot use? e.g. Cannot use '#' or '^' in Protege. Why?
  3. Case-sensitive classes? e.g. class A and a are two different classes?

What else?

unor
  • 92,415
  • 26
  • 211
  • 360

1 Answers1

4

The boundaries of OWL are determined by the boundaries of logic of the respective OWL dialect. This is the taxonomy of the OWL2 dialects:

-First Order Logic

--SWRL/RIF

---OWL DL

----OWL EL, RL, QL

-----Concept Hierarchies

--OWL Full

---OWL DL

----OWL EL, RL, QL

-----Concept Hierarchies

---RDFS

-----Concept Hierarchies

You can find more about these dialects here.

The most used dialect is OWL-DL, as it offers a good balance between expressiveness and decidability. There is a classification system for Description Logic to determine expressiveness:

"AL" allows: Atomic negation; Concept intersection; Universal restrictions; Limited existential quantification

"FL" allows:Concept intersection; Universal restrictions; Limited existential quantification; Role restriction

"EL" allows: Concept intersection; Existential restrictions

Then there are the following extensions:

"F" - Functional properties, a special case of uniqueness quantification.

"E" - Full existential qualification

"U" - Concept union.

"C" - Complex concept negation.

"H" - Role hierarchy (subproperties - rdfs:subPropertyOf).

"R" - Limited complex role inclusion axioms; reflexivity and irreflexivity; role disjointness.

"O" - Nominals. (Enumerated classes of object value restrictions - owl:oneOf, owl:hasValue).

"I" - Inverse properties.

"N" - Cardinality restrictions (owl:cardinality, owl:maxCardinality), a special case of counting quantification

"Q" - Qualified cardinality restrictions

"D" - Use of datatype properties, data values or data types.

According to this classification the expressiveness of OWL2-DL is (SHROIQ(D)), where "S" stands for An abbreviation for "ALC" with transitive roles. (Note: there is a terminological difference between DL and OWL, for example OWL specification uses "properties", while DL uses "roles").

So, the short answer to you question is: the boundaries of OWL2-DL are (SHROIQ(D)).

Can I use a class with different parents? (Multiple inheritance) Protege doesn't allow this

You should be careful when trying to apply metaphors from other modelling paradigms. Strictly speaking "Parents" and "inheritance" are not applicable in OWL. We can say that there is something like sharing of properties but its direction - unlike in the Object Oriented paradigm - is upwards, not downwords. OWL uses "classes" but you should think of them as sets, not as "classes" from OO. Being sets, a class can be as sub-class of different classes and Protégé allows this. In fact it is used quite often. "Boar" is a subclass of both "Bear" and "Male", just as "Bull" would be a subclass of both "Cattle" and "Male". We can always find a set of properties to create a new class. All examples so far would be of course subclasses of "Mammal"and then of "Animal", but they can be also subclasses of e.g. "Two-eyed agents", a class, which can have subclasses that are not animals, for example "two-eyed robots".

What characters I can or cannot use

OWL has different serialisations such OWL/XML, Turtle etc. Each has it's own syntax.

As you asked for useful resources, one such would be of course the OWL primer. I would also recommend this free course.

Ivo Velitchkov
  • 2,361
  • 11
  • 21
  • Can you please elaborate on the following point: 1- is it possible to use the same name for a property and a class, but one starts with a small letter and the other starts with a capital letter? 2- When B is a sub-class of A, does B inherit all A's properties by default? or should we explicitly link the properties to B using the rdfs:domain and rdfs:range? – TareqBallan Jul 09 '21 at 19:29
  • @TareqBallan 1. This will make two different URIs, so yes. 2 See https://stackoverflow.com/questions/37854557/owl-class-and-subclass-property-inheritance – Ivo Velitchkov Jul 16 '21 at 15:44
  • Thanks for your reply. I have another small question if I may, suppose that we have a hierarchal structure, B and C are subclasses of A, and we have the relation "r". the relation "r" accepts B or C as the Domain, in this case, can I specify A as the Domain of "r" to indicate that the type of the Domain can be either B or C? given that the Domain of a relation indicates that the type of the instance that is connected via that relation is of the type that is specified in the Domain. Or should I explicitly specify C and B as the domain? @Ivo Velitchkov – TareqBallan Jul 17 '21 at 16:19
  • In case I specified B and C as the Domain of that relation, and I have an instance of B connected via this relation, do inference tools understand the exact type of this instance (B in this case), or do they consider it as A, given that we have specified the Domain as A? – TareqBallan Jul 17 '21 at 16:25