Semantic Web: Part I – Introduction

Do computers understand the Web?

Till 2001 the answer to the above question was a big ‘NO’. Semantic Web is an attempt from Tim Berners-Lee (the father of the web) to turn that big ‘NO’ to big ‘YES’

Semantic Web means a highly interconnected network of data that could be easily accessed and understood by any computer or handheld device. To be frank the Semantic Web is not different from World Wide Web, it is just an enhancement that gives the Web far greater utility. It comes to life when people immersed in a certain field or vocation, whether it be genetic research or hip-hop music, agree on common schemes for representing information they care about. As more groups develop these taxonomies, Semantic Web tools allow them to link their schemes and translate their terms, gradually expanding the number of people and communities whose Web software can understand one another automatically.

Let’s try to understand the meaning of the above boring definition in a practical manner. Suppose you have to travel immediately to New Delhi from Bangalore to attend an important business meeting of 5:00 PM, you login to your Semantic Web agent (an application!) on your handheld device (PDA) and type “book the cheapest flight from Bangalore to New Delhi leaving between 11:30 AM -12:30 PM”. Now the agent will search for the flights, if it finds one, it will get the pre-stored credit card number and book the flight. The job of Semantic Web is to convert the instruction into machine readable format, and look for the information across the web.

Figure 1 shows the flow in which the Semantic Web Agent performs the task. The main instruction (I) is disintegrated in three smaller instructions (I-1, I-2, I-3) which are easier for a computer to understand. Still you may ask that how a computer can distinguish between two different meanings of book i.e. ‘a physical object consisting of a number of pages’ or ‘reservation’? To understand this lets consider a few sentences:

Ravi booked a flight.

Hari read a non-fiction book.

untitled

Figure 1

Again the meaning of the word book is different in both the sentences, in one case it is a noun and in another it is a verb. How to distinguish? Well we can assign a unique identifier to each word. Before that we need to take care whether a computer can understand the similarity between book, booked, booking etc. Perhaps a little XML can help; code snippet (Listing 1) below shows the relation between reserve and book and another snippet (Listing 2) shows the noun book and similar items. The code is written in an XML–based language RDF (Resource Description Framework), which is primarily used for Semantic Web applications. Now let’s focus on above sentences “Ravi booked a flight” means “Ravi reserved a flight” from Listing 1. And in second sentence “Hari read a non-fiction book” from Listing 2 we can observe that book is a noun with a type of physical object.

<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#>

<rdf:Description rdf:about=http://www.mysite.com/gen/terms-en.xml#reserve>

<concepts id=reservation-similar-terms version=20090225>

<concept id=reservation created-by=vksing3@qwest.com on=20090225>

<definition xml:lang=en>Words with meaning reservation</definition>

<identifying-terms xml:lang=en>

<verb tense = present meaning =reserve-1 id= res101>reserve</verb>

<verb tense = present meaning =reserve-1 id= res-102>book</verb>

<verb tense = past meaning =reserve-2 id= res-103>reserved</verb>

<verb tense = past meaning =reserve-2 id= res-104>booked</verb>

</identifying-terms>

</concept>

</concepts>

</rdf:Description>

</rdf:RDF>

Listing 1

<rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#>

<rdf:Description rdf:about=http://www.mysite.com/gen/terms-en.xml#book>

<concepts id=book-object version=20090225>

<concept id=book created-by=vksing3@qwest.com on=20090225>

<definition xml:lang=en>Items similar to a book</definition>

<identifying-terms xml:lang=en>

<noun type =physicalObject meaning =book-1 id= b01>textbook</noun>

<noun type =physicalObject meaning =book-1 id= b02>novel</noun>

<noun type =physicalObject meaning =book-1 id= b03>non-fiction</noun>

</identifying-terms>

</concept>

</concepts>

</rdf:Description>

</rdf:RDF>

Listing 2

So both the questions, different words with same meaning and same words with different meanings, are answered from the above example. Once the agent understood the meaning of the book in present context and also that cheapest means minimum price, it will search for the flights through 3rd party airline web services and on success it will book the flight by using your pre-stored credit card number and send a confirmation on your PDA.

By the use of ontologies this example becomes even much simpler. OWL (Ontology Web Language) is a sister language of RDF for creating ontology. Computer is a dumb machine; it requires very specific information in order to understand the logical meaning of the any instruction given to it, taxonomies and ontologies help computer understand better. I’ll talk about them in the future articles.

Advertisements

Orchestration and Choreography in Web Services

Choreography and orchestration are used for combining web services and sequential execution of the web services. In orchestration, which is usually used in private business processes, a central process takes control of the involved Web services and coordinates the execution of different operations on the web services involved in the operation. Choreography does not rely on a central coordinator. Rather, each Web service involved in the choreography knows exactly when to execute its operations and with whom to interact.

Orchestration Model

orchestration.png

 

Orchestration in case of multiple suppliers and one vendor (with a Coordinator in the center) is shown above. Vendor sends a message to the coordinator for getting the data from its retailers then coordinator invokes all the retailers associated with the vendor. Coordinator collects the data from all retailers and sends a reply to the vendor. Coordinator is a composite web service. This model is also called centralized model for composite web services.

 

Choreography Model

choreo.png

 

Choreography model used here for VMI (Vendor Managed Inventory) is for multiple retailers and multiple vendors. In this case each web service interacts with other web services directly. This model is called the decentralized or distributed composite web services model.