Thursday, January 06, 2011

Reasoning Engine Logic

Its been quite some time since I did a blog post. It took me a while to understand what I want to get out of my reasoning engine. After spending considerable amount of time to understand how reasoning engine should work, I came up with these (mentioned below) points to summarize how the reasoning engine should behave.
  1. How to Select the entities for Reasoning? This includes the mention of what kind of entities we are interested in, what is the selection criteria for those entities to be filtered from others in the knowledgebase etc.
  2. What information is needed from those objects? Not all attributes of the entities are useful in output result. We need to be specific about what attributes we are interested in from the selected entities.
  3. How the details needs to be presented in output? The representation of output object (entity).
  4. What level of detail is good enough? We need to define a boundary where we can say the detail presented is sufficient enough for us to proceed further.
  5. What can be derived directly and what can be derived indirectly?
That's all for now. Will try to post regularly now (one of my new year resolution). Until Next Time... !!!

Wednesday, January 27, 2010

Semantic Search Criteria

In Previous posts I mentioned Semantic Search and the starting point for Semantic Search. But as we all agree that search needs some sort of criteria to filter the results. In this post I am going to put down my thoughts on what I see as a criteria for the Semantic Search.

Semantic search is a result of conversation between user (human or machine) and the machine. The conversation is two way where the requester sends out search criteria and machine brings out a possible set of results that matches the criteria. But there is a twist to this process. The search criteria for semantic search is not straightforward like normal search. There are more to the search criteria than a query condition. For Semantic Search:
  1. We need to mention whether the condition must be meet or it is not important to fulfill the condition.
  2. In case there is a contradiction (with another condition) which one would take precedence?
Also the output must contain the relevancy factor with respect to the criterias entered by the user. There should be some sort of indication as how many of optional and additional criterias have been meet.

I am still yet to work out how the criterias will be evaluated against the objects available within the knowledgebase. Will be posting my thoughts on this as I progress further.

Until Next Time....!!!

Wednesday, December 02, 2009

Search : Past, Present and Future

In my previous post on semantic search I discussed the drawbacks of current searches and also mentioned that it takes average 3 google searches to get the desired result.

Recently I read a paper on evolution of search 3.0. This paper described how the search has evolved over a period of time. This is what author has to say in the paper:
"In the coming third decade of the Web, Web 3.0 (2009 - 2019), there will be another shift in the search paradigm. This is a shift to from the past to the present, and from the social to the personal, and from the generic to the precise."

In short the next generation of search will be returning results based on the information supplied by the user. This means user's data has to be available to the search engine or user will publish a personal information (virtual card) along with every request they submit. These details will be metadata driven and will be used by various search engines to filter the search result and tailor it to suit user requirements matching his expertise level.

What it means is each content that is published on web must publish the metadata that describes what the content is. The metadata must contain sufficient details about the content and must be in a form that it can be interpreted by search engines. But metadata is just one side of the story. The search algorithms must be modified to make use of this metadata and produce the results considering the (published) user information. While some searches will be locations independent, there will be few searches that need to be location sensitive and the results must be valid in current location of the user.

Until Next Time...

Wednesday, November 11, 2009

Representing Uncertainty

In one of my earlier blog post Is AI a Possibility I discussed the need of a 3rd state. For past few days I am thinking about scenario where just returning a Boolean value ie True or False is not good enough.

Normally a function evaluates to either "True" or "False" based on whether the attributes of the entities meet the conditions defined in the rule or not. But it may happen at times that the entity does not contain the attributes required by the rule to evaluate it properly. Then in that case we need to have a 3rd (Not Available) and 4th (Not Applicable) state as rule outcome. When a function returns Not Available then the it implies that the entity does not contain the attribute needed for the rule to execute or process the object. On the other hand Not Applicable means the rule does not apply to the type of the entity in context.

So in total we have 4 return values for the function:
- True
- False
- Not Applicable
- Not Available
A Boolean value (outcome) is not the possible solution here. So we need an alternate representation here for the function result. All functions cannot evaluate to True/False. For those rules (functions) that cannot be evaluated we need to find out the what was the state (Not Applicable or Not Available). When we apply multiple rules to the same object in a sequence (workflow) the outcome is a set of conclusions. But the conclusion must include which rule was evaluated and which ones could not be evaluated.

I am still puzzled as how to represent the two more state considering that internally everything is represented as either 1 or 0 and that does not leave room for representing uncertainty.

Until Next Time....

Monday, October 26, 2009

Representing Frequency

While reading about Tree of Porphyry (proposed by Ramon Lull in 1272) I learnt about the 10 questions that can be asked to any entities. But one thing that was missed out of this list is representing frequency. Suppose some process A takes place every 2 days. So we need to find a mechanism to represent the repetition and the frequency at which this occurs. Ramon Lull describes When as the question that can represent the date and time related attribute of the object.

What I propose is extending the 10 questions as listed in Tree of Porphyry and adding another question to the list How Often. The purpose of how often is to represent the frequency of a repetitive attribute of the object. It will have few sub attributes like a Value (How Much) and the Unit (What Kind). Together these will describe the nature of the repetition.

Until Next Time...!!!