ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Foundation ontology, CYC, and Mapping

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Mon, 15 Feb 2010 08:31:40 -0500
Message-id: <4B794CBC.30803@xxxxxxxxxxx>
Dear Matthew and Pat,    (01)

People interact successfully among themselves because they have
background knowledge about the world and about one another.
Computers don't have any such knowledge, unless it is encoded in
some way that they can use.  The purpose of the formal ontologies
we have been discussing is to encode that information.    (02)

PC>>> ... the meanings of the terms in the ontology do not depend solely
 >>> on the total sum of all the inferences derivable from the logic, but
 >>> on the **intended meanings**, which do or at least should control
 >>> the way the elements are used in applications.    (03)

JFS>> If those intended meanings aren't in the specifications, they
 >> won't get into the machine code.  And if the spec's aren't precise,
 >> different programmers will write incompatible codes, which won't
 >> be interoperable.    (04)

MW> What you say is true for information systems that humans are not
 > part of. However, that is very few practical information systems.
 > For most information systems humans are an integral part.    (05)

I agree.    (06)

MW> For example [humans] enter data, they read reports, and on that
 > basis they make decisions (not just the computer). In that case
 > it matters if the humans decide that a field that the programmer
 > decided should be a name, would actually be used for a description
 > or the price of something or whatever.    (07)

I agree that computers have been successfully interacting with people
for half a century without any kind of formal ontology -- in fact
without any knowledge of any kind about the meaning of the data.
The only knowledge about the data is in heads of the people who
design, implement, and use the computers.    (08)

One computer displays a form with fields labeled 'name' or 'price',
accepts some input data, and stores the data in fields of a database
that some programmer has labeled 'name' or 'price'.  Another computer
combines that data with other data and sends it to a printer or a
computer display.  None of the computers have the slightest knowledge,
explicit or implicit, about the meaning of the data.    (09)

Unfortunately, different people may use the same or similar knowledge
in incompatible ways.  Database developers noticed that problem in
the mid 1970s, and they started projects to develop standards for
a "conceptual schema" that would encode the background knowledge.
For over 30 years, they have been discussing exactly the same issues
we have been debating in ontolog forum and the SUO email list.    (010)

We have two options:    (011)

  1. Admit that encoding background knowledge in computer systems
     is a futile exercise and continue with the programming
     practices that have evolved over the past half century.    (012)

  2. Develop formal ontologies that enable computer systems to
     reason with and about the "intended meaning" of the data
     they receive from humans.    (013)

Option #2 requires ontology encoded in some logic-based notation(s).
(By logic-based notations, I include SQL, UML diagrams, and STEP
as well as Common Logic, OWL, etc.)  The rules expressed in those
notations will have to make the intended meanings explicit with
the same level of precision as any engineering discipline -- i.e.,
the precision and techniques used in writing mathematical formulas.    (014)

John    (015)


_________________________________________________________________
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    (016)

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