I’ve been talking to various people about the ideas expressed in my last post on computational linguistics. It seems that most people recognize the problems I talked about, but do not draw equally pessimistic conclusions from them. A few interesting points have been brought up. One of them is a possible analogy to the relation between the mind and the brain, using the image of a computer: The brain is the hardware, and the mind is the software, which runs on it. If that analogy is accurate, then we could claim that the mind is basically something like the following algorithm:


while (true) {
	rawData = nerves.readRawData();
	data = patternRecognizer.analyze(rawData);
	store(data, memory);
	conclusions = logicUnit.drawConclusions(memory);
	store(conclusions, memory);
	reactions = judgingModule.calculateReactions(memory);
	send(reactions.getSignals(), nerves);
}

It’s just an infinite loop, that cycles through three steps: Read data from nerves, process data, and send output to nerves. That doesn’t sound like it’s hard to implement, does it? But is that really all our minds do? Does the algorithm cover all ascpects of what’s going on in our minds?

A second point that has been brought to my attention is that it might be possible to get some sort of semantics by using a computer to simulate not just a single speaking agent, but to simulate a complete world inside the computer, and put some agents in it that talk about this simulated world. These agents could of course mean things in the simulated world, since the agents and the things all belong to the same domain, all inside the computer. Of course, they could still not talk about the real world, but that does not matter, because at that point, you are only concerned with the simulated world. So that would be the ideal way to experiment with language learning etc. in a “snow globe” environment. The idea originated apparently in KI-research, where it had become obvious that it could often be more rewarding not to work on real-life robots, but to use simulated robots interacting with a simulated world.

So one of the conclusions I’ve come to so far is that computational linguists are currently somewhat off the track, because they attempt really fancy stuff like syntactical parsing etc., but they completely ignore semantics. In my view, computational linguists should approach the problems differently: They should start out with artificial intelligence and try to model basic requirements like cognition and (primitive) language learning. Semantics should be a central focus from the beginning. Once that is achieved (but only then!), they could proceed to model the more complex aspects of a language, like its morphological or syntactical structure.

Thanks for everyone who commented and showed willingness to discuss these issues with me!