An Avanade Blogging Community

Welcome to An Avanade Blogging Community Sign in | Join | Help
in Search

The Falconic Code

Divining the Differences of Ontology and Taxonomy

Studying Architecture these last few weeks so intensively to prepare for the MCA, one of the things that really drove me crazy was the differences between references to the ontology of a domain of information and the taxonomy within the domain.  When you read materials from a host of different sources, some of them will use these terms out of context, others will use them interchangeably, and still others will be quite particular in their use and application.  As a matter of study, the particulars of the use of these terms matters a great deal!

The Academic Definition

If we go to ask the internet what these mean, the kind folks at Merriam-Webster, once you brave the disgusting collection of advertisements which permeate the website, define the words as such:

Ontology
1: A branch of metaphysics concerned with the nature and relations of being
2: A particular theory about the nature of being or the kinds of things that have existence

Taxonomy
1: The study of the general principles of scientific classification
2: Orderly classification of plants and animals according to their presumed natural relationships

Gee guys, thanks for the fat lot of help that was!  Clearly, we are not looking at these terms in a scientific context, so you have to press on to other resources.  When in doubt on architectural terms and the general usage of the word is not suitable, one of the better resources I have found personally for looking such a thing up is the Enterprise Architecture Glossary of Terms hosted by CollabWiki.  When we look up ontology, we turn up an excellent technical definition of the term:

Ontology
In computer science, an ontology is the product of an attempt to formulate an exhaustive and rigorous conceptual schema about a domain. An ontology is typically a hierarchical data structure containing all the relevant entities and their relationships and rules within that domain (eg. a domain ontology). The computer science usage of the term ontology is derived from the much older usage of the term ontology in philosophy. The purpose of a computational ontology is not to specify what does or does not 'exist', but to create a database containing concepts referring to entities of interest to the ontologist, and which will be useful in performing certain types of computations.

Brilliant!  Now we are getting somewhere. only.. they don't appear to have a definition for taxonomy in the same contextual glossary!  Taxonomy!  A word in fairly common usage which is missing from the Collabwiki.  We push onward.  Perhaps we should consult the wiktionary hosted by Wikimedia, the same folks who do Wikipedia:

Ontology
.
4. (computer science, information science) A structure of concepts or entities within a domain, organized by relationships; a system model
.

Taxonomy
1. (systematics, uncountable) The science of finding, describing, classifying and naming organisms.
2. The classification of a hierarchical system.

Finally, a coherent resource which defines them both.  Given that we aren't really talking about frogs and the like, I think we can assume the use of the second definition for Taxonomy, that of the classification of a hierarchical system.  So, we know that ontology is the "hierarchical data structure containing all of the relevant entities and thier relationships and rules within that domain".  And a taxonomy is "The classification of a hierarchical system".  Only, that's not very practical, is it?  How did that really clarify how the two inter-relate?

Finding a Practical Explanation

The Software Engineering Institute at Carnegie Mellon University (CMU) comes to the rescue with a veritable plethora of resources for the budding architect, including e-learning, online documents, explanations, glossaries, and the like.  In perusing the resources available throughout the SEI site, I found a draft for a paper  about Integrating Quality-Attribute Reasoning Frameworks in the ArchE Design Assistant, which itself is beyond the scope of this blog post, but contains some early introductory information around the ontology of the quality attribute scenarios that can be applied to a design assistant infrastructure which is being developed.

This graphic depicts the ontology of architectural concepts for the context being considered in the paper.  If we look back at the definition of ontology that we have, we note that there are a series of concepts (the boxes) with relationships (the connectors with associated text) within a specific domain (architectural concepts for reasoning frameworks).  Note that there is no classification or organization here outside of the relationships between the individual concepts.

Falconic Note: If you do not understand the graphic in terms of what it is talking about with tactics, quality attribute scenarios, and so on, I strongly recommend reading Software Architectures in Practice, also a published reference from SEI at CMU.

Thus sated on ontologies, lets figure out what taxonomies look like in practice.  As SEI was assistive in looking at the practical use of an ontology, so is another SEI paper instructive on the practical application of the taxonomy.  In this case, we want to reference A Taxonomy of Security Related Requirements by Donald Firesmith.

Here, we can see that for this concept of "defensibility", there are a variety of related terms.  "Defensibility" is not really a domain, it is a part of the domain of quality attributes.  Thus, what we are looking at is a classification, within a domain, of terms and concepts which are related together.  So the taxonomy here shows how the System then breaks down to quality criterion, to a quality factor and subfactor, which then indicates specifically defensibility, and within defensibility, there are problems and solutions, and within each of problems and solutions, there are related terms.  According to our accepted definition of taxonomy, above, we have then examined a depiction of a hierarchical system of related terms.

Bringing it All Together at 30,000 Foot View

I really think that Jack Krupansky put it well when he defined Taxonomy and Ontology as:

Put simply, an ontology is a specification of the characteristics of a domain.  In other words precisely what it mean[s] for something to be in a particular domain.

A taxonomy is simply a hierarchical categorization or classification of entities within a domain.

So an Ontology are the characteristics and terms which define the domain itself and the taxonomy is the organization of the terms within.

Simple, right?

Published Tuesday, June 09, 2009 10:18 AM by waynea
Filed Under:

Comments

No Comments
Anonymous comments are disabled

About waynea

I am a relatively young Systems Engineer with a passion for virtualization, consolidation, automation, and security.

This Blog

Post Calendar

<June 2009>
SuMoTuWeThFrSa
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

News

Disclaimer: Avanade embraces the individuality of the people in the organization and hence the opinions expressed in the blogs may contradict each other and also may not represent the opinions of Avanade.

Find something useful? Support my learning and research with something from my training wish list.

My Amazon.com Wish List



Syndication