[oslc-core] Can we / should we add a 'Compliance' section to the OSLC Core domain

John Arwe johnarwe at us.ibm.com
Wed Mar 9 14:06:46 EST 2011


I always hesitate when presented with can/should questions about specs, 
especially in a standards context.  Can one build tables that (in theory) 
summarize existing content?  Sure.  Should one?  Value judgement, which 
means it devolves to a set of trade-offs and one's own opinion of relative 
probabilities.
Depending upon the use cases we are interested in solving, perceived 
effort, assumed audiences, and perceived probability of various failure 
modes, people often come to different conclusions.  I'm not sure exactly 
which use cases you have in mind from your post.

Take CM's table as an example.  Text before it says: " The following table 
summarizes the requirements from OSLC Core Specification as well as some 
additional specific to CM."
If you summarize in that way, there needs (?) to be some provision around 
what happens in the case of a conflict, i.e. the summarizing table says, 
or appears to say, something different than the summarized content.  Which 
wins (takes precedence)?  Some people like to pick a winner in the spec in 
advance (e.g. in case of conflict, the summarizED content wins), usually 
to avoid delays while the owning "standards organization" resolves the 
conflict.  Others take that tack that it's better to force humans to 
resolve the conflict, even if that delays implementations, so they want 
the spec to explicitly say "no winner, owners must revise to resolve".
If the summary does not win (it is, essentially, informative not 
normative) then it's (probably) duplicate content.  The tradeoff is 
increased spec maintenance effort to keep things consistent across 
changes, vs convenience (assuming it is consistent) or confusion (if 
inconsistent) for consumers of the spec(s).
A separate but related variety of the same problem is completeness.  CM 
appears specifically say "table mays be incomplete".  This leads to the 
"if it's not complete, how useful is it" meme.  FWIW I'm fine with 
incomplete, just says I treat it as a starting point.
Summarizing can also be hard occasionally, due to context and chains of 
implication.  As an example, "OSLC Services MUST support query responses 
in RDF/XML format (media type application/rdf+xml) and MAY support other 
formats" looks like a MUST, but it's 'nested' under (a consequence of) 
supporting the Query Capability (which is a 'may').  If an implementation 
does not support the QC, the current language as I read it says it may or 
may not support RDF/XML.  It's a common problem in spec writing.
If I mentally put on my developers' hat(s), in the large I suspect they'd 
say: a compliance table is exactly what I (as a service provider 
implementation owner) want to see.  I want the list of exactly what I need 
to think about, and the minimum level necessary to assert compliance for 
the purposes of wide interop, and nothing else. 
Someone acting as a service consumer likely wants a similar list (scoped 
only to them).  That would imply, for example, splitting CM's first row 
into two separate assertions, and either adding a column or having a 
separate table for reqts on clients.  I don't know how to slice & dice 
'best' it w/o going back to use cases and then getting into the 
discussions about priorities, probabilities, etc.

I find summaries are generally helpful for new people, and as sanity 
checks e.g. when reviewing a new provider implementation.  The CM approach 
seems like a reasonable set of tradeoffs (to me, based on my unspoken 
assumptions) that could be duplicated in Core.

Best Regards, John

Voice US 845-435-9470  BluePages
Tivoli Component Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20110309/d117c91a/attachment-0003.html>


More information about the Oslc-Core mailing list