What would motivate you to put work into an AGI project?

1) A reasonable point of entry into the project

2) The project would need to be FOSS, or at least communally owned. (FOSS for preference.) I've had a few bad experiences where the project leader ended up taking everything, and don't intend to have another.

3) The project would need to be adopting a multiplex approach. I don't believe in single solutions. AI needs to represent things in multiple ways, and to deal with those ways in quasi-independent channels. My general separation is: Goals (desired end states), Desires (desired next states), Models, and logic. I recognize that everything is addressed by a mixture of these approaches...but people seem to use VERY different mixtures (both from person to person and in the same person from situation to situation).

4) I'd need to have a belief that the project had a sparkplug. Otherwise I might as well keep fumbling around on my own. Projects need someone to inspire the troops.

5) There would need to be some way to communicate with the others on the project that didn't involve going to a restaurant. (I'm on a diet, and going to restaurants frequently is a really BAD idea.) (N.B.: One project I briefly joined had a chat list...which might have worked well if it had actually been the means of communication. Turned out that the "inner circle" met frequently at a restaurant and rarely visited the chat room. But I think a mailing list or a newsgroup is a better choice anyway. [The project was successful, but I think that the members on the chat group were mainly a diversion from the actual work of the project.])

6) Things would need to be reasonably documented. This comes in lots of forms, but for a work in progress there's a lot to be said for comments inserted into the code itself, and automatically extracted to create documentation. (Otherwise I prefer the form that Python uses...but nobody else does that as well.)

7) LANGUAGES: Using a language that I felt not completely unsuitable. After LOTS of searching I've more or less settled on Java as the only wide-spread language with decent library support that can run distributed systems with reasonable efficiency. There are many other contenders (e.g., C, C++, Fortran, Alice, Erlang, and D each have their points), and I don't really *like* Java, but Java, C, and C++ appear to be the only widely used languages that have the ability to run across a multi-processor with reasonable efficiency. (And even there the techniques used can hardly be called widespread.) 7a) Actually C and C++ can be suitable if there are appropriate libraries to handle such things as garbage collection, and protocols for how to save persistent data and then remember it later. But I still don't like the way they make free use of wild pointers. 7b) I wonder to what extent the entire project needs to be in the same language. This does make understanding things easier, as long as it's small enough that someone can understand everything at a low level, or if the entity should ever want to understand itself. But there are plausible arguments for writing things in a rapid development language, such as Python or Ruby, and then only translating the routines that later need to be translated for efficiency. (If only those languages could execute across multiple processors!)

-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?member_id=231415&user_secret=fabd7936

Reply via email to