John Scanlon wrote:
Ben,
I did read your stuff on Lojban++, and it's the sort of language
I'm talking about. This kind of language lets the computer and the
user meet halfway. The computer can parse the language like any other
computer language, but the terms and constructions are designed for
talking about objects and events in the real world -- rather than for
compilation into procedural machine code.
Which brings up a question -- is it better to use a language based
on term or predicate logic, or one that imitates (is isomorphic to)
natural languages? A formal language imitating a natural language
would have the same kinds of structures that almost all natural
languages have: nouns, verbs, adjectives, prepositions, etc. There
must be a reason natural languages almost always follow the pattern of
something carrying out some action, in some way, and if transitive, to
or on something else. On the other hand, a logical language allows
direct translation into formal logic, which can be used to derive all
sorts of implications (not sure of the terminology here) mechanically.
The problem here is that when people use a language to communicate with
each other they fall into the habit of using human, rather than formal,
parsings. This works between people, but would play hob with a
computer's understanding (if it even had reasonable referrents for most
of the terms under discussion).
Also, notice one major difference between ALL human languages and
computer languages:
Human languages rarely use many local variables, computer languages do.
Even the words that appear to be local variables in human languages are
generally references, rather than variables.
This is (partially) because computer languages are designed to describe
processes, and human languages are quasi-serial communication
protocols. Notice that thoughts are not serial, and generally not
translatable into words without extreme loss of meaning. Human
languages presume sufficient "understanding" at the other end of the
communication channel to reconstruct a model of what the original
thought might have been.
So. Lojban++ might be a good language for humans to communicate to an
AI with, but it would be a lousy language in which to implement that
same AI. But even for this purpose the language needs a "verifier" to
insure that the correct forms are being followed. Ideally such a
verifier would paraphrase the statement that it was parsing and emit
back to the sender either an error message, or the paraphrased
sentence. Then the sender would check that the received sentence
matched in meaning the sentence that was sent. (N.B.: The verifier
only checks the formal properties of the language to ensure that they
are followed. It had no understanding, so it can't check the meaning.)
-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/[EMAIL PROTECTED]