An ontology – within the scope of computer and information sciences – can be defined as a formal specification for the purpose of delimiting and grouping instances/concepts (facts, events, entities, elements, etc.), based on their common class (types, properties, interrelationships, etc.), and thus formalising a full or a subset of a domain.
Thomas A. Gruber (“A Translation Approach to Portable Ontology Specifications” – Stanford University, 1992) first defined an ontology as “an explicit specification of a conceptualization. The term is borrowed from philosophy, where an ontology is a systematic account of Existence. For knowledge-based systems, what “exists” is exactly that which can be represented. When the knowledge of a domain is represented in a declarative formalism, the set of objects that can be represented is called the universe of discourse. This set of objects, and the describable relationships among them, are reflected in the representational vocabulary with which a knowledge-based program represents knowledge. Thus, we can describe the ontology of a program by defining a set of representational terms. In such an ontology, definitions associate the names of entities in the universe of discourse (e.g., classes, relations, functions, or other objects) with human-readable text describing what the names are meant to denote, and formal axioms that constrain the interpretation and well-formed use of these terms.”
More recently, Feilmayr and Wöß (“An analysis of ontologies and their success factors for application to business” – Data & Knowledge Engineering Journal, 2016) provide the following definition: “An ontology is a formal, explicit specification of a shared conceptualization that is characterized by high semantic expressiveness required for increased complexity.”
Somewhere in between the very detailed first definition and the very concise most recent one above, we can say that an ontology is – within the scope of computer and information sciences:
a computational scheme (therefore purposed and built for machine-readability), with explicit descriptive statements, to define a subject matter and, in consequence, describe a domain; and
the set of rules that are fundamental to the creation of a controlled vocabulary grouping of instances/concepts that comply with such rules.