From newshub.ccs.yorku.ca!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!psych.toronto.edu!michael Tue Mar 24 09:55:59 EST 1992
Article 4478 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.230114.29498@neptune.inf.ethz.ch> <1992Mar12.233945.9244@psych.toronto.edu> <1992Mar13.143003.26132@neptune.inf.ethz.ch>
Message-ID: <1992Mar16.222403.26423@psych.toronto.edu>
Date: Mon, 16 Mar 1992 22:24:03 GMT

In article <1992Mar13.143003.26132@neptune.inf.ethz.ch> santas@inf.ethz.ch (Philip Santas) writes:
>
>In article <1992Mar12.233945.9244@psych.toronto.edu> michael@psych.toronto.edu (Michael Gemar) writes:
>> santas@inf.ethz.ch (Philip Santas) writes:
>
>MG:
>>>>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.
>
>PS:
>>>You can do type checking even statically in this example:
>>>  PE GivePE(Distance displacementFromEquilibrium){
>>>           Distance x = displacementFromEquilibrium;
>>>           SpringConstantType k = SpringConstant;    // global variable
>>>           return (1/2) * k * power(x,2); };
>>>Relevant things can be done for capacitances, by changing the type
>>>of the argument displacementFromEquilibrium.
>
>MG:
>>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
>
>PS:
>>>Because of their type; there is a type differentiation.
>
>MG:
>>But there is no connection to what they *refer* to.  Sure they're
>
>They can refer to another Type, to another Set of objects, to Text, to 
>a space in the memory, to a drive, to sound, and whatever you want.

I think we are talking at *completely* different levels.  The computer
may very well be able to *differentiate* between the different things
a variable can "refer" to, just as I can tell the difference between
the strings "brillig" and "slithy".  But that does not mean that
these distinctions carry any *semantic* meaning.  They may very well
cause *behavioural* differences in the computer.  But they have no
meaning as the term has been technically defined by almost all
philosophers. 

>MG:
>>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.
>
>PS:
>>>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.
>
>This question remains unanswered from your side.
>If there is differentiation in types, then there can be differentiation
>in the functions accepted by these types.

The whole point of the above example is that they two systems are
*functionally identical*.  Indeed, there is a whole *discipline* devoted
to examining the relations among physical systems that are functionally
identical - it is called "systems theory".     

> Notice that type information
>is just one form of information: there are some more like membership,
>satisfaction of inequalities etc. that help us to deal with well defined
>and bad defined (although not all levels) of concepts.

*WHAT* concepts?  All you have are variables with labels, connected to
other variables with labels.  They have *no* privileged interpretation.
(Could *you* tell the difference between a potential energy calculating
program and a electrostatic energy calculating program based *solely*
on the *relations* between the variables (remembering that variable
names are arbitrary).

> Research and
>engineering methods can contribute a lot to the way such things are

>
>PS:
>>>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'?
>
>MG:
>>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.
>
>You mix variables with types and other information related with them.
>If your variable is of type Dinstance, it cannot be of type Resistance
>except if you have created a relationship between these types (something
>obvious for types Distance and Magnitude).

How does the computer know that when I type a "12", I mean Distance and
not Potential Difference?  It's *just* a number...!


 Notice that such relationships
>can be created dynamically, by mking the computer gathering statistical
>data about their usages, etc.
>
>MG:
>>C++ may have the ability to distinguish between different variables.  It
>>does *not* have the ability to provide semantics for those variables.
>
>Their membership to a class (or type, or set), their sharing of functions
>and other variables etc is a form of semantics.

No, this is all syntactic information, as syntax has been traditionally
defined.

 Such information is very
>important for a program to run, as it is for a human to survive.
>
>PS:
>>>In many computer languages you have the ability to define data types,
>>>relationships among them, rules, constraints and many other elements.
>
>MG:
>>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.
>
>What do you mean by "meaning to the symbols"? This is a crucial problem
>I suppose.

I mean "meaning" in that they have one unambigious interpretation, just like
my thoughts do.

>
>PS:
>>>Are you aware of the semantical instantiation in a human brain?
>>>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?
>
>MG:
>>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.
>
>Sometimes you have to know. Imagine the case of a man painted in blue.
>A small kid may say: "this is not a man", but she cannot define what it is.
>Of course, a blue creature that looks like a non-man can be reduced to
>a man. The same holds for the structure of the mind and semantics..

This is completely opaque to me.

>
>>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.
>
>It is not a matter of belief, but of logical argumentation, search for
>rational possibilities, and rejection of contradictions...

...all of which, as far as I can see, deny the possibility of a C++
program having semantics.


While I appreciate your attempt to get at the issues discussed here, it
seems to me that you are somewhat unclear as to how certain terms are
used.  I would suggest that you look at some references that discuss
these issues in more detail.  Until we are both clear on the basic
terminology, I don't think it is worthwhile to pursue this on the Net.

- michael



