[N.B. Large File!]
The original definition of an ontology comes from the study of philosophy, where an ontology was defined as the study of the nature and relations of being. In particular, it's a system (and systematic method) of investigating the nature of existence and being, including what concepts are considered part of a system or language for describing a system of knowledge.
This compares to epistemology, which is the study of knowledge and learning. While this seems to be a pretty generalized and wide open field (and thinking about it is only helped by copious amounts of good beer ), it's a subject that's moved from dry academics to the data base structures and the world wide web by way of artificial intelligence research.
Ontologies in computer science are a specific term for a data model; definition-wise, an ontology is about the limits of the data model, and the inter-relationships of elements within it. In particular, it covers individuals (the basic elements of data in the model), classes and sets (groups or types of objects), attributes (data that's attached to individual elements), relations (how objects can be related to each other) and events (how these attributes or the data itself, changes).
To give a more defined (and somewhat suspect) analogy, a spreadsheet can be thought of as a structure for creating ontologies. The data set is whatever report you're trying to generate we'll call it an aggregated quarterly income statement for all departments in a company. The individuals covered by the ontology are the weekly income and expense statements for each department being aggregated.
The classes and sets are categorizations like "office supplies" and "payroll" and "invoices paid" and similar things. Attributes in this case would be the actual amounts, and relations would be tracking correlations between hours worked on marketing and the budget for marketing. Events would be things like adding new data to the set each week and aggregating the result all into one place.
While that example is very simplistic, ontologies are a concept that get a lot of use and re-use in the fields of computer science; in particular, an ontology is useful for defining what cannot be part of a data set; things that fall outside of the ontology can't be integrated into it.
Ontologies, and understanding them, are the key to making usable and maintainable data base architectures. It's one reason why data base builders work so hard to nail down what kinds of data and what its relationships will be at the start of the project, and why modifying these traits after the database has been built is difficult and time consuming.
On the other hand, if you design your database structure well, the ontological framework can be used to ensure that end users enter data correctly if you've ever used a web form that has drop down menus for the country, you're seeing an example of attribute selection set by an ontological process; selecting the country a package is shipped to is necessary to complete the order. To keep people from mis-entering the country name, it's been limited to the set of available country names on the drop down list.
If you have an article or Ontology related event you wish to add to this
please contact us via email [ ] and we will consider it.
Ontology Resources, Guides and Articles