My idea is to introduce a way of representing the direct and indirect
effects of web service executions by means of the REA ontology in OCL
(based on REA UML class model).
(according to Frederic Gaily, this is at the moment the most developed way
of specifying REA constraints)
So that we can talk about the creation of a commitment, of an economic
event (with effects on resources) etc. And the constraints between them.
For example,
context event :: create(): object
pre
post forAll(r | stockflow (self,r) implies r.effect(self))
/*this is not correct, as r.effect is a method and not a property
/*what I want to say is that the event should have effect on all resources
/*with which the event has a stockflow relationship
context duality
inv forall (e1,e2| duality(e1,e2) and exist(e1) implies exist e2)
context resource :: effect(event e)
post stockflow(e,self).type = take implies self.owner = e.agent
post stockflow(e,self).type = give implies self.owner <> e.agent
context commitment::create(resource r, timeslot t)
pre r.reserved(t) = false
post r.reserved(t) = true
context hotelwebservice::reserve_room(r,t)
pre available (r) /* can be inherited from the resouce property of r
post exist commitment(r,t) /* inherited as well
As you see, I am still struggling, so perhaps someone can help.
Gaily and Poels have described the REA ontology in UML
There is also the OpenEDI standard based on REA in which objects like
transaction are described and the states that they can take (started,
proposed, etc)
If we succeed in developing this language, this is an interesting result
in itself, as it would provide a possibility of describing service effects
in an ontologically well-structured way.
We should add how the effect specification can be used:
- to solve the planning problems such as described by Paolo Traverso in a
generic way
- general specifications can be used as templates in the design. E.g.
hotel reservation as a special type of reservation of a service.
- the specifications of a certain service can be used as constraints on
the implemetation (postconditions and invariants must be respected).
- the specification could be used perhaps in service discovery, although
this runs the risk of receiving the same fate as semantic web service
descriptions (too much for the developer and not enough for the customer)
- ?? more
Questions
- Do you think it makes sense to develop such a language?
- Is the OCL the best candidate, or are there better alternatives?
- If so, how to proceed?
Note that I propose to use the hotel reservation case for demonstration,
rather than the Traverso case, as we thought a lot about this case and it
is well-described in the www community. Still, the idea is to show also
how conflicts with the personal agenda could be avoided, as in the Traverso
case.
Greetings
Hans
Dr. Hans Weigand
Infolab, Tilburg University
email: H.We...@uvt.nl phone: +31 13 4662806 fax +31 13 4663069
A web service is a software module that uses IT resources and transforms
data. In a social context, the web service can realize a coordination
service. In that case, the context rules ensure that the input and output
data count as social facts. So the web service in context is a
coordination service in the sense above, supporting an exchange
process.
(of course, not all web services need to be coordination services)