This page provides some basic information and pointers to Ontology. (2JCP)
Early Definition (2JCV)
An ontology holds information about what categories exist in the domain, what properties they have, and how they are related to one another. (Chandrasekaran et al. 1999) (2JCQ)
Ontology engineering is a relatively new discipline assembling a set of tasks for the development of ontologies. These may be a foundational set or for a particular domain. Ontology engineering, like data and software engineering involves a lifecycle starting with strategic views, going through analysis and design to building and testing of the final product - an ontology. (2JDF)
There are many reasons to build an ontology analyzing domain knowledge. An overall goal is that people often want to share a common understanding of the structure of information among people or software agents. In this case an ontology is used to make explicit the semantics and knowledge contained within efforts such as software applications as well as within enterprises and business modeling of particular domains. (2JDG)
As part of such an effort an ontology can be used to enable reuse of domain knowledge and to make domain assumptions explicit or to separate domain knowledge in a declarative form from the operational knowledge which can be implemented in software. (2JDH)
The expectation of ontological engineering is to help solve such things as data and system inter-operability problems that have at their base semantic (and pragmatic) issues. An example of this is challenge of bridging from human understanding of business and technical terms and how these are used in software applications. Ontology engineering For an introduction of this topic see: http://en.wikipedia.org/wiki/Ontology_engineering (2JDD)
While Ontological engineering has many steps the more recent publicized work has emphasized improved representations for ontological products using specially designed languages such as OWL (Web Ontology Language) developed as part of the Semantic Web effort. See http://en.wikipedia.org/wiki/Ontology_language and http://en.wikipedia.org/wiki/Semantic_Web (2JDE)
Building Complex Domain Ontologies (2JCR)
A start on analysis for developing ontology may be to look at simple lexicons and/or controlled vocabularies. As Noy and Mcguinness point out ontologies defines a common vocabulary for researchers who need to share information in a domain. But the challenge is to take informal definitions and elevate them to machine-interpretable definitions of the basic domain concepts and relations among them. (2JCS)
One relation is that or Type and subtype. These can be structured by developing taxonomies where terms are related hierarchically and can be given distinguishing properties. Such efforts involve a chosen ontology engineering methodology over the ontology lifecycle. (2JCT)
Formal, complex domain ontologies' design provides an overall conceptual structure of the domain. This typically identifies the domain's principal concrete concepts and their properties and where concepts have named relationships with other concepts, like "aligned-with" or "near-to". (2JD7)
Often abstract concepts (e.g. Role, Situation) as organizing features, are employed to define new concepts. An ontology will often identify the relationships among the concepts and distinguish which concepts have instances properties. (2JD8)
One ontology often references or including supporting ontologies. These may be more specific and/or more general such as a top-level ontology (e.g. DOLCE http://en.wikipedia.org/wiki/Dolce). (2JD9)