CKAN, SWORD and Orbital-Bridge update

In a previous post, I looked at extending CKAN with a SWORD extension to input and output data via SWORD. This had not gone to plan, as numerous difficulties were encountered.

Orbital Bridge has been developing, and since the last post it’s structure has been planned and more clearly laid out. Each technology it will interface with will be done so via a library. Each of these libraries will have the following functions: CREATE, READ, WRITE and DELETE. The CRUD functions are Create, to create something externally from a Bridge Object, Read to get something externally and transform it into a Bridge Object, Write to update something externally from a Bridge Object and Delete to delete something externally specified in the Bridge Object. This ‘Bridge Object’ is a standard format PHP object used in Orbital-Bridge. This is so it can be sent to and from any library to be used however the library wishes. This creates a standard that any new library can use to connect to external technologies. There will also be a fifth function, RECEIVE, which is a different function from the CRUD functions. Receive takes an object sent from a HTTP POST and changes it to a ‘Bridge Object’. More about this will be documented and posted about later when it has been implemented rather than conceptualised.

The main update to the CKAN/SWORD development is that they are now in two libraries, one for interfacing Orbital-Bridge with SWORD (the ePrints SWORD endpoint) and one for interfacing Orbital-Bridge with CKAN. Using the structure of Orbital-Bridge, deposits can be made in ePrints by using the CKAN library to READ and dataset, turning it into a bridge object, then using the SWORD library to  CREATE the object, after turning it into SWORD XML from the Bridge Object, in ePrints. This structure of Orbital-Bridge has changed the way CKAN and SWORD will talk to one another. Originally the SWORD extension of CKAN was just that, a CKAN extension. Since OKFest and talking to CKAN developers, and with the decision on how Orbital-Bridge will be structure, this is seen as the best way to interface the two technologies.

Python and Pycon

Nick Jackson and I attended Pycon UK 2012 in Coventry over the weekend of 28th – 30th September. The aim was to get to grips and obtain an understanding of the Python programming language.

The main reason we went was because CKAN was written in python and, as we will be extending it, it makes sense to understand the tools we will be using before we dive in and start to mess about without knowing what we are doing.

There were a number of talks given about how Python is currently being used, the future of the language as well as open spaces to network. I had gone along to a number of these talks, such as Raspberry Pi and Python, Python in a teaching environment and Python powered rich apps. Unfortunately, I missed the talk on practical Artificial Intelligence with Python as I was attending the beginners Python workshop. In a way, this probably proved more useful as I now have a better understanding of the language and its differences. These differences, for example, include how boolean values are case sensitive and the interesting way references work. Any small bit of syntax will be useful later on when programming.

Without expanding on how the programming language operates, I can say that it has been a very easy language to understand, and has been referenced as ‘Executable pseudo code’. Meaning that it basically does what it says on the tin. It is very human readable.

Networking also helped, as we met someone from the MET Office who was very interested in how we were managing research data, as they themselves were having to manage a lot of data. We may have inadvertently sold CKAN to them. We also met, and spoke with, Ross who works on CKAN. After speaking to both, we gained an understanding of what CKAN is like to develop on and how data is managed elsewhere in large quantities.

The Python community proved to be a valuable asset to the Orbital project, thanks to their friendliness towards newcomers to the language and helpfulness with learning it. A lot of speakers also happened to be ex-teachers, which may have helped. I foresee a useful set of connections with this community in the future.