W3C home > Mailing lists > Public > public-sws-ig@w3.org > November 2005

RE: Where are the semantics in the semantic Web?

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Tue, 22 Nov 2005 19:23:48 -0500
Message-ID: <17283.46740.367034.746775@DVM-Powerbook.local>
To: public-sws-ig@w3.org


> [Shi, Xuan]
> My suggestion is that service description can be separated from service
> development. Let's describe the service first. Supposed we have such a
> service description:
> 
> <ServiceRequest>  
>    <Service Name="SearchHotelInformation">    
>       <Function Name="WebService.Hotel.SearchInformation">       
>          <InputVariables>
>             <CheckInDate></CheckInDate>
>             <CheckOutDate></CheckOutDate>
>             <NumberOfCustomer></NumberOfCustomer>
>             <RoomType></RoomType>
>          </InputVariables>    
>       </Function>  
>    </Service>
> </ServiceRequest> 
> 
> it's then easy to develop such a Web service. 

It is?  Only if there's a Catalog of Hotel Industry Standard Web
Services somewhere that says "SearchInformation expects 4 inputs ...
and yields one output, a list of ..., which means ...."

Suppose we take standardization one step further, and create a
vocabulary for talking about the properties of hotels and ancillary
entities.  Using this vocabulary, we could define a couple of message
patterns

(:functions
     (search-hotel-information
            &key check-in-date check-out-date - Date
                 number-of-cust - Integer
                 room-type - Room-type)

     (available-rooms rl - (Lst Hotel-room))
     - Message)

[Sorry to switch from XML to Lisp, but the verbosity of the former is
unendurable.]

Then we could give axioms such as this --

(forall (g h - Agent
         d1 d2 - (Literal Date)
         i - (Literal Integer)
         rt - (Literal Room-type)
         avail - (Lst Room-quote))
   (if (implements h hotel-search-protocol)
       (message-exchange
          g h
          (search-hotel-information
             :check-in-date d1 :check-out-date d2
             :number-of-cust i
             :room-type rt)
          (available-rooms avail)
          (know-val-is
             g
             (set-of-all
                (lambda (r)
                   (and (has-type r (lit-val rt))
                        (forall (d - Date)
                           (if (date-in-interval d (lit-val d1) (lit-val d2))
                               (room-available r d))))))
             (list-elements avail)))))

which we can paraphrase thus: "If agent h implements the
hotel-search-protocol, then a message to it from agent g of the form
(search-hotel-information ...) will yield a reply consisting of a list
of Room-quotes.  Once this reply is received, g will know that the
elements of that list are all the available rooms over the date
specified in its message."

[Obviously, there is a lot more that needs to be said, including how
abstract messages get embodied at more concrete levels.]

The idea is to agree on standard vocabulary items such as
'message-exchange' and 'know-val-is', which apply to every domain; and
on terms such as 'room-available' that apply to the hotel industry in
particular.  It seems as if it wouldn't be any harder to agree on
'room-available' than on 'search-hotel-information', and you would
gain the ability to knit actions together in unforeseeable ways.

                                             -- Drew

-- 

                                         -- Drew McDermott
                                            Yale University
                                            Computer Science Department
Received on Wednesday, 23 November 2005 00:22:43 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 16 March 2008 00:11:02 GMT