Tuesday, December 4, 2007

Stumbling upon something new

We are turning some good cranks on that Rubik's cube.

From the start of the PhD course we had wanted to publish everything on, the slides, and slidecasts of the whole thing. But at one point these last weeks a real dilemma came up. What we were talking about, and doing, and seeing it run on the screen, was new. Something that most likely has not been done before, and that, if the underlying philosophical premises are correct, might have quite an impact in both computer science and cognitive science.

My mind goes like this: what to do with it? Publish the classes, as the original plan called for? Publish as a series of papers? Get a PhD candidate to work on it and see what's up? Write up a patent? If we're correct than it could potentially have wide applicability.

I think we made an advance on what we've called autoprogramming before. So I'm on Jekyll-and-Hyde mode on this one.

And the thing is... I think there's more. I think that there's another important idea clearing up... something like "concept-oriented programming"... or maybe "encapsulating object encapsulation". Just to give a glimpse of the idea: in language and cognition we use analogy all the time, of course. But how can we say that "that lawyer is a vampire", that "if independent, Quebec will become a small boat in a big storm", or something I said the other day, that "I really hope that Dr "dude" Lisi is a new Einstein. We really need a new Einstein."

In Object-oriented programming, objects have state and interfaces. But in human concepts, we apply the interfaces and properties and relations that belong to one class to almost anything else. A Canadian state becomes a boat, a lawyer becomes a fantastic figure dreamed up in novels, someone becomes an "Einstein".

How can we design classes and objects that reflect this? Even with polymorphism, inheritance and all that OO-goodness, it seems far-fetched. But I think we're stumbling on the answer. And it is beautiful. This week I'm designing the blueprint & requirements, and I hope to have a proof-of-concept (pun intended) by next week.

There's a parallel here with what Garret Lisi says about his work: either our model will be extremely simple and elegant, or it will fail spectacularly. While neither Jekyll nor Hyde wins the fight, we can't say much for now.

In the meantime, feel free to check out the possible theory of everything in the universe below.

2 comments:

Anonymous said...

Classes and Objects? You mean, hammers,nails, wood and saws? For me it seems some 24 (if not 42) levels BELOW the level which is actually required. And what is required is "FLUID infrastructure". Again: Deleuze has written some 40 years ago about abstraction, coming from Leibniz (you know, the guy who mentioned to create a thinking machine by means of combinatorics;)

happy day!

Alexandre Linhares said...

I mean classes and objects in the computer programming sense. It seems that the philosophical doctrine of metaphysical realism has dominated the field, and it has in many other fields. This poses a metaphysics in which a set of objects, properties, and relations exist outside of any understanding. So an object has a fixed set of properties and relations. For example, DNA is a molecule with particular the properties and relations stemming from the laws of Physics and Chemistry.

However, when we say that DNA is like a computer program, or that DNA is like the blueprint of life, or DNA is like a staircase, or DNA is like a zipper, something cognitively important is going on.

We are transferring some properties and relations to a molecule, from semantically distinct stuff. So how can something that has properties and relations far outside the realm of chemistry transfer these to a molecule? This is what we are working on, the very basic infrastructure in which computer programs may be able to acquire these, based on contextual information. FARG does this in copycat, tabletop, letter spirit, phaeaco, and so on. But only to a certain extent, and in a way in which I view as very ad-hoc. Case by case.

I think we found a beautiful way to do it, and that, if we are correct, it will be at least 50% easier to build new farg architectures.

We'll have more about this soon.