Tuesday, July 17, 2007

Interoperabiility

Interoperability is one of the buzzword that with the Advent of web 2.0 is become famous day by day. Every now and then some company announces that their product is fully-interoperable etc. Slowly it is becoming one of the most abused terms as well, like many other terms associated with Semantic Web like Ontology, Taxonomy etc.

According to Wiki the term interoperability with respect to software is defined as, the capability of different programs to exchange data via a common set of business procedures, and to read and write the same file formats and use the same protocols. (The ability to execute the same binary code on different processor platforms is 'not' assumed to be part of the interoperability definition!)

In a simple sense the term interoperability can be defined as Ability to work with each other, Without knowing the details of how it works. But it is easier said than done. We do have some standards like Web Services(WS) which can very well be useful to achieve interoperability but at what cost? If we use WS then we are tied to the input and output message structure and given the case sensitive nature of XML it becomes a nightmare at times (at-least to debug).

But at the same time if we can achieve the persistent publish and read mechanism for the systems then it should not be a problem as I see. What is required here is:
  1. A common structure at least in theory which could be understood by an application at runtime. What I mean here is we should have the data and data structure (metadata) also persisted somewhere. So that application can pickup metadata and parse it to understand the data. Upto an extent XML, XSD or RDF and RDFS can solve this issue. The XML (along with its subsidiary technologies) is the best bet here though there are numerous overheads associated with it.
  2. URI (URL) based access of data. So that one application can save the data to a location which is picked up by another application. Also the consideration must be made to ensure that it accidentally does not erase data written by another application if the space is shared by many applications.
  3. Some way to notify application that data is persisted so that another application can read the data. Alternatively the message for recipient can be written in a common pool which the recipient inquires periodically to see if it has an incoming message. A Message Queue implementation (JMS, MSMQ) will be handy here.
  4. A parser at both Sender and Receiver end to parse the metadat and then interpret the data. For reasoning the metadata and data both OWL-S can be used. Not sure how much helpful it will be to use Description Logic here though.
I guess this is just the beginning and I am going to collect all these bits and pieces sometime to bring them together.

Until Next Time.... :)

Tuesday, July 10, 2007

Graph Theory and Semantics

Last Weekend I spent most of my time revisiting Graph Theory which I studied first in 2001 during my MCA course and since then had forgotten quite a lot of it. At that time I did not find this topic that interesting and studied just for the sake of clearing exam. But last week I was going through some links on Wikipedia and it struck to me if I can use Graphs to show the relationships among objects in a system where the objects are attached to each other based on some sort or relation.

Going back to what John F Sowa described in one of his book Knowledge Representation about concepts and relations. In my opinion there lies the potential of using Graph Theory to list the relationships among different concepts existing in the same space.

Each Vertex of the graph could be the concepts as defined by Sowa and the Edges of graphs could be the relationships between the two concepts. The Edges can be uni-directional or bi-directional depending on what kind of relationship the two concepts share. The immediate benefit of this as I see is, it will facilitate the visualization of the system where each of the object exist in isolation.

While this is the thing that came to my mind when I had a read through the Graph Theory last week, I can see it being applicable to more areas as far as semantics is concerned. I am expecting by this weekend I will have a good amount of information as whether and how much graph theory can help in semantic space.

If you have similar thoughts would love to hear your views on this as well.

Until Next Time... :)

Monday, July 09, 2007

Off Topic - A Mysterious Visitor

Hello to all the readers and visitors of this blog. I thank you for the time you spend reading through the thoughts I put in here.

However recently while looking through my visitors log I found that there is a Mysterious Visitor to the blog who is located in LA, California and (s)he loves the blog so much that he makes it a point to visit at least 4-5 times a day at times. I am yet to get the complete detail of this visitor and just wanted to let him know that I am very close to know who you are. But before I do that it will be good if you can let me know little bit about yourself. I will be happy to exchange thoughts with you.

My email id is located on top left of the blog page and last time I checked it worked fine so that should not be a problem either.

Little busy these days reading graph theory and its application(s). I am trying to find a possibility to represent a semantic relation using graph theory. I will be back with regular content in couple of days again.

Until Next time.. :)

Wednesday, July 04, 2007

Intelligent Reasoning - Demystified

Often in the texts of AI, I come across this term called Intelligent Reasoning. Different texts give their own definition of this term. More often than not the questions related to Intelligent Reasoning comes back to me.
  • What is Intelligent Reasoning?
  • How to define Intelligent Reasoning?
  • What is the requirement for a reasoning to qualify as an Intelligent Reasoning?
In quest to find answer to my questions, I first looked at different sources for the definition of meaning hoping that adding intelligence to the process of reasoning is the right answer. But after reading tons of text I understood reasoning as :
A way or process to base our beliefs, actions, philosophies, concepts etc. This is in layman's term what I understood about the intelligent reasoning. There are resources available who had more complex definitions than I can understand.

Now that I understand what the reasoning is, the questions about the Intelligent Reasoning again popped up. I looked back at the questions once again and here is the answer I came up with. This is related in context of Artificial Intelligence and applies to machines only :)
  1. What is Intelligent Reasoning? A process to establish a statement, a theory, belief or action in a way as it is performed by human beings.
  2. How to define Intelligent Reasoning? We have various ways of looking at things, 1) the way they appear or 2) the way they function. While the first approach focuses on Why and What, the second concentrates more on How?. Using these as a mechanism to based a concept could be closely defined as an Intelligent Reasoning Mechanism.
  3. What is the requirement for a reasoning to qualify as an Intelligent Reasoning? Any reasoning mechanism which is built on the top of existing facts and which co-relates statements, facts to deduce another fact/statement which is not obvious from the fact could be classified as intelligent reasoning. Say for example given the statements like
    • A is Brother of B
    • C is Sister of B then we conclude that
    • C is Sister of A
Here in this example above the third fact is derived on the basis of first two facts. The mechanism to reach to the conclusion (3) is classified as intelligent reasoning.

AI being a relatively new field of study, the intelligent reasoning derives its meaning from various other streams like Mathematics, Psychology, Biology, Statistics and Economics who have contributed a lot towards distinguishable notions of what constitutes intelligent reasoning.

The thought of learning in depth of Intelligent Reasoning came to mind while I was working on Ontology server and its architecture for one of the ambitious projects of mine which is receiving great feedbacks from whoever has heard about it. The idea is maturing as I am digging it more and all the bits and pieces like AI, Intelligent Reasoning, Ontology, KR, Semantic Web Services are coming together like different pieces of same puzzle. I will keep putting my ideas and thoughts here as I always do but if you want to be part of this, pls feel free to contact me. I am always reachable for discussion :)

Until Next Time... :)