Copy Link
Add to Bookmark
Report

AIList Digest Volume 4 Issue 188

eZine's profile picture
Published in 
AIList Digest
 · 15 Nov 2023

AIList Digest           Saturday, 20 Sep 1986     Volume 4 : Issue 188 

Today's Topics:
Education - AI Grad Schools,
Philosophy - Discussion of AI and Associative Memory,
AI Tools - Turbo Prolog

----------------------------------------------------------------------

Date: 12 Sep 86 20:39:56 GMT
From: ihnp4!gargoyle!sphinx!bri5@ucbvax.Berkeley.EDU (Eric Brill)
Subject: AI Grad Schools

A few weeks ago, I posted a request for info on good graduate schools
for AI. I got so many requests to forward the replies I got, that I
decided to just post a summary to the net. So here it is:


Almost everybody seemed to believe that the top 4 schools are MIT,
CMU, Stanford and Yale (not necessarily in that order).
Other schools which got at least 2 votes for being in the top 10 were
Toronto, Illinois(Urbana), UMass(Amherst), Berkeley, UCLA, UCIrvine,
UTexas(Austin).
Other schools which got one vote for being in the top 10 were
URochester, UCSD, Syracuse and Duke.

------------------------------

Date: Tue, 09 Sep 86 12:00:00 GMT+2
From: H29%DHDURZ2.BITNET@WISCVM.WISC.EDU
Subject: AI-discussion


In the last AI-lists there has been a discussion about the possibilities
of intelligent machines.
I am going to add some arguments I missed in the discussion.
1. First is to claim, that there are a lot of cognitive functions of
man which can be simulated by the computer. But one problem is, that
up to now these different functions are not integrated in one machine
or superprogram to my kwowledge.
2. There is the phenomenon of intentionality amd motivation in man that
finds no direct correspondent phenomenon in the computer.
3. Man's neuronal processing is more analogue than digital in spite of
the fact that neurons can only have two states.
Man's organisation of memory is rather associative than categorial.

[Neurons are not two-state devices! Even if we ignore chemical and
physiological memory correlates and the growth and decay of synapses,
there are the analog or temporal effects of potential buildup and the
fact that neurons often transmit information via firing rates rather
than single pulses. Neurons are nonlinear but hardly bistable. -- KIL]

Let me elaborate upon these points:
Point 1: Konrad Lorenz assumes a phenomenon he called " fulguration" for
systems. This means in the end nothing more than: The whole is more
than the sum of parts. If you merge all possible functions a
computer can do to simulate human abilities, you will get higher
functions which transgress the sum of all lower functions.
You may once get a function like consciousness or even selfconscious-
ness. If you define self as the man's knowledge of himself: his
qualities, abilities, his existence. I see no general problem to feed
this knowledge to a computer.
Real "understanding" of natural language however needs not only lingui-
stic competence but also sensory processing and recognition abilities
(visual, acoustical). Language normally refers to objects which we
first experience by sensory input and then name it. The construct-
ivistic theory of human learning of language by Paul Lorenzen und
O. Schwemmer (Erlanger Schule) assumes a "demonstration act" (Zeige-
handlung) constituting a fundamental element of man (child) learning
language. Without this empirical fundament of language you will never
leave the hermeneutic circle, which drove former philosphers into
despair.
Point 2.:
One difference between man and computer is that man needs food and
computers need electricity and further on the computer doesn't cry
when somebody is going to pull his plug.
Nevertheless this can be made: A computer,a robot that attacks every-
body by weapon, who tries to pull his plug. But who has an interest
to construct such a machine? To living organisms made by evolution
is given the primary motivation of self-preservation. This is the
natural basis of intentionality. Only the implementation of intentionality,
motivation, goals and needs can create a machine that deserves the name
"intelligent". It is intelligent by the way it reaches "his" goals.
Implementation of "meaning" needs the ability of sensory perception and
recognition, linguistical competence and understanding, having or
simulating intentions. To know the meaning of an object means to
understand the function of this object for man in a means-end relation
within his living context. It means to realize for which goals or needs
the "object" can be used.
Point 3.:
Analogue information processing may be totally simulated by digitital
processing or may be not. Man's associative organization of memory,
however needs storage and retrieval mechanism other than those now
available or used by computers.
I have heard that some scientists try to simulate associative memory
organization in the states, but I have no further information about
that. (Perhaps somebody can give me information or references.
Thanks in advance!).

[Geoffrey E. Hinton and James A. Anderson (eds.), Parallel Models
of Associative Memory, Lawrence Erlbaum Associates, Inc., Hillsdale
NJ. Dr. Hinton is with the Applied Psychology Unit, Cambridge England.
-- KIL]

Scientists working on AI should have an attitude I call "critical opti-
mism". This means being critical,see the problems and not being euphoric,
that all problems can be solved in the next ten years. On the other hand
it means not to assume any problem as unsolvable but to be optimistic,
that the scientific community will solve problems step by step, one
after the other how long it will ever last.

Finally let me - being a psychologist - state some provocative hypotheses:
The belief, that man's cognitive or intelligent abilities including
having intentions will never be reached by a machine, is founded in the
conscious or unconscious assumption of man's godlike or godmade
uniqueness, which is supported by the religious tradition of our
culture. It needs a lot of self-reflection, courage and consciousness
about one's own existential fears to overcome the need of being
unique.
I would claim, that the conviction mentioned above however philosphical
or sophisticated it may be justified, is only the "RATIONALIZATION" (in
the psychoanalytic meaning of the word) of understandable but
irrational and normally unconscious existential fears and need of human
being.


PETER PIRRON MAIL ADDRESS: <H29@DHDURZ2.BIYNET>

Psychologisches Institut
Hauptstrasse 49-53
D-6900 Heidelberg
Western Germany

------------------------------

Date: Thu 18 Sep 86 20:04:31-CDT
From: CS.VANSICKLE@R20.UTEXAS.EDU
Subject: What's wrong with Turbo Prolog

1. Is Borland's Turbo Prolog a superset of the Clocksin &
Mellish (C & M) standard?

On the back cover of Turbo Prolog's manual is the description
"A complete Prolog incremental compiler supporting a large
superset of Clocksin & Mellish Edinburgh standard Prolog."
This statement is not true. On page 127 the manual says
"Turbo Prolog . . . contains virtually all the features
described in Programming in Prolog by Clocksin and Mellish."
If you read "virtually" as "about 20% of" then this statement
is true. Turbo Prolog does use Edinburgh syntax, that is,

:- for "if" in rules,
capitalized names for variables,
lower case names for symbols,
square brackets for delimiting lists, and
| between the head and tail of a list.

Almost all the Clocksin & Mellish predicates have different
names, different arguments, or are missing entirely from Turbo
Prolog. For example, "var" is "free," and "get0" is
"readchar." Differences in predicate names and arguments are
tolerable, and can be handled by a simple conversion program
or by substitutions using an editor. They could also be
handled by adding rules that define the C & M predicates in
terms of Turbo Prolog predicates, for example,

var(X):-free(X).

These kinds of differences are acceptable in different
implementations of Prolog. Even C & M say that their
definition should be considered a core set of features, that
each implementation may have different syntax. However,
Borland has done much more than just rename a few predicates.

2. Is Borland's Turbo Prolog really Prolog?

NO. Turbo Prolog lacks features that are an essential part of
any Prolog implementation and requires declarations. Borland
has redefined Prolog to suit themselves, and not for the
better.

A key feature of Lisp and Prolog is the ability to treat
programs and data identically. In Prolog "clause," "call,"
and "=.." are the predicates that allow programs to be treated
as data, and these are missing entirely from Turbo Prolog.
One use of this feature is in providing "how" and "why"
explanations in an expert system. A second use is writing a
Prolog interpreter in Prolog. This is not just a
theoretically elegant feature, it has practical value. For a
specific domain a specialized interpreter can apply domain
knowledge to speed up execution, or an intelligent
backtracking algorithm could be implemented. In C & M Prolog
a Prolog interpreter takes four clauses. Borland gives an
example "interpreter" on page 150 of the Turbo Prolog manual -
nine clauses and twenty-two declarations. However, their
"interpreter" can't deal with any clause, it can only deal
with "clauses" in a very special form. A clause such as
likes(ellen,tennis) would have to be represented as

clause(atom(likes,[symbol(ellen),symbol(tennis)]),[])

in Borland's "interpreter." I don't expect "clause" to
retrieve compiled clauses, but I do expect Prolog to include
it. By dropping it Borland has introduced a distinction
between programs and data that eliminates a key feature of
Prolog.

Turbo Prolog absolutely requires data typing. Optional typing
would be a good feature for Prolog - it can produce better
compiled code and help with documentation. However, required
typing is not part of any other Prolog implementation that I
know of. Typing makes life easier for the Turbo Prolog
compiler writer at the expense of the Turbo Prolog
programmers. A little more effort by the few compiler writers
would have simplified the work of the thousands of potential
users. There are good Prolog compilers in existence that do
not require typing, for example, the compiler for DEC-10
Prolog. It may also be that Borland thought they were
improving Prolog by requiring typing, but again, why not make
it optional?

Besides introducing a distinction between programs and data,
Turbo Prolog weakens the ability to construct terms at run
time. One of the great strengths of Prolog is its ability to
do symbolic computation, and Borland has seriously weakened
this ability. Again this omission seems to be for the
convenience of the compiler writers. There are no predicates
corresponding to the following C & M predicates, even under
other names: "arg," "functor," "name," "=..," "atom,"
"integer," and "atomic." These predicates are used in
programs that parse, build, and rewrite structured terms, for
example, symbolic integration and differentiation programs, or
a program that converts logical expressions to conjunctive
normal form. The predicate "op" is not included in Turbo
Prolog. Full functional notation must be used. You can write
predicates to pretty print terms, and the manual gives an
example of this, but it is work that shouldn't be necessary.
Dropping "op" removed one of Prolog's strongest features for
doing symbolic computation.

Turbo Prolog introduces another distinction between clauses
defined at compile time and facts asserted at run time.
Apparently only ground terms can be asserted, and rules cannot
be asserted. This may be partly a result of having only a
compiler and no interpreter. The predicates for any facts to
be asserted must be declared at compile time. This is another
unecessary distinction for the convenience of the compiler
writers.

One other annoyance is the lack of DCG rules, and the general
difficulty of writing front ends that translate DCG rules and
other "syntactic sugar" notations to Prolog rules.

3. Is Turbo Prolog suitable for real applications?

I think Turbo Prolog could run some real applications, but one
limitation is that a maximum of 500 clauses is allowed for
each predicate. One real application program computes the
intervals of a directed graph representing a program flow
graph. Each node represents a program statement, and each
arc represents a potential transfer of control from the head
node to the tail node. There is a Prolog clause for each node
and a clause for each arc. A program with 501 statements
would exceed Turbo Prolog's limit. I assume Borland could
increase this limit, but as it stands, this is one real
application that Turbo Prolog would not run.

4. Is there anything good about Turbo Prolog?

YES. I like having predicates for windows, drawing, and sound.
It looks easy to write some nice user interfaces using Turbo
Prolog's built in predicates. The manual is well done, with
lots of examples. There is easy access to the facilities of
MS-DOS. There is a good program development environment, with
windows for editing code, running the program, and tracing.
There are also features for allowing programming teams to
create applications - modules and separate name spaces. At
$100 the price is right. If this were Prolog, it would be a
great product.

-- Larry Van Sickle
cs.vansickle@r20.utexas.edu 512-471-9589

------------------------------

Date: Thu 18 Sep 86 20:12:29-CDT
From: CS.VANSICKLE@R20.UTEXAS.EDU
Subject: Simple jobs Turbo Prolog can't do

Two simple things you CANNOT do in Turbo Prolog:

1. Compute lists containing elements of different basic types.

Turbo Prolog does not let you have goals such as

append([a,b,c],[1,2,3],L).

Turbo Prolog requires that the types of every predicate be
declared, but the typing system does not allow you to declare
types that mix basic types. Also lists like:

[1,a]
[2,[3,4]]
[5,a(6)]

cannot be created in Turbo Prolog. The syntax of types is:

a) name = basictype

where basictype is integer, char, real, string or symbol,

b) name = type*

where type is either a basic type or a user defined type,
the asterisk indicates a list,

c) name = f1(d11,...d1n1);f2(d21,...,d2n2);...fm(dm1,...d2nm)

where fi are functors and dij are types, called
"domains." The functors and their domains are
alternative structures allowed in the type being
defined.

The important thing to notice is that you cannot define a type
that has basic types as alternatives. You can only define
alternatives for types that contain functors. So you cannot
define types

mytype = integer;symbol

mylisttype = mytype*

which is what you would need to append a list of integers to a
list of symbols.

What the Turbo Prolog manual recommends for this case is to
define

mytype = s(symbol);i(integer)

mylisttype = mytype*

and declare append as

append(mylisttype,mylisttype,mylisttype)

which would allow us to state the goal

append([s(a),s(b),s(c)],[i(1),i(2),i(3)],L).

This is clumsy, kludgy, and ugly.

2. Compute expressions that contain different basic types or
mixtures of structures and basic types.

Simplifying arithmetic expressions that contain constants and
variables seems like it should be easy in a language designed
to do symbolic computation. In C & M Prolog some rules for
simplifying multiplication might be

simplify(0 * X,0).
simplify(X * 0,0).
simplify(1 * X,X).
simplify(X * 1,X).

In C & M Prolog you can enter goals such as

simplify(a - 1 * (b - c),X).

Now in Turbo Prolog, because of the limited typing, you cannot
have expressions that contain both symbols and integers. (You
also cannot have infix expressions, but that is another
issue). Instead, you would have to do something like this:

exprtype = i(integer);s(symbol);times(exprtype,exprtype)

and declare simplify as:

simplify(exprtype,exprtype)

and the clauses would be:

simplify(times(i(0),X),i(0)).
simplify(times(X,i(0)),i(0)).
simplify(times(i(1),X),X).
simplify(times(X,i(1)),X).

The goal would be:

simplify(minus(s(a),times(i(1),minus(s(b),s(c)))),X).

This should speak for itself, but I'll spell it out:
REAL Prolog can do symbolic computation involving mixtures of
symbols, numeric constants, and expressions; the programs are
simple and elegant; input and output are easy. In Turbo
Prolog you can't even create most of the expressions that real
Prolog can; the programs are long, opaque, and clumsy; you
have to write your own predicates to read and write
expressions in infix notation.

It is a shame that this product comes from a company with
a reputation for good software. If it came
from an unknown company people would be a lot more cautious
about buying it. Since it's from Borland, a lot of people
will assume it's good. They are going to be disappointed.

-- Larry Van Sickle
cs.vansickle@r20.utexas.edu 512-471-9589

------------------------------

End of AIList Digest
********************

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT