From newshub.ccs.yorku.ca!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!psych.toronto.edu!michael Tue Mar 24 09:55:30 EST 1992
Article 4440 of comp.ai.philosophy:
Newsgroups: comp.ai.philosophy
Path: newshub.ccs.yorku.ca!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!psych.toronto.edu!michael
>From: michael@psych.toronto.edu (Michael Gemar)
Subject: Re: Definition of understanding
Organization: Department of Psychology, University of Toronto
References: <1992Mar11.122705.22342@neptune.inf.ethz.ch> <1992Mar11.185921.10347@psych.toronto.edu> <1992Mar11.230114.29498@neptune.inf.ethz.ch>
Message-ID: <1992Mar12.233945.9244@psych.toronto.edu>
Date: Thu, 12 Mar 1992 23:39:45 GMT

Sorry to include so much earlier material, but I don't think it's
possible to follow the discussion without it.  

In article <1992Mar11.230114.29498@neptune.inf.ethz.ch> santas@inf.ethz.ch (Philip Santas) writes:
>
>In article <1992Mar11.185921.10347@psych.toronto.edu> michael@psych.toronto.edu (Michael Gemar) writes:
>>santas@inf.ethz.ch (Philip Santas) writes:
>>>
>>>michael@psych.toronto.edu (Michael Gemar) writes:
>>>>
>>>>PE = 1/2 k x^2
>>>>
>>>>where PE = potential energy
>>>>       k = spring constant
>>>>       x = displacement from equilibrium
>>>>
>>>>How do you give definitions that have semantic content to a computer?
>>>>How does it know that when you respond to the request "Please input
>>>>the capacitance constant => " that you are talking about capacitance,
>>>>and not number of cars?  The problem of generating "definitions" with
>>>>semantic content for a computer *is* the central problem under discussion.
>>>
>>>You can do type checking even statically in this example:
>>>
>>>  PE GivePE(Distance displacementFromEquilibrium)
>>>          {
>>>           Distance x = displacementFromEquilibrium;
>>>           SpringConstantType k = SpringConstant;    // this is global variable
>>>           return (1/2) * k * power(x,2);
>>>          };
>>>
>>>Relevant things you can do for capacitances, by changing the type
>>>of the argument displacementFromEquilibrium.
>>
>>This does *not* ground the meaning of these terms.  How do these variables
>>know that the numbers input are spring constant and displacement, rather
>>than capacitance and potential.  Merely typing
>
>Because of their type; there is a type differentiation.

But there is no connection to what they *refer* to.  Sure they're 
differentiated, but there is nothing in the computer to say that they
refer to distance and spring constants as opposed to potential and
capacitance, or apples and oranges.  Just naming the type "Spring Constant"
doesn't do squat.

>>Distance x = displacmentFromEquilibrium
>>
>>does not tell the computer what "distance" and "displacement from equilibrium"
>>*is*!  I could have just as easily typed:
>>
>>Qaatlus x = GwornsBleebArack
>>
>>and the program would *still* compute *both* Potential *and* electrostatic
>>energy.
>
>Notice that there are many human languages and you can say the same thing 
>with differnt words and syntax. What I do not understand is how can a 
>you calculate two irrelevant things by evaluating just one function.
>
>The computer in my example has an internal representation for the type
>Distance. This representation can be enriched for the purposes of more
>complex tasks. What is YOUR internal representation of Distance?
>What do you understand under the terms 'Distance from Sun to Star A' or
>'speed of light'? 

I have a *lot* more than just a variable marked "distance".  I understand
how distance relates to two points, how distance can be calculated, how
the term "distance" can be used metaphorically, how distance can be
measured, etc.  Your program only knows that it has a variable labelled
with the characters "d", "i", "s", "t", "a", "n", "c", and "e".  This simply
ain't the same thing.

>>>>         But I do not see a way of providing variable definitions that would
>>>>"clear things up" from the point of view of the computer.
>>>
>>>Notice that EVEN languages like C++ have such abilities...
>>
>>C++ may have the ability to distinguish between different variables.  It
>>does *not* have the ability to provide semantics for those variables.
>
>In many computer languages you have the ability to define data types,
>relationships among them, rules, constraints and many other elements.

All of these relations, rules, and constraints are *syntactic* ones.  They
do not give *meaning* to the symbols, as the variables are not grounded
in any way.  This is a point that has been batted back and forth a number
of times.  If you don't buy it, then fine, but I'm not sure we can make
any other progress then.

>
>Are you aware of the semantical instantiation in a human brain?

Nope.

>If yes why is it impossible to implement this in a machine?
>If no why do you argue against the abilities of these building blocks
>for modelling semantics?

You don't have to know how something's done to know how something *isn't*
done.  There is a principled argument why shuffling symbols won't give
you meaning, namely, that syntax can't alone produce semantics.  Even though
I don't know how semantics *does* work, I know it *doesn't* work through
shuffling symbols.
 
In order to save bandwidth (and to make Chalmers happy :-) I'd like to
suggest that if you understand the above claim, but don't believe it, then
simply post so once to state your position, and we'll leave it at that.  There
is no point in us exchanging articles back and forth if we've reached
disagreement over first principles.

- michael



