I would like to expand upon the final sentences of WntrMute's excellent write-up by emphasising an often overlooked point. The point is raised in these conclusing remarks:

These solutions have thus far been limited both in their scalability and their interaction with each other- which isn't helped by deep divisions within the AI community as to which methods are best; divisions which are ultimately pointless if it turns out that all these ideas need to be applied together to create a superior whole- but this should not diminish the results that have already been seen.

One failing of Artificial Intelligence which is slowly being recognised by the field is that most techniques have been developed in isolation (e.g. planning, vision and learning). Researchers typically separate a sub-problem off from the uber-problem then develop a novel method of solving it. Problems are picked based on current fads and trends in AI (e.g. has anyone tried solving this with evolutionary computation yet?), the likelihood of funding bodies being interested in the technique or problems (e.g. can we use it to blow things up?), or a variety of other reasons. This approach was initially taken by researchers because the big problem was too big. It has been sustained because of a messy mixture of tradition, laziness, intellectual bigotry, and of course because the big problem is still too big.

Creating an artifact with the intelligence of a 4 year old will require the application of not just one AI technique, but a whole interacting cognitive architecture of them. Every module in this architecture must work together with the other modules, providing and receiving information. A great example of this is the task of vision. An artificial vision system must work not only from the bottom up (recognising edges, surfaces etc.) but from the top down (looking for particular objects, resolving conflicts in ambiguous images). Knowledge used for the top-down parts of vision may come from memories of the scene being viewed, expectations of what should be seen, priming, and other sources. Not only must an artificial vision system provide information about the artifact's surroundings to some core processing modules, it must also give feedback to any effectors possessed by the artifact, and provide early warnings of danger (possibly unconciously).

As the above example shows, a module in a cognitive architecture must do more than process a single input to provide an output. It must function asynchronously and in parallel with many other components. Its inputs are dependant on other such modules and its outputs may feed back into these whilst effecting the behaviour of yet more modules.

The majority of AI research in the past 30 years or so has ignored this. This is a major reason why no single technique has really made strides towards solving the problem AI is famous for. It is easy to highlight the limitations of AI when every solution to a small problem is viewed as an attempt at solving the big one. That said, the failure to address architectural issues is a very real limitation on the state of the art, and one that must be addressed for the field to start making real progress.