[oslc-core] TRS spec comments & questions

John Arwe johnarwe at us.ibm.com
Tue Jun 10 09:07:07 EDT 2014


I'm not one of the perpetrators ;-) of TRS, but I would be 'unsurprised' 
if we ended up using it at some point and hence I have some interest here 
too.

> TRS:   Paragraph 3: "Specifically the Tracked Resource Set 
representation will contain ...
I agree with Martin that "here be dragons". 
1: Compare "MUST contain the triples for the referenced Change Log (i.e., 
via a Blank Node, or an inline named Resource). " here against [1] where 
the value-type for a TrackedResourceSet's trs:changeLog predicate is 
Resource and Representation is Either.  According to [2] and [3], value 
type= Resource == URI reference (disallowing blank nodes).  To be fair, 
Representation == Either *does* permit a blank node.  [4] provides no 
convincing evidence either way.  Given the proximate examples that do use 
a blank node, I suspect you want value-type = AnyResource. 
2: "including the triples for the Change Events themselves enumerated in 
{TRS-URL, trs:change, ChangeEvent-URI}"  The TRS-URL "variable" conflicts 
with the examples and with [1].  Since this is in the exposition of an 
earlier MUST (in fact, the one under discussion in my 1:), it should 
probably be something like "change-log-identifier" instead. 
3: (this is probably a Core 3 cleanup item)  I see no definition of what 
"inline" as a representation actually means in [2] or [4].  Someone 
following their nose comes up empty there, in the only normative text. [3] 
says that inline => blank node, but I don't think that's correct, and 
we've said that vocabulary documents are non-normative in the past ... 
although I am aware that, this being an OSLC-defined term, it could be 
defined to mean what it currently says.  I think people's intuition 
however is that *any* triples can be inlined, not only a blank node's; if 
you want to hang on the 'can' vs 'must', consider hash-resources.  It 
might be simpler in the to just enumerate the valid combinations (hash, 
blank, uri resource) and the corresponding value-type+representation value 
to use.

> Base resources [5]
I suspect the authors were aware that LDP Paging is not yet stable and so 
chose to avoid it.  We split Paging from LDP in March; while it's still on 
the Rec track, it has not yet gone to Last Call so it is not suitable for 
implementations wanting a stable spec at this point in time.  We have 
(fading, in my case) hope that it will catch up to LDP; since it's a 
smaller spec, less implementation delay, so in theory possible.  It's less 
clear why they didn't just refer to OSLC Paging 2.0, which the material 
you quoted appears to re-state.

> Resources and rdf(s):range
I think I raised the "why do these not follow [2] which says [6]?" 
earlier, and was basically told to go mind my own business.  I'm more 
religious about following the open world assumption than most (which is 
why I ended up re-writing these parts of [2] and [6] a few years ago), and 
Core's consensus position has wobbled over time.  Like any non-universal 
rules, opinions will vary as to when exceptions are warranted.  Same way 
that many people read SHOULD as if it was MAY, which is quite different 
than it's 2119-defined intent.
Note that specifying Range-column values here has the semantics of [2], 
i.e. of a resource shape, which is about setting client code expectations 
in a specific usage context rather than contextless inferencing rules 
(rdfS:range).

> multiple values in the "range" column
For the "list of" semantic (since the rest is covered above for 
rdf(s):range), re-following my nose I can see how a reader could be unsure 
of the meaning.  [4] is the closest to being clear on the intent, when it 
says "possible resource types allowed".  I.e. the intent is to say that 
any combination of the listed types is permitted (including combinations, 
if those make sense).  I'm a proponent of [6] of course, so I read this as 
equivalent to the "It is likely ..." convention you cited.  Putting the 
list in Range I read as a "stronger hint" that servers might only accept 
those types (on input) and client might only observe those types (on 
output), but under an open world assumption it's still a hint.

>  ChangeLog: trs:order
+1 to both points

> Appendix B
I think the general intent of this section is to specify the 
machine-readable resource shapes equivalent to those in the tables.
In practice, I don't recall ever seeing it used.  Having two copies of the 
information begs for them to drift out of synch, (so far) both have been 
written lovingly by hand, and once out of synch there will be arguments 
about which governs (which has one of several trivial solutions: declare 
one to be non-normative in advance, declare which takes precedence, or 
declare that the WG must decide once the problem is discovered).
I will note that I have "inspired" some tooling to take either and 
generate the other.   We have started internal reviews to contribute that 
to Eclipse Lyo, since it can (amongst other things) speed up the drafting 
of the OASIS specs by automating some of the syntactic conversions.


[1] 
http://open-services.net/wiki/core/TrackedResourceSet-2.0/#TrackedResourceSet-Properties
[2] 
http://open-services.net/bin/view/Main/OslcCoreSpecification?sortcol=table;up=#OSLC_Defined_Resources
[3] http://open-services.net/ns/core/core.rdf
[4] 
http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA?sortcol=table;up=#oslc_ResourceShape_Resource
[5] 
http://open-services.net/wiki/core/TrackedResourceSet-2.0/#Base-Resources
[6] http://open-services.net/bin/view/Main/OslcCoreSpecAppendixLinks

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-core_open-services.net/attachments/20140610/e773589f/attachment-0003.html>


More information about the Oslc-Core mailing list