Tuesday, October 16, 2007

Why poll the hoi polloi?

Spent a wee while tonight adding a little common sense (and self reference) to the Open Mind Commons.

I've been reading around and about it for quite a while now, and even went so far as to download version 2.1 about a year and a half ago. Never got a lot further than that with programming it but I kept a-reading and a-wondering, and tonight's excursion to their wiki brought my few doubts to the fore.

Not forgetting that this is ostensibly a project designed to gather "the basic things about the world we consider common sense", I was kinda surprised to find they lacked entries for such as "0", "1", "one", "I", ... It would seem that fundamental is not the same as basic.

One of their papers compared ConceptNet (which is based on Open Mind Commons) favourably with Hofstadter and Mitchell's CopyCat, on the grounds that it was more flexible. But the latter does have the advantage of covering the fundamental concepts comprehensively (albeit while adhering to the acadmic disregard for scalability).

Back on the Open Mind Commons site I also found the structure mitigated severely against distinguishing between "Python" (a language) and "a python" (a snake).

No single paradigm will ever be a sufficient substitute for Natural Intelligence, and ignoring "concept types" (or "connection types") in favour of simple "spreading activation from nodes" seems wrong to me. (OK, ok, so I like dynamically-typed languages, but not weakly typed ones.)

To my wee mind this is a more significant drawback on ConceptNet (and many of its connectionist friends) than the lack of fundamental concepts. A good editor can add in "0" and "1", but there is something else missing from ConceptNet round about the level of programming "types". There is a strange loop that might be added from Copycat: semantics is not just strength of association. This lack is most apparent in Metafor, which is a Natural Langauge Programming framework based on ConceptNet: it can only build programming outlines. It will turn "the barman served a drink" into "barman.serve(drink)", but it can say nothing about when that method should be called, and less about what goes in the method. Even if the method derives from "the abacus averaged the answer".

"Similar" and "opposite" are not similar concepts, they are opposite concepts. I do not see how the ConceptNet paradigm can capture that fact - there is no way to apply (some of) the ConceptNet's concepts to the net. Of course, again, that just needs a good editor, but this time the editor needs to be a good programmer, and if (s)he's that good - what was they point in the commons - why not just start with the experts, as Cyc did?

It would seem their trumpeted advantage of being a site where you can help to construct the corpus of common sense may also be their Achilles heel. Then again that's always been the problem with common sense: it's just so, well ... common.

These are, however, not really arguments against what looks like a fine tool (or set of tools), just a reminder that there are no silver bullets: no need to throw out the well-honed search techniques just because we can add some "common sense".

Related only through Google:

How can anyone disparage the concept of "Natural Language Programming" simply because it is based on an "implicit, ambiguous language", which is so unlike their "standard languages such as C++"? (So defective that it is used to specify them.)

And still believe that nerds can capture the richness of human emotion and humour in WWW pages while using a language based on XML (which is, of course, not the answer)?

As they say in the movies: "You're a sick fuck, Fink"

Labels: , , , , , , , , ,


Post a Comment

Links to this post:

Create a Link

<< Home