Wednesday, September 12, 2007

Web 4.0

In one of my earlier post about What is beyond Web 3.0, I did mention that after Web 3.0 it is going to be Web 4.0? I also mentioned there that Web 4.0 will be about man-machine communication. There have been few discussions since then as what is the meaning of man-machine communication and how different it is going to be in future.

Before we discuss this lets take a look at what is been done so far.
  • Web 1.0 Theme was You. You produce content, You manage the server, You are the producer and I am the consumer.
  • Web 2.0 Theme is We. Lets discuss, Lets interact, Lets build our network. In this both the parties actively participate.
  • Web 3.0 Theme is Me. Its all about ME, my Environment(s), my personal space, people who can see me etc. We are talking about personalizing the Web (and Internet) to suit our individual needs.
So the question arises here is what is left for Web 4.0 to achieve. Well as I mentioned earlier it is all about Intuitive Man-Machine communication. The communication is not just via the command mode, but its based on the thought process generated within us. Sounds like a Science-Fiction isn't it? Well to your surprise many pieces of this puzzle are already in place. Its just that we need to start putting them together and tweaking them to suit each others need. How are we going to change human? We don't have to, thats the best part of this.

The Sigularity Institute is working on similar research projects for advancement in Artificial Intelligence. But that's not the whole point here. That just solves one side of the problem i.e. making machine understand the language. But we humans must have a way to translate our thoughts into that form.

I am sure many of us must have heard or gone through ECG test sometime in our life. We all know what it does. My thought of building such a communication channel starts from ECG sensors fitted to human body when Wearable Computer becomes a common man thing. Using those sensors we can capture the signals generated by human. The generated signals then will be converted to Bluetooth signal by attaching a small device to the computer we wear. We can pair the human bluetooth device with the computer (machine) and establish a communication channel between them.

Of course there will be requirements to build interpreters which will translate the ECG signals to appropriate software code and vice versa. Did I say vice-versa? Yes I mean it. Recent studies in medical sciences have proven that if we generate the similar impulse in our brain we get the same muscles stimulated as though it is happening in front of our eyes. Watch the movie "What the Bleep Do We Know" and you will understand what I am talking here.

Sounds like a whole new channel opening. Well this is going to be the future of communication. I am going to come back with some more thoughts on this and other related technologies.

Until Next Time... :)

Wednesday, September 05, 2007

The Need of a Common Ontology

With lots of talks around about Semantic Web, one thing that stands out among all the terminologies used is Ontology. In my earlier post, What is Ontology, I touched upon the basics of Ontology and discussed only the basics of it. Towards the end of the post I proposed to build a common Ontology Server.

While reading Guizzardi and Guarino and after understanding about ontology in bit detail. I went back to read Knowledge Representation (John F Sowa) Chapter 2. But in this process what come out is a belief that if the Semantic Web is to become a reality and ubiquitous then we must have a common way to represent the entities. Which brings back to the need of a Common Ontology Server.

Going via the definition of Ontology given by the philosopher Willard Van Orman Quine the fundamental question of Ontology is "What is There?" and the answer which came back is "Everything". Now if something has to accommodate everything then it has to be be designed to keep every other interpretation of entities in this world.

Then the question arises is: Do we Really Need a Common Ontology?
Before we answer this question, we must ask what we will be loosing if we don't have a common ontology? In absence of a common ontology we might not be able to represent an entity in an uniform way. Uniform way here means by following a common structure and pattern. The rule layer (as part of Semantic Web stack) will not be able to operate properly. This in-turn will make other processing complex and tedious.

In search of solution I came across the paper "Discovering Semantic Web services with and without a Common Ontology Commitment. Jorge Cardoso. Proceedings of the IEEE Services Computing Workshops (SCW'06), 2006". This paper talked about the discovery of semantic web services without having a common ontology to represent them. But then there are few limitations of this methodology as well and it is not suitable for the original vision of Semantic Web.

I will keep working on it and see what I come across next. If you have any thoughts on this drop me a line and I will be happy to hear from you on this.

Until Next Time...:)

Saturday, August 18, 2007

Normalization Where to Stop?

One of the most important thing we learn in our DBMS subject is Normalization. Whether you are a data modeler, DBA, or SQL developer, normalization is one of those topics we all learn. We learn this either at work or during our formal IT degree. We are taught that there are 5 different normal forms and what goes in where etc etc. But how much do we use them?

Take a look at most production databases. The best you will find that the database has been implemented using Third normal form (3NF). Very few databases reflect higher normal forms, such as Boyce-Codd normal form (BCNF), the Fourth normal form (4NF), and the Fifth normal form (5NF). So, why don't most database designers go beyond the 3NF?

I am not going deep into the normalization and their definition. A google search will bring out all those definitions so I opted to keep the definition out of this post.

How far should you go with normalization?
To be sure, each progressive step may impact upon overall performance. I have seen normalization taken to absurd lengths. In one of the recent discussion one person came out with the idea of different financial document types. As though the world of accounting is going to change. I had to remind him that Accounting is just the recording of historical events :)

A while ago I was reading an article and there the author mentioned about the normalization. Over a period of time I learnt to ask few questions before I decide how much normalization is required.
  1. What is the nature of the system. Is it an OLTP or OLAP system?
  2. What is the nature of DB Query. Are they mostly Insert or Retrieve?
  3. For Part of DB where the inserts are more, its better to have the Data in 3rd normal form.
  4. For system where Retrieve operation is more than Inserts, 2nd Normal form is the best.
Where you draw the line in the sand is ultimately up to you, but you will be better equipped to draw it with a sound understanding of the various normal forms and the risks of not going far enough. And not to forget the business requirement, after all its "Not Your Software" its the users who will be using it not the developers who write it.

Why most designers don't go beyond the 3NF?
There are few factors which affect the level of normalization we choose for the database. Most of my decision to design the database in past were based on the answers I got back after asking these questions:
  1. What is the insert/retrieve ratio?
  2. What is the database used for Transaction Recording/Processing or Decision making?
  3. What is the response time we are looking for in case of Insert, Update, Delete and Retrieve?
  4. What is the estimated peak transaction load on the database also the off-peak hour transaction load.
  5. What is the database deployment strategy Centralized or Distributed?
  6. What is the transaction control strategy. Whether it is Single-Phase commit or Multi-Phase commit?
  7. Is there a temporary Cache implemented or required?
  8. Do we need to maintain the user session or user interaction with business layer is stateless?
Asking these questions does give an overview of how the system will look and to suit the need bes the appropriate strategy can be formed.

Sometime in coming days I will write a post on how to optimize database and what are the common mistakes database designer make. Keep watching this space for the post.

Until Next Time... :)

Thursday, August 16, 2007

Mandatory and Essential

Last night when I logged onto yahoo messenger, I saw this message as one of my friends status message "What is the difference between Mandatory and Essential". At first I thought what's big deal? Are they different? Are they not same? At one point I went to an extreme thinking that his Phd course has taken its toll and he is about to get into second phase of PhD degree where one becomes grumpy, tired and insane :) But the more I started to think on this the more it became evident that Mandatory and Essential are NOT the same thing. They are two very-very different words when it comes to their real meaning.

I remember doing a post earlier this year on Atomicity and Knowledge Representation, I discussed about Mandatory, Additional and Optional Attributes of an object. While I am not going to go deep into philosophical aspect of it, I would rather stay in context of Software Engineering and Semantic Web.

Mandatory:
Mandatory Attributes signifies the bare minimum required for existence. It is the basic definition of any thing(object) in this world. In reference to my earlier post on Atomicity it is the Mandatory Attributes of an object. The bare minimum requirement for any object which exists in any space is Type and a unique attribute (most of the time it is Name) which distinguishes the object from others of its kind in the same space or for any other space where the object is likely to be found.

Essential:
Essential attributes of an entity (object) is the must have attributes for an object in any context or where it has to be used or play an important role. More often than not it is also the mandatory attribute of the object. Referring back to the post I did earlier this year, I see Essential Attributes are nothing else but the Additional Attributes of an object which is required for an object to participate in certain activity or to be used in a context.

In context of Knowledge Representation we can always rely on Mandatory Attributes to be present where Essential Attributes are (due to their contextual nature) guaranteed to be available only if we are considering object in a given context.

Would love to hear your thoughts on this as what you think the Mandatory and Additional attributes are. Whether you see them being same or different, if yes then why?

Until Next Time... :)

Tuesday, August 07, 2007

What is beyond Web 3.0

Recently there have been talks about what the Web 3.0 should be and what it will do etc. Go to facebook, myspace, orkut or any other site where techies come together and most of them you will find talking about Web 2.0 or Web 3.0. But among them there was one gentleman who said that Web 3.0 is going to be about Relationship Economics. It is the user who will drive the next generation of advancement. Lets see

Web 1.0 and 2.0 has been predominantly technology oriented. Starting from a command line browser to pull texts of a server by passing the URL to building websites to facilitate social interaction the journey is been quite long (almost 17 yrs) and in this journey we discovered many technologies and we left many of them. Some of them we still keep with us even after years and some we left along the way.

Web 3.0 is about deep and meaningful relationship, effective networking. If Web 2.0 is about breadth i.e. adding more and more feature and technology advancement, Web 3.0 is about depth i.e. creating an understanding as why and how we can leverage upon them.

Most significantly, Web 3.0 is the turning point where the 100 year cycle of transaction economics is superseded by the next great cycle, usually described as relationship economics. Web 3.0 transcends and includes both 1.0 and 2.0 to provide the platform that provides lift off for this great shift in economic, organisational, social and cultural structures. Web 3.0 is likely to be born out of a major crisis affecting current structures. If you are part of Web 3.0 you will be carried by a great wave. If you're not, you may find it difficult to survive.

But then then thought came to me what is going to be after Web 3.0? Well how about Web 4.0? Seems like a light bulb glowing :) but yes what advancement we will seek in Web 4.0. The way I see is Web 4.0 will go one level further and take the man-machine relationship to the next level. The machines will be able to understand human language and the there will be a change in our behaviors towards machines and vice-versa.

If we call Web 3.0 a paradigm shift then Web 4.0 is going to be the Dimension Shift. I would love to hear your thoughts on this.

Until Next Time... :)