In philosophy the term ontology is used to indicate a theory of being, which describes "what is" and in some cases by converse "what is not", and the relationships between beings. One of the simplest ontologies is Parmenides': existence is - stop. This rules out distinction among different things, and therefore space, time, quality, yielding a reality devoided of any informative content since a system with only one state can be encoded with zero bits. Although Parmenides' approach raised many interesting philosophical issues at the time it was introduced (the well-known Parmenides' paradoxes) we want more complex ontologies both for theoretical and for practical purposes.

An ontology is also the basic vocabulary to start speaking - and reasoning - about anything. As such, communication cannot occur unless the speakers agree on a common ontology, an issue known as ontological commitment. To commit on a common ontology, however, speakers must communicate -- and therefore they must already be both committed to a (perhaps simpler) common ontology, a typical bootstrap problem. To computer scientists ontologies are commonly meant as organized vocabularies to make distributed computing systems interact. Researchers in knowledge representation are usually more precise. A definition from Tom Gruber's "What is an ontology?" (see links below):

In the context of knowledge sharing, I use the term ontology to mean a specification of a conceptualization. That is, an ontology is a description (like a formal specification of a program) of the concepts and relationships that can exist for an agent or a community of agents.

Desperately needs improvement, but could be a starter -- schizophonic

One problem with this definition and characterization is that being has nothing to do with existence, so anything mentioned is, regardless of whether it is possible or logically-consistent or such. None of the technical abuses of the word in software engineering seem to acknowledge this. -- water

Could this be the good old difference between FOO and 'FOO? Somehow, (EVAL 'FOO) always has a meaning, so that any nameable concept is, whereas (EVAL FOO) can fail to converge to an answer, so that some nameable concepts describe things that do not exist. Except that in a reasoning world, EVAL is much richer than in a simple computing world, since it "returns" all the meaningful behaviour associated to thinking about a concept, not just a one procedure to execute. -- Faré

About the difference between being and existing, I don't get the point of the idea "if it is, it can be mentioned; if it exists it has a theory/a consistent theory/an implementation behind it". It means that any term of a language "is", and if some semantics is attached on the language, such that you find at least one model for the term, then it also "exists"? I.e. existence as meaning (it exists iff means something)? Well, I wouldn't be so bold, first because you can flexibly attach many semantics (not necessary consistent, you can have paraconsistence if you want), second because... well, it doesn't sound good to me. If you have a class of term you have at least its initial semantics, so what's the point to distinguish? Third because "existence" is not necessarily a feature of nameable things. Initiality indeed expresses the fact that a thing exists (in the model) only if it has a name. I will ask my next-door philosopher for delucidations. Although I think the distinction could work for practical purposes if formulated as such: A term can exists with respect to some kind of semantics. In this sense, for the evaluator of Faré's example 'FOO exists but FOO does not because 'FOO has a semantics, which is FOO, and FOO has no semantics - obviously, relatively to how the specific evaluator gives a semantics to a term. However, 'FOO and FOO are because in some theory, i.e. in my_own_theory_of_silly_text_strings, they mean something (4 useless characters and 3 useless characters for myself as an evaluator). Does it make some sense at all? -- schizophonic

This page is linked from: Bootstrap   Meta-   Metatext   Paradigm   TUNES vs the WWW