Friday, October 26, 2007

Evolving Knowledge

In one of my earlier post this year I discussed about atomicity of knowledge in itself. Then in subsequent posts I had an attempt made to relate the knowledge representation to stars. Also had the types of knowledge discussed a while ago. But they are just the bits and pieces of the knowledge is and what we call knowledge. In this post I am going to discuss about the evolving nature of knowledge.

"Change is the only constant thing in this world", Most of us have heard and read this line at different texts, blogs, literatures etc sometime or other in our life. But what do we mean by change here. Are we talking about something totally different than original or an evolution of what was originally available. The evolution at times could be n folds and the next evolved outcome may look like a different thing altogether. But as a species of this planet we have been evolving for billions of years now.

The evolution of life on this planet required billions of years for its first steps (primitive cells, DNA), and then progress accelerated. During the Cambrian explosion, major paradigm shifts took only tens of millions of years. Later, humanoids developed over a period of millions of years, and Homo sapiens over a period of only hundreds of thousands of years. With the advent of a technology-creating species the exponential pace became too fast for evolution through DNA-guided protein synthesis, and evolution moved on to human-created technology. This does not imply that biological (genetic) evolution is not continuing, just that it is no longer leading the pace in terms of improving order (or of the effectiveness and efficiency of computation). This is how we evolved from a primitive cell to the fully functioning (well almost) human being.

When we talk about knowledge. It takes a considerable amount of time to build the first bit of knowledge as that lays the foundation for future developments. One of the requirement of the knowledge is it should be evolving continuously with what is available. One similar example which relates to this nature is Fractals, to be precise Probabilistic Fractals. The Probabilistic Fractals the probability of each generator element being applied is less than 1. in this way, the resulting designs have a more organic appearance. So going back to use this theory in context of knowledge evolution the new piece of knowledge will appear more intelligent than the original piece which created it. The principle of Probabilistic fractal is already in use by computer chip makers. The computers are used to design the next generation chip which is faster and better than the chip which is used to design the new chip.

So the question which arises at this point in time is:
  1. What is the best way to represent this tiny bit of knowledge which can sustain growth at any scale?
  2. What are the other factors we must consider while designing this first bit of knowledge?
  3. Is there a way we can predict the growth path or evolution of knowledge and can influence its direction?
  4. What are the best practices we can or must follow to avoid and reduce chances of errors?
The problem is out there in front of research community. So I assume that there are few people who know the answers as well or at least have made some progress to find the answer. Any thoughts here?

Until Next Time... :)

Saturday, October 20, 2007

Semantic Web and MVC

A while ago I was going through a discussion on Semantic Web and then came across a good post on Web evolution and Model View Controller (MVC) paradigm.

Web 1.0: Only the View is available, the Model is completely missing. The computer can't interpret anything. The computer does what it is asked to do be right or wrong. No wonder the computers were called dumb terminals in the beginning.

Web 2.0: APIs are coming, Controllers give partial accesses to the Model. The computer starts to enjoy. We have the ability to participate in interactive discussion. Facebook, Orkut, Blooger etc are few to implement this. We have been given limited write access on Web. We have started to appreciate this and success of Wikipedia is an example of how much community has appreciated this concept. We are both producer and consumer. The traditional methodology of one producer many consumer does not hold good anymore. Everyone participates equally in the evolution and development of a concept (wikipedia), work (open source) or a process.

Web 3.0: The Model is largely opened, we are finally able to read and write the World Wide Database. The computer can't wait! We are given full access to write based on the access level we have. We are part of a big universe but still manage to keep our own little universe isolated and whenever we want we become part of the big picture. Its an intelligent me part of the We.

Check out my earlier post if you want to know what after Web 3.0

Until Next Time ... :)

Monday, October 01, 2007

Why we need a Common Ontology

In my previous post I started the discussion whether we really need a common ontology? To go into detail of this first we need to find out how ontology is helpful in Semantic Web. To understand it better lets take a business case.

There is a Business A, Who deals with Selling Laptop and their Warranty. Business A sells buys the laptop from Business B and Extended Warranty from another Business C. Now lets consider a Customer D places an order for a laptop with extended warranty. In this case Business A needs to do the following:
  1. Check with B whether they have particular laptop model in available in Stock.
  2. Check with C if they offer Extended warranty for the laptop model (selected from B).
  3. Combine the prices for both the services, Add its own markup to the price and generate final quote for the customer.

Now lets assume that the customer has decided to go ahead with the quote and place the order. In such case A has to place an order with B and also an order with C. The payment will be made to A by the customer which in turn will be routed to B and C as per their quote. When the parts arrive at A, it has to be bundled together and shipped to the customer.

This might look like a simple business case but behind the scene there are lots of activities which take place and most of them are too complex to handle. Also there are non-functional requirements like Data Integrity, Security etc come into picture which the users (customer) is not aware of many a times.

Also there are different document formats, types etc come into picture. Each vendor have their own format to accept the messages and the response is also sent back in a pre-defined format as set by the service provider.

Coming back to the topic how the Ontology is going to be helpful in such a scenario. The Ontology can apply to both the Document Type and Semantics.

Documents Types
here refer to the structure of the business data that are communicated between the trading partners. Documents Type refers to Concepts, Attributes of concepts and relationship between concepts that are ideally managed by and represented within ontologies. Ontologies can in a very precise manner define as well as manage concepts, attributes and relationships between concepts.

The Semantics here refers to the correct population of attributes with correct domain values. Not every value that an attribute can contain is semantically correct. Like the model number attached to Laptop in the business scenario discussed must belong to a laptop. If a desktop model number is used instead that will be correct as far as syntax is concerned but it will not make any sense in context of laptop.

The Ontology Server can be used to store and access the domain and application concepts, like product name, country where it is available, warranty applicable etc, represented in form of ontologies. Since all these different attributes together must belong to an entity which is not only syntactically correct but also each attribute has some sort of relevance to other attribute (as discussed earlier). For this to happen in reality, they all must have knowledge about each other (at least what matters to them) and the cross-verification must be achievable.

A common ontology server comes handy in such cases as all entities and their attributes belong to one common hierarchy and they can seamlessly integrate and refer to each other.

Note to the readers: I would like to hear from you as what you think about it. If you want to discuss this offline, do not hesitate to drop me an email and I will be happy to discuss it with you.

Until Next Time.. :)