W3C home > Mailing lists > Public > www-ws-desc@w3.org > February 2007

RE: operation safety as semantic annotation?

From: Arthur Ryman <ryman@ca.ibm.com>
Date: Thu, 1 Feb 2007 17:21:27 -0500
To: Jacek Kopecky <jacek.kopecky@deri.org>
Cc: Jonathan Marsh <jonathan@wso2.com>, "'WS-Description WG'" <www-ws-desc@w3.org>, www-ws-desc-request@w3.org
Message-ID: <OFFB267DAB.2F3829C0-ON85257275.00799AA2-85257275.007AD03C@ca.ibm.com>
Jacek,

AIUI, being charged $1 per request is an additional obligation and 
therefore unsafe since the requests may be issued by the User Agent and 
not by the user explicitly.

For example, if you open a Web page in a browser and there are URLs 
linking to other pages, the browser may prefetch those pages as a 
optimization. 

We can simplify the previous example to one service with 2 operations - 
both with the same semantics, but one is unsafe because you get charged 
for better response time, or maybe agree to donate some money to charity. 
That would not be idempotent.

Arthur Ryman,
IBM Software Group, Rational Division

blog: http://ryman.eclipsedevelopersjournal.com/
phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca



Jacek Kopecky <jacek.kopecky@deri.org> 
02/01/2007 04:48 PM

To
Arthur Ryman/Toronto/IBM@IBMCA
cc
Jonathan Marsh <jonathan@wso2.com>, "'WS-Description WG'" 
<www-ws-desc@w3.org>, www-ws-desc-request@w3.org
Subject
RE: operation safety as semantic annotation?






Dear Arthur, I disagree that safety wouldn't be a semantic annotation.

First, in your example, if I understand safety [1] correctly, getting
charged $1 per request is not "an additional obligation incurred" by the
operation, because you must have agreed to it earlier. So both
operations would be considered safe. In fact, I expect that both
services would share the same interface, because neither confidentiality
or payment are considerations in WSDL interfaces.

[1] http://www.w3.org/TR/webarch/#safe-interaction

But that's not the main thing. A semantic annotation need not describe
the whole semantics of an operation. There are varying degrees, from
"provides 15-minutes old stock prices" through "provides stock prices"
to "provides financial information". The description that an operation
"does not incur additional obligation" is just an extension of the same
axis.

>From my point of view, WSDL is about how you can talk to a service, and
semantics is about what the service does. Safety is an assertion on what
the service does, not on how to talk to the service. Normally, a WSDL
binding is just a transport, but that doesn't align well with HTTP, so
the semantics of the operations limit the options in the HTTP binding.
Without HTTP and people like Mark Baker, we wouldn't even consider
putting safety annotation on an operation, because we'd say that what
the operation does is out of scope.

WSDL tells you that you can send two integers to a service and get one
back, but it doesn't tell you whether it will return to you the sum or
the product of the integers, or whether it will take the integers as
passcodes and launch the rockets, returning the number of seconds to
impact. But operations marked as safe cannot launch rockets (unless you
previously entered a contract that says otherwise), so safety is not the
same as the other aspects of WSDL description of service operations.

Safety (or the lack thereof) does not constrain how you talk to the
service, it constrains whether and when you talk to it. Same for any
other semantic properties.

In the work of my colleagues and mine, we use semantic annotations to
find services suitable for requested tasks, and then we adapt to their
structural interface if necessary. For automatic negotiation, I want to
use operations that provide information (which I infer from the fact
that the operation is safe and returns a value), and with semantic
annotations of the input and output data I know whether I can give it
inputs and whether I can use the output.

I hope it makes sense,
Jacek

On Thu, 2007-02-01 at 16:08 -0500, Arthur Ryman wrote:
> 
> Jack, 
> 
> I disagree that safety is a semantic annotation. 
> 
> Theorem: Safety tells you nothing about the semantics of the
> operation. 
> 
> 
> Proof: Consider the same service deployed at two endpoints, say just
> giving you stock quotes: 
> 
> Service 1 is safe but returns quotes over HTTP so someone could spy on
> you and see what quotes you are interested in. 
> Service 2 is unsafe since you need an account and you get charged $1
> per request, but the quotes are returned over HTTPS. 
> 
> Same "semantics" for both but not the same safety. QED 
> 
> 
> Arthur Ryman,
> IBM Software Group, Rational Division
> 
> blog: http://ryman.eclipsedevelopersjournal.com/
> phone: +1-905-413-3077, TL 969-3077
> assistant: +1-905-413-2411, TL 969-2411
> fax: +1-905-413-4920, TL 969-4920
> mobile: +1-416-939-5063, text: 4169395063@fido.ca 
> 
> 
> Jacek Kopecky
> <jacek.kopecky@deri.org> 
> Sent by:
> www-ws-desc-request@w3.org 
> 
> 02/01/2007 10:10 AM 
> 
> 
>                To
> Arthur
> Ryman/Toronto/IBM@IBMCA 
>                cc
> Jonathan Marsh
> <jonathan@wso2.com>, "'WS-Description WG'" <www-ws-desc@w3.org> 
>           Subject
> RE: operation
> safety as
> semantic
> annotation?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Dear Arthur, 
> 
> previously, when the expressing of operation safety was discussed, we
> didn't have SAWSDL so we couldn't consider using it. I'm asking that
> we
> should.
> 
> I wonder if we might want to ask the TAG's opinion on this, as they
> requested that we add this feature, and we still have an open issue
> CR021 for the purpose of tracking the development of the safety
> assertion feature for them. I could ask them if we feel it could help.
> 
> I just think that in the long term, putting the safety assertion into
> WSDL using a SAWSDL model reference is the right thing - it would put
> the assertion where it belongs and thus also help people understand
> the
> role of SAWSDL.
> 
> But I won't object to closing CR147 with no action if the groups
> considers and rejects it.
> 
> Jacek
> 
> On Thu, 2007-02-01 at 09:35 -0500, Arthur Ryman wrote:
> > 
> > Jonathan, 
> > 
> > The {safety} property was discussed at length by the working group
> and
> > we implemented its decision. I see no reason to reopen it now. We
> > should be focusing on getting to PR. 
> > 
> > Arthur Ryman,
> > IBM Software Group, Rational Division
> > 
> > blog: http://ryman.eclipsedevelopersjournal.com/
> > phone: +1-905-413-3077, TL 969-3077
> > assistant: +1-905-413-2411, TL 969-2411
> > fax: +1-905-413-4920, TL 969-4920
> > mobile: +1-416-939-5063, text: 4169395063@fido.ca 
> > 
> > 
> > "Jonathan Marsh"
> > <jonathan@wso2.com> 
> > Sent by:
> > www-ws-desc-request@w3.org 
> > 
> > 01/31/2007 04:06 PM 
> > 
> > 
> >                To
> > "'Jacek Kopecky'"
> > <jacek.kopecky@deri.org>, "'WS-Description WG'"
> <www-ws-desc@w3.org> 
> >                cc
> > 
> >           Subject
> > RE: operation
> > safety as
> > semantic
> > annotation?
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > AIUI, adding such an attribute would result in a {model reference}
> > property
> > being added to the WSDL, along with the {safety} attribute.  Are you
> > OK with
> > having duplicate information in the component model?
> > 
> > Currently, the HTTP binding requires the wsdlx:safe extension be
> > supported
> > for interoperability.  Will it be clear that
> >
> sawsdl:modelReference="
http://www.w3.org/2006/01/wsdl-extensions#SafeInterac
> > tion" is still required to be supported, but that the whole sawsdl
> > extension, including any {model reference} properties, need not be?
> > 
> > Right now we declare in the interchange format which extensions are
> > supported, by URI (usually the namespace URI).  We would be unable
> to
> > use
> > the SAWSDL namespace URI to indicate this "safe sawsdl profile"
> > extension is
> > engaged - I guess we would continue to use the wsdlx namespace for
> > this
> > purpose.
> > 
> > It all seems kind of messy.  My ideal would be to simply remove the
> > wsdlx:safe and the {safety} attribute from WSDL and rely wholly on
> > SAWSDL
> > for this functionality.  The interaction between {safety} and the
> HTTP
> > method selection is artificial IMO.  If one's intention is to use
> GET,
> > then
> > marking something as safe is no harder, and in fact one level more
> > abstract
> > and therefore tricky, than marking the whttp:method as GET. 
> > 
> > Anyway, this will be issue CR147.
> > 
> > Jonathan Marsh - http://www.wso2.com -
> > http://auburnmarshes.spaces.live.com
> > 
> > 
> > > -----Original Message-----
> > > From: www-ws-desc-request@w3.org
> [mailto:www-ws-desc-request@w3.org]
> > On
> > > Behalf Of Jacek Kopecky
> > > Sent: Monday, January 29, 2007 7:04 AM
> > > To: WS-Description WG
> > > Subject: RFC: operation safety as semantic annotation?
> > > 
> > > 
> > > Dear all,
> > > 
> > > as you may know, the specification for Semantic Annotations for
> WSDL
> > and
> > > XML Schema [1] (SAWSDL) moving to CR. In our institute (my W3C
> hats
> > are
> > > off), we work on Semantic Web Services, and we plan to use SAWSDL
> as
> > the
> > > glue between our semantic description language and WSDL.
> > > 
> > > For my work, I will need to know the semantic description, i.e.
> what
> > the
> > > various service operations and data mean and do. One piece that I
> > need
> > > is operation safety. Currently, that is realized in WSDL as an
> > extension
> > > attribute, wsdlx:safe="boolean", with the default being false.
> > > 
> > > Operation safety is, at least to me, a clear semantic annotation.
> It
> > > says nothing about the structure of the interface, instead it
> > indicates
> > > what the operation does (or rather, what it doesn't do - any side
> > > effects or additional obligations in Web Architecture speak).
> > > 
> > > I would propose that we change the syntax from wsdlx:safe="true"
>  to
> > > sawsdl:modelReference="http://www.w3.org/2006/01/wsdl-
> > > extensions#SafeInteraction"
> > > I know it's much longer, but please bear with me. 8-)
> > > 
> > > The WSDL Interface Operation {safety} property can stay as it is,
> > only
> > > its XML representation would change to "the IRI for
> SafeInteraction
> > (as
> > > above) will be included among the IRIs that are the value of
> > > sawsdl:modelReference". The URI above is currently used in the RDF
> > > mapping of WSDL to represent the safety property.
> > > 
> > > At worst, the people hand-writing and reading WSDL would have
> their
> > > lives just a bit harder. At best, this would blend right in with
> the
> > > plethora of other semantic annotations. Certainly, from my own
> point
> > of
> > > view, having safety as a semantic annotation as opposed to an
> > extension
> > > attribute would make my life just a bit easier.
> > > 
> > > Thanks for your consideration,
> > > Jacek
> > > 
> > > [1] http://w3.org/tr/sawsdl
> > 
> > 
> > 
> > 
> 
> 
> 
Received on Thursday, 1 February 2007 22:21:50 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:46 GMT