RE: [w3c sml] [4637] Construction of EPR Reference Scheme

Valentina,

 

Boy, you put a lot of thought and work into your response.  And like
most good, well-thought out comments, your discussion, IMHO, changes the
overall picture and brings about some refinement even in the "opposing
position" (i.e., my position).  The use case helped greatly.  Here are
my thoughts (which evolved while I was writing them :-)).

 

Whether support for an EPR scheme is "required" in SML falls into two
questions: (1) Is there a use-case that requires an EPR-based reference
scheme to be defined, and (2) must we address this need in the SML
specification.  Let's consider (1) first.  I fully agree that WS-RP does
not provide a model on which to base an EPR reference scheme. (But specs
like WS-RP are, in my mind, the paradigm case in which use of EPR is
required to address a service, and the fact that the SML case was
clearly out-of-scope for WS-RP was precisely why I asked for a use case
for the EPR scheme.)

 

You have provided a use case with the COSMOS SML Data Center repository,
and I think I understand what you are driving for there.  But is an
EPR-based reference scheme the best way to address this issue case?  I
think there are still several issues with the use of EPRs as you have
presented the argument:

 

1.	Your proposed scheme would seem to invite the issue that
wsa:ReferenceParameters are supposed to be opaque from the client's
perspective.
2.	Your proposal goes down a linguistic rat-hole.  When you say
that you are using wsa:ReferenceParameters "to tell the web service what
exactly is looking for", that sounds a great deal like you're talking
about Identity.  And that's the issue: using ReferenceParameters to
specify the identity of what you are referencing.  To be sure, RFC 3986
already started down this rat-hole when it called XML fragments
"secondary" resources-but they are resources nonetheless.  IMHO, your
proposed use of ReferenceParameters still "identify" secondary resources
(in the RF 3986 sense)-but resources nonetheless.  "Resource" here is
the slippery term, but if it means something that can be identified,
then I think that specifying "exactly" what you're looking for
constitutes specifying a resource, and thus your proposal doesn't answer
the original issue.

 

Indeed, I tend to look at your example as less of an example of a
reference scheme and more as an example of transporting the sml:uri
scheme.  Even your use case, IMHO, would seem to indicate that what you
are really defining here is a means of transporting a sml:uri reference
to a service.  You are wrapping the scheme in an EPR to transport it.
Is the EPR the best way to wrap a sml:uri reference?  For the reasons
given above, I don't think so.  I would suggest that a better approach
would be to specify a separate SOAP Header element that would wrap the
sml:uri scheme.  Using a separate SOAP Header element would even provide
the ability to specify that element with a mustUnderstand attribute.
(Putting this kind of thing is a SOAP Header element has been used in
the WS-Management spec and recently defended in blog by Vambenepe:
http://stage.vambenepe.com/archives/118.)

 

What I would see as addressing your use case is a general approach to
defining Data Center Service (DCS) reference schemes (let's not call it
an EPR-scheme), that define a transport for reference scheme to be used
with services that make "general purpose XML documents" (to quote the
out-of-scope statement from WS-RP) available for query and update.  DCS
schemes, in general, consist of two elements: (a) the address of the
service (URL), which for COSMOS gets mapped to a <wsa:address> in an EPR
because that Data Center Service likes to be addressed with EPRs (but
should we allow that such services that are not addressed by EPRs - ?),
and (b) another SML reference scheme, e.g., the sml:uri reference, that
gets mapped to (wrapped into) the special SOAP Header element.  However,
generalizing (b) is impossible since there is no type definition for a
reference scheme.  A DCS reference scheme would have to define
permissible reference schemes that it will understand.  For example the
DCS for COSMOS would specify the sml:uri scheme.

 

So, the second question from above becomes (in my view), Should the SML
specification define DCS schemes or even a DCS scheme?  If my proposed
approach could be generalized, I would say, yes, the spec should define
it.  But I think the best the spec could do is to describe the approach
for transporting reference schemes to services that access to XML
documents and perhaps define the address element to be used (for (a))
and the SOAP Header wrapper element for transporting sml:uri references
in order to insure interoperability across DCS schemes that use the SML
defined scheme.  

 

I see going down this route as a decision the group must make.  I'd be
willing to write up a formal proposal on this approach if the group
wishes to pursue it.  Obviously, the group can refine any proposal from
that point. 

 

But I would stronger resist calling this approach an "EPR" scheme.

 

Kirk Wilson, Ph.D.
Research Staff Member

CA Labs

603 823-7146

 

________________________________

From: public-sml-request@w3.org [mailto:public-sml-request@w3.org] On
Behalf Of Valentina Popescu
Sent: Friday, September 07, 2007 5:15 PM
To: Smith, Virginia (HP Software)
Cc: public-sml@w3.org; public-sml-request@w3.org
Subject: RE: [w3c sml] [4637] Construction of EPR Reference Scheme

 


Kirk, 

I still think that EPR support in SML is required. I agree with you that
this is a sensitive discussion but deciding to ignore it with the hope
that some other standards will pick it up may not be the right solution.


At your suggestion I went through the WS-ResourceProperties spec to see
if this aligns with what we need. I think the usage is not quite the
same; WS-RP is intended to be used for defining a common mechanism for
querying xml resource properties. As Non-Goals I read from the spec: 

The following topics are outside the scope of this specification: 
General purpose XML document query and update: This specification is not
meant to be used for 
querying and updating generic XML documents, or to be used outside the
context of modeling stateful resources with Web services. 

Probably not something we should look up to for solving this problem. 

I'll go over the other specs you mention next ( they don't seem to be
such an easy read :). I have to say though that I did spend some time
investigating this EPR issue and had the same questions and dilemmas as
you note but with a different outcome. 

You are asking what is the usecase behind defining the EPR scheme in
SML. There are at least two that I know of, both of them coming from the
COSMOS implementation of the SML Data Center repository: 
1. The SML repository is distributed in the sense that there are more
than one producers ( or contributors ) to this repository. I want to be
able to reference SML resources through a single point of control
because contributors can use different means for storing this data; a
service will be responsible to locate the resource a client is looking
for and give back the result. 
2. The access to an SML resource must obey some sort of governance
rules. You are only allowed to ask for a resource through a web service
( there are different reasons for this approach, let's say you want to
monitor how many times one resource has been accessed ) 


The main issue with the wsa:ReferenceParameter approach seems to be that
it contains resource identification information; the architectural
requirement for Web is that the data used to identify a web resource
should be part of the wsa:address. 
I can argue that if we use the wsa:address to identify the web service
which controls the SML data the client is trying to get to then we
comply with this requirement. I can argue that the SML resource the
client is asking for is NOT the web resource he is trying to address
with the EPR therefore he is not breaking any rules if he uses the
<was:ReferenceParameter> to tell the web service what exactly is looking
for. 

Something that I have in mind which should be seen as a provocation :) 

<EnrolledCourse xmlns=http://www.university.example.org/ns
<http://www.university.example.org/ns_>  
 xmlns:sml="http://www.w3.org/sml/2007/02" sml:ref="true"> 
  <wsa:EndpointReference 
       xmlns:u="http://www.university.example.org/schema"> 
    <wsa:Address>http://www.university.example.org/univ</wsa:Address> 
    <wsa:ReferenceParameters> 
        <sml:uri> 
       http://www.university.example.org
/Universities/MIT/Courses.xml#xmlns(u=http://www.university.example.org/
ns) 
        xpointer(/u:Courses/u:Course[u:Name='MAT100']) 
                     </sml:uri> 
    </wsa:ReferenceParameters> 
  </wsa:EndpointReference> 
</EnrolledCourse> 


In the example above the <wsa:address> is used to identify the end
point, which is the web service controlling the repository ( WS-A
compliant since the web service identification is specified in the
wsa:address ). 
A <wsa:ReferenceParameter> containing an <sml:uri> element describes
what exactly the client is looking for ( this is NOT the web service
identification information ) 
The reason I had the <sm:uri> as a ReferenceParameter, other than to
instigate you :) 
        1. There can be more than one ReferenceParameters; we should now
which one is the reference 
        2. is that it's easier to create normative descriptions ( you
can talk about what XPath profile to use, etc ) 
 

Thank you,
Valentina Popescu
IBM Toronto Labs
Phone:  (905)413-2412         (tie-line  969)
Fax: (905) 413-4850




"Smith, Virginia (HP Software)" <virginia.smith@hp.com> 
Sent by: public-sml-request@w3.org 

09/07/2007 02:16 AM 

To

<public-sml@w3.org> 

cc

 

Subject

RE: [w3c sml] [4637] Construction of EPR Reference Scheme

 

 

 




Kirk's suggestion makes sense to me. 
  
-- 
ginny 

________________________________

From: public-sml-request@w3.org [mailto:public-sml-request@w3.org] On
Behalf Of Pratul Dublish
Sent: Thursday, September 06, 2007 8:18 PM
To: public-sml@w3.org
Subject: RE: [w3c sml] [4637] Construction of EPR Reference Scheme 

All 
We have 19 bugs that are marked as "needs Agreement" for second draft,
and we have 8 working days to finalize the second draft and send it to
the W3C webmaster for publishing. We should try to reach consensus on
most of these bugs in email before the next week's call.  I will start
instigating the drive to consensus for the bugs that have already been
discussed in detail in email threads or in Bugzilla comments. 
  
In this specific case, Kirk has clearly elucidated the main issues with
EPR scheme, and has proposed that the EPR scheme be removed from the SML
spec. 
  
Please speak up now if you disagree with Kirk's proposal - silence will
be treated as consent :-) 
  
Thanks!
Pratul 
  
  
From: public-sml-request@w3.org [mailto:public-sml-request@w3.org] On
Behalf Of Wilson, Kirk D
Sent: Friday, August 24, 2007 5:58 AM
To: public-sml@w3.org
Subject: [w3c sml] [4637] Construction of EPR Reference Scheme 
  
All, 
  
This email will serve to "instigate" discussion of issue 4637 regarding
the EPR Reference Scheme.  See section 3.2.2.  (I fully expect this
"instigation" to raise controversies.) 
  
The SML spec attempts to illustrate the creation of another reference
scheme (besides the URI scheme) using EPRs.  The initial version of this
scheme was rejected because of an unacceptable use of the
<wsa:ReferenceParameters> particle in order to contain information
identifying the document segment being referenced.  (The "wsa" namespace
refers to the namespace of the adopted WS-Addressing recommendation
http://www.w3.org/2005/08/addressing
<http://www.w3.org/2005/08/addressing> .)  While there are defenders of
this kind of use of ReferenceParameters (to contain resource
identification information), it is strongly rejected by W3C as
"inconsistent with the architecture of the Web".  (I have worked and
currently am working in several standards groups which have used
ReferenceParameters in this manner.  One group just decided to avoid all
talk of EPR construction; the other still adopts the identification role
of ReferenceParameters as central to its own architecture.) 
  
The issue regarding the use of ReferenceParameters is sometimes
misleading represented as an issue over the opacity of
ReferenceParameters to client.  Making the issue one of opacity vs.
transparency of the ReferenceParameters misses the main issue.  The main
issue is, What is the referencing mechanism under the Web?  Where/How
should the resource identification information be incorporated into a
Web reference?  The architectural requirement of the Web is that all
such information be placed in the URL (essentially the <wsa:Address>
particle of the EPR), not spread out in other elements of the EPR.  It
follows that incorporating the identification information into the EPR
cannot be achieved by placing it in a "less" opaque element such as
<wsa:Metadata> or even an extension element. 
  
To have an acceptable EPR scheme, therefore, the resource identification
information must be contained in the URL that is the value of the
<wsa:Address> element.  A case might be made for using EPRs under this
condition if the reference is to root element of the document (the URL
would essentially be the URL of the document itself).  However, we
encounter a problem in the case of referencing a segment, or fragment,
of a document.  As I understand it (although I haven't found anything
that explicitly says this), the use of fragment identifiers is
illegitimate in EPRs because they are handled by the client-servers
providing resources do not handle fragment identifiers in the
identification of the service being addressed.  On the other hand, could
the query component of the URI be used?  This seems dubious to me, since
a query must contain non-hierarchical data (which a document fragment
certainly is not).  Modifying the URL to reference a document fragment
appears to be the only solution to sustaining a robust EPR reference
scheme that is consistent with the semantics of EPRs; however neither
the query component nor fragment identifiers seems to be a possible
course to address achieving this scheme.  (Ok, I'm "instigating" here
:-).) 
  
Indeed, I'm wondering what is the use-case behind the creation of a
document reference scheme using EPRs.  Typically, EPRs are provided by
services to clients so that those clients have a means (and possibly
other relevant information) to establish an active connection with those
services.  I suspect the use-case for the EPR reference scheme involves
a SML consumer that is actively going out to an information resource (in
real time), which is addressed by the EPR, to obtain some information
contained in the document that the information resource makes available.
There are protocols to accomplish this exchange, e.g.,
WS-ResourceProperties (OASIS), fragment-level "get" in WS-Management
(DMTF), and WS-ResourceTransfer (unaligned).  This exchange cannot be
accomplished simply through the EPR.  What must the EPR scheme look like
to satisfy this use-case?  We would need the EPR in order to address the
resource, but we would also need to know the message exchange protocol
and the structure of the SOAP Body (or in one case, an element of the
SOAP header - !) that specifies the query for the desired fragment of
the document.  (The query language can range from referencing a single
child of the document root to a full XPath expression depending on the
protocol.) 
  
If the conclusions reached here are plausible, then I would suggest that
the minimum course is to remove the EPR reference scheme from SML and
let it be defined by a separate effort.  (Now I'm trying to be
provocative. :-).) 
  
Kirk Wilson, Ph.D.
CA Inc.
Research Staff Member, CA Labs
Intellectual Property and Standards
Council of Technical Excellence
W3C Advisory Committee Representative 
Tele: + 1 603 823-7146
Fax:   + 1 603 823-7148
<mailto:kirk.wilson@ca.com> 
  

Received on Saturday, 8 September 2007 15:27:24 UTC