lazer-guided commentaries

Concur 2004

On Monday I attended some of the workshops at Concur 2004. I've written about it, including my lecture notes, on mikeb's and my new less-personal blog:

I'm sitting in the foyer of the Royal Society in London. This is the venue for Concur 2004, a conference on Concurrency Theory. I'm just attending a couple of the workshops — specifically BioConcur '04 and, next Saturday, AVoCS '04.

See here for the rest of my introductory story, and here for all my notes from the workshops.

A Web Site For Harpers

mikeb has kindly contributed a link to an article describing (in a non-technical way) the implementation of a web site based on an RDF database, similar to the one I was thinking about.

Better Indices

Speaking of better indices, I'm investigating RDF, the Resource Description Framework. It's a language for representing facts. Once represented, databases of facts can be queried using RDF query languages. It's very similar to Prolog systems except in that it's a distributed database, where Prolog databases are centralised. It's also a sensible approach to the "Frame problem" of (Classical) Artifical Intelligence. I think it might be useful in representing the kinds of ad-hoc databases people work with all the time and file in structures like word-processing documents or text files, spreadsheets, pieces of paper, sticky-notes etc. etc.

RDF seems to me to be a way of getting the benefits of the relational data model — the foundations of all of today's most commonly-used database software — without the disadvantages of centralisation and non-relational query languages (SQL). It feels like it might map pretty closely to the ways people think about many everyday tasks and objects.

  • Could Zowie objects be RDF-describable? What about behaviour? Users might create new RDF objects and annotate them via a GUI, building and querying a knowledge database with the system...
  • Common-sense knowledge: is there a version of Cyc's common-sense knowledge-base encoded in RDF? (Cyc, Eurisko, Douglas Lenat)

Memory Overload

Something I wrote regarding the following excerpt from this Wired article:

Whether this is a boon or a disaster I can't say. Such subtle patterns in the history of human experience tend to escape that kind of judgment. But the result is a telling contradiction: Our culture has become engulfed in its past and can make no use of it at all.

Assuming we want to make some use of it, then what we need are better indexes. This is why I think google is the most amazing thing. Google is the Better Index. It does The Right Thing with regard to prioritizing information. The only reason it works so well is the sheer volume of data it has available to it, so in a way a solution has emerged/is emerging exactly as it is needed.

The other alternative I guess is to just throw the stuff away, or to not pay attention to it. In my life I find myself hoarding information, and then forgetting about it. I like the idea of being potentially able to recover the information if I really need to, while not being burdened by it. Eventually I'll have so much information I'll need a personal Google if I ever want to actually find any needles in this haystack — but I'm sure something appropriate will exist when I need it.

Newmoon on .NET

I've just spent the afternoon hacking on the old CVS version of Newmoon, the one before the port to the JVM (and the move to tla, which is a pain). I've made a few simple-but-nonobvious changes that bring newmoon-on-.NET much closer to self-hosting. A mono-hosted newmoon compilation of a simple scheme file results in a more-or-less correct *.scm.sil file being emitted. Remaining problems include ongoing niggles with the syntax-case expander and the lack of a module system, incomplete printing implementation on the runtime side, and general speed issues. The r5rs-eval evaluator is particularly slow.

The most important changes were to fix a number of problems with r5rs-eval: not only were recursive definitions/letrecs not implemented, but the representation of environments was badly broken, and I hadn't even noticed. The broken environments were the cause of the fault that caused me to give up on newmoon-on-.NET so many months ago!

So now all I need to do is finish my syntax-case implementation, implement Flatt's module system, graft the result on to newmoon, finish the core library, rewrite Sil.cs in scheme, and produce some kind of inbound-FFI. Nothing but a TMOP.