[Top] [All Lists]

Re: [ontolog-forum] Language vs Logic

To: "'[ontolog-forum] '" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "Rich Cooper" <rich@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 12 Sep 2010 14:03:55 -0700
Message-id: <20100912210403.6266A138D05@xxxxxxxxxxxxxxxxx>
Hi David,    (01)

You are right-on with a realistic view of how this will progress, IMHO.      (02)

But instead of reverse engineering legacy systems, consider projects to
reverse engineer legacy DATABASEs.  That is a whole lot more effective and
way less expensive.  Also, it happens to be one subject discussed in my
patent at http://www.englishlogickernel.com/Patent-7-209-923-B1.PDF, which I
mentioned earlier.      (03)

By reverse engineering the database, you can still use whatever remains
useful of the old data model, the AsIs version.  It helps define what the
users were actually typing into those fields, just in case the new design
team wants to know how the users viewed each field, and some of the timing
and volume measurements can be helpful in estimating performance for the new
database, the ToBe version.      (04)

Still more information can be reconstructed by analysis of the domains
actually represented in the data, where often surprising correlations are
found.  The old Information Flow Framework showed some insightful ways to
look at actual domain sample vectors, or at least this interpretER saw it
that way.      (05)

-Rich    (06)

Rich Cooper
Rich AT EnglishLogicKernel DOT com
9 4 9 \ 5 2 5 - 5 7 1 2    (07)

-----Original Message-----
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
[mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of David Eddy
Sent: Sunday, September 12, 2010 1:41 PM
To: [ontolog-forum] 
Subject: Re: [ontolog-forum] Language vs Logic    (08)

Pat -    (09)

On Sep 12, 2010, at 12:19 AM, Patrick Cassidy wrote:    (010)

Context for the group... & reminding Pat, since he's probably  
forgotten he said this...    (011)

I am holding Pat to his statement at a SICoP meeting in approx 2005  
where he said (approximately) that unless "this magic" (e.g.  
ontologies, etc.) was somehow delivered & made accessible to folks in  
the trenches who have zero knowledge, interest or education in  
ontologies, ontologies would be nothing more than an interesting  
academic exercise.    (012)

CONTEXT... I am interested in the potential use of ontology for the  
development/maintenance of software applications.    (013)

I am increasingly coming to the conclusion that ontologies are simply  
NOT relevant to this task.    (014)

Please tell me I'm using the wrong lance to tilt at the wrong  
windmill.  It won't hurt my feelings.    (015)

> Figuring out precisely what a term in an ontology is supposed to  
> mean has
> three aspects: what the person developing the ontology intends it  
> to mean;
> what the person reading the documentation interprets it to mean,  
> and what
> the computer executing a program using the ontology interprets it  
> to mean.
> Ideally, the they will be the same, but they may differ.    (016)

I would argue that since these are highly likely to be three  
different people, with all the differing experiences, perspectives &  
languages that humans tote around as life baggage, "they WILL differ"  
not may.    (017)

Granted my interest in systems development & maintenance may be too  
narrow, I would also argue there are far more people wrestling with  
systems development/maintenance language challenges than people  
building ontologies.    (018)

> so good documentation is critical for
> ontologies intended to be used by more than a small tightly  
> connected group.    (019)

My money is on the ONLY accurate documentation is the source code  
(assuming, of course, you can find the correct version).  In  
commercial applications, what paper documentation exists may have  
been accurate at one point, but if the system has been in use the  
code is the only accurate record.  [I'd like to think weapons systems  
& nuclear power plants hold to a higher standard, but I have no  
experience here.]    (020)

This is in fact one of the great language challenges... as a system  
transitions from paper specifications & documentation through  
development into production and on to new teams of project managers &  
developers (whose native language is likely NOT English), the intent  
of the original language begins to mutate since there is no formal  
process to ensure subsequent generations of maintainers (project  
managers & coders) continue to use the same language & meanings.    (021)

Whereas the compiler will force you to use correct VERBS, there is no  
such constraint on the NOUNS... which is why organizations end up  
with literally hundreds of names/nouns for the same thing.    (022)

The CD/CDE (as abbreviation for CODE) example is from just such an  
experience.  The original IMS DBA enforced CD as the single correct  
abbreviation for several years in the initial system building phase.   
She left & a new DBA took over.  A new segment was added & he  
evidently liked to abbreviate CODE as CDE.  There was no automated  
mechanism like a compiler to ensure or "encourage" him to use CD  
rather than CDE.  The problem comes when one searches for "-CD  
" (note the space suffix, since CD was used as a suffix in data  
element names) you will NEVER find "-CDE ".  The devil is in the  
details.    (023)

In a system that adheres to "good names" one learns that the name of  
something & what it is are in fact the same.  In the physical world  
there a multiple forces-the dairy, the food inspectors, the grocery  
store-to ensure a jug labeled "milk" actually contains milk.  We  
haven't quite learned this lesson yet in systems.    (024)

> For me, good documentation means to state what one intends the  
> ontology element to mean,    (025)

The way you present this I interpret as saying the ontology needs to  
be done BEFORE the system.    (026)

This is, of course, not acceptable since the vast majority of systems  
are up & running & have been built/maintained without any  
consideration at all to an ontology(s).    (027)

I don't consider reverse engineering ontologies from existing systems  
to be practical.  Primary argument... since the system owner does not  
consider it cost effective to maintain accurate, current  
documentation, they're certainly not going to spend money/time on  
reverse engineering an ontology.  I also factor in that the "reality"  
I look at is a small organization of 10,000 people, with 900  
systems.  Last year ComputerWorld said IBM, with 400,000 people had  
4,500 "applications" (same as/different from systems? ...who knows).    (028)

I am at pains to point out that each one of these  
"applications" (whatever an application is) was built by different  
people at different times for different objectives.  Then maintained  
by different people... all these actors bringing different language  
to the task.    (029)

> To some extent,
> learning to use a logic-based ontology is similar to learning to  
> use a new
> object-oriented programming language, but programming languages  
> usually come
> with a library of immediately useful applications as learning  
> examples.  We
> haven't reached that point yet in the technology of ontology  
> creation and
> dissemination.    (030)

Long, long ago I was beginning to work on my last programming  
assignment.  I angered the architect (not a word in use then) by  
telling him I did not want to LEARN CICS (at that point a HOT  
language), rather I wanted to USE it.  Took about 10 years, but he  
finally came around to understanding what I was saying.  His  
templates (what we'd call frameworks today) were absolutely  
brilliant.  From a standing start (e.g. knowing absolutely nothing  
about CICS) I was able to take his templates & get 17 CICS programs  
working in 2 weeks.    (031)

Twenty years later I was looking at a cross platform development  
tool... and was astonished to find a template/framework tool for  
$350.  The earlier templates probably cost the client $500,000+.    (032)

This is the standard I hold an ontology tool to... it better not be  
any more complex than a spell checker/dictionary.  Clearly there's a  
ways to go.    (033)

>  For the time being, I look first at the logical axioms associated  
> with a
> term in an ontology, then at the documentation (usually contained  
> in the
> "comments' section of an ontology element)    (034)

You keep using words that are difficult to grok...  
"documentation"?    "comments"?  They are outside my experience.   :-)    (035)

Here's what I consider to be documentation...    (036)

a = b * c    (037)

Totally accurate & not very useful.  More precisely... USELESS!   
Unfortunately there's a lot of this.    (038)

The same logical statement:    (039)

wkly-pay = hrs-wkd * rate-pay    (040)

Is now potentially comprehensible.    (041)

If I can determine this is code is in a payroll module then I'm going  
to assume that "pay" is likely a dollar & cents amount.  If I can  
deduce this from just the name without needed to ask someone or fish  
around in some questionable documentation, then I'm a happy camper.    (042)

But what I would really like is the ability to hot-key/right click on  
these variables & see what they mean.  I think this look-up facility  
is possible in modern editors like Eclipse... but someone has to dig  
up what the words mean in the context of their specific use... which  
may or may not say anything about their meaning somewhere else in the  
system.    (043)

David Eddy
deddy@xxxxxxxxxxxxx    (044)

781-455-0949    (045)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: 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 join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (046)

Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: 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 join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (047)

<Prev in Thread] Current Thread [Next in Thread>