Projects >> YPN's AI
Posted by nonama on 14:05:00 01-13-2002
We are thinking of building an ai. Until now we decided few things:

1.programing will be done in C/C++. C mainly
2.OS for programing will be posix compatible
3.it will comunicate using sockets to irc server
4.some of data about this project will be placed in www.aurimas.f2s.com/ai/


thanx for support guys.

Posted by KaGez on 14:15:00 01-13-2002
1.) the link you've posted is "forbidden", so I can't view it
2.) I'd be interested in it, but I have to find some time which shouldn't be impossible. I also have never done sockets, so this would be a great opportunity for me to learn it! =)
So, I'd like to join, but only if not too many take part in this, and only if these are ppls I can work together with. But for now I'm in!
[addsig]
Posted by SilentStrike on 07:31:00 01-14-2002
4D AI?

What's the bot gonna be like?

I am not much interested in participating in the project, as I've got a project of my own to work on, but I don't think IRC is the greatest medium for visual display (as shown by the 4D comment).

[ This Message was edited by: SilentStrike on 2002-01-14 10:57 ]
Posted by Peter on 07:38:00 01-14-2002
I think that the IRC layer could be added later, as I guess the AI is of main importance. Of course, with IRC support already implemented, everybody could test it and see the progress...

However we might want to work out the AI structure first.
Posted by IbYdI on 11:27:00 01-14-2002

Im willy to help with the AI structure.
As Peter said thats most important.
Posted by IbYdI on 11:33:00 01-14-2002

I just want to add that LISP is the programming language made for AI, so we may also consider using it for the main part.
Posted by fsvara on 12:18:00 01-14-2002
the problem with lisp is that (almost) nobody here knows it.

as for irc support, i think you should use an IRC lib in the beginning that provides you with all the functions you need, so you can concentrate on the AI proper in the beginning... You can later replace the irc lib with something of your own later on. I believe IRC is a great thing for a semi-intelligent bot, as it can learn from thousands of people on the chans...
Posted by IbYdI on 12:23:00 01-14-2002

why not learn lisp? it would be much easyer to program some parts...(backtracking???)
Posted by KaGez on 12:28:00 01-14-2002
tell us some good reasons and we could think about it ... nobody would buy a icecream just because you like it and don't tell them about it
Tell us about it, or give us liks to look at (the ones you think are good for LISP newbies), or give us some good reasons for learning it. I think that will make the ppls think a bit much instead of just posting like "no, why should I?"
[addsig]
Posted by IbYdI on 12:50:00 01-14-2002
KaGez you're right.
LISP is a programming language developed in 1970's specialy for artificial inteligence.
The langugage isn't like c++ or vb or pascal or assembler or anything else you have programmed with.
Like i said the programming techniques are also different, but they are suitable for AI, because lisp programs makes decisions.

Now i dont know lisp (but i do know prolog a bit).
But if we reach an agreement to do some parts of the ai program (the most important parts) in lisp, then im willy to learn it. (and if we do reach that agreement then i wont be alone thats for sure)

so if theres anyone interested...
Posted by fabs on 13:43:00 01-14-2002
You know, it's not that I'm not interested or anything, and learning LISP sounds great, but I am just missing the time and that is no cheap excuse. Besides from school, I have a couple of projects running which are screaming to be finished. I think I have covered myself with so much work, the nearest time I will be available is gonna be in may or june.

I totally love AI and one of my projects (my favourite ) involves AI. I have basically finished the bot just that it still needs a GUI and data. Well, that all sounds weird, if you don't know what the program is anyway, but I have decided not to release an unfinished version yet eventhough about 10 pages of documentation are written covering why I think this is a special little AI

So, to wrap it up, please keep me informed about the project. I'm sorry to say though, that I wont be able to join it for now.

fabs

[ This Message was edited by: fabs on 2002-01-14 13:44 ]
Posted by KaGez on 13:43:00 01-14-2002
aha, now I've got a little bit more of the idea what lisp is, and if it's good I'm also willing to learn it, no matter if we use it for the AI or not. That is, if it's useable also for other things than AI, and if it isn't too complicated. I need efficient programming languages
I'll research a bit about lisp in the next days
[addsig]
Posted by IbYdI on 14:04:00 01-14-2002

KaGez thats great.
ill do it too, and well if youre interested maybe we could stay in touch?

Posted by KaGez on 14:10:00 01-14-2002
ok, sure
but I'm not sure how fast my research stuff will go on, since I have school from 8:00-15:30 (some days even 16:40), and I have 1 hour way to go home. Hafta do Homework etc. and I'm also working on my OpenGL terrain fractal. Won't probably go on too fast, but I will gather some infos
[addsig]
Posted by IbYdI on 14:15:00 01-14-2002
it's ok.
we dont have to run anywhere.
i also have school and everything + i play in a band, but important is that we have the will, and in few months we'll be making good stuff with lisp.

To others : In Lisp you can programm things that are almost impossible to do in c++... So Think About It


[ This Message was edited by: IbYdI on 2002-01-14 14:17 ]
Posted by nonama on 16:19:00 01-14-2002
I think that lisp seems a best idea for now. If you have other offers, say them. About irc. Irc is best place to learn. +making ai as console program for one person would stop his progres. It would become app for one pc, oner user. all he knows would be heard from that user. In irc it would not have moulded character by one person, it would have character by ethical norms accepted in internet chat comunities.
Posted by IbYdI on 20:02:00 01-14-2002
Prolog/Lisp/C/C++

Prolog (Programming In Logic) is a very powerfull language. I know to work in prolog a bit, And I also think that it is easy to learn.
It uses deduction in order to make decisions. It can compile programms... But It doesnt guess

So the question is should we use prolog or lisp for the main part. (i have Visual Prolog which can be downloaded for free).

i also think that we should use c++ for the interface...

So we must :
1. get together and decide which language should we use.
2. when we decide that, we start learning the language but we do it together .
3. then we start design-ing
4. then coding

Posted by KaGez on 05:43:00 01-15-2002
one Q...
what do you exactly mean with "design-ing" ? :/
[addsig]
Posted by IbYdI on 12:47:00 01-15-2002

design-ing = planing
Posted by KaGez on 13:05:00 01-15-2002
aha, thx

so, does anybody else have some ideas? it looks like IbYdI and I got pretty alone in here, so tell us what you think =)
[addsig]
Posted by fsvara on 15:01:00 01-15-2002
I'd say come to the chan... Some of the early design decisions should be taken.. well, before the coding starts
Posted by IbYdI on 15:32:00 01-15-2002

we have to know who is interested,
and then we have to do a bit of chat discussion before we even start anything.

so anybody interested?
Posted by fsvara on 17:19:00 01-15-2002
I am interested.. i don't know if i'm gonna code, but I sure will help discuss the design and support the effort
Posted by Peter on 17:33:00 01-15-2002
I'm interested. However, I don't know how actively I can participate, that will entirely depend on how fast you want this done.

Because: a) I probably don't have enough knowledge for this and I have yet to aquire it
and
b) I don't have a lot of time.

We need to determite what skills will be needed for the project, and what skills we presently have.
Posted by KaGez on 13:02:00 01-16-2002
ok, I'll make my self clear:
I've seen a bit of prolog code yesterday, and to be honest I thought that I don't want to learn that language. So, I'll only participate in the project if it is done in C/C++, or some more "normal" (look at prolog code and you know what I mean ) language like Perl or something.
[addsig]
Posted by bpt on 05:58:00 02-18-2002
Quote:
On 2002-01-14 12:50, IbYdI wrote:
KaGez you're right.
LISP is a programming language developed in 1970's specialy for artificial inteligence.

No, Lisp is a family of programming languages, beginning with LISP 1.5 at MIT in the 1950s. It was not made especially for AI---it is a general purpose language that can be used for anything (yes, anything, and well, too---learn about the Lisp Machines), but is particularly distinguished from other languages by its capability for reflection, functional and applicative programming, and symbolic programming. (Common Lisp, ZetaLisp, EuLisp, and others also have object systems that are much more flexible than C++'s or Java's.) However, AI, practically, requires a reflective symbolic language, meaning that only most Lisp dialects, Smalltalk, O'Caml, and a small number of other languages are really appropriate for AI work.
]
Quote:
The langugage isn't like c++ or vb or pascal or assembler or anything else you have programmed with.
Like i said the programming techniques are also different, but they are suitable for AI, because lisp programs makes decisions.

Hmm. I don't agree with this exact analysis, but it is true that Lisp is multiparadigm and that most Lisp programmers do not program imperatively, and that Lisp has a certain set of characteristics that make it one of just a few languages truly suitable for real AI work.

Quote:
Now i dont know lisp (but i do know prolog a bit).
But if we reach an agreement to do some parts of the ai program (the most important parts) in lisp, then im willy to learn it. (and if we do reach that agreement then i wont be alone thats for sure)

so if theres anyone interested...

I know Lisp (I primarily use Common Lisp, but also know several other dialects), and will write a tutorial if there is any interest.
Posted by bpt on 06:06:00 02-18-2002
Quote:
On 2002-01-14 11:33, IbYdI wrote:

I just want to add that LISP is the programming language made for AI, so we may also consider using it for the main part.

Wrong. Lisp (a family of languages, as described in another post) is a general-purpose language intended as such, has shown itself to be more flexible and powerful than C in the past (see the Lisp Machines), is reflective, and is multiparadigm. There is statistically significant data demonstrating that Lisp increases developer productivity over Java, C++, and some other language. Lisp makes it easy to create domain-specific minilanguages with some trivial macrology and possibly some new data types (types, classes, metaclasses, or whatever---all integrated). These features combine to make Lisp extremely suitable for almost all tasks, including AI. Incidentally, Lisp already has networking, IRC, GUI, persistance (even orthogonal persistance!! yes, Lisp really is that reflective) and many other libraries, all cross platform (the GUI library, CLIM, is both totally cross-platform and standardized).

(`Lisp' in this post is usually referring to the Common Lisp dialect in particular.)
Posted by Peter on 07:37:00 02-18-2002
bpt: a tutorial would certainly be appreciated I think.
Posted by IbYdI on 13:03:00 02-18-2002
btp :
yes write the tut.
and just one thing:
why do you say that im wrong, and then explain why im wrong, but at the end it all points to the same direction?

[ This Message was edited by: IbYdI on 2002-02-18 13:08 ]
Posted by bpt on 01:43:00 02-19-2002
Quote:
On 2002-02-18 13:03, IbYdI wrote:
btp :
yes write the tut.
and just one thing:
why do you say that im wrong, and then explain why im wrong, but at the end it all points to the same direction?

[ This Message was edited by: IbYdI on 2002-02-18 13:08 ]

Because, though you are correct that Lisp would almost certainly be most appropriate for this type of project (O'Caml, Haskell, Forth, and Smalltalk are other good candidates), it is very incorrect that Lisp is an AI language, that Lisp was invented for AI, etc. That sort of opinion is why Lisp lost a lot of credibility in the AI Winter in the late 1980s---people realized that real AI was not going to be possible for the next half-century (at least!), and the AI companies and researchers all pointed at Lisp, and people believed them. Lisp is good for AI because it is more general-purpose than almost all other languages, because it is reflective and can therefore support multiple paradigms, including symbolic programming. (There aren't bizarre restrictions on how the paradigms can be implied, either---any style of programming possible in Lisp can be used pretty much anywhere.) Probably the one thing most harmful to Lisp is the idea that is it an ``AI language'', when it is really appropriate for AI only because it is a highly reflective, very general-purpose language. Your conclusion is correct but your premise for the conclusion is not. (BTW, I don't agree with Machiavelli )
Posted by bpt on 02:13:00 02-19-2002
I didn't mean that last post to sound as harsh as it did; sorry.
Posted by nonama on 19:48:00 02-19-2002
i thought that rob_ert is a mashine. but i was wrong robert is only 186 comparing with BTP. he's alive enciclopeadia.


aurimas
Posted by Peter on 07:16:00 02-20-2002
I hope he'll explain all those terms as an encyclopedia should ..
Posted by KaGez on 12:48:00 02-20-2002
let's hope so, really :/
[addsig]
Posted by bpt on 05:44:00 02-22-2002
Quote:
On 2002-02-19 14:34, fsvara wrote:
could you explain what all that stuff you are talking about (ie. orthogonal langauges, symbloic programming, reflection et al) are?

as i said eralier, most people here havent studied computer science and would still like to follow your posts

Persistance is the ability of objects to survive---persist---between invocations of a program. Orthogonal persistance means that you don't need to explicitly use, say, PERSIST and RESTORE functions, but that persistance ``just works'' once an object is declared to be persistant. Example from the PLOB! WWW site (= Persistant Lisp Objects!, <URL:http://plob.sf.net>):

(defclass person ()
((name :initarg :name :index (btree :test :equal)))
(:metaclass persistant-metaclass))
(setq #!*a-person*
(make-instance 'person :name "Kirschke"))
(setq #!some-string "A persistant string.")
;; 30 years and 14000 Lisp processes later
(print #!some-string)
;; prints "A persistant string."


Self-<whatever> usually implies reflection. The main forms of it are self-modification and self-inspection. Meta-programming (including macros in Lisp) is an example of reflection.


[ This Message was edited by: bpt on 2002-02-23 23:04 ]
Posted by fsvara on 13:08:00 02-22-2002
hm, and when does the computer "forget" the persistent stuff? i mean, if it _always_ keeps it somewhere, you'll eventually fill your entire HD with persistent strings and stuff, right?
Posted by KaGez on 15:28:00 02-22-2002
hm... good that I'm not the only one who doesn't understand him
[addsig]
Posted by nonama on 18:30:00 02-22-2002
i doubt that anyone could understand him....

Posted by bpt on 21:43:00 02-22-2002
Quote:
On 2002-02-22 13:08, fsvara wrote:
hm, and when does the computer "forget" the persistent stuff? i mean, if it _always_ keeps it somewhere, you'll eventually fill your entire HD with persistent strings and stuff, right?

When it's garbage collected.