Building Blocks Of Smart Data

Ok. In my last entry I said that data should be smart. My blog traffic has almost trippled since I said that. Of course, my comment spam has also doubled, but let’s leave that one alone.

As I think about smart data, I think that a smart data repository must be able to knit together various sources of information regardless of format. That is what we have been doing wrong. We have been putting format first. It’s about the information!

Therefore, there has to be a standard way to query objects from the repository. Then, there has to be a standard discovery language for the objects to expose themselves. In short, having retrieved a piece of music from the repository, we need to be able to ask it what it can tell us about itself. The object should be able to say: I have notes, I have the following representations etc. The object should also be able to suggest applications that can be used to access it’s information.

It would be cool if an object, being managed by a smart data player, could search your system to find the tools that could be used to play back or expose its data. If the object were a poem, it could expose itself in a browser, in Microsoft Word, in Open Office, as a PDF or in any standard text editor.

Therefore, even if we imagine building smart data – I keep using db4o as an example – we want to make it easy to use the smart data. One of the building blocks is a player that provides the means to dip into the repository and use the data. I imagine that the player could play back data objects that have been stored using db40, but, eventually, we would want it to be able to play back any data as long as it complied to a standard.

I also imagine that objects might provide an interface to extend themselves. The object may be stored and used once, but a new playback method may present itself in the future. There has to be a way to extend the object to handle this new method.

Therefore, if you could imagine it, an object that stores a movie would be able to play itself as a DVD or as a Quicktime movie. At a later date, it could play itself in a new format. The important thing is that the object is a movie first, and a Quicktime movie second. A developer should be able to could along and provide a new way for the movie to play itself and plug it into the object. The new method becomes a part of the smart data object.

As anyone can see, an object store, or an object persistence framework, has the potential to do more than just replace or stand in for a relational database. In fact, a relational database may still be useful in classifying and finding objects in the datastore. Once again, as I imagine things, the objects should provide a standard means to expose themselves (meta data) to databases.

That’s my vision any way. Am I preaching to the choir? Or, am I just blowing smoke?



Leave a Reply