Hi Richard and all,

Apologies for taking so long to give the draft profile a good read, I finally 
did so on my flight to OR. I have a few global and structure comments, a 
question about intention meaning, and then a number of more specific comments. 
Sorry if I say something silly because I missed discussion, feel free to flame 
any such comments.

Cheers,
Simeon


Structure and Global

- There is a great deal of repetition between the descriptions of requests for 
separate metadata and file create/replace/add, and for Multipart 
create/replace/add, which I think makes them seem more different and 
complicated than they are. Could sections 6.3.2, 6.5.3 and 6.7.4 be rewritten 
to specify only the behaviors specific to the Multipart combination and 
avoiding repetition of the metadata/file parts?

- It seems odd to me that section 6.3.2 (Multipart Deposit) before section 
6.3.3 (Metadata / Atom Entry Deposit)? Would is be better to mirror 6.5.X and 
6.7.X and do file/metadata/both?

- For symmetry, should section 6.5.3 be renamed "Replacing the Metadata and 
File Content of a Resource"

- There are several "(or other allowed)" => "(or other allowed value)" in 
packaging descriptions


Question

- In sections 6.5 and 6.6 there are requirements for the server to "effectively 
replace" or "effectively delete" all the existing content. This is very vague 
and I wonder whether we can say something more specific. I'll hazard a 
suggestion: Do we really mean that these actions should replace/delete all 
existing content at the Cont-IRI? And that any mechanism to implement 
versioning would, in effect, move existing content to some other URI? I know 
that this is a way to think of how it happens for arXiv and I have been trying 
to think how one could meet the conditions currently specified without renaming 
the resources (changing the IRIs).


Detailed comments

- 3. in Cont-IRI parens: "...is returned will be through..." => "...is returned 
will be decided through.."

- 3. last para: "differentiable" => "distinct".

- 5. I think the opening sentence needs few more words explaining what this is 
about. Perhaps start 

"SWORD defines the following IRIs to indicate basic packaging formats. 
Additional packaging format IRIs may be added to this namespace as described in 
[Section 7]."

- 6.1 sword:maxUploadSize bullet: would it be simpler and less open to 
m-is-interpretation (k = 1000 or 1024?) to specify this in bytes rather than 
kB. HTTP, for example, use bytes for Content-Length so this would seem more 
consistent.

- 6.1 sword:maxUploadSize bullet after example: I'm really not sure what this 
ends up saying with a mix of "don't make assumptions" and then "be reasonable" 
which, of course, depends on some assumption. To me the idea of no size limit 
at all is silly: there will be one either intentionally or by some practical 
limitation (might not be well defined though). I would propose removing the 
recommendation:

"If no sword:maxUploadSize is specified, the client MUST NOT assume any 
particular size limit unless one has been communicated outside of the SWORD 
protocol."

- 6.1 sword:acceptPackaging bullet: I think it is a little misleading to 
describe the binary package format as for "opaquely packaged content" as I 
think a more common case would be a file that is not packaged. Perhaps change 
the ending from "in order to deposit opaquely packaged content" => "in order to 
deposit content that the server should not attempt to unpack"

(Having read the notion of binary format wrong the first time I read through 
the document I am now quite happy with that a null-packaging or don't unpack 
format that could stand for either a file that isn't otherwise packaged or is 
"opaquely packaged".)

- 6.3.1 Should the title of this section be "Creating a Resource with a File 
Deposit" (the current use of the word "Binary" seems confusing with the binary 
packaging when it could be any packaging format). 

- 6.3.1 first para, following on from suggested change of title I would also 
change "binary content" in the first sentence: "The client can create a 
resource by POSTing the binary content as the body of an HTTP request" => "The 
client can create a resource by POSTing content as the body of an HTTP request"?

- 6.3.1 after second set of bullets: "Once the server has processed..." => 
"Once the server has successfully processed...". I think "successfully" has to 
be added in all the cases where there isn't an explicit ", or an appropriate 
error code". I'll try to note each one.

- 6.3.2 after second set of bullets: "Once the server has processed..." => 
"Once the server has successfully processed..."

- 6.3.3 after second set of bullets: "Once the server has processed..." => 
"Once the server has successfully processed..."

- 6.4 start of first para: perhaps "The Deposit Receipt MUST contain two 
IRIs...."? since this is a requirement for the server.

- 6.4 end of first para: I'm a bit confused by the language which I think is 
trying to say "don't worry it isn't complicated" and "in the examples we use 
EM-IRI but you could issue the same GET requests using Cont-IRI". I suggest 
replacing the last sentence:

"The Deposit Receipt MAY specify the same URI for both the EM-IRI and the 
Cont-IRI, though this is not required. The examples in this section use the 
EM-IRI but the same GET requests may be issued against the Cont-IRI."

- 6.4 para about On-Behalf-Of header: What does "for informational purposes" 
mean? It could mean, you may put it in the request but the server isn't allowed 
to do anything with it. Or it could mean, you can put it in the request and it 
is not specified whether or what the server might do with it. I think this 
should be made clear.

- 6.4 enumerated point 1: can one have SHOULD/MAY as options? Would that have 
to be RECOMMENDED/MAY? Either way the second sentence needs to be more general 
than saying SimpleZip, perhaps:

"If the Accept-Packaging header is not supplied, it is RECOMMENDED that the 
server provide the content using simple ZIP packaging (see Section 5: IRIs), 
but MAY elect another format. The server MUST supply the client with a package 
which meets the chosen specifications, and SHOULD provide the appropriate 
format IRI in a Packaging header on the response."

- 6.5.1 Metadata Relevant bullet: "Metadata Relevant" => "Metadata-Relevant"

- 6.7.1 third para: "the operation will not formally support metadata handling" 
seems very vague. I think the intent of this paragraph is to say that this 
operation does not allow a client to specify make any explicit change to the 
metadata associated with the item, but that the Metadata-Relevant header gives 
control over whether the server may try extracting metadata. I suggest:

"The EM-IRI represents the Media Resource rather than the Container (SE-IRI, 
see Section 6.7.2). Thus, a POST to EM-IRI does not provide the client with any 
explicit control over the metadata associated with the Container, nor does it 
provide control over packaging of the Media Resource. Nonetheless, the client 
may use the Metadata-Relevant header to indicate that the file being uploaded 
may contain extractable metadata that could be used to augment the metadata of 
the container."

- 6.7.2 end of para 3: "should consider implementing Section 6.7.1 for such 
operations" => "should consider implementing Section 6.7.1 to add files to the 
Media Resource." 

- 6.10 suggest change of section heading to "Use of SWORD headers with 
arbitrary IRIs"

- 6.10 last para, suggest being more explicit than "arbitrary" => "The client 
MUST NOT assume that a SWORD server will support these headers for IRIs not 
specified in this profile."

- 7.1 first para, typo and suggest removing redundant "reasonable" in: "both 
binary and Multipart deposits, and make reasonable requests..." => "both single 
file and Multipart deposits, and make requests...".

- 7.2 suggest as "and replacement" to section heading

- 7.2 para 3: I think this applies to both POST and PUT requests. I suggest:

"If a server receives a POST or PUT request with an unacceptable Packaging 
header value, it MUST reject the request by returning an HTTP response with a 
status code of 415 (Unsupported Media Type), or store the content without 
further processing (as per [SWORD001])."

- 11. At some level a name is a name and it doesn't matter two much what we 
call this provided we are consistent. However, I'm really not sure that "SWORD 
Statement" is the best name for this, particularly as we mix in some semweb 
stuff where we might call a triple a statement or assertion. Maybe folks have 
been round the block on this a bunch but I could think of options like 
"Manifest" or "State Document" or "Status Document"

- 12. Error Documents. Is it worth suggesting that the short error description 
(atom:summary) might be presented to a user? This seems to me a useful 
distinction from the sword:verboseDescription which is suggested to be for 
developers.


 LocalWords:  maxUploadSize kB

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Sword-app-techadvisorypanel mailing list
Sword-app-techadvisorypanel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sword-app-techadvisorypanel

Reply via email to