John, (01)
<snip> (02)
> EJB
> > For every Squid, there are exactly 10 Tentacles: t, such that t is a
> > part of the Squid.
> >
> > (which uses a back reference (anaphor) instead of a variable, a trick
> > I learned from Attempto)
>
> Yes, but you learned it from your mommy long before that.
> The Attempto examples may have focused your attention on it. (03)
No, I didn't. My childhood taught me English. What we are talking about is a
controlled language, whether that be mathematical English or Attempto CE or
some CNL for logic. Accepting the back reference in the CNL is just one step
forward in making it English-LIKE. What I learned from the Attempto project
is that this feature can be easily incorporated in the CNL because it is not
hard to parse and interpret reliably. (04)
[And OBTW, both Attempto CE and RECON allow:
For every Squid there are exactly 10 tentacles that are parts of the Squid.
The semantics of this clearly introduces two variables, but the expression
itself does not, nor does it need to. It is worth noting that every common
noun in an utterance introduces a variable -- the problem is to determine when
two occurrences of the same noun refer to the same variable. The English back
reference, with 'the', is a cue. We also introduce cues like 'the same' and
'another'.] (05)
> EJB
> > The big question is what formal language you want generated from these
> > human-friendly languages.
>
> Any sentence in English may be translated to logic in different ways for
> different purposes in different contexts. There are several ways of handling
> CNLs:
>
> 1. Attempto strategy: Formally defined grammar with a formally
> specified translation. Any error generates an error message.
>
> 2. STE strategy: A grammar for a simplified syntax with an
> approved vocabulary, but no formal semantics.
>
> 3. Formal, but helpful. Formally defined grammar with a formally
> specified translation. If error, don't give up. Make a guess
> at the most likely interpretation. In every case, translate
> the result back to an NL "echo". Ask the human to approve it
> or revise the input.
>
> I recommend strategy 3. (06)
As you said, there are different purposes for these things. I recommend that
you first understand the requirements for your language and its logic
translation, and suit the strategy to the purpose. Strategy 3 is fine if you
are negotiating with some human one sentence at a time, and you have some
supposition that what you think is a 'natural language echo' will make sense to
the particular person on the other end. (What if it is a student or secretary
entering what they understand to be "the master's words"? Do you want them to
guess what was intended? ) Strategy 3 is not even a viable strategy if you are
processing a requirements document with 1287 specifications in it. In such a
scenario, the errors go to an 'exceptions' file that may get the strategy 3
treatment. (07)
And from experience, I can tell you that trying to explain to the human what
was wrong with what s/he wrote is not easy. If you go on after an error,
trying to find/guess a possible interpretation, you end up dumping 12 possible
interpretations, all of which have different problems. And trying to
incorporate some kind of Bayesian reasoning about what was most likely meant is
probably as difficult as interpreting natural language itself. Why would you
bother to 'control' the language if you aren't going to do that? (08)
-Ed (09)
_________________________________________________________________
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 (010)
|