Dear
Adrian
In following this discussion, I'm starting to wonder why modelling seems
so difficult to get right.
MW:
One of the problems is that there is not necessarily only one "right" way to
model something. For example, if you use the 3D paradigm, then because
a person is wholly present at each point in time, then each employee is a
person. Of course you how have to distinguish roles from natural kinds, which
just means there is no ontological free lunch. So what is right following one
paradigm is wrong following another.
One thought is
that part of the difficulty stems from the old relational database habit of
simply deleting things that are no longer true. As in -- if Fred moved
from Dept A to Dept B, delete "Fred is in Dept A". It seems that,
for new databases, it would be affordable and productive to record that
Fred was in Dept A from 20070101 to 20070201, and in Dept B from 20070202
onwards.
MW:
It is certainly true that many databases were designed on a "current
state" basis, throwing history away by changing records rather than creating
new ones. Even now, it is unusual to find systems that have a systematic
approach to managing change, but rather ad hoc approaches have been taken
as particular requirements become
important.
Another thought is that we should
somehow take into account what present and future applications are going to do
with the data. This supplies context and usage examples that can help to
sort out whether Employee is a subtype, a role, and so on. In
other words, take the purpose of the
modelling into account. As John Sowa and others have pointed out,
natural language evolves through analogous usage.
MW:
In practice I think there are two sorts of data model, what I would call
Conceptual Data Models. These are aimed at providing a view independent
of use (if you like an ontological view). There are then application data models that are a restricted
denormalisation optimised to meet the information needs of a particular
application. These are what most data models are today. Actually, Chris P will
say in a minute that looking at existing applications is quite enough to show
what something like an employee is (I think he has already given some
examples).
A third thought is that it may help to express
prototypes of at least some of the applications in executable English**, and
to debug the model using that approach.
MW:
This is just another way of creating a model, and would be able to tell us if
the model was valid, not if it was accurate.
>From your experience of
modelling, does any of this make sense?
MW:
I think that an ontological analysis of existing systems and
requirements for new systems is absolutely necessary for domain related ontology
development.
Thanks, -- Adrian **Internet Business Logic (R) A Wiki
for Executable Open Vocabulary English Online at www.reengineeringllc.com
Shared use is free Adrian Walker Reengineering
On 3/19/07, matthew.west@xxxxxxxxx <matthew.west@xxxxxxxxx> wrote:
Dear
Duane,
> > If the original statement was framed within a
domain specific > ontology such > as an HR department at a
company that hires only humans, the > statement as > written by
John is fine IMO. I inferred nothing more that > all
employees are > persons. Regardless of the definitions of employee and
> person, the statement > is true.
MW: I beg to differ.
If you take a 4 dimensionalist view, then a person would be
person-for-the-whole-of-his-life, an employee is just an aggregate of
temporal parts of a person - the temporal parts that were working for a
particular organization. Since by this definition an employee is not a
person-for-the-whole-of-his- life, then employee is not a subtype of
person.
> What can be argued is that person and employee are
> terms that have > limitations however as John noted, that can
be fixed by defining such. > > I do not see why this is causing
so much discussion. > >
Duane > > > > > On 3/18/07 12:45 PM, "Chris
Partridge" > <mail@xxxxxxxxxxxxxxxxxx>
wrote: > > > John, > > > > If you look at
some of the standard textbooks on data > modelling you will >
> find that: > > > > a) They recognise that some
systems fudged the distinction > between employee > > and
role (as you note) > > b) that it is not a good idea to do it, and
> > c) offer their own way of modelling this. > > >
> My experience with legacy systems re-engineering is that > not
all (or even > > many modern) systems make this mistake. But am
sure my sample is not > > representative. > > >
> See (for example), > > Data Model Patterns: Conventions of
Thought by David C. Hay > > > http://www.amazon.com/Data-Model-Patterns-Conventions-Thought/ >
dp/0932633293/ > > >
ref=pd_bbs_2/002-8927839-5907206?ie=UTF8&s=books&qid=1174246335&sr=8-2 >
> > > The Data Model Resource Book, Vol. 1: A Library of
> Universal Data Models for > > All Enterprises by Len
Silverston > > > http://www.amazon.com/Data-Model-Resource-Book-Vol/dp/04713802
> 37/ref=sr_1_1/ > >
002-8927839-5907206?ie=UTF8&s=books&qid=1174246404&sr=1-1 >
> > > (As an aside, I seem to recall Matthew West's 'High
Quality > Data Models > > paper' notes this - or something
similar as a common > modelling error - > > Matthew can
confirm whether this is the case.) > > > > To return to an
old topic: one can regard employee as a > role or a temporal >
> stage of a person - depending upon your 3D/4D inclinations. > A
description of > > the 4D approach is in my book. >
> > > > http://www.amazon.com/Business-Objects-Re-Engineering-Computer >
-Professional/ > > >
dp/075062082X/ref=sr_1_1/002-8927839-5907206?ie=UTF8&s=books&q >
id=1174246688& > > sr=1-1 > > > >
Regards, > > Chris > > > > > >
-----Original Message----- > > From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
> > [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx]
On Behalf > Of John F. Sowa > > Sent: 18 March 2007
14:27 > > To: [ontolog-forum] > > Subject: Re:
[ontolog-forum] Common Logic Controlled English (CLCE) > > >
> Peter, > > > > That's the way most businesses handle
their personnel: > > > >> Since when is an "employee" a
sub-type of "person"?! > > > > However, one of the major
mining companies used mules > > to pull ore out of the
mines. (They didn't want to use > > anything that might
create sparks that could trigger > > an explosion if there were any
stray gasses around.) > > > > When they computerized their
system, they assigned > > employee numbers to the
mules. For that company, you > > could generalize the
ontology in either of two ways: > > > > 1.
Assume that Employee is a subtype of Animal. > > >
> 2. Assume that Person could include nonhuman
animals. > > > > But in any case, whenever you say X is a
subtype of Y, > > you mean "every X is a Y." That is
all it says. > > > > John > > > >
_________________________________________________________________ >
> Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/ >
> Subscribe/Config: > http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
> > Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx >
> Shared Files: http://ontolog.cim3.net/file/
> > Community Wiki: http://ontolog.cim3.net/wiki/ >
> To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx >
> > > -- >
********************************************************** > Sr.
Technical Evangelist - Adobe Systems,
Inc. * >
Chair - OASIS SOA Reference Model Technical
Committee * > Blog: http://technoracle.blogspot.com * >
Music: http://www.mix2r.com/audio/by/artist/duane_nickull*
>
********************************************************** > > >
_________________________________________________________________ >
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/ >
Subscribe/Config: > http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/ >
Unsubscribe: mailto: ontolog-forum-leave@xxxxxxxxxxxxxxxx >
Shared Files: http://ontolog.cim3.net/file/ >
Community Wiki: http://ontolog.cim3.net/wiki/ >
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx > > >
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/ Subscribe/Config:
http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx Shared
Files: http://ontolog.cim3.net/file/ Community
Wiki: http://ontolog.cim3.net/wiki/ To
Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (01)
|