OWL vs. OOP
In object-oriented programming, a class is like a blueprint or template for the creation (instantiation) of objects; an object is an instance of a class. OWL classes are interpreted as sets that contain individuals, with no notion of instantiation.
OO design vs Ontology modelling
You should be very afraid of classes that are nothing but a collection of fields and their accessors. Object-oriented design is about providing objects that are able to do rich behavior, so they shouldn’t be simply providing data to other objects. …
-Martin Fowler (UML Distilled, 3rd Edition, Chapter 3)
When we consider OWL/RDFS, where Classes are void of behavior and Properties stand independent from specific classes, the statement above gives us a hint to how Object-oriented design differs from Ontology design and the shift in the thought process that is required. Even though there are many overlaps in terminology/concepts of OO design and Ontology modeling (based on RDFS/OWL), I would like to say that Ontology design is more closer to Data modelling.
(I reserve all rights to change my opinion though.)
-Rawjeev
Ontology-driven architectures
The key to understanding ontology-driven architectures is to keep in mind that in ontology languages:
- Properties are independent from specific classes
- Instances can have multiple types and change their type as a result of classification
- Classes can be defined dynamically, at runtime