Saturday, April 29, 2006

Quantifier Quandary

I'm writing this to talk my way through a tricky problem involving Quantifiers, the terms used in Deikto to express the magnitude of some trait or to modify a verb. From the outset, Quantifiers were designed to operate one a zero to five scale. The standard quantifiers were zero, tiny, small, medium, big, and max. However, we have shifted to a bipolar system in which most (but not all) values run from -1.0 to +1.0, with the values representing a kind of percentile distribution -- so that a value of 0.0 indicates the norm, with half of all plausible values above it and half below it, while +1.0 represents the highest plausible value, and -1.0 represents the lowest plausible value.

So what should the Quantifiers be? It now appears that we need many more Quantifiers, and they must be adapted to this probabilistic scale. I'd like to have 11 Quantifiers, but the problem is, English doesn't have that much resolution in its quantifier set. Here's a seven-step scale:

minimum, tiny, small, medium, big, huge, maximum

That's not much resolution. But going to a nine-step scale requires us to resort to some sloppy terms:

minimum, tiny, small, minor, medium, major, big, huge, maximum

It's possible to use compounds to get somewhat better results:

minimum, tiny, small, medium-small, medium, medium large, large, huge, maximum

But taking this all the way to an eleven-step system gets cumbersome:

minimum, super-tiny, tiny, small, medium-small, medium, medium-large, large, huge, super-huge, maximum

Moreover, we get into some issues with the semantic linearity of this scale. Here's how it would look as a table:

-1.0 to -0.9: minimum
-0.9 to -0.7 super-tiny
-0.7 to -0.5 tiny
-0.5 to -0.3 small
-0.3 to -0.1 medium-small
-0.1 to +0.1 medium
+0.1 to +0.3 medium large
+0.3 to +0.5 large
+0.5 to +0.7 huge
+0.7 to +0.9 super-huge
+0.9 to +1.0 maximum

Let me remind you, this system has to work for all variables in the system. Deikto is smart enough to be able to substitute different labels for quantifiers used on each word -- but that makes the job of designing these words even more difficult.

Right now I'm inclined to accept the nine-step system. The eleven-step system seems too clumsy.


Friday, April 28, 2006

Chris on podcast

Christy Dena, an Australian media research, has interviewed me and prepared a podcast of the interview. You can download the podcast at:

Comments and criticisms of my wild claims made in the interview are welcome here.

Friday, April 14, 2006

D&D: Deadlines and delays

I had been planning for some weeks to release the first pre-alpha version of Swat on Tuesday the 11th. Perhaps you noticed that this did not happen. After nearly a week of smooth sailing during which no serious bugs cropped up, all of a sudden bugs began coming out of the woodwork in droves. I tried to stomp them one at a time, but eventually realized that there were too many. The problem lay in my poor design of the data structures behind the undo feature. I had to throw the entire system away and start all over. But then I realized that changing the undo feature would require me to change another data structure, which in turn mandated a change in the Dictionary file, which led to... well, you can see how these things go.

I have just finished the major redesign and have begun testing it. So far so good. If all goes well, we should be able to release the pre-alpha version in a few days. Jonathan has been writing up the tutorial, and so all the pieces are coming together. Keep your fingers crossed...

Tuesday, April 04, 2006

Programming is a waste of time

Today I wasted two hours trying to fix a programming problem. The problem arose from the bad behavior of the Java JTree class: when you select and edit an item in the tree, it automatically deselects it. I wanted to be able to retain the selection, but Java blocked my every effort. I called up Dave Walker, our technical guy, and asked his help. We screwed around with the documentation and the program for nearly an hour, trying to get it to function properly. Finally, Dave hit upon the solution: accept the deselection. After all, only rarely will a storybuilder edit an operator in a script and then wish to edit it again; normally you alter an operator and then move on to another.

The moral of the story is that sometimes it's best not to try to find a programming solution.