Between now and the last Emdros release (August 2009), I’ve been busy building up an infrastructure around Emdros which should make it easier to use.
One of those efforts has involved what I call “the harvesting library”. Basically, it’s a piece of software which is part of Emdros, and which runs on top of the core Emdros services, and whose primary goal in life is to make it incredibly easy to extract information from almost any Emdros database. Not only that, but the harvesting library also has some nifty ways of turning that extracted information into HTML, XML, JSON, or whatever you like.
The way it works is, you write a “stylesheet” in what’s called JSON. JSON is a very small language, and is very easy to learn. So, you feed the harvesting library a specially structured JSON data file, which I call a “stylesheet”. Then, the harvesting library interprets that JSON structure, and goes to work extracting the desired information from the Emdros database at hand. This extraction process is driven by the JSON data file, and is extremely simple to set up. Once extracted, the harvesting library optionally takes that information and transforms it according to the rules you’ve written in another part of the same JSON structure. This could be HTML, XHTML, RTF, YAML, JSON, or whatever you want.
What this amounts to is that you can store in an Emdros database, not only “what” you want to store (the data), but also “how” you want to extract it, in what order you want to “assemble” the information, and how you want to “present” it (using HTML, RTF, or another presentation language). You just store the JSON script in an EMdF object that your application knows how to find in your database. When you want to use the JSON, you grab the EMdF object, extract the JSON, and pass it to the harvesting library, along with information about which monad set to harvest, and out comes your nifty, formatted HTML, XML, or whatever it is your stylesheet produces.
This will appear in the next public release of Emdros. Interested parties are, as always, welcome to contact me (http://emdros.org/contact.html) to get preview code.