Leveraging The Semantic Web

IT 2008. 10. 22. 01:16

The number of publicly available Web services is exploding. Check out John Musser's masterpiece, programmableweb.com, to get the hard evidence. Companies are publishing application program interfaces (APIs) to support e-commerce partnerships (eBay), syndicate content (Mochila), provide access to advanced functionality (Google Maps), allow use of raw computing resources (Amazon Web Services) and serve a horde of other purposes.

As this number continues to grow, the problem of how to find useful services will grow ever larger. How will services be described? How will they be found? What would be possible if you could really search for services based on a machine-readable description of what they did? This is the problem of service discovery, and finding a successful solution will come to affect many different aspects of our lives or create a semantic bottleneck.

The JargonSpy can already hear some of you saying, "What's the big deal? Can't we find services the way we find Web pages?" It is true that we could solve some of the problem of finding services with a search engine. Most services out there have an interface description that is machine readable (a Web Services Description Language, or WSDL, file), along with some sort of text description. If I search for "map APIs," Google Maps comes up near the top.

I thought the same way until I moderated the 2008 International Research Forum. There, I was introduced to the topic of semantic service discovery, which promises a whole new set of benefits.

There are three main use cases for semantic service discovery. First, there is you and me wanting to do something. If a service could help us, how would we know? Second, there is the developer seeking to build an application using services. How can the right services be found? Third, there is the idea that an intelligent program could automatically assemble a new service or application based on a machine-readable semantic description. Is this even possible?

Before we look at how this might work, it is important to understand what will happen if we do not solve this problem. If the number of services keeps growing, but we cannot easily find them to use them, then first of all, the economic incentive for creating the services will drop. The more people using and benefiting from the publication of services, the more investment will be made in them. But this is not a large problem. We are living without the services we don't know about now, aren't we?

The second effect of hard-to-find services will be a boon for systems integrators and creators of niche applications. They will learn about the services that are out there, help people find the ones they need and put them to work. Hands-on understanding of publicly available services could become another body of knowledge like the ability to configure and customize enterprise resource planning systems. The less service discovery is a black art, the smaller the size of the semantic bottleneck to unlock value for everyone.

A variety of things are needed to ease service discovery. Part of the solution will be in the ontologies and categorizations provided by the semantic Web. By classifying the parameters in Web service interfaces and expressing relationships between them, a person or a program will be able to walk down or query a tree structure and find all the services that have to do with specific entities like a customer and an airline. So far, so good.

The problem that has yet to be solved is finding out what that service does. Is it possible to describe in a machine-readable way the before-and-after state of a service, so that a person or a program could know what was changed when the service was invoked? For example, does a travel service just look up an airline schedule or does it book the ticket and charge my credit card? Standards such as Semantic Annotations for WSDL and OWL-S are attempting to get this right. So far the jury is still out and will be for a long time.

If somehow we can even get part of the way there, you can imagine all sorts of new offers being made when you look at your search results. Instead of just Web pages, you will be offered services to help do things that your query might indicate you want to do. If you are a programmer, you will be able to express your desire for a service to book hotels and find a list of them to compare. Or, if semantic service discovery is really achieved, you will have the ability to enter an environment in which you express your needs and services and an application will be created for you.

Of course, another effect of high-quality semantic descriptions will be the equivalent of semantic service discovery optimization, something like search engine optimization, in which people try to describe their services in a way that promotes their use. That of course is a problem of victory. The real question facing us now is whether we will get there at all.

Are you finding the Web applications and services that you need? Let the JargonSpy know. Please share your thoughts in the Reader Comments section below.

Posted by CEOinIRVINE
l