$Id: BravoAirProcess.owl,v 1.48 2005/02/03 22:43:43 martin Exp $
OWL-S Coalition: BravoAir Example for OWL-S Process Model
This is the top level process for BravoAir
BravoAir_Process is a composite process. It is composed of a sequence whose components are 2 atomic processes, GetDesiredFlightDetails and SelectAvailableFlight, and a composite process, BookFlight.
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="#hasFlightItinerary"></swrl:propertyPredicate> <swrl:argument1 rdf:resource="http://www.daml.org/services/owl-s/1.1/Process.owl#TheClient"></swrl:argument1> <swrl:argument2 rdf:resource="#PreferredFlightItinerary"></swrl:argument2> </swrl:IndividualPropertyAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList>
Log into account and confirm reservation It is composed of a sequence whose components are 2 atomic processes, LogIn and ConfirmReservation.
Check whether the login succeeded This if-statement is used to verify whether the user is logged in.
This condition will be true if the previous PerformLogIn operation was succesful
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="#LoggedIn"></swrl:classPredicate> <swrl:argument1 rdf:resource="#CompleteReservation_AcctName"></swrl:argument1> </swrl:ClassAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList>
Get details such as airports, prefered time, roundtrip etc
Get users prefered flight choice from available itineraries
A simple class to indicate that the user has logged into an account. If an AcctName instance belongs to this class it means that the user has logged in to the account with the correct password. Invoking LogIn process may result in this situtation. Normally, the account would become NotLoggedIn after a period of time but it is not reflected in this simple description
The complement of being logged in. If an incorrect password is supplied for an account name that account would be in the state of NotLoggedIn to indicate failure.
LogIn process accepts two inputs AcctName and PassWord and returns a boolean value to indicate if the login operation succeeded or not.
This result simply says that when the correct password has been supplied for the given account name then the service returns the xsd:boolean value true and the user is logged in to the system as the effect of invoking this service.
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="#hasPassword"></swrl:propertyPredicate> <swrl:argument1 rdf:resource="#LogIn_AcctName"></swrl:argument1> <swrl:argument2 rdf:resource="#LogIn_Password"></swrl:argument2> </swrl:IndividualPropertyAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList>
If the correct account name, password pair is supplied then the given account name will be logged in as the effect of this operation
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="#LoggedIn"></swrl:classPredicate> <swrl:argument1 rdf:resource="#LogIn_AcctName"></swrl:argument1> </swrl:ClassAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList>
This result simply says that when given password was not correct for the account and as a result the account is in NotLoggedIn state. Note that, there is a a result variable defined Correct_Password to stand for the correct password for the given account. The client does not need to know the exact value of the correct password to evaluate/validate the inCondition. When the service returns xsd:boolean value false, the client should infer that there exists another Password instance (this could be represented as a bnode) which is different from the given input value LogIn_Password.
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="#hasPassword"></swrl:propertyPredicate> <swrl:argument1 rdf:resource="#LogIn_AcctName"></swrl:argument1> <swrl:argument2 rdf:resource="#Correct_Password"></swrl:argument2> </swrl:IndividualPropertyAtom> </rdf:first> <rdf:rest> <swrl:AtomList> <rdf:first> <swrl:DifferentIndividualsAtom> <swrl:argument1 rdf:resource="#Correct_Password"></swrl:argument1> <swrl:argument2 rdf:resource="#LogIn_Password"></swrl:argument2> </swrl:DifferentIndividualsAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList> </rdf:rest> </swrl:AtomList>
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:ClassAtom> <swrl:classPredicate rdf:resource="#NotLoggedIn"></swrl:classPredicate> <swrl:argument1 rdf:resource="#LogIn_AcctName"></swrl:argument1> </swrl:ClassAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList>
<swrl:AtomList xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:first> <swrl:IndividualPropertyAtom> <swrl:propertyPredicate rdf:resource="#hasFlightItinerary"></swrl:propertyPredicate> <swrl:argument1 rdf:resource="http://www.daml.org/services/owl-s/1.1/Process.owl#TheClient"></swrl:argument1> <swrl:argument2 rdf:resource="#ConfirmReservation_PreferredFlightItinerary"></swrl:argument2> </swrl:IndividualPropertyAtom> </rdf:first> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"></rdf:rest> </swrl:AtomList>
An empty AtomList always evaluates to true. Note that this is not equivalent to specifiying no precondition. Due to open-world semantics of OWL, it would not be possible to distinguish having no precondition from not knowing the precondition. We would need to specify a cardinality 0 restriction on precondition property to indicate that there is no precondition which would be also valid.
<swrl:AtomList rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil" xmlns:swrl="http://www.w3.org/2003/11/swrl#"></swrl:AtomList>