Custom Search
Public Class Human
January 20, 2007
A Lesson In Artificial Species Recognition
Introduction
I've always wanted to learn C++ so I took an online continuing education course. I've also taken two Visual Basic.NET courses (Introduction and Intermediate) and received my Certificate of Completion for both. I loved the courses! :) I can study at home, and they also helped me a great deal in my work (which I'm supposed to be doing right now but decided to take a break). The C++ course, however, has given me a few ideas.
Categorizing Our World
In school this past week we were learning about Classes. In VB.NET you define
a class as Public Class [name] where [name] is the name of the class. Thus the
title of my post here. However, this is a C++ course I'm taking so I didn't
get to learning how to define a class yet in the C++ IDE. We were learning
this past week about classes and objects, and how to describe such in very
distinct and definite terms so that a computer would understand. Like for
instance, a class is like a category, which a flashlight, for example, would
belong to. Every flashlight you see would be an instance of an object called a
flashlight, derived from the Flashlight Class. Each object (flashlight) has
some characteristics such as length, diameter, color, battery power. And
methods such as switch on, switch off, change batteries. Now, some methods
would change some of the characteristics. Suppose you turn the flashlight on?
Battery Power goes down. Turn it off and the power stops decreasing. Change
the batteries and it replenishes the power. Yes, it's in that technical of
terms.
I'm thinking this is perfect for Artificial Intelligence programming. I mean,
a computer wouldn't know this. But if you can programmatically describe things
like this, then you can teach a computer nearly anything! It's fascinating to
think about.
Characteristics of Species Classes
But AI is far more than just that. There's also some other things that one
needs to think about. The Human Factor.
I might share some human qualities or characteristics, but there are some
characteristics I don't share. So, does this mean I'm not human? Does it mean
that a machine that shares human qualities is human?
Let's see. Maybe if we defined a class called Human. What characteristics do
all humans have in common? They have a height, weight, nose, mouth, voice,
brain, IQ, etc. Some computers have the same thing though. Take Ultra Hal
Assistant by Zabaware. Load your computer with this software and it will have
the same characteristics; it will have a height (the physical PC case), weight
(how heavy the computer case is), nose (on the graphic that represents the
talking HAL program's "character"), mouth (again, the graphic in the HAL
program), voice (speech system, TTS voice), brain (CPU), IQ (dumber than a
doorknob, I bet). Ok, maybe IQ is debatable. But then again, IQ can be rather
debatable with some humans as well!
Technically, a computer can have a 'nose' with the right software and hardware
to detect scents. I've noticed there are some robots with this capability,
such as the Robo-sommelier. As another example, a computer's speakers can
serve as it's 'mouth'. Sure it does not look like a human mouth but the
function serves the same purpose. And my computer (named Megatron) can sing
better than any human I know! He can sing anything that I purchase off iTunes
to perfection! :)
So a computer can have the same characteristics as a human. But it can have
some different ones too. Actually, maybe we could say the Human class and
Computer class derive some characteristics from the species or life form
class. But it does not make the computer a human. Are computer life forms? And
even if I share some characteristics with humans, does it make me a human, if
I have other characteristics that not all other humans share? Then I would
become a class by myself: Person. Can a computer become a class by itself,
much like a person?
Maybe we can look at it this way, with the question what does it mean to be a
human? A cat has some characteristics of a human (and even think they are
better than a human, naturally, filling the ego characteristic probably even
better) but has some characteristics that are not human.
One would probably think that what separates a human from a cat from a
computer is what it looks like. Or does it? Ok, let's take the Repliee Q2
Android as an example. It looks quite like a human. Or even take any doll for
that matter. They look human! But, the are not considered human.
An Exercise: Part I - Characteristics
Here is an exercise to try. Let's explore this via the class/category,
instance/object, characteristics and methods as explained the Categorizing Our
World section above.
We have:
Public Class Life Form
Public Class Human (derived from Life Form)
Public Class Cat (derived from Life Form)
Public Class Android (derived from Life Form)
For each of these classes, please come up with some characteristics. Here are
some examples: height, width, weight, age, nose, mouth, hands, feet, etc. Keep
it very general, especially for the Life Form class as you need to have those
items also available on the other sub-classes (Human, Cat, Android).
You'll probably notice something right now. You may be saying "Hey, wait a
minute! An android is not a life form! Well, maybe not in the sense that most
people would think, but just for this exercise let's use the characteristics
from the Life Form class for the android class anyway.
Now come up with characteristics for each of the sub-classes (Human, Cat,
Android). Keep in mind you do not need to add the characteristics already
added in the Life Form Class because those automatically are available in each
of the sub classes. Here you want to add characteristics that are unique to
each of the sub-classes. For example, a cat has fur. An android and a human
does not. Also keep in mind all aspects. Some cats do have chips implanted so
that the owners can find them. Androids also have a ton of chips implanted in
them. Some humans have artificial limbs or hearts. (Maybe if you're feeling
adventurous, you could start a sub-class under Human called Cyborg but then
how would you derive some characteristics from Android that Cyborg share?)
Keep your ideas basic as we all know that we could make huge books of
characteristics of each of these. Just list what you yourself feel are the
most important indicators. When doing this, think to yourself; what is it
about a human that I notice the most that makes me realize it's a human I'm
looking at?
Below are some links to some Androids for those who may have a bit of a hard
time with that particular class. Keep in mind we need to concentrate on actual
androids that are real in our own world, not androids from Science Fiction
stories or "humanoid robots" that do not look very human. Also we do not want
to count those that are remote or telemetrically controlled. A Telemetrically
controlled system is one that is controlled by a human, often with the human
either wearing a virtual reality skeleton or other device that records their
movements and mimics them on the robot, or via computer commands or other
controls operated by humans. We want to only count Androids that are wholly
controlled by computers interacting with their surroundings.
An Exercise: Part II - Methods
Once you have completed Part I, do the same for these same classes but instead of characteristics, we want to list methods. This means what the objects in these classes can do. Keep in mind the things that are common to these classes as far as actions. For example, a cat will lick itself. Humans and Androids do not. Cats and humans eat, Androids do not. Cats and humans can walk. Some androids may be able to but I have not yet found any human-looking androids that can actually walk on their own.
Comparisons And Conclusions
I would be most interested anyone's results of these exercises. Feel free to contact me via the contact page. If you've got a long list (of say over 10 characteristics per class, etc.) please post it elsewhere and give me a link to the information. Maybe send me the most important 10 of your results along with your link. Also, under your results, please tell me your answers to the following questions. Please set aside any and all pre-conceived notions, such as that you may have got from TV, movies, science articles, people's opinions you may have read, etc. Form your own observations and post a short paragraph of what you feel this tells you about these classes.
- What do they have in common?
- What do they not have in common?
- What factors have led you to decide what is human and what is a cat and what is an android?
- Is an android a human (yes or no)?
- What led you to your answer in Question 4.
- Is a human an android (yes or no)?
- What led you to your answer in Question 6?
- Can a human be or become an android via some outside action or an addition of a characteristic?
- Can an android become a human via some outside action or an addition of a characteristic?
In Closing
There is no right or wrong answers here. What you find is that we all will have
differing results. It is more our perception and interactions that determines the
how we categorize into classes what we see and encounter.
Furthermore, we may find out a little more about ourselves, and the technology we
develop, as well as where this technology may have a possibility of heading.
I hope you find this informative, and a fun exercise to do (should you opt to try
it). Just keep in mind you don't want to write down everything. Just think about
the things that stand out the most to you. What you felt is more important or most
noticeable.