SWAP – Django Demonstrator
In the course of working with the Scholarly Works Application Profile at UKOLN it has become apparent that it is often difficult for repository managers to understand how SWAP might work for them, as they have nothing concrete to work with. Because of this, it is difficult to ‘sell’ the idea of SWAP to this important stakeholder-group and it has meant that SWAP is still largely untested in terms of usability. For this reason we have decided to investigate a concrete implementation of SWAP using a demonstrator that can be used to allow users to play with entering real world data to populate a SWAP profile.
I have recently been using Django to make quick prototypes and in this case I realised it would be the perfect tool to create the demonstrator with minimum fuss. Django has many great features including my favourite implementation of a template engine and object relational mapper (ORM) and an automagic administration interface. In this case we are interested in the latter two. The data model is defined in Python code and the database generated from these models. In most cases there is no need to write any SQL with the Django model API providing the functionality to alter objects. Having used several ORM’s in the past including Hibernate, which admittedly has a lot more to do with greater database support and more features, really appreciate the simplicity. The admin interface comes for free and can be used as is or customised with little effort. It is this admin interface that I am using as a SWAP demonstrator.
The different major elements of SWAP can be represented as objects and hence as a database table which in turn appears in the admin interface.
As we would expect each main element of the profile can be added and built up in order. In this example we are adding an expression to an existing Scholarly Work.We will be running an interactive workshop for an invited group of repository managers to test our SWAP implementation, with a view to getting feedback about the usability of the profile itself. Any comments about this approach will be welcome!









Recent Comments