wsmo logo

D3.6v01 WSMO Use Case "STREAM Flows! System"

WSMO Working Draft 08 April 2005

This version:
http://www.wsmo.org/TR/d3/d3.6/v0.1/20050408/
Latest version:
http://www.wsmo.org/TR/d3/d3.6/v0.1
Previous version:
None
Editors:
James Scicluna
Authors:
Alejandro López
Ozelin López
Clara Pezuela
James Scicluna


This document is also available in non-normative PDF version.
Copyright © 2004 DERI®, All Rights Reserved. DERI liability, trademark, document use, and software licensing rules apply.


Abstract

This document presents a concrete use for specifying Semantic Web Service descriptions in WSMO for a frequent flyer programme called "Stream Flows! System" (SFS). This system serves as a meeting point for customers who want to book flights, train tickets, hotels, shuttle transfers and for the providers of such services. Customers can create, or use predefined packages which specify what services are needed by the customers. Providers can create, edit and publish their services on SFS in order to make them available for customers. The main objective of this document is to provide a modeling of the WSMO elements based on the SFS scenario.

Related Documents


Table of contents

1. Introduction
2. Use Case Overview
2.1 Description
2.2 Scope
2.3 Actors, Roles and Goals
2.3.1 Customer
2.3.2 Service Providers
2.3.3 Stream Flows! System (SFS)
2.4 Story Board
3. WSMO Use Case Modelling
3.1 Ontologies
3.2 Goals
3.3 Web Services
3.4 Mediators
4. Conclusions and Further Work
Acknowledgement


1. Introduction

This use case is defined in the area of e-Tourism, particularly, it addresses a frequent flyer programme called STREAM Flows! System (SFS for short). This system will be available online and it can be accessed both from customers and service providers. We will specify the required semantic descriptions in this system basing ourselves on the WSMO conceptual model, that is, by specifying the Ontologies, Web Services, Goals and Mediators.

Customers will be able to group and specify the services needed in terms of packages. A package is a collection of services which are to be purchased by the user. It may be either pre-defined by the SFS Administrator or customized by the customer. Service providers can publish their services with SFS in order to make them available for customers. It is up to the SFS to update the stored packages once a service has changed. Our use case shall take the following path:

This document is structured as follows: In Section 2 a description of the SFS is provided which includes a listing of the Actors involved together with their roles and goals in the system. In Section 3 a listing of the Ontologies, Goals, Web Services and Mediators used by the system is provided. Finally, some conclusive comments and future work are given.

2. Use Case Overview

In this section we will provide an overview of the Use Case. Particulary, a desciption of the scenario depicted will be given and we will also specify the actors, roles and goals involved in the use case.

2.1 Description

STREAM Airlines is the airline company of the STREAM Group, which works in Europe and South America. The STREAM Group has a FFP called STREAM Flows! System (SFS). The customers of the SFS (by means of a membership) can obtain points from purchasing services of the STREAM group. These services might be an airline ticket, a hotel booking, a car rental and many others. There are several companies affiliated to SFS. Each service of the program has its counterpart in points and these points can be consolidated and exchanged by one or more services. The customer purchase services for many companies (engaged with the SFS program). These companies collect the information of the customer and send the information to the SFS program, adding the counterpart of the service in points of the SFS program. The SFS program collects all the information and stores them into its own databases.

The customers of SFS program will be able to exchange their SFS points for eTourism services, provided by companies affiliated to SFS. These services will support booking of flights, booking of hotel's rooms, booking of rental cars and booking of shuttles online. The services must have been published in the SFS Catalogue by the service providers as WSMO web services, and can be purchased by the customers directly or by an established package. The SFS program will advise the customer which services are the best that fulfil the customer requirements. Once the customer has selected the services, SFS will act as an intermediary between the customer and the service provider.

2.2 Scope

The STREAM Group wants to offer the ability to book complete vacation packages: airplane tickets, hotels, car rental, shuttle, etc. The service providers (airlines, car rental companies, hotel chains, etc) will provide web services to query their offerings and perform reservations. So, the SFS program will allow the customer to contract these services using his or her points.

2.3 Actors, Roles and Goals

2.3.1 Customer

The end user that request a service or a package of services.

2.3.2 Service Providers

The commercial companies affiliated to the SFS program that provides the specific tourism services.

2.3.3 STREAM Flows! System (SFS)

The intermediate between the Costumer and the Service providers.

2.4 Story Board

 
Figure 1: Story Board Overview

Step 1

The customer login in the SFS portal and, once authenticated, he consults his accumulated points. The SFS will access to the customer's profile database and will show the customer his accumulated points.

Step 2

The customer indicates the system his needs, creating a package with the tourism services required: a flight, a hotel's room and rent a car. In this package it will be defined all the travel constraints that must be fulfilled by the services: date and time constraints, place constraints, etc…

Step 3

The system will send a query to the Discovery Module to obtain the set of services which better suits the requirements of the customer. For this process, the SFS program will define a goal (with the customer preferences), which will be used in the GG, GW and WW Discovery processes for composing available web services. In the catalogue there will be several services, some of them only slightly different from other. The process of finding suitable services for a service description is done using semantic descriptions. The distributed repositories could return several services suitable for each service description. A Distributed Descision Support system (DDS) should recommend one service using functional or non-functional properties or even quality of service criterion for this purpose. Besides the functional requirements, all the services proposed for the package have to comply with other requirements to check the integrity of the package (the booking date for the hotel have to match with the flight plan for avoid inconsistencies)

Step 4

The customer chooses the services manually (or automatically). In the figure, the services selected are in red.

Step 5

The service provider of each choosen service will try to confirm the terms of acceptance and the conditions and details of the service. Once have been accepted by both parties the terms of the contract, a book order is placed. The services definitely chosen are invoked and the service provider has to send to the customer all the information and any coupon or ticket need for the use of the service.

Step 6

Finally, the service provider will communicate with the SFS to provide him the information needed for performing the update of the customer record.

3. WSMO Use Case Modelling

3.1 Ontologies

With regard to modularized ontologies as a basic design principle of WSMO, we define five domain ontologies as the terminology definitions for the use case:

The ontologies specified in the following are intended to be "real ontologies" in the sense that they describe the specific domain as a shared conceptualization in a sufficient manner. This allows to reuse this ontologies in different settings and use cases - for example, general booking ontology are needed in a lot of other possible scenarios. However, we do not claim the defined below to be such generic ontologies, but they will be enhanced and completed within cooperations with other use cases, projects, and initiatives

At this point in time, WSMO does not provide a technique to link to large set of instances. Therefore, in this version of the ontology we only include some example instances, which holds for the other ontologies defined in this use case as well. For reader's convenience, the relevant instances for this use case will be gathered in the SFS Use Case Knowledge Base, a separate ontology, that will be created in a future version.

Listing 1. Booking Ontology.
namespace {_"http://www.wsmo.org/ontologies/booking#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http://www.wsmo.org/ontologies/dateTime#",
  loc _"http://www.wsmo.org/ontologies/location#",
  xsd _"http://www.w3.org/2001/XMLSchema#"
}
  
ontology _"http://www.wsmo.org/ontologies/booking"
  nonFunctionalProperties
    dc#title hasValue "Booking ontology"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Booking request", "Buyer", "Seller", "Booking ticket", "Payment method"}
  dc#description hasValue "General description of a booking request"
  dc#publisher hasValue "ATOS ORIGIN S.A."
  dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-15"
    dc#type hasValue  _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/plain"
    dc#identifier hasValue  _"http://www.wsmo.org/ontologies/booking"
    dc#language hasValue "en-US"
    dc#relation hasValue { _"http://www.wsmo.org/ontologies/carRentalBooking",
     _"http://www.wsmo.org/ontologies/hotelRoomBooking",
     _"http://www.wsmo.org/ontologies/flightBooking",
     _"http://www.wsmo.org/ontologies/location",
     _"http://www.wsmo.org/ontologies/dateTime"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue  _"http://deri.at/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology { _"http://www.wsmo.org/ontologies/dateTime.wsml",
     _"http://www.wsmo.org/ontologies/location.wsml"}  

/*
 * Booking , bookingTicket 
*/ 

  concept booking
    nonFunctionalProperties
      dc#description hasValue "A general booking"
    endNonFunctionalProperties
    bookingIdentifier ofType xsd#string
    bookingPrice ofType xsd#float
    buyer impliesType buyer
    seller impliesType seller
    paymentMethod impliesType paymentMethod
    contractDate impliesType dt#date
    bookingTicket impliesType bookingTicket      

  concept bookingTicket
    nonFunctionalProperties
      dc#description hasValue "A ticket for a booking."
    endNonFunctionalProperties
    bookingTicketIdentificator ofType xsd#string
    buyerName ofType xsd#string
    sellerName ofType xsd#string

/*
 * Booking parts
*/    
  concept buyer
    nonFunctionalProperties
      dc#description hasValue "the partner that makes a booking"
      dc#relation hasValue { _"http://wsmo.org/ontologies/rosettanet#buyer"}
    endNonFunctionalProperties
    contactInformation impliesType contactInformation
    bookingPreferences impliesType bookingPreferences      
    
  concept bookingPreferences
    nonFunctionalProperties
      dc#description hasValue "The preferences of the buyer in a booking"
    endNonFunctionalProperties
    maxPrice ofType xsd#float       
    
  concept seller
    nonFunctionalProperties
      dc#description hasValue "the partner that offers a booking"
      dc#relation hasValue { _"http://wsmo.org/ontologies/rosettanet#seller"}
    endNonFunctionalProperties
    contactInformation ofType contactInformation  
       
  concept company subConceptOf seller
    nonFunctionalProperties
      dc#description hasValue "the company that offers "
    endNonFunctionalProperties
    companyID ofType xsd#string
    website ofType xsd#string
    
  concept contactInformation
    nonFunctionalProperties
      dc#description hasValue "The collection of business properties that
      provide communication and address information for contacting a person, organization or business."
      dc#relation hasValue { _"http://wsmo.org/ontologies/rosettanet#contactInformation"}
    endNonFunctionalProperties
    name ofType xsd#string
    emailaddress ofType xsd#string
    faxnumber ofType xsd#string
    telephonenumber ofType xsd#string
    physicalAddress impliesType loc#address          
    
  concept onlineDelivery
    nonFunctionalProperties
      dc#description hasValue "a reservationTicket is delivery online as a piece of information"
    endNonFunctionalProperties
    onlineDeliveryMethod ofType xsd#string      
    deliveryItem impliesType reservationTicket
    sender impliesType seller      
    receiver impliesType buyer 

        

 

Listing 2. Flight Booking Ontology.
namespace {_"http://www.wsmo.org/ontologies/flightBooking#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http://www.wsmo.org/ontologies/dateTime#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  xsd _"http://www.w3.org/2001/XMLSchema#"
}

ontology _"http://www.wsmo.org/ontologies/flightBooking"
  nonFunctionalProperties
    dc#title hasValue "Flight Booking Ontology"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Flight", "Flight Booking", "Airport", "AirTrip"}
    dc#description hasValue "Flight Booking Ontology"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/flightBooking"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/dateTime",
    _"http:://www.wsmo.org/ontologies/location",
    _"http://www.daml.org/2001/02/geofile/geofile-ont"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties
    
  importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
    _"http://www.wsmo.org/ontologies/location",
    _"http://www.wsmo.org/ontologies/booking"
  }

  usesMediator {
    _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml"
  }
      
  concept airport subConceptOf geo#geographicLocation
    nonFunctionalProperties
      dc#description hasValue "Airport"
    endNonFunctionalProperties
    code ofType xsd#string
      nonFunctionalProperties
        dc#description hasValue "Code of the airport"
      endNonFunctionalProperties    
        
  concept flightBooking subConceptOf bo#booking
    airTripInfo impliesType airTripInfo    
        
  concept flightBookingTicket subConceptOf bo#bookingTicket
    airTripInfo impliesType airTripInfo
          
  concept trip
    start impliesType loc#location
    end impliesType loc#location
    departure impliesType dt#dateAndTime
    arrival impliesType dt#dateAndTime
    duration impliesType dt#interval
    distance impliesType loc#distance
    
  concept airTripInfo subConceptOf trip
    nonFunctionalProperties
      dc#description hasValue "An air trip between two airports"
    endNonFunctionalProperties
    airTripIdentificator ofType xsd#string
    start ofType airport
    end ofType airport
    sections ofType section
  
  concept section
    nonFunctionalProperties
      dc#description hasValue "A section of an air trip"
    endNonFunctionalProperties
    originAirport impliesType airport
    destinationAirport impliesType airport
    flightTicket impliesType flightTicket
                      
  concept flightTicket
    nonFunctionalProperties
      dc#description hasValue "A ticket for a fligth"
    endNonFunctionalProperties
    ticketNumber ofType xsd#integer
    personName ofType xsd#string
    dateOfIssue impliesType dt#date
    rate impliesType po#price
    seatNumber ofType xsd#integer
    seatClass ofType xsd#string
    smokingSeat ofType xsd#boolean
    flight impliesType flight      

  concept flight
    nonFunctionalProperties
      dc#description hasValue "A flight"
    endNonFunctionalProperties
    flightNumber ofType xsd#integer
    aircraft impliesType aircraft
    carrier impliesType airline
    scheduledDepartureDateAndTime impliesType dt#dateAndTime
    scheduledArrivalDateAndTime impliesType dt#dateAndTime
    currentDepartureDateAndTime impliesType dt#dateAndTime
    currentArrivalDateAndTime impliesType dt#dateAndTime
    
  concept aircraft
    nonFunctionalProperties
      dc#description hasValue "An aircraft"
    endNonFunctionalProperties
    idAircraft ofType xsd#string
    numberSeatEconomy ofType xsd#integer
    numberSeatBusiness ofType xsd#integer
    numberSeatFirstClass ofType xsd#integer
    
  concept flightBookingPreferences subConceptOf bookingPreferences
    nonFunctionalProperties
      dc#description hasValue "The airTrip preferences that must be fullfilled by the booking"
    endNonFunctionalProperties
    start impliesType airport
    end impliesType airport
    departure impliesType dt#dateAndTime
    arrival impliesType dt#dateAndTime
    class ofType xsd#string
    numMaxConnections ofType xsd#integer
  
  axiom airportCountry
    nonFunctionalProperties
      dc#description hasValue "Integrity constraint# if a airport is located in a place
        which is located in a given country, the country of the airport is the same"
    endNonFunctionalProperties
    definedBy
        ?A memberOf airport[
          locatedIn hasValue ?L,
          country hasValue ?C
        ]
        and neg
        (?L memberOf loc#location[
          country hasValue ?C
        ]).

  axiom departureBeforeArrival
    nonFunctionalProperties
      dc#description hasValue "Integrity Constraint departure has to be before arrival"
    endNonFunctionalProperties
    definedBy
        ?T memberOf trip[
          departure hasValue ?D,
          arrival hasValue ?A
        ]
        and 
          ?A =< ?D.
          
  axiom startNotEqualEnd
    nonFunctionalProperties
      dc#description hasValue "Integrity Constraint# the start and end of a trip have to be different"
    endNonFunctionalProperties
    definedBy
        ?T memberOf trip[
          start hasValue ?Start,
          end hasValue ?End
        ] 
        and 
          ?Start = ?End.
    

        

 

Listing 3. Hotel Room Booking Ontology.
namespace {_"http://www.wsmo.org/ontologies/hotelRoomBooking#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http://www.wsmo.org/ontologies/dateTime#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  geo _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml#",
  xsd _"http://www.w3.org/2001/XMLSchema#"
}

ontology _"http://www.wsmo.org/ontologies/hotelRoomBooking"
  
  nonFunctionalProperties
    dc#title hasValue "Hotel Room Booking Ontology"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Hotel", "Hotel room booking", "Room", "hotelStay"}
    dc#description hasValue "Hotel reservation"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/hotelRoomBooking"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/dateTime",
    _"http:://www.wsmo.org/ontologies/location",
    _"http://www.daml.org/2001/02/geofile/geofile-ont"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
  _"http://www.wsmo.org/ontologies/location",
  _"http://www.wsmo.org/ontologies/booking"}

  concept hotelRoomBooking subConceptOf bo#booking
    nonFunctionalProperties
      dc#description hasValue "A hotel room booking"
    endNonFunctionalProperties
    hotelStay impliesType hotelStay
    
  concept hotelRoomBookingTicket subConceptOf bo#hotelRoomBookingTicket
    nonFunctionalProperties
      dc#description hasValue "A ticket of a hotel romm booking"
    endNonFunctionalProperties
    hotelStay impliesType hotelStay
    
  concept hotelStay
    nonFunctionalProperties
      dc#description hasValue "A stay in a hotel"
    endNonFunctionalProperties
    stayId ofType xsd#string
    checkIn impliesType dt#date
    checkOut impliesType dt#date
    hotel impliesType hotel
    room impliesType room
    
  concept room
    nonFunctionalProperties
      dc#description hasValue "A room of a hotel"
    endNonFunctionalProperties
    roomNumber ofType xsd#integer
    area ofType xsd#integer
    phone ofType xsd#integer
    hasAirConditioning ofType xsd#boolean
    fare ofType xsd#float
    addBedFare ofType xsd#float
  
  concept hotel
    nonFunctionalProperties
      dc#description hasValue "A room of a hotel"
    endNonFunctionalProperties
    name ofType xsd#string
    stars ofType xsd#integer
    city impliesType loc#city
    address impliesType loc#address
    builtDate impliesType dt#Date
    lastUpdateDate impliesType dt#Date
    hasRestaurant ofType xsd#boolean
    rooms impliesType room
    email ofType xsd#string
    phone ofType xsd#integer
    
  concept hotelRoomBookingPreferences subConceptOf bookingPreferences
    nonFunctionalProperties
      dc#description hasValue "The hotel room preferences that must be fullfilled by the booking"
    endNonFunctionalProperties
    checkIn impliesType dt#date
    checkOut impliesType dt#date
    numberOfPersons ofType xsd#integer
    hotelStars ofType xsd#integer
    
  axiom checkInBeforeCheckOut
    nonFunctionalProperties
      dc#description hasValue "Integrity Constraint: checkIn has to be before checkOut"
    endNonFunctionalProperties
    definedBy
        ?S memberOf hotelStay[
          checkIn hasValue ?CI,
          checkOut hasValue ?CO
        ] 
        and
          ?CI =< ?CO.

        

 

Listing 4. Rent a Car Booking Ontology.
namespace{ _"http://www.wsmo.org/ontologies/carRentalBooking#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http://www.wsmo.org/ontologies/dateTime#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  prs _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlPersonMediator.wsml#",
  xsd _"http://www.w3.org/2001/XMLSchema#"
}

ontology _"http://www.wsmo.org/ontologies/carRentalBooking"

  nonFunctionalProperties
    dc#title hasValue "Car rental booking ontology"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Rent a car", "Car rental booking", "Car"}
    dc#description hasValue "Rent a car booking"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/carRentalBooking"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/dateTime",
    _"http:://www.wsmo.org/ontologies/location"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
  _"http://www.wsmo.org/ontologies/booking",
  _"http://www.wsmo.org/ontologies/location"
  }    
        
  concept carRentalBooking subConceptOf bo#booking
    nonFunctionalProperties
      dc#description hasValue "A booking of a car rental"
    endNonFunctionalProperties
    carRentalBookingInfo impliesType carRentalBookingInfo
  
  concept carRentalBookingTicket subConceptOf bo#bookingTicket
    nonFunctionalProperties
      dc#description hasValue "A bookingTicket of a car rental booking"
    endNonFunctionalProperties
    carRentalBookingInfo impliesType carRentalBookingInfo
    
  concept carRentalBookingInfo
    nonFunctionalProperties
      dc#description hasValue "The car rental information"
    endNonFunctionalProperties
    driversName ofType xsd#string
    pickupLocation impliesType loc#address
    returnLocation impliesType loc#address
    pickupDateAndTime impliesType dt#dateAndTime
    returnDateAndTime impliesType dt#dateAndTime
    car impliesType car                     
      
  concept car
    nonFunctionalProperties
      dc#description hasValue "A car"
    endNonFunctionalProperties
    carIdentificator ofType xsd#string
    rentalRate ofType xsd#float
    doorCount ofType xsd#integer
    carSize ofType xsd#integer
    miliageLimited ofType xsd#boolean
    hasChildSeat ofType xsd#boolean
    hasAirConditioning ofType xsd#boolean
            
  concept carRentalBookingPreferences subConceptOf bookingPreferences
    nonFunctionalProperties
      dc#description hasValue "The car rental preferences that must be fullfilled by the booking"
    endNonFunctionalProperties
    pickupLocation impliesType loc#address
    returnLocation impliesType loc#address
    pickupDateAndTime impliesType dt#dateAndTime
    returnDateAndTime impliesType dt#dateAndTime
    doorCount ofType xsd#integer
    carSize ofType xsd#integer
    miliageLimited ofType xsd#boolean
    hasChildSeat ofType xsd#boolean
    hasAirConditioning ofType xsd#boolean   
    
    
  axiom pickupBeforeReturn
    nonFunctionalProperties
      dc#description hasValue "Integrity Constraint# pickupDate has to be before returnDate"
    endNonFunctionalProperties
    definedBy
        ?B memberOf carRentalBooking[
          carRentalBookingInfo hasValue ?C
        ]
        and
        ?C memberOf carRentalBookingInfo[
          pickupDateAndTime hasValue ?P,
          returnDateAndTime hasValue ?R
        ]
        and
          ?P =< ?R.
        

        

 

Listing 5.Shuttle Booking Ontology.
namespace{ _"http://www.wsmo.org/ontologies/shuttleBooking#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http://www.wsmo.org/ontologies/dateTime#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  fb _"http:://www.wsmo.org/ontologies/flightBooking#",
  xsd _"http://www.w3.org/2001/XMLSchema#"
}

ontology _"http://www.wsmo.org/ontologies/shuttleBooking"
  nonFunctionalProperties
    dc#title hasValue "Shuttle booking ontology"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Taxi shuttle", "Shuttle booking", "Taxi"}
    dc#description hasValue "The ontology for booking a shuttle"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/shuttleBooking"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/flightBooking",
    _"http:://www.wsmo.org/ontologies/dateTime",
    _"http:://www.wsmo.org/ontologies/location"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
    _"http://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/flightBooking",
    _"http://www.wsmo.org/ontologies/location"
  }
        
  concept shuttleBooking subConceptOf bo#booking
    nonFunctionalProperties
      dc#description hasValue "A booking of a shuttle"
    endNonFunctionalProperties
    shuttleBookingInfo impliesType shuttleBookingInfo
    
  concept shuttleBookingTicket subConceptOf bo#bookingTicket
    nonFunctionalProperties
      dc#description hasValue "A bookingTicket of a shuttle booking"
    endNonFunctionalProperties
    shuttleBookingInfo impliesType shuttleBookingInfo
  
  concept shuttleBookingInfo
    nonFunctionalProperties
      dc#description hasValue "The shuttle booking information"
    endNonFunctionalProperties
    pickupLocation impliesType fb#airport
    pickupDateAndTime impliesType dt#dateAndTime
    destination impliesType loc#location
    shuttle impliesType shuttle
    
  concept shuttle
    nonFunctionalProperties
      dc#description hasValue "A shuttle"
    endNonFunctionalProperties
    shuttleIdentificator ofType xsd#integer
    year impliesType dt#year
    
  concept shuttleBookingPreferences subConceptOf bo#bookingPreferences
    nonFunctionalProperties
      dc#description hasValue "The shuttle booking preferences"
    endNonFunctionalProperties
    pickupLocation impliesType fb#airport
    pickupDateAndTime impliesType dt#dateAndTime
    destination impliesType loc#location

        

SFS uses a catalogue as an exhaustive repository of information for web service attributes. This catalogue enables users to browse through the Packages, Package templates and also through Web Services available. Additionally, the user may also query the Catalogue on the basis of some desired properties of the service, such as, service providers, category, points needed to contract the service etc. Thus, the purpose of the catalogue is not for automatic service discovery, but rather, the latter process takes place inside the Semantic Web Service Repository.

Listing 6. SFS Record in the Catalogue.
namespace {_"http://www.wsmo.org/ontologies/sfs/sfsRecord#",
  dc  _"http://purl.org/dc/elements/1.1#",
  tsd _"http://www.wsmo.org/ontologies/sfs/travelServiceDescription#",
  cu  _"http://www.wsmo.org/ontologies/sfs/customer#",
  dt  _"http://www.wsmo.org/ontologies/dateTime#",  
  xsd _"http://www.w3.org/2001/XMLSchema#"}

ontology _"http://www.wsmo.org/ontologies/sfs/sfsRecord"
  nonFunctionalProperties
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Car tourismServiceProvider", "Car"}
    dc#description hasValue "Rent a car booking"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"    
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/sfs/sfsRecord"    
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://www.wsmo.org/ontologies/dateTime",
      _"http://www.wsmo.org/ontologies/sfs/travelServiceDescription",
      _"http://www.wsmo.org/ontologies/sfs/customer"}
    dc#coverage hasValue "ID:7029392 Name:World"        
  endNonFunctionalProperties    
  
  importsOntology {_"http://www.wsmo.org/ontologies/sfs/travelServiceDescription",    
    _"http://www.wsmo.org/ontologies/sfs/customer",
    _"http://www.wsmo.org/ontologies/dateTime"}
  
  concept sfsServiceRecord 
    nonFunctionalProperties
      dc#description hasValue "A service record description "
      dc#sfscustomer hasValue "The sfs customer "
      dc#service hasValue "The service that has been used by the customer"
      dc#lastUsedDate hasValue "The last date that the package has been used by the customer"
      dc#points hasValue "Points obtained by using the package"       
      dc#effects hasValue "Possible incidences" 
    endNonFunctionalProperties  
    sfscustomer ofType cu#customer
    sfsServiceProvider ofType tsp#tourismServiceProvider
    service ofType tsd#travelServiceDescription
    recordDate ofType dt#dateAndTime
    points ofType xsd#float
    effects ofType xsd#string 
        
    
  concept sfsPackageRecord 
    nonFunctionalProperties
      dc#description hasValue "A package record description "
      dc#sfscustomer hasValue "The sfs customer "
      dc#package hasValue "The package that has been used by the customer"
      dc#lastUsedDate hasValue "The last date that the package has been used by the customer"
      dc#points hasValue "Points obtained by using the package"       
      dc#effects hasValue "Possible incidences"     
    endNonFunctionalProperties  
    sfscustomer ofType cu#customer
    sfsServiceProvider ofType tsp#tourismServiceProvider
    package ofType tsd#package
    recordDate ofType dt#dateAndTime
    points ofType xsd#float
    effects ofType xsd#string 

 

Listing 7. Travel Service Description Entry in the Catalogue.
namespace {_"http://www.wsmo.org/ontologies/sfs/serviceDescription#",
  dc  _"http://purl.org/dc/elements/1.1#",
  tsp _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
  ho  _"http://www.wsmo.org/ontologies/sfs/hotel#",
  fl  _"http://www.wsmo.org/ontologies/sfs/flight#",
  cr  _"http://www.wsmo.org/ontologies/sfs/carRental#",
  sh  _"http://www.wsmo.org/ontologies/sfs/shuttle#",
  cu  _"http://www.wsmo.org/ontologies/sfs/customer#",
  dt  _"http://www.wsmo.org/ontologies/dateTime#",
  loc _"http://www.wsmo.org/ontologies/location#",
  xsd _"http://www.w3.org/2001/XMLSchema#"}

ontology _"http://www.wsmo.org/ontologies/sfs/travelServiceDescription"
  nonFunctionalProperties   
    dc#title hasValue "Description of the Travel Services in the SFS Catalogue"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"travel Service description", "Package description"}
    dc#description hasValue "Ontology to describes travel services and packages"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-04-08"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/sfs/travelServiceDescription"   
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
    _"http://www.wsmo.org/ontologies/sfs/flight",
    _"http://www.wsmo.org/ontologies/sfs/hotel",
    _"http://www.wsmo.org/ontologies/sfs/carRental",
    _"http://www.wsmo.org/ontologies/sfs/shuttle",
    _"http://www.wsmo.org/ontologies/sfs/customer",
    _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider",   
    _"http://www.wsmo.org/ontologies/dateTime",
    _"http://www.wsmo.org/ontologies/location"} 
    dc#coverage hasValue "ID:7029392 Name:World"    
  endNonFunctionalProperties    
  
  
  importsOntology {_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider",
    _"http://www.wsmo.org/ontologies/sfs/flight",
    _"http://www.wsmo.org/ontologies/sfs/hotel",
    _"http://www.wsmo.org/ontologies/sfs/carRental",
    _"http://www.wsmo.org/ontologies/sfs/shuttle",    
    _"http://www.wsmo.org/ontologies/sfs/customer",
    _"http://www.wsmo.org/ontologies/dateTime",
    _"http://www.wsmo.org/ontologies/location"}
  
  concept travelServiceDescription
    nonFunctionalProperties
      dc#description hasValue "A travel service description "
      dc#publisher hasValue "Service Provider"
      dc#title hasValue "Name of Service"
      dc#category hasValue "Category of Service"
      dc#deliveryDate hasValue "Date of publication"        
      dc#points hasValue "Points obtained by using the service"
      dc#reliability hasValue "reliability percentage"
      dc#timeOfResponse hasValue "Indicates the time of response of the travel service(in seconds)"
      dc#securityIssues hasValue "Indicates the security issues that must accomplish"
      dc#termsOfAcceptance hasValue "Indicates the terms of the acceptance of the contract"
    endNonFunctionalProperties    
    serviceProvider impliesType tsp#tourismServiceProvider
    serviceName ofType xsd#string
    textualServiceDescription ofType xsd#string
    category impliesType serviceCategory
    deliveryDate ofType xsd#date          
    points ofType xsd#integer   
    reliability ofType xsd#float    
    timeOfResponse ofType xsd#float       
    securityIssues ofType xsd#string
    termsOfAcceptance ofType xsd#string   
    
  concept serviceCategory
    nonFunctionalProperties
      dc#description hasValue "defines a category of a service"
      dc#name hasValue "the name of the service category"
      dc#keywords hasValue "the keywords that identifies the category"
    endNonFunctionalProperties
    name ofType xsd#string
    keywords ofType xsd#string  

  instance flightBookingCategory memberOf serviceCategory
    nonFunctionalProperties
      dc#description hasValue "defines the category for a flight Booking service"
    endNonFunctionalProperties
    name hasValue "Flight Booking"
    keywords hasValue {"flight","reservation","booking","schedule","travel"}
    
  instance hotelBookingCategory memberOf serviceCategory
    nonFunctionalProperties
      dc#description hasValue "defines the category for a Hotel Booking service"
    endNonFunctionalProperties
    name hasValue "Hotel Booking"
    keywords hasValue {"hotel","room","booking","travel"}
  
  instance carRentalBookingCategory memberOf serviceCategory  
    nonFunctionalProperties
      dc#description hasValue "defines the category for a Car rental Booking service"
    endNonFunctionalProperties
    name hasValue "Car rental Booking"
    keywords hasValue {"car rental","rent a car","car","booking","travel"}
    
  instance shuttleBookingCategory memberOf serviceCategory  
    nonFunctionalProperties
      dc#description hasValue "defines the category for a Shuttle Booking service"
    endNonFunctionalProperties
    name hasValue "Shuttle Booking"
    keywords hasValue {"shuttle","taxi","booking","travel"}
  
  concept flightTravelServiceDescription subConceptOf travelServiceDescription
    nonFunctionalProperties
      dc#description hasValue "The flight service description to diferenciate services between them"
      dc#allowKidsAloneService hasValue "Indicates if the service has the kids service for travelling alone"
      dc#hasChildSeats hasValue "Indicates if the flights has child seats"
      dc#minimunRate hasValue "Indicates the minimun rate in this service"
      dc#maximunRate hasValue "Indicates the maximun rate in this service"
      dc#originCities hasValue "The available origin cities"
      dc#destinationCities hasValue "The available destination cities"
    endNonFunctionalProperties
    serviceProvider impliesType fl#flightServiceProgram   
    allowKidsAloneService ofType xsd#boolean
    hasChildSeats ofType xsd#boolean
    minimunRate ofType xsd#float
    maximunRate ofType xsd#float
    originCities impliesType loc#city
    destinationCities impliesType loc#city
  
  concept hotelRoomTravelServiceDescription subConceptOf travelServiceDescription
    nonFunctionalProperties
      dc#description hasValue "The hotel room service description to diferenciate services between them"
      dc#allowPets hasValue "Indicates if thi service offers having pets in its hotels"
      dc#allowGroupsReservation hasValue "Indicates if this service allow reservations for group"
      dc#hasSuites hasValue "Indicates if this service offers suites"
      dc#minimunRoomRate hasValue "Indicates the minimun room rate in this service"
      dc#maximunRoomRate hasValue  "Indicates the maximun room rate in this service"
      dc#minimunStars hasValue "The available destination cities"
      dc#maximunStars hasValue "The available cities that this service offers"
      dc#availableCities hasValue "The available cities that this service offers"
      dc#availableHotels hasValue "The available hotels that this service offers"   
    endNonFunctionalProperties    
    serviceProvider impliesType ho#hotelServiceProvider
    allowPets ofType xsd#boolean
    allowGroupsReservation ofType xsd#boolean
    hasSuites ofType xsd#boolean
    minimunRoomRate ofType xsd#float
    maximunRoomRate ofType xsd#float
    minimunStars ofType xsd#integer
    maximunStars ofType xsd#integer
    availableCities ofType loc#city
    availableHotels ofType hb#hotel
  
  concept carRentalTravelServiceDescription subConceptOf travelServiceDescription
    nonFunctionalProperties
      dc#description hasValue "The car rental service description to diferenciate services between them"
      dc#allowSendToHome hasValue "Indicates if this service offers sending the car to the customers home"
      dc#allowOutlineReturn hasValue "Indicates if this service allow returning the car outline"      
      dc#minimunRate hasValue "Indicates the minimun car rental rate in this service"
      dc#maximunRate hasValue  "Indicates the maximun room car rental in this service"
      dc#hasChildSeats hasValue "Indicates if this service offers child seats"
      dc#availableCities hasValue "The available cities that this service offers"
      dc#parkingLocations hasValue "The available parking locations that this service offers"   
    endNonFunctionalProperties  
    serviceProvider impliesType cr#carRentalServiceProvider 
    allowSendToHome ofType xsd#boolean
    allowOutlineReturn ofType xsd#boolean
    minimunRate ofType xsd#float
    maximunRate ofType xsd#float
    hasChildSeats ofType xsd#boolean
    availableCities ofType loc#city
    parkingLocations ofType loc#address
    
  concept shuttleTravelServiceDescription subConceptOf travelServiceDescription
    nonFunctionalProperties
      dc#description hasValue "The shuttle service description to diferenciate services between them"
      dc#allowKidsAloneService hasValue "Indicates if the service has the kids service for travelling alone"      
      dc#allowKidsAloneService hasValue "Indicates if the service offers vans or not"     
      dc#hasChildSeats hasValue "Indicates if this service offers child seats"
      dc#availableCities hasValue "The available origin airports where this service is offered"     
    endNonFunctionalProperties    
    serviceProvider impliesType sh#shuttleServiceProvider
    allowKidsAloneService ofType xsd#boolean
    hasChildSeats ofType xsd#boolean
    hasVans ofType xsd#boolean        
    availableOriginAirports impliesType fl#airport
        
    
  concept package
    nonFunctionalProperties
      dc#description hasValue "defines a package"
      dc#name hasValue "Indicates the name of the package"      
      dc#creationDate hasValue "Indicates ithe package creation date"     
      dc#service hasValue "The services that compose this package"
      dc#constraints hasValue "The constraints of the package"    
    endNonFunctionalProperties
    name ofType xsd#string
    creationDate ofType dt#date    
    slots impliesType travelServiceDescription        
    constraints impliesType constraintDescription
    
  concept usersPackage subConceptOf package
    nonFunctionalProperties
      dc#description hasValue "defines a package created by a user"
      dc#user hasValue "The user that has created this package"
    endNonFunctionalProperties
    user ofType cu#customer
  
  concept constraintDescription
    nonFunctionalProperties
      dc#description hasValue "defines a constraint in the package definition"
      dc#properties hasValue "The constraint has to be in a constraint language"
    endNonFunctionalProperties
    properties ofType xsd#string
    

instance ESPAIR memberOf flightTravelServiceDescription
    serviceProvider hasValue {Espair}
    serviceName hasValue "Espair flights"
    category hasValue flightBookingCategory
    deliveryDate hasValue _date(2004,5,15)
    points hasValue 200
    reliability hasValue 90   
    timeOfResponse hasValue 30        
    securityIssues hasValue ""
    allowKidsAloneService hasValue "true"
    hasChildSeats hasValue "true"
    minimunRate hasValue 60
    maximunRate hasValue 500
    originCities hasValue {Madrid, Barcelona, Valencia, Bilbao, PalmaDeMallorca}
    destinationCities hasValue {Madrid, Barcelona, Valencia, Bilbao, PalmaDeMallorca}
  
  instance BALEAIR memberOf flightTravelServiceDescription
    serviceProvider hasValue {Baleair}
    serviceName hasValue " Baleair flights"
    category hasValue flightBookingCategory
    deliveryDate hasValue _date(2004,12,1)
    points hasValue 120
    reliability hasValue 92   
    timeOfResponse hasValue 25        
    securityIssues hasValue ""
    allowKidsAloneService hasValue "false"
    hasChildSeats hasValue "false"
    minimunRate hasValue 70
    maximunRate hasValue 600
    originCities hasValue {Madrid, Barcelona}
    destinationCities hasValue {PalmaDeMallorca, Iibiza}

 
  instance HOTESP memberOf  hotelRoomTravelServiceDescription
    serviceProvider hasValue {Hotesp}
    serviceName hasValue "Hotesp hotels"
    category hasValue hotelBookingCategory
    deliveryDate hasValue _date(2004,2,2)
    points hasValue 50
    reliability hasValue 98   
    timeOfResponse hasValue 15    
    securityIssues hasValue ""    
    allowPets hasValue "true"
    allowGroupsReservation hasValue "true"
    hasSuites hasValue "true"
    minimunRoomRate hasValue 150
    maximunRoomRate hasValue 40
    minimunStars hasValue 3
    maximunStars hasValue 5
    availableCities hasValue {Madrid,Barcelona,Valencia,Bilbao,Sevilla}
    availableHotels hasValue {HOTESPMadrid, HOTESPBarcelona, HOTESPValencia, HOTESPBilbao, HOTESPSevilla}

 instance HOTELBAL memberOf  hotelRoomTravelServiceDescription
    serviceProvider hasValue { HotelBal }
    serviceName hasValue "HotelBal hotels"
    category hasValue hotelBookingCategory
    deliveryDate hasValue _date(2004,5,6)
    points hasValue 55
    reliability hasValue 94   
    timeOfResponse hasValue 12    
    securityIssues hasValue ""    
    allowPets hasValue "false"
    allowGroupsReservation hasValue "true"
    hasSuites hasValue "true"
    minimunRoomRate hasValue 175
    maximunRoomRate hasValue 50
    minimunStars hasValue 4
    maximunStars hasValue 5
    availableCities hasValue {PalmaDeMallorca, Ibiza, Menorca}
    availableHotels hasValue {HOTELBALMallorca, HOTELBALIbiza}
 

 

Listing 8. SFS Customer Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/customer#",
  dc _"http://purl.org/dc/elements/1.1#",
  loc _"http://www.wsmo.org/ontologies/location#",
  xsd _"http://www.w3.org/2001/XMLSchema#"}   

ontology _"http://www.wsmo.org/ontologies/sfs/customer"
  nonFunctionalProperties
    dc#title hasValue "customer SFS"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Service record "}
    dc#description hasValue "The SFS customer ontology "
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#ontologies"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/sfs/customer"   
    dc#language hasValue "en-US"    
    dc#coverage hasValue "ID:7029392 Name:World"        
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/sfs/serviceDescription",
    _"http://www.wsmo.org/ontologies/location"}    
        
  concept customer
    nonFunctionalProperties
      dc#description hasValue "A SFS customer"
      dc#username hasValue "The username of the customer"
      dc#password hasValue "The pasword of the customer"
      dc#accumulatedPoints hasValue "The points acummulated by the user"
    endNonFunctionalProperties
    username ofType xsd#string
    password ofType xsd#string
    contactInformation impliesType contactInformation     
    accumulatedPoints ofType xsd#integer


  concept contactInformation
      nonFunctionalProperties
          dc#description hasValue "The collection of business properties that
            provide communication and address information for
            contacting a person, organization or business."         
          dc#name hasValue "The customers name"
          dc#emailaddress hasValue "The email of the customer"
          dc#faxnumber hasValue "The fax number of the customer"
          dc#telephonenumber hasValue "The phone number of the customer"
          dc#physicalAddress hasValue "A address of the customer"
      endNonFunctionalProperties
      name ofType xsd#string
      emailaddress ofType xsd#string
      faxnumber ofType xsd#string
      telephonenumber ofType xsd#string
      physicalAddress ofType loc#address
  
  instance Paquito memberOf customer
      username hasValue "paquito"
      password hasValue "paquito"
    
    
  instance paquitoContactInfo memberOf contactInformation
    name hasValue "Francisco De Benito Bercimuelle"
    emailaddress hasValue "paquito@anymail.com"
    faxnumber hasValue "34913452121"
    telephonenumber hasValue "34696023424"
    physicalAddress hasValue paquitoAddress         
    accumulatedPoints hasValue 3000

 

 

3.2 Goals

Goals denote what a user wants as the result of the Web Service. For modeling the goal, WSMO describes the information elements that the user wants to get from the service (the postcondition) together with the state of the world desired after the service execution (the effect).

In WSMO, Goals can be defined a different levels of granularity. By so-called GG Mediators, new, more specific Goals can be created out of generic existing Goals. You can also think of generic Goals as being pre-defined in a specific application context, wherefrom concrete Goals can be generated from. In order to showcase this, we define a generic goal for each service.

All of the goals will have the following description elements

Listing 9. Flight Booking Goal.
namespace{ _"http://www.wsmo.org/2005/d10/resources/flightBookingBuyerGoal#",
  dc _"http://purl.org/dc/elements/1.1#",
  fb _"http://www.wsmo.org/ontologies/flightBooking#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  dt _"http://www.wsmo.org/ontologies/dateTime#"
}

goal _"http://www.wsmo.org/2005/d10/resources/flightBookingBuyerGoal"

  nonFunctionalProperties 
    dc#title hasValue "Flight Booking Buyer Goal"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Flight", "Flight Booking", "Airport", "AirTrip"}
    dc#description hasValue "Express the goal booking an airTrip"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-15"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
    dc#format hasValue "text/plain"
    dc#identifier hasValue _"http://www.wsmo.org/2005/d10/resources/flightBookingBuyerGoal"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://www.wsmo.org/ontologies/flightBooking",
      _"http://www.wsmo.org/ontologies/booking",
      _"http://www.wsmo.org/ontologies/location",
      _"http://www.wsmo.org/ontologies/dateTime"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://deri.at/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/flightBooking",
    _"http://www.wsmo.org/ontologies/booking",
    _"http://www.wsmo.org/ontologies/location",
    _"http://www.wsmo.org/ontologies/dateTime"
  }
 
  capability
    postcondition
      nonFunctionalProperties
        dc#description hasValue "This goal expresses the general desire of booking a flight ."
      endNonFunctionalProperties
      definedBy 
        exists {?BookingIdentifier, ?FlightBookingTicket, ?BookingTicketIdentificator, ?AirTripInfo, 
               ?Start, ?End , ?Departure, ?Arrival , ?Buyer, ?BuyerContactInformation,
               ?FlightBookingPreferences, ?BuyerEmail , ?Class, ?NumMaxConnections}
        (
          ?BookingIdentifier memberOf bo#bookingIdentifier and 
          ?FlightBookingTicket memberOf fb#flightBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            airTripInfo hasValue ?AirTripInfo
          ] and 
          ?BookingTicketIdentificator memberOf bo#bookingTicketIdentificator and          
          ?AirTripInfo memberOf fb#airTripInfo 
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival
          ] and       
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            flightBookingPreferences hasValue ?FlightBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?BuyerEmail
          ]and 
          ?BuyerEmail memberOf xsd#string and
          ?FlightBookingPreferences memberOf fb#flightBookingPreferences
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival,
            class hasValue ?Class,
            numMaxConnections hasValue ?NumMaxConnections
          ] and       
          ?Start memberOf fb#airport and
          ?End  memberOf fb#airport and    
          ?Departure memberOf dt#dateAndTime and
          ?Arrival memberOf dt#dateAndTime and
          ?Class memberOf xsd#string and
          ?NumMaxConnections memberOf xsd#integer
        ) and 
        ?X memberOf fb#flightBooking[         
          bookingIdentifier hasValue ?BookingIdentifier,
          airTripInfo hasValue ?AirTripInfo,
          buyer hasValue ?Buyer,                 
          bookingTicket hasValue ?FlightBookingTicket            
        ]. 
   
    effect
      nonFunctionalProperties
        dc#description hasValue "The goal effect that a flight booking ticket is delivered via emial."
      endNonFunctionalProperties
      definedBy 
        exists {?FlightBooking, ?BookingIdentifier, ?FlightBookingTicket, ?BookingTicketIdentificator, 
               ?AirTripInfo, ?Start, ?End , ?Departure, ?Arrival , ?Buyer, ?BuyerContactInformation,
               ?FlightBookingPreferences, ?BuyerEmail , ?Class, ?NumMaxConnections}
        (
          ?FlightBooking memberOf fb#flightBooking
          [
            bookingIdentifier hasValue ?BookingIdentifier,
            airTripInfo hasValue ?AirTripInfo,
            buyer hasValue ?Buyer,                 
            bookingTicket hasValue ?FlightBookingTicket          
          ] and
          ?BookingIdentifier memberOf xsd#String and  
          ?AirTripInfo memberOf fb#airTripInfo 
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival
          ] and         
          ?FlightBookingTicket memberOf fb#flightBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            airTripInfo hasValue ?AirTripInfo
          ] and
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            flightBookingPreferences hasValue ?FlightBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?BuyerEmail
          ]and 
          ?BuyerEmail memberOf xsd#string and
          ?FlightBookingPreferences memberOf fb#flightBookingPreferences
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival,
            class hasValue ?Class, 
            numMaxConnections hasValue ?NumMaxConnections
          ] and       
          ?Start memberOf fb#airport and
          ?End  memberOf fb#airport and    
          ?Departure memberOf dt#dateAndTime and
          ?Arrival memberOf dt#dateAndTime and
          ?Class memberOf xsd#string and
          ?NumMaxConnections memberOf xsd#integer
        ) and
        ?X memberOf bo#onlineDelivery[
          deliveryItem hasValue {?FlightBookingTicket}, 
          receiver hasValue ?Buyer, 
          onlineDeliveryMethod hasValue "email"
        ].

 

Listing 10. Hotel Room Booking Goal.
namespace{ _"http://www.wsmo.org/2005/d10/resources/hotelRoomBookingBuyerGoal#",
  dc _"http://purl.org/dc/elements/1.1#",
  hb _"http://www.wsmo.org/ontologies/hotelRoomBooking#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  dt _"http://www.wsmo.org/ontologies/dateTime#"
}

goal _"http://www.wsmo.org/2005/d10/resources/hotelRoomBookingBuyerGoal"

  nonFunctionalProperties 
    dc#title hasValue "Fight Booking Buyer Goal"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Hotel", "Hotel room booking", "Room", "hotelStay"}
    dc#description hasValue "Express the goal of booking a hotel room"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-15"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
    dc#format hasValue "text/plain"
    dc#identifier hasValue _"http://www.wsmo.org/2005/d10/resources/hotelRoomBookingBuyerGoal"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://www.wsmo.org/ontologies/hotelRoomBooking",
      _"http://www.wsmo.org/ontologies/booking",
      _"http://www.wsmo.org/ontologies/location",
      _"http://www.wsmo.org/ontologies/dateTime"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://deri.at/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/hotelRoomBooking",
    _"http://www.wsmo.org/ontologies/booking",
    _"http://www.wsmo.org/ontologies/location",
    _"http://www.wsmo.org/ontologies/dateTime"
  }

  capability 
    postcondition 
      nonFunctionalProperties
        dc#description hasValue "This goal expresses the general desire of booking a hotel room ."
      endNonFunctionalProperties
      definedBy
        exists {?BookingIdentifier, ?HotelRoomBookingTicket, ?BookingTicketIdentificator, 
               ?HotelStay, ?DateAndTime , ?CheckIn, ?CheckOut, ?Room, ?Hotel, ?Buyer, 
               ?BuyerContactInformation ,?HotelRoomBookingPreferences, ?numberOfPersons, ?hotelStars}
        (
          ?BookingIdentifier memberOf bo#bookingIdentifier and 
          ?HotelRoomBookingTicket memberOf hb#hotelRoomBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            hotelStay hasValue ?HotelStay
          ] and 
          ?BookingTicketIdentificator memberOf bo#bookingTicketIdentificator and          
          ?HotelStay memberOf hb#hotelStay [  
            checkIn hasValue ?CheckIn,
            checkOut hasValue ?CheckOut,
            room hasValue ?Room,
            hotel hasValue ?Hotel     
          ] and 
          ?CheckIn memberOf dt#date and
          ?CheckOut memberOf dt#date and  
          ?Room memberOf hb#room and
          ?Hotel memberOf hb#hotel and       
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?ContactInformation,
            bookingPreferences hasValue ?HotelRoomBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?InputBuyerEmail
          ] and
          ?HotelRoomBookingPreferences memberOf hb#hotelRoomBookingPreferences
          [
                checkIn hasValue ?CheckIn,
                checkOut hasValue ?CheckOut,    
                numberOfPersons hasValue ?NumberOfPersons,
                hotelStars hasValue ?HotelStars
          ] and         
          ?NumberOfPersons memberOf xsd#integer and 
          ?HotelStars memberOf xsd#integer
        )
        and 
        ?X memberOf hb#hotelRoomBooking[         
          bookingIdentifier hasValue ?BookingIdentifier,
          hotelStay hasValue ?HotelStay,
          buyer hasValue ?Buyer,                 
          bookingTicket hasValue ?HotelRoomBookingTicket           
        ]. 
   
    effect 
      nonFunctionalProperties
        dc#description hasValue "The goal effect that a hotel room booking ticket is delivered via emial."
      endNonFunctionalProperties
      definedBy                         
        exists {?HotelRoomBooking, ?BookingIdentifier, ?HotelRoomBookingTicket, ?BookingTicketIdentificator, 
               ?HotelStay, ?DateAndTime , ?CheckIn, ?CheckOut, ?Room, ?Hotel, ?Buyer, 
               ?BuyerContactInformation ,?HotelRoomBookingPreferences, ?numberOfPersons, ?hotelStars}
        (
          ?BookingIdentifier memberOf bo#bookingIdentifier and 
          ?HotelRoomBookingTicket memberOf hb#hotelRoomBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            hotelStay hasValue ?HotelStay
          ] and 
          ?BookingTicketIdentificator memberOf bo#bookingTicketIdentificator and          
          ?HotelStay memberOf hb#hotelStay [  
            checkIn hasValue ?CheckIn,
            checkOut hasValue ?CheckOut,
            room hasValue ?Room,
            hotel hasValue ?Hotel     
          ] and 
          ?CheckIn memberOf dt#date and
          ?CheckOut memberOf dt#date and  
          ?Room memberOf hb#room and
          ?Hotel memberOf hb#hotel and       
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?ContactInformation,
            bookingPreferences hasValue ?HotelRoomBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?InputBuyerEmail
          ] and
          ?HotelRoomBookingPreferences memberOf hb#hotelRoomBookingPreferences
          [
                checkIn hasValue ?CheckIn,
                checkOut hasValue ?CheckOut,    
                numberOfPersons hasValue ?NumberOfPersons,
                hotelStars hasValue ?HotelStars
          ] and         
          ?NumberOfPersons memberOf xsd#integer and 
          ?HotelStars memberOf xsd#integer and                            
          ?HotelRoomBooking memberOf hb#hotelRoomBooking [         
            bookingIdentifier hasValue ?BookingIdentifier,
            hotelStay hasValue ?HotelStay,
            buyer hasValue ?Buyer,                 
            bookingTicket hasValue ?HotelRoomBookingTicket           
          ]
        )
        and  
          ?X memberOf bo#onlineDelivery[
            deliveryItem hasValue {?HotelRoomBookingTicket}, 
            receiver hasValue ?Buyer, 
            onlineDeliveryMethod hasValue "email"
          ].

 

Listing 11. Car Rental Booking Goal.
namespace {_"http://www.wsmo.org/2005/d10/resources/carRentalBookingBuyerGoal#",
  dc _"http://purl.org/dc/elements/1.1#",
  cb _"http://www.wsmo.org/ontologies/carRentalBooking#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  dt _"http://www.wsmo.org/ontologies/dateTime#"
}

goal _"http://www.wsmo.org/2005/d10/resources/carRentalBookingBuyerGoal.wsml"
  nonFunctionalProperties
    dc#title hasValue "Car Rental Booking Buyer Goal"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Car rental", "Rent a car online", "Car booking"}
    dc#description hasValue "Express the goal of renting a car"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-15"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
    dc#format hasValue "text/plain"
    dc#identifier hasValue _"http://www.wsmo.org/2005/d10/resources/carRentalBookingBuyerGoal.wsml"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://www.wsmo.org/ontologies/carRentalBooking",
      _"http://www.wsmo.org/ontologies/booking",
      _"http://www.wsmo.org/ontologies/location",
      _"http://www.wsmo.org/ontologies/dateTime"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://deri.at/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties

  importsOntology {_"http://www.wsmo.org/ontologies/carRentalBooking",
    _"http://www.wsmo.org/ontologies/booking",
    _"http://www.wsmo.org/ontologies/location",
    _"http://www.wsmo.org/ontologies/dateTime"
  }
 
  capability
    postcondition
      nonFunctionalProperties
        dc#description hasValue "This goal expresses the general desire of booking a car rental ."
      endNonFunctionalProperties
      definedBy
        exists {?BookingIdentifier, ?CarRentalBookingTicket, ?BookingTicketIdentificator,
          ?CarRentalBookingInfo, ?PickupLocation ,?ReturnLocation ,?PickupDateAndTime,
          ?ReturnDateAndTime , ?Car, ?Buyer, ?BuyerContactInformation, ?DoorCount,
          ?CarSize, ?MiliageLimited, ?HasChildSeat, ?HasAirConditioning}
          (
            ?BookingIdentifier memberOf xsd#string and 
            ?CarRentalBookingInfo memberOf cb#carRentalBookingInfo[        
              pickupLocation hasValue ?PickupLocation,
              returnLocation hasValue ?ReturnLocation,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              returnDateAndTime hasValue ?ReturnDateAndTime,            
              car hasValue ?Car 
            ] and 
            ?PickupLocation memberOf loc#location and 
            ?ReturnLocation memberOf loc#location and 
            ?PickupDateAndTime memberOf dt#dateAndTime and  
            ?ReturnDateAndTime memberOf dt#dateAndTime and                    
            ?Car memberOf cb#car 
            [
              doorCount hasValue ?DoorCount,
              carSize hasValue ?CarSize,
              miliageLimited hasValue ?MiliageLimited,
              hasChildSeat hasValue ?HasChildSeat,
              hasAirConditioning hasValue ?HasAirConditioning   
            ] and
            ?CarRentalBookingTicket memberOf cb#carRentalBookingTicket
            [
              bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
              carRentalBookingInfo hasValue ?CarRentalBookingInfo
            ] and 
            ?BookingTicketIdentificator memberOf xsd#string and                                        
            ?Buyer memberOf bo#buyer[
              contactInformation hasValue ?BuyerContactInformation,
              bookingPreferences hasValue ?CarRentalBookingPreferences
            ] and 
            ?BuyerContactInformation memberOf bo#contactInformation [
              emailaddress hasValue ?Emailaddress
            ]and        
            ?Emailaddress memberOf xsd#string and   
            ?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences
            [                    
              pickupLocation hasValue ?PickupLocation,
              returnLocation hasValue ?ReturnLocation,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              returnDateAndTime hasValue ?ReturnDateAndTime,    
              doorCount hasValue ?DoorCount,
              carSize hasValue ?CarSize,
              miliageLimited hasValue ?MiliageLimited,
              hasChildSeat hasValue ?HasChildSeat,
              hasAirConditioning hasValue ?HasAirConditioning   
            ] and             
            ?DoorCount memberOf xsd#integer and   
            ?CarSize memberOf xsd#integer and
            ?MiliageLimited memberOf xsd#boolean and
            ?HasChildSeat memberOf xsd#boolean and 
            ?HasAirConditioning memberOf xsd#boolean
          ) and           
          ?X memberOf cb#carRentalBooking[         
            bookingIdentifier hasValue ?BookingIdentifier,
            carRentalBookingInfo hasValue ?CarRentalBookingInfo,
            buyer hasValue ?Buyer,          
            bookingTicket hasValue ?CarRentalBookingTicket           
          ]. 
 
    effect 
      nonFunctionalProperties
        dc#description hasValue "The goal effect that a carRrebnta is delivered via emial."
      endNonFunctionalProperties
      definedBy
        exists {?CarRentalBooking ,?BookingIdentifier, ?CarRentalBookingTicket, ?BookingTicketIdentificator, 
               ?CarRentalBookingInfo, ?PickupLocation ,?ReturnLocation ,?PickupDateAndTime, ?ReturnDateAndTime , 
               ?Car, ?Buyer, ?BuyerContactInformation, ?DoorCount, ?CarSize, ?MiliageLimited, 
               ?HasChildSeat, ?HasAirConditioning}
         (
            ?CarRentalBooking memberOf bo#carRentalBooking
            [
              bookingIdentifier hasValue ?BookingIdentifier,
              carRentalBookingInfo hasValue ?CarRentalBookingInfo,
              buyer hasValue ?Buyer,
              bookingTicket hasValue ?CarRentalBookingTicket           
            ] and
            ?BookingIdentifier memberOf xsd#string and  
            ?CarRentalBookingInfo memberOf cb#carRentalBookingInfo [          
              pickupLocation hasValue ?PickupLocation,
              returnLocation hasValue ?ReturnLocation,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              returnDateAndTime hasValue ?ReturnDateAndTime,            
              car hasValue ?Car 
            ] and
            ?PickupLocation memberOf loc#location and 
            ?ReturnLocation memberOf loc#location and 
            ?PickupDateAndTime memberOf dt#dateAndTime and  
            ?ReturnDateAndTime memberOf dt#dateAndTime and                    
            ?Car memberOf cb#car [
              doorCount  ?DoorCount,
              carSize hasVhasValuealue ?CarSize,
              miliageLimited hasValue ?MiliageLimited,
              hasChildSeat hasValue ?HasChildSeat,
              hasAirConditioning hasValue ?HasAirConditioning   
            ] and
            ?CarRentalBookingTicket memberOf cb#carRentalBookingTicket
            [
              bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
              carRentalBookingInfo hasValue ?CarRentalBookingInfo
            ] and             
            ?BookingTicketIdentificator memberOf xsd#string and                            
            ?Buyer memberOf bo#buyer[
              contactInformation hasValue ?BuyerContactInformation,
              bookingPreferences hasValue ?CarRentalBookingPreferences
            ] and 
            ?BuyerContactInformation memberOf bo#contactInformation [
              emailaddress hasValue ?Emailaddress
            ]and        
            ?Emailaddress memberOf xsd#string and   
            ?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences
            [                    
              pickupLocation hasValue ?PickupLocation,
              returnLocation hasValue ?ReturnLocation,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              returnDateAndTime hasValue ?ReturnDateAndTime,    
              doorCount hasValue ?DoorCount,
              carSize hasValue ?CarSize,
              miliageLimited hasValue ?MiliageLimited,
              hasChildSeat hasValue ?HasChildSeat,
              hasAirConditioning hasValue ?HasAirConditioning   
            ] and             
            ?DoorCount memberOf xsd#integer and   
            ?CarSize memberOf xsd#integer and
            ?MiliageLimited memberOf xsd#boolean and
            ?HasChildSeat memberOf xsd#boolean and 
            ?HasAirConditioning memberOf xsd#boolean
          ) and
          ?X memberOf bo#onlineDelivery[
            deliveryItem hasValue {?CarRentalBookingTicket}, 
            receiver hasValue ?Buyer, 
            onlineDeliveryMethod hasValue "email"
          ].

 

Listing 12. Shuttle Booking Goal.
namespace {_"http://www.wsmo.org/2005/d10/resources/shuttleBookingBuyerGoal#",
  dc _"http://purl.org/dc/elements/1.1#",
  sb _"http://www.wsmo.org/ontologies/shuttleBooking#",
  fb _"http://www.wsmo.org/ontologies/flightBooking#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  dt _"http://www.wsmo.org/ontologies/dateTime#"
}
  
goal _"http://www.wsmo.org/2005/d10/resources/shuttleBookingBuyerGoal.wsml"

  nonFunctionalProperties 
    dc#title hasValue "Shuttle booking ontology"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Taxi shuttle", "Shuttle booking", "Taxi"}
    dc#description hasValue "Express the goal for booking a shuttle"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-15"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
    dc#format hasValue "text/plain"
    dc#identifier hasValue _"http://www.wsmo.org/2005/d10/resources/shuttleBookingBuyerGoal.wsml"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://www.wsmo.org/ontologies/shuttleBooking",
      _"http://www.wsmo.org/ontologies/flightBooking",
      _"http://www.wsmo.org/ontologies/booking",
      _"http://www.wsmo.org/ontologies/location",
      _"http://www.wsmo.org/ontologies/dateTime"}
      dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://deri.at/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties
  
  
  importsOntology {_"http://www.wsmo.org/ontologies/shuttleBooking",
    _"http://www.wsmo.org/ontologies/flightBooking",
    _"http://www.wsmo.org/ontologies/booking",
    _"http://www.wsmo.org/ontologies/location",
    _"http://www.wsmo.org/ontologies/dateTime"
  }
  
  capability
    postcondition
      nonFunctionalProperties
        dc#description hasValue "This goal expresses the general desire of booking a shuttle ."
      endNonFunctionalProperties
      definedBy
        exists {?BookingIdentifier, ?ShuttleBookingTicket, ?BookingTicketIdentificator, 
          ?ShuttleBookingInfo, ?PickupAirport ,?PickupDateAndTime, ?Destination,
          ?Buyer, ?BuyerContactInformation, ?ShuttleBookingTicket}
        (
          ?BookingIdentifier memberOf xsd#string and
          ?ShuttleBookingInfo memberOf sb#shuttleBookingInfo [
            pickupAirport hasValue ?PickupAirport,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            destination hasValue ?Destination,
            shuttle hasValue ?Shuttle
          ] and 
          ?PickupAirport memberOf fb#airport and
          ?PickupDateAndTime memberOf dt#dateAndTime and
          ?Destination memberOf loc#location and
          ?Shuttle memberOf sb#shuttle and
          ?ShuttleBookingTicket memberOf sb#shuttleBookingTicket [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
            shuttleBookingInfo hasValue ?ShuttleBookingInfo
          ] and
          ?BookingTicketIdentificator memberOf xsd#string and
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            bookingPreferences hasValue ?ShuttleBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?Emailaddress
          ]and
          ?Emailaddress memberOf xsd#string and
          ?ShuttleBookingPreferences memberOf sb#shuttleBookingPreferences[
            pickupAirport hasValue ?PickupLocation,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            destination hasValue ?Destination
          ]
        ) and
          ?X memberOf sb#shuttleBooking[ 
            bookingIdentifier hasValue ?BookingIdentifier,
            shuttleBookingInfo hasValue ?ShuttleBookingInfo,
            buyer hasValue ?Buyer,
            bookingTicket hasValue ?ShuttleBookingTicket
          ]. 

    effect
      nonFunctionalProperties
        dc#description hasValue "The goal effect that a carRrebnta is delivered via emial."
      endNonFunctionalProperties
      definedBy
        exists {?ShuttleBooking ,?BookingIdentifier, ?ShuttleBookingTicket,
          ?BookingTicketIdentificator, ?ShuttleBookingInfo, ?PickupAirport ,
          ?PickupDateAndTime, ?Destination, ?Buyer, ?BuyerContactInformation,
          ?ShuttleBookingTicket}
          (
            ?ShuttleBooking memberOf sb#shuttleBooking[
              bookingIdentifier hasValue ?BookingIdentifier,
              shuttleBookingInfo hasValue ?ShuttleBookingInfo,
              buyer hasValue ?Buyer,
              bookingTicket hasValue ?ShuttleBookingTicket
            ] and
            ?BookingIdentifier memberOf xsd#string and
            ?ShuttleBookingInfo memberOf sb#shuttleBookingInfo [
              pickupAirport hasValue ?PickupAirport,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              destination hasValue ?Destination,
              shuttle hasValue ?Shuttle 
            ] and 
            ?PickupAirport memberOf fb#airport and
            ?PickupDateAndTime memberOf dt#dateAndTime and
            ?Destination memberOf loc#location and
            ?Shuttle memberOf sb#shuttle and
            ?ShuttleBookingTicket memberOf sb#shuttleBookingTicket [
              bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
              shuttleBookingInfo hasValue ?ShuttleBookingInfo
            ] and
            ?BookingTicketIdentificator memberOf xsd#string and
            ?Buyer memberOf bo#buyer[
              contactInformation hasValue ?BuyerContactInformation,
              bookingPreferences hasValue ?ShuttleBookingPreferences
            ] and 
            ?BuyerContactInformation memberOf bo#contactInformation [
              emailaddress hasValue ?Emailaddress
            ]and
            ?Emailaddress memberOf xsd#string and
            ?ShuttleBookingPreferences memberOf sb#shuttleBookingPreferences[
              pickupAirport hasValue ?PickupLocation,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              destination hasValue ?Destination
            ]
          ) and
            ?X memberOf bo#onlineDelivery[
              deliveryItem hasValue {?ShuttleBookingTicket}, 
              receiver hasValue ?Buyer, 
              onlineDeliveryMethod hasValue "email"
            ].                 

    

3.3 Web Services

We define the Web Services in this use case: end-user services (means that the user interacts with this services) for booking a flight, a hotel room and a car rental. This Web Services can be composed of other Web Services. This setting allows modeling all notions of a WSMO Web Service description: a Capability of the end-user service and its Choreography for user-service interaction, as well as the orchestration which incorporates the aggregated Web Services. The current version of WSMO Standard does only provide a stable specification for describing Capabilities, the model below is restricted to the overall Web Service description and the Capability definition. The modeling for the WSMO Web Service Interface will be added in a later version. A Web Service Capability in WSMO is described by pre- and post-conditions, assumptions and effects, as defined in [Roman et al., 2004].

Listing 13. Flight Booking Web Service.
namespace {_"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/flightBuyerWS#",
  dc _"http://purl.org/dc/elements/1.1#",
  fb _"http://www.wsmo.org/ontologies/flightBooking#",
  bo _"http://www.wsmo.org/ontologies/booking#",
  loc _"http://www.wsmo.org/ontologies/location#",
  dt _"http://www.wsmo.org/ontologies/dateTime#"
}

webService _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/flightBuyerWS.wsml"
  
  nonFunctionalProperties
    dc#title hasValue "Online Booking Web Service"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Flight", "Flight Booking", "Airport", "AirTrip"}     
    dc#description hasValue "Web service for booking an airTrip"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#webservice"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/flightBuyerWS"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
      _"http://daml.umbc.edu/ontologies/ittalks/person",
      _"http://www.wsmo.org/ontologies/booking",
      _"http://www.wsmo.org/ontologies/flightBooking",
      _"http://www.wsmo.org/ontologies/dateTime",
      _"http://www.wsmo.org/ontologies/location"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties
    
  importsOntology {_"http://www.wsmo.org/ontologies/flightBooking",
    _"http://www.wsmo.org/ontologies/booking",
    _"http://www.wsmo.org/ontologies/location",
    _"http://www.wsmo.org/ontologies/dateTime"
  }
    
  capability flightBuyerWSCapability
    precondition
      nonFunctionalProperties
        dc#description hasValue "Required input is# 
          [1] buyer email information
          [2] airTrip requirements"                        
      endNonFunctionalProperties
      definedBy        
        ?Buyer memberOf bo#buyer[
          contactInformation hasValue ?BuyerContactInformation,
          flightBookingPreferences hasValue ?FlightBookingPreferences
        ] and 
        ?BuyerContactInformation memberOf bo#contactInformation [
          emailaddress hasValue ?InputBuyerEmail
        ]and 
        ?FlightBookingPreferences memberOf fb#flightBookingPreferences
        [           
          start hasValue ?Start,
          end hasValue ?End,
          departure hasValue ?Departure,
          arrival hasValue ?Arrival,
          class hasValue ?Class,
          numMaxConnections hasValue ?NumMaxConnections
        ] and       
        ?Start memberOf fb#airport and
        ?End  memberOf fb#airport and    
        ?Departure memberOf dt#dateAndTime and
        ?Arrival memberOf dt#dateAndTime and
        ?Class memberOf xsd#string and
        ?NumMaxConnections memberOf xsd#integer. 

    postcondition
      nonFunctionalProperties
        dc#description hasValue "the output of the service is a flight booking."
      endNonFunctionalProperties
      definedBy 
        exists {?BookingIdentifier, ?FlightBookingTicket, ?BookingTicketIdentificator, ?AirTripInfo, 
               ?Start, ?End , ?Departure, ?Arrival , ?Buyer, ?BuyerContactInformation,
               ?FlightBookingPreferences, ?BuyerEmail , ?Class, ?NumMaxConnections}
        (
          ?BookingIdentifier memberOf bo#bookingIdentifier and 
          ?FlightBookingTicket memberOf fb#flightBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            airTripInfo hasValue ?AirTripInfo
          ] and 
          ?BookingTicketIdentificator memberOf bo#bookingTicketIdentificator and          
          ?AirTripInfo memberOf fb#airTripInfo 
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival
          ] and       
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            flightBookingPreferences hasValue ?FlightBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?BuyerEmail
          ]and 
          ?BuyerEmail memberOf xsd#string and
          ?FlightBookingPreferences memberOf fb#flightBookingPreferences
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival,
            class hasValue ?Class,
            numMaxConnections hasValue ?NumMaxConnections
          ] and       
          ?Start memberOf fb#airport and
          ?End  memberOf fb#airport and    
          ?Departure memberOf dt#dateAndTime and
          ?Arrival memberOf dt#dateAndTime and
          ?Class memberOf xsd#string and
          ?NumMaxConnections memberOf xsd#integer
        ) and 
        ?X memberOf fb#flightBooking[         
          bookingIdentifier hasValue ?BookingIdentifier,
          airTripInfo hasValue ?AirTripInfo,
          buyer hasValue ?Buyer,                 
          bookingTicket hasValue ?FlightBookingTicket            
        ]. 

    effect
      nonFunctionalProperties
        dc#description hasValue "the flight booking ticket is delivered to the buyer via email."
      endNonFunctionalProperties
      definedBy
        exists {?FlightBooking, ?BookingIdentifier, ?FlightBookingTicket, ?BookingTicketIdentificator, 
               ?AirTripInfo, ?Start, ?End , ?Departure, ?Arrival , ?Buyer, ?BuyerContactInformation,
             ?FlightBookingPreferences, ?BuyerEmail , ?Class, ?NumMaxConnections}
        (
          ?FlightBooking memberOf fb#flightBooking
          [
            bookingIdentifier hasValue ?BookingIdentifier,
            airTripInfo hasValue ?AirTripInfo,
            buyer hasValue ?Buyer,                 
            bookingTicket hasValue ?FlightBookingTicket          
          ] and
          ?BookingIdentifier memberOf xsd#String and  
          ?AirTripInfo memberOf fb#airTripInfo 
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival
          ] and                   
          ?FlightBookingTicket memberOf fb#flightBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            airTripInfo hasValue ?AirTripInfo
          ] and
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            flightBookingPreferences hasValue ?FlightBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?BuyerEmail
          ]and 
          ?BuyerEmail memberOf xsd#string and
          ?FlightBookingPreferences memberOf fb#flightBookingPreferences
          [           
            start hasValue ?Start,
            end hasValue ?End,
            departure hasValue ?Departure,
            arrival hasValue ?Arrival,
            class hasValue ?Class,
            numMaxConnections hasValue ?NumMaxConnections
          ] and       
          ?Start memberOf fb#airport and
          ?End  memberOf fb#airport and    
          ?Departure memberOf dt#dateAndTime and
          ?Arrival memberOf dt#dateAndTime and
          ?Class memberOf xsd#string and
          ?NumMaxConnections memberOf xsd#integer
        ) and
        ?X memberOf bo#onlineDelivery[
          deliveryItem hasValue {?FlightBookingTicket}, 
          receiver hasValue ?Buyer, 
          onlineDeliveryMethod hasValue "email"
        ].
            
  interface flightBuyerWSInterface
    nonFunctionalProperties
      dc#description hasValue "describes the Interface of the Web Service (not specified yet)"
    endNonFunctionalProperties         

    

 

Listing 14. Hotel Room Booking Web Service.
namespace {_"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/hotelRoomBuyerWS#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http:://www.wsmo.org/ontologies/dateTime#",
  hb _"http:://www.wsmo.org/ontologies/hotelRoomBooking#",
  bo _"http:://www.wsmo.org/ontologies/booking#",
  loc _"http:://www.wsmo.org/ontologies/location#"
}

webService _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/hotelRoomBuyerWS.wsml"
  
  nonFunctionalProperties
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Hotel", "Hotel room booking", "Room", "hotelStay"}
    dc#description hasValue "Hotel reservation"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#webservice"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/hotelRoomBuyerWS"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",   
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/hotelRoomBooking",
    _"http:://www.wsmo.org/ontologies/dateTime",
    _"http:://www.wsmo.org/ontologies/location"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties
    
  importsOntology {_"http:://www.wsmo.org/ontologies/hotelRoomBooking",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/location",
    _"http:://www.wsmo.org/ontologies/dateTime"
  }
    
  capability hotelRoomBuyerWSCapability
    precondition
      nonFunctionalProperties
        dc#description hasValue "Required input is# 
          [1] buyer information
          [2] hotel room booking preferences"                        
      endNonFunctionalProperties
      definedBy        
        ?Buyer memberOf bo#buyer[
          contactInformation hasValue ?ContactInformation,
          bookingPreferences hasValue ?HotelRoomBookingPreferences
        ] and 
        ?BuyerContactInformation memberOf bo#contactInformation [
          emailaddress hasValue ?InputBuyerEmail
        ] and
        ?HotelRoomBookingPreferences memberOf hb#hotelRoomBookingPreferences
        [
              checkIn hasValue ?CheckIn,
              checkOut hasValue ?CheckOut,    
              numberOfPersons hasValue ?NumberOfPersons,
              hotelStars hasValue ?HotelStars
        ] and
        ?CheckIn memberOf dt#date and
        ?CheckOut memberOf dt#date and  
        ?NumberOfPersons memberOf xsd#integer and 
        ?HotelStars memberOf xsd#integer. 

    postcondition
      nonFunctionalProperties
        dc#description hasValue "the output of the service is a hotel room booking."
      endNonFunctionalProperties
      definedBy 
        exists {?BookingIdentifier, ?HotelRoomBookingTicket, ?BookingTicketIdentificator, 
               ?HotelStay, ?DateAndTime , ?CheckIn, ?CheckOut, ?Room, ?Hotel, ?Buyer, ?BuyerEmail,
               ?BuyerContactInformation, ?HotelRoomBookingPreferences, ?numberOfPersons, ?hotelStars}
        (
          ?BookingIdentifier memberOf bo#bookingIdentifier and 
          ?HotelRoomBookingTicket memberOf hb#hotelRoomBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            hotelStay hasValue ?HotelStay
          ] and 
          ?BookingTicketIdentificator memberOf bo#bookingTicketIdentificator and          
          ?HotelStay memberOf hb#hotelStay [  
            checkIn hasValue ?CheckIn,
            checkOut hasValue ?CheckOut,
            room hasValue ?Room,
            hotel hasValue ?Hotel
          ] and 
          ?CheckIn memberOf dt#date and
          ?CheckOut memberOf dt#date and  
          ?Room memberOf hb#room and
          ?Hotel memberOf hb#hotel and       
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?ContactInformation,
            bookingPreferences hasValue ?HotelRoomBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?BuyerEmail
          ] and
          ?BuyerEmail memberOf xsd#string and                                  
          ?HotelRoomBookingPreferences memberOf hb#hotelRoomBookingPreferences
          [
            checkIn hasValue ?CheckIn,
            checkOut hasValue ?CheckOut,    
            numberOfPersons hasValue ?NumberOfPersons,
            hotelStars hasValue ?HotelStars
          ] and
          ?CheckIn memberOf dt#date and
          ?CheckOut memberOf dt#date and  
          ?NumberOfPersons memberOf xsd#integer and 
          ?HotelStars memberOf xsd#integer
        )
        and 
        ?X memberOf hb#hotelRoomBooking[         
          bookingIdentifier hasValue ?BookingIdentifier,
          hotelStay hasValue ?HotelStay,
          buyer hasValue ?Buyer,                 
          bookingTicket hasValue ?HotelRoomBookingTicket           
        ]. 

    effect
      nonFunctionalProperties
        dc#description hasValue "the booking ticket is delivered to the buyer via email."
      endNonFunctionalProperties
      definedBy
        exists {?HotelRoomBooking, ?BookingIdentifier, ?HotelRoomBookingTicket, ?BookingTicketIdentificator, 
               ?HotelStay, ?DateAndTime , ?CheckIn, ?CheckOut, ?Room, ?Hotel, ?Buyer, 
               ?BuyerContactInformation,?HotelRoomBookingPreferences, ?numberOfPersons, ?hotelStars}
        (
          ?BookingIdentifier memberOf bo#bookingIdentifier and 
          ?HotelRoomBookingTicket memberOf hb#hotelRoomBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,          
            hotelStay hasValue ?HotelStay
          ] and 
          ?BookingTicketIdentificator memberOf bo#bookingTicketIdentificator and          
          ?HotelStay memberOf hb#hotelStay [  
            checkIn hasValue ?CheckIn,
            checkOut hasValue ?CheckOut,
            room hasValue ?Room,
            hotel hasValue ?Hotel     
          ] and 
          ?CheckIn memberOf dt#date and
          ?CheckOut memberOf dt#date and  
          ?Room memberOf hb#room and
          ?Hotel memberOf hb#hotel and       
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?ContactInformation,
            bookingPreferences hasValue ?HotelRoomBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?BuyerEmail
          ] and
          ?BuyerEmail memberOf xsd#string and                                  
          ?HotelRoomBookingPreferences memberOf hb#hotelRoomBookingPreferences
          [
                checkIn hasValue ?CheckIn,
                checkOut hasValue ?CheckOut,    
                numberOfPersons hasValue ?NumberOfPersons,
                hotelStars hasValue ?HotelStars
          ] and
          ?CheckIn memberOf dt#date and
          ?CheckOut memberOf dt#date and  
          ?NumberOfPersons memberOf xsd#integer and 
          ?HotelStars memberOf xsd#integer and            
          ?HotelRoomBooking memberOf hb#hotelRoomBooking [         
            bookingIdentifier hasValue ?BookingIdentifier,
            hotelStay hasValue ?HotelStay,
            buyer hasValue ?Buyer,                 
            bookingTicket hasValue ?HotelRoomBookingTicket           
          ]
        )
        and  
          ?X memberOf bo#onlineDelivery[
            deliveryItem hasValue {?HotelRoomBookingTicket}, 
            receiver hasValue ?Buyer, 
            onlineDeliveryMethod hasValue "email"
          ].
            
  interface hotelRoomBuyerWSInterface
    nonFunctionalProperties
      dc#description hasValue "describes the Interface of Web Service (not specified yet)"
    endNonFunctionalProperties         

    

 

Listing 15. Car Rental Booking Web Service.
namespace {_"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/carBuyerWS#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http:://www.wsmo.org/ontologies/dateTime#",
  cb _"http:://www.wsmo.org/ontologies/carRentalBooking#",
  bo _"http:://www.wsmo.org/ontologies/booking#",
  loc _"http:://www.wsmo.org/ontologies/location#"
}

webService _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/carBuyerWS.wsml"
  
  nonFunctionalProperties
    dc#title hasValue "Online Car rental Booking Web Service"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Car rental", "Car booking web service", "Car"}
    dc#description hasValue "Web service for booking online carRental"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#webservice"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/carBuyerWS"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",   
      _"http:://www.wsmo.org/ontologies/booking",
      _"http:://www.wsmo.org/ontologies/carBooking",
      _"http:://www.wsmo.org/ontologies/dateTime",
      _"http:://www.wsmo.org/ontologies/location"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties
    
  importsOntology {_"http:://www.wsmo.org/ontologies/carRentalBooking",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/location",
    _"http:://www.wsmo.org/ontologies/dateTime"
  }
    
  capability carBuyerWSCapability
    precondition
      nonFunctionalProperties
        dc#description hasValue "Required input is# 
          [1] buyer information with the
          [2] car rental preferences"                        
      endNonFunctionalProperties
      definedBy        
        ?Buyer memberOf bo#buyer[
          contactInformation hasValue ?BuyerContactInformation,
          bookingPreferences hasValue ?CarRentalBookingPreferences
        ] and 
        ?BuyerContactInformation memberOf bo#contactInformation [
          emailaddress hasValue ?Emailaddress
        ]and        
        ?Emailaddress memberOf xsd#string and   
        ?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences
        [                    
          pickupLocation hasValue ?PickupLocation,
          returnLocation hasValue ?ReturnLocation,
          pickupDateAndTime hasValue ?PickupDateAndTime,
          returnDateAndTime hasValue ?ReturnDateAndTime,    
          doorCount hasValue ?DoorCount,
          carSize hasValue CarSize,
          miliageLimited hasValue ?MiliageLimited,
          hasChildSeat hasValue ?HasChildSeat,
          hasAirConditioning hasValue ?HasAirConditioning   
        ] and 
        ?PickupLocation memberOf loc#location and 
        ?ReturnLocation memberOf loc#location and 
        ?PickupDateAndTime memberOf dt#dateAndTime and  
        ?ReturnDateAndTime memberOf dt#dateAndTime and
        ?DoorCount memberOf xsd#integer and   
        ?CarSize memberOf xsd#integer and
        ?MiliageLimited memberOf xsd#boolean and
        ?HasChildSeat memberOf xsd#boolean and 
        ?HasAirConditioning memberOf xsd#boolean. 
   
           
    postcondition
      nonFunctionalProperties
        dc#description hasValue "the output of the service is a booking."
      endNonFunctionalProperties
      definedBy 
        exists {?BookingIdentifier, ?CarRentalBookingTicket, ?BookingTicketIdentificator, 
             ?CarRentalBookingInfo, ?PickupLocation ,?ReturnLocation ,?PickupDateAndTime, 
             ?ReturnDateAndTime , ?Car, ?Buyer, ?BuyerContactInformation, ?DoorCount, 
             ?CarSize, ?MiliageLimited, ?HasChildSeat, ?HasAirConditioning}
        (            
          ?BookingIdentifier memberOf xsd#string and 
          ?CarRentalBookingInfo memberOf cb#carRentalBookingInfo 
          [          
            pickupLocation hasValue ?PickupLocation,
            returnLocation hasValue ?ReturnLocation,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            returnDateAndTime hasValue ?ReturnDateAndTime,            
            car hasValue ?Car 
          ] and 
          ?PickupLocation memberOf loc#location and 
          ?ReturnLocation memberOf loc#location and 
          ?PickupDateAndTime memberOf dt#dateAndTime and  
          ?ReturnDateAndTime memberOf dt#dateAndTime and                    
          ?Car memberOf cb#car 
          [
            doorCount hasValue ?DoorCount,
            carSize hasValue ?CarSize,
            miliageLimited hasValue ?MiliageLimited,
            hasChildSeat hasValue ?HasChildSeat,
            hasAirConditioning hasValue ?HasAirConditioning   
          ] and
          ?CarRentalBookingTicket memberOf cb#carRentalBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
            carRentalBookingInfo hasValue ?CarRentalBookingInfo
          ] and 
          ?BookingTicketIdentificator memberOf xsd#string and                            
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            bookingPreferences hasValue ?CarRentalBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?Emailaddress
          ]and        
          ?Emailaddress memberOf xsd#string and   
          ?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences
          [                    
            pickupLocation hasValue ?PickupLocation,
            returnLocation hasValue ?ReturnLocation,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            returnDateAndTime hasValue ?ReturnDateAndTime,    
            doorCount hasValue ?DoorCount,
            carSize hasValue ?CarSize,
            miliageLimited hasValue ?MiliageLimited,
            hasChildSeat hasValue ?HasChildSeat,
            hasAirConditioning hasValue ?HasAirConditioning   
          ] and             
          ?DoorCount memberOf xsd#integer and   
          ?CarSize memberOf xsd#integer and
          ?MiliageLimited memberOf xsd#boolean and
          ?HasChildSeat memberOf xsd#boolean and 
          ?HasAirConditioning memberOf xsd#boolean  
        ) and           
        ?X memberOf cb#carRentalBooking[         
          bookingIdentifier hasValue ?BookingIdentifier,
          carRentalBookingInfo hasValue ?CarRentalBookingInfo,
          buyer hasValue ?Buyer,          
          bookingTicket hasValue ?CarRentalBookingTicket           
        ]. 

    effect
      nonFunctionalProperties
        dc#description hasValue "The booking ticket is delivered to the buyer via email"
      endNonFunctionalProperties
      definedBy
        exists {?CarRentalBooking ,?BookingIdentifier, ?CarRentalBookingTicket, ?BookingTicketIdentificator, 
             ?CarRentalBookingInfo, ?PickupLocation ,?ReturnLocation ,?PickupDateAndTime, ?ReturnDateAndTime , 
             ?Car, ?Buyer, ?BuyerContactInformation, ?DoorCount, ?CarSize, ?MiliageLimited, ?HasChildSeat, 
             ?HasAirConditioning}
        (
          ?CarRentalBooking memberOf bo#carRentalBooking
          [
            bookingIdentifier hasValue ?BookingIdentifier,
            carRentalBookingInfo hasValue ?CarRentalBookingInfo,
            buyer hasValue ?Buyer,
            bookingTicket hasValue ?CarRentalBookingTicket           
          ] and
          ?BookingIdentifier memberOf xsd#string and  
          ?CarRentalBookingInfo memberOf cb#carRentalBookingInfo [          
            pickupLocation hasValue ?PickupLocation,
            returnLocation hasValue ?ReturnLocation,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            returnDateAndTime hasValue ?ReturnDateAndTime,            
            car hasValue ?Car 
          ] and 
          ?PickupLocation memberOf loc#location and 
          ?ReturnLocation memberOf loc#location and 
          ?PickupDateAndTime memberOf dt#dateAndTime and  
          ?ReturnDateAndTime memberOf dt#dateAndTime and                    
          ?Car memberOf cb#car [
            doorCount hasValue ?DoorCount,
            carSize hasValue ?CarSize,
            miliageLimited hasValue ?MiliageLimited,
            hasChildSeat hasValue ?HasChildSeat,
            hasAirConditioning hasValue ?HasAirConditioning   
          ] and
          ?CarRentalBookingTicket memberOf cb#carRentalBookingTicket
          [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
            carRentalBookingInfo hasValue ?CarRentalBookingInfo
          ] and 
          ?BookingTicketIdentificator memberOf xsd#string and                                        
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            bookingPreferences hasValue ?CarRentalBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?Emailaddress
          ]and        
          ?Emailaddress memberOf xsd#string and   
          ?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences
          [                    
            pickupLocation hasValue ?PickupLocation,
            returnLocation hasValue ?ReturnLocation,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            returnDateAndTime hasValue ?ReturnDateAndTime,    
            doorCount hasValue ?DoorCount,
            carSize hasValue CarSize,
            miliageLimited hasValue ?MiliageLimited,
            hasChildSeat hasValue ?HasChildSeat,
            hasAirConditioning hasValue ?HasAirConditioning   
          ] and             
          ?DoorCount memberOf xsd#integer and   
          ?CarSize memberOf xsd#integer and
          ?MiliageLimited memberOf xsd#boolean and
          ?HasChildSeat memberOf xsd#boolean and 
          ?HasAirConditioning memberOf xsd#boolean
        ) and
        ?X memberOf bo#onlineDelivery[
          deliveryItem hasValue {?CarRentalBookingTicket}, 
          receiver hasValue ?Buyer, 
          onlineDeliveryMethod hasValue "email"
        ].
            
  interface carBuyerWSInterface
    nonFunctionalProperties
      dc#description hasValue "describes the Interface of Web Service (not specified yet)"
    endNonFunctionalProperties         

 

Listing 16. Shuttle Booking Web Service.
namespace {_"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/shuttleBuyerWS#",
  dc _"http://purl.org/dc/elements/1.1#",
  dt _"http:://www.wsmo.org/ontologies/dateTime#",
  cb _"http:://www.wsmo.org/ontologies/shuttleBooking#",
  bo _"http:://www.wsmo.org/ontologies/booking#",
  loc _"http:://www.wsmo.org/ontologies/location#"
}

webService _"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/shuttleBuyerWS.wsml"
  
  nonFunctionalProperties
    dc#title hasValue "Online Shuttle Booking Web Service"
    dc#creator hasValue "ATOS ORIGIN S.A."
    dc#subject hasValue {"Taxi shuttle", "Shuttle booking", "Taxi"}
    dc#description hasValue "Web service for booking online a shuttle"
    dc#publisher hasValue "ATOS ORIGIN S.A."
    dc#contributor hasValue {"Alejandro López","Ozelin López", "Clara Pezuela"}
    dc#date hasValue "2005-02-11"
    dc#type hasValue _"http://www.wsmo.org/2004/d2#webservice"
    dc#format hasValue "text/html"
    dc#identifier hasValue _"http://www.wsmo.org/ontologies/shuttleBuyerWS"
    dc#source hasValue _"http://keg.cs.tsinghua.edu.cn/ontology/travel"
    dc#language hasValue "en-US"
    dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
      _"http:://www.wsmo.org/ontologies/booking",
      _"http:://www.wsmo.org/ontologies/shuttleBooking",
      _"http:://www.wsmo.org/ontologies/dateTime",
      _"http:://www.wsmo.org/ontologies/location"}
    dc#coverage hasValue "ID:7029392 Name:World"
    dc#rights hasValue _"http://www.deri.org/privacy.html"
    version hasValue "$Revision: 1.9 $"
  endNonFunctionalProperties
    
  importsOntology {_"http:://www.wsmo.org/ontologies/shuttleBooking",
    _"http:://www.wsmo.org/ontologies/flightBooking",
    _"http:://www.wsmo.org/ontologies/booking",
    _"http:://www.wsmo.org/ontologies/location",
    _"http:://www.wsmo.org/ontologies/dateTime"
  }
  
  capability shuttleBuyerWSCapability
  
    precondition
      nonFunctionalProperties
        dc#description hasValue "Required input is# 
          [1] buyer information with the
          [2] shuttle preferences"
      endNonFunctionalProperties
      definedBy
        ?Buyer memberOf bo#buyer[
          contactInformation hasValue ?BuyerContactInformation,
          bookingPreferences hasValue ?ShuttleBookingPreferences
        ] and 
        ?BuyerContactInformation memberOf bo#contactInformation [
          emailaddress hasValue ?Emailaddress
        ]and 
        ?Emailaddress memberOf xsd#string and
        ?ShuttleBookingPreferences memberOf sb#shuttleBookingPreferences[
          pickupAirport hasValue ?PickupLocation,
          pickupDateAndTime hasValue ?PickupDateAndTime,
          destination hasValue ?Destination
        ]. 

    postcondition
      nonFunctionalProperties
        dc#description hasValue "the output of the service is a booking."
      endNonFunctionalProperties
      definedBy 
        exists {?BookingIdentifier, ?ShuttleBookingTicket, ?BookingTicketIdentificator, 
          ?ShuttleBookingInfo, ?PickupAirport ,?PickupDateAndTime, ?Destination,
          ?Buyer, ?BuyerContactInformation, ?ShuttleBookingTicket}
          (
            ?BookingIdentifier memberOf xsd#string and 
            ?ShuttleBookingInfo memberOf sb#shuttleBookingInfo [
              pickupAirport hasValue ?PickupAirport,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              destination hasValue ?Destination,
              shuttle hasValue ?Shuttle 
            ] and 
            ?PickupAirport memberOf fb#airport and
            ?PickupDateAndTime memberOf dt#dateAndTime and
            ?Destination memberOf loc#location and
            ?Shuttle memberOf sb#shuttle and
            ?ShuttleBookingTicket memberOf sb#shuttleBookingTicket [
              bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
              shuttleBookingInfo hasValue ?ShuttleBookingInfo
            ] and
            ?BookingTicketIdentificator memberOf xsd#string and
            ?Buyer memberOf bo#buyer[
              contactInformation hasValue ?BuyerContactInformation,
              bookingPreferences hasValue ?ShuttleBookingPreferences
            ] and 
            ?BuyerContactInformation memberOf bo#contactInformation [
              emailaddress hasValue ?Emailaddress
            ]and
            ?Emailaddress memberOf xsd#string and
            ?ShuttleBookingPreferences memberOf sb#shuttleBookingPreferences[
              pickupAirport hasValue ?PickupLocation,
              pickupDateAndTime hasValue ?PickupDateAndTime,
              destination hasValue ?Destination
            ] 
          ) and         
          ?X memberOf sb#shuttleBooking[
            bookingIdentifier hasValue ?BookingIdentifier,
            shuttleBookingInfo hasValue ?ShuttleBookingInfo,
            buyer hasValue ?Buyer,
            bookingTicket hasValue ?ShuttleBookingTicket
          ]. 
  
    effect
      nonFunctionalProperties
        dc#description hasValue "The booking ticket is delivered to the buyer via email"
      endNonFunctionalProperties
      definedBy
        exists {?ShuttleBooking ,?BookingIdentifier, ?ShuttleBookingTicket, 
          ?BookingTicketIdentificator, ?ShuttleBookingInfo, ?PickupAirport ,
          ?PickupDateAndTime, ?Destination, ?Buyer, ?BuyerContactInformation, 
          ?ShuttleBookingTicket}
        (
          ?ShuttleBooking memberOf sb#shuttleBooking [
            bookingIdentifier hasValue ?BookingIdentifier,
            shuttleBookingInfo hasValue ?ShuttleBookingInfo,
            buyer hasValue ?Buyer,
            bookingTicket hasValue ?ShuttleBookingTicket 
          ] and
          ?BookingIdentifier memberOf xsd#string and 
          ?ShuttleBookingInfo memberOf sb#shuttleBookingInfo [
            pickupAirport hasValue ?PickupAirport,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            destination hasValue ?Destination,
            shuttle hasValue ?Shuttle 
          ] and 
          ?PickupAirport memberOf fb#airport and
          ?PickupDateAndTime memberOf dt#dateAndTime and
          ?Destination memberOf loc#location and
          ?Shuttle memberOf sb#shuttle and
          ?ShuttleBookingTicket memberOf sb#shuttleBookingTicket [
            bookingTicketIdentificator hasValue ?BookingTicketIdentificator,
            shuttleBookingInfo hasValue ?ShuttleBookingInfo
          ] and 
          ?BookingTicketIdentificator memberOf xsd#string and 
          ?Buyer memberOf bo#buyer[
            contactInformation hasValue ?BuyerContactInformation,
            bookingPreferences hasValue ?ShuttleBookingPreferences
          ] and 
          ?BuyerContactInformation memberOf bo#contactInformation [
            emailaddress hasValue ?Emailaddress
          ]and
          ?Emailaddress memberOf xsd#string and
          ?ShuttleBookingPreferences memberOf sb#shuttleBookingPreferences[
            pickupAirport hasValue ?PickupLocation,
            pickupDateAndTime hasValue ?PickupDateAndTime,
            destination hasValue ?Destination
          ]
        ) and
        ?X memberOf bo#onlineDelivery[
          deliveryItem hasValue {?ShuttleBookingTicket},
          receiver hasValue ?Buyer, 
          onlineDeliveryMethod hasValue "email"
        ].
          
  interface shuttleBuyerWSInterface
    nonFunctionalProperties
      dc#description hasValue "describes the Interface of Web Service (not specified yet)"
    endNonFunctionalProperties         

    

3.4 Mediators

Since WSMO mediators are still underspecified, they will be considered in future versions of this document.

4. Conclusions and Future Work

We hereby provided an overview of the Stream Flows! System use case using WSMO as the base description language. Future work on this use case will include the following:

References

[De Bruijn et al., 2005] J. de Bruijn (ed.): The Web Service Modeling Language WSML , version 0.2 available at http://www.wsmo.org/TR/d16/d16.1/v0.2/

[Feier et al., 2005] C. Feier (ed.): WSMO Primer, version 0.2 available at http://www.wsmo.org/TR/d3/d3.1/v0.2/

[Roman et al., 2005] D. Roman, U. Keller, H. Lausen (eds.): Web Service Modeling Ontology - Standard (WSMO - Standard), version 1.2 available at http://www.wsmo.org/TR/d2/v1.2/

[López, O., 2005] O. López, . (ed.): Requirement Profile 1 and Knowledge Objects, Infrawebs Working Draft version 0.2 available at [under construction]

Acknowledgement

The work is funded by the European Commission under the projects Infrawebs, DIP, Knowledge Web, Ontoweb, SEKT, SWWS, Esperonto, and h-TechSight; by Science Foundation Ireland under the DERI-Lion project; and by the Vienna city government under the CoOperate programme.

The editors would like to thank to all the members of the WSMO working group for their advice and input to this document.


$Date: 2005/04/08 15:57:22 $

webmaster