Jopml & FeedForward

One of the things we really wanted to do in FeedForward from the outset was to try to make use of “feed registry” services to get rid of some of the hassle of locating and subscribing to feeds. This was particularly as we wanted new users – possibly also new to using a dedicated RSS reader – to be able to just specify their area of research and get going straight away.

However, our initial choice, IESR, turned out to be problematic. Basically, while there was a goood set of machine APIs we could make use of, there just wasn’t enough usable content. While a lot of repositories had information in IESR, not many had their RSS registered, even where it was supported.

Our second choice came about through getting involved with the JISC Users & Innovation Programme: the tictocs project created a repository of table-of-contents feeds for academic journals. Tictocs collected loads of useful feeds, and worked with the publishers to improve their support. This was just the content we needed. Sadly, there was no API.

Eventually, I just gave in and built my own service – Jopml (Journals into OPML)!

jopml_logo

Jopml is a Ruby on Rails application built using the data exported from TicTocs (as a .csv dump), but makes it easy to write a machine interface by building OPML output directly from the query. So http://jopml.org/feeds?q=polymers gets you the HTML search results, while http://jopml.org/feeds.opml?q=polymers gets you the same but in OPML, ready to import into a feedreader.

With this service in place I could add new functionality into FeedForward. First, you select the “Import journal feeds from Jopml.org” menu option:

jopml_1

Jopml menu option in FeedForward

Next, you enter some search terms and click “Search”. The dialog box updates to show the number of hits. When you’re happy, you click OK to add them to your application.

jopml_2

Jopml dialog box

(Note that as the service uses Ferret you can use booleans, phrases and all the usual Ferret query options)

And you’re done!

jopml_3-300x120

Feeds added

This functionality is currently in the source code in subversion, but should make it to the next release.

While I developed Jopml to add this feature to FeedForward, there is also nothing to stop anyone from making use of it for their own applications. If you make something interesting, let me know!

New release looms closer…

We’re steadily working closer to the next release. Its been a long time coming, but I think is worth it. We’ve actually removed a lot of features for this release, as we get a better idea of what works and what’s useful, and focus on improving the usability core features – we’ll put features back in if anyone requests them, but I think a “less is more” approach is better at this point.

We’ve moved to a new version of Eclipse (Ganymede) which is a lot faster and supports more platform specific features which caused some headaches in M1 (drag and drop in particular had some quirks). We’ve also been improving the UI in various ways, as you can see in this screenshot:

ff_m2_screen

We’ve got a bit more testing to do before the release, but feel free to check out the code from Subversion if you’re keen!

Team FeedForward finalists in the OR2008 Repository Challenge!

Kris and I were in Southampton this week taking part in the Repository Challenge at Open Repositories 2008. This was a developer competition of the “bar camp” variety, where we had to rapidly come up with a cool prototype showing the “future of repositories”.

Well, as we already have lots of stuff we can use in FeedForward, we wrote a prototype called “FileBlast”, which links together the services we use in FeedForward to make a single “share and promote your paper” droplet-style app.

fileblast

We used a single droplet window as the target for dropping Word documents onto; we then extracted the title and abstract before uploading the document to Scribd. Once on Scribd, we then post an announcement on the user’s Twitter blog linking to the new doc, and a more detailed post on their WordPress blog with the paper abstract. We then bookmark it on Del.icio.us before finally archiving the paper in ePrints using SWORD.

Sadly the last part we couldn’t demo as, ironically, the Southampton wireless network blocked the port we needed to use to deposit items into the ePrints test server… at Southampton. Oh well! We nevertheless secured a place in the final five out of I think 19 entrants in the competition. I’d had no idea that our initial pitch to the judges would be filmed and broadcast at the conference dinner, which was a bit of a surprise. Kris had to bail out and head home earlier, and unlike me avoided the slightly embarassing prospect of having to sit looking at himself on the big screen.

Still, we were well happy with the result of our day (and night) of coding and so we’re thinking of turning it into a proper app for download off our site. But we have quite a few parts for M2 of FeedForward to finish up first!

The whole event was great fun, and a big thanks to Dave Flanders and the CRIG team for making it happen.

Getting closer

I’ve been doing some basic tidying up – adding missing icons, sorting out various kinds of drag and drop, and so on. Some bits have an unfinished look still; hopefully we’ll get time to work on that for M2. Meanwhile, I have to get to work on sorting out the Mixer.

Here’s what I have right now in my test build:

snapshot.thumbnail

SWORD

I was going to title this post with some sort of pithy remark like “live by the SWORD”, “Fallen on my own SWORD” etc., but thankfully resisted the urge.

I’ve got SWORD protocol basically worked out; this was planned for M2 next April, but as there was a JISC programme meeting I worked on it early. As it was a family-wide cold/’flu/lirgy meant I couldnt go anyway. Oh well.

Still, FeedForward does now have some basic SWORD functionality, and can deposit a context (user collection) into an academic repository such as IntraLibrary (Learning objects) or ePrints (papers). This does require a bit of faffing about figuring how to render the context in some meaningful way; for IntraLibrary I just build an IMS Content Package using the Context’s contents. But what would I do, realistically, with what is basically a list of references and notes for deposit in ePrints? A skeletal paper outline?

No FF blog post is allowed without a least one image, so here it is:

sword-intralibrary

Service wizard

The service wizard helps users configure a conduit, and uses autodiscovery to help figure out settings for not-so-obvious setups as Blogger (Google) and WordPress’s new Atompub support.

services_wizard

Note that blogs and social bookmarks are now supported; you can see ghosted out the things we’ll add for releases 2 and 3 next year.

Implementing conduits (services)

I’ve just implemented the Conduits plugin, which is what provides things like services for publishing items to blogs, social bookmarking services, repositories, citation services (etc). Its not much to look at, but it does basically follow the design wireframes. In the image below, the Radar plugin is the panel on the left; the Conduits are on the right:

conduits

The plugin drag-and-drop model uses standard URLs, so there is an interesting side-effect: you can just drag any URL from any application onto the services in FF, and it will publish them to the service. So, you can actually just use the Conduits plugin as a standalone publishing “droplet”, like so:

droplet

So far I’ve ported the del.icio.us and APP conduits from Plex, our earlier prototype system.