Domino: an extension of Zotero

Since starting at university, I’ve been using the ‘Zotero‘ extension for Firefox, to add in-text citations to essays I write.  This is one of the most powerful extensions I have found for Firefox, making referencing sources very simple.

However, there is room for improvement to fit my way of working.  I value having control over as much of what I do as I can, particularly online, for that reason I run my own email, blog and backup server.  Zotero has two server components, one of which stores electronic copies of references.  It also uses a central server to coordinate the data stored in a citation database, allowing access from multiple computers.  Both of these services can be hosted by the Center for History and New Media at George Mason University, the group behind Zotero.  And a fine job they do of this, I used their services for several months while I was learning to run a server and how to use WebDAV.  However, as with any online service, doing so leaves one in the hands of a third party, with a variety of undesired outcomes possible. Data breach? Request from the FBI for user data? Technical problems causing loss of service?  All these and more can cause problems, and render the user beholden to those who run the service.

As the technology to run a WebDAV server is mature and predictable, the Zotero team are willing to advertise the possibilities for a user to do so, easily allowing a user to enter their server details into the preferences for Zotero.  It seems they are not so keen to do so for the sync server however. Various reasons are cited, including a seemingly Apple-inspired ‘guaranteeing a good user experience’.  There’s some merit in this, although I disagree with it.  Fortunately, they are more prepared than Apple to let users go their own way if they want to, as the source code for the server and the extension are available under the GPL, allowing us to roll our own versions.

So, here’s Domino, my updated version of the Zotero extension, with changes which allow you to set your own sync server from the preferences dialogue. The sync server is released here. If you are going to use this, be careful: Zotero uses its own protocol, and it is not documented or looked over by a third-party such as the World Wide Web consortium, which looks after other standards such as HTML and HTTP.  As such, there are chances for things to go wrong. At the worst, you could lose or corrupt your citation database.  The Zotero team are working on the server code also and I aim to join in soon, at some point it’ll be released as a deb package.

Zotero will not merge my changes to the extension into their mainline release, so I’ll be merging the changes between each of their new releases and my fork, a few days after they release a new version.

If you’d like to contribute, my version of the code is on github here.

For more progress on Domino, check this page.

One thought on “Domino: an extension of Zotero

  1. Avram Lyon

    Glad to see someone taking the initiative to decrease the learning curve for rolling your own Zotero setup. Note that the sync protocol isn’t a particularly good candidate for standardization by a third-party organization, since it has no clear function outside of this specific use case. It would still be great to have some documentation for it, if you happen to have the time and inclination to post even a few sample messages from the protocol. There has been discussion of things like federated servers as a long-term goal for the dataserver, in which case some more standardization will be needed– maybe the Domino fork can lead to a community-driven project to nail down how that could work. Don’t be discouraged by the rhetoric from the CHNM team– they’re focused on the grant-funded core and pressing user needs, but that doesn’t mean that they’re opposed to long-term reimagining of the larger project.

Leave a Reply

Your email address will not be published. Required fields are marked *