[Oslc-Automation] Availability Spec review - my feedback - OSLC Actions - thread 1 general comments
John Arwe
johnarwe at us.ibm.com
Wed May 14 14:13:28 EDT 2014
[off topic gripe] Oy, this kind of thing is why we need a real comment
tracking system. Splitting into several smaller threads based on (and
trackable in the archives via) unique subject.
"page only available to wg members" is fixed. I also asked the webmaster
to update that message when he gets a chance by adding instructions/ptr to
same on how to actually make the change. I had to retrieve that bit of
memory from drum, and the submitters probably never had it to retrieve.
reminder to all: don't rely too heavily on formatting in emails to
communicate your point. Anyone looking at the web archives won't see
formatting.
> I expect John would suggest "oslc-availability" for the standard prefix,
but oslc_avail is more consistent with Automation 2. I don't mind either
way.
I never lay in the tracks over choices like this.
I tend to like the long form in the specs and examples *only* because it
makes things more self-defining to new readers, and I hate underscores
(requires coordination to hit 2 keys with opposite hands). On the wire I
don't think it matters; most production services would use a gzip transfer
encoding anyway, and both zip well. Plus implementations can always
choose their own prefix binding.
> "It is recommended that any additional properties exist in their own
unique namespace ... A few paragraphs down we make it a SHOULD - I guess
that's the same as "recommended" in prose).
As our Terminology section already says, RECOMMENDED (in caps) is already
a 2119 keyword, and 2119 equates it to SHOULD. So just uppercase the
first, decide whether or not you need to say it 2x (if not choose one and
nuke), done.
> I would suggest something longer in the namespace URI though, perhaps:
http://open-services.net/ns/availability#
+1
> Please create a vocab document (or a wiki page to use as a draft) to
define each of these terms outside the conext of these particular resource
tables.
You might want to take advantage of a spec authoring tool we have queued
up internally for submission to Eclipse Lyo. Today it translates between
wiki markup and OSLC resource shapes. It would be easy enough to extend
it to take a set of shapes and generate a skeleton vocabulary document.
There's a small Core vocabulary extension to handle the common "X is
usually a Y" boilerplate, too. I'm not sure where it is in the
contribution process, but I can give you an internal contact.
> John: What does "read-only" technically mean here? The most important
question here for this version is: would changing the read-only flag for a
property in a subsequent version cause any problems? And is a provider
non-compliant if they allow it to be written? If not, I'm happy to leave
it, as it can always be changed if anyone raises a scenario for those
cases.
Based on (extensive and spirited) discussions a year or two ago in Core
where I poked at exactly that kind of question, I believe the consensus
was that the resource shapes (resource tables are equivalent expressively,
just in wiki markup syntax) set expectations ( <- the Key Word) for
interoperability, but do not equate to compliance requirements (indeed,
the term 'compliance' is undefined in the context of OSLC, for anyone who
wants to invoke formal logic). One reason is that scenarios commonly need
and expect different values based on the method, not just the resource.
Write-once values often can be set only on the POST to create, for
example. Yet the specs don't have separate tables for create vs
later-update; they're assuming the normal case (update, since you can only
create something once) and assuming that the values for other cases
(create) might be different.
> why the link is pointing in this direction, and not from the group to
the members? ... If we require looking up of reverse links,
Don't infer which triples the server serves from the tables alone. Using
the memberOf pattern we have here, GET against the group can still serve
the memberOf triples (whose object, not subject, URI is the group's URI);
the members can ALSO serve those triples if they like; there might be one
backing store, or two; as an interface, you shouldn't be able to know and
shouldn't care. As long as you keep that in mind, it makes a lot less
difference which direction they "appear" to point. There are valid
trust/provenance issues if the collection and members are served by
different servers (as in: server A is telling me that server B.member2
says it's a member of A.groupZ ), but unless that's expected to be the
case here they're no worse than in any other spec.
So this is, in the end, best answered simply in terms of the scenarios. If
there is a clear winner in terms of which "direction" things are likely to
happen, makes sense to use that in the tables. If not, it's nothing to
agonize over because of the RDF flexibility ... you could even put them in
both tables, if shapes were well-defined for that case, but they're not so
today the best alternative is text following the "losing" table where
they're absent.
> John: Can range be used like this?
I think you're referring to the ">=0" range. Short answer, no, that goes
in the description or normative text. As a general comment, any time the
type is other than resource, the representation and range values must be
N/A. I think the wiki/shape tool would catch this and complain, btw. I
know most people have not memorized the valid column combinations (a close
look at almost any of the 2.0 specs proves that!), so I know I have code
somewhere that checks it... and I'd bet that said code was fed into the
authoring tools contribution mentioned earlier. While I'm capable of
committing that kind of fussiness to memory given sufficient practice, I
consider that valuable real estate best used for other things.
> Should this [X] be an rdfs:subClassOf Y ... I think we can always add
subClassOf in future, but removing it would be harder
Recall that OSLC Core WG has explicitly chosen to actively DIScourage any
requirement for clients to support inferencing. They/we've not, to my
knowledge, enshrined that as a MUST NOT in any spec, although IIRC I've
raised that as a "why not?" In the vocabulary document, I suspect we
could go either way. It does mean however that, in a serialization of the
resource, one should always (if we did subclass things) find at least two
type URIs, X and Y... that's how you avoid the subclassing creating an
implicit requirement for clients to inference.
> why is it "often" an AG
FYI, in my copy of the PDF (uploaded April 23 according to the wiki) the
word "often" never appears, so I wasn't able to connect that to any
specific case/location.
> You don't have any text about ...how the client can change the condition
of an availablity resource.
I assume you're after content analogous to Automation 2.0 "how a client
can cancel a request". That seems appropriate.
Best Regards, John
Voice US 845-435-9470 BluePages
Cloud and Smarter Infrastructure OSLC Lead
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-automation_open-services.net/attachments/20140514/41952126/attachment-0003.html>
More information about the Oslc-Automation
mailing list