Tuesday, January 23, 2007

KR as a Surrogate

In the First Part of this series; I touched upon briefly what the Knowledge Representation (KR) means and what it reflects. In this post I will be touching upon KR as a surrogate.

Before we dwelve deep into this lets find out what the reasoning is. Reasoning is a process that goes on internally; while most things it wishes to reason about exists only externally. A person who is writing program thinks about Class, Procedures, Functions etc while these things exist in external world only.

If we say that KR is a surrogate it raises couple of questions; (i) About its intended identity and (ii) about the semantics of the representation i.e. some kind of mapping of Surrogate with its real world equivalent. In this we elaborate on what details we publish and what details we omit from the real-world equivalent of the knowledge we are representing. Say we want to map an Employee (Entity) to its real world equivalent (Human Being) then, in this process we omit few details like parents name, place of Birth, time of birth etc of the person.

In this process we are omitting few details of the person object when representing in the system. As far as practicality of the completeness of information about an object is concerned; it is virtually impossible and under no circumstances we can claim that an object (from real-world) can be represented anything else but by itself. An object is true representation of itself rest every other representation is incorrect as they contain some assumptions about the object and some attributes which may or may not exist at all.

While it may not sound the best way to represent a real-world entity as surrogate. But there are few advantages we see for KR as a surrogate.
  1. It treats both Tangible and Intangible object equally.
  2. It allows both the kinds of objects to be reasoned and exist in the same space. It treats both the objects which exist in real world and the objects which exist in beliefs to be reasoned in the same way.
This leads to a conclusion that imperfect surrogates are inevitable. When we talk about this; with reference to what we mentioned earlier. We learnt that in the process of representing real-world entity we omit some details or we abstract a few. Which is different from the original object itself. Which also leads to another conclusion that no matter what reasoning we apply to the object the final result is always going to be incorrect as the entity we are reasoning about is not represented correctly to start with. Here also the level of inaccuracy in the final result may vary depending on various factors either known or unknown. But we always try our best to ensure that the level of inaccuracy is low while representing the entity for the task in which the entity is going to play a role. This takes us to another conclusion that if the reasoning of an object is long enough and broad enough it is guaranteed to result in an error.

Another point to note here is that irrespective of whether the reasoning is sound or unsound we at the best can only ensure that the error in representation is not due to the reasoning mechanism we applied to the object. But that does not leaves us to take the problem in hand casually.

At the end before we choose a representation of an object (from the real-world) we must evaluate the cost and benefit of the representation and the reasoning mechanism applied to it.

While this sounds like an interesting thing to read. But going forward I look for a general mechanism to represent every measurable thing in an object. i.e. developing a structure to represent an object so that we can accommodate all possible attributes of an object which can be seen or measured. While this may sound like a promise but in future post I will be touching upon creating one such framework where the object from the real-world can be represented in machine form.

Until Next Time...:)

Sunday, January 21, 2007

Atomicity and Knowledge Representation

In my previous post on Atomicity I asked few questions about the atomicity as a concept itself and how does it relate to the Software Engineering. Also in my previous post on Knowledge Representation I discussed 5 fundamental things about Knowledge Representation.

It was last week when I was talking with a friend whom I happen to meet first time and it was a planned meeting which was scheduled for just 30 mins but then as it normally happens with me an interesting discussion last longer then anticipated. The meeting went on for about 1.5 hrs :). I know I am terrible in managing time especially when it comes to technical discussion.

While we were discussing about atomicity, there are few points that came out during that and one of them was how the smallest possible piece of knowledge can be applied to the big picture.

The Atomic Structure:
If we look at the structure of an atom (Except Hydrogen). It has a Nucleus which determines the Atomic Number and Atomic Weight for the element. Then it has a Electron(s) circling around in the pre-defined orbit.

Using the same concept in Semantics if we look at the object (for that matter any object) which exists in this world. We will find that it has two different kind of attributes (i)Key or Principal Attributes and (ii)Helper or Supporting Attibutes.
  1. Key Attribute(s) Determine how the object can be represented in the world. The attributes for an object which fall in this category are its Name(Value), the Type(family) of object. What it means to define an object in its basic form or the basic object contains what family it belongs to and what is its value.

  2. Supporting Attribute(s) help object being part of another object or how it can help object being part of Some Transaction or Process. Like for a Product in a Retail System its Unit Price is the supporting attribute which adds a whole new meaning to it and is being used when we put that product on an invoice, order or quote.

  3. Optional Attribute(s) are another kind of attributes we find for an object which if added adds more meaning to it but its absence does not hurt either. A Slideshow or Thumbnail image, Video, a GI information about the product could be classified as as optional attribute. Which when present adds more detail to the Product but if they are not present the product object can still be used. They also do not participate in any transaction etc, they just give a more clear picture about the product.
But then the question comes is it is okay for the individual objects (entities) but how do they fit in the big picture? Lets visit any Database and check out how it relates to the concept we just discussed. In a DataBase we have a DB Schema which has Tables, Procedures, Triggers, Indexes etc. The Tables are the essential part of a DB Schema, Procedures and Triggers are the supporting elements of the DB Schema and Indexes form the optional elements of the Database.

During the discussion we also realized that if we find the best way the smallest Object(Entity) can be represented in the System, then we can then use the same philosophy to represent the Bigger Entities (Database Schema) and then using multiple Schemas we can represent the System and Since we build the System on a common principle we can have the computer systems talking to each other without any human intervention.

The idea on paper looks good and as simple as ABC but in order to make this a reality we need to go through Dimension Shift (Higher than Paradigm Shift). This calls us to change the way we look at things, the way we analyze the events, things etc around us, the way we channelize our thoughts.

Until Next Time...:)

Tuesday, January 09, 2007

What is Knowledge Representation?

A Happy New Year to those who are reading this. May this year brings success in all your endeavors.

A while ago in my post relating to Knowledge and Its Representation I left with few questions as how to represent a knowledge. While I spent a fair amount of time reading about knowledge and its representation. Few days back I came across the paper What is Knowledge Representation by Davis, Shore and Szolovits from MIT AI Lab and Laboratory of Computer Science. I was confronted with few things:
  1. Knowledge Representation(KR) is a Surrogate. A substitute for the thing itself, used to enable an entity to determine consequences by thinking rather than acting.
  2. KR is a set of ontological commitments. ie It makes an attempt to answer the question as "In What terms I should think about the World"
  3. It is a fragmenting theory of intelligent reasoning represented in terms of the three components mentioned below
    • The representation's fundamental conception of intelligent reasoning
    • the set of inferences the representation sanctions and
    • the sent of inferences it recommends.
  4. It is a medium for Pragmatically efficient Computation ie the computational environment in which the thinking is accomplished.
  5. It is medium of Human Expression ie a language in which we say things about the world. The point to note here is that we are talking about the universal language here.
After reading journal while most of my questions were answered upto an extent, but the desire to know more made me read this entire journal 3 times so far. I am on my way to dig more on each of the point mentioned above and will be putting here one by one in future posts.

Until Next time...:)