On 27 Apr 2008, at 6:57 pm, Lucifer Satan wrote:
> >From what I read I understood that Prolog stores sorts of lists and
> structures and RELATIONS.
I presume "structures" means "compound terms".
Prolog is based on a fragment of first order logic.
You can define prediates (relations) that relate data,
but not higher-order predicates (predicates with functions or
predicates as arguments). There is a sort of "punning" technique
where data can serve as names for (partial applications of)
predicates, but while that is adequate for conventional higher-
order _programming_, it doesn't work the way that higher-order
_logic_ should. In effect, Prolog data structures are
"labelled trees with holes".
> What I'm thinking of is of a language in which the relations between
> things are defined as certain symbols - or might just as well be
> words, but just for example, 'cuz words sometimes don't grasp the
> complete meaning,
Never in the history of the universe has a WORD grasped any part of the
meaning of anything.
I am taking "symbol" as "element of a discrete finitely presented set".
(Another reading of "symbol" might have been
"A written character or mark used to represent something;
a letter, figure, or sign conventionally standing for some
object, process, etc. E.g. the figures denoting the planets,
signs of the zodiac, etc. in astronomy; the letters and other
characters denoting elements, etc. in chemistry, quantities,
operations, etc. in mathematics, the faces of a crystal in
crystallography." -- the Oxford English Dictionary
but I've chosen a more general reading.)
I can perceive no useful distinction between "symbol" and "word" here;
both are arbitrary signs. Wasn't it Drew McDermott who pointed out
that calling a procedure UNDERSTAND instead of G437 didn't actually
make the computer understand?
> And with this the machine will work it's way through words and
> sentences, in conversation.
For some reason, this reminds me of John Andreae's PURR-PUSS.
See
http://www.elec.canterbury.ac.nz/purr_puss/> What Prolog gives is not enough, because the computer doesn't
> understand the meaning.
You might want to look at
http://en.wikipedia.org/wiki/Physical_symbol_systemA computer is a physical symbol system.
A Prolog program is a description of a pattern of activity of a physical
symbol system. If it is impossible for a running Prolog program to
understand, then it is impossible for ANY running computer program to
understand.
A number of philosophers have argued, as indeed has Rodney Brooks
in "Elephants don't play chess" (lovely title) that human beings are
*grounded* physical systems; that whatever "intellgence" means for
us it has something to do with having bodies inhabiting a real physical
world. I can understand deskishness because I can see, touch, tap and
thus hear, smell, even, should I feel adventurous, taste the desk in
front of me.
Addressing a rather different point,
"Moore famously put the point into dramatic relief with his
1939 essay Proof of an External World, in which he gave a
common sense argument against skepticism by raising his right
hand and saying "here is a hand," and then raising his left
and saying "and here is another"."
See
http://en.wikipedia.org/wiki/Here_is_a_handIt's partly because I can say HERE is *my* HAND that I can understand
HERE and HAND. "Here is a hand" is different from "here is 'hand'".
A symbol system in general has NO fixed meaning.
It is notoriously the case that the symbols and axioms of elementary
arithmetic admit multiple meanings. It's the _groundedness_ of
reference that gives us hope that what we say means something, and it
is why there is as much translatability between human languages as
there is. ("ringaringa" is usually translated as "hand", but it
includes the wrist and lower forearm as well. However, it _does_
mean "a part of the body including palm and fingers", so when you see
"Horoi o ringaringa" in a toilet, reading it as "wash your hands"
won't mislead you too far. This works because Maori people have hands
just like everybody else and wash them with the same kind of water for
the same reasons. The important thing is the hands, the water, and
the washing, not "hand", or "water", or "wash".)
"
> But once we give it to it as GIVEN - This is a relation bla bla
> bla... you don't have to know anything about it (though you do
> define relations between relations), it can be used to calculate.
If you can "give" a symbol to a computer that doesn't "have to know
anything
about it", you can give it to a Prolog program (or a Visual BASIC one,
for
that matter).
>
>
> The built in relations in Prolog and any other language are
> Mathematical, and I think they should be expended, and extended to
> none-mathematic things.
Any program for a digital computer is a mathematical structure.
It might not be about numbers; it might be about permutations, or
paintings, or imaginary ants crawling over a musical soundscape.
(See "The Art of Artificial Evolution - A Handbook on Evolutionary
Art and Music", Springer 2008, and especially have fun with the CD.)
Whatever it is about, however, it is _as_ a mathematical structure
that it possesses this aboutness.
Computer-like things that are grounded physical systems embodied in the
real physical world we call robots. A symbol in a robot's control
software can "mean" MOVE because activating it starts a causal chain
which normally results in the robot physically moving. ("Mirror
neurons" are really fascinating: the idea that we understand many
things by, in effect, simulating what it would be like for us to do
them sparks all sorts of ideas.) It seems to me that if you want some
of the symbols (or relations, or whatever) in a program to have
non-mathematical reference, they have to be grounded in this kind of
way. (You can simulate a robot, and I suppose we can agree at least
that symbols in a simulated robot *simulate* non-mathematical
reference.)
>
>
> It should also have an "add new relation" feature, and to have an
> executable function that can be ran while running.
Prolog lets you add new facts to an existing predicate at run time.
Prolog lets you add new predicates to an existing module at run time.
Prolog lets you add new modules at run time.
Prolog also lets you remove any of these things.
Prolog lets you construct a query as data and then execute it.
(Hmm. I've just been reading some Postgresql documentation.
Any modern database system also lets you do these things.)
> That's the basics, I hope it answered some of the questions.
It doesn't answer the question why you have adopted the pseudonym
"light-bearer accuser". It's rather hard to take seriously.
>
--
Te Reo Ingarihi is a taonga of Te Iwi Pakeha,
ergo we should keep it pure, sans mélange, ruat caelum.
------------
For further info, please visit
http://www.swi-prolog.org/To unsubscribe, send a plaintext mail with "unsubscribe prolog <e-mail>"
in its body to
majordomo@...