I've now read through the SWORD proto-internet-drafts 001 to 004, and skimmed 
parts of the profile.  While I think the reorganization of material towards 
possible standardization is a useful start, I think there is a lot of work 
remaining to do.

The SWORD 001 to 004 documents, which I take to be those which might in due 
course be considered for standards track submissions, are way too perfunctory, 
and much of the specific normative material that they invoke is still described 
in the "application" document.  I think the balance here is wrong:  the 
detailed 
normative material should as far as possible be in the proto-standard 
documents, 
with the application document pulling the pieces together and adding 
application-specific elements.

While I have many comments to make about the individual documents, I think it's 
worth standing back and trying to sketch what I think the overall approach 
should look like.

...

My starting point is that SWORD is an application and "thin" extension of 
AtomPub and Atom, themselves applications based on HTTP and XML respectively, 
which is intended for deposit of scholarly materials.

The extensions should be chosen very carefully to be
(a) a minimum set of extenstions that satisfy the application goals,
(b) to the extent possible without adding undue complexity to be generically 
useful to other applications that use HTTP, AtomPub and/or Atom, and
(c) to be orthogonal,  defined and usable in isolation from each other and from 
the SWORD application as a whole.

As such, I think it is important to emphasize the extent to which, and how, 
SWORD uses standard AtomPub and Atom features, and then to call out the small 
areas where there are gaps in the underlying specifications.  Based on my 
reading, I think these are:

(1) mediated transactions

(2) packaged content (though I'm not yet clear why *packaging* alone is what is 
lacking).

(3) server capability descriptions;  though, in the case of collectionpolicy 
and 
treatment, this is information only intended for human presentation, so why not 
just have a description element.  How do these differ from atom:category 
elements in a service document?  An I have no idea what is the purpose of the 
service element.  My point here is that the new descriptions introduced are not 
adequately described (in SWORD 003).

Note that I've separated mediated transfers above from packaged content - I 
think these should be orthogonal issues.

Taking each of these in turn:

(1) Mediated transfers

The extensions here consist of one new HTTP header field, and one capability 
declaration in an AtomPub service document.  I think the latter might usefully 
be covered along with other capability descriptions.  Different HTTP-based 
services might implement different capability discovery mechanisms.

This leaves the on-behalf-of header field, which I'd specify in a separate 
document.  It's hard to define full normative requirements on the use of this 
in 
protocol exchanges, so some specifics may need to be covered in the application 
document, but I think some of the material in the SWORD profile document (e.g. 
elements of section 6.1 - server responding with information restricted to that 
appropriate to the declared user) should be included with the specification of 
the header field.  Also make mention of any appropriate return codes.  Also, 
this will need a serious "Security considerations" section.


(2) Packaged content

I'm really not sure exactly why all the extension elements are needed.  The 
only 
substantive normative statement of behaviour I have unearthed is that if a 
server received a deposit described as using a package format for which it has 
not declared support, then it MUST respond with 415.

AFAICT, everything else here is just wishful thinking about what an implementer 
may or may not choose to do with the information provided.

(It's not clear to me why "Accept-packaging" *and* the service document 
extensions are needed here.  I'm also completely unclear what purpose is served 
by the atom multipart extension; I also think the use of content-disposition 
may 
be broken.)

So, for interoperability, all we need is a way for a server to say "I support 
these features", form a submission to say "I depend on these features" and a 
status response for the server to reject any submission it cannot support.

Under heading (3), we already see other ad-hoc mechanisms for a server to 
declare capabilities.  Why not do this uniformly in some way.

As I say above for mediated transfers, I'd separate the submission feature 
(HTTP 
header) from the capability declaration.


(3) AtomPub server capability descriptions

I find some of the specific "capabilities" confusing, as they are only 
presented 
as human-readable text.  It seems to me that what would be more useful here is 
a 
way to declare both human- and/or machine-readable capabilities in the service 
document, with the specific capabilities used covered in the SWORD application 
document.

...

I have noted many more detailed comments, but I won't post them immediately as 
I 
think they could, or should, be overtaken by discussion of the overall 
structure 
and organization of SWORD.

#g




------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Sword-app-techadvisorypanel mailing list
Sword-app-techadvisorypanel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sword-app-techadvisorypanel

Reply via email to