An ontology defines a common vocabulary and a shared means of understanding concepts. These concepts invariably also have attributes and properties as well as their models set of constraints. An ontology often has associated context to the concepts that is being defined. Ontological models utilize the idea of domains and relations. Concepts are defined as classes. They also have a set hierarchy in a subclass and superclass relationship. They also have associated attributes and properties with defined constraints. They may even have individuals which provide for such attributes and property values. What one gains from an ontology is knowledge represented in embedded formal logics which can be accessible to a computer and not just a human. Such knowledge can allow for intelligent agents to understand and interpret structure to reason about information. They also allow for reuse of domain knowledge that can be transferable and interoperable. They also allow for explicit generalizations and assumptions to increase understanding. One might then ask, what the difference is between Object-Oriented Modeling and Ontology Engineering. An ontology often reflects structure of the direct world whereas in OO the structure of data is in the code. Ontologies deal with concepts whereas OO is about behavior defined through methods. Ontologies provide physical representations whereas OO describes representation of data. To define an ontology one can follow a set process.
Determine the scope and the domain :
Build a set of 'what' questions within a particular domain in context. The ontology should be engineered to provide answers for the questions.
Build a set of 'what' questions within a particular domain in context. The ontology should be engineered to provide answers for the questions.
Knowledge acquisition :
Collect, organize, define and diagram terms in an informal way
Refine the requirements :
Build a formal way to refine the informal requirements
Build a formal way to refine the informal requirements
Implementation :
Develop the schema in a normalized manner through a prototype. Then attempt to scale up.
Develop the schema in a normalized manner through a prototype. Then attempt to scale up.
Evaluate and provide quality assurance :
Measure the implementation against set criteria and goals. Formalize a set of tests through regressions and probes.
Measure the implementation against set criteria and goals. Formalize a set of tests through regressions and probes.
Maintenance and Evolution :
Check for compatibility with different versions within same ontology and between instance data
Tabulate visually the concept and properties hierarchy using self-standing, modifiers, relations, and definable trees. One can then use the process of curating the data and model the relationships using various tools. One will also face the conundrums of entanglements when designing ontologies. Generalization is key to ontologies as not everything needs to be defined - leaving reasoning and inferences to handle the rest. One can start out small then increase complexity as experience and knowledge in the domain grows over time. Often an ontology editor is used by a working ontologist to formalize the ontological concepts. One can even use direct programmatic bindings in similar respects to object mapping via domains to skip such formal steps and combine a more developer friendly process through third-party libraries. It is also easier to use existing XML representations to evolve into more formal ontologies. Modeling ontologies is a hard science one that requires a logically sound representation approach of contextual knowledge. However, experience and learning from other ontology models can reduce such overbearing complexities in time.