Re: [Sword-TAP] My Thoughts

2011-03-18 Thread Tim Brody
On Thu, 17 Mar 2011 21:55:37 +, Scott Wilson
scott.bradley.wil...@gmail.com wrote:
 On 17 Mar 2011, at 21:28, Richard Jones wrote:
 
 On 17/03/11 08:43, Scott Wilson wrote:
 
 On 17 Mar 2011, at 00:25, David Tarrant wrote:
 
 6.6. Adding Content to a Resource
 
 I'll get onto this and point, just as a pointer however look at the
 'Creating a folder' section in the GDocs API.
 
 This whole area of SWORD (secs 6.4-6.6) is effectively doing the same
 job as CMIS. Is there a good reason for creating a new spec here?
 
 If these kinds of operations (remotely manipulating the content of
 virtual packages) are part of the core functions of SWORD, should it be
 a profile of CMIS rather than AtomPub?
 
 I've tried /quite/ hard to get to grips with CMIS without a huge amount
 of success.  It seems extremely large and full of a lot of stuff which
 is way way way over the top for what SWORD is trying to achieve, as far
 as I can tell.
 
 It is indeed rather more complex than SWORD as it is handling content
 management rather than just deposit --

Hi,

My instinct is CMIS is only worth pursuing if you need to talk to an
existing system talking CMIS (e.g. Microsoft Sharepoint). I think someone
earlier pointed out our methodology is RFC-orientated i.e. minimal,
well-defined and, where relevant, re-using existing Internet RFCs. CMIS, by
comparison, defines a full query language, ACLs, CMS-orientated APIs ...

What I've been pushing for with SWORD is:
1) Re-use sensible paradigms from existing AtomPub profiles (CMIS/GData)
2) Behave like an AtomPub implementation (i.e. don't MUST something that
isn't MUST in AtomPub)
3) Modularise the spec. and features to enable flexibility

I just echo what Dave Tarrant has said about talking in real-time with
this. I can see Richard has injected ideas from various sources into the
spec. but these ideas need to be thrashed out between multiple brains. I
was initially thinking we want to add behaviourial controls through headers
whereas I'm more convinced now that these should be IRI parameters, which
will make it more obvious that this IRI is going to behave differently to
the base IRI.

-- 
All the best,
Tim.

--
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
___
Sword-app-techadvisorypanel mailing list
Sword-app-techadvisorypanel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sword-app-techadvisorypanel


Re: [Sword-TAP] My Thoughts

2011-03-18 Thread Alistair Miles
On Wed, Mar 16, 2011 at 10:52:27PM +, Richard Jones wrote:
  6.5. Deleting the Content of a Resource
 
  Should return the 200 header representing what has happened.
 
  I'm against the delete operation on the content URI returning the receipt 
  of the edit-URI.
  No one asked for this, the client asked for the thing to be deleted, not a 
  statement or
  receipt! I've made this point before... it got ignored.
 
 Oh for god's sake Dave, grow up.  It did not get ignored because you and 
 I had a long discussion about it in person.  I argued that since all the 
 other operations can optionally supply a response to a DELETE request, 
 it was inconsistent to not be able to supply one in this one instance. 
 Additionally, the deposit receipt is strictly optional in ALL cases as 
 per the specification.  You argued that DELETE doesn't allow a response 
 (and should return 204), and this turned out to be untrue when I pointed 
 you to the HTTP spec.  I'd appreciate it if you'd actually remember the 
 discussions we've had about this before having a strop.

FWIW, in our data repository implementations, some collections use Atom
tombstones [1,2], and some don't. For collections that use tombstones, a DELETE
request will return a 200 with an at:deleted-entry as the response body. For
collections that do not use tombstones, a DELETE request will return 204.

So I believe it is reasonable to return some content in response to a DELETE
request. Whether you should or not will depend on what the client needs. I
remember seeing some ideas around clients being able to express a preference
for 204 or 200 in response to DELETE, but I don't know if that went anywhere.

Cheers,

Alistair

[1] http://tools.ietf.org/html/draft-snell-atompub-tombstones-12
[2] http://code.google.com/p/atombeat/wiki/TombstonesDesign - ignore the stuff 
about ghosts, that's probably going to change

 
  The client knows the edit-URI as as you say in your video Richard, if you 
  do a get on the
  Edit-URI you can get the receipt again.  This is too overblown here.
 
 It's strictly optional as per the document.  If you don't want to return 
 a receipt in your implementation, then don't.
 
  1) Client asks to delete object at any URI
  2) Server returns http error code
 
  If the server chooses to return anything else then the Content-Location 
  header MUST be
  used to define what it is returning. This is because the client SHOULDN'T 
  be able to call
  the same delete operation to get the same content as the object should 404 
  or 410 at
  that point.
 
 I will add the requirements on the Content-Location header to the spec 
 if that's the appropriate thing to do.  I'm still a little unsure about 
 how Location and Content-Location should be used ... have to go do some 
 more reading of the HTTP spec.
 
  6.6. Adding Content to a Resource
 
  Yuck! This section needs completely re-writing and/or removing. There is no 
  detail
  here on what the server should do with the random content it is given and 
  where it should go.
  If it is posted to the Edit-URI, is the a new EM-URI, replace everything at 
  the EM-URI or
  what. I think if you want to add content (Media) into the container then 
  you post it to the
  Edit-Media URI.
 
 POST to the EM-URI implies something about the structure of the Media on 
 the server.  POST to the Edit-URI is the appropriate RESTful way to add 
 new content to a container.
 
 There is no detail on what the server should do because SWORD is an 
 interface definition not a set of implementation decisions.  How the 
 server implements a POST of new content to the container is up to the 
 precise mechanisms of the application ...
 
  I really don't like this and think we should more closely consider GDocs 
  API here for
  how to handle containers and the limitations.
 
 We have tried to ensure that the GData spec is not ruled out by SWORD, 
 but it brings with it its own set of idioms with regard to hierarchical 
 file systems which may be appropriate for EPrints, but is not 
 necessarily appropriate for all other scholarly information systems.  As 
 such, I'm reticent to propose it as /part/ of SWORD but I do want to 
 ensure that you can implement it /as well as/ SWORD.
 
 I spent some time working through the GData 3.0 spec and was unable to 
 find any information about exactly how they think you should get hold of 
 the feed representation of an entry.  I have assumed content negotiation 
 on the Edit-URI (see Section 6.8), but if you could confirm for me how 
 Google recommend this is done that would be useful.
 
  This whole fudge it and see it not going to help in the future.
 
 this doesn't appear to be a sentence.  can you reword/expand?
 
  Interestingly section 6.6.3 DOES use the EM-URI not the Edit-URI...? Any 
  reason?
 
 Typo, by the looks of it, I will fix that.
 
  Other than that, this looks pretty good. I still believe it can be made 
  much better
  through better alignment with the GDocs 

Re: [Sword-TAP] My Thoughts

2011-03-17 Thread Scott Wilson

On 17 Mar 2011, at 00:25, David Tarrant wrote:
 
 6.6. Adding Content to a Resource
 
 I'll get onto this and point, just as a pointer however look at the 'Creating 
 a folder' section in the GDocs API. 

This whole area of SWORD (secs 6.4-6.6) is effectively doing the same job as 
CMIS. Is there a good reason for creating a new spec here? 

If these kinds of operations (remotely manipulating the content of virtual 
packages) are part of the core functions of SWORD, should it be a profile of 
CMIS rather than AtomPub? 
--
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
___
Sword-app-techadvisorypanel mailing list
Sword-app-techadvisorypanel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sword-app-techadvisorypanel