Building notes, projects, and occasional rants


I really don’t know what Kiwi is. Well, I know it’s a project I’ve been working on and off for quite sometime now.

But if you ask me what it is, well, it’s difficult to say.

Kiwi is a Wiki-style system with rich meta-data, with a object-oriented full-text search back-end. It also has some blog-like features. And you can also syndicate it’s changes.

You would write nodes or pages with a language wiki-style (actually the parser is pretty extendable, so the actual format could be changed easily). You can include in each node live queries to the back-end. Those queries can target the meta-data or the full-text of the nodes. New markup can be genrerated from the results.

You can also put objects inside each node. You could put your DVD collection inside Kiwi, a node for each DVD, with special fields for Title, Rating, Actors, Director, etc. And then reference those objects from anywhere in other Kiwi nodes. You could also query the back-end for DVD object matching specific criteria.

Right now, I’m working on the parser. I’m trying to make not a parser for Kiwi, but a generic extendable parser. There are no core elements in the Kiwi language. Everything is a plugin. The parser only job is to select a set of plugins that, based on the context, are asked to match the current line. The chosen one gets to influence the context for the next round.

I made some progress last week, but this week I hadn’t had the time to work on it. I’m expecting to get back to this next weekend and finish the parser.

After that, it should be able to transform Kiwi nodes in HTML, with full meta-data collection and storage.

I expect that someday Kiwi will replace MT as my blog platform.