Sep 092011
 

The SWORD project recently published a call for project proposals to create new SWORD v2 clients.  We are happy to announce that two projects have been funded which we’ll introduce in some blog posts.

This blog post introduces the first of the two: Right-click deposit by Kim Shepherd.  The project proposal aims to:

Create a configurable Windows SWORD v2 client which offers quick access to repository deposit via the Windows right-click context menu.

It would be developed with a focus on easy and non-intrusive installation to allow easy large-scale deployments. It will be designed to take advantage of the familiarity most Windows users have with right-click menus and actions, so that users do not have to learn how to use “yet another app”.

Some usage examples include:

  • Pre-configure repository/collection settings and deposit any file with one click
  • Configure repository settings and select collection at time of deposit
  • No configuration, select all options at time of deposit
  • Configure a range of deposit profiles which can be selected via the context menu

We’ll post updates on this blog as the project develops.

Jul 212011
 

The JISC funded SWORD v2 project has been working to extend the original SWORD protocol that facilitates the deposit of materials into repositories.  Based on the Atom-Pub protocol, SWORD v2 enhances the power of SWORD by taking the existing ability of deposit, and adding the ability to retrieve, update, or delete deposits as they pass through the deposit lifecycle.

The project has developed SWORD v2 implementations for DSpace, EPrints and Fedora.  In addition it has developed client code libraries (APIs) for Java, PHP, Ruby and Python.

In order to increase the number of SWORD v2 client implementations, the JISC have donated over £5,000 to fund new SWORD v2 clients.  The majority of this money is being made available in a contested request for projects.  We are seeking developers or development teams to submit ideas for creating new SWORD v2 clients, either by upgrading existing SWORD clients, building SWORD functionality into other scholarly communications tools, or developing entirely new deposit tools.  In addition a small amount of the money will be used to provide technical support to the winning developers by the original SWORD v2 team ensuring that the projects have access to all the help and support they need.

Entrants are encouraged to make use of the existing SWORD v2 client code libraries.  Using the existing client code libraries will lower the development effort needed, enabling rapid, efficient, and cost-effective development.  Proposals to add SWORD v2 into existing well-adopted and mature systems are particularly welcome.

To enter, please tell us the following, in no more than 3 pages:

  • What you plan to develop
  • How this will have a positive impact on repository deposit rates
  • Who will be part of the development team, and some information about their skills
  • How much money you request to perform this development
  • Contact details for the developer(s), including any institutional affiliations

Entries will be judged by a panel of staff from the SWORD v2 project, UKOLN, and JISC.  It is anticipated that 2 to 5 projects will be funded, depending upon the quality of submissions, and the amount of money that each submission requests.  The decision of the judges is final, and the project reserves the right not to spend the whole amount of money if not enough entries of sufficient quality are received.

By submitting a proposal you additionally agree to the following:

  • The completed project will be delivered within 3 months of being notified of their success.
  • The code created will be licenced with an appropriate Open Source licence (to be discussed and agreed with the project), and the source code published online.
  • All liability for tax, local or foreign on the money is the responsibility of the developers.

To enter, submit your proposal to info@swordapp.org by 5:00pm Friday 12th August BST.  Winners should be announced by the end of August.  Proposals are welcome from any country.

Jul 152011
 

We’re glad to announce that the SWORD v2 project has been granted extension funding by JISC. The original SWORD v2 project has been extending the current SWORD standard from its current model of ‘fire and forget’ deposits, to a full CRUD model where items can be updated, replaced, or deleted too.  The project will deliver the new draft standard, server implementations for DSpace, EPrints and Fedora, along with client libraries in Java, PHP, Ruby, and Python.

For this extension to the project, the SWORD team is joining up with the SONEX team.  SONEX (Scholarly Output Notification and EXchange) have spent the past couple of years undertaking various activities, one of which has been identifying deposit opportunities within the scholarly communications environment.  The SWORD and SONEX teams have worked closely together in the past on exploring how SWORD can facilitate the deposit use cases identified by the SONEX work.

The extension project will be split into two halves:

  1. Explore the applicability of SWORD for dataset deposit
  2. Develop further clients to increase the adoption of SWORD v2

The first part of the extension project has already started.  Projects and researchers who have been working with dataset deposit into repositories are being contacted in order to find out more about the way that data transfer takes place, to see where SWORD could fit in.  In particular, projects of the JISC MRD (Managing Research Data) programme are being targeted.  Once this work has been completed, a gap analysis of their use cases and requirements will be compared with the functionality offered by SWORD.

Further details of the second part of the project will given in other blog posts in the near future – stay tuned: we’re looking for input in the form of ideas, possible systems to be enhanced with SWORD v2 functionality, and we’ll be seeking funded development parters.

Jun 182011
 

Everyone is home from Open Repositories 2011 now.  As usual it was a great conference, and we were once again surprised by how often SWORD is referred to in different presentations.

SWORD was promoted by the team twice at the conference:

  • The SWORD Course: The course was presented by Stuart Lewis and Richard Jones. The slides from the course are available online. This year saw the addition of a new module, ‘An introduction to SWORD v2′.
  • SWORD v2 debut presentation: This was the first time that SWORD v2 has been presented at a large conference. The presentation was delivered by Stuart Lewis and Richard Jones, and showed the evolution of SWORD v1 to v2, demonstrated the benefits and use cases of the new version, and looked at the implementations that are under development.  The slides can be viewed on slideshare.

SWORD also played a part of the Developer Challenge, with a special prize being offered to the the most innovative use of SWORD in an open-repositories context.  The prize was won by a group made up of DSpace developers from New Zealand (The University of Auckland Library, and the Library Consortium of New Zealand) and an EPrints developer from the UK, currently living in Korea.  Part of their submission involved an Android mobile application they had created that could deposit geo-tagged photos directly into a repository using SWORD.

May 212011
 

Are you coming to the Open Repositories 2011 conference?  If so, you might be interested in the ‘Developers Challenge‘.  The theme of the the challenge this year is:

“Show us the future of repositories!”

This competition will be fascinating, as it will allow repository users, managers, and developers to team up in order to show us glimpses of the future, and how repositories will be playing a role in that future.

This year there is an extra prize for the most innovative use of SWORD in an open-repositories context.  In order for repositories to be successful, they need to solicit content.  How do you see SWORD fitting into that?

Many of the SWORD team members, past and present, including a lot of the current SWORD v2 project developers will be at the conference.  If you’d like to talk about SWORD, get a bit of advice about how to prototype with SWORD, or how SWORD could feature in your ‘developers challenge’ submission, come and find one of us for a chat.

Finally, if you’ve not signed up yet but want to come, we’ll be running ‘The SWORD Course‘ again at the conference, between 8am and 12noon on Tuesday June 7th.  Email info@swordapp.org if you’d like to join us.

May 052011
 

The Open Repositories 2011 conference is less than 5 weeks away now, so we thought it would be a good time to tell you about about what the SWORD team will be up to at the conference.

SWORD will be represented at two different parts of the conference:

The SWORD Course
If you would like a general introduction to SWORD, then come to ‘The SWORD Course‘ which will take place during the pre-conference tutorials day on Tuesday 7th June.  The course will run for half a day, from 8am until 12 noon. This half-day course presents an overview of SWORD from the basics such as use cases and an introduction to web services, to the specifics such as packaging format issues and deposit URLs, to hands-on exercises to create new and customized SWORD clients using a web-based toolkit and the reference implementation Simple SWORD Server.  The course is suitable for people from all backgrounds, whether you are a repository manager, repository developer, or interested party.

To book a place on the course, please email info@swordapp.org

Introducing SWORD v2: The Next Generation of Repository Deposit
This presentation will be given during the main track of the conference, and will provide an overview of the exciting work around SWORD v2, why it has been developed, what it will do, and hopefully some demonstrations.

See you in Austin, Texas!

Apr 212011
 

Following a meeting of the SWORD v2 developers earlier this week, development work to implement the proposed SWORD v2 standard has now started.  Our aim is to have things to show by the time of the Open Repositories 2011 conference in June this year.

The SWORD v2 standard is not yet finalised, however it is hoped that lessons learned during the implementations will allow the final wrinkles to be ironed out and agreed upon.

Thanks to generous funding from JISC, the project is able to fund multiple repository and client implementations.  Each of these will be made openly available, and are listed below.  Once development locations or code repositories for these become available, links will be added to this post.

In addition, a Python Simple SWORD Server (http://sword-app.svn.sourceforge.net/viewvc/sword-app/sss/trunk/) has been developed to aid initial testing, and a further automated validation test suite will be developed.

Mar 232011
 

As part of the SWORD v2 developments, the Technical Advisory Panel have been busy discussing many aspects of the proposed new version of the standard.  This has been a lively and engaging process.  If you would like to read these discussions and contribute any feedback, you would be very welcome!

One particularly interesting thread came from the project’s technical lead.  The message concerns the scope of SWORD v2 (what areas it should contribute to, ans which it should not):

Hi Folks,

There’s been some great discussion on the list this past week or two, and I thought it might be time for a summary of what looks to me to be a key sticking point: the scope of sword.

There are two distinct sides to this argument as it’s been articulated on this list:

a) That we should adopt the approach of content management API like CMIS or more likely GData

b) That SWORD should be not say anything about what happens to the content once it is sent to the server.

In general, I am against (a) for a number of reasons.  First, I am concerned that the idioms that are associated with GData are not /necessarily/ appropriate.  The hierarchical file system is a common idiom but an idiom nonetheless, and it wouldn’t be SWORD’s place to therefore build itself over the top of it.  CMIS I have a harder time refuting or accepting, so am open to persuasion either way.  Secondly, I don’t see a reason to re-create a content management standard, since they already exist.  SWORD should, instead, provide support for the things that these standards don’t provide for our sector/use cases, while not preventing the use of them.

From a purists perspective of (b) the main thing that SWORD offers, then, is support for Packaging (with a capital P).  This is a valuable addition to the community since it is both common in our sector and expressly not covered at least by GData and I believe not by CMIS (though again, open to correction).  The support for packaging, though, needs to extend to a full CRUD implementation of AtomPub, which is a large part of what the profile attempts to do.  I think we have had some good technical discussion which which will allow the next draft of the profile to do better at that.

In the mean time, there are some grey area parts of the profile, particularly In Progress and Suppress Metadata which are more content management than they are deposit.  I, personally, think these are important; they are light touch, the profile doesn’t mandate the server to obey them, and they help fulfill known use cases.  Likewise the Statement could be viewed as more content management than not, although we have tried to pitch that as more an informational resource rather than an operational one (i.e. read but not write).

What I’m going to suggest for the next draft is as follows:  we’ll put some more time into analysing the appropriate ways of updating and overwriting deposit packages using the feedback on this list.  And we will extend the profile to cover how you would use the SWORD headers to be used in content management operations /if that’s what your implementation wants/ (e.g. how you might use Suppress Metadata or In Progress with GData).  There will, obviously, be plenty of time for comment.

In conclusion: we must constrain the scope of sword to something which doesn’t tread on anyone’s toes and is of value to the community.  Too far one way or the other and we’ll either be superseded or of no value.

Cheers,

Richard

Mar 142011
 

The team over at CottageLabs.com have created a nice 2 1/2 minute technical introductory video to the SWORD v2 standard.  You can view it via their blog:

The narrator is Richard Jones, the Technical Lead for the SWORD v2 initiative.  The video provides a great high-level introduction to the main technical concepts of the standard, and how these fit into the deposit lifecycle.

Feb 062011
 

Following some great recent discussions by the SWORD Technical Advisory Panel, we’re pleased to announce a few decisions that have been made regarding some of the details for the new version 2 of SWORD.  The full email announcing the decisions is shown below, or can be seen in the list archives of the technical advisory group: http://www.mail-archive.com/sword-app-techadvisorypanel@lists.sourceforge.net/msg00105.html

The decisions came about from discussions within the group over the past few weeks.  They relate to the following questions:

  1. Whether the Statement should be embedded in the Deposit Receipt or be a separate document referenced in an atom:link element: In order to allow SWORD v2 to move from a fire-and-forget methodology to one where a SWORD client can interact with the deposit through what we’re calling the ‘deposit lifecycle’, some form of feedback is required where the client can ask the server for details of what has happened to the deposited item(s).  The proposal is to support this via the provision of a ‘statement’.  Think of it a bit like a bank account statement: You can see what has gone into the bank account (deposits), what might have have happened to the deposit (e.g. interest being added), and full details of of the item.The question here, was whether a copy of the statemnet should be given to the SWORD client when it makes the deposit(s), or if the client should ask for a copy of the statement whenever it wants it.
  2. Whether to use OAI-ORE for the Statement format or an Atom Feed (as per CMIS and GData): There is a decision to be made as to how the statement should be formatted.  Should it be formatted as an OAI-ORE resource map, or using an Atom Feed.  There are pros and cons for each method.
  3. How the client and server should negotiate over the format of the content returned by the edit-media link (EM-URI): If multiple formats of statement are allowed, how should the client and server come to an agreement as to which is the best format to send, based upon a combination of the servers capabilities and the clients preferences.  This problem is known as content negotiation.

The full email below outlines these problems, and the decisions made.  The next job is to now attempt the implementation of the standard, and based on the experiences of the developers and initial users, the standard will likely become refined further.

Dear All,

Thanks for your extensive feedback on the various issues that we have been discussing on this list, it has been really valuable for the project team to get this input.  We have, we think, identified 3 particular issues of contention:

1/ Whether the Statement should be embedded in the Deposit Receipt or be a separate document referenced in an atom:link element

2/ Whether to use OAI-ORE for the Statement format or an Atom Feed (as per CMIS and GData)

3/ How the client and server should negotiate over the format of the content returned by the edit-media link (EM-URI)

The project team has gone through each of these issues carefully, and attempted to extract the simplest solutions but with a view to keeping the SWORD 2.0 specification quite open at this stage, so that community best practices can actually inform the standard itself in the long run.

Therefore, we’re proposing the following approaches to these issues:

1/ Whether the Statement should be embedded in the Deposit Receipt or be a separate document referenced in an atom:link element

If the Statement is to be embedded in the Deposit Receipt, then it needs really to be in OAI-ORE form, for the purposes of being clear foreign markup.  Nonetheless, bearing in mind that there is a question as to whether the Statement should be an Atom Feed, it is clear that this solution will not be adequate by itself.  We therefore propose that the standard provided to the project’s funded developers to code against says that an OAI-ORE serialisation MAY be embedded in the Deposit Receipt (the Deposit Receipt will not be required to meet the OAI-ORE spec for being a resource map itself).

Alongside – or instead – of this, there MAY be one or more atom:link elements in the Deposit Receipt which link to an external Statement. These atom:link elements can specify their type attribute to say whether they are an application/rdf+xml or  application/atom+xml;type=feed.  It will be a requirement of the spec that there MUST be an embedded Statement or at least one separate Statement.

Therefore, you may see a Deposit Receipt like:

<atom:entry>
  <atom:link rel="http://purl.org/net/sword/terms/statement" type="application/rdf+xml" href="http://....."/>
  <rdf:RDF>
    <!-- ORE statement goes here -->
  </rdf:RDF>
</atom:entry>

2/ Whether to use OAI-ORE for the Statement format or an Atom Feed (as per CMIS and GData)

Another good reason for the approach in (1) is that this means we can provide different Statement URIs with different type attributes.  We plan to ask developers to produce an ORE and an Atom Feed Statement format under the project funding.  So you may see a Deposit Receipt like:

<atom:entry>
  <atom:link rel="http://purl.org/net/sword/terms/statement" type="application/rdf+xml" href="http://....."/>
  <atom:link rel="http://purl.org/net/sword/terms/statement" type="application/atom+xml;type=feed"href="http://....."/>
   <rdf:RDF>
      <!-- ORE statement goes here -->
   </rdf:RDF>
</atom:entry>

The combination of approaches in (1) and (2) may seem woolly or indecisive, but we believe that we can’t determine in advance which of these approaches is better, and that it should be up to the community of users and implementers to decide which approach works best based on actual usage of the developed software.  Therefore, while the burden of implementation is placed on the funded portion of the project, we expect community driven implementations/usages to favour one approach over another (possibly taking into account things like compatibility with GData and CMIS, or preferring the more semantic web approach of ORE). We can then use this information later in deriving a SWORD spec which is based on best practices.

3/ How the client and server should negotiate over the format of the content returned by the edit-media link (EM-URI)

The Content Negotiation issue arises from the fact that AtomPub requires at most one edit-media URI with a given type to be available in the Atom Entry (Deposit Receipt).  Since the SWORD server may contain multiple files rather than the one file that AtomPub assumes, what this EM-URI returns under GET is unclear.  We initially considered 2 approaches:

a/    A separate HTTP header like Accept-Packaging to allow content negotiation on a package format
b/    A separate HTTP header like Accept-Media-Features to allow general content negotaiton on feature sets

As we discussed, both of these have pros and cons, and none of the approaches to doing this are marked by any best practices, which makes the project team unwilling to commit to anything too complex or substantial, at a risk to the simplicity and overall success of SWORD. Instead we are suggesting adopting a much simpler approach:

The Deposit Receipt can contain already contain a sword:package element (as per SWORD 1.3), and SWORD 2 plans to allow an arbitrary number of such elements.  These elements will describe the packaging formats supported by the server, so the client will know in advance what the capabilities of the server are.  Therefore, instead of engaging in a content negotiation process, the client will just specify a separate HTTP header indicating what package format should be returned.  Whether this header re-uses the Packaging header used during deposit or specifies a new header has yet to be decided.

Hopefully these approaches make sense to the group.  We are interested in how you think these will go down both during the project and beyond in the community, and if there are any obvious problems with what we’re proposing here as the way forward for SWORD.

All the best,

Richard
(On-Behalf-Of the SWORD project team)