The USS Quad Damage

Fear of re-invention

Multitude of choice is crippling

No other similar system seems capable of editing data.

You shouldn’t re-invent the wheel. This is especially true when there are a bunch of different wheels available at your disposal. Why do all the work when you can just integrate an existing wheel into whatever you’re building.

Except when the wheel doesn’t do what you want.

I have a fairly simple problem. I want to define some data using a DDL. Then I want to display and edit that data (arbitrarily) using some visualisation or reporting language. You’d think I’d be able to download some off-the-shelf stuff, plug it together, and start with the data definition.

There are problems, hence this post.

The obvious DDL is XSD. This doesn’t work for a couple of reasons. Firstly, I don’t just want a regular DDL. I want to be able to express data in terms of other data. So, I want to be able to write X = Y * Z, where Y and Z are integers. Secondly, I want to be able to define data in terms of other data. A is an enumeration of values from collection B. This extends to being able to do table lookups in an internal “database” of sorts. Thirdly, I need the data and definition to be “loose”. I want to be able to change the schema on the fly, while keeping data relatively the same. New values will be empty or null, removed values will be deleted when the data is next saved. On incompatible data changes, I want error messages to be thrown up as if the user entered the data incorrectly.

I want to be able to then visualise this data in a flexible way. I don’t want to mess with individually defining widgets, I want that done already. I was hoping HTML was appropriate, but the nearest visualisation thingie I can find is Apache’s Velocity. However, while it will do visualisation perfectly well, it cannot actually go back in and modify data. No other similar system seems capable of editing data.

Importantly, I want to be able to do this without doing any re-compiling or any other bull-shit. I expect to be making lots of subtle changes to the DDL as well as the visualisation all the time, even while I’m editing the data itself. Anyone aware of technology that allows this without too much effort? Or am I not looking for a wheel?