Showing posts with label Semantics. Show all posts
Showing posts with label Semantics. Show all posts

Wednesday, July 01, 2009

What is Semantic Search

If I ask this question in a group of 10 researchers, I will have 11 correct answers of this (including one of mine) for sure. But the question will remain unanswered as what exactly is "Semantic Search"?

During Semantic Technology Conference 2009, this topic was debated among search biggies as what exactly is next direction of search ? One thing that came out of the discussion is page ranking and keyword search is definitely NOT the way the searches are going to work in future. One of the most probable future for search engine is "It will be more like a conversation with the user".

Currently the search engine work in "Tell and show the result" mode. The user enters the keyword and the search engine dumps all possible matches (based on page rank, keyword matches etc) to the user. Most of the time the results do not make any relavance to the search intention at all. A conversation style of search seems to be more appropriate where the user refines their search criteria with continuous interaction with computer. This resembles more of how we search information in our day-to-day life. The search session will be more like a brainstorming where the user will feed more and more information about what they know about what they want. The system will then return a set of most relavant searches to the user. The user then will add more details of what they want and the steps will be repeated till the user finds what they want. At any point in time, they would also like to go back and start from scratch.

One of the positive step in this area is Semanti search engine. This search engine provides a list of suggested categories where a particular keyword is associated. This is just the starting point for semantic search. The semantic search engine should be able to let the user feed more (unlimited) details of what they know about what they are looking for. These details (provided by user) could be directly related to the result they are looking for or it might not describe the result at all. Knowledge reasoning is a major influencer in the search process. Reasoning is the core of the semantic search process and will determine how accurate the search engine is. While the search engine is designed for accuracy, the efficiency will have to be compromised at least for a while. One of the possible scenario these search engines will have to handle is percentage accuracy of result based on the search criteria. The more matching result should be displayed on top of the list.

So what is your idea of Semantic Search?

Until Next Time...!!!

Saturday, February 28, 2009

Solving Problems in Semantic Web

It's been quite sometime since I am hearing about Semantic Web and what it can do. It's been the original idea of the World Wide Waste (WWW) since the day one. But somewhere down the line we seem to have side tracked from our original path. But the question everyone is asking is :
  1. In-spite of spending so much in terms of manpower and research funding why this problem is still a PROBLEM?
  2. Why we are drifting away from the actual problem i.e. the Semantic Web?
  3. How much time it will take before Semantic Web becomes a reality?
The answer is simple because nobody is trying to solve it. We have vendors whose sole purpose is to push and promote their tools and technologies. We have committees that work on the standards but somewhere they get side-tracked. Nobody is working towards the big picture where we can see all the pieces of puzzle fitting together. But everybody is working on small-small pieces and then calling it a step towards the Semantic Web. But that is not the approach that will work in this case. To achieve Semantic Web we need to :
  1. Identify what is needed to make it work. We are better of going away from current format of Web as trying to extract meaning out of Web (today) is like trying to extract water from stones.
  2. Bring a team of experts who then will sit together and get their heads aligned in one common direction.
  3. Build teams that work towards solution aligned with the top-level goal.
  4. Build the tools and technologies that is solely designed to build the Semantic Web.
  5. Last but not least Start Afresh.
I am sure if we take this approach we will have Semantic Web as a reality not just another science fiction.

Until Next Time....

Thursday, November 20, 2008

Facts, Beliefs, Truths, Goals, Statements

Off-late I've been busy reading about Semantics of Facts and Goals etc. There are many things in our day-to-day life that we come across. These are Statements, Facts, Goals, Beliefs, Truths, Obligations etc. Most of what we know or don't know fall in any (or more) of these categories. This made me thinking as what is this all about? What is the common thing among all these? What differentiates them? and many more questions pertaining to this topic.

Recently while researching on these topics I could draw these relations.
  1. Statement is the common ancestor of Goal, Beliefs, Obligations, Truths, Facts etc.
  2. Except Goal everything works is valid for a given time (has time component) and place.
  3. Expression of goal needs two states for the same object. One is the initial state and one is the State of the object at any given time t when we claim the object has achieved the goal. The statement that an entity has achieved its goal is always in comparison to the state of entity at the time when the process to achieve the goal begun.
  4. Beliefs change over period of time.
  5. Facts are discovered not invented. They are present whether we know about them or not.
  6. Facts belong to Closed-World semantics.
  7. Beliefs belong to Open-World semantics and as discussed earlier they are constructed and can be destroyed as well.
I still have long way to go on this way. Any pointers from readers would be good.

PS: Its been almost 2 months since I had my last post on this blog. But I plan to come back in full swing soon and start posting regularly.

Until next time... !!!

Monday, September 01, 2008

Predicate and URIs

While going through different papers I realized that almost every research paper has different functions that do some common operations and work on two objects. Say isMotherOf(x,y) could be mother(x,y) and so on. Now the questions arises that if there are many such predicates exist in different knowledge base then how will someone know that they are related and they virtually do the same thing.

The Predicates are like function or relation-builder as they establish relationship between two objects. So we can very well say that the predicates are the base for our reasoning mechanism or determining what the two objects are all about. It also plays an important role in the context definition of the two objects.

This gives me a strong point to put forward the predicate being a URI so that two knowledgebase if they are using the same predicate or relation then they do mean the same thing. Using this principle a Reasoning Engine can be developed that can extract the meaning of the statements / facts etc in the system. If we design a system on this principle then the amount of ambiguity we need to deal with will be less.

The RDF facilitates the Predicates to be both URI and simple text, but in long run the simple text might look flexible or simple to work with but more people will use URIs for the predicate in RDF. Removing the ambiguity once and for all is a distant dream though. Even though we follow these principles, we will still have some duplicate predicates in the system. But somewhere along the line we need to develop a mapping that will assign aliases for both the predicates and based on popularity the less used one can be phased out in due course.

Until Next Time.....

Monday, July 21, 2008

Entities and Representing Facts

In my previous post I started a discussion about Inferencing and Facts. The biggest challenge we have is how to represent these facts in the computer system. Last week I was reading the paper "A Library of Generic Concepts for Composing Knowledge Bases" by Ken Barker, Bruce Porter and Peter Clark, Proceedings of K-CAP 01, October 22-23 2001.

In this paper the authors make a classification between Entities and Events. Entities are things that are and Events are things that happen. Events are states and actions. States are static situation brought about or changed by actions.

To elaborate further on this Entities are the state information or the facts. Actions apply on those entities. So if we revisit our earlier post the facts can be represented as attributes of an object. Like Sun rises in east can be represented as Rising Direction (Predicate) attribute of Sun (Subject) with a value East (an instance of type direction). Similarly we can also represent other facts mentioned in the earlier post.

Any second thought????

Until Next Time ....

Thursday, May 22, 2008

Reasoning and Inferencing

Whenever I read about a journal or article on Artificial Intelligence, it sound like a science fiction to me. Okay okay I may not be up-to-date on my knowledge about what is happening in AI field. But more often than not what I find is most of the scenarios described in those fiction (?) are related to inference.

I read somewhere long back that Inference is the act of attaining a conclusion based on certain facts already present in the system. What are facts? In my opinion it is do to with the statements presented before us. But does the computers understand the statements as we do? I guess not. Then in relation to computer system the facts are the object, and their attributes. So we have few objects and their state information (as attributes) and we need to deduce a conclusion from that. How do we do that?

In order to combine these facts the system needs to have certain ability (A set of rules which will let us combine these facts together and infer something). This ability could not be anything else but Reasoning. By Reasoning we mean semantic relationship here. As we discussed in earlier posts that we need to have proper annotation in order to do Semantic Search and establish semantic relationship among entities in the system.

I guess I am getting more and more philosophical on this topic. I remember in our childhood we used to have a phrase. More Study More confusion, Less study less confusion, No Study NO Confusion :).

I would love to hear from readers about their opinion on relationship between Inference and Reasoning.

Until Next Time... :)

Wednesday, May 14, 2008

Can we beat Google for Web Search?

Sounds like the most difficult question we faced so far? In Today's world we are relied on google so much that we are not in a position to think that we can have a day at work without using google search and also that there is a better search engine than google. Google has created so much hype around and has made us dependent on itself that we benchmark every new search engine against google. Including those who existed before google like yahoo, altavista etc.

But while google is becoming powerful with each new application it releases, and upgradation it does to its search engine there are still few important points which is missing in google search engine which happens to be the core of google.

Most of us who are interested in Search Engine and how it works have read the paper published by Page and Brin on original google search engine architecture and also the initial version of page ranking algorithm. But over last few years they have believed to change the original page rank algorithm. There are few problems with this search engine.
  1. The page rank considers based on Words and the documents.
  2. The google search is based on current web. Whereas the web is growing and evolving with every passing minute. The paradigm of World Wide Web is Persistent Publish and Read. Which holds good to an extent but the web we are looking at today is evolving. We are not in the era of one publisher and many readers but today we have more content producers than readers on web.
  3. The page ranking algorithm uses the index table and the crawler (software) traverses through the links available on page to navigate to next page and so on. The philosophy what google and many other search engines have adopted is to represent the pages as set of nodes (or documents) connected to each other by a static link (HREF). They see it as some sort of tree structure. Whereas the web is not exactly like that. There are pages that do not have any link at all no incoming and outgoing link. Such pages are left behind by google search. An example is my poetry page which is very much hidden from the google search. Though its been on web for almost 3 yrs now. The google crawler managed to reach the main page of my homepage but could not get to the poetry page as there is no link to poetry page from the main page.
  4. We do not maintain a registry which is based on relevance for the web pages outside the page. The google search engine uses the keywords found in the page while indexing. But there are chances that a page which is relavant might not contain the keyword at all.
  5. Though Google is planning to use Latent Semantic Indexing for its next upgrade for page ranking, the accuracy of result is still doubtful.
This was about the problem, but then what is required to beat the google search engine? As discussed in my previous post on similar topic. I stressed the need for a Semantic Search for the web. The semantic search is missing in google search engine and unless that is made available the google search (and for that matter all other search engine) will still give us the irrelavant results (in abundance) when we query them.

Until Next Time... :)

Friday, May 09, 2008

Why Semantic Search?

In my previous post I discussed search engines in general and also how do they build the index table which is the core of any search engine. One thing which became very clear after these studies that the search engines available today are very limited when it comes to functionality. The keyword search does not leave much room for returning the relevant result. In google if we enter Paris Hilton as a search keyword we also get Hilton Hotel in Paris returned as search result that too on the first page. But the search engine there is not able to distinguish that we are not looking Hilton in Paris but Paris Hilton celebrity. On the other hand if we enter Hiton Paris we also get Paris Hilton in our search result. One way or the other the search result we get is not relevant to what we are looking for.

Last night I was reading about Latent Semantic Indexing (LSI) and that did give some hope. I found this page at SEOBook explaining it in a much simpler way about LSI. There are other references as well but this is one page which other than Wikipedia that explains it in a layman's term.

But the million dollar question we are faced with is whether LSI is going to take away the pain of going through irrelevant search results when we query the search engine. In my opinion that is still not very clear. As the algorithm of LSI is still based on the keywords found in the document. And that is not going to take the pain away unless we use the semantic search. But then why semantic search?

Semantic search as most of us know is based on the meanings conveyed by the objects. The term meaning has more depth than it appears from surface. The semantic search is not new, its been there for centuries now. In ancient times philosophers have given the mantra to the world as how to perform the semantic search. Its just that only a handful of people (technologists) today take the pain to read through those literatures. What the current search engines fail today is to restrict the result to what the user wants. We are allowed to input only a bunch of keywords.

In case of Semantic Search the driving factor is context as different terms (or concepts as John F. Sowa describes it) have different meaning or interpretation depending on where they are used. If we build a search engine around these philosophies then we can definitely achieve semantic search (upto a great extent).

Until Next Time... :)

Monday, April 28, 2008

Reusing Ontology

In one of my earlier post I had put emphasis on Why we need a Common Ontology. Over last couple of days while reading through different papers and books I came across few cases which explains why we need a common ontology.

One of the basic idea of Semantic Web is to allow user to reuse an existing ontology if it meets our needs. Alternatively in the worst case we should be able to use a part of it to fulfill our requirements.

At the same time if every user of the web starts to build their own ontology then there would be no common language and shared understanding about anything. There would be no interoperability of any kind between the two agents using those ontologies. There would be no global processing possible either. The exchange of message will not take place and different machines cannot interpret the messages either.

Thus without ontology reuse the very basic idea of Semantic Web is void. Reusing ontology to an extent is even more important than reusing a URI.

Until Next Time.....

Tuesday, March 25, 2008

Search Engines

After a long gap I am posting something to my blog. Well there has be numerous activities and the most important among all those was getting married last month. The whole February month was filled with travel, meeting family and friends etc. Finally the day when I realized, the holiday was already over and it was time for me to come back to real world. Well I am back now in real world and will be posting something interesting as I discover something on the way of my research on the semantic web.

The most common use of internet today is for searching. The idea is to locate and access information or resources on the web. For example finding out more about the Formula 1 cars etc.

Today the search engines are based on Keywords. They can retrieve documents which contain the given keywords. As long as they given document contains the keyword it will be included in the search result and later shown to the user. The current web then passes on the pain to read and interpret whether the page makes any sense to the user or not. To understand this let us see how search engines are constructed. In this and few more upcoming posts I will be discussing in detail about the search engine and why they function how they function. In this post I will focus primarily on the problem (as described earlier) and some more detail about the search engines.

Today the contains hundreds of millions of web pages. To locate few handful of paged we might be interested in among those hundreds of millions of paged we use search engines like google, yahoo etc. They are the most popular search engines besides others like Altavista, Live Search etc. Inspite of the differences claimed by them a large part of it still remains the same. The fundamental of a search engine building remains the almost the same.

In the future posts will discuss about how the search engines are constructed and why they can do only the keyword search. The next post will be based on creating Index table which is being used by the search engines.

Until Next Time....

Sunday, January 06, 2008

Uniqueness of Entities

I was having a discussion with a friend of mine about what makes an object (entity) identifiable. The conversation started with different attributes of the object and then we got into a situation where we had to distinguish two objects who had similar attributes.

More often than not in an Enterprise System we are faced with a situation where two objects come across having similar attributes, which primarily (on a higher level) identify them. When we are faced with such situations then the only way out is to identify another attribute attached to the object which is bound to be unique. In a database application we have the primary keys generated by a sequence generator which guarantees its uniqueness. One the commonly used real-world example is Social Security Number in USA. The social security number is bound to be unique. Another unique attribute is the Credit Card number which is supposed to be unique as well.

In light to the above example the question we have is what is the unique identifier of the object. Is that something attached as as attribute to the object or it is the one which defines the object (rather the object itself). The more we think and discuss about it the more we come to a conclusion that there is no fixed rule as such. Both object being its own unique identifier or the object having an attribute which could uniquely identify it have their own pros and cons. COM uses GUID as a unique identifier for the objects created. A GUID is likely to be unique even though it is generated at many computers simultaneously and is done for years without any interruption.

I personally kind of find myself torn between the two approaches. Object being its own unique identifier has the benefits like the two objects can be identified unique even though they have no attributes to identify them. Whereas having an attribute which makes an object unique is that we can always work out a better combination (of attributes) if the current one is no longer able to gurantee the uniqueness.

I would like to hear from our readers what approach they would prefer in such scenarios and your experience as well. Hope this year brings lots of Joy, Happiness and good times to all of us.

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.. :)

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...:)

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... :)

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... :)

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... :)

Friday, June 22, 2007

What is an Ontology?

While reading about Semantic Web we come across one common term always, The Ontology. What I found that every site and author gives a different definition of ontology. The best of that I liked was what was given by Tom Gruber "An ontology is a specification of a conceptualization".

I tried to find the answer at few more places as what the ontology is all about. There were few interesting answers I got:

Webster Dictionary
1 : a branch of metaphysics concerned with the nature and relations of being
2 : a particular theory about the nature of being or the kinds of things that have existence

David Koepsell, Center for Commercial Ontology:

“Ontology is the very first science. Ontology involves discovering categories and fitting objects into them in ways that make sense…. When we make a list of things to do, or of records and books we most want to buy, or videos we intend to rent, we are categorizing-we are engaging in rudimentary ontology. By prioritizing items in a list, we are assigning relationships among various things. Ontology can be relatively simple, or it can be quite complex.

Ontology becomes more complex, and even daunting, when we begin to grapple with large domains of objects with complex relationships among them. For instance, anyone who has attempted to outline the processes and components of even a relatively small enterprise has experienced the brain-cramps that can come with complex ontology.”

Wordnet from Princeton University defines ontology as
1. (computer science) a rigorous and exhaustive organization of some knowledge domain that is usually hierarchical and contains all the relevant entities and their relations
2. the metaphysical study of the nature of being and existence

There are many more definitions available on net and one is bound to get confused when he/she comes across so many different kinds of definitions of the same word. But what actually the Ontology is? The question still remains unanswered or not convincingly answered.

From my study about ontology I found that It is explanation about the things as they exist in the real world. I am not after another definition here but just making an attempt to simplify for my understanding. But at the same time one of my associates think that Ontology is a Reasoning mechanism and it is representation of the logic.

What I am looking to work out is a generalized way to define the ontology which is universal in nature. I am sure many out there will disagree with me on this point that there could be a Universal Ontology. But my question to those people is why it can't be? What is so difficult about ontology which is stopping it from being represented in a general form.

In one of my earlier post on Knowledge Representation I mentioned that Knowledge Representation makes and ontological Commitment. If that is the case then each object in this world is part of one or more ontology. And if an object can exist in more than one ontology then there has to be some sort of similarity between two of them. Just thinking on those lines I guess it is possible to have a set of general ontology defined for all kinds of objects in existence today.

For those who are reading, I would love to know your view on this.

Until next time... :)