Me
Formal Nakedness
Next semantic web meetup is in 6 days, on monday Feb 7 2005 @ 7PM, downtown Montreal. Please check the web page for more information on how to get there, and to RSVP (whether or not your are coming). I propose the following topic : formal nakedness. I think we should spend the first hour on engineering aspects and the rest on the philosophy behind it. Let me give you some hint on what formal nakedness means to me...
Structured or formal nakedness is a process by which one builds and publishes an interactive discretization of oneself on the net. And I'm not talking (only) about publishing pictures of yourself naked. You could do that, of course, but discrete sort of implies, here, that you express what you are in a way that today's computers can understand easily : with a defined, finite ontology. I will use here model or ontology interchangeably, but I mean the same thing. So in short, formal nakedness is a blog on steroids, a personal website with world domination ambitions.
-
Define a formal language
The first thing to do is to define the structure, the model of your self, or what you want to communicate about you (which would preferably be everything). This is your personal ontology. If you have never heard of that word, I recommend you invest some time reading about it, because it's nothing less than the fundamental concept of the semantic web.
There are many ways to do build an ontology, but because this will help you build the application that goes with your model, I suggest using UML/XMI tools like ArgoUML, Poseidon, MagicDraw, or the swiss army knife of ontology editors, Protege. These are all either open source or freeware. -
Build your publishing platform
Then, once you have your model, you have to build a computer knowledge management and publishing platform (something like a CMS) to help you manage the data structured according to the model's schema. If you used UML/XMI to construct your ontology, you can have this platform completely generated from the model, with no programming required. This is called MDA. Many nifty open source products exist that do just that : The MDARAD Toolbox (which follows the Dataïsland Primitives modelling specification, a open source project of mine), AndroMDA (upon which the MDARAD Toolbox is based), JavaGEN, JAG, XCoder and Jostraca. Please note that the aforementioned tools only support Java-based generated platforms, because that's what I use, but you can find other MDA products that support PHP, Python, .NET, Perl, etc.
Ideally, your computing platform should include features like :
- Versioning : all the modifications to the representation of your reality should be logged and reversible
- User management : your platform should be able to support many editors with various permissions or rights
- Persistent storage : your data should be kept safely in a stable and persistent manner such as in a RDBMS, file system, etc.
- Traceability/commenting/pinging and induction/synchronization conduits (see Plug you in below) : your system has to allow interactions with other people's systems including well-known blog features (commenting, pinging). It should also be able to remember where the data is coming from (traceability). And your system should be able to synchronize the various representations of the same data (ie : your Ebay, Yahoo, Flickr, Meetup and Amazon profiles).
- Semantic web standard (RDF, OWL, etc.) interfaces for web services : your data should be creatable, readable, updatable (also understandable) and deletable by software or machines, not only from a GUI
- Localization : your platform should support all human glyphs and symbol possible (ideally through Unicode) and also, it should allow for data entry in multiple natural languages (human languages like french, english, spanish, etc.).
-
Digitize your past
Simply put, once you have the system, express all your past through it : pictures, bio, etc.
-
Plug you in
Plug sensors in to automatically gather data (pictures, bank account, credit card, school reports, calendars, emails) and commit this data to your publishing platform. The purpose of a sensor is to spare you from having to manually enter the data about yourself : sensors are continuously capturing information for you. They can take your data from the thermometers where you work, sleep, watch TV, etc. Your PVR could also be a sensor if it were to log what you are watching on TV and send that information to your platform.
Some sensors are called conduits. Like with MacOS' iSync, conduits are synchronization sensors that will make sure the various representations of the same data (your reality data) are in sync by propagating what's stored in your platform to everybody else's platform. Example of places where you would want your information to be propagated is your personal profile on Ebay, Yahoo, Flickr, Meetup, Amazon, etc.
Conduits should not only be diffusive (propagating from your platform to other's platforms), but also be interactive : some of them should allow to capture in your platform the data that comes from other platforms. For example, you would probably want to track updates on the Wikipedia articles you link to : if they have been modified by others, by yourself, if they are said to be related to other articles, etc. You will probably want a reference linking system that goes beyond the simple HTML anchorhrefor the blog trackback. These links should be your platform's signal to initiate an interactive relationship between you, the linker, and the linkees. Besides Wikipedia, examples of platform that are interesting to have conduits for are : TAP, DMoz, delicio.us, DOI, and ISBN.
From what I know about it, sensors are roughly the idea behind the Data Libre initiative.
Of course there is a lot more to say about formal nakedness and I will certainly come back to it soon. In the meantime, there's the semantic web meetup, so see you there!
