Hello. I've been an amateur a.i. researcher for a half a year now and I've had personal computing and electronics experience for nine years. I post at ai-forum.org under the same user name. My favored area of a.i. research is the child machine hypothesis. As I'm sure many of you know, Alan Turing hypothesized that the first a.i. would not be instantaneously intelligent, but would have to learn much like human children do.
My most recent and only project related to a.i. at the moment is an attempt to build a general purpose desktop strong a.i. program. After a period of forming my conceptual model of intelligence, and working with a language that would not allow me to quickly begin building the program, I believe I've finally found a good language to begin building the program with. I'm working with AutoHotkey, a scripting language capable of performing high level Windows actions.
Very early I realized that the a.i. to be truly effective would need to be able to sense and interact with its environment well. Other languages can provide this functionality, but require a large amount of programming and work with the Windows API. AutoHotkey can reduce this functionality to one line of code. It can simulate user input, has disk i/o, gui functionality, internet access capabilities, direct memory access, system messaging, dll calls, and even a basic image recognition function. Upon seeing the abilities of this language, I instantly thought that this would be exactly the language I needed to build an a.i.
To make things even better for me, AutoHotkey is a dynamic language. Dynamic function calls, typeless variables, variable parameters, and the ability to directly use the contents of a variable as a variable itself all make AutoHotkey a flexible language. It seems ideal for emulating the mind, which is dynamic rather than static.
At the moment my program revolves around four major components.
1) The a.i. agent itself. This portion of the program is intended to emulate human cognitive abilities as closely as possible. It's scope is restricted to performing actions that the human brain does. It operates on a message system that treats messages much as the brain treats electrical impulses. It can send messages to other modules to perform actions, receive messages from sensor programs/apparatus, and transmit messages to and from thought processes.
2) The a.i. manager system. Very quickly I realized that a user might want to have multiple a.i.'s running at once. He or she might also want each one to be uniquely identifiable so each one can be responsible for its own individual task. I couldn't know in advance how many a.i.'s each user would want, and it would be inconvenient for them to create each one themselves. So a dynamic system is needed. The basic function of this system is to assign a unique identifier to an a.i. when one is started, and ensure that any associated operations go to only that a.i. This system might have additional functionality later on such as being the control interface between the a.i. system and the user and providing an interface between the security system and the a.i.
3) Environment interface modules. This system is the vehicle by which the a.i. interacts with the user. Obtains data from the computing environment, and interacts with the computing environment. The major benefits -but not the only benefits - of this organization is that it allows multiple input/output operations to work in parallel (simulated in a single processor(core) environment or actual in a multiple processor environment), and it closely emulates human environmental action (in which signals come in and/or go out via the central nervous system, optic nerve, and auditory nerve).
4) Security module. Responsible for ensuring that an a.i. does not go rogue and protecting the user, computer, and other systems from harm from an a.i. if it does go rogue. I haven't considered/conceptualized this module as much as the others, because let's face it, the other modules are more exciting. However, this will be an essential system before the a.i. can be used with high level instructions and released to the general public. Some systems I've considered are file and process protection options for the user to block a.i. access, a.i. program reprogramming/tampering protection to prevent the a.i./malicious users from modifying the security code, and a.i. system dependency, by which the security system computes a unique value based upon computer settings and if the internal setting doesn't match the actual setting, it terminates the a.i. (This would prevent the silent spread of the a.i. A user would have to willingly install it or update it if components changed.)
I really don't know if it will work or not, but I think it's worth trying. I'm just here looking for a place to have good discussions about a.i. and maybe get some help and give some help. So thanks for reading if you did or OK if tl;dr. Hope I get a good welcome!