[oslc-cm] V2 specs comments [long]
Steve K Speicher
sspeiche at us.ibm.com
Sat Jun 19 15:05:30 EDT 2010
Hi Olivier,
Many thanks for the thorough review. Responses included inline...
Sorry for the delay in response, started to draft it over a week ago and
logged/worked some of the issues already.
Thanks,
Steve Speicher | IBM Rational Software | (919) 254-0645
Olivier Berger <olivier.berger at it-sudparis.eu> wrote on 05/27/2010
09:15:48 AM:
> From: Olivier Berger <olivier.berger at it-sudparis.eu>
> To: "oslc-cm at open-services.net" <oslc-cm at open-services.net>
> Date: 05/27/2010 09:16 AM
> Subject: [oslc-cm] V2 specs comments [long]
> Sent by: oslc-cm-bounces at open-services.net
>
> Hi.
>
> I've finally taken some time today to review the
> http://open-services.net/bin/view/Main/CmSpecificationV2 (as of r. 28)
> and here's a list of my comments / questions / issues found :
>
> Issues already tracked in
> http://open-services.net/bin/view/Main/CmSpecV2Issues :
>
> 1. -> need to fix the examples in appendix a to use something
> else than oslc_cm for severity/prority prefix ?
DONE, ns prefix fixed
> 4. -> the discussion inline example in appendix a is misleading
> as looks like complete doc, even no mandatory attributes are
> there : suggestion : remove it completely if discussion is now
> in core.
DONE, removed example
>
> New comments / suggestion / issues in the order I spotted them reading
> the specs draft:
>
> * suggestion to add in the introduction some mention that these specs
> regard both data types and protocol elements regarding the service
> interfaces behaviours (i.e. OSLC-CM is not a data format nor a simple
> API, but a full set of a quit extensive protocol).
ISSUE logged
> * add in terminology something about "Resource" mentioning somehow the
> RDF / SemWeb context (hence URIs, resource links, etc.)
ISSUE logged
> * in terminology "Change Request resource", mention "bug report" as
> another possible explanation of what a CR is
DONE, updated.
> * terminology - Consumer : replace "consume" by interoperate to refer to
> a protocol more than a data format (for instance in context of delegated
> dialogs)
No action taken, a client can "consume" either delegated dialogs or
RESTful services. I may take a another pass at a writeup but nothing
better comes to mind.
> * Base requirements / Compliance : which OSLC-Core version explicitely ?
> (1.0 ?) must OSLC-CM V2 be compliant with ? (I assume not any later
> version without OSLC-CM version increment ?)
I am not sure I understand the issue here. The current draft says that it
depends on Core 2.0. Are you suggesting that is should state "at least"
Core 2.0?
ISSUE logged to track this
> * Namespace : the prefix "oslc_cm" is a convention in the specs document
> but not mandatory for services implementation, I think (at least in
> XML/RDF fragments, the xmlns may be named any way provided it's
> consistent)... in JSON maybe mandatory ?
It is intended to both be a convention in the spec, as well as required in
some cases. For example, when used in URL query syntax and property
requests, to not have to define well-known namespaces.
Will work to update this.
> * Resource formats / UIs : mentioning (X)HTML explicitely for UIs (since
> REST HTTP-based protocol, that would make sense/ be implicit ?) ?
ISSUE logged, agree we should be more explicit here.
> * Authentication, Error response, Pagination, etc. up to CM Resource
> Definition may not be placed early in the docs, as not so much
> important, and the impatient reader may prefer to learn about more
> important aspects, i.e. what change requests are ? so, I'd suggest
> mentioning that details about these aspects will be provided later in
> the docs, and directly introducing the resource description as soon as
> possible.
ISSUE logged, attempted to do this and agree these sections should be
first.
> * Request and Updating Properties -> add ... Updating /RESOURCE/
> Properties.
I don't understand this comment, what are you proposing as a change? Is
it the need to qualify properties as being "Resource" properties?
> * Requesting subset of properties : what is a "non-extended" resource
> property ? What is a wildcard ?
Extended properties are defined in the core.
Wildcard ('*') is a way to define that a client wants all properties.
I have updated this section to be more clear.
> * Updating a Subset of Properties : changed GET to PUT for in the wiki.
Thanks
> * State Predicates : definition of what a predicate is should go first
> (or in terminology at beginning ?) : on the 3 paragraphs, the last one
> should be first IMHO : the rules first, and the rationale / use case
> later.
ISSUE logged, will work to better define this section.
> * Resource Changerequests : explain why "properties are not limited to
> the ones defined in these specs" : extensibility seeked by OSLC, RDF
> natively extensible, etc.
Intent is to just make it clear, that definition is open.
> * Resource properties tables : Type columns values should be documented
> (or pointer to the legend of the table, i.e. a "Resource" is a URI, what
> a XMLLiteral is (examples of these may be welcome here) ... etc.
These are defined in the Core. Reference will be added.
> * dc:identifier : the rationale of having it in addition to the resource
> URI may be necessary, IMHO (in particular due to the fact that it is
> "not meant for user display") should updates be made using it and such
> (in principle not for REST API where URL of resource may be the only way
> to manipulate resources from the consumers ?)
The rationale of having this as many bug trackers have the notion of a
"Bug ID". It is often, if not always, defined by the tool upon creation
of a bug record. This is different than something such as dc:name, which
defines short "display" string. For example, I could see something like
this:
<oslc_cm:ChangeRequest rdf:about="http://example.com/bugtracker/rec421">
<dc:type>Bug</dc:type>
<dc:identifier>123</dc:identifier>
<dc:name>Bug-123</dc:name>
</oslc_cm:ChangeRequest>
I will provide a better example to illustrate these.
ISSUE logged to track action.
> * dc:creator : this has been discussed several times but the end
> result / rationale is not clear : explain if specific requirements
> (original submitter or user in app, and if none, then provide some
> example with explicit list of potential different uses) ?
ISSUE logged. As stated, this has been discussed by WG and this was the
resolution. We will review your issue.
> * rdf:type : should it be constant and set to
> http://open-services.net/xmlns/cm/2.0#ChangeRequest ? if not, then
> example ? (/me thinks not, as subclassing would be useful for
> polymorphism)
ISSUE logged, agree that it is not constant but should be either that or a
subclass of.
> * oslc:serviceProvider : shouldn't it be more "meaningful" if named
> like : changeManagementService, even if the target resource is a
> oslc:Serviceprovider ? what's the rationale for zero-to-many ? wouldn't
> zero-to-one be enough ? (and if possible then provide an example of a CM
> resource "shared" by multiple services ?)
ISSUE logged. oslc:serviceProvider is common property and makes it easy
for clients to just ask any OSLC resource for its service provider
definition, agree it should be zero-to-one.
> * oslc:instanceShape : "oslc:ResourceShape" in Type and "Response" look
> inconsistent : what is a Response here ? (ok, one may RTFM the core, but
> should be as explicit as possible IMHO)
ISSUE logged, there has been some recent discussion in core regarding this
space.
> * oslc:discussion : Resource -> Resource or Local Inline Resource ?
Intent is to say that a service provider can either include it inline
(blank node) or as a URIref to another resource.
> * Additional properties -> OSLC-CM specific properties ?
>
> * dc:type : ain't it a core property (since "dc", would look like") ?
> looks ambiguous with rdf:type for non-experts... and error-prone... why
> not explicitely using some oslc_cm:changeRequestType ? and... the
> examples of potential values would be helpful, me thinks (what's the use
> of it if there's rdf:type that can refer to specific subclasses of
> oslc_cm:ChangeRequest (OWL in mind)) ?
ISSUE logged, there has been some recent core discussion and will bring
this in line with that.
> * oslc_cm:status : maybe should refer to the predicates ? (am I right
> that the String litteral refers to the oslc_cm:open..oslc_cm:reviewed) ?
> "performing an action"... uh... how ? a REST call on one of the
> Services' Description's endpoints ? Something as common question as "how
> OSLC-CM V2 specifies the way to close a change request ?" should be
> straightforward to ask (even if the answer is : we don't specify this in
> OSLC-CM, only the way to know a Change Request's status).
ISSUE logged. There are no standard values for oslc_cm:status. This is
intended to be a representation of the current status (single value) of a
change request. Will rework the "performing an action" statement.
> * State predicate properties : that is far from clear and needs examples
> I think... I'd be very much annoyed to have to implement such specs at
> the moment for our Mantis add-on> * May a basic workflow diagram /
matrix help here, since some predicates
> values seem mutually exclusive ?
ISSUE logged
> * Relationship properties : the specs should convey non-ambiguous
> semantics as much as possible (at least if refining "related" into more
> precise variants)... and I'm afraid the context and vocabulary is far
> from obvious for plan item, tasks, requirement, etc. Examples would help
> a great deal ;-)
ISSUE logged, clean up wording and examples
> * Relationship descriptions would benefit from some OWL like domain +
> range resource types (and in this part of the document we'd assume that
> only domains being Change Request would be mentioned first, and inverse
> relationships whose range is Change Request would be flagged separately,
> in case there's no bi-jection)
ISSUE logged, incorporate additional relationship guidance from core
> * Resource ProgressTracking : what's a "child task" (btw, what's the
> semantic distinction between a task and a change request may be detailed
> fruitfully ?)
ISSUE already logged on this
> * Creation factories : "Services definition." -> "Service Provider's
> Resource definition." ?
>
> * Query Capabilities : fixed "creation" -> "querying" in the wiki
Thanks
> * Version Compatibility with 1.0 Specifications / Media Types : what's
> the difference (not) with 1.0, exactly here ?
ISSUE logged, action to update spec.
> * Samples : may need update (TODO to be added ?)
Outstanding action on the editor (me) to do this.
> Hope this helps.
Yes, very much.
More information about the Oslc-Cm
mailing list