Thoughts on business requirements, models and rules

Continuing "What makes for a "good" model?"

In my last post (I was told that some people's heads exploded when reading it :-) ), I talked about some fundamental modeling concepts and how they help to define classes and their inheritance.  The 3 concepts (defined by Guarino and Welty's work on OntoClean) are:

  • Essence - these are concepts (Guarino and Welty call them "properties") that are true for all instances of a class and that "define" the semantics of the class, such as the "property" of "being human"
  • Identity - concepts/properties that determine the equality of instances 
  • Unity - concepts/properties that define where the boundary of an instance is, or distinguish the parts of a "whole"

Essential properties are known as "rigid" properties.  But there are lots of non-rigid aspects of a class like its purpose, current state or some quality, such as its color(s). These non-rigid aspects are categorized into 3 types:

  • Phased sortals - These are properties whose values change over the lifetime of an instance.  This is exemplified by the properties "being a caterpillar" or "being a butterfly" for the class, Lepidopteran.  The same individual lepidopteran starts out as a caterpillar and later becomes a butterfly.  There is only one basic class with identity - that of Lepidopteran.
    • Another interesting example is the concept of "county".  County actually carries two meanings - that of a geographical area (which does not change identity or value) and that of a geopolitical area (which can change in size, name value, or even cease to exist).  Care should be taken to make sure that the invariant aspect is modeled as a class.
  • Roles - These are properties that define how something participates in an event, activity or state of affairs.  For example, a dog might be a pet, a pest or food - depending on the type of dog and area of the world.  So, having a "pet" or "food" supertype for a dog would be quite invalid.  This is really a description of the dog's purpose, not its subsumption.
    •  Another example is the concept of an "agent" - perhaps a human, a social club, software, a legal entity, etc.  Yes, any of these entities could act as an agent - at any point in time - but this is not an essential aspect of their being.  It would indeed seem odd to make "agent" a supertype of any or all of these entities - yet, I have seen it done in models. 
  • Attribution - These are qualities of an instance, such as separating red and green apples, or MacIntosh versus Gala apples.  Attributes serve to create ad-hoc groupings - and the need for various groupings and therefore various attributes evolves over time.  A grouping that might seem important today will very likely lessen in value over time. 

As is probably obvious from this discussion, non-rigid properties/concepts should never occur in the backbone of an inheritance hierarchy!  The backbone should only contain the invariant aspects of the domain being modeled.  Similarly, these properties would never be identity or unity properties!  These should only be properties within a class or related to a class/instance.

I thought that these distinctions were pretty fascinating - and that without consciously thinking about them, we can and do create erroneous models.

Anyway, I'm now done with my overview of Guarino and Welty's work.  And, my apologies if anyone's heads exploded a second time. :-)

Happy Holidays!

Andrea

Published Tuesday, December 16, 2008 7:18 PM by Andrea Westerinen
Filed under:
Anonymous comments are disabled

About Andrea Westerinen

Andrea works in Connected Systems Division (in the Server Tools Business unit of Microsoft) and has spent much of her career working on modeling and policy/rules in the IT space. Now, her thoughts are turning to how to apply these concepts to business. (The URL title of this blog is, after all, "policy-based business"). The goal is to target business analysts and professionals - facilitating the definition of business vocabularies, models and rules in a structured, natural language (starting with English, but not ending there). Other topics of interest include the multitude of issues around regulations and compliance, merging and mediating models via knowledge engineering and semantic web technologies, and rules engine interoperability. This blog will contain a mix of questions, references, observations and random commentary. Note that the views expressed here are my own and do not necessarily reflect the views of my employer.

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker