A Framework for Collaborative Use


This is an amalgam of several feature requests that have already been made at various different points in time, as well as hinted at for Zotero 2.0. If there's already a way to do this, I'd love to hear about it.

I think Zotero is a phenomenal tool for personal research, and I wouldn't want to lose that. What I would like to do is have personal collections, synced separately to a personal storage service, and collaborative collections, synced to a central location, with code (client or server-side) to integrate changes from multiple users as they get uploaded.

There's a few pieces of functionality that would have to be added for this to work:

The ability to sync collections to different places.
Some code to handle multiple users (this could be as simple as a lock flag). I don't foresee a persistent database connection, rather transient connections to sync only.
The ability to replace attachments with links.
The ability to specify rules for moving or copying attachments based on what collection they're in.
Maybe a local caching function for attachments stored in network locations.

I don't want Zotero to get upset if it doesn't find a shared collection, or if it can't sync right away. It should just try periodically until it gets it.

Any thoughts?
  • I think all of your requests should either be directly or indirectly resolved by Zotero's upcoming group features.
  • I figured something was in the works, since that seems to be the direction Zotero is moving in, I just wasn't sure if it would force you to make your whole library either private or shared.

    It's also important to be able to run the server-side within our Institution. I'd want to be able to keep sensitive unpublished data within the Institution and control access to it (both the attachments and the bibliographic data).

    I'm not sure whether this will require some server-side code or whether the clients will be able to figure things out. For large collections, I think it will be more efficient to have a server integrate the changes in a stepwise fashion, rather than making the clients wait for a connection while another client does the changes.

    How scalable is SQLite? A translation layer or migration tool may be required to store things on the server in something a bit more robust like MySQL or PostGRE.
  • Note that the developers have stated several times that there are not currently any plans to support running the sync server on your own machine (but that they will eventually release the source).

    There are already people mirroring their Zotero databases to MySQL and other databases (though this is also unsupported).
  • That's fair enough. Does anyone know what the timeline is for releasing the sync server code?

    I think what I'm envisioning could be implemented almost entirely on the server-side. I'd need to write a plug-in or extension to enable the client to control what gets synced where, but I think everything else I would need on the client side seems to be compatible with where Zotero is going anyway.
Sign In or Register to comment.