[oslc-core] Core Issue 43 : "read only and friends" - representation requirements

John Arwe johnarwe at us.ibm.com
Wed May 23 13:18:30 EDT 2012


Per my action from last week, I've started to draft clarifying changes for 
the subject issue [1].  In comparing the text in Core (defining resources) 
[2] and Core Appendix A (resource shapes) [3] I've run into some new cases 
that we have not discussed in [4] or [5] or IIRC the calls, so the 
original intent is unclear.  I'd like to get some feedback on that, with 
the hope of consensus emerging that I can work into the draft before 
posting it.  To make the threading help as much as possible, I'll be good 
and keep it to one issue per thread.

This thread: [5] never resolved whether spec constraints in the resource 
definition tables are MAY or MUST. 

Representation was used as the specific example in the email, but it's 
going to be a general issue.  I.e. 

Example 3: representation = Either

Interpretation 2a: A server MAY be capable of storing a representation 
(POST-created, PUT, PATCH) containing the in-line resource as an object.

Interpretation 2b: A server MUST be capable of storing a representation 
(POST-created, PUT, PATCH) containing the in-line resource as an object. 
[else: non-compliant]

Some Core members thought the correct interpretation was

[6] 2a: A server MAY be capable of storing a representation (POST-created, 
PUT, PATCH) containing the in-line resource as an object.

Others said:

[7] Both representations are valid (your 2b) 
That being said, there will always be server limitations, so a server has 
the right to refuse a request that violates size or time constraints that 
are unstated anywhere in an OSLC spec.

and this discrepancy was generalized in [5]
Ok, we are arguing over MUST or MAY on this one.  So I agree that when a 
server advertises its support via the resource shape then it MUST support 
this.  I was taking the original "informative" approach to tables within 
the specification, which I do not think we can treat as a MUST.

The latter excerpt [5] cannot be blindly generalized, even if it is 
accepted for representation (which itself is not settled, based on the 
email trail), since by reductio ad absurdum it would mean that an 
implementation can completely ignore the specs as long as it does what its 
resource shapes advertise.


Core does not define compliance that I can see, but domain specs (example: 
CM 2.0 [8]) have a compliance section up front with language like: "This 
specification is based on OSLC Core Specification. OSLC [domain] consumers 
and service providers MUST be compliant with both the core specification 
and this specification, and SHOULD follow all the guidelines and 
recommendations in both these specifications."  I'm guessing that Core 
relies on the social definition. 

Thus "compliance" divides things into "specs" vs "guidelines and 
recommendations".  I had always assumed the resource definition tables to 
be part of the spec, which I inferred to mean they are MUSTs;  [7] 
supports that interpretation, as does [2] ("OSLC Specifications MAY 
provide a list of properties allowed and/or required for a particular 
operation on an OSLC Defined Resource. Specifications that do so SHOULD 
provide the following information for each property that they define." ... 
explicitly says specs provide lists of property requirements).  I don't 
see how to read [5] as a MUST, seems clear Steve's intent is "not MUST"; 
indeed, if Steve was being precise when he said "informative", then by 
definition the tables would fall into the "guidelines and recommendations" 
category.


I came in far too late in the game to have a clear idea in my head of what 
Core's intent was, so I need Core to settle this in order to draft content 
that communicates this intent.  It may be that in addition to settling the 
general question of intent (are resource definition tables "spec" or 
"guideline"), we need to see what implementation freedom Core intended to 
allow per-column, so if you think that distinction needs to be made then 
call those out in your answer.




[1] http://open-services.net/bin/view/Main/OslcCoreV2Issues
[2] 
http://open-services.net/bin/view/Main/OslcCoreSpecification?sortcol=table;up=#OSLC_Defined_Resources
[3] 
http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA?sortcol=table;up=#oslc_ResourceShape_Resource
[4] 
http://open-services.net/pipermail/oslc-core_open-services.net/2012-April/001288.html
[5] 
http://open-services.net/pipermail/oslc-core_open-services.net/2012-May/001314.html
[6] 
http://open-services.net/pipermail/oslc-core_open-services.net/2012-April/001292.html
[7] 
http://open-services.net/pipermail/oslc-core_open-services.net/2012-April/001299.html
[8] http://open-services.net/bin/view/Main/CmSpecificationV2

Best Regards, John

Voice US 845-435-9470  BluePages
Tivoli OSLC Lead - Show me the Scenario
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20120523/ac684470/attachment-0003.html>


More information about the Oslc-Core mailing list