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.
This document specifies a concrete use case for modeling Semantic Web Services with the Web Service Modeling Ontology WSMO in the domain of e-tourism. A Virtual Travel Agency sells tickets for international train tickets, and a customer defines a Goal for purchasing such a ticket. This use case has been the initial WSMO Use Case defined in previous versions of the WSMO D3.2 Deliverable - WSMO Use Case and Testing. The main focus of this document is the concrete modeling of the top WSMO components, resulting in the specification of WSML, and to test and elaborate the approach and technologies for Web Service Discovery in WSMO.
For use case modeling, we stick to the final working draft of Web Service Modeling Ontology WSMO, Version 1.0, 20 September 2004 [Roman et al., 2004].
WSMO Standard: D2 v1.0 Web Service Modeling Ontology (WSMO), last version at: http://www.wsmo.org/2004/d2/
WSMO Primer: D3.1 v0.1 WSMO Primer
Web Service Modeling Language WSML: D16 v0.2 WSMO The WSML Family of Representation Languages
WSMO Discovery: D5.1 v0.1 WSMO Discovery
This use case is defined in the domain of e-tourism: a Virtual Travel Agency sells tickets for international train tickets, and a customer defines a Goal for purchasing such a ticket. Using the conceptual framework of WSMO we specify the top-level notions of Ontologies, Goals, Web Services and Mediators for this use case.
A Web Service of a Virtual Travel Agency, short: VTA, offers end-user services for searching and buying train tickets for itineraries in Austria and in Germany. This Web Service is composed out of other Web Services, namely one for searching existing train connections, and one for purchasing train tickets online. As a user request we assume that the user wants to purchase an international train ticket. The course of the use case shall be the following:
This document is structured as follows: Section 2 gives and overview of the use case, describing the overall setting for of the use case and identifying the technical challenges arising for Semantic Web Service technologies; Section 3 defines the needed WSMO components and provides the WSML models for the distinct WSMO components of the use case along with explanations of the design and modeling decisions; Section 4 explains the WSMO Discovery as realized within this use case; finally, Section 5 concludes the use case. Appendix A provides a change tracking to previous version of the document; Appendix B provides related resources for this use case.
According to the general framework for defining use cases for WSMO defined in WSMO Use Case Overview document, section 2, this section provides a description of the setting of this use case. In [He et al., 2004], the travel agency use case is separated into two use cases - one with static discovery and one with automated discovery. With Semantic Web Services we clearly want to support automated discovery.
Imagine a “Virtual Traveling Agency”, called VTA for short, which is an end user service providing eTourism services to customers. These services can cover all kinds of information services concerned with tourism information - from information about events and sights in an area to services that support booking of flights, hotels, rental cars, etc. online. Such VTAs are already existent, currently those portals are accessible via html sites. The partners of the VTA are integrated via conventional B2B integration. By applying Semantic Web Services, a VTA will be more easily be able to configure an invoke Web Services provided by several eTourism suppliers and aggregate them into new customer services. Such VTAs providing automated eTourism services to end users via different interfaces and can be more easily reconfigured according to the actual needs..
Our VTA use case that aggregates Web Services of different tourism service providers. In a nutshell shall it provides the following functionality: A customer uses the VTA service as the entry point for his requests. These end-user services are aggregated by the VTA by invoking and combining Web Services offered by several tourism service providers. To facilitate this, there can be a so called "umbrella" contract between the service providers and the VTA for regulating usage and allowance of the Web Services. Figure 2 gives an overview (modified and extended from W3C Travel Agent Use Case overview, as defined in [He et al., 2004]).
![]() |
| Figure 2. Use Case Overview: Virtual Travel Agency based on Semantic Web Services |
The scenario outlines a general structure for VTAs that can be extended to more complex scenarios wherein the customer can be a Web Service itself, thus creating a network of composed services that offer complex tourism services. For example, one VTA can provide flight booking services for an airline union, another VTA aggregates booking service for a worldwide hotel chain, and a third VTA provides booking services for rental cars by combining the services of several worldwide operating car rental agencies. Then, another VTA uses these services for providing an end-user service for booking complete holiday trips worldwide.
In the general use case there are 3 actors. The following defines why they participate in this use case (goal) and the particular interactions they are involved in (roles).
We identify the following usage scenarios
In this use case, the VTA is the central point of interaction between the Customer and other Web Services. Regarding the technological requirements, it is obvious from the usage scenario descriptions that (1) the Web Services offered by the Service Providers have to carry sufficient descriptive information to support automated Web Service usage, and (2) that the VTA has to provide all mechanisms to handle Semantic Web Services. The basic architecture of such a VTA as a central entity for Semantic Web Services handling is shown in Figure 3. The essential functionalities of Semantic Web Service enabled VTAs – with special regard to the requirements for Semantic Web Service technologies – are:
![]() |
| Figure 3. General Architecture of a SWS-enabled VTA |
Summarizing, the VTA is a SWS-enabled B2C application that provides an end-user service following a client/server model. In order to support coherent functionality of the VTA and to ensure that the descriptions of Web Services are compatible to this, an overall framework for SWS technologies is needed. This is provided by WSMO.
Semantic Web Service technology can be applied to ease the described use case (a) for the customer (to find the VTA and resolve his goal) and (b) for the VTA that benefits from semantic description of its business partners. These ease the combination and rearrangement of existing services for the VTA and allows him to flexibly offer new services. In case composition and discovery have reached a higher level of maturity it can even be thought that the technologies (in this case discovery and composition) can be used directly by the end user. So that he himself combines the travel services offered, thus not using the extra intermediate party (the VTA).
This section exemplifies the specification of this use case within the Web Service Modeling Ontology WSMO. The provided listings use the conceptual model and syntax presented in WSMO, final version 1.0 [Roman et al., 2004]. The listings provide have been validated with the WSML Online Validation Service.
The subsequent sections provide the modeling of the resources along with detailed explanations on modeling decisions and related issues. The following tables provide an overview of the resources specified in this use case.
| WSMO component type | ontology |
| name | International Train Ticket Ontology |
| description | defines ontology constructs for the domain of international train connections |
| imported ontologies / used mediators |
- Date and Time Ontology - Location Ontology - OWL Person Mediator - OWL Fact Book Mediator |
| main constructs | main concepts: station, itinerary, ticket, trip, traintrip axioms: stationCountry, departureBeforeArrival, startNotEqualEnd |
| WSML model | Listing 1 |
| WSMO component type | ontology |
| name | Date and Time Ontology |
| description | defines notions of date and time, and general interdependencies between them |
| imported ontologies / used mediators |
none |
| main constructs | main concepts: instant, interval, date, time, dateandtime functions: julianDayNumber, daysBetween, secondsBetween, secondsFromMidnight relations: contains (for intervals) axioms: equality / before / after / between for date and time notions, integrity contraints |
| WSML model | Listing 2 |
| WSMO component type | ontology |
| name | Purchase Ontology |
| description | defines notions of purchasing, incl. buyer, seller, purchase oder, purchase partners, payment notions, etc.; based on RosettaNet , but adopted for B2C setting |
| imported ontologies / used mediators |
- Date an Time Ontology - OWL Currency Mediator |
| main constructs | main concepts: purchase, buyer, seller, contactInformation, purchaseOrder, product, paymentMethod, paymentTerms, delivery |
| WSML model | Listing 3 |
| WSMO component type | ontology |
| name | Location Ontology |
| description | defines geographical notions and postal address; extends / combines existing domain ontologies |
| imported ontologies / used mediators |
- OWL Fact Book Mediator - OWL Address Mediator - OWL Geo Mediator |
| main constructs | main concepts: country, address, city, state, border, distance; incl. concepts / attributes imported via mediators functions: distanceInKilometers, distanceInMiles, relations: equalDistance, lessThanDistance, moreThanDistance axioms: integrity contraints |
| WSML model | Listing 4 |
| WSMO component type | ontology |
| name | VTA Use Case Knowledge Base |
| description | holds all pre-defined instance data needed within the use case |
| imported ontologies / used mediators |
- Train Connection Ontology - Purchase Ontology - Date and Time Ontology - Location Ontology |
| main constructs | instances for : stations, currentDate, credit card types, locations (continents, countries, states, cities), drop ship carriers, transportations means |
| WSML model | Listing 45 |
| WSMO component type | goal |
| name | Buying a train ticket online |
| description | defines the general ontological structure of goal notions for buying tickets online according to the ontologies; this goal serves as a template for concrete goals (see table 6). |
| imported ontologies / used mediators |
- Train Connection Ontology - Purchase Ontology - Location Ontology |
| main constructs | postcondition: purchase a ticket for an itinerary (a trip and a passenger) effect: get the purchased ticket delivered to the buyer |
| WSML model | Listing 6 |
| WSMO component type | goal |
| name | Buying a train ticket from Innsbruck to Frankfurt |
| description | Buying a train ticket online for an itinerary from Innsbruck to
Frankfurt for a specific passenger with payment by credit card This goal is derived by specializing og the general goal (table 5) via an GG Mediator (table 12) |
| imported ontologies / used mediators |
- Date and Time - GG Mediator 1 |
| main constructs | postcondition: purchase a ticket for an itinerary for a trip from Innsbruck to Frankfurt on 17th July 2004 for Tim Berners Lee, departure between 6 and 7 p.m. effect: get the purchased ticket delivered to the buyer |
| WSML model | Listing 7 |
| WSMO component type | web service |
| name | OEBB Online Ticket Booking Web Service |
| description | web service for booking online train tickets for Austria and Germany, offered by the ÖBB (Austrian national train operator) |
| imported ontologies / used mediators |
- Train Connection Ontology - Purchase Ontology - Date and Time Ontology - Location Ontology |
| main constructs | precondition: a buyer, and information on the trip that a ticket is searched and sold for and the passenger for whom the ticket shall be valid assumption: if the payment method is credit card, then the credit card has to be valid (i.e. not expired) postcondition: a purchase for a ticket by ÖBB as provider, for itineraries valid for a train trip with start- and endloction in Austria or Germany and for a passenger, incl. price, and payment only via credit card effect: delivery of sold ticket by drop ship carrier or by online delivery |
| WSML model | Listing 8 |
| WSMO component type | oo mediator |
| name | importing the OWL Factbook ontology to WSML |
| description | Mediator to import an OWL address ontology into a WSML locations ontology |
| imported ontologies / used mediators |
|
| main constructs | source component: an Address Ontology in OWL target component: Location Ontology (Table 4) mediation service: not specified |
| WSML model | Listing 9 |
| WSMO component type | oo mediator |
| name | importing the OWL Currency ontology to WSML |
| description | Mediator to import an OWL currency ontology into a WSML purchase order ontology |
| imported ontologies / used mediators |
|
| main constructs | source component: an Currency Ontology in OWL target component: Purchase Ontology (Table 3) mediation service: not specified |
| WSML model | Listing 10 |
| WSMO component type | oo mediator |
| name | importing the OWL Factbook ontology to WSML |
| description | Mediator to import an OWL factbook ontology into a WSML ontology |
| imported ontologies / used mediators |
|
| main constructs | source component: the OWL Factbook (in OWL) target component: Location Ontology (Table 4) mediation service: not specified |
| WSML model | Listing 11 |
| WSMO component type | oo mediator |
| name | importing the OWL Person ontology to WSML |
| description | Mediator to import an OWL person ontology into a WSML ontology |
| imported ontologies / used mediators |
|
| main contructs | source component: a Person ontology (in OWL) target component: Internaction Train Connection Ontology (Table 1) mediation service: not specified |
| WSML model | Listing 12 |
| WSMO component type | gg mediator |
| name | GG Mediator that that links the general Goal for buying tickets with the concrete Goal for buying a train ticket from Innsbruck to Frankfurt |
| description | Restricts the trip to train trips within Austria and Germany |
| imported ontologies / used mediators |
all ontologies and mediators are inherited from the source component; no additional ontologies or OO Mediators are needed |
| main constructs | source component: general goal for buying tickets (Table 5)
target component: concrete Goal for buying a train ticket (Table 6) mediation service: not specified |
| WSML model | Listing 13 |
With regard to modularized ontologies as a basic design principle of WSMO, we define four separate domain ontologies as the the terminology definitions for the use case:
The ontologies specified in the following are intended to be "real ontologies" in the sense that they describe the specific domain as a shared conceptualization in a sufficient manner. This allows to reuse this ontologies in different settings and use cases - for example, notions or date and time or a general purchase 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. Appendix B provides the original ontologies that are used within the domain ontologies specified in this section.
At this point in time, WSMO does not provide a technique to link to large set of instances. Therefore, in this version of the ontology we only include some example instances, which holds for the other ontologies defined in this use case as well. For reader's convenience, the relevant instances for this use case are gathererd in the VTA Use Case Knowlege Base, a separate ontology. The inclusion of links to large set of instances will be considered in future versions of WSMO.
The "International Train Ticket" Ontology defines a train trip and the surrounding concepts as defined the WSML definition of the ontology shown in Listing 1.
The definition of the ontology is based on the travel itinerary ontology from the DAML ontology library, which is also available in Appendix B6 in OWL abstract syntax. The ontology defines travel itineraries for trips by plane. Our ontology reuses the itinerary and flight concepts and adapt them to define train trips, also introducing new concepts such as train station. The international train ticket ontology also makes use of the person ontology defined at http://daml.umbc.edu/ontologies/ittalks/person (Appendix B1), which defines a subset of vCard. The person concept is used to define the passenger information for an itinerary. We did not find any other available ontologies that model the domain of train tickets or itineraries. The first version of the harmonize ontology for the tourism domain focuses on the events and accommodations subdomains. We will take into account future versions of the harmonise ontology, as they are likely to include the travelling subdomain.
namespace <<http://www.wsmo.org/ontologies/trainConnection#>>
dc:<<http://purl.org/dc/elements/1.1#>>
dt:<<http://www.wsmo.org/ontologies/dateTime#>>
prs:<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlPersonMediator.wsml>>
loc:<<http://www.wsmo.org/ontologies/location#>>
geo:<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml#>>
xsd:<<http://www.w3.org/2001/XMLSchema#>>
ontology <<http://www.wsmo.org/ontologies/trainConnection>>
nonFunctionalProperties
dc:title hasValue "International Train Connections Ontology"
dc:creator hasValue "DERI International"
dc:subject hasValues {"Train", "Itinerary", "Train Connection", "Ticket"}
dc:description hasValue "International Train Connections"
dc:publisher hasValue "DERI International"
dc:contributor hasValues {"Michael Stollberg",
<<http://homepage.uibk.ac.at/~C703225/foaf.rdf>>,
<<http://homepage.uibk.ac.at/~c703240/foaf.rdf>>,
<<http://homepage.uibk.ac.at/~c703262/foaf.rdf>>}
dc:date hasValue "2004-10-08"
dc:type hasValue <<http://www.wsmo.org/2004/d2#ontologies>>
dc:format hasValue "text/html"
dc:identifier hasValue <<http://www.wsmo.org/ontologies/trainConnection>>
dc:source hasValue <<http://www.daml.org/2001/06/itinerary/itinerary-ont>>
dc:language hasValue "en-US"
dc:relation hasValues {<<http://www.daml.org/2001/06/itinerary/itinerary-ont>>,
<<http://daml.umbc.edu/ontologies/ittalks/person>>,
<<http:://www.wsmo.org/ontologies/dateTime>>,
<<http:://www.wsmo.org/ontologies/location>>,
<<http://www.daml.org/2001/02/geofile/geofile-ont>>,
<<http://www.daml.org/2001/02/geofile/geofile-ont>>}
dc:coverage hasValue "ID:7029392 Name:World"
dc:rights hasValue <<http://www.deri.org/privacy.html>>
version hasValue "$Revision: 1.6 $"
endNonFunctionalProperties
importedOntologies {<<http://www.wsmo.org/ontologies/dateTime>>,
<<http://www.wsmo.org/ontologies/location>>}
usedMediators {<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlPersonMediator.wsml>>,
<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlFactBookMediator.wsml>>}
concept station subConceptOf geo:geographicLocation
nonFunctionalProperties
dc:description hasValue "Train station"
endNonFunctionalProperties
code ofType xsd:string
nonFunctionalProperties
dc:description hasValue "Code of the station"
endNonFunctionalProperties
borderToCountry ofType loc:border
nonFunctionalProperties
dc:description hasValue "For stations located at the border"
endNonFunctionalProperties
concept ticket
nonFunctionalProperties
dc:description hasValue "a ticket for an itinerary"
endNonFunctionalProperties
itinerary ofType itinerary
provider ofType po:partnerDescription
price ofType po:price
concept itinerary
nonFunctionalProperties
dc:description hasValue "An itinerary between two locations"
endNonFunctionalProperties
passenger ofType prs:person
nonFunctionalProperties
dc:description hasValue "prs:person is a subset of vCard (http://www.ietf.org/rfc/rfc2425.txt)"
endNonFunctionalProperties
recordLocatorNumber ofType xsd:string
trip ofType trip
concept trip
start ofType loc:location
end ofType loc:location
via ofType set loc:location
departure ofType dt:dateAndTime
arrival ofType dt:dateAndTime
duration ofType dt:interval
distance ofType loc:distance
concept trainTrip subConceptOf trip
nonFunctionalProperties
dc:description hasValue "A train trip"
endNonFunctionalProperties
start ofType station
end ofType station
via ofType set station
seat ofType xsd:string
train ofType xsd:string
class ofType xsd:string
axiom stationCountry
nonFunctionalProperties
dc:description hasValue "Integrity constraint: if a station is located in a place
which is located in a given country, the country of the station is the
same"
endNonFunctionalProperties
definedBy
constraint
?S[
locatedIn hasValue ?L,
country hasValue ?C
]memberOf station
and not ?L[
country hasValue ?C
]memberOf loc:location .
axiom departureBeforeArrival
nonFunctionalProperties
dc:description hasValue "Integrity Constraint: departure has to be before arrival"
endNonFunctionalProperties
definedBy
constraint
?T[
departure hasValue ?D,
arrival hasValue ?A
]memberOf trip
and ?A <= ?D.
axiom startNotEqualEnd
nonFunctionalProperties
dc:description hasValue "Integrity Constraint: the start and end of a trip have to be different"
endNonFunctionalProperties
definedBy
constraint
?T[
start hasValue ?Start,
end hasValue ?End
]memberOf trip
and ?Start = ?End.
|
The "Date and Time Ontology" in Listing 2 defines models for dates (i.e. certain days) and time (i.e. definition of certain points in time). Further, it defines axioms that represent conventional aspects of date and time, like ´before´ and ´after´, etc. In the use case, this is needed to determine validity of train connections, e.g for ensuring that a ticket is not for an itinerary that is in the past. It also can be used generally for expressing dates and time and relationships between them.
The main ontology taken into consideration for developing this conceptual model of Date and Time is an entry sub-ontology of time, available at http://www.isi.edu/~pan/damltime/time-entry.owl. This ontology uses abstract temporal concepts like instant, interval and event and uses the Gregorian calendar as representation (partly using own encoding and partly using XSD encoding). Axioms are defined in first order logic in the accompanying paper [Pan and Hobbs]; there also is a LISP version of these axioms available at http://www.cs.rochester.edu/~ferguson/daml/daml-time-20030728.lisp. Other ontologies like COBRA calenderclock ontology (http://daml.umbc.edu/ontologies/cobra/0.4/calendarclock) are only a straight forward representation of the Gregorian calendar, without any abstraction of concepts and description of axioms. Widely used concrete representations for date and time are defined in ISO 8601 (Numeric representation of Dates and Time) and in the XML Schema Definition (http://www.w3.org/TR/xmlschema-2/), which is based on ISO 8601. In a later stage when it is clear which build in predicates can be used we will add a syntactical mapping to xsd:dateTime.
namespace
dc: <<http://purl.org/dc/elements/1.1#>>
targetNameSpace: <<http://www.wsmo.org/ontologies/dateTime#>>
ontology <<http://wsmo.org/ontologies/dateTime/>>
nonFunctionalProperties
dc:title hasValue "Date and Time Ontology"
dc:creator hasValue "DERI International"
dc:subject hasValues {"Date", "Time", "Date and Time Algebra"}
dc:description hasValue "generic representation of data and time including basic algebra"
dc:publisher hasValue "DERI International"
dc:date hasValue "2004-10-04"
dc:type hasValue <<http://www.wsmo.org/2004/d2/v1.0/#ontologies>>
dc:format hasValue "text/html"
dc:language hasValue "en-US"
dc:relation hasValues {<<http://www.isi.edu/~pan/damltime/time-entry.owl>>,
<<http://www.w3.org/TR/xmlschema-2/>>}
dc:coverage hasValue "World"
dc:rights hasValue <<http://www.deri.org/privacy.html>>
version hasValue "$Revision: 1.2 $"
endNonFunctionalProperties
comment: conceptDefinitions
concept instant
nonFunctionalProperties
dc:description hasValue "An instant represents a particular point in time and is the super concept
of all concrete representations such as the Gregorian calendar"
endNonFunctionalProperties
concept interval
nonFunctionalProperties
dc:description hasValue "An interval represents a duration between 2 points in time"
endNonFunctionalProperties
start ofType instant
end ofType instant
concept date subConceptOf instant
nonFunctionalProperties
dc:description hasValue "concept date and its representation according to the Gregorian Calendar"
endNonFunctionalProperties
dayOfMonth ofType dayOfMonth
monthOfYear ofType monthOfYear
year ofType year
concept dayOfMonth subConceptOf xsd:integer
nonFunctionalProperties
dc:description hasValue "day of a month is represented by an integer"
endNonFunctionalProperties
concept year subConceptOf xsd:integer
nonFunctionalProperties
dc:description hasValue "year is represented by an integer"
endNonFunctionalProperties
concept monthOfYear subConceptOf xsd:integer
nonFunctionalProperties
dc:description hasValue "monthOfYear is represented by an integer"
endNonFunctionalProperties
concept time
hourOfDay ofType hourOfDay
minuteOfHour ofType minuteOfHour
secondOfMinute ofType secondOfMinute
concept secondOfMinute subConceptOf xsd:integer
nonFunctionalProperties
dc:description hasValue "a secondOfMinute is represented by an integer"
endNonFunctionalProperties
concept minuteOfHour subConceptOf xsd:integer
nonFunctionalProperties
dc:description hasValue "a minuteOfHour is represented by an integer"
endNonFunctionalProperties
concept hourOfDay subConceptOf xsd:integer
nonFunctionalProperties
dc:description hasValue "a hourOfDay is represented by an integer"
endNonFunctionalProperties
concept dateAndTime subConceptOf instant
nonFunctionalProperties
dc:description hasValue "concept date and time and representing together a specific point of time (instant)"
endNonFunctionalProperties
date ofType date
time ofType time
comment: functionDefintions
function julianDayNumber
nonFunctionalProperties
dc:description hasValue "The Julian Day Count is a uniform count of days from a remote epoch
in the past (about 4712 BC). At this instant, the Julian Day Number is 0. Once
you have the Julian Day Number of a particular date in history, it is easy to
calculate time elapsed between it and any other Julian Day Number"
dc:source hasValue <<http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html>>
dc:description hasValue "For each instant there should exist a corresponding Julian Day
Number, however it may not be always defined only by this binary predicate,
e.g. if the instant is represented as Gregorian Date and it is a date between
1582 and 1924 a country must be given as third parameter (since e.g. Greece
changed no earlier then 9th of March 1924 from the Julian to the Gregorian Calendar)"
comment: The following dc:source indicates which country changed in which year
comment: from the Julian to the Gregorian Calendar
dc:source hasValue <<http://members.brabant.chello.nl/~h.reints/cal/whenjul2greg.htm>>
endNonFunctionalProperties
instant ofType instant
range ofType xsd:integer
function daysBetween
nonFunctionalProperties
dc:description hasValue "(Instant1, Instant2, Difference) is a triple of the ternary relation
corresponding to this function iff Instant1 and Instant2 are members of the concept
instant (particular point in time) and Instant2 is Difference days after Instant1."
endNonFunctionalProperties
instant1 ofType instant
instant2 ofType instant
range ofType xsd:integer
function secondsBetween
nonFunctionalProperties
dc:description hasValue "(Instant1, Instant2, Difference) is a triple of the ternary relation
corresponding to this function iff Instant1 and Instant2 are members of the concept
instant (particular point in time) and Instant2 is Differnce seconds after Instant1."
endNonFunctionalProperties
instant1 ofType instant
instant2 ofType instant
range ofType xsd:integer
function secondsFromMidnight
nonFunctionalProperties
dc:description hasValue "(Time, SecondsFromMidnight) is a tuple of the binary relation
corresponding to this function iff SecondsFromMidnight are the seconds elapsed from
00:00:00 of the same day.
This simplifies the axiomatization of the difference between two given times"
endNonFunctionalProperties
time ofType time
range ofType xsd:integer
comment: relationDefintions
relation contains
nonFunctionalProperties
dc:description hasValue "(Interval, X) is a tuple of the binary relation
corresponding to this function iff Interval contains X and X is an instant or an
interval"
endNonFunctionalProperties
interval ofType interval
intervalOrInstant ofType instantOrInterVal
concept instantOrInterVal
definedBy
forAll ?x (?x memberOf instantOrInterVal <-> ?x memberOf instant or ?x memberOf interval).
comment: axiomDefinitions
axiom invalidMonthOfYear
nonFunctionalProperties
dc:description hasValue "integrity constraint for valid monthOfYear"
endNonFunctionalProperties
definedBy
constraint
?X memberOf monthOfYear and
(?X < 1 or X > 12).
axiom invalidDayOfMonth
nonFunctionalProperties
dc:description hasValue "integrity constraint for valid dayOfMonths"
endNonFunctionalProperties
definedBy
constraint
?X memberOf dayOfMonth and
(X < 1 or X > 31).
axiom validDate
nonFunctionalProperties
dc:description hasValue "Integrity Constraints for date.
The dayOfMonth is valid in dependency of the actual monthOfYear, in a leap
year the month 2 of the Year has 29 days otherwise 28. For leap years holds
the following: Every year divisible by 4 is a leap year. However, every
year divisible by 100 is not a leap year. However, every year divisible by
400 is a leap year after all.
Note: This axiomatization is still imprecise, since the country plays a role
when defining a valid day of the month: E.g. 1712 was a double leap year
in Sweden, i.e. February 1712 had 30 days in Sweden.
The mathematical function symbol modulo is assumed to be defined elsewhere
as that it returns the remainder after an integer division of its
first argument by its second"
dc:source hasValue <<http://www.tondering.dk/claus/cal/node3.html>>
endNonFunctionalProperties
definedBy
constraint
?X memberOf date and (
(?X.dayOfMonth > 28 and ?X.monthOfYear = 2 and
not ((modulo(?X.year ,4) = 0 and not modulo(?X.year ,100) = 0)
or modulo(?X.year ,400) = 0))
or (?X.dayOfMonth > 29 and ?X.monthOfYear = 2)
or (?X.dayOfMonth > 30 and ?X.monthOfYear = 4)
or (?X.dayOfMonth > 30 and ?X.monthOfYear = 6)
or (?X.dayOfMonth > 30 and ?X.monthOfYear = 9)
or (?X.dayOfMonth > 30 and ?X.monthOfYear = 11)).
axiom invalidHourOfDay
nonFunctionalProperties
dc:description hasValue "integrity constraint for valid hourOfDay:"
endNonFunctionalProperties
definedBy
constraint
?X memberOf hourOfDay and
(?X < 0 or ?X >= 24).
axiom invalidMinuteOfHour
nonFunctionalProperties
dc:description hasValue "integrity constraint for valid minuteOfHour:"
endNonFunctionalProperties
definedBy
constraint
?X memberOf minuteOfHour and
(?X < 0 or ?X >= 60).
axiom invalidSecondOfMinute
nonFunctionalProperties
dc:description hasValue "integrity constraint for valid secondOfMinute:"
endNonFunctionalProperties
definedBy
constraint
?X memberOf secondOfMinute and
(?X < 0 or ?X >= 60).
axiom invalidInterval
definedBy
constraint
?X memberOf interval and ?X.start >= ?X.end.
axiom equalityDate
nonFunctionalProperties
dc:description hasValue "computes equality of a date"
endNonFunctionalProperties
definedBy
X = ?Y <-
?Y memberOf date and ?X memberOf date and
?X.dayOfMonth = ?Y.dayOfMonth and
?X.monthOfYear = ?Y.monthOfYear and
?X.year = ?Y.year.
axiom beforeDate
nonFunctionalProperties
dc:description hasValue "computes if a given date X is before another date ?Y"
endNonFunctionalProperties
definedBy
?X < ?Y <-
?Y memberOf date and ?X memberOf date and
((?X.dayOfMonth = ?Y.dayOfMonth and ?X.monthOfYear = ?Y.monthOfYear and ?X.year = ?Y.year) or
(?X.monthOfYear < ?Y.monthOfYear and ?X.year = ?Y.year) or
(?X.year < ?Y.year)).
axiom afterDate
nonFunctionalProperties
dc:description hasValue "defined as inverse of beforeDate"
endNonFunctionalProperties
definedBy
?X > ?Y <- ?Y < ?X.
axiom julianDayNumber
nonFunctionalProperties
dc:description hasValue "This Axiom describes how the correct Julian Day Number
can be computed for a given Gregorian Calendar Date. Note
that the Gregorian Calendar was introduced in 15.October 1582.
however until 1919 this axiomatization is not unambiguous since the country
should be taken into to account as 3rd parameter (e.g. Greece
changed at the 9 Mar 1924 from the Julian to the Gregorian calendar).
Details to the axiomatization
If the month is January or February we subtract 1 from the year to get a new Year
and add 12 to the month to get a new Month. (Thus, we are thinking of January and
February as being the 13th and 14th month of the previous year and March is the
start of the year, this simplifies the calculation considering the leap year)
Within the calculation the fractional part of all results has to be dropped,
here we use the function symbol floor() [it can be rewritten as predicate,
however it gets less readable]
A more lengthy description of this axiomatization can be found at
http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html"
dc:source hasValues {<<http://quasar.as.utexas.edu/BillInfo/JulianDatesG.html>>,
<<http://members.brabant.chello.nl/~h.reints/cal/whenjul2greg.htm>>}
endNonFunctionalProperties
definedBy
julianDayNumber[instant hasValue ?X, result hasValue ?JDN]
<-
?X memberOf date and
((
?X.monthOfYear < 3 and
?Y = ?X.year -1 and
?M = ?X.monthOfYear + 12
)
or
(
?X.monthOfYear > 2 and
?Y = ?X.year and
M = ?X.monthOfYear
))
and
?D = ?X.dayOfMonth and
?A = floor(?Y / 100) and
?B = floor(?A / 4) and
?C = 2 - ?A + ?B and
?E = floor(365.25 * (?Y + 4716)) and
?F = floor(30.6001 * (?M + 1)) and
?JDN = ?C + ?D + ?E + ?F - 1524.
axiom daysBetweenDates
nonFunctionalProperties
dc:description hasValue "the difference in days between 2 dates"
endNonFunctionalProperties
definedBy
daysBetween[instant1 hasValue ?D1, instant2 hasValue ?D2, result hasValue ?X] <-
?D1 memberOf date and ?D2 memberOf date and
?X = julianDayNumber(?D1) - julianDayNumber(?D2).
axiom equalityTime
nonFunctionalProperties
dc:description hasValue "computes if two given times are the same"
endNonFunctionalProperties
definedBy
?X = ?Y <-
?X memberOf time and ?Y memberOf time and
?X.secondOfMinute = ?Y.secondOfMinute and
?X.minuteOfHour = ?Y.minuteOfHour and
?X.hourOfDay = ?Y.hourOfDay.
axiom beforeTime
nonFunctionalProperties
dc:description hasValue "computes if a given time ?X is before another time ?Y"
endNonFunctionalProperties
definedBy
?X < ?Y <-
?X memberOf time and ?Y memberOf time and
((?X.secondOfMinute < ?Y.secondOfMinute and ?X.minuteOfHour = ?Y.minuteOfHour and ?X.hourOfDay = ?Y.hourOfDay) or
(?X.minuteOfHour < ?Y.minuteOfHour and ?X.hourOfDay = ?Y.hourOfDay) or
(?X.hourOfDay < ?Y.hourOfDay)).
axiom afterTime
nonFunctionalProperties
dc:description hasValue "defined as inverse of beforeTime"
endNonFunctionalProperties
definedBy
?X > ?Y <- ?Y < ?X.
axiom secondsFromMidnight
nonFunctionalProperties
dc:description hasValue "computes the amount of seconds from midnight"
endNonFunctionalProperties
definedBy
secondsFromMidnight[time hasValue ?T, result hasValue ?X] <-
?T memberOf time and
?X = ?T.secondOfMinute + (?T.minuteOfHour*60) + (?T.hourOfDay*60*60).
axiom secondsBetweenTimes
nonFunctionalProperties
dc:description hasValue "the difference in seconds between 2 times"
endNonFunctionalProperties
definedBy
secondsBetween[instant1 hasValue ?T1, instant2 hasValue T2, result hasValue ?X] <-
?T1 memberOf time and ?T2 memberOf time and
?X = secondsFromMidnight(?T1) - secondsFromMidnight(?T2).
axiom equalityDateAndTime
nonFunctionalProperties
dc:description hasValue "computes if Date and Time are equal"
endNonFunctionalProperties
definedBy
?X = ?Y <-
?X memberOf dateAndTime and ?Y memberOf dateAndTime and
?X.date = ?Y.date and
?X.time = ?Y.time.
axiom beforeDateAndTime
nonFunctionalProperties
dc:description hasValue "computes if a given date and time ?X is before another date and time ?Y"
endNonFunctionalProperties
definedBy
?X < ?Y <-
?X memberOf dateAndTime and ?Y memberOf dateAndTime and
((?X.date = ?Y.date and ?X.time < ?Y.time) or
?X.date < ?Y.date).
axiom afterDateAndTime
nonFunctionalProperties
dc:description hasValue "defined as inverse of beforeDateAndTime"
endNonFunctionalProperties
definedBy
?X > ?Y <- ?X
memberOf dateAndTime and ?Y memberOf dateAndTime and
?Y < ?X.
axiom secondsBetweenDateAndTime
nonFunctionalProperties
dc:description hasValue "computes the difference in seconds between two different DateAndTime"
endNonFunctionalProperties
definedBy
secondsBetween[instant1 hasValue ?D1, instant2 hasValue ?D2, result hasValue ?X] <-
?D1 memberOf dateAndTime and ?D2 memberOf dateAndTime and
?X = secondsFromMidnight(?D1.time) + julianDayNumber(?D1.date) * 24 * 60 * 60 -
(secondsFromMidnight(?D2.time) + julianDayNumber(?D2.date) * 24 * 60 * 60).
axiom daysBetweenDateAndTime
nonFunctionalProperties
dc:description hasValue "the difference in days between two different DateAndTime"
endNonFunctionalProperties
definedBy
daysBetween[instant1 hasValue ?T1, instant2 hasValue T2, result hasValue ?X] <-
D1 memberOf dateAndTime and D2 memberOf dateAndTime and
?X = daysBetween(D1.date, D2.date).
axiom intervalContainment
nonFunctionalProperties
dc:description hasValue "computes if a interval ?X contains a second interval ?Y"
endNonFunctionalProperties
definedBy
contains(?X, ?Y) <-
?X memberOf interval and ?Y memberOf interval and
(?X.start < ?Y.start or ?X.start = ?Y.start) and
(?X.end > ?Y.end or ?X.end = ?Y.end).
axiom instantContainment
nonFunctionalProperties
dc:description hasValue "computes if a interval ?X contains a instant ?Y"
endNonFunctionalProperties
definedBy
contains(?X, ?Y) <-
?X memberOf interval and ?Y memberOf instant and
(?X.start < ?Y or ?X.start = ?Y) and
(?X.end > ?Y or ?X.end = ?Y).
|
The Purchase Ontology describes the domain of purchasing within a B2C scenario. In order to base this ontology on existing, commonly accepted conceptual models for purchasing, RosettaNet's PIP3A4 "PurchaseOrderRequest" [RosettaNet] has been transformed into a WSMO ontology. However, RosettaNet as well as the other existing conceptual models for purchasing like ebXML [ebXML] and EDIFACT [EDIFACT] are designed for B2B purchase scenarios and thus not applicable for B2C settings as the one of this use case. Because of this, the Purchase Ontology defined in the folloing listing describes ontological notions relevant for purchasing within a B2C setting. We refer to the WSML representation of RosettaNet's PIP3A4 "PurchaseOrderRequest" which is provided in listing B5, Appendix B, denoting the realted concepts within the realtion attribute of the non functional properties.
The main constructs of the Purchase Ontology are :
namespace <<http://www.wsmo.org/ontologies/purchase#>>
dc:<<http://purl.org/dc/elements/1.1#>>
cu:<<http://www.wsmo.org/2004/d3/d3.2/v0.1/20040628/resources/owlCurrencyMediator.wsml#>>
dt:<<http://www.wsmo.org/ontologies/dateTime#>>
loc:<<http://www.wsmo.org/ontologies/location#>>
prs:<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlPersonMediator.wsml>>
rn:<<http://www.wsmo.org/ontologies/rosettanet#>>
xsd:<<http://www.w3.org/2001/XMLSchema#>>
targetnamespace: <<http://www.wsmo.org/ontologies/purchase#>>
ontology <<http://wsmo.org/ontologies/purchase/>>
nonFunctionalProperties
dc:title hasValue "B2C Purchase Ontology"
dc:creator hasValue "DERI International"
dc:subject hasValues {"Purchase", "Purchase Order", "Buyer", "Seller", "Product", "Price", "Payment method", "Delivery"}
dc:description hasValue "general ontology for purchasing in B2C settings, related to 3A4 PIP of RosettaNet"
dc:publisher hasValue "DERI International"
dc:contributor hasValues {<<http://sw.deri.ie/~haller/foaf.rdf>>, "Michael Stollberg"}
dc:date hasValue "2004-10-27"
dc:type hasValue <<http://www.wsmo.org/2004/d2/#ontologies>>
dc:format hasValue "text/html"
dc:language hasValue "en-US"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet/>>,
<<http://www.daml.ecs.soton.ac.uk/ont/currency.daml>>,
<<http://www.wsmo.org/ontologies/dateTime>>,
<<http://www.wsmo.org/ontologies/location>>}
dc:rights hasValue <<http://www.deri.org/privacy.html>>
version hasValue "$Revision: 1.7 $"
endNonFunctionalProperties
importedOntologies {<<http://www.wsmo.org/ontologies/dateTime.wsml>>,
<<http://www.wsmo.org/ontologies/location.wsml>>}
usedMediators
ooMediator {<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlCurrencyMediator.wsml>>,
<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlPersonMediator.wsml>>}
/*
* Purchase, Purchase Order
*/
concept purchase
nonFunctionalProperties
dc:description hasValue "a purchase for a product between a buyer & a seller"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#pip3A4Purchase>>}
endNonFunctionalProperties
purchaseIdentifier ofType identifier
purchaseorder ofType purchaseOrder
buyer ofType buyer
seller ofType seller
concept identifier subConceptOf xsd:string
nonFunctionalProperties
dc:description hasValue "Unique identifier for a thing,
i.e. a numeric value or alphanumeric value"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#proprietaryDocumentIdentifier>>}
endNonFunctionalProperties
concept purchaseOrder
nonFunctionalProperties
dc:description hasValue "The collection of business properties that
describes the product, payment, and delivery terms of a purchase"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#purchaseOrder>>}
endNonFunctionalProperties
product ofType set product
payment ofType paymentMethod
delivery ofType delivery
contractDate ofType dt:date
paymentTerms ofType paymentTerms
totalPrice ofType financialAount
/*
* Purchase Partners
*/
concept buyer
nonFunctionalProperties
dc:description hasValue "the partner that buys a product in a purchase"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#buyer>>}
endNonFunctionalProperties
contactInformation ofType contactInformation
billToAddress ofType loc:address
shipToAddress ofType loc:address
hasPayment ofType set paymentMethod
concept seller
nonFunctionalProperties
dc:description hasValue "the partner that sells a product in a purchase"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#seller>>}
endNonFunctionalProperties
contactInformation ofType contactInformation
acceptsPaymentMethod ofType set paymentMethod
concept contactInformation
nonFunctionalProperties
dc:description hasValue "The collection of business properties that
provide communication and address information for
contacting a person, organization or business."
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#contactInformation>>}
endNonFunctionalProperties
name ofType xsd:string
emailaddress ofType xsd:string
faxnumber ofType xsd:string
telephonenumber ofType xsd:string
physicalAddress ofType loc:address
/*
* Product
*/
concept product
nonFunctionalProperties
dc:description hasValue "The collection of business properties that
describes a product."
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#productLineItem>>}
endNonFunctionalProperties
productidentification ofType productIdentification
item ofType set productItem
provider ofType seller
price ofType financialAmount
concept productItem
nonFunctionalProperties
dc:description hasValue "a placeholder for an item that is provided for sale by a
seller. Any concept can be declared as a subconcept of productItem"
endNonFunctionalProperties
concept financialAmount
nonFunctionalProperties
dc:description hasValue "The collection of business properties
that describe the monetary amount defined by a specified currency."
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#financialAmount>>}
endNonFunctionalProperties
monetaryamount ofType xsd:float
globalcurrencycode ofType cu:currency
invoicechargetypecode ofType xsd:string
nonFunctionalProperties
dc:description hasValue "Code identifying the values for the types of charges contained in an invoice."
endNonFunctionalProperties
/*
* Payment Methods
*/
concept paymentMethod
nonFunctionalProperties
dc:description hasValue "superconcept of payment methods"
endNonFunctionalProperties
concept creditCard subConceptOf paymentMethod
nonFunctionalProperties
dc:description hasValue "payment method credit card"
endNonFunctionalProperties
type ofType creditCardType
creditCardNumber ofType xsd:integer
holder ofType xsd:string
expMonth ofType dt:monthOfYear
expYear ofType dt:year
concept creditCardType
nonFunctionalProperties
dc:description hasValue "specifies type of credit card. This is a unique code
defined by the first 4 digits of the credit card number;
thus, we we would have the knowledge for decoding these digits, the
credit card type could be inferred from the credit card number."
endNonFunctionalProperties
concept invoice subConceptOf paymentMethod
nonFunctionalProperties
dc:description hasValue "payment method invoice"
endNonFunctionalProperties
invoiceNumber ofType xsd:string
payer ofType buyer
receiver ofType seller
receiverAccount ofType account
concept check subConceptOf paymentMethod
nonFunctionalProperties
dc:description hasValue "payment method check"
endNonFunctionalProperties
checkNumber ofType xsd:integer
drawer ofType buyer
receiver ofType seller
drawerAccount ofType account
concept cash subConceptOf paymentMethod
nonFunctionalProperties
dc:description hasValue "payment method cash"
endNonFunctionalProperties
payer ofType buyer
receiver ofType seller
concept account
nonFunctionalProperties
dc:description hasValue "The collection of business properties that
describe a bank account."
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#accountDescription>>}
endNonFunctionalProperties
accountnumber ofType xsd:string
holder ofType prs:person
provider ofType financialInstitute
globalaccountclassificationcode ofType xsd:string
nonFunctionalProperties
dc:description hasValue "Account classification indicating
its functionality, e.g., credit card or a giro account."
endNonFunctionalProperties
concept financialInstitute
nonFunctionalProperties
dc:description hasValue "an organization that provides financial services."
endNonFunctionalProperties
name ofType xsd:string
contactInformation ofType contactInformation
concept bank subConceptOf financialInstitute
nonFunctionalProperties
dc:description hasValue "specifies a bank (financial institute)"
endNonFunctionalProperties
bankIdentifierCode ofType xsd:string
nonFunctionalProperties
dc:description hasValue "the (inter)national code of the bank"
endNonFunctionalProperties
/*
* Payment Terms
*/
concept paymentTerms
nonFunctionalProperties
dc:description hasValue "The collection of business properties that describe payment terms."
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#paymentTerms>>}
endNonFunctionalProperties
discounts ofType discounts
globalpaymentconditioncode ofType xsd:string
nonFunctionalProperties
dc:description hasValue "A code identifying the conditions
under which payment will be made."
endNonFunctionalProperties
nettermsday ofType dt:dayOfMonth
nonFunctionalProperties
dc:description hasValue "The specific day of the month
a payment is due without incurring late charges."
endNonFunctionalProperties
nettermsdays ofType dt:interval
nonFunctionalProperties
dc:description hasValue "The number of days within
which a payment is due without incurring late charges."
endNonFunctionalProperties
percentdue ofType xsd:float
nonFunctionalProperties
dc:description hasValue "The amount owed expressed as a percentage."
endNonFunctionalProperties
concept discounts
nonFunctionalProperties
dc:description hasValue "The collection of business properties that describe payment discounts."
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#discounts>>}
endNonFunctionalProperties
discountday ofType dt:dayOfMonth
nonFunctionalProperties
dc:description hasValue "The specific day of the month a
payment is required in order to receive a discount."
endNonFunctionalProperties
discountdays ofType dt:interval
nonFunctionalProperties
dc:description hasValue "The number of days within which a
payment is required in order to receive a discount."
endNonFunctionalProperties
discountpercent ofType xsd:float
nonFunctionalProperties
dc:description hasValue "The financial percent representing a reduction to the total amount due."
endNonFunctionalProperties
/*
* Delivery
*/
concept delivery
nonFunctionalProperties
dc:description hasValue "superconcept of delivery methods. one instance of a
delivery is a main function of the marketplace in addition to purchase contracting."
endNonFunctionalProperties
deliveryItem ofType set product
sender ofType seller
receiver ofType buyer
concept dropShip subConceptOf delivery
nonFunctionalProperties
dc:description hasValue "delivery directly to the buyer shipping address by a delivery service"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#isDropShip>>}
endNonFunctionalProperties
carrier ofType dropShipCarrier
concept dropShipCarrier
nonFunctionalProperties
dc:description hasValue "a company that provides a drop ship delivery service"
dc:relation hasValues {<<http://wsmo.org/ontologies/rosettanet#carrierInformation>>}
endNonFunctionalProperties
contactInformation ofType contactInformation
businessIdentifier ofType rn:globalBusinessIdentifier
transportBy ofType transportationMean
deliveryCoverage ofType loc:location
concept transportationMean
nonFunctionalProperties
dc:description hasValue "mean of transportation used by a drop ship delivery service"
endNonFunctionalProperties
concept selfCollection subConceptOf delivery
nonFunctionalProperties
dc:description hasValue "buyer collects purchased "
endNonFunctionalProperties
concept onlineDelivery subConceptOf delivery
nonFunctionalProperties
dc:description hasValue "a product is delivery online as a piece of information"
endNonFunctionalProperties
onlineDeliveryMethod ofType xsd:string
|
The "Location Ontology" defines concepts for locations, including cities and states, as well as postal addresses. This ontology is based on the DAML ontology for geographical locations (Appendix B5), an ontology describing a wide variety of locations and geographical areas. The concept country is extended using the OWL-Factbook ontology (Appendix B2). The concept address reuses the DAML address ontology (Appendix B3).
namespace <<http:://www.wsmo.org/ontologies/location#>>
dc:<<http://purl.org/dc/elements/1.1#>>
wsml:<<http://www.wsmo.org/d2/#>>
cnt:<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlFactbookMediator.wsml#>>
geo:<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml#>>
ad:<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlAddressMediator.wsml#>>
xsd:<<http://www.w3.org/2001/XMLSchema#>>
ontology <<http://www.wsmo.org/ontologies/location>>
nonFunctionalProperties
dc:title hasValue "Locations Ontology"
dc:creator hasValue "DERI International"
dc:subject hasValues {"Location", "Country", "State", "City", "Address"}
dc:description hasValue "Ontology for representing locations in the current political/social system"
dc:publisher hasValue "DERI International"
dc:contributor hasValues {<<http://www.deri.org/foaf#lara>>,
<<http://homepage.uibk.ac.at/~c703262/foaf.rdf>>}
dc:date hasValue "2004-10-04"
dc:type hasValue <<http://www.wsmo.org/2004/d2#ontologies>>
dc:format hasValue "text/html"
dc:language hasValue "en-US"
dc:identifier hasValue <<http://www.wsmo.org/ontologies/location>>
dc:source hasValue <<http://www.daml.org/2001/02/geofile/geofile-ont>>
dc:language hasValue "en-US"
dc:relation hasValues {<<http://www.daml.org/2001/09/countries/fips-10-4-ont>>,
<<http://www.daml.org/2001/09/countries/iso-3166-ont>>,
<<http://www.daml.org/2003/09/factbook/factbook-ont>>,
<<http://www.daml.org/2001/02/geofile/geofile-ont>>,
<<http://daml.umbc.edu/ontologies/ittalks/address>>}
dc:coverage hasValue "ID:7029392 Name:World"
dc:rights hasValue <<http://www.deri.org/privacy.html>>
version hasValue "$Revision: 1.3 $"
endNonFunctionalProperties
usedMediators {<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlFactbookMediator.wsml>>,
<<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlAddressMediator.wsml>>,
<<http://www.daml.org/2004/d3/d3.3/v0.1/20041008/resources/owlGeoMediator.wsml>>}
concept country subConceptOf {cnt:country, geo:country}
nonFunctionalProperties
dc:description hasValue "Add the codes to the CIA country properties"
endNonFunctionalProperties
fipsCode ofType xsd:string
nonFunctionalProperties
dc:description hasValue "FIPS 10-4 Country Code"
endNonFunctionalProperties
isoCode ofType xsd:string
nonFunctionalProperties
dc:description hasValue "ISO 3166 Country Code"
endNonFunctionalProperties
concept address subConceptOf ad:address
nonFunctionalProperties
dc:description hasValue "Extended address, adding more details to
city, state and country"
endNonFunctionalProperties
city ofType city
state ofType state
country ofType country
concept city subConceptOf geo:city
nonFunctionalProperties
dc:description hasValue "City"
endNonFunctionalProperties
population ofType xsd:integer
extension ofType xsd:integer
nonFunctionalProperties
dc:description hasValue "Extension of the city in square kilometers"
endNonFunctionalProperties
zipcodes ofType set xsd:string
concept state subConceptOf geo:state
nonFunctionalProperties
dc:description hasValue "State"
endNonFunctionalProperties
cities ofType set city
population ofType xsd:integer
extension ofType xsd:integer
concept border subConceptOf geo:geographicLocation
nonFunctionalProperties
dc:description hasValue "Border between two countries. Notice that it
would be more natural to model this as a location with a cardinality
constraint = 2 for the country property. However, it is not clear
how to do this in F-Logic"
endNonFunctionalProperties
countryA ofType country
countryB ofType country
concept distance
nonFunctionalProperties
dc:description hasValue "Distance between two points"
endNonFunctionalProperties
amount ofType xsd:float
units ofType xsd:string
axiom validDistance
nonFunctionalProperties
dc:description hasValue "The amount in a distance cannot be less than 0.
We only accept kilometers and miles."
endNonFunctionalProperties
definedBy
constraint
?D[
amount hasValue ?A,
units hasValue ?U
]memberOf distance
and ?A < 0
and not (U="Kilometers" or U="Miles").
function kilometers
nonFunctionalProperties
dc:description hasValue "Calculates a distance in kilometers"
endNonFunctionalProperties
d ofType distance
range ofType xsd:float
definedBy
forAll ?x,?y ( kilometers[d hasValue ?d, result hasValue ?y] equivalent
?d[
amount hasValue ?a,
units hasValue ?u
] and
( (?u="Kilometers" and ?y=?a) or
(?a="Miles" and ?y=?a*1.609344))).
function miles
nonFunctionalProperties
dc:description hasValue "Calculates a distance in miles"
endNonFunctionalProperties
d ofType distance
range ofType xsd:float
definedBy
forAll ?x,?y ( miles[d hasValue ?d, result hasValue ?y] equivalent
?d[
amount hasValue ?a,
units hasValue ?u
] and
( (?u="Miles" and ?y=?a) or
(?a="Kilometers" and ?y=?a/1.609344))).
relation equalDistance
nonFunctionalProperties
dc:description hasValue "Computes equality of a distance"
endNonFunctionalProperties
d1 ofType distance
d2 ofType distance
definedBy
forAll ?x,?y ( equalDistance[d1 hasValue ?x, d2 hasValue ?y] equivalent
kilometers(?x,?k1) and kilometers(?y,?k2) and ?k1=?k2).
relation lessThanDistance
nonFunctionalProperties
dc:description hasValue "Computes -less than- for a distance"
endNonFunctionalProperties
d1 ofType distance
d2 ofType distance
definedBy
forAll ?x,?y ( equalDistance[d1 hasValue ?x, d2 hasValue ?y] equivalent
kilometers(?x,?k1) and kilometers(?y,?k2) and ?k1<?k2).
relation moreThanDistance
nonFunctionalProperties
dc:description hasValue "Computes -more than- for a distance"
endNonFunctionalProperties
d1 ofType distance
d2 ofType distance
definedBy
forAll ?x,?y ( equalDistance[d1 hasValue ?x, d2 hasValue ?y] equivalent
kilometers(?x,?k1) and kilometers(?y,?k2) and ?k1>?k2).
|
The VTA Use Case Knowledge Base holds all instance data that are needed within the use case descriptions. The knowledge base is defined as an WSMO ontology that holds instances of all four domain ontologies defined above. Within this knowlegde base, only a selection of instances is defined that is used within the subsequent WSMO component models.
/**
* VTA Use Case Knowledge Base
* this is a collection of pre-defined data for the WSMO D3.3 VTA Use Case
*/
namespace <<http://www.wsmo.org/ontologies/kb.wsml#>>
dc:<<http://purl.org/dc/elements/1.1#>>
wsml:<<http://www.wsmo.org/2004/d16/d16.1/v0.2/20040418#>>
tc:<<http://www.wsmo.org/ontologies/trainConnection#>>
dt:<<http://www.wsmo.org/ontologies/dateTime#>>
tc:<<http://www.wsmo.org/ontologies/trainConnection#>>
po:<<http://www.wsmo.org/ontologies/purchase#>>
cu:<<http://www.wsmo.org/2004/d3/d3.2/v0.1/20040628/resources/owlCurrencyMediator.wsml#>>
loc:<<http://www.wsmo.org/ontologies/location#>>
ontology <<http://www.wsmo.org/ontologies/kb.wsml>>
nonFunctionalProperties
dc:title hasValue "VTA Use Case Knowledge Base"
dc:creator hasValue "SWF Project"
dc:subject hasValues {dt:dateandtime, po:paymentMethods, loc:location}
dc:description hasValue "describes pre-defined instance data for the VTA Use Case"
dc:publisher hasValue "SWF Project"
dc:contributor hasValue "Michael Stollberg, Holger Lausen, Ruben Lara, Axel Polleres, Armin Haller"
dc:date hasValue "2004-10-27"
dc:type hasValue <<http://www.wsmo.org/2004/d2/#ontologies>>
dc:format hasValue "text/html"
dc:language hasValue "en-US"
dc:relation hasValues {<<http://www.wsmo.org/ontologies/dateTime>>,
<<http://www.wsmo.org/ontologies/trainConnection>>,
<<http://www.wsmo.org/ontologies/purchase>>,
<<http://www.wsmo.org/ontologies/location>>}
dc:coverage hasValue "VTA virtual marketplace"
dc:rights hasValue <<http://www.deri.org/privacy.html>>
version hasValue "$Revision: 1.2 $"
endNonFunctionalProperties
importedOntologies {<<http://www.wsmo.org/ontologies/dateTime>>,
<<http://www.wsmo.org/ontologies/trainConnection>>,
<<http://www.wsmo.org/ontologies/purchase>>,
<<http://www.wsmo.org/ontologies/location>>}
usedMediators ooMediator <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/owlCurrencyMediator.wsml>>
// Station instances
instance innsbruckHbf memberOf station
nonFunctionalProperties
dc:description hasValue "Innsbruck central station"
endNonFunctionalProperties
name hasValue "Innsbruck Hbf"^^xsd:string
code hasValue "INN"^^xsd:string
locatedIn hasValues {loc:innsbruck}
instance frankfurtHbf memberOf station
name hasValue "Frankfurt Hbf"^^xsd:string
code hasValue "FKF"^^xsd:string
locatedIn hasValues {loc:frankfurt}
// Date and Time Instance
comment: the current date is defined as an instance here, as there is no build in function avaliable for this at the moment.
instance currentDate memberOf dt:dateandtime
date hasValue currentDateDate
time hasValue currentDateTime
instance currentDateDate memberOf dt:date
dayOfMonth hasValue 22
monthOfYear hasValue 5
year hasValue 2004
instance currentDateTime memberOf dt:time
hourOfDay hasValue 15
minuteOfHour hasValue 27
secondOfMinute hasValue 38
// Locations
instance europe memberOf loc:continent
name hasValue "Europe"
instance austria memberOf country
fipsCode hasValue "AU"^^xsd:string
isoCode hasValue "AT"^^xsd:string
instance germany memberOf country
fipsCode hasValue "GM"^^xsd:string
isoCode hasValue "DE"^^xsd:string
instance usa memberOf country
fipsCode hasValue "US"^^xsd:string
isoCode hasValue "US"^^xsd:string
instance massachusetts memberOf state
name hasValue "Massachusetts"^^xsd:string
locatedIn hasValue usa
instance innsbruck memberOf city
name hasValue "Innsbruck"^^xsd:string
locatedIn hasValue austria
instance frankfurt memberOf city
name hasValue "Frankfurt"^^xsd:string
locatedIn hasValue germany
instance boston memberOf city
name hasValue "Boston"^^xsd:string
locatedIn hasValue usa
/*
* Drop Ship Deliverers
*/
instance PostAt http://www.post.at/ memberOf po:dropShipCarrier
name hasValue "Oesterreichische Post AG"
companyNumber hasValue "post"
contactaddress hasValue PostATAddress
transportBy hasValue truck
deliveryCoverage hasValue europe
instance PostATAddress memberOf loc:address
street hasValue "Südtiroler Platz"
number hasValue "5-7 "
city hasValue innsbruck
zip hasValue 6020
// transportation means
instance truck memberOf po:transportationMean
instance train memberOf po:transportationMean
instance plane memberOf po:transportationMean
/*
* currencies - only Euro, as the markeptlace is limited to Austria
*/
instance euro memberOf cu:curreny
name hasValue "Euro"
code hasValue "EUR"
/*
* payment methods
*/
instance masterCard memberOf po:creditCardType
instance visa memberOf po:creditCardType
instance amercianExpress memberOf po:creditCardType
|
Goals denote what a user wants as the result of the Web Service. For modeling the goal, WSMO describes the information elements that the user wants to get from the service (the postcondition) together with the state of the world desired after the service execution (the effect).
In WSMO, Goals can be defined a different levels of granularity. By so-called GG Mediators, new, more specific Goals can be created out of generic existing Goals. You can also think of generic Goals as being pre-defined in a specific application context, wherefrom concrete Goals can be generated from. In order to showcase this, we define a generic Goal for buying a ticket for any kind of trip (Listing 6), a concrete Goal wherein a user wants to buy a train itinerary from Innsbruck to Frankfurt on a certain date (Listing 7), and a GG Mediator that connects the generic Goal to tickets for traintrips within Austria and Germany (see Section 3.4.3. for the GG Mediator that connects this two Goals).
Listing 6 shows the generic Goal with the following description elements:
namespace <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/GeneralTrainTrip#>>
dc:<<http://purl.org/dc/elements/1.1#>>
tc:<<http://www.wsmo.org/ontologies/trainConnection#>>
po:<<http://www.wsmo.org/ontologies/purchase#>>
loc:<<http://www.wsmo.org/ontologies/location#>>
goal <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/goal1.wsml>>
nonFunctionalProperties
dc:title hasValue "Buying a ticket online"
dc:creator hasValue "DERI International"
dc:subject hasValues {"Tickets", "Online Ticket Booking", "trip"}
dc:description hasValue "Express the goal of buying a ticket for a trip"
dc:publisher hasValue "DERI International"
dc:contributor hasValues {"Michael Stollberg",
<<http://www.deri.org/foaf#lara>>,
<<http://homepage.uibk.ac.at/~c703240/foaf.rdf>>,
<<http://homepage.uibk.ac.at/~c703262/foaf.rdf>>}
dc:date hasValue "2004-10-04"
dc:type hasValue <<http://www.wsmo.org/2004/d2#goals>>
dc:format hasValue "text/html"
dc:identifier hasValue <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/goal1.wsml>>
dc:language hasValue "en-US"
dc:relation hasValues {<<http://www.wsmo.org/ontologies/trainConnection>>,
<<http://www.wsmo.org/ontologies/purchase>>,
<<http://www.wsmo.org/ontologies/location>>}
dc:coverage hasValue "ID:7029392 Name:World"
dc:rights hasValue <<http://deri.at/privacy.html>>
version hasValue "$Revision: 1.4 $"
endNonFunctionalProperties
importedOntologies {<<http://www.wsmo.org/ontologies/trainConnection>>,
<<http://www.wsmo.org/ontologies/purchase>>,
<<http://www.wsmo.org/ontologies/location>>}
postcondition
axiom purchasingTicketForTrip
nonFunctionalProperties
dc:description hasValue "This goal expresses the general desire of buying a ticket for
any kind of itinerary."
endNonFunctionalProperties
definedBy
exists ?Purchase, ?Purchaseorder, ?Buyer, ?Product, ?PaymentMethod, ?Ticket, ?Itinerary, ?Passenger, ?Trip
(?Purchase memberOf po:purchase[
po:purchaseorder hasValue ?Purchaseorder,
po:buyer hasValue ?Buyer
] and
?Buyer memberOf po:buyer and
?Purchaseorder memberOf po:purchaseOrder[
po:product hasValues {?Product},
po:payment hasValue ?PaymentMethod
] and
?PaymentMethod memberOf po:paymentMethod and
?Product memberOf po:product[
po:item hasValues {?Ticket}
] and
?Ticket memberOf tc:ticket[
po:itinerary hasValue ?Itinerary
] and
?Itinerary memberOf tc:itinerary[
po:passenger hasValue ?Passenger,
po:trip hasValue ?Trip
] and
?Passenger memberOf tc:person and
?Trip memberOf tc:trip) .
effect
axiom havingTradeForTrip
nonFunctionalProperties
dc:description hasValue "The goal effect is to get the purchased ticket delivered
to the buyer."
endNonFunctionalProperties
definedBy
exists ?Delivery, ?Product, ?Buyer, ?Ticket
(
?Delivery memberOf po:delivery[
po:deliveryItem hasValues {?Product},
po:receiver hasValue ?Buyer
] and
?Product memberOf po:product[
po:item hasValues {?Ticket}
] and
?Buyer memberOf po:buyer and
?Ticket memberOf tc:ticket
) .
|
The concrete Goal expresses the desire to buy a train ticket by refining the notions of the general Goal. Listing 7 shows this Goal with the following elements:
namespace <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/SpecificTrainTripInnbsruckFrankfurt#>>
dc:<<http://purl.org/dc/elements/1.1#>>
dt:<<http://www.wsmo.org/ontologies/dateTime#>>
tc:<<http://www.wsmo.org/ontologies/trainConnection#>>
po:<<http://www.wsmo.org/ontologies/purchase#>>
loc:<<http://www.wsmo.org/ontologies/location#>>
kb:<<http://www.wsmo.org/ontologies/kb#>>
wsml:<<http://www.wsmo.org/2004/d2/#>>
xsd:<<http://www.w3.org/2001/XMLSchema#>>
goal <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041119/resources/goal.wsml>>
nonFunctionalProperties
dc:title hasValue "Buying a train ticket from Innsbruck to Frankfurt on..."
dc:creator hasValue "DERI International"
dc:subject hasValues {"Train Tickets", "Online Ticket Booking", "Train trip"}
dc:description hasValue "Express the goal of buying a concrete ticket for a train trip"
dc:publisher hasValue "DERI International"
dc:contributor hasValues{"Michael Stollberg",
<<http://www.deri.org/foaf#lara>>,
<<http://homepage.uibk.ac.at/~c703240/foaf.rdf>>,
<<http://homepage.uibk.ac.at/~c703262/foaf.rdf>>,
<<http://www.deri.org/foaf#haller>>}
dc:date hasValue "2004-10-04"
dc:type hasValue <<http://www.wsmo.org/2004/d2#goals>>
dc:format hasValue "text/html"
dc:identifier hasValue <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041008/resources/goal.wsml>>
dc:language hasValue "en-US"
dc:relation hasValues {<<http://www.wsmo.org/ontologies/dateTime>>,
<<http://www.wsmo.org/ontologies/trainConnection>>,
<<http://www.wsmo.org/ontologies/purchase>>,
<<http://www.wsmo.org/ontologies/location>>}
dc:coverage hasValue "ID:7029392 Name:World"
dc:rights hasValue <<http://deri.at/privacy.html>>
version hasValue "$Revision: 1.4 $"
endNonFunctionalProperties
// all mediators and ontologies are inherited from the GG Mediator
usedMediators
ggMediator <<http://www.wsmo.org/2004/d3/d3.3/v0.1/20041105/resources/ggm1.wsml>>
importedOntologies {<<http://www.wsmo.org/ontologies/dateTime>>, <<http://www.wsmo.org/ontologies/kb>>}
// the constants defined in the logical expressions refer to instances defined in the VTA Use Case Knowledge Base
postcondition
axiom purchasingTicketForSpecificTraintrip
nonFunctionalProperties
dc:description hasValue "The goal postcondition specifies that Tim Berners-Lee wants
to go buy a train ticket from Innsbruck to Frankfurt, departing from innsbruckHbf
on 17th July 2004 at 6 p.m."
endNonFunctionalProperties
definedBy
exists ?Purchase, ?Purchaseorder, ?Buyer, ?Product, ?PaymentMethod, ?Ticket, ?Itinerary, ?Passenger, ?Trip,
?DepartureTime, ?DepartureDate, ?Departure, ?TBLAddress, ?TBLContactInformation
(
?Purchase memberOf po:purchase[
po:purchaseorder hasValue ?Purchaseorder,
po:buyer hasValue ?Buyer
] and
?Buyer memberOf po:buyer[
po:contactInformation hasValue ?TBLContactInformation,
po:billToAddress hasValue ?TBLAddress,
po:hasPayment hasValues {?PaymentMethod}
] and
?TBLContactInformation memberOf po:contactInformation[
po:name hasValue "Tim Berners-Lee",
po:emailaddress hasValue "tbl@w3c.org"
] and
?TBLAddress memberOf loc:address[
po:streetAddress hasValue "32 Vassar Street",
po:city hasValue boston,
po:state hasValue massachusetts,
po:country hasValue usa
] and
?Purchaseorder memberOf po:purchaseOrder[
po:product hasValues {?Product},
po:payment hasValue ?PaymentMethod
] and
?PaymentMethod memberOf po:creditCard[
po:type hasValue masterCard,
po:creditCardNumber hasValue 5535446466867747,
po:holder hasValue "Tim Berners-Lee",
po:expMonth hasValue 09,
po:expYear hasValue 2007
] and
?Product memberOf po:product[
po:item hasValues |