wsmo logo

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

WSMO Working Draft 27 May 2005

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

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.


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
2.5 System Architecture
2.5.1 Catalogue Nature
2.5.2 Catalogue Content
3. WSMO Use Case Modelling
3.1 Ontologies
3.1.1 Template Ontology
3.1.2 Tourism Service Provider Ontology
3.1.3 Flight Domain Ontology
3.1.4 Hotel Domain Ontology
3.1.5 Rent-a-car Domain Ontology
3.1.6 Shuttle Domain Ontology
3.1.7 Booking Ontology
3.1.8 Flight Booking Ontology
3.1.9 Hotel Room Booking Ontology
3.1.10 Car Rental Booking Ontology
3.1.11 Shuttle Booking Ontology
3.2 Goal Templates
3.2.1 Flight Booking Goal Template
3.2.2 Hotel Room Booking Goal Template
3.2.3 Car Rental Booking Goal Template
3.2.4 Shuttle Booking Goal Template
3.2.5 Find Air Trip Information Goal
3.2.6 Find Hotel Stay Goal
3.2.7 Find Car Rental Information Goal
3.2.8 Find Shuttle Information Goal
3.3 Web Services
3.3.1 Flight Booking Web Service
3.3.2 Hotel Room Booking Web Service
3.3.3 Car Rental Web Service
3.3.4 Shuttle Booking Web Service
3.4 Choreography Ontologies
3.4.1 Flight Booking WS Choreography Ontology
3.4.2 Hotel Room Booking WS Choreography Ontology
3.4.3 Car Rental Booking WS Choreography Ontology
3.4.4 Shuttle Booking WS Choreography Ontology
3.5 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. A package 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:

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 FPP 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 purchases services from 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

The Stream Flows! System is comprised of three main entities, namely, customers, service providers and the system itself. The roles and goals of each entity are described in this section.

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.

•  Goal : Publish their services in the SFS catalogue.

•  Role : Provides tourism services as Web services.

2.3.3 STREAM Flows! System (SFS)

The intermediary between the Customer and the Service providers.

•  Goal : Manage the customer´s record of services and manage the catalogue of services and packages contacting customers and service providers for performing its tasks.

•  Role : Interacts with customer and service providers.

2.4 Story Board

 
Figure 1: Story Board Overview

Step 1

The customer logs 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.

The customer management is not important at this stage of the project. However, we will say that a customer profile database is maintained in order to know the previous services contracted to the companies affiliated with SFS and the points that the customer has gathered until this moment. For the sake of clarification, we will define a scenario in which a customer “Perico Palotes”, having 2500 points, wants to go to Madrid from Brussels, rent a car in Madrid Airport (Barajas) to go to Toledo and book a room in a 4-star hotel in Toledo (Toledo is 70 km from Madrid and it's well known for being a melting pot of cultures in the Middle Age where Muslims, Christians and Jews lived in peace). When Perico logs in, he sees its current amount of points and the historical record of his last travel services contracted to companies affiliated.

Step 2

The customer clicks on the “ Voyage Planner ” button. Within the planner, Perico can choose a stored package (flight + hotel + rent-a-car with standard restrictions) or create a new one. Perico is one of these persons who likes to control everything and wants to create his own package. A box will appear and he will drag & drop icons from the left (one for the flight, one for the hotel and one for the rent-a-car). Each slot in the box represents an abstract service (abstract in terms of desired behaviour but not fully specified [Priest, 2004] ). The definition of the constraints may be based in time, distance, accumulated amount of points and whatever other property with an ordinal and quantitative metric. Any of these properties can be graphically defined as connections between the slots (the richness of the graphical interface is subject to a further study of the graphical interface of the tools delivered by the Developer's partners of the project). For his own package he defines the following set of constraints :

Once he has defined the overall constraints for the package, he may want to define specific constraints for each service . The customer will have a form in which he can detail which specific features for each service he wants to obtain and impose constraints on these features . These constraints can be seen (from a WSMO perspective) as part of the postcondition of the goal and can be easily translated into logical expressions. Some of these constraints can be summarised here:

Step 3

Once he has the package with the three slots filled (each slot represents an abstract service with constraints that must be met. The abstract service is defined by a goal template in which part of the logical expressions are identified with variables. The values for these variables will be substituted by the input from the customer), a goal (in terms of WSMO goals) is created using the templates and the values obtained from the customer interaction with the interface . These goals are sent to the Discovery Component which searches into the SFS Catalogue for services that are available for each slot.

Step 4

The selection phase is complicated, because it not only performs selection task but also the compatibility between the services chosen for the slots have to be checked (the services chosen, have to fulfil as a whole the constraints imposed by the customer). The process for the selection is as follows:

Step 5

The service provider of each chosen service will try to confirm the terms of acceptance and conditions, and details of the service. Once both parties have accepted the terms of the contract, a booking request is placed. The customer (using the SFS Portal) invokes the services which fulfil his package 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 (the payment, from the customer perspective is made with points, but from the Service Provider perspective is made by the SFS). This arrangement between SFS and Service Providers is out of the scope of this use case.

2.5 System Architecture

The conceptual architecture shown in Figure 2 represents the network in which all the partners will be engaged. Whereas the user has to connect using some agent on his behalf, the SFS and the rest of the Providers (SFS is also a Service Provider) join the architecture in a peer-to-peer approach.

 
Figure 2: Conceptual Architecture of the Stream Flows! System

2.5.1 Catalogue Nature

The Catalogue is a centralised mirror of all the Registries subscribed to the SFS program. An Entry in the SFS Catalogue should be a subset (it could be a copy) of an entry in a Service Provider Registry. This mechanism will allow the SFS Catalogue to act as a mirror of the Distributed Registries (as shown in Figure 2 ).

Due to the fact that the Service provider is not willing to have many versions of the same service it will publish its service with the desired Domain Ontologies (it is not expected that a Service Provider will have several versions of the same service description even if they publish the same service in different repositories).

The mechanism of publication in SFS will follow a "push" paradigm (from the provider point of view). The SFS Catalogue will have an API that accepts entries in form of a triple (serviceProviderID, serviceID, version) and will store only one Service Description for each Service of the Service Provider.

If some Service is discovered (during a Discovery-Selection phase), each Service will be asked for offers that would be matched against the Service Request. Then if suitable, an offer (which can be seen as an special instantiation / concretization of the Service) will be selected and the Service will be invoked with some inputs from the Requester.

2.5.2 Catalogue Content

The Catalogue will store Web Service Descriptions (as are described in WSMO). Other content will be available for SFS members but these contents have not to be mixed up with Service Descriptions and they can be logically and/or physically stored in different databases. Among these contents, there are templates and package descriptions. Now we describe, briefly, the information we expect to have for each element of the Catalogue:

Logically, the template and the package template are stored in the SFS as instances of these concepts. Each instance will have a file (for a template) or many (for a package) which represent the abstract capability that the requester wants to achieve. The system will build the goal (for a service or for “many” services) using these templates and the inputs from the customer (using natural language or a more rich interface). The details of these concepts are shown in Listing 1

3. WSMO Use Case Modelling

This section exemplifies the specification of this use case within the Web Service Modeling Ontology WSMO. The listings provided use the conceptual model and syntax presented in WSMO [Roman et. al., 2005] and WSML [De Bruijn et. al., 2005]. They have been validated with the WSML Online Validation Service.

3.1 Ontologies

In this section we describe briefly the SFS ontologies that model the domain presented in our scenario, and which will be used by the Semantic Web services developed for it and described in section 3.3 . These ontologies have been implemented in WSML. A graphical outline of the main relationships between these ontologies is presented in Figure 2. According to the classifications of [Heijst et. al., 1997] and of [Mizoguchi et. al., 1995] we can distinguish the following types of ontologies:

General ontologies , which represent common sense knowledge reusable across domains. In this group we can include our ontologies about users and notifica t ions, which include basic concepts related to persons and their contact information, and our ontology about estimation parameters, which is based on statistical concepts.

Domain ontologies , which represent reusable knowledge in a specific domain. In this group we can include our ontologies about tourism services, such as flight, hotel room, car rental and shuttle

Application ontologies , which represent the application-dependent knowledge needed. In this group we can include our ontologies.

 
Figure 2: SFS Ontologies

The ontologies specified 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.

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. The inclusion of links to large set of instances will be considered in future versions of WSMO.

3.1.1 Template Ontology

This ontology describes the template and package concepts.

Listing 1. Template Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/template#",
	dc _"http://purl.org/dc/elements/1.1#",
	xsd _"http://www.w3.org/2001/XMLSchema#"}

ontology _"http://www.wsmo.org/ontologies/sfs/template "
	nonFunctionalProperties
		dc#title hasValue "Template ontology"
		dc#creator hasValue	"ATOS ORIGIN S.A."
		dc#description hasValue "Ontology to describe the template and package concepts"
		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/ template "
		dc#language	hasValue "en-US"
		dc#coverage	hasValue "ID:7029392 Name:World"				
	endNonFunctionalProperties

concept packageTemplate
	nonFunctionalProperties
		dc#description hasValue "A template for a package"
		dc#slots hasValue "The slots which represents the templates that composes the package. 
			The services chosen for fulfil each slot has to"
	endNonFunctionalProperties		
	slots impliesType (1 *) template
	constraints impliesType packageConstraints

concept template
	nonFunctionalProperties
		dc#description hasValue "A template description for a requested Service "
		dc#templateIdentifier hasValue "An unique ID for this template"
		dc#templateCategory hasValue "The category of the template"
		dc#templateKeywords hasValue "The template keywords used for building the form"
		dc#fileTemplate hasValue "The URI which contains the WSML code for building the goal"
	endNonFunctionalProperties	
	templateName ofType (1) xsd#string
	templateCategory impliesType (1) serviceCategory
	templateKeywords ofType xsd#string
	fileTemplate impliesType (1) fileTemplate
	
concept serviceCategory
	nonFunctionalProperties
		dc#description hasValue "A pair {id, value} which represents some node in a taxonomy. A 
			serviceCategory may have a father and may have multiple sons. The keywords related can help 
			to identify the Service Category"
	endNonFunctionalProperties
	idCategory ofType (1) xsd#string
	valueServiceCategory ofType (1) xsd#string
	keywordsRelated ofType xsd#string
	sonOfCategory impliesType (0 1) serviceCategory
	fatherOfCategories impliesType serviceCategory
		


concept packageConstraints
	nonFunctionalProperties
		dc#description hasValue "A logical expression which is built relating the concepts of the package 
			(e.g. The parkingLocation of a Rent-a-Car Service has to be near than 20 km from the airport 
			landing location.)"
	endNonFunctionalProperties
	
concept fileTemplate
	nonFunctionalProperties
		dc#description hasValue "An URI representing the location of a file "
	endNonFunctionalProperties

	/* Definition of the Relations of the Ontology */

relation hasAncestor
	nonFunctionalProperties
		dc:description hasValue "(X,Y) is a tuple of the binary relation iff X is ancestor of Y"
	endNonFunctionalProperties
	ancestor impliesType serviceCategory
	descendant impliesType serviceCategory

	/* Description of the axioms of the Ontology */
	
axiom fatherIsAnAncestor
	nonFunctionalProperties
		dc:description hasValue "A Father is an ancestor for a ServiceCategory"
	endNonFunctionalProperties
	definedBy
		hasAncestor(?S1,?S2) 
		impliedBy 
			?S1 memberOf serviceCategory and ?S2 memberOf serviceCategory 
			and ?S2[sonOfCategory ?S1].

axiom transitivityOfAncestor
	nonFunctionalProperties
		dc:description hasValue "The Ancestor relation is transitive"
	endNonFunctionalProperties
	definedBy
		hasAncestor(?S1, ?S3) 
		impliedBy 		
			hasAncestor(?S1, ?S2) and hasAncestor(?S2, ?S3) and
			?S1 memberOf serviceCategory and 
			?S2 memberOf serviceCategory and 
			?S3 memberOf serviceCategory.

axiom serviceCategoryLackOfCycles
	nonFunctionalProperties
		dc:description hasValue "One serviceCategory can not be ancestor of itself"
	endNonFunctionalProperties
	definedBy 
		false 
		impliedBy 
			hasAncestor(?S1, ?S2) and ?S1 = ?S2 and 
			?S1 memberOf serviceCategory and 
			?S2 memberOf serviceCategory.

axiom serviceCategoryLukeImYourFather
	nonFunctionalProperties
		dc:description hasValue "If one serviceCategory S1 has a son S2, then the father of S2 is S1."
	endNonFunctionalProperties
	definedBy
		constraint
			?S2[sonOfCategory hasValue ?S1] memberOf serviceCategory 
			impliedBy 
			?S1[fatherOfTaxons hasValue ?S2] memberOf serviceCategory.

axiom serviceCategoryHolyGhost
	nonFunctionalProperties
		dc:description hasValue "A serviceCategory can not be son of itself"
	endNonFunctionalProperties
	definedBy
		constraint
			false 
			impliedBy 
			?S1 memberOf serviceCategory and 
			?S2 memberOf serviceCategory and 
			?S1 = ?S2 and 
			?S2[sonOfCategory hasValue ?S1].

        

3.1.2 Tourism Service Provider Ontology

This ontology describes the superconcept tourism service provider , who will be the seller who offers an specific tourism service.

Listing 2. Tourism Service Provider Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
	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/ tourismServiceProvider "
	nonFunctionalProperties
		dc#title hasValue "tourismServiceProvider ontology"
		dc#creator hasValue	"ATOS ORIGIN S.A."
		dc#subject hasValue {"tourismServiceProvider"}
		dc#description hasValue “Tourism service provider 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/tourismServiceProvider"
		dc#language	hasValue "en-US"
		dc#relation	hasValue {_"http://www.wsmo.org/ontologies/location"}
		dc#coverage	hasValue "ID:7029392 Name:World"				
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/location"}    		
	
	concept tourismServiceProvider
		nonFunctionalProperties
			dc#description hasValue "The tourismServiceProvider information"
			dc#companyID hasValue "The tourismServiceProvider code"
			dc#contactInformation hasValue "The tourismServiceProvider contactInformation"		
			dc#website hasValue "The tourismServiceProvider website"
		endNonFunctionalProperties		
		companyID ofType xsd#string	
		contactInformation impliesType contactInformation
		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#name hasValue "The tourismServiceProvider name"
			    dc#address hasValue "The tourismServiceProvider adress"
			    dc#phone hasValue "The tourismServiceProvider phone"
			    dc#faxnumber hasValue "The tourismServiceProvider faxnumber"			
			    dc#emailaddress hasValue "The tourismServiceProvider email"			
      	    	dc#relation hasValues {<>}
    		endNonFunctionalProperties
    		name ofType xsd#string
    		emailaddress ofType xsd#string
    		faxnumber ofType xsd#string
    		telephonenumber ofType xsd#string
    		physicalAddress ofType loc#address

        

3.1.3 Flight domain ontology

This ontology describes the flight domain. The flight service provider will offer flights, that have to fulfill a set of axioms, and it will have stored the flight reservations already made, in order to be able to make future reservations.

Listing 3. Flight domain ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/flight#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	tsp _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
	fb _"http://www.wsmo.org/ontologies/sfs/flightBooking#",
	loc _"http://www.wsmo.org/ontologies/location#",
	xsd _"http://www.w3.org/2001/XMLSchema#"}

ontology _"http://www.wsmo.org/ontologies/sfs/flight"
	nonFunctionalProperties
		dc#title hasValue "Flight Ontology"
		dc#creator hasValue	"ATOS ORIGIN S.A."
		dc#subject hasValue {"Flight", "Airport", "Aircraft"}
		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/sfs/flight"
		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/sfs/tourismServiceProvider",
		_"http://www.wsmo.org/ontologies/sfs/flightBooking#",
		_"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"		
	endNonFunctionalProperties
		

	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/flightBooking#",
		_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider"}

	usesMediator
		_"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml"

	concept airport subConceptOf geo#geographicLocation
		nonFunctionalProperties
			dc#description hasValue "An airport with his code"
			dc#code hasValue "The code of the airport"
		endNonFunctionalProperties		
		code ofType	xsd#string		
	
	concept flightServiceProvider subConceptOf tsp#tourismServiceProvider
		nonFunctionalProperties
			dc#description hasValue "An air tourismServiceProvider"
			dc#flightsProgrammed hasValue "The flights programmed by the tourismServiceProvider"
			dc#flightReservations hasValue "The reservations made that the flight tourismServiceProvider      
					store in order to have all the reserves information and to allow available bookings"
		endNonFunctionalProperties
		flightReservations impliesType fb#flightBooking		
		flights impliesType flight
		originCities impliesType loc#city
		allowKidsAloneService ofType xsd#boolean
				  		
	concept flight
		nonFunctionalProperties
			dc#description hasValue "A flight"
			dc#flightNumber hasValue "The identificator of the flight"
			dc#aircraft hasValue "The assigned aircraft"
			dc#scheduledDepartureDateAndTime hasValue "Scheduled departure date of the flight"
			dc#scheduledArrivalDateAndTime hasValue "Scheduled arrival date of the flight"
			dc#currentDepartureDateAndTime hasValue "Current departure date of the flight"
			dc#currentArrivalDateAndTime hasValue "Current arrival date of the flight"
			dc#originAirport hasValue "The origin airport"
			dc#destinationAirport hasValue "The destination airport"
			dc#duration hasValue "The duration of the flight"
			dc#distance hasValue "The distance of the flight"	
		endNonFunctionalProperties
		flightNumber ofType xsd#integer
		aircraft impliesType aircraft		
		scheduledDepartureDateAndTime ofType dt#dateAndTime
		scheduledArrivalDateAndTime ofType dt#dateAndTime
		currentDepartureDateAndTime ofType dt#dateAndTime
		currentArrivalDateAndTime ofType dt#dateAndTime
		originAirport impliesType airport
		destinationAirport impliesType airport
		duration impliesType dt#interval
		distance impliesType loc#distance		
		seats impliesType seat
		
	concept seat 
		nonFunctionalProperties
			dc#description hasValue "A seat of a flight"
			dc#seatNumber hasValue "Indicates the seat number"
			dc#seatLetter hasValue "Indicates the seat letter"
			dc#seatClass hasValue "Indicates the seat class"
			dc#available hasValue "Indicates if the seat is available or not"
		endNonFunctionalProperties
		seatNumber ofType xsd#string
		seatLetter ofType xsd#string
		seatClass ofType xsd#string
		available ofType xsd#boolean
		
	concept aircraft
		nonFunctionalProperties
			dc#description hasValue "An aircraft"
			dc#idAircraft hasValue "A unique number of aircraft"
			dc#numberSeatEconomy hasValue "Indicates the number of economy seats"
			dc#numberSeatBusiness hasValue "Indicates the number of bussiness seats"
			dc#numberSeatFirstClass hasValue "Indicates the number of first class seats"
		endNonFunctionalProperties
		idAircraft ofType xsd#string		
		numberSeatEconomy ofType xsd#integer
		numberSeatBusiness ofType xsd#integer
		numberSeatFirstClass 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
				?F memberOf flight[
					scheduledDepartureDateAndTime hasValue ?D,
					scheduledArrivalDateAndTime hasValue ?A
				]
				and 
					?A =< ?D.
				
	axiom DifferentOriginAndDestination
		nonFunctionalProperties
			dc#description hasValue "Integrity Constraint origin airport has to be different"
		endNonFunctionalProperties
		definedBy
				?F memberOf flight[
					originAirport hasValue ?O,
					destinationAirport hasValue ?D
				]
				and 
					?O != ?D.		

 
	function fulfillFlightPreferences 
		nonFunctionalProperties
			dc#description hasValue "(airTripInfo, flightBookingPreferences, result) is a triple
				of the ternary relation corresponding to this function: if airTripInfo fulfills the
				the customer flightBookingPreferences the result is true."
		endNonFunctionalProperties
		airTripInfo impliesType airTripInfo
		flightBookingPreferences impliesType flightBookingPreferences
		range ofType xsd#boolean

        

3.1.4 Hotel domain ontology

This ontology describes the hotel domain. The hotel service provider will offer different hotels and rooms, and it will have stored the hotel rooms reservations already made, in order to be able to make future bookings. The ontology also includes the hotel room's taxonomy.

Listing 4. Hotel domain ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/hotel#",
	dc  _"http://purl.org/dc/elements/1.1#",
	tsp _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
	hb  _"http://www.wsmo.org/ontologies/sfs/hotelRoomBooking#",
	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/hotel"

	nonFunctionalProperties
		dc#title hasValue "Hotel Room Ontology"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Hotel", "Hotel chain", "Room"}
		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/sfs/hotel"
		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/sfs/tourismServiceProvider",
		_"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"		
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider"}

	concept hotelServiceProvider subConceptOf tsp#tourismServiceProvider
		nonFunctionalProperties
			dc#description hasValue "A hotel tourismServiceProvider"
			dc#hotels hasValue "The hotels of the tourismServiceProvider"
			dc#hotelRoomReservations hasValue "The reservations made that the hotel 
				tourismServiceProvider store in order to have all the reserves information and to 
				allow available bookings"			
		endNonFunctionalProperties
		hotelRoomReservations impliesType hb#hotelRoomBooking
		hotels impliesType hotel
		availableCities impliesType loc#city
		allowPets ofType xsd#boolean
		allowGroupsReservation ofType xsd#boolean		
			
	concept hotel
		nonFunctionalProperties
			dc#description hasValue "A hotel"
			dc#name hasValue "The hotel name"
			dc#hotelID hasValue "The hotel identificator"
			dc#stars hasValue "The hotel stars"
			dc#city hasValue "The city where the hotel is located"
			dc#address hasValue "The hotel address"
			dc#builtDate hasValue "The date when the hotel was built"
			dc#lastUpdateDate hasValue "The date when the hotel had a reform"
			dc#hasRestaurant hasValue "Indicates if the hotel has Restaurant"
			dc#email hasValue "The hotel email"
			dc#phone hasValue "The hotel phone"
			dc#room hasValue "The rooms of the hotel"
		endNonFunctionalProperties
		name ofType xsd#string
		hotelID ofType xsd#string
		stars ofType xsd#integer
		city ofType loc#city
		address ofType loc#address
		builtDate ofType dt#Date
		lastUpdateDate ofType dt#Date
		hasRestaurant ofType xsd#boolean		
		email ofType xsd#string
		phone ofType xsd#integer
		room impliesType room
		
	concept room
		nonFunctionalProperties
			dc#description hasValue "A room of a hotel"
			dc#roomNumber hasValue "The number of the room"
			dc#area hasValue "The rooms area measured in m2"
			dc#phone hasValue "The room phone number"
			dc#hasAirConditioning hasValue "Indicates if the room has air conditioning"
			dc#fare hasValue "Indicates the fare of the room"
			dc#addBedFare hasValue "Indicates the fare of an adding bed in the room"
		endNonFunctionalProperties
		roomNumber ofType xsd#integer		
		area ofType xsd#integer
		phone ofType xsd#integer
		hasAirConditioning ofType xsd#boolean
		numberOfBeds ofType xsd#integer		
		smoking ofType xsd#boolean
		fare ofType xsd#float
		addBedFare ofType xsd#float		
		
	concept suite subConceptOf room
		nonFunctionalProperties
			dc#description hasValue "A suite of a hotel"
		endNonFunctionalProperties
		

	concept singleRoom subConceptOf room
		nonFunctionalProperties
			dc#description hasValue "A single room of a hotel"
		endNonFunctionalProperties
	
	concept doubleRoom subConceptOf room
		nonFunctionalProperties
			dc#description hasValue "A double room of a hotel"
		endNonFunctionalProperties

	concept meetingRoom subConceptOf room
		nonFunctionalProperties
			dc#description hasValue "A meeting room of a hotel"
		endNonFunctionalProperties
		seatingCapacity ofType xsd#integer	

	function fulfillHotelPreferences 
		nonFunctionalProperties
			dc#description hasValue "(hotelStay, hotelRoomBookingPreferences, result) is a triple
				of the ternary relation corresponding to this function: if hotelStay fulfills the
				the customer hotelBookingPreferences the result is true."
		endNonFunctionalProperties
		hotelStay impliesType hotelStay
		hotelBookingPreferences impliesType hotelRoomBookingPreferences
		range ofType xsd#boolean

        

3.1.5 Rent-a-car domain ontology

This ontology describes the car rental ontology. The car rental service provider will offer car rental in different locations, and it will have stored the car rentals reservations already made, in order to be able to make future reservations.

Listing 5. Car rental domain ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/carRental#",
	dc  _"http://purl.org/dc/elements/1.1#",
	tsp _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
	crb _"http://www.wsmo.org/ontologies/sfs/carRentalBooking#",
	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/carRental"
	
	nonFunctionalProperties
		dc#title hasValue "Car rental ontology"
		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/carRental"					
       dc#language	hasValue "en-US"
		dc#relation	hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
		_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider",
		_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/carRentalBooking"}		
		dc#coverage	hasValue "ID:7029392 Name:World"		
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider",
		_"http://www.wsmo.org/ontologies/sfs/carRentalBooking"} 
			
	concept carRentalServiceProvider subConceptOf tsp#tourismServiceProvider
		nonFunctionalProperties
			dc#description hasValue "The car rental tourismServiceProvider information"
			dc#cars hasValue "The cars of the car rental tourismServiceProvider"
			dc#carReservations hasValue "The reservations made that the car rental 
					tourismServiceProvider store	in order to have all the reserves information and to allow 
					available bookings"
			dc#availableCities hasValue "The cities where there is this a rent-a-car office"
			dc#parkingLocations hasValue "The parking locations where pickup the car"
			dc#allowSendToHome hasValue "Indicates if it is possible that the car is sent to your home"
			dc#allowOutlineReturn hasValue "Indicates if it is possible to return the car "
			dc#officeOpeningTime hasValue "Indicates the opening time of the office"
			dc#officeClosingTime hasValue "Indicates the closing time of the office"
		endNonFunctionalProperties
		carReservations impliesType crb#carRentalBooking
		availableCities impliesType loc#city
		parkingLocations impliesType loc#city
		officeOpeningTime impliesType date#time
		officeClosingTime impliesType date#time
		allowSendToHome ofType xsd#boolean
		allowOutlineReturn ofType xsd#boolean
	    cars ofType car

	concept car
		nonFunctionalProperties
			dc#description hasValue "Describes a car"
			dc#carIdentificator hasValue "A car"
			dc#rentalRate hasValue "Indicates the one day rate of the car"
			dc#doorCount hasValue "The number of doors of the car"
			dc#carSize hasValue "Indicates tue number of persons that can be in the car"
			dc#miliageLimited hasValue "Indicates if the car has miliageLimited"
			dc#hasChildSeat hasValue "Indicates if the car has child seat"
			dc#hasAirConditioning hasValue "Indicates if the car has air conditioning"
		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

	function fulfillCarRentalPreferences 
		nonFunctionalProperties
			dc#description hasValue "(carRentalInfo, carRentalBookingPreferences, result) is a triple
				of the ternary relation corresponding to this function: if carRentalInfo fulfills the
				the customer carRentalBookingPreferences the result is true."
		endNonFunctionalProperties
		carRentalInfo impliesType carRentalBookingInfo
		carRentalBookingPreferences impliesType carRentalBookingPreferences
		range ofType xsd#boolean

        

3.1.6 Shuttle domain ontology

This ontology describes the shuttle ontology. The shuttle service provider will offer shuttles in different airports, and it will have stored the shuttle reservations already made, in order to be able to make future reservations.

Listing 6. Shuttle domain ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/shuttle#",
	dc _"http://purl.org/dc/elements/1.1#",
	tsp _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
	sb _"http://www.wsmo.org/ontologies/sfs/shuttleBooking#",
	fl __"http://www.wsmo.org/ontologies/sfs/flight#",
	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/shuttle"

	nonFunctionalProperties
		dc#title hasValue "Shuttle ontology"
		dc#creator hasValue	"ATOS ORIGIN S.A."
		dc#subject hasValue {"Shuttle tourismServiceProvider", "shuttle"}
		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/shuttle"
		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/sfs/tourismServiceProvider",
		_"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"		
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider"}
	
	concept shuttleServiceProvider subConceptOf tsp#tourismServiceProvider
		nonFunctionalProperties
			dc#description hasValue "The shuttle tourismServiceProvider information"
			dc#shuttleReservations hasValue "The reservations made that the shuttle 
				tourismServiceProvider store	in order to have all the reserves information and to allow 
				available bookings"		
			dc#officeOpeningTime hasValue "Indicates the opening time of the office"
			dc#officeClosingTime hasValue "Indicates the closing time of the office"
			dc#availableOriginAirports "Indicates the list of airports where the shuttles can be taken"
			dc#allowKidsAloneService hasValue "Indicates if a kid is allowed to travel alone"
			dc#hasVans hasValue "Indicates if the service provider offers vans as shuttles"
			dc#shuttles hasValue "The shuttles that this tourismServiceProvider offers"
		endNonFunctionalProperties
		shuttleReservations impliesType sb#shuttleBooking
		officeOpeningTime impliesType date#time
		officeClosingTime impliesType date#time
		availableOriginAirports impliesType fl#airport
		allowKidsAloneService ofType xsd#boolean 
		hasVans ofType xsd#boolean
		shuttles impliesType shuttle	    

	concept shuttle
		nonFunctionalProperties
			dc#description hasValue "A shuttle"
			dc#shuttleIdentificator hasValue "An unique code for a shuttle"
			dc#rentalRate hasValue "The shuttle rate"
			dc#doorCount hasValue "Indicates the number of doors of the shuttle"
			dc#shuttleSize hasValue "Indicates the number of places of the shuttle"
			dc#miliageLimited hasValue "Indicates if the miliage is limited"
			dc#hasChildSeat hasValue "Indicates if the miliage is limited"
			dc#hasAirConditioning hasValue "Indicates if the shuttle has air conditioning"
		endNonFunctionalProperties
		shuttleIdentificator ofType xsd#string
		rentalRate ofType xsd#float
		doorCount ofType xsd#integer
		shuttleSize ofType xsd#integer
		miliageLimited ofType xsd#boolean
		hasChildSeat ofType xsd#boolean
		hasAirConditioning ofType xsd#boolean

	function fulfillShuttlePreferences 
		nonFunctionalProperties
			dc#description hasValue "(shuttleBookingInfo, shuttleBookingPreferences, result) is a triple
				of the ternary relation corresponding to this function: if shuttleBookingInfo fulfills the
				the customer shuttleBookingPreferences the result is true."
		endNonFunctionalProperties
		shuttleBookingInfo impliesType shuttleBookingInfo
		shuttleBookingPreferences impliesType shuttleBookingPreferences
		range ofType xsd#boolean .

        

3.1.7 Booking Ontology

The booking ontology describes the domain of booking within a B2C scenario.

The main constructs of the Purchase Ontology are:

Listing 7. Booking Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/booking#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	loc _"http://www.wsmo.org/ontologies/location#",
	tsp _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider#",
	cu _"http://www.wsmo.org/ontologies/sfs/customer#",
	xsd _"http://www.w3.org/2001/XMLSchema#"
}
	
ontology _"http://www.wsmo.org/ontologies/sfs/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","Jose 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/sfs/booking"
		dc#language hasValue "en-US"
		dc#relation hasValue { _"http://www.wsmo.org/ontologies/location",
		 _"http://www.wsmo.org/ontologies/dateTime",
		 _"http://www.wsmo.org/ontologies/sfs/customer",
		 _"http://www.wsmo.org/ontologies/sfs/tourismServiceProvider"}
		dc#coverage hasValue "ID:7029392 Name:World"
		dc#rights hasValue  _"http://deri.at/privacy.html"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

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

	concept booking
		nonFunctionalProperties
			dc#description hasValue "A general booking"
		endNonFunctionalProperties
		bookingIdentifier ofType xsd#string
		buyer impliesType buyer
		seller impliesType tsp#tourismServiceProvider
		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

	concept buyer subConceptOf cu#customer
		nonFunctionalProperties
			dc#description hasValue "the partner that makes a booking"
			dc#relation hasValue { _"http://wsmo.org/ontologies/rosettanet#buyer"}
		endNonFunctionalProperties		
		bookingPreferences impliesType bookingPreferences      
	
	concept bookingPreferences
		nonFunctionalProperties
			dc#description hasValue "The preferences of the buyer in a booking"
		endNonFunctionalProperties  		

	concept paymentMethod
		nonFunctionalProperties
			dc#description hasValue "The superconcept of payment methods"
		endNonFunctionalProperties
				

	concept pointsPaymentMethod subConceptOf paymentMethod			
		nonFunctionalProperties
			dc#description hasValue "payment Method POINTS"
		endNonFunctionalProperties  
		numberOfPoints ofType xsd#integer
						
	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 tsp#tourismServiceProvider      
		receiver impliesType buyer

        

 3.1.8 Flight Booking Ontology

This ontology describes a flight booking. The booking will include:

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

ontology _"http://www.wsmo.org/ontologies/sfs/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/sfs/flightBooking"
		dc#language hasValue "en-US"
		dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
		_"http:://www.wsmo.org/ontologies/sfs/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"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/flight"}
	
   usesMediator 
		_"http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml"
	
	concept flightBooking subConceptOf bo#booking
		nonFunctionalProperties
			dc#description hasValue "a description of a flight booking"
		endNonFunctionalProperties
		seller impliesType fl#flightServiceProvider
		airTripInfo impliesType airTripInfo    
	
	concept flightBookingTicket subConceptOf bo#bookingTicket
		nonFunctionalProperties
			dc#description hasValue "A ticket for flight booking"
		endNonFunctionalProperties
		airTripInfo impliesType airTripInfo
			
	concept trip
		nonFunctionalProperties
			dc#description hasValue "A concept that describes a trip by plane"
			dc#start hasValue "The origin location"
			dc#end hasValue "The destination location"
			dc#departure hasValue "The departure date"
			dc#arrival hasValue "The arrival date"			
			dc#duration hasValue "The duration of the trip"			
		endNonFunctionalProperties
		startLocation impliesType loc#location
		endLocation impliesType loc#location
		departureDate impliesType dt#dateAndTime
		arrivalDate impliesType dt#dateAndTime
		duration impliesType dt#interval

	concept airTripInfo subConceptOf trip
		nonFunctionalProperties
			dc#description hasValue "An air trip between two airports"
			dc#airTripIdentificator hasValue "An unique identificator for the air trip"
			dc#start hasValue "The start airport"
			dc#end hasValue "The end airport"
			dc#sections hasValue "The sections of the trip. "
		endNonFunctionalProperties
		airTripIdentificator ofType xsd#string
		startLocation ofType airport
		endLocation ofType airport
		sections ofType section
	
	concept section
		nonFunctionalProperties
			dc#description hasValue "A section of an air trip"
			dc#originAirport hasValue "The origin airport of the section"
			dc#destinationAirport hasValue "The destination airport of the section"
			dc#flightTicket hasValue "A ticket for the section"
		endNonFunctionalProperties
		originAirport impliesType fl#airport
		destinationAirport impliesType fl#airport
		flightTicket impliesType flightTicket
											
	concept flightTicket
		nonFunctionalProperties
			dc#description hasValue "A ticket for a fligth"
			dc#ticketNumber hasValue "The unique number for a ticket"
			dc#personName hasValue "The name of the tickets person"
			dc#dateOfIssue hasValue "Date when the ticket has been created"
			dc#seatNumber hasValue "The seat number "
			dc#seatClass hasValue "The seat class"
			dc#smokingSeat hasValue "Indicates if it is a smoking seat"
			dc#flight hasValue "The flight associated for the ticket"
		endNonFunctionalProperties
		ticketNumber ofType xsd#integer
		personName ofType xsd#string
		dateOfIssue impliesType dt#date		
		seatNumber ofType xsd#integer
		seatClass ofType xsd#string
		smokingSeat ofType xsd#boolean
		flight impliesType fl#flight      
		
	concept flightBookingPreferences subConceptOf bookingPreferences
		nonFunctionalProperties
			dc#description hasValue "The airTrip preferences that must be fullfilled by the booking"
			dc#start hasValue "The start airport"
			dc#end hasValue "The end airport"
			dc#departure hasValue "The departure date"
			dc#arrival hasValue "The arrival date"	
			dc#class hasValue "The seat class"		
			dc#numMaxConnections hasValue "The maximun connections that the buyer allows"		
		endNonFunctionalProperties
		start impliesType airport
		end impliesType airport
		departure impliesType dt#dateAndTime
		arrival impliesType dt#dateAndTime
		class ofType xsd#string
		numMaxConnections ofType xsd#integer

	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.
    

        

3.1.9 Hotel Room booking ontology

This ontology describes a hotel room booking. The booking will include:

Listing 9. Hotel Room Booking Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/hotelRoomBooking#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	ho _"http://www.wsmo.org/ontologies/sfs/hotel#",
	loc _"http://www.wsmo.org/ontologies/location#",	
	xsd _"http://www.w3.org/2001/XMLSchema#"
}

ontology _"http://www.wsmo.org/ontologies/sfs/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/sfs/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/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/hotel",
		_"http:://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

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

	concept hotelRoomBooking subConceptOf bo#booking
		nonFunctionalProperties
			dc#description hasValue "A hotel room booking"
			dc#hotelStay hasValue "The info of the stay in a hotel"
		endNonFunctionalProperties
		seller impliesType ho#hotelServiceProvider
		hotelStay impliesType hotelStay
		
	concept hotelRoomBookingTicket subConceptOf bo#hotelRoomBookingTicket
		nonFunctionalProperties
			dc#description hasValue "A ticket of a hotel romm booking"
			dc#hotelStay hasValue "The info of the stay in a hotel"
		endNonFunctionalProperties
		hotelStay impliesType hotelStay
		
	concept hotelStay
		nonFunctionalProperties
			dc#description hasValue "A stay in a hotel"
			dc#stayId hasValue "The unique code for a stay in a hotel"
			dc#checkIn hasValue "The date of check-in of the stay in a hotel"
			dc#checkOut hasValue "The date of check-out of the stay in a hotel"
			dc#hotel hasValue "The hotel of the stay in a hotel"
			dc#room hasValue "The room of the stay in a hotel"
		endNonFunctionalProperties
		stayId ofType xsd#string
		checkIn impliesType dt#date
		checkOut impliesType dt#date
		hotel impliesType ho#hotel
		room impliesType ho#room
			
	concept hotelRoomBookingPreferences subConceptOf bookingPreferences
		nonFunctionalProperties
			dc#description hasValue "The hotel room preferences that must be fullfilled by the booking"
			dc#checkIn hasValue "The date of check-in of the stay "
			dc#checkOut hasValue "The date of check-out of the stay "
			dc#numberOfPersons  hasValue "The number of persons that the customer wants to make 
				the reserve"			
			dc#hotelStars hasValue "The hotel stars that must be fullfilled by the booking"
			dc#numberOfBeds  hasValue "Number of beds. "
			dc#smoking  hasValue "Indicates if its a smoking room or not"
		endNonFunctionalProperties
		checkIn impliesType dt#date
		checkOut impliesType dt#date
		numberOfPersons ofType xsd#integer
		hotelStars ofType xsd#integer
		numberOfBeds ofType xsd#integer		
		smoking ofType xsd#boolean
		
	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.

        

3.1.10 Car rental booking ontology

This ontology describes a car rental booking. The booking will include:

Listing 10. Rent a Car Booking Ontology.
namespace{ _"http://www.wsmo.org/ontologies/sfs/carRentalBooking#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	cr _"http://www.wsmo.org/ontologies/sfs/carRental#",
	loc _"http://www.wsmo.org/ontologies/location#",	
	xsd _"http://www.w3.org/2001/XMLSchema#"
}


ontology _"http://www.wsmo.org/ontologies/sfs/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/sfs/carRentalBooking"
		dc#language hasValue "en-US"
		dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/carRental",
		_"http:://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
	_"http://www.wsmo.org/ontologies/sfs/booking",
	_"http://www.wsmo.org/ontologies/sfs/carRental",
	_"http://www.wsmo.org/ontologies/location"
	}    
				
	concept carRentalBooking subConceptOf bo#booking
		nonFunctionalProperties
			dc#description hasValue "A booking of a car rental"
		endNonFunctionalProperties
		seller impliesType cr#carRentalServiceProvider
		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"
			dc#driversName hasValue "The driver or drivers that can drive the car"
			dc#pickupLocation hasValue "The location where the car will be pickuped"
			dc#returnLocation hasValue "The location where the car will be returned"
			dc#pickupDateAndTime hasValue "The date when the car will be pickuped"
			dc#returnDateAndTime hasValue "The date when the car will be returned"
			dc#car hasValue "The car that has been rented"			
		endNonFunctionalProperties
		driversName ofType xsd#string
		pickupLocation impliesType loc#address
		returnLocation impliesType loc#address
		pickupDateAndTime impliesType dt#dateAndTime
		returnDateAndTime impliesType dt#dateAndTime
		car impliesType cr#car                     	


	concept carRentalBookingPreferences subConceptOf bookingPreferences
		nonFunctionalProperties
			dc#description hasValue "The car rental preferences that must be fullfilled by the booking"
			dc#pickupLocation hasValue "The location where the car will be pickuped"
			dc#returnLocation hasValue "The location where the car will be returned"
			dc#pickupDateAndTime hasValue "The date when the car will be pickuped"
			dc#returnDateAndTime hasValue "The date when the car will be returned"
			dc#doorCount hasValue "The number of doors of the car"
			dc#carSize hasValue "Indicates tue number of persons that can be in the car"
			dc#miliageLimited hasValue "Indicates if the car has miliageLimited"
			dc#hasChildSeat hasValue "Indicates if the car has child seat"
			dc#hasAirConditioning hasValue "Indicates if the car has air conditioning"
		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.

        

3.1.11 Shuttle booking Ontology

This ontology describes a shuttle booking. The booking will include:

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

ontology _"http://www.wsmo.org/ontologies/sfs/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/sfs/shuttleBooking"
		dc#language hasValue "en-US"
		dc#relation hasValue {_"http://keg.cs.tsinghua.edu.cn/ontology/travel",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle#",
		_"http:://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http:://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle#",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http://www.wsmo.org/ontologies/location"
	}
				
	concept shuttleBooking subConceptOf bo#booking
		nonFunctionalProperties
			dc#description hasValue "A booking of a shuttle"
			dc#shuttleBookingInfo hasValue "The shuttle booking info"
		endNonFunctionalProperties
		seller impliesType sh#shuttleServiceProvider
		shuttleBookingInfo impliesType shuttleBookingInfo
		
	concept shuttleBookingTicket subConceptOf bo#bookingTicket
		nonFunctionalProperties
			dc#description hasValue "A bookingTicket of a shuttle booking"
			dc#shuttleBookingInfo hasValue "The shuttle booking info"
		endNonFunctionalProperties
		shuttleBookingInfo impliesType shuttleBookingInfo
	
	concept shuttleBookingInfo
		nonFunctionalProperties
			dc#description hasValue "The shuttle booking information"
			dc#pickupLocation hasValue "The pickup location of the shuttle service"
			dc#pickupDateAndTime hasValue "The date and time of the shuttle service"
			dc#destination hasValue "The destination of the shuttle"
			dc#shuttle hasValue "The shuttle for this booking"			
		endNonFunctionalProperties
		pickupLocation impliesType fb#airport
		pickupDateAndTime impliesType dt#dateAndTime
		destination impliesType loc#location
		shuttle impliesType sh#shuttle		
		

	concept shuttleBookingPreferences subConceptOf bo#bookingPreferences
		nonFunctionalProperties
			dc#description hasValue "The shuttle booking preferences"
			dc#pickupLocation hasValue "The pickup location of the shuttle service"
			dc#pickupDateAndTime hasValue "The pickup date and time of the shuttle service"
			dc#destination hasValue "The destination"			
		endNonFunctionalProperties
		pickupLocation impliesType fb#airport
		pickupDateAndTime impliesType dt#dateAndTime
		destination impliesType loc#location

        

 

3.2 Goal Templates

The following specifies a set of pre-defined SFS Goal Templates whereof SFS Goal Instances will be created by marketplace participants and assigned to their distinct Freds. We define the Goal Templates in order to support the general desires a SFS customer can have; when creating a Goal Instance, the notions defined in the Goal Template can be arbitrarily refined.

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).

3.2.1 Flight Booking Goal

Listing 12. Flight Booking Goal .
namespace {_"http://www.wsmo.org/goals/sfs/flightBookingGoalTemplate#",
	dc _"http://purl.org/dc/elements/1.1#",
	fb _"http://www.wsmo.org/ontologies/sfs/flightBooking#",
	fl _"http://www.wsmo.org/ontologies/sfs/flight#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#",
	dt _"http://www.wsmo.org/ontologies/dateTime#"
}

goal _"http://www.wsmo.org/goals/sfs/flightBookingGoalTemplate"
	
	nonFunctionalProperties
		dc#title hasValue "Goal for booking an airTrip"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Flight", "Flight Booking template", "Airport", "AirTrip"}     
		dc#description hasValue "Goal for booking an airTrip"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#gaols"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/flightBookingGoalTemplate"
		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/sfs/booking",
			_"http://www.wsmo.org/ontologies/sfs/flightBooking",
			_"http://www.wsmo.org/ontologies/dateTime",
			_"http://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/flight#",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/dateTime"
	}
		
	capability flightBookingGoalTemplateCapability
	
		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,
						sections hasValue ?Section
					] and       
					?Section memberOf fb#section[		
						originAirport hasValue ?OriginAirport,
						destinationAirport hasValue ?DepartureAirport,
						flightTicket hasValue ?FlightTicket
					] and 
					?FlightTicket memberOf bo#flightTicket	[
						flight hasValue ?Flight				
					] and 
					?Flight memberOf fl#flight 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 fl#airport and
					?End  memberOf fl#airport and    
					?Departure memberOf dt#dateAndTime and
					?Arrival memberOf dt#dateAndTime and
					?Class memberOf xsd#string and
					?NumMaxConnections memberOf xsd#integer and
					?Seller memberOf fl#filghtServiceProvider[
						flights hasValue {?Flight}
					]
				) and 
				?X memberOf fb#flightBooking[         
					bookingIdentifier hasValue ?BookingIdentifier,
					airTripInfo hasValue ?AirTripInfo,
					buyer hasValue ?Buyer,                 
					seller hasValue ?Seller,
					bookingTicket hasValue ?FlightBookingTicket            
				]. 

 3.2.2 Hotel Room Booking Goal Template

Listing 13. Hotel Room Booking Goal Template.
namespace {_"http://www.wsmo.org/goals/sfs/hotelRoomBookingGoalTemplate#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http:://www.wsmo.org/ontologies/dateTime#",
	hb _"http:://www.wsmo.org/ontologies/sfs/hotelRoomBooking#",
	ho _"http:://www.wsmo.org/ontologies/sfs/hotel#",
	bo _"http:://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http:://www.wsmo.org/ontologies/location#"
}

goal _"http://www.wsmo.org/goals/sfs/hotelRoomBookingGoalTemplate"
	
	nonFunctionalProperties
		dc#title hasValue "Goal for booking a hotel room"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Hotel", "Hotel room booking", "Room", "hotelStay"}
		dc#description hasValue "Goal for booking a hotel room"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/hotelRoomBookingGoalTemplate"
		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"
		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http:://www.wsmo.org/ontologies/sfs/hotelRoomBooking",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/hotel",
		_"http:://www.wsmo.org/ontologies/location",
		_"http:://www.wsmo.org/ontologies/dateTime"
	}
		
	capability hotelRoomBookingGoalTemplateCapability
		
		postcondition
			nonFunctionalProperties
					dc#description hasValue "This goal template is used to find a
					hotel booking web service. It will be fill in by the
					customer"
			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 ho#room and
					?Hotel memberOf ho#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 ?CheckInPre,
						checkOut hasValue ?CheckOutPre,    
						numberOfPersons hasValue ?NumberOfPersonsPre,
						hotelStars hasValue ?HotelStarsPre
					] and
					?CheckInPre memberOf dt#date and
					?CheckOutPre memberOf dt#date and  
					?NumberOfPersonsPre memberOf xsd#integer and 
					?HotelStarsPre memberOf xsd#integer and 
					?HotelServiceProvider memberOf ho#hotelServiceProvider
					[
						hotels hasValue {?Hotel}
					]
				)
				and 
				?X memberOf hb#hotelRoomBooking[         
					bookingIdentifier hasValue ?BookingIdentifier,
					hotelStay hasValue ?HotelStay,
					buyer hasValue ?Buyer,    
					seller hasValue ?HotelServiceProvider,             
					bookingTicket hasValue ?HotelRoomBookingTicket           
				]. 

 3.2.3 Car Rental Booking Goal Template

Listing 14. Car Rental Booking Goal Template.
namespace {_"http://www.wsmo.org/goals/sfs/carRentalBookingGoalTemplate#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#"
}

goal _"http://www.wsmo.org/goals/sfs/carRentalBookingGoalTemplate"
	
	nonFunctionalProperties
		dc#title hasValue "Package Goal"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Package goal", "constraint", ""}
		dc#description hasValue "Goal for booking online carRental"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/carRentalBookingGoalTemplate"
		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/sfs/booking",
			_"http:://www.wsmo.org/ontologies/sfs/carBooking",
			_"http:://www.wsmo.org/ontologies/dateTime",
			_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/sfs/carRentalBooking",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/carRental",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/dateTime"
	}
		
	capability							 
		postcondition		
			nonFunctionalProperties
				dc#description hasValue "This goal is used to build the package"
			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 car#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 ?PickupLocationPre,
						returnLocation hasValue ?ReturnLocationPre,
						pickupDateAndTime hasValue ?PickupDateAndTimePre,
						returnDateAndTime hasValue ?ReturnDateAndTimePre,    
						doorCount hasValue ?DoorCountPre,
						carSize hasValue ?CarSizePre,
						miliageLimited hasValue ?MiliageLimitedPre,
						hasChildSeat hasValue ?HasChildSeatPre,
						hasAirConditioning hasValue ?HasAirConditioningPre   
					] and             
					?PickupLocationPre memberOf loc#location and 
					?ReturnLocationPre memberOf loc#location and 
					?PickupDateAndTimePre memberOf dt#dateAndTime and  
					?ReturnDateAndTimePre memberOf dt#dateAndTime and
					?DoorCountPre memberOf xsd#integer and   
					?CarSizePre memberOf xsd#integer and
					?MiliageLimitedPre memberOf xsd#boolean and
					?HasChildSeatPre memberOf xsd#boolean and 
					?HasAirConditioningPre memberOf xsd#boolean and
					?CarRentalServiceProvider memberOf cr#carRentalServiceProvider and
					[
						cars hasValue {?Car}
					]
				) and           
				?X memberOf cb#carRentalBooking[         
					bookingIdentifier hasValue ?BookingIdentifier,
					carRentalBookingInfo hasValue ?CarRentalBookingInfo,
					buyer hasValue ?Buyer,
					seller hasValue ?CarRentalServiceProvider,          
					bookingTicket hasValue ?CarRentalBookingTicket,
					paymentMethod hasValue ?Points
				].

 3.2.4 Shuttle Booking Goal Template

Listing 15. Shuttle Booking Goal Template.
namespace {_"http://www.wsmo.org/goals/sfs/shuttleBookingGoalTemplate#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http:://www.wsmo.org/ontologies/dateTime#",
	sh _"http:://www.wsmo.org/ontologies/sfs/shuttle#",
	cb _"http:://www.wsmo.org/ontologies/sfs/shuttleBooking#",
	bo _"http:://www.wsmo.org/ontologies/booking#",
	loc _"http:://www.wsmo.org/ontologies/location#"
}

goal _"http://www.wsmo.org/goals/sfs/shuttleBookingGoalTemplate"
	
	nonFunctionalProperties
		dc#title hasValue "Goal for booking online a shuttle"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Taxi shuttle", "Shuttle booking", "Taxi"}
		dc#description hasValue "Goal for booking online a shuttle"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/shuttleBookingGoalTemplate"
		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.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http:://www.wsmo.org/ontologies/sfs/shuttleBooking",
		_"http:://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle",
		_"http:://www.wsmo.org/ontologies/location",
		_"http:://www.wsmo.org/ontologies/dateTime"
	}
	
	capability shuttleBookingGoalTemplateCapability
	
		postcondition
			nonFunctionalProperties
				dc#description hasValue "This goal template is used to find a
					shuttle booking web service. It will be fill in by the
					customer"
			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 sh#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
						?ShuttleServiceProvider memberOf sh#shuttleServiceProvider
							[shuttles hasValue {?Shuttle}]
					) and         
					?X memberOf sb#shuttleBooking [
						bookingIdentifier hasValue ?BookingIdentifier,
						shuttleBookingInfo hasValue ?ShuttleBookingInfo,
						buyer hasValue ?Buyer,
						seller hasValue ?ShuttleServiceProvider, 
						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 sh#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
					?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.2.5 Find Air Trip Information Goal Tempate

Listing 16 belows defines the findAirTripInfoGoal which is linked by the findAirTripInfoMediator. This goal will provide an available airTripInfo for the flight booking, that will satisfy the customer flight booking preferences.

Listing 16. Find Air Trip Information Goal Template.
namespace { _"http://www.wsmo.org/goals/sfs/findAirTripInfoGoal#",
	dc _"http://purl.org/dc/elements/1.1#",
	fb _"http://www.wsmo.org/ontologies/sfs/flightBooking#",
	fl _"http://www.wsmo.org/ontologies/sfs/flight#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#",
	dt _"http://www.wsmo.org/ontologies/dateTime#"
}

goal _"http://www.wsmo.org/goals/sfs/findAirTripInfoGoal"
	
	nonFunctionalProperties
		dc#title hasValue "Goal for booking an airTrip"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Flight", "Airport", "AirTrip info"}     
		dc#description hasValue "Goal for booking an airTrip"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/findAirTripInfoGoal"
		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/sfs/booking",
			_"http://www.wsmo.org/ontologies/sfs/flightBooking",
			_"http://www.wsmo.org/ontologies/dateTime",
			_"http://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/flight#",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/dateTime"
	}
		
	capability 
		sharedVariables ?airTripInfo
		postcondition
			nonFunctionalProperties
				dc#description hasValue "This is a goal template. The "
			endNonFunctionalProperties
			definedBy 
				exists {
					?Buyer, ?BuyerContactInformation,?FlightBookingPreferences, ?BuyerEmail ,
					?Start, ?End , ?Departure, ?Arrival ,  ?Class, ?NumMaxConnections}
				(
					?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 fl#airport and
					?End  memberOf fl#airport and    
					?Departure memberOf dt#dateAndTime and
					?Arrival memberOf dt#dateAndTime and
					?Class memberOf xsd#string and
					?NumMaxConnections memberOf xsd#integer
					and 
				) and 
					?AirTripInfo memberOf fb#airTripInfo 
					[           
						start hasValue ?Start,
						end hasValue ?End,
						departure hasValue ?Departure,
						arrival hasValue ?Arrival,
						sections hasValue ?Section
					] and
					?Section memberOf fb#section[		
						originAirport hasValue ?Origin,
						destinationAirport hasValue ?Departure,
						flightTicket hasValue ?FlightTicket
					] and 
					?FlightTicket memberOf bo#flightTicket	[
						flight hasValue ?Flight				
					] and 
					?Flight memberOf fl#flight.

    

3.2.6 Find Hotel Stay Goal Template

Listing 17 belows defines the findHotelStayGoal which is linked by the findHotelStayMediator. This goal will provide an available hotelStay for the hotel booking, that will satisfy the customer hotel booking preferences.

Listing 17. Find Hotel Stay Goal Template.
namespace {	_"http://www.wsmo.org/goals/sfs/findHotelStayGoal#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	hb _"http://www.wsmo.org/ontologies/sfs/hotelRoomBooking#",
	ho _"http://www.wsmo.org/ontologies/sfs/hotel#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#"
}

goal _"http://www.wsmo.org/goals/sfs/findHotelStayGoal#"
	
	nonFunctionalProperties
		dc#title hasValue "Goal to find a hotel stay"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Hotel", "Room", "hotelStay", "available room"}
		dc#description hasValue "Goal to find a hotel stay"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/findHotelStayGoal"
		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"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http:://www.wsmo.org/ontologies/sfs/hotelRoomBooking",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/hotel",
		_"http:://www.wsmo.org/ontologies/location",
		_"http:://www.wsmo.org/ontologies/dateTime"
	}
		
	capability 
		
		sharedVariables ?hotelStay
		
		postcondition
			nonFunctionalProperties
				dc#description hasValue "A hotelStay instance has been created
					according to the buyer preferences"
			endNonFunctionalProperties
			definedBy 
				exists {
					?Buyer, ?BuyerEmail, ?BuyerContactInformation, 
					?HotelRoomBookingPreferences, ?NumberOfPersons, ?HotelStars}
				(															
					?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
					?Room memberOf ho#room and
					?Hotel memberOf ho#hotel 
				)
				and 
					?hotelStay memberOf hb#hotelStay [  
						checkIn hasValue ?CheckIn,
						checkOut hasValue ?CheckOut,
						room hasValue ?Room,
						hotel hasValue ?Hotel
					] and 
						hb#fulfillHotelPreferences(?hotelStay,?HotelRoomBookingPreferences).

    

3.2.7 Find Car Rental Information Goal Template

Listing 18 belows defines the findCarRentalInfoGoal which is linked by the findCarRentalInfoMediator. This goal will provide an available carRentalInfo for the car rental booking, that will satisfy the customer car rental booking preferences.

Listing 18. Car Rental Information Goal Template.
namespace { _"http://www.wsmo.org/goals/sfs/findCarRentalInfoGoal#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	car _"http://www.wsmo.org/ontologies/sfs/carRental#",
	cb _"http://www.wsmo.org/ontologies/sfs/carRentalBooking#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#"
}

goal _"http://www.wsmo.org/goals/sfs/findCarRentalInfoGoal"
	nonFunctionalProperties
		dc#title hasValue "Goal for booking online carRental"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Car rental", "Car booking info", "Car"}
		dc#description hasValue "Goal for booking online carRental"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue _"http://www.wsmo.org/goals/sfs/findCarRentalInfoGoal"
		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/sfs/booking",
			_"http:://www.wsmo.org/ontologies/sfs/carBooking",
			_"http:://www.wsmo.org/ontologies/dateTime",
			_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/sfs/carRentalBooking",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/carRental",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/dateTime"
	}
	capability							 
		postcondition
			nonFunctionalProperties
				dc#description hasValue "A car Rental Booking Info instance 
					has been created according to the buyer preferences"
			endNonFunctionalProperties			
			definedBy 
				exists {?BookingIdentifier, ?CarRentalBookingTicket, ?BookingTicketIdentificator, 
					?CarRentalBookingInfo, ?PickupLocation ,?ReturnLocation, ?PickupDateAndTime, 
					 ?ReturnDateAndTime , ?Car, ?Buyer, ?BuyerContactInformation, ?DoorCount, 
					 ?CarSize, ?MiliageLimited, ?HasChildSeat, ?HasAirConditioning}
				(            
					?PickupLocation memberOf loc#location and 
					?ReturnLocation memberOf loc#location and 
					?PickupDateAndTime memberOf dt#dateAndTime and  
					?ReturnDateAndTime memberOf dt#dateAndTime and                    
					?Car memberOf car#car 
					[
						doorCount hasValue ?DoorCount,
						carSize hasValue ?CarSize,
						miliageLimited hasValue ?MiliageLimited,
						hasChildSeat hasValue ?HasChildSeat,
						hasAirConditioning hasValue ?HasAirConditioning   
					] 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          
					?carRentalBookingInfo memberOf cb#carRentalBookingInfo 
					[          
						pickupLocation hasValue ?PickupLocation,
						returnLocation hasValue ?ReturnLocation,
						pickupDateAndTime hasValue ?PickupDateAndTime,
						returnDateAndTime hasValue ?ReturnDateAndTime,            
						car hasValue ?Car 
					] and 
				cb#fulfillCarRentalPreferences(?carRentalBookingInfo,?CarRentalBookingPreferences).

    

3.2.8 Find Shuttle Information Goal Template

Listing 19 belows defines the findShuttleInfois linked by the findShuttleInfoMediator. This goal will provide an available shuttleInfo for the shuttle booking, that will satisfy the customer shuttle booking preferences.

Listing 19. Find Shuttle Information Goal Template.
namespace { _"http://www.wsmo.org/goals/sfs/findShuttleBookingInfoGoal#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http:://www.wsmo.org/ontologies/dateTime#",
	sh _"http:://www.wsmo.org/ontologies/sfs/shuttle#",
	cb _"http:://www.wsmo.org/ontologies/sfs/shuttleBooking#",
	bo _"http:://www.wsmo.org/ontologies/booking#",
	loc _"http:://www.wsmo.org/ontologies/location#"
}

goal  _"http://www.wsmo.org/goals/sfs/findShuttleBookingInfoGoal"
	
	nonFunctionalProperties
		dc#title hasValue "Goal to fin a available shuttle booking info"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Taxi", "shuttle", "Shuttle booking", "Available shuttle"}
		dc#description hasValue "Goal to fin a available shuttle booking info"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose López", "Clara Pezuela"}
		dc#date hasValue "2005-02-11"
		dc#type hasValue _"http://www.wsmo.org/2004/d2#goals"
		dc#format hasValue "text/html"
		dc#identifier hasValue  _"http://www.wsmo.org/goals/sfs/findShuttleBookingInfoGoal"
		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"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http:://www.wsmo.org/ontologies/sfs/shuttleBooking",
		_"http:://www.wsmo.org/ontologies/sfs/flight",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle",
		_"http:://www.wsmo.org/ontologies/location",
		_"http:://www.wsmo.org/ontologies/dateTime"
	}
	
	capability 
		
		sharedVariables ?shuttleBookingInfo
		
		postcondition
			nonFunctionalProperties
				dc#description hasValue "A shuttle booking info instance 
					has been created according to the buyer preferences"
			endNonFunctionalProperties
			definedBy 
		
			exists {?Buyer, ?BuyerContactInformation, 
					?ShuttleBookingInfo, ?PickupAirport ,?PickupDateAndTime, ?Destination,
					?Buyer, ?BuyerContactInformation, ?ShuttleBookingTicket}
					(						
						?PickupAirport memberOf fb#airport and
						?PickupDateAndTime memberOf dt#dateAndTime and
						?Destination memberOf loc#location and
						?Shuttle memberOf sh#shuttle 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         
						?shuttleBookingInfo memberOf sb#shuttleBookingInfo [
							pickupAirport hasValue ?PickupAirport,
							pickupDateAndTime hasValue ?PickupDateAndTime,
							destination hasValue ?Destination,
							shuttle hasValue ?Shuttle 
						] and
							sb#fulfillShuttlePreferences(?shuttleBookingInfo,?ShuttleBookingPreferences). 

    

 

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. These 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. A Web Service Capability in WSMO is described by pre- and post-conditions, assumptions and effects, as defined in [Roman et al., 2005], and the Web service interface, including choreography and orchestration, is defined in [Roman et al, 2005b].

3.3.1 Flight Booking Web service

This web service is provided by IB flight service provider. It offers flights with the origin airport in Spain and destination Europe .

Listing 20. IB Flight Booking Web Service.
namespace {_"http://www.wsmo.org/webservices/sfs/IBFlightBookingWS#",
	dc _"http://purl.org/dc/elements/1.1#",
	fb _"http://www.wsmo.org/ontologies/sfs/flightBooking#",
	fl _"http://www.wsmo.org/ontologies/sfs/flight#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#",
	dt _"http://www.wsmo.org/ontologies/dateTime#", 	
}

webService _"http://www.wsmo.org/webservices/sfs/IBFlightBookingWS"
	
	nonFunctionalProperties
		dc#title hasValue "Online Flight 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","Jose 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/webservices/sfs/IBFlightBookingWS"
		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/sfs/booking",
			_"http://www.wsmo.org/ontologies/sfs/flightBooking",
			_"http://www.wsmo.org/ontologies/dateTime",
			_"http://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/flight#",
		_"http://www.wsmo.org/ontologies/sfs/flightBookingWSChoreography",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/dateTime"
	}
		
	capability IBFlightBookingWSCapability
		precondition
			nonFunctionalProperties
				dc#description hasValue "Required input is: 
					[1] buyer information
					[2] flight booking preferences
					As precondition the buyer must have an existin email address
					and he has to indicate his preferences of a flight booking, 
					such as:the departure and arrival date, start and end location
					maximun number of conections and desired seat class.
					The departure must be from Madrid and
					the arrival must be toEurope"                   
			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
				. 
	 			 
		postcondition
			nonFunctionalProperties
				dc#description hasValue "The output of the service is a flight booking.
				An instance of a flight booking have been created.
				This booking has an identificator, a ticket, and the air trip info 
				has been obtained from the service providers data base 
				and satisfy the booking buyer preferences.
				The air trip info has:
					departure and arrival date,
					start and end airports,
					the sections of the air trip
				This sections will have a flight ticket with the flight associated"	
			endNonFunctionalProperties
			definedBy 
				exists {?BookingIdentifier, ?FlightBookingTicket, ?bookingTicketIdentifier, ?AirTripInfo, 
							 ?Start, ?End , ?Departure, ?Arrival , ?Buyer, ?BuyerContactInformation,
							 ?FlightBookingPreferences, ?BuyerEmail}
				(
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?BuyerContactInformation,
						flightBookingPreferences hasValue ?FlightBookingPreferences
					] and 
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?BuyerEmail
					] and 
					?FlightBookingPreferences memberOf fb#flightBookingPreferences and       									
					?AirTripInfo memberOf fb#airTripInfo 
					[           
						start.inCountry hasValue SPAIN,
						end.locatedIn hasValue EUROPE
						departure hasValue ?Departure,
						arrival hasValue ?Arrival
						sections hasValue ?Sections
					] and       
					fb#fulfillFlightPreferences(?AirTripInfo,?FlightBookingPreferences) and
					?Section memberOf fb#section[
						flightTicket hasValue {?FlightTicket}
					] and 
					?FlightTicket memberOf bo#flightTicket	[
						flight hasValue ?Flight				
					] and 
					?Flight memberOf fl#flight and									
					IBFlightServiceProvider memberOf fl#flightServiceProvider[
						flights hasValue {?Flight}
					]
				) and 
				?X memberOf fb#flightBooking[         
					bookingIdentifier hasValue ?BookingIdentifier,
					bookingTicket hasValue ?FlightBookingTicket,
					airTripInfo hasValue ?AirTripInfo,
					buyer hasValue ?Buyer,
					seller hasValue IBFlightServiceProvider, 
					paymentMethod hasValue ?Points
				]. 

		effect
			nonFunctionalProperties
				dc#description hasValue "The booking ticket is delivered to the buyer via email 
					from the service provider to the buyer emailAddress.
					The booking ticket will include the air trip info and the buyer info"
			endNonFunctionalProperties
			definedBy
				exists {?FlightBooking, ?BookingIdentifier, ?FlightBookingTicket, 
					?bookingTicketIdentifier, ?AirTripInfo, ?Buyer, 
					?BuyerContactInformation, ?BuyerEmail}
				(
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?BuyerContactInformation,						
					] and 
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?BuyerEmail
					]and 
					?FlightBooking memberOf fb#flightBooking
					[
						bookingIdentifier hasValue ?BookingIdentifier,
						airTripInfo hasValue ?AirTripInfo,
						buyer hasValue ?Buyer,    
						seller hasValue              
						bookingTicket hasValue ?FlightBookingTicket,
						paymentMethod hasValue ?Points
					] and
					?BookingIdentifier memberOf xsd#String and  
					?AirTripInfo memberOf fb#airTripInfo and     
					?FlightBookingTicket memberOf fb#flightBookingTicket
					[
						bookingTicketIdentifier hasValue ?bookingTicketIdentifier,          
						airTripInfo hasValue ?AirTripInfo
					] and
					?bookingTicketIdentifier memberOf xsd#string and 
					IBFlightServiceProvider memberOf fl#flightServiceProvider
				) and
					?X memberOf bo#onlineDelivery[
						deliveryItem hasValue {?FlightBookingTicket}, 
						receiver hasValue ?Buyer,
						sender hasValue IBFlightServiceProvider, 
						onlineDeliveryMethod hasValue "email"
					].
						
	interface IBFlightBookingWSInterface
		nonFunctionalProperties
			dc#description hasValue "describes the Interface of the Web Service"
		endNonFunctionalProperties         
	
		choreography 
			state _"http://www.wsmo.org/ontologies/sfs/carFlightWSChoreography#"			

			guardedTransitions
				/* rule 1: 
					when a airTripInfoInstance is received, a partial
					airTripInstance is created*/
				if (airTripInfoInstance memberOf fb#airTripInfo 
					[           
						start hasValue ?Start,
						end hasValue ?End,
						departure hasValue ?Departure,
						arrival hasValue ?Arrival
					])
				then				
					flightBookingInstance memberOf fb#flightBooking[         				
						airTripInfo hasValue airTripInfoInstance]. 					

				/* rule 2: 
					if a partial shuttle booking exists and if the booking identificator
					instance and the shuttleBookingTicketInstance are received,
					then the partial booking is complete with all the attributes filled in.
				*/
				if ((flightBookingInstance memberOf fb#flightBooking) and 
					(bookingIdInstance memberOf bo#bookingIdentifier) and
					(flightBookingTicketInstance memberOf sb#shuttleBookingTicket[
						bookingTicketIdentifier hasValue bookingTicketIdInstance,          
						shuttleBookingInfo hasValue shuttleBookingInfoInstance]))
				then 
					(flightBookingInstance memberOf fb#flightBooking[
						bookingIdentifier hasValue bookingIdInstance,
						bookingTicket hasValue flightBookingTicketInstance,
						airTripInfo  hasValue airTripInfoInstance,
						buyer hasValue ?Buyer,                 
						seller hasValue IBFlightServiceProvider,
						paymentMethod hasValue ?Points
					]).							
			
		orchestration 			

			guardedTransitions		
				/*	rule 1:
					when a airTripInfoInstance is received, the service
					must make use of another service which provide the
					airTripInfo*/
				if (airTripInfoInstance memberOf fb#airTripInfo 
					[           
						start hasValue ?Start,
						end hasValue ?End,
						departure hasValue ?Departure,
						arrival hasValue ?Arrival
					])
				then				
					findAirTripInfoMediator.

    

 3.3.2 Hotel Room Booking Web service

This web service is provided by MH hotel service provider. It offers 4 stars hotels in Spain .

Listing 14. MH Hotel Room Booking Web Service.
namespace {_"http://www.wsmo.org/webservices/sfs/MHHotelRoomBookingWS#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http:://www.wsmo.org/ontologies/dateTime#",
	hb _"http:://www.wsmo.org/ontologies/sfs/hotelRoomBooking#",
	ho _"http:://www.wsmo.org/ontologies/sfs/hotel#",
	bo _"http:://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http:://www.wsmo.org/ontologies/location#",	
}

webService _"http://www.wsmo.org/webservices/sfs/MHHotelRoomBookingWS"
	
	nonFunctionalProperties
		dc#title hasValue "Online NH Hotel Room Booking Web Service"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Hotel", "Hotel room booking", "Room", "hotelStay"}
		dc#description hasValue "Online MH Hotel Room Booking Web Service
			for Spain 4* MH Hotels"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose 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/webservices/sfs/MHHotelRoomBookingWS"
		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"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http:://www.wsmo.org/ontologies/sfs/hotelRoomBooking",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/hotel",
		_"http:://www.wsmo.org/ontologies/location",
		_"http:://www.wsmo.org/ontologies/dateTime"
	}
		
	capability MHHotelRoomBookingWSCapability
		
		precondition
			nonFunctionalProperties
				dc#description hasValue "Required input is: 
					[1] buyer information
					[2] hotel room booking preferences
					As precondition the buyer must have an existin email address
					and he has to indicate his preferences of a hotel room booking, 
					such as:the check-in and check-out date, desired city,
					desired number of room and beds and if he needs an smoking 
					room or not, and the minimun hotel stars.
					The hotel must be in Spain and it must have 4 stars" 
			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. 

		postcondition
			nonFunctionalProperties
				dc#description hasValue "The output of the service is a NH hotel room booking.
					An instance of a MH hotel room booking have been created.
					This booking has an identificator, a ticket, and the hotel stay info 
					has been obtained from the service providers data base 
					and satisfy the booking buyer preferences.
					The hotel stay info has:
						checkin and checkout date,
						room or rooms,
						the hotel."									
			endNonFunctionalProperties
			definedBy 
				exists {?Buyer, ?BuyerContactInformation, ?HotelStay, 
					?CheckIn, ?CheckOut, ?Room, ?Hotel, ?HotelRoomBookingPreferences, 
					NHHotelServiceProvider}
				(			
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?ContactInformation,
						bookingPreferences hasValue ?HotelRoomBookingPreferences
					] and 
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?InputBuyerEmail
					] and
					?HotelRoomBookingPreferences memberOf hb#hotelRoomBookingPreferences
					and		
					?HotelStay memberOf hb#hotelStay [  
						checkIn hasValue ?CheckIn,
						checkOut hasValue ?CheckOut,
						room hasValue ?Room,
						hotel hasValue ?Hotel
					] and 					
					hb#fulfillHotelPreferences(?HotelStay,?HotelRoomBookingPreferences) and
					?Room memberOf ho#room and
					?Hotel memberOf ho#hotel
					[
						stars hasValue 4,
						city hasValue ?City						
					] and
					?City.inCountry hasValue SPAIN and
					NHHotelServiceProvider memberOf ho#hotelServiceProvider
					[
						hotels hasValue {?Hotel}
					] and
				)
				and 
					?X memberOf hb#hotelRoomBooking[         
						bookingIdentifier hasValue ?BookingIdentifier,
						bookingTicket hasValue ?HotelRoomBookingTicket,
						hotelStay hasValue ?HotelStay,
						buyer hasValue ?Buyer,                 
						seller hasValue NHHotelServiceProvider,
						paymentMethod hasValue ?Points
					].
	
		effect
			nonFunctionalProperties
				dc#description hasValue "The booking ticket is delivered to the buyer via email 
					from the service provider to the buyer emailAddress.
					The booking ticket will include the hotel stay info and the buyer info"
			endNonFunctionalProperties
			definedBy
				exists {?HotelRoomBooking, ?BookingIdentifier, ?HotelRoomBookingTicket, 
							?bookingTicketIdentifier, ?HotelStay, ?Buyer, 
							?BuyerContactInformation,?HotelRoomBookingPreferences,
							NHHotelServiceProvider}
				(
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?BuyerContactInformation						
					] and
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?Emailaddress
					]and			
					?HotelRoomBooking memberOf hb#hotelRoomBooking [         
						bookingIdentifier hasValue ?BookingIdentifier,
						bookingTicket hasValue ?HotelRoomBookingTicket,
						hotelStay hasValue ?HotelStay,
						buyer hasValue ?Buyer,                 
						seller hasValue NHHotelServiceProvider,
						paymentMethod hasValue ?Points,
					] and					
					?BookingIdentifier memberOf bo#bookingIdentifier and
					?HotelRoomBookingTicket memberOf hb#hotelRoomBookingTicket
					[
						bookingTicketIdentifier hasValue ?bookingTicketIdentifier,          
						hotelStay hasValue ?HotelStay
					] and 					
					?bookingTicketIdentifier memberOf bo#bookingTicketIdentifier and          
					?HotelStay memberOf hb#hotelStay and
					NHHotelServiceProvider memberOf ho#hotelServiceProvider
				)
				and  
					?X memberOf bo#onlineDelivery[
						deliveryItem hasValue {?HotelRoomBookingTicket}, 
						sender hasValue NHHotelServiceProvider,
						receiver hasValue ?Buyer, 
						onlineDeliveryMethod hasValue "email"
					].
						
	interface MHHotelRoomBookingWSInterface
		nonFunctionalProperties
			dc#description hasValue "describes the Interface of Web Service"
		endNonFunctionalProperties         
		
		choreography 
			
			state _"http://www.wsmo.org/ontologies/sfs/hotelRoomWSChoreography#"
			
				/* rule 1: 
					when a hotelStayInstance is received, a partial
					hotelRoomBookingInstance is created */
				if (hotelStayInstance impliesType hb#hotelStay [  
						checkIn hasValue ?CheckIn,
						checkOut hasValue ?CheckOut,
						hotel hasValue ?Hotel, 
						room has Value ?Room
					] and 
					?CheckIn memberOf dt#date and
					?CheckOut memberOf dt#date)
				then
					hotelRoomBookingInstance memberOf cb#hotelRoomBooking[         			
						hotelStay hasValue hotelStayInstance
					]. 

				/* rule 2: 
					if a partial hotel room booking exists and if the booking identificator
					instance and the hotelRoomBookingTicketInstance are received,
					then the partial booking is complete with all the attributes fill in.*/
				if ((hotelRoomBookingInstance memberOf hb#hotelRoomBooking) and 
					(bookingIdInstance memberOf bo#bookingIdentifier) and
					(hotelRoomBookingTicketInstance memberOf hb#hotelRoomBookingTicket[
						bookingTicketIdentifier hasValue bookingTicketIdInstance,          
						hotelStay hasValue hotelStayInstance]))
				then 
					hotelRoomBookingInstance memberOf cb#hotelRoomBooking[
						bookingIdentifier hasValue bookingIdInstance,
						bookingTicket hasValue hotelRoomBookingTicketInstance,
						hotelStay hasValue hotelStayInstance,
						buyer hasValue ?Buyer,                 
						seller hasValue NHHotelServiceProvider,
						paymentMethod hasValue ?Points
					] 					
		orchestration 
		
			guardedTransitions
				/*	rule 1:
					when a hotelStayInstance is received, the service
					must make use of another service which provide the
					hotelStay	*/
				if (hotelStayInstance memberOf hb#hotelStay [  
						checkIn hasValue ?CheckIn,
						checkOut hasValue ?CheckOut,
						hotel hasValue ?Hotel, 
						room has Value ?Room
					] and 
					?CheckIn memberOf dt#date and
					?CheckOut memberOf dt#date)
				then
					findHotelStayMediator .

    

3.3.3 Car Rental Web service

This web service is provided by Rac car rental service provider. It offers car rentals in Spain .

Listing 12. RAC Car Rental Booking Web Service.
namespace {_"http://www.wsmo.org/webservices/sfs/RacCarRentalBookingWS#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	car _"http://www.wsmo.org/ontologies/sfs/carRental#",
	cb _"http://www.wsmo.org/ontologies/sfs/carRentalBooking#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#"
}

webService _"http://www.wsmo.org/webservices/sfs/RacCarRentalBookingWS"
	
	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 a RAC rent-a-car in Spain"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose 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/webservices/sfs/RacCarRentalBookingWS"
		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/sfs/booking",
			_"http:://www.wsmo.org/ontologies/sfs/carBooking",
			_"http:://www.wsmo.org/ontologies/dateTime",
			_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/sfs/carRentalBooking",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/carRental",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/dateTime"
	}
		
	capability RacCarRentalBookingWSCapability
	
		precondition
			nonFunctionalProperties
				dc#description hasValue "Required input is: 
					[1] buyer information
					[2] car rental booking preferences
					As precondition the buyer must have an existin email address
					and he has to indicate his preferences of a car rental booking, 
					such as:the pikcup and return date, pikcup and return location
					desired number of doors and if he needs a car with 
					air aconditioning or not.
					The pickup location must be in Spain"                          
			endNonFunctionalProperties
			definedBy        
				?Buyer memberOf bo#buyer[
					contactInformation hasValue ?BuyerContactInformation,
					bookingPreferences hasValue ?CarRentalBookingPreferences
				] and 
				?BuyerContactInformation memberOf bo#contactInformation [
					emailaddress hasValue ?Emailaddress
				] and        				
				?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences.
	 
		postcondition
			nonFunctionalProperties
				dc#description hasValue "The output of the service is an RAC car rental booking.
				An instance of a car rental booking have been created.
				This booking has an identificator, a ticket, and the car rental 
				booking info has been obtained from the service providers data base 
				and satisfy the booking buyer preferences.
				The car rental info has:
					pickup and return date,
					pickup and return location,
					the assigned car"				   
			endNonFunctionalProperties
			definedBy 
				exists {?Buyer, ?BuyerContactInformation, ?CarRentalBookingPreferences
					?CarRentalBookingInfo, ?PickupLocation ,?ReturnLocation ,?PickupDateAndTime, 
					?ReturnDateAndTime , ?Car, RacCarRentalServiceProvider}
				(            					
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?BuyerContactInformation,
						bookingPreferences hasValue ?CarRentalBookingPreferences				
					] and 
					?CarRentalBookingPreferences memberOf cb#carRentalBookingPreferences and
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?Emailaddress
					] and 
					?CarRentalBookingInfo memberOf cb#carRentalBookingInfo 
					[          
						pickupLocation hasValue ?PickupLocation,
						returnLocation hasValue ?ReturnLocation,
						pickupDateAndTime hasValue ?PickupDateAndTime,
						returnDateAndTime hasValue ?ReturnDateAndTime,            
						car hasValue ?Car 
					] and                
					cb#fulfillCarRentalPreferences(?carRentalBookingInfo,?CarRentalBookingPreferences)    
					and ?PickupLocation.inCountry hasValue SPAIN and
					?Car memberOf car#car and  
					RacCarRentalServiceProvider memberOf cr#carRentalServiceProvider and
					[
						cars hasValue {?Car}
					]
				) and           
				?X memberOf cb#carRentalBooking[         
					bookingIdentifier hasValue ?BookingIdentifier,
					carRentalBookingInfo hasValue ?CarRentalBookingInfo,
					buyer hasValue ?Buyer,
					seller hasValue RacCarRentalServiceProvider,
					bookingTicket hasValue ?CarRentalBookingTicket,
					paymentMethod hasValue ?Points           
				]. 

		effect
			nonFunctionalProperties
				dc#description hasValue "The booking ticket is delivered to the buyer via email 
					from the service provider to the buyer emailAddress.
					The booking ticket will include the car rental info and the buyer info"
			endNonFunctionalProperties
			definedBy
				exists {?CarRentalBooking ,?BookingIdentifier, ?CarRentalBookingTicket, 
							?bookingTicketIdentifier, ?CarRentalBookingInfo, ?Buyer, 
							?BuyerContactInformation}
				(
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?BuyerContactInformation,						
					] and 
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?Emailaddress
					] and 
					?CarRentalBooking memberOf bo#carRentalBooking
					[
						bookingIdentifier hasValue ?BookingIdentifier,
						carRentalBookingInfo hasValue ?CarRentalBookingInfo,
						buyer hasValue ?Buyer,
						seller hasValue RacCarRentalServiceProvider,
						bookingTicket hasValue ?CarRentalBookingTicket,
						paymentMethod hasValue ?Points
					] and
					?BookingIdentifier memberOf xsd#string and  
					?CarRentalBookingInfo memberOf cb#carRentalBookingInfo and 
					?CarRentalBookingTicket memberOf cb#carRentalBookingTicket
					[
						bookingTicketIdentifier hasValue ?bookingTicketIdentifier,
						carRentalBookingInfo hasValue ?CarRentalBookingInfo
					] and 
					?bookingTicketIdentifier memberOf xsd#string and                                        					       
					RacCarRentalServiceProvider memberOf cr#carRentalServiceProvider
				) and
					?X memberOf bo#onlineDelivery[
						deliveryItem hasValue {?CarRentalBookingTicket}, 
						receiver hasValue ?Buyer,
						sender hasValue RacCarRentalServiceProvider,
						onlineDeliveryMethod hasValue "email"
					].
										
	interface RacCarRentalBookingWSInterface
	
		nonFunctionalProperties
			dc#description hasValue "describes the Interface of Web Service "			
		endNonFunctionalProperties         
		
		choreography 
			
			state _"http://www.wsmo.org/ontologies/sfs/RacCarRentalBookingWSChoreography#"
			
			guardedTransitions

				/* rule 1: 
					when a carRentalBookingInfoInstance is received, a partial
					carRentalBookingInstance is created
				*/
				if (carRentalBookingInfoInstance 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)					
				then 
					carRentalBookingInstance memberOf cb#carRentalBooking[         			
						carRentalBookingInfo hasValue carRentalBookingInfo				
					]. 
					
				/* rule 2: 
					if a partial car rental booking exists and if the booking identificator
					instance and the carRentalBookingTicketInstance are received,
					then the partial booking is complete with all the attributes fill in.*/
				if ((carRentalBookingInstance memberOf cb#carRentalBooking) and 
					(bookingIdInstance memberOf bo#bookingIdentifier) and
					(carRentalBookingTicketInstance memberOf cb#carRentalBookingTicket[
						bookingTicketIdentifier hasValue bookingTicketIdInstance,          
						carRentalBookingInfo hasValue carRentalBookingInfoInstance]))
				then 
					carRentalBookingInstance memberOf cb#carRentalBooking[
						bookingIdentifier hasValue bookingIdInstance,
						bookingTicket hasValue carRentalBookingTicketInstance,
						carRentalBookingInfo hasValue carRentalBookingInfoInstance,
						buyer hasValue ?Buyer,                 
						seller hasValue RacCarRentalServiceProvider,
						paymentMethod hasValue ?Points
					]
			
		orchestration 
		
			guardedTransitions
				/*	rule 1:
					when a carRentalBookingInfoInstance is received, the service
					must make use of another service which provide the
					carRentalBookingInfo */
					if (carRentalBookingInfoInstance 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)					
				then 
					findCarRentalInfoMediator
					.
 

 3.3.4 Shuttle Booking Web service

This web service is provided by TCO Shuttle service provider. It offers shuttles from Spain airports.

Listing 23. TCo Shuttle Booking Web Service.
namespace {_"http://www.wsmo.org/webservices/sfs/TCoShuttleBookingWS#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http:://www.wsmo.org/ontologies/dateTime#",
	sh _"http:://www.wsmo.org/ontologies/sfs/shuttle#",
	sb _"http:://www.wsmo.org/ontologies/sfs/shuttleBooking#",
	bo _"http:://www.wsmo.org/ontologies/booking#",
	loc _"http:://www.wsmo.org/ontologies/location#"
}

webService _"http://www.wsmo.org/webservices/sfs/TCoShuttleBookingWS"
	
	nonFunctionalProperties
		dc#title hasValue "Online TCo 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 TCO shuttle in all Spain airports"
		dc#publisher hasValue "ATOS ORIGIN S.A."
		dc#contributor hasValue {"Alejandro López","Jose 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/webservices/sfs/TCoShuttleBookingWS"
		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"
		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http:://www.wsmo.org/ontologies/sfs/shuttleBooking",
		_"http:://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http:://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle",
		_"http:://www.wsmo.org/ontologies/location",
		_"http:://www.wsmo.org/ontologies/dateTime"
	}
	
	capability TCoShuttleBookingWSCapability
	

		precondition
			nonFunctionalProperties
				dc#description hasValue "Required input is# 
					[1] buyer information with the
					[2] shuttle preferences. 
					As precondition the buyer must have an existing email address
					and he has to indicate his preferences of a shuttle booking, 
					such as:the pickup date, pikcup airport and destination.
					The airport must be in Spain"
			endNonFunctionalProperties
			definedBy
				?Buyer memberOf bo#buyer[
					contactInformation hasValue ?BuyerContactInformation,
					bookingPreferences hasValue ?ShuttleBookingPreferences
				] and 
				?BuyerContactInformation memberOf bo#contactInformation [
					emailaddress hasValue ?Emailaddress
				]and 
				?ShuttleBookingPreferences memberOf sb#shuttleBookingPreferences.
				
		postcondition
			nonFunctionalProperties
				dc#description hasValue "The output of the service is a TCo shuttle booking.
				An instance of a shuttle booking have been created.
				This booking has an identificator, a ticket, and the shuttle 
				booking info has been obtained from the TCO service provider data base 
				and satisfy the booking buyer preferences.
				The car rental info has:
					pickup date,
					pickup airport,
					the assigned shuttle"	
			endNonFunctionalProperties
			definedBy 
				exists {?BookingIdentifier,  ?bookingTicketIdentifier, ?ShuttleBookingInfo, 
						?PickupAirport ,?PickupDateAndTime, ?Destination, ?Buyer,
						?BuyerContactInformation, ?ShuttleBookingPreferences, 
						TCoShuttleServiceProvider , ?Shuttle}
					(			
						?Buyer memberOf bo#buyer[
							contactInformation hasValue ?BuyerContactInformation,
							bookingPreferences hasValue ?ShuttleBookingPreferences						
						] and 
						?ShuttleBookingPreferences memberOf fb#shuttleBookingPreferences and
						?BuyerContactInformation memberOf bo#contactInformation [
							emailaddress hasValue ?Emailaddress
						] and 			
						?ShuttleBookingInfo memberOf sb#shuttleBookingInfo [
							pickupAirport hasValue ?PickupAirport,
							pickupDateAndTime hasValue ?PickupDateAndTime,
							destination hasValue ?Destination,
							shuttle hasValue ?Shuttle 
						] and 				
						sb#fulfillShuttlePreferences(?ShuttleBookingInfo,?ShuttleBookingPreferences) and	
						?PickupAirport.inCountry hasValue SPAIN and 
						?Destination.inCountry hasValue SPAIN and 
						?Shuttle memberOf sh#shuttle and			
						TCoShuttleServiceProvider memberOf sh#shuttleServiceProvider
						[ shuttles hasValue {?Shuttle}]
					) and         
					?X memberOf sb#shuttleBooking[
						bookingIdentifier hasValue ?BookingIdentifier,
						bookingTicket hasValue ?ShuttleBookingTicket,
						shuttleBookingInfo hasValue ?ShuttleBookingInfo,
						buyer hasValue ?Buyer,
						seller hasValue TCoShuttleServiceProvider,
						paymentMethod hasValue ?Points						
					]. 
	
		effect
			nonFunctionalProperties
				dc#description hasValue "The booking ticket is delivered to the buyer via email 
					from the service provider to the buyer emailAddress.
					The booking ticket will include the car rental info and the buyer info"
			endNonFunctionalProperties
			definedBy
				exists {?ShuttleBooking ,?BookingIdentifier,?ShuttleBookingInfo,
					?ShuttleBookingTicket, ?bookingTicketIdentifier, ?PickupAirport,
					?PickupDateAndTime, ?Destination, ?Buyer, ?BuyerContactInformation, 
					?ShuttleBookingTicket}
				(
					?ShuttleBooking memberOf sb#shuttleBooking [
						bookingIdentifier hasValue ?BookingIdentifier,
						shuttleBookingInfo hasValue ?ShuttleBookingInfo,
						buyer hasValue ?Buyer,
						seller hasValue TCoShuttleServiceProvider,
						bookingTicket hasValue ?ShuttleBookingTicket,
						paymentMethod hasValue ?Points
					] and		
					?BookingIdentifier memberOf xsd#string and 
					?ShuttleBookingInfo memberOf sb#shuttleBookingInfo and 
					?ShuttleBookingTicket memberOf sb#shuttleBookingTicket [
						bookingTicketIdentifier hasValue ?bookingTicketIdentifier,
						shuttleBookingInfo hasValue ?ShuttleBookingInfo
					] and 
					?bookingTicketIdentifier memberOf xsd#string and 
					?Buyer memberOf bo#buyer[
						contactInformation hasValue ?BuyerContactInformation,
						bookingPreferences hasValue ?ShuttleBookingPreferences
					] and 
					TCoShuttleServiceProvider memberOf sh#shuttleServiceProvider and
					?BuyerContactInformation memberOf bo#contactInformation [
						emailaddress hasValue ?Emailaddress
					]and
					?Emailaddress memberOf xsd#string
				) and
					?X memberOf bo#onlineDelivery[
						deliveryItem hasValue {?ShuttleBookingTicket},
						receiver hasValue ?Buyer, 
						sender hasValue  TCoShuttleServiceProvider,
						onlineDeliveryMethod hasValue "email"
					].
					
	interface TCoShuttleBookingWSInterface
		nonFunctionalProperties
			dc#description hasValue "describes the Interface of Web Service"
		endNonFunctionalProperties

		choreography
			
			state _"http://www.wsmo.org/ontologies/sfs/carShuttleWSChoreography#"
			
			guardedTransitions
				/* rule 1: 
					when a shuttleBookingInfoInstance is received, a partial
					shuttleBookingInstance is created	*/
				if (shuttleBookingInfoInstance memberOf sb#shuttleBookingInfo [
						pickupAirport hasValue ?PickupAirport,
						pickupDateAndTime hasValue ?PickupDateAndTime,
						destination hasValue ?Destination,
						shuttle hasValue ?Shuttle 
					] and 
					?PickupAirport memberOf fb#airport and
					?PickupAirport.inCountry hasValue loc#SPAIN 
					?PickupDateAndTime memberOf dt#dateAndTime and
					?Destination memberOf loc#location
					)
				then 
					(shuttleBookingInstance memberOf sb#shuttleBooking[				
						shuttleBookingInfo hasValue shuttleBookingInfoInstance	]).		
					
				/* rule 2: 
					if a partial shuttle booking exists and if the booking identificator
					instance and the shuttleBookingTicketInstance are received,
					then the partial booking is complete with all the attributes filled in. */
				if ((shuttleBookingInstance memberOf sb#shuttleBooking) and 
					(bookingIdInstance memberOf bo#bookingIdentifier) and
					(shuttleBookingTicketInstance memberOf sb#shuttleBookingTicket[
						bookingTicketIdentifier hasValue bookingTicketIdInstance,          
						shuttleBookingInfo hasValue shuttleBookingInfoInstance]))
				then 
					(shuttleBookingInstance memberOf sb#shuttleBooking[
						bookingIdentifier hasValue bookingIdInstance,
						bookingTicket hasValue carRentalBookingTicketInstance,
						shuttleBookingInfo hasValue shuttleBookingInfoInstance,
						buyer hasValue ?Buyer,                 
						seller hasValue TCoShuttleServiceProvider,
						paymentMethod hasValue ?Points
					]).						
			
		orchestration 
			
			guardedTransitions
				/*	rule 1:
					when a shuttleBookingInfoInstance is received, the service
					must make use of another service which provide the
					shuttleBookingInfo */
				if (shuttleBookingInfoInstance memberOf sb#shuttleBookingInfo [
						pickupAirport hasValue ?PickupAirport,
						pickupDateAndTime hasValue ?PickupDateAndTime,
						destination hasValue ?Destination,
						shuttle hasValue ?Shuttle 
					] and 
					?PickupAirport memberOf fb#airport and
					?PickupAirport.inCountry hasValue loc#SPAIN 
					?PickupDateAndTime memberOf dt#dateAndTime and
					?Destination memberOf loc#location
					)
				then 
					findShuttleBookingInfoMediator.


    

3.4 Choreography Ontologies

As explained in [Roman et. al, 2005b] , the non-functional properties of some of the concepts, relations and functions used in the choreography of a service are extended with the attributes mode and grounding . For enriching elements defined in external ontologies with these two non-functional properties, the ontology that describes the state of the service imports the relevant ontologies and redefines these elements by inheriting their definition and defining values for the two additional non-functional properties (or just one in the case of entities with the mode static or controlled ). In our scenario, there will be four ontologies that will describe the state of each web service choreography and each of them will import the necessary ontologies.

3.4.1 Flight Booking WS Choreography Ontology

This ontology describes the state of the flight booking web service choreography, and the content of this ontology is provided in Listing 24 .

Listing 24. Flight Booking WS Choreography Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/flightBookingWSChoreography#",
	dc _"http://purl.org/dc/elements/1.1#",
	fb _"http://www.wsmo.org/ontologies/sfs/flightBooking#",
	fl _"http://www.wsmo.org/ontologies/sfs/flight#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	fbws _"http://www.wsmo.org/webservices/sfs/IBFlightBookingWS#"
}

ontology _"http://www.wsmo.org/ontologies/sfs/flightBookingWSChoreography"
	nonFunctionalProperties
		dc#title hasValue "Flight Booking Ontology Choreography"
		dc#creator hasValue "ATOS ORIGIN S.A."
		dc#subject hasValue {"Flight", "Flight Booking", "Airport", "AirTrip", "Choreography"}
		dc#description hasValue "Choreography ontology for the Flight Booking web service"
		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/flightBookingWSChoreography"
		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/sfs/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"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties
		
	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http://www.wsmo.org/ontologies/location",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http://www.wsmo.org/ontologies/sfs/flight"
	}		
		
  concept airTripInfo subConceptOf fb#airTripInfo
		nonFunctionalProperties
			mode hasValue in
			grounding hasValue fbws#flightBookingCreation
		endNonFunctionalProperties

	concept flightBooking subConceptOf fb#flightBooking
		nonFunctionalProperties
			mode hasValue out
			grounding hasValue fbws#flightBookingCreation
		endNonFunctionalProperties

    

3.4.2 Hotel Room Booking WS Choreography Ontology

This ontology describes the state of the hotel booking web service choreography, and the content of this ontology is provided in Listing 25 .

Listing 25. Hotel Room Booking WS Choreography Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/hotelRoomBookingWSChoreography#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	hb _"http://www.wsmo.org/ontologies/sfs/hotelRoomBooking#",
	ho _"http://www.wsmo.org/ontologies/sfs/hotel#",
	loc _"http://www.wsmo.org/ontologies/location#",	
	xsd _"http://www.w3.org/2001/XMLSchema#", 
	hbws _"http://www.wsmo.org/webservices/sfs/MHHotelRoomBookingWS#"
}

ontology _"http://www.wsmo.org/ontologies/sfs/hotelRoomBookingWSChoreography"
	
	nonFunctionalProperties
		dc#title hasValue "Hotel Room Booking Ontology Choreography"
		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#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/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/hotel",
		_"http:://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

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

 
	concept hotelRoomBooking subConceptOf hb#hotelRoomBooking
		nonFunctionalProperties
			mode hasValue out
			grounding hasValue hbws#hotelRoomBookingCreation
		endNonFunctionalProperties
		
	concept hotelStay subConceptOf hb#hotelStay
		nonFunctionalProperties
			mode hasValue in
			grounding hasValue hbws#hotelRoomBookingCreation
		endNonFunctionalProperties

    

3.4.3 Car Rental Booking WS Choreography ontology

This ontology describes the state of the car rental booking web service choreography, and the content of this ontology is provided in Listing 26 .

Listing 26. Car Rental Booking WS Choreography Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/carRentalBookingWSChoreography#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http://www.wsmo.org/ontologies/dateTime#",
	car _"http://www.wsmo.org/ontologies/sfs/carRental#",
	cb _"http://www.wsmo.org/ontologies/sfs/carRentalBooking#",
	bo _"http://www.wsmo.org/ontologies/sfs/booking#",
	loc _"http://www.wsmo.org/ontologies/location#",
	crbws _"http://www.wsmo.org/webservices/sfs/RacCarRentalBookingWS#"
}

ontology _"http://www.wsmo.org/ontologies/sfs/carRentalBookingWSChoreography"

	nonFunctionalProperties
		dc#title hasValue "Car rental booking ontology Choreography"
		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#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/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/carRental",
		_"http:://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
	_"http://www.wsmo.org/ontologies/sfs/booking",
	_"http://www.wsmo.org/ontologies/sfs/carRental",
	_"http://www.wsmo.org/ontologies/location"
	}    
				
  concept carRentalBooking subConceptOf cb#carRentalBooking
		nonFunctionalProperties
			mode hasValue out
			grounding hasValue crbws#carRentalBookingCreation
		endNonFunctionalProperties
	
	concept carRentalBookingInfo subConceptOf cb#carRentalBookingInfo
		nonFunctionalProperties
			mode hasValue in
			grounding hasValue crbws#carRentalBookingCreation
		endNonFunctionalProperties

    

3.4.4 Shuttle Booking WS Choreography Ontology

This ontology describes the state of the shuttle booking web service choreography, and the content of this ontology is provided in Listing 27 .

Listing 27. Shuttle Booking WS Choreography Ontology.
namespace {_"http://www.wsmo.org/ontologies/sfs/shuttleBookingWSChoreography#",
	dc _"http://purl.org/dc/elements/1.1#",
	dt _"http:://www.wsmo.org/ontologies/dateTime#",
	sh _"http:://www.wsmo.org/ontologies/sfs/shuttle#",
	sb _"http:://www.wsmo.org/ontologies/sfs/shuttleBooking#",
	bo _"http:://www.wsmo.org/ontologies/booking#",
	loc _"http:://www.wsmo.org/ontologies/location#",
	sbws _"http://www.wsmo.org/webservices/sfs/TCoShuttleBookingWS#"}
}

ontology _"http://www.wsmo.org/ontologies/sfs/shuttleBookingWSChoreography"
	nonFunctionalProperties
		dc#title hasValue "Shuttle booking ontology Choreography"
		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/sfs/shuttleBookingWSChoreography"
		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/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle#",
		_"http:://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http:://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/location"}
		dc#coverage hasValue "ID:7029392 Name:World"		
		version hasValue "$Revision: 1.13 $"
	endNonFunctionalProperties

	importsOntology {_"http://www.wsmo.org/ontologies/dateTime",
		_"http:://www.wsmo.org/ontologies/sfs/shuttle#",
		_"http://www.wsmo.org/ontologies/sfs/booking",
		_"http:://www.wsmo.org/ontologies/sfs/flightBooking",
		_"http://www.wsmo.org/ontologies/location"
	}
				
	concept shuttleBooking subConceptOf sb#shuttleBooking
		nonFunctionalProperties
			mode hasValue out
			grounding hasValue sbws#shuttleBookingCreation
		endNonFunctionalProperties
	
	concept shuttleBookingInfo subConceptOf sb#shuttleBookingInfo
		nonFunctionalProperties
			mode hasValue in
			grounding hasValue sbws#shuttleBookingCreation
		endNonFunctionalProperties		

    

 

3.5 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 a more detail overview of the Stream Flows! System use case, providing the interface descriptions for Web Services which would include the choreography and orchestration and also the ontologies which serve as the state-base for these aspects, 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/

[Heijst et al., 1997] G. van Heijst, A. Th. Schreiber, B.J. Wielinga: Using Explicit Ontologies in KBS Development. International Journal of Human-Computer Studies 45: 183-192.

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

[Mizoguchi et. al, 1995] R. Mizoguchi, J. Vanwelkenhuysen: Task Ontology for reuse of problem solving knowledge. In proceedings of the Knowledge Building and Knowledge Sharing (KBKS '95), University of Twente, Schede, The Netherlands.

[Priest, 2004] C. Priest: A conceptual architecture for Semantic Web Services. In proceedings of the 3rd International Semantic Web Conference (ISWC2004), November 9-11, 2004, Hiroshima, Japan.

[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/

[Roman et al., 2005b] D. Roman, J. Scicluna, C. Feier (eds): Ontology-based Choreography and Orchestration of WSMO Services, version 0.1 available at http://www.wsmo.org/TR/d14/v0.2/

 

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/06/02 15:30:44 $

webmaster