A Framework for Collaborative Use
Hi,
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?
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?
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.
There are already people mirroring their Zotero databases to MySQL and other databases (though this is also unsupported).
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.