ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Polysemy and Subjectivity in Ontolgies - the HDBIexa

To: ontolog-forum@xxxxxxxxxxxxxxxx
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Wed, 17 Nov 2010 22:37:12 -0500
Message-id: <4CE49F68.4000808@xxxxxxxxxxx>
Rich and Doug F,    (01)

Before going any further, let me say that I agree with the responses
by Doug.  I just want to explain the following point in more detail.    (02)

JFS:
> But for any system of formal reasoning, we must have one
> meaning for each term in order to avoid contradictions.    (03)

RC:
> Assuming this (point 2) is true implies we cannot reason
> with ambiguous representations, but that is clearly not true.    (04)

My point does not imply that conclusion.    (05)

The problem of disambiguating natural language text is to determine
which of many possible senses of words in a text were intended by
the speaker or writer.  This is not a trivial problem, but it is
not an unsolvable problem for many important applications.    (06)

Depending on the application, you may need to resolve the meaning
at varying degrees of precision.  For many technical subjects, it
is possible to match the words in the text to the terms in the
subject with a high level of accuracy.    (07)

Doug cited an article about how the Cyc system resolves word senses
in medical applications.  At VivoMind, we have been successful in
matching NL words to the technical terms in several different kinds
of applications.  For examples, please see the following slides:    (08)

    http://www.jfsowa.com/talks/pursue.pdf    (09)

In particular, please read the slides 24 to 30 for the legacy
re-engineering project.  Slide 26 shows some very scruffy text
with lots of jargon.  There is no way that such text could be
translated to a COBOL program by means of current technology.    (010)

However, the VivoMind Analogy Engine (VAE) successfully mapped
100 megabytes of such text to 1.5 million lines of COBOL code
that the text was talking about.  The first step was to translate
COBOL (a formally defined programming language) to conceptual graphs.
That is a formal process of mapping one formal language to another.    (011)

The next step was to translate the English texts to conceptual graphs
and use the CGs derived from COBOL as as the semantic specification.
VAE was used to resolve the ambiguities:    (012)

  1. Any CG derived from English that had no matches (total or partial)
     to anything in the COBOL software was discarded as irrelevant.    (013)

  2. Any part of a CG from English that matched any part of a CG
     derived from COBOL was assumed to be relevant.    (014)

  3. Whenever there were multiple options for interpreting an
     English phrase or sentence, the one that had the best match
     to some CG derived from COBOL was selected.    (015)

  4. The result was a mapping that assigned a unique meaning derived
     from the COBOL software to each English word that was mapped
     to that software.    (016)

But not all matches were perfect.  There were discrepancies caused
by multiple patches to the software over the years.  See slides 28
to 30 for examples of errors detected and reported by VAE.    (017)

Bottom line:  It's possible to derive more precise knowledge from
natural language than the language itself expresses.  Additional
information, in this case from the COBOL software, can supplement
the source text to make the resulting CGs more precise than the
English.  This is an example of "information fusion" by combining
"structured" knowledge with the so-called "unstructured" English.    (018)

John    (019)

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

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