We've got PIM applications, all sorts of PDAs, rich client GUIs or webapps on the internet or behind the corporate intranet's firewalls. There's the MDA approach to generate apps from datamodels, orapplication generation engines that build applications dynamically thanks to the interpretation of a metamodel. All these applications and interfaces to store all kind of data, personal or business related, generally sports a fixed and frozen structure. New developments are always needed for evolving your applications, and costly redeployments and interuption of services are often triggered.
Then, there's the Semantic Web, and RDF stores, like Jena/Joseki or Kowari. You can store all the information you want in some unstructured way (RDF triples), that can be understood by other applications, if you share common ontologies through RDFS or OWL, and common namespaces like Dublin Core. Some interesting querying systems like SPARQL can allow you to query multipe documents and stores at the same to help you mix together different channels of information. Unfortunately, so far, the Semantic Web never really took off because of its inherent complexity to deploy and understand.
These days, there's a couple of other concepts that've taken the blogosphere by storm: REST and tags. Flickr lets you store pictures, share and tag them, as well as del.icio.us which allows you to tag and share your bookmarks, Google maps to share geographic data. There are also some nice REST interfaces to mix and match those online services through their public APIs. Mashups listings are appearing to explain who's glueing with whom. And you can also subscribe to everything through RSS or Atom feeds.
A few weeks ago, Marc Andreessen (Netscape's founder himself) introduced Ning to the world! It builds on the concepts of tags, REST and a custom content store, to allow its users to build social softwareon top of their framework. Building your own application is as simple as creating a few types to store instances in their content store (no tedious SQL code anymore for your data model!), and writing a fewPHP files that let users interact with their data. Or you can even clone an existing application and customize it to suit your needs! Anything is shareable (information is either public or private) and taggable. All applications and data are available through some pivot URLs which are a kind of automatic RESTified interface of the whole system. Brilliant, really brilliant.
And now comes Google, and its Google Base. Not much is known as of yet, but I'm sure we'll get more tidbits real soon. Google Base will probably be the next big thing. I was sure Google would create such a thing because they claim their goal is to organize the world's data. And your own personal data as well. So it seemed like a logical step to create another killer application which would allow you to store an d share all kind of structured and unstructured information. They've already got the backend ready for that with their GFS (distributed Google File System) and their BigTable (a huge flexible and evolutivedatabase ) system. Imagine you can define your own types, in a very flexible and malleable way, that you can create list and item views of that data, that you can share these things with your friends, and tag them? And imagine also that there are APIs on top of Google Base to interact remotely with your data and make your own data-driven application interact with each other? That's a Semantic Web driven by data and by folksonomies.
I've always dreamt of building something like that, and it seems both Google Base and Ning are going in the right direction. It seems even more useless now for me to start a project like that, since those bright guys are doing it! I've always wanted to store my life, to brain dump my ideas into a common base, programmable through APIs, cross- linkable and categorizable with tags. It seems like my ideas for the future of information technology are taking shape at Google labs... today. I'm impatient to try that out.