- From: Stanislaw Ambroszkiewicz <sambrosz@ipipan.waw.pl>
- Date: Tue, 24 Jun 2003 20:43:23 +0200 (CEST)
- To: drew.mcdermott@yale.edu
- Cc: www-ws@w3.org, sambrosz@ipipan.waw.pl
[Drew McDermott (Mon, Jun 23 2003)]
It's not clear that the same language is used both to
express requests and describe what the service does.
We could view WSDL+SOAP as a candidate, but it's
precisely because we're stuck at that point that
we have to open our minds to new possibilities for the
service-description language.
It is a bit more complex because there are two different
worlds and two different languages that describe requests
and what services do.
Let's consider the following picture:
human | | | | human
world | | ws-world | | world
------------ ---------------------------------- ----------
user's | | agent's operation |web |
request -> |GUI| goal -> matching <- type |service|-> effect
| | | |
User's request describes user's intention, i.e.,
what is to happen in the human world.
Effect of the service describes what the service does on
the side of the human world.
They may be expressed in a language that describes the
human world.
User's request is translated (by GUI) into the language of
ws-world as agent's goal, whereas what the service does
is also expressed in the language of ws-world and exposed
as operation type of this service.
Hence, what service does is described in two ways in two
different languages describing different worlds.
The same is with user's intention; it is described as
user's request in the human world, and as agent's goal
in the ws-world.
[Drew McDermott (Mon, Jun 23 2003)]
I don't understand this paragraph. I don't see
why there must be a "semantic equivalence" between
a request and the operations that realize it.
There might be more than one way (more than one set
of operations) to satisfy a request. The point
about semantics being "always in the human world"
I might grant, but is that the same as knowing what
services perform? I thought the whole point of
web-service discovery and composition is that the
humans and their agents, who are looking for services,
_don't_ know what services are out there.
The "semantic equivalence", between a request and the
(types of) operations that realize it, is meant that
once unfolded (by substitution of a complex concept by
its definiendum) they contain the same URI names. Of course,
there may be several ways to unfold request formula and
operation type formulas, so that what I mean is there is
an unfolding of the request and of operation types that
have the same URI names.
There are several levels of abstraction for describing
what service does in ws-world. The most abstract level is
by a name of function. Such function names may be introduced
(defined) to the ws-language. The second level is by type of
operation that consists of two formulas: precondition and
postcondition. The postcondition expression contains the name
of the abstract function. The third level is by operation;
it is a procedure or method (in a programing language)
implementing this very operation type. The fourth level is
service itself that exposed this procedure for public use, so that
the service has communication address, uses a common protocol
for exchanging messages, passing data, etc.
[Drew McDermott (Mon, Jun 23 2003)]
Here we basically agree. I doubt there is a
machine-readable semantics, and you propose
that symbols are given meanings by being
standard URIs. Another way to put it is that
URIs behave like proper names. They aren't
defined in terms of anything else; they just get
attached to their denotations and stick to them.
My description is just as empty as yours!
Fortunately, the fact that no one yet understands
how proper names work does not keep them from
working, even when used by computers.
I don't think it is the end of the story. Once we grasp how
URIs behave like proper names (I have proposed a solution),
the next step is to develop a language of ws-world by defining
relations; it is natural and more convenient for reasoning.
Note that all that can happen in the ws-world can be expressed
in terms of data types and functions, so that also relations
must be defined (once unfolded) in these terms. Hence, we
could develop language defining and using more and more
sophisticated concepts having their "meaning" precise by
keeping chains of URIs that end up with names (also URIs)
of primitive datatypes and functions.
It seems that this language development can be done in a
distributive way due to the URI names, i.e., anyone can
introduce (define) his / her own concept to the language
according to some common rules.
-- Stanislaw Ambroszkiewicz
Received on Tuesday, 24 June 2003 14:43:29 UTC