Thursday, February 22, 2007

Semantic Web and Semantic Web Services

Last night I was reading this paper from Hepp about Semantic Web Services (SWS). The paper tile is Semantic Web and Semantic Web Service: Father and Son or Indivisible Twins? This was published in IEEE Internet Computing March-April 2006.

While this paper starts with giving numbers about recent Semantic Web conferences in terms of attendees, industry participation etc. The best thing which I came across in this paper were the facts about Semantic Web and Semantic Web Services. In this post I am writing down what I learnt after going through this paper.

Myths about Semantic Web: While it is widely believed that the next generation of web will have the contents which can be interpreted by computers. The intelligent search engines will be based on meanings which will produce the search result as per the relevance not just the meta tag. This on one hand while looks promising it also is based on several myths:
  1. Everything is Available on Web: Many people today believe that all the information we need in todays world is available on World Wide Web. While this sounds true but far from being real. I come from India and there are many places one can visit and which is of historical importance. But there is almost none information available about them on web. Most of the hotels in the big cities like Bangalore, Delhi, Mumbai does not have the booking or enquiry facility on web. In Order to get any information about booking rate etc one has to pick up the phone and make few phone calls. And they are not 1-2, rather a majority of other businesses also have the similar kind of presence. They are known to locals and people who visit there quite often but they don't have any presence on web.
  2. The Business Systems, Web is not Stateless: A fully compliant web-application should not change its internal state as a result of a http read of an available data. In other words unless the transaction occurs the behavior of a web app should not change at all. But as per one survey almost all business applications do not comply to this standard in todays world. In business world, there is always scarce for resources and that drives the competition today. For example if an airline has say X number of seats for a special fare on some routes then if there are X+1 people querying at the same time the last person who runs the query does not get the discounted fare as the system thinks that the prices are not available at all. Note that its just query and the transaction is not made yet. This while represents the real world scenario, it puts a big question mark on the query results received by two people who are looking for the same thing at the same time.
  3. Annotation of Data Vs Annotation of Functionality: There are evidences of work being carried out to annotate dynamic web contents. But the hard reality is the data what is being generated on a web page comes from an underlying database. The business data is very volatile in nature and annotating that will never give a correct result. So annotating data is virtually impossible. But there is still something which can be done. A function can always declare what are its pre-condition, its logic (as what it does) and post-condition ie how the system's state will be affected as a result of function execution. This feature is already available and one can use Web Service Modeling Ontology(WSMO), OWL-S or Semantic Web Service Language to achieve the same. Also SparQL provides capability to query RDF databases.
  4. The Matchmaking Process: Well it has nothing to do with the matchmaking advertisements on the web these days :). In any industry all the data is not available to everyone. A car dealer never reveals what the best price they can offer on cash purchase. Same goes with any other business. The business never reveal all the secrets and offers on web because fear from competitors. Now this brings a problem in the system. Suppose a car dealer wants to give a 5% discount on cash purchase. Now when a customer is looking at prices on web he cannot find the option whether he/she wants to buy it outright (cash) or on finance. And he will have no clue about the best price he can get. Web in its current form cannot recognize whether the visitor making enquiry is a genuine buyer or just another visitor. This matchmaking process is too complex. It may sound simple in real world but a computer program doing it requires high degree of complexity built in it.
No Semantic Web Without Semantic Web Services: The time is coming where most of the businesses are publishing their services over web in form of Web-Services. This is a much cleaner approach than directly publishing data on the web. In order to transform web into a Semantic Web we need much more than just the static page annotation. We need a dynamic mechanism to retrieve the data based on the current context. Semantic Web Services are promising to provide that missing capability to the web. In todays world the number of materials available on web on semantic web is very less compared to Semantic Web. A Google Statistics for search results on different topics are listed below.
Semantic Web - 20,600,000
Semantic Web Services - 777,000
OWL Ontology - 150,000
OWL-S Ontology - 828
OWL-S Web Services - 230
WSMO - 245,000
WSMO Ontology - 589
WSMO Web Service - 841

These are the search results as of today when I performed the google search with whole search keyword within quotes.

What it indicates is that the number of research papers being published on Semantic Web Services is very less compared to Semantic Web. I guess this calls for research community to increase the participation in the field of Semantic Web Services. We as a research community should think about how we can make Semantic Web Service more reliable. What is the feasibility of Automated Discovery, Composition and Orchestration. Whether a lightweight option is available. It is not just any other AI research topic. The researchers also have to consider the market factor and how businesses operate in real world.

Until Next Time...:)

Sunday, February 18, 2007

SWS - Web Services Revisited

Today while reading a paper on Semantic Web Services I just did a google on Web Services. Guess what? Google search result returned 1,250,000,000 ie 1.25 billion pages. Well I cannot blame google here as every third page(technical) in the world talks about Web Services, SOA, REST, UDDI etc :). Sometimes I wonder how it is going to be developing applications in 5-10 yrs time. We will be developing services and that will be sold by the companies worldwide.

More than enough can be found about what the Web Services are and how important they are in current world etc. So I would rather not go into that detail and concentrate on bullet-points instead.

What makes a Web-Service special? This is the question many people asked me in the initial days of Web-Services. Well we all (most of us) come from an OO Programming background where we learn to use (rather re-use) classes. Web-Services take this concept of re-usability to the next level where we can re-use the application as it is. In real world OO can be explained as talking to someone about how the car looks like and WS is actually handing over the car-keys to him.

What was there Before Web-Services?
Before we got acquainted with Web Services we had few technolgies in past. The computer system started with a piece of monolithic application and then we moved to 2-Tier, 3-Tier and n-tier application where we created abstraction or layers in between logical separation of application components (eg Presentation, Business Logic, Data Access etc). When we moved our applications to n-tier we came across several technologies which helped client application to commonicate with server component.

Before we reached to Web-Services we had Remote Procedure Call(RPC), Common Object Request Broker Architecture (CORBA), Component Object Model(COM) and Distributed COM (DCOM), Remote Invocation Method(RMI), Messaging(IBM MSMQ) etc. The common thing among all these technolgies were that they viewed application as components and their primary focus was to use component's functionality in a way that it could be independent of Hardware Platform, Location, Language, Operating System etc. Upto an Extent they did succeed in achieving the same.

Technology Enablers for Web-Services: A while ago there were talks about Application Service Provider (ASP) model. The idea was to enable organizations renting their applications from ASP vendors and not to worry about hardware purchase, software license, upgrades, availability, scalability etc. Though this idea died prematurely, the Web Services are expected to bring renaissance to the ASP model. Lets have a look at the technologies which enable Web-Services.
  1. Extensible Markup Language(XML) is to data of Semantics what HTML is to rendering of Web documents. XML does not impose a set of pre-defined tags like HTML does. The beauty of XML document is that it is hierarchical in nature. A XML document is called Well-Formed if it confirms to the basic syntax rule of XML and is valid if it is Well-Formed and confirms to the rule of DTD or XML schema.
  2. Web Services Description Language (WSDL) is used to describe Web Services. The WSDL document provides enough information about how to interact with the Web-Services. The WSDL document contains Five Elements three abstract elements and two concrete elements.
    • The Abstract Elements define the interfaces. Types are embedded XML schema where data types are defined; messages describe details of methods and their parameters; portType defines operation in terms of input/output messages.
    • The Concrete Elements on other hands defines physical properties; binding provides protocol information for the operation and service address provides URI for locating a service.
  3. The Simple Object Access Protocol (SOAP) is an XML based communication protocol and encoding format for inter-application communication. This is backbone of Web-Services. SOAP consists of following parts:
    • Envelope header which specifies application level requirements, digital signature
    • Envelope body describes message content and processing instructions. It also contains application specific data like method name, parameters and return values.
    • Encoding rules which is used for application defined data types based on W3C XML schema specifications.
    • The RPC conventions specifies a convention for representing Remote Procedure Calls and responses.
  4. Universal Description Discovery and Integration (UDDI) registry is a collection of information on all the registered web services. Its main purpose is enabling dynamic discovery of Web-Services. It is a free public registry. Vendors publish their services and consumers search for Web Services they need. The UDDI has three major components:
    • white pages which contains address, contact details and known identifiers for the Web Services.
    • yellow pages contain industrial categorization of the Web Service based on standard taxonomies.
    • green pages contain technical information about services.
How are Web Services Used?
  • Web Services are provided over HTTP protocol. When a Software is available as Web Services it takes away the issues like platform, hardware, Operating system, programming language etc from the organization using it. This opens a whole new way of developing applications. In future the applications will be developed by selecting the appropriate Web Services published by different vendors and one application to tie them all together.
  • Large corporations have systems which is been in places for many decades. These systems are running on mainframe and developed using COBOL etc. But even today they are the backbone of the organization. But in todays world the demand has been raised to access those applications over web. Web services are used here to provide a wrapper for the legacy system using Web Services framework.
  • In the global economy an organization needs to lias with multiple vendors, customers etc and most of the time they are spread globally. Web-Services are useful there to develop an interorganizational system which can interoperate with applications of Vendors, Customers etc.
  • Business Process Integration (BPI) is a methodology of coordinating and executing sequence of steps to accomplish a Business task. Each step could be a different application which is located at either Customer or vendor site or is internal to the organization.
This is about the Web-Services in a nutshell. Next post onwards will start putting my thoughts on Semantic Web Web Services (SWWS).

Until Next Time...:)

SWS - The Initial Impression

Last week or so I started to get acquainted with Semantic Web Web Services (SWWS). I was drawn to this topic when during one of my digging (information browsing) session I came across Web Service Modeling Ontology website. The concept did fascinate me and I started to collect materials from different technology and research portals and collected lots of materials on the same topic.

In order to do that I had to re-visit the Web-Services once again. This time I was hoping to find something which was missing when I had a look at WS last time. But to my disappointment during last 2-3 yrs the Web-Services as a Technology (rather Specification) did not show much improvement. The problems like Orchestration, Choreography, Transaction Control, Authentication etc still persist and I am not sure how they are going to be resolved in the near future.

While in first glance it seems to be promising. Yet so far I am yet to find a paper which describes how we tackle the problems faced by Web Services as a Technology.

I have started to dig more into this area hoping to come out with some solid reasoning and integrate the same with my work on Knowledge Representation. Keep watching this space for more on this topic.

Until Next Time....:)

Saturday, February 17, 2007

Types of Knowledge

I was reading the book Knowledge Representation, An AI Perspective and there I came across a very simple but interesting classification of Knowledge. The knowledge at top level can be classified into two Categories:
  1. Domain Knowledge: This deals with the finer details about the domain an application is targeting to. The program knows which domain it is being used for. So the program has the details about the domain it is operating within.
    • The first type of domain knowledge is Structural Knowledge. It denotes the types of entities which are relevant to the application domain. In a Retail domain entities like Invoice, Receipt, Customer, Supplier needs to be mentioned as they are part of the knowledge within the domain. There are also occurances of hierarchical Knowledge eg Cash Receipt is a kind of Receipt and so is Cheque Receipt.
    • The Second type of domain knowledge is Relational Knowledge. This deals with relationship between the entities which are distinguished in Structural knowledge. In retail domain attaching Customer to an Invoice and Supplier to a Purchase Order is an example of Relational Knowledge. They help in deriving some logical conclusions based on the relationship among the entities like if the Invoice is not paid after the due date is over then the Customer Account is in Arrear.
  2. Strategic Knowledge: Domain knowledge is good as long as we collect the data and represent it in meaningful form. But in order to make some meaning out of the domain knowledge the Strategic Knowledge is being used. This knowledge is particularly used for solving problems within a domain. Say for example in the retail domain if a customer is been paying in time and last couple of invoices are due for payment. The supplier might still decide to sell him goods looking at his/her payment history.
While the distinction between Domain (Structural and Relational) and Strategic knowledge exists more at and abstract level. More often than not the domain knowledge is tightly associated with Strategic Knowledge.

This was first analysed by Clancey(1983) and Wielinga and Breuker(1986). The practical importance of this classification is often seen while developing expert system. There the human expert is first interrogated in order to understand how human expert solves problem in their area of expertise. The methods applied by experts are often driven by the domain knowledge they acquired over the years. This in turn creates a high-level of dependency between domain knowledge and strategic knowledge making it hard to be distinguished as two different.

While domain knowledge are very much fixed in nature, the strategic knowledge are driven by human factor as well. The human factor plays an important role in Strategic Knowledge. In order to develop a system for strategic purposes we need to have some sort of human factor incorporated. The best could be using domain knowledge to present Multiple Options to the user and let the user choose which one suits best or override all the options with the totally new option.

Until Next Time.... :)

Sunday, February 11, 2007

Changing Track for Sometime

Last week I came across a very good technical paper while googling for Web Services and Semantic. This paper was about Using Semantic Web Services. I also came across this site called Web Service Modeling Ontology which did fancy me and made me visit this site again and again over next few days.

At this point in time I am planning to change my track for a while and nail down the details of the Semantic Web Services before coming back to KR again and continuing from where I stopped.

At first instance it appears very interesting topic to dwell into.

In coming day / weeks I am going to put few posts about what I find in Semantic Web Services.

Until Next Time..... :)

Saturday, February 10, 2007

Applying Semantics in Real-Life

Today morning I was replying to an email from a friend of mine in India. While replying to her email I did remember doing different kind of analysis (which I normally do) based on the persons details. Actually its very interesting thing to do in its own right. You come across various facts about the person which he/she is not aware of.
  1. Using First Name, Last Name etc One can perform Name analysis of a person. As it is being believed that The name shapes a persons behavior. Similarly there are many other analysis on name can be performed.
  2. Using Date of Birth, Place of Birth, Time of Birth etc one can perform all sorts of Astrological calculation and find out more about the person.
  3. Education Details gives an indication of what the person's interest is. The interesting fact is the percentage of marks in individual subjects gives an inclination towards person's interest.
  4. The list is too long about the different kind of analysis we can perform on attributes (details) from one person.
But one you may ask how does this relate to my current work. Well its no different as I see. Going back to what Semantic Database is all about. Its an attempt to link information based on its meaning. This is how I see this being applied in real life. Say for example I have a Person object in my database. This is how different kind of details we can derive from a person's individual attribute.
  1. Using Date of Birth, Date of Anniversary we can schedule our system to send an automated greetings on those dates. This is particularly useful for a CRM application.
  2. Using Address we can calculate shipping cost for an item one buys from other supplier. This detail can be used for sending promotions to the person in that area.
  3. By analyzing persons Salary we can calculate taxes.
The World-Wide-Wait(WWW) is too big for one person to find all the information by him/her self. Millions of pages contain information which can only be understood by human being. There is no way in current scenario we can make computers understand those informations. To be frank Computers are still dumb :). In one of my earlier post on World-Wide-Web I had discussed why it is difficult to link bits of information today.

But I guess we had enough discussion about about the problems. The time has come when we need to work on solution part of it. This is how I see it being a reality.
  1. We need to identify an object as collection of objects, ie we should be able to break a big object into small-small manageable pieces (object).
  2. We need to develop a capability in the system to process each of the small objects in its own right of one big object as a whole.
  3. We need to have a system capable enough to take a small object (even though it is part of a big object) and perform actions on it if asked for.
  4. The system should be able to consolidate all the processing results into one final result keeping the individual existence of results intact.
  5. We should be able to identify these elements in the system and also be able to attach a processing logic to the same.
  6. The system should be able to provide a facility to create a workflow where we can group the processing logics and transform them into a big one.
There are many more things which could be added to the list (above) and the result will take us to build a system which works on the basis of meaning.

Until Next Time....:)

Saturday, February 03, 2007

KR as a Set of Ontological Committments

In the previous article we discussed about KR As a Surrogate. In this part we are concentrating on how Knowledge Representation affects the Ontology.

When we choose a representation; we often remove few aspects of the object and choose only those which makes sense in the current context or which is relevant to the situation and seems to represent the object itself. Which in a sense is like making the Ontological Commitment. These commitments are essence of the whole representation mechanism.

While the basic intention for all reasoning machines remains the same as to reason the objects (entities) from the real-world. But we know for the fact that the real-world is complex and not organized as our machines are. So in order for the reasoning mechanism to decide what we (and the reasoning machine) needs from the real-world object and what can be ignored.

At what Stage the Commitment begin?
The ontological commitment is unavoidable and it is present in almost all form of reasoning be it logic, rules, view points or any other things in this world which supports reasoning. The only difference here is each of these present their own view of what they think is important and which requires our attention. But then again as we discussed in previous post, every representation ignores some facts and makes some assumptions. So the best we can do is to have a best or most accurate guess to start with. No matter what we do we end up making a commitment (even a small amount) to the bigger ontology here.

Multiple layers of commitments
The moment we start representing the knowledge a set of commitments are made. As we move on additional layers of commitments are added on top. We start KP with the best guess (not accurate) about how we see the world. As frames suggest prototypes and taxonomies but do not tell us which things to select as prototypes rules suggest thinking in terms of plausible inferences but dont tell us which plausible inferences to attend to Similarly logic tells us to view the world in terms of individuals and relations but does not specify which individuals and relations to use.

Commitment to a particular view thus begins the moment we make our choice to how we see the world and additional layer of details are added as we move along.

Until Next Time...:)