Plot-Whither

Posted April 24, 2008 by Michael
Categories: Architecture, Author: Michael Roberts

This week, the Spirit moved me to dig through the boxes of books still unpacked from our move down here from Bloomington, and so I’ve been reading Fluid Concepts and Creative Analogies again — since I’ve just started, I’ve been thinking about Seek-Whence and its domain.

Naturally, my mind turned to the representation of the concepts involved. My last burst of creative energy with Copycopycat’s Slipnet and definitional language got bogged down when I started thinking more seriously about the conceptual structure of the Copycat domain, because the conceptual structure is, of course, the Hard Part. And while reading about Seek-Whence I realized that part of the reason it’s the Hard Part is that it’s not done yet — that is to say, when putting together Copycopycat, I’m trying to do two things at once. First, I’m trying to build a FARGitecture based on my notion of conceptual structure. But secondly, I’m trying to do so in a perceptual context.

Well, perception is hard. Maybe, I realized, it would be easier if I already had some of the mechanics of the whole conceptual structure thing done.

So. In writing about Seek-Whence, Doug (as is his wont) demonstrates a whole list of sequences which are part of the domain. And he mentions in passing (as is his wont) that representing the template for a sequence is kind of tricky.

Well, yeah. It’s tricky because it’s fundamental to cognition, this breaking down of the world into semantic units we can manipulate. Along the way, we use powerful perceptual and analogy-making tools, and those are cognition per se, but without that basic set of mechanisms, it’s all too big a chunk to bite off. Or so I posit.

This morning, though, I had an interesting notion: what if, instead of trying to do everything at once in the creation of a new conceptually-based FARGitectural variant, I were simply to try to come up with some semantic units which could be used to model — to think about — sequences in the Seek-Whence domain? Not to worry about how they get there (yet), just … build them by hand and try to do something with them.

But if that’s the task, the “do something with them” just leaps out, doesn’t it? Well, two somethings: the “easy” one — which is to take a semantic sequence structure and generate terms in the sequence using whatever arithmetic tools seem appropriate — and the “good” one. Which is to do variants on a theme.

The name of this project is equally obvious: Plot-Whither.

Now if I can only get the Muse interested …

Open sourcing a slipnet viewer!

Posted April 19, 2008 by Alex Linhares
Categories: Architecture, Author: Alexandre Linhares, General

(This page will be updated with further details as soon as soon as possible; I am setting up the repository asap)

Hello world!

After reading this fantastic book and playing with this, I think one good way to proceed is to open-source some parts of a FARG framework which are not at its core, but are extremely useful and everyone could benefit from them.

I’m thinking first about a slipnet viewer. A java class that receives a list of nodes and links, and creates a nice view of the ongoing slipnet at any point in time. A node might consist of its activation levels and a bitmap to display inside the node (sometimes we may want to display something other than a string), while a link might include just the nodes it connects, (perhaps) a direction, and a string (to show up distances and for those with IS-A beliefs). It is a good tool for debugging and for propaganda purposes.

The class would get this information and create another bitmap, now with a beautiful view of the current slipnet: close nodes appear close to each other, distant nodes appear distant, and their activity levels are displayed. From my past life in combinatorial optimization, I have a hunch that this is NP-hard, so we may be resorting to some heuristic that works.

It should be in java, to run in everybody’s machine, and also because everyone knows java and could either make a call to it from their own weirdo language or rewrite the code for their project.

In this initial stage, no windows or anything fancy should be done. Just get the data in and output a bitmap with the slipnet. But if our collaboration works, we could go bigger, triggering a window in a new thread and having a great display running in true parallel style. That would, I think, be a first step that everyone would benefit from.

This is small stuff, of course, but it’s annoying to redo it everyday in every single project. It takes some time to do, and distracts from the core issues. Our productivity will rise. So, as Micheal Roberts once said, instead of having “obsessive geniuses” working under the basement, we should finally stop doing the same things over and over again. We should finally start collaborating like a small research group.

Or as a start-up company.

Lorenz

Posted April 18, 2008 by Eric N.
Categories: Author: Eric Nichols

LorenzI assume you all saw the obituary for Edward Lorenz, but here’s a little article from the New York Times.

Three of the main things that made me excited about science when I was a kid were AI, music composition, and chaos theory — the last one thanks to Gleick’s book. Indeed, just after I typed the period on the previous sentence, I tried to think of how to wrap up this little post, and focused my eyes behind the monitor onto my bookshelf a few feet behind it. Immediately, “James Gleick — Chaos” came into focus, sitting front and center in my shelf of my favorite books. That was totally unexpected, but it’s a nice example of how important Lorenz’s discovery was for me.

We’ll miss you Lorenz!

The Bonnie & Clyde Microdomain

Posted April 6, 2008 by Alex Linhares
Categories: Author: Alexandre Linhares

Tags:

In rereading parts of Harry’s thesis, I came up with what I think is a rather interesting domain to make first experiments with the ongoing framework… I’m calling it “the Bonnie & Clyde Microdomain” for obvious reasons.

Can you spot the two outliers? What is the justification for their outlier status? Here are some problems:
==
Problem 1
1
1
1
0
1
1
1
1
1
1
1
0

==
Problem 2
222
99
132
1
128
76
4
54
68
302
298
305

==
Problem 3
9
5+5
5×2
100/10
13-3
8+4
101-99+8
18×2-26
1+2+3+4
1x2x3+4
10-6+2×2
9+7-6

==
Problem 4
6/2
10/5
20/2
18/6
99/3
17/17
0/5
3/0
4/2
28/0
1/1
9/3

==
Problem 5
1+1+1
2x2x2
7/7-6
3×2+4
2+2
4+6-1
8x8x8
9-1×7
3×4+7
(40/5)/2
3x3x4x1
1+2+3

==
Problem 6
5+1
2/20
1+5
16×3
9+4
1-0
3+1
3×16
5×8
4+9
8×5
20/2

==
Problem 7
10+3
28/2-1
3+1+9
11+1+1
13×1+0
28/2-1
6×2+1
30/3+3
3×3+3+3/3
3×3+3
2x4x2
4×3+1

==
Problem 8
9-4
16×2
7+8
5+18
8+7
4-9
2×16
18+5
23×8
1+4
8×23
4+1

==
Problem 9
5+(3x(2+1))
5+(3x(2-1))
(5+3)x(2-1)-3×3
3x(8+(2x(3-2)))
17x(9/(6-3))
4+(4x(2+2))
2x(5-(2×2))
7+(2x(2+3))
64/(2x(15+17))
2x(1/(19/19))
9×9-8×7
5x(2/(9-7))

==
Problem 10
10
3x(5×2)
20/(5+5)
30/(8+2)
7/(3+4)
20/(20/2)
9x(9+1)
9x(9+2)
9+100/10
2×60/6
8x(6+4)
20/(3+7)

==
Problem 11
1+1+1
1x1x1
2x4x2
2x7x9
9x8x5
7x7x7
9-2×3
4x2x7
8x6x2
6x6x6
2x4x8
5x2x1

==
Problem 12
1+1+1+1+1+1+1+1
4+6+3+2
1+1
2+2
6+2+5+8+3+5+2
1×1
7+7+3
10+10
35-5
7+2+1
4+4+2+4
9+8

==
Problem 13
1+2+3
1x2x3
3+2+1
(1/1)+(4/2)+(9/3)
(1)+(1+1)+(1+1+1)
(((8/2)/2)/2)+(((8-2)-2)-2)+((8/2)-(2/2))
(17/17)+(56536/28268)+((17/17)+(56536/28268))
(3/3)+(3-(3/3))+3
(2/2)+2+(2+(2/2))
(4-3)+(4-2)+(4-1)
(6/6)+(6/3)+(6/2)
(1×1)+(1×2)+(1×3)

==
Problem 14
2×100+22
9×10+9
6×10+4
15×10+1
1×1+1
12×10+8
10×17+6
3+3x3x3
42×10
31×11
29×10+8
66

==
Problem 15
222
99
131
4
128
56
0
44
48
300
298
301

==
Problem 16
452
217
111
245
362
64
329
837
757
939
637
1223

==
Problem 17
222
99
131
1
128
76
4
54
68
302
298
305

NOTE: I’ll keep updating this page with small corrections and new problems. For example, Doug got the original problem 2 right on, but most answers I received weren’t on spot. That was because the original problem would only give you a vague ‘feeling’ for the outliers–and most people would not trust that feeling and go for something completely different. Doug is a Bongard problem solver and designer, of course, so his view is very sharp about ‘vague’ feelings (if this makes sense to you). I remember a BP he designed with “kind-of-small-but-not-really-small triangles versus kind-of-large-but-not-really-large triangles”. If we’re later going to test these on people, most people won’t find the “only true” outliers and suggest something crazy. (The original problem 2 is now problem 15.)

I think this domain might help us to develop slipnets that self-adjust without having to define IS-A links, or handcoded distances between links (see, for instance, chapter 6 of Harry’s thesis).

I would love (tentative) answers (with a brief justification); and perhaps suggestions of new problem sets?

By the way, one of the problem sets is, in itself, an outlier. And another has two clear answers, even though people focus on only one. Can you spot them?

An Illustration to the MusiCat project

Posted April 4, 2008 by Anett M. Czeglédi
Categories: Author: Anett M. Czeglédi

An Illustration to the MusiCat project
My Carthusian cat playing on a Hungarian folk zither.

His sequence patterns are remarkable! – it took me a helluva long time to train him 😀

That’s some distributed temperature right there, Dude!

Posted March 31, 2008 by Alex Linhares
Categories: Architecture, Author: Alexandre Linhares

Tags:

I’ve been thinking about massively parallel FARG, distributed temperature, and distributed coderacks:

Now, whenever a codelet is about to change something up, why add it to the global, central, unique, coderack? I don’t see a good reason here, besides the “that’s what we’ve always done” one. If a codelet is about to change some structures in STM, why not have (i) a list (or a set, or a collection, etc.) of structures under question & (ii) create a list-subordinated coderack on the fly? Instead of throwing codelets into a central repository, they go directly to the places in which they were deemed necessary. There are multiple repositories for codelets, multiple coderacks.

I argued that I liked the idea because (i) it enables parallelism of the true variety, (ii) it helps us to solve the stale codelets issue, and (iii) programming can (in principle) be done gradually, still in simulated parallel.

Now, I was wrong about temperature all along. Here’s a new idea:

Imagine that each of the coderacks has the following behavior: Get a RANDOM codelet, then run it.

That’s massively parallel temperature right there. Have a nice day. Thanks for stopping by.

Unconvinced? Think about this: some coderacks will start to become really small (as Abhijit pointed out in the comments previously), with one or two codelets, then being emptied and destroyed. That means that at that particular point (or thing) in STM, temperature is really low. However, other coderacks will be full of stuff waiting to run; which means that there, temperature is running high.  Distributed temperature with high randomness in hot spots, low randomness in cool spots.

Maybe this has to be coupled with some information about concepts, but I’m not sure anymore. I think that it just might be one of those wonderful, marvelous, emergent effects we take so much pleasure in playing with.

Relativity in words of four letters or less

Posted March 28, 2008 by Michael
Categories: Author: Michael Roberts

Now, see, this is FARG-tastic.