VOSpace v1.15 PR comments
Norman Gray
norman at astro.gla.ac.uk
Mon Jul 13 04:11:33 PDT 2009
Greetings.
Below are some comments on v1.15 of the VOSpace PR.
There are no deep conceptual queries, nor any comments which are
merely typos. They are mostly about the style and detail of the
prescriptions in the document. I haven't been at all involved in the
VOSpace developments, beyond some coffee-time chats about it with Dave
or Matthew, so I'm coming at this spec almost completely naive.
The comments are in document order.
Format: the page at <http://www.ivoa.net/Documents/cover/VOSpace-20090505.html
> shows only a .doc file as the available formats. I trust that's a
draft-only state of affairs, and there'll be an HTML version for REC,
yes? If I recall correctly, the Document Standards document
prescribes HTML with a PDF alternative.
Conformance related definitions: the document says 'in upper or lower
case', but I think it should be restricted to only upper-case uses (or
some other distinguished way). For example, in Sect. 3.3.3 there's a
lowercase 'should' which is not a normative one. As far as I can see,
the document has been consistent in using MUST and SHOULD in upper-
case in all normative contexts, so this will need little or no editing
in the body of the text.
Sect 2: "A client SHOULD use the following procedure". Using SHOULD
suggests that there may be a sensible reason for not using this
procedure, which suggests that there is some other under-the-counter
way of getting this information. If the concern is efficiency, then
an alternative way of putting this might be "A client MUST use a
procedure which is equivalent to the following": that means that a
client can use a different procedure for efficiency reasons, but
forbids any under-the-counter mechanisms (such as static local
configuration files) unless they provably have the same effect, unless
you do want to permit that in some circumstances.
Sect 2: there's a description of the resolution procedure for the
'vos' scheme, which I believe illustrates quite well the vices of non-
http URI schemes. This battle has of course long been lost, and I
have no wish to reopen it here -- I simply wish to lodge a 'gaarrrk,
cough, blech!'.
Sect 3.1: the 'StructuredDataNode' definition might usefully and
painlessly be made more precise than 'preserve the meaning'. Perhaps:
"StructuredDataNode describes a data item which the space
understands. A space MAY make transformations on such an item which
results in a representation which is syntactically different but has
the same information. For XML formats, for example, this means any
serialisation which has the same InfoSet [ref], and for FITS it means
any FITS file which corresponds to the same (unordered) set of card
images."
Sect 3.1: "URI-encoded according to RFC2396". What work is "URI-
encoded" doing here? If whoever is minting this URI has, in the
process, URI-encoded it or not, that's not the business of this spec;
and if it for some reason hasn't been encoded and needs to be, then
it's an invalid URI. Also, RFC 2396 has been obsoleted by RFC 3986.
Similarly with the "LinkNode" definition.
Sect 3.1: "MUST have no data bytes associated with them". This seems
an odd way of phrasing this, unless you mean to suggest that a
ContainerNode or LinkNode could have a non-empty set of data endpoints
associated with them, as long as those endpoints, when dereferenced,
produce zero bytes (I'm not saying that this would be unreasonable,
but it seems surprising and might therefore be worth commenting on).
Might it be more natural to require that a ContainerNode's 'provides'
and 'accepts' methods return empty arrays, which would have the same
effect with less scope for misinterpretation? If I'm understanding
the process correctly, then it's impossible in any case for a LinkNode
to provide any data bytes, since it doesn't have a 'provides' method
on it (in which case this MUST is redundant and therefore confusing).
I realise, by the way, that I'm not confident that I _am_
understanding the process correctly: the description in Sect. 2 stops
at the point where the client has retrieved a VOSpace endpoint, and it
might be useful to continue this example to the point where an HTTP
endpoint (say) has been identified and some bytes retrieved.
Sect. 3.1: "SHOULD return a TypeNotSupported fault". I can't think of
any other sensible possibilities -- should this therefore be a MUST?
Sect 3.2.2: "The rules for the Property ... on a public service" (and
the corresponding text in Sects. 3.3.2, 3.4.2 and 3.5.1). I think
this passage has some problems.
This Sect. 3.2 refers to URIs, URLs and URNs, although RFC 3986 more-
or-less deprecates the latter two (myself, I think that the term 'URL'
is still useful, informally implying a URI which is dereferenceable,
so I'm not saying this is necessarily a defect). Also, it's not clear
from the text why it's talking about XML Schemas in this passage, and
it seems to hint at a requirement without explicitly stating what it is.
Also, I think I would _always_ expect to be able to use non-conformant
URIs in 'testing and development on a private system', so the second
half of this passage seems otiose, and therefore makes me think I'm
missing something. Thus, if this passage is doing something other
than giving me permission to do something I don't think I need
permission for, then I think it might need to be expanded.
Sect 3.2.3: para 2: "Property description" should presumably be
"PropertyDescription" (and again in a later paragraph in this
section). If this isn't a typo, then the passage reads oddly.
Sect 3.5.4.2: "Local NFS transfers". This talks of transfers within a
specific local NFS filesystem. This is so local that it strikes me as
odd that anyone would want to register an IVORN to describe it -- why
would anyone not on this local system ever need to look this up?
Indeed, it strikes me that one could reasonably insist that a site
SHOULD NOT register such cluttering IVORNs.
Sect 3.6.1: para 2. "...the client constructs a Transfer request...",
what happens if there are missing details in the transfer request?
Whose fault is this and what happens next? Can the service use
defaults or try to repair the problem as best it can? (similarly in
the corresponding text in 3.6.2).
Sect 3.6.1: The sentence "The server SHALL be allowed to only use each
Protocol option once" might be more readable as "The server MUST NOT
use any Protocol option more than once". In the following paragraph,
"not allowed to" might be better as "MUST NOT" (similarly in the
corresponding text in 3.6.2).
I hope these remarks are useful.
All the best,
Norman
--
Norman Gray : http://nxg.me.uk
Dept Physics and Astronomy, University of Leicester, UK
More information about the grid
mailing list