Sunday, January 3, 2016

Continuing the discussion on "Kinds of Ontologies"

Indeed, the definition of an "ontology" is difficult to pin down. For me, ontologies are attempts to understand and categorize knowledge, and can range from informal lists of terms to very formal definitions. There does not seem to be a single, right answer, as is true for many things.

Categorizing the world has been a philosophical concern dating back to ancient Greece and Parmenides (circa 540-515 BC). But, ontologies have evolved from these philosophical roots, to have significant application in industry. Tom Gruber’s 1993 papers, A Translation Approach to Portable Ontology Specifications and Toward Principles for the Design of Ontologies Used for Knowledge Sharing defined and popularized the current usage of the term.

Tom Gruber, in a discussion of ontologies for the Encyclopedia of Database Systems, said:
In the context of computer and information sciences, an ontology defines a set of representational primitives with which to model a domain of knowledge or discourse. The representational primitives are typically classes (or sets), attributes (or properties), and relationships (or relations among class members). The definitions of the representational primitives include information about their meaning and constraints on their logically consistent application... An ontology specifies a vocabulary with which to make assertions, which may be inputs or outputs of knowledge agents (such as a software program). As an interface specification, the ontology provides a language for communicating with the agent. An agent supporting this interface is not required to use the terms of the ontology as an internal encoding of its knowledge. Nonetheless, the definitions and formal constraints of the ontology do put restrictions on what can be meaningfully stated in this language. In essence, committing to an ontology (e.g. supporting an interface using the ontology's vocabulary) requires that statements that are asserted on inputs and outputs be logically consistent with the definitions and constraints of the ontology... Similarly, while an ontology must be formulated in some representation language, it is intended to be a semantic level specification -- that is, it is independent of data modeling strategy or implementation... Ontologies are typically formulated in languages which are closer in expressive power to logical formalisms such as the predicate calculus. This allows the ontology designer to be able to state semantic constraints without forcing a particular encoding strategy... Ontology engineering is concerned with making representational choices that capture the relevant distinctions of a domain at the highest level of abstraction while still being as clear as possible about the meanings of terms.
I liked the direction that this was going, so I did some more googling and found some more descriptions. This next one is from the W3C:
On the Semantic Web, vocabularies define the concepts and relationships (also referred to as “terms”) used to describe and represent an area of concern. Vocabularies are used to classify the terms that can be used in a particular application, characterize possible relationships, and define possible constraints on using those terms. In practice, vocabularies can be very complex (with several thousands of terms) or very simple (describing one or two concepts only). There is no clear division between what is referred to as “vocabularies” and “ontologies”. The trend is to use the word “ontology” for more complex, and possibly quite formal collection of terms, whereas “vocabulary” is used when such strict formalism is not necessarily used or only in a very loose sense. Vocabularies are the basic building blocks for inference techniques on the Semantic Web.
And, this one is from Wikipedia:
In computer science and information science, an ontology is a formal naming and definition of the types, properties, and interrelationships of the entities that really or fundamentally exist for a particular domain of discourse. It is thus a practical application of philosophical ontology, with a taxonomy. An ontology compartmentalizes the variables needed for some set of computations and establishes the relationships between them. The fields of artificial intelligence, the Semantic Web, systems engineering, software engineering, biomedical informatics, library science, enterprise bookmarking, and information architecture all create ontologies to limit complexity and to organize information. The ontology can then be applied to problem solving.
Common to all these descriptions is the need to name, define and understand the key concepts, relationships and constraints of a domain. And, one invests the time to understand a domain for some purpose. I would definitely agree that understanding the purpose behind, and assumptions used in, the creation of an ontology are important. They definitely scope the work and create a basis for re-use.


Thursday, October 8, 2015

Conversation Starter: How many Kinds of Ontology are There?

So here's something that's been bugging me for a while:

Is there more than one kind of a thing of which I can say of it "This is an ontology"?

Simplistically one would have to say Yes. Some people would define an ontology as something which represents things in the world. Someone else would say an ontology has to also be framed in formal logic, or even formal first order logic. Someone else would way it has to be all these things and you also have to be able to reason over it otherwise it is "not an ontology" or it "has no semantics".

What if they are all right, but talking about different things? Is it necessarily the case that ontologies need to be different for different kinds of requirement - for example to create a common language across an industry, or to create a reasoning-based application for car rentals or something?

Personally I think these are all useful things to have. But some of the design techniques that would be appropriate for a reasoning based application, would not be appropriate for a common industry language. For example, in one kind of ontology you might have properties defined with no domain and range and only make them "mean" something when they are referred to in a restriction on a class. This seems to me perfectly reasonable, but from a concept model point of view it is those properties which have "no semantics" - the overall graph becomes meaningful only when you close the world and throw the thing at a reasoner.

If this is the case, what are the implications for ontology re-use? Before I can re-use an ontology from somewhere else, I would need to know whether it was intended to support a stand-alone application or be part of an industry language. I would want to know what theory of meaning was brought to bear in its creation - was meaning considered to arise within the graph as a whole based on the internal structure of that graph, or were some concepts regarded as axiomatic to the others? Is there some grounding of basic, primitive concepts which others are then defined in relation to, or was that not considered necessary for that particular ontology?

No doubt it is possible to create ontologies which fit into multiple views of what it is for and how meaning arises - but can I rely on that?

Assuming that there is no "wrong" definition for ontology, what do others think?


Friday, January 2, 2015

Welcome to the new IAOA Semantic Web Applied Ontology blog. The goal of this blog is to encourage dialog about ontologies, their uses (and misuses), their application in various areas such as Big Data, and more.

Basically, any question, problem or ontology-related observation may be posted in order to get feedback and the insights and opinions of the experts. (And remember that the "experts" include you!)

Take a minute to contribute and come back to engage and learn. And, if you want to post to the blog (and find that you don't have the privilege), please email either:
  • mbennett [at] hypercube dot co dot uk
  • arwesterinen [at] gmail dot com
Looking forward to the dialogs to come!