Data structures in 3 levels

For regular readers of my blog, it won’t be surprising to hear that my brains never stop working. For those who know me in real life, it should be clear that my brain is as much a chaos as my personal presentation is ;). Same today. While chatting a bit with Lars, my vision on content management became finally clear. The following post is one, which should be posted on CMShunk, one of the project I’m planning to finish before the end of 2006. It should become a blog full about the concept Content Management, not just the platform Sitecore. This doesn’t mean that I’ll stop updating .Sitecore, but it gives me some space to talk about something more then just Sitecore :). Also comparing Sitecore against other CMS’ will become more objective. But it isn’t so far, so here’s my vision on Content Management, today Tuesday the 17th of October:

For me, Content management is a new way of Data structures. So far we’ve seem several ways of storing data. With the example relational database as one of the most likeliest. Another example, based on the same relational principle are, is XML. The principles are clear, you will store data in ‘Entities’, those Entities contain only real data(no production data like summaries, counters, etc) and to make it hard to get for a human being, it contains identifiers.

Identifiers, normally known as ID’s. It are unique figures of sometimes it are nearly full sentences(GUIDs for example).
Another hard word I used above, Entity, is just a friendly name for a collection of Typed or Untyped fields…
What the f*** are Typed or Untyped fields then? It is a way to store data, with Strong Typing(it expects an ‘a’ so only accepts and ‘a’) enabled or just disabled. It’s all about validation. You do expect only characters, so only characters can be stored, same goes for the length of the field. Untyped fields(like you’ve got them in XML, without using DTD’s or XSD’s) are the opposite, they don’t expect anything, so they don’t validate data.

So far everything clear? Then it’s now time to move on with the ID’s. The ID’s provide more dimensions to data. You can refer from Entity X to Entity Y with an ID. As it should be unique to all entities of the same kind, you don’t have to worry anymore about data corruption in the way of referring. The following picture gives you a an example how Entity Y is associated with Entity X:

 

So far it’s al quite simple, isn’t it? Where I’ve just talked about is in my opinion Data structures level 1. The first level of data storage in the modern world. It has its own rules and does provide a quite simple overview of the data. Also more complex data structures can be created. But that’s out of scope.
You do know this level don’t you? And you agree with me, as a techie, that this is a real simple way of storing your data structures. You guys probably  also know about the problem which are between relational storage and OOP. The part which is mostly called Object/Relation Mapping.

As that’s level 1, what’s level 2? It isn’t that hard. Content Management the way we know it these days is. Primary because of the realization that ID’s, the way they are present in level 1, are replaced by tree and other unique, visible, identifiers. Another reason to divide level 1 and 2, is because the realization of what kind of data we are working with. Meta data, which gives additional information to the primary Entity, is now divided from the core information in the Entity. A kind of Sub-Entity is created. It is directly associated, but not a part of the core Entity. It can describe the core Entity. A good example of meta data is the Exif-data of images in Sitecore 5.3.

Some other improvements are the Logical Typed Fields, for example HTML/Rich-Text Fields. They contain more then just the basic types(0-9 & a-z), but still can be validated. Logical Typed Fields are also Link-fields, which provide internal linking, again in a visible way, no longer by using non understandable ID’s.

Looking at this, you can simply say it just a way of presentation. And you are right. The level below is still the relational way. For that reason I’ve decided to call it levels. But don’t forget that thousand and thousands of developers are working on this level on daily base. It does have its right for existence. I guess these days developers are working more and more on this level, instead of working on level 1…

A disadvantage of level 2 is still that it’s a creation by techies. For end-users it’s still not natural. Give my mother a level 2 system and she will end up nowhere. Therefor, I’ll introduce level 3. The next dimension. On level 3 you’ll create Entities which are designed by human beings, which doesn’t depend anymore on technical choices, but depends on the way humans handle, maybe it should even change to individual users.
It’s all quite spacy isn’t it? Well, so far I can’t describe level 3. But what I do know is when you reach level 3. You are able to bring content management to the heart of an organization. As it is low level, users should naturally start working with it. Other systems should collaborate with you CMS. But we haven’t reached that level. And you’ll never reach that level by just listening to user experiences, you should play around with users. Make them happy, confuse them(seems like Microsoft is quite good at this looking at the Office Suite…), etc.

So far I’m not sure what the exact borders are between level 2 and 3. Try to figure this out, but this takes some time. Also working on writing the stuff above down and showing and prove the difference between level 1 and 2. Thinking of it, level 3 maybe can replace level 2…
Enough information to think about. But what I do know is that Information is the most important part of an organization. Integrating Content and Document(which IS content) Management Solutions won’t become easier on level 3, but the acceptance by users will be accelerated and goals of this kind of solutions are finally reached instead of sleeping at 50%.

For everyone who doesn’t agree with me: I’m very interested how you look at the way data in managed in the current world. I’m also interested in the way you will improve your world. I’m definitely not interested in the vision of people who aren’t interested in enhancing their own vision. My vision can be changed by your vision, so open your mind and lets lift it to a higher level!

That’s it for now. As this topic can become quite abstract, or just to technical, I can imagine you’ve stopped reading. Don’t worry, I’m trying to write this full article down while investigating other possibilities. When it is published it is definitely done in a more human readable way. But my brains haven’t made it fully clear at the moment. So handle this post as a draft ;)(which took more then an hour to write).

2 thoughts on “Data structures in 3 levels”

  1. Hi Alex,

    I had to read you article twice before I think i really got the concept.

    So what you are saying is that the content entities (in Sitecore, it could be fields) should change appearance and perhaps data format storage depending on user behaviour?

  2. In fact no matter if someone doesn’t understand after that its up to other visitors that they will assist, so here it
    occurs.

Comments are closed.