This is probably not an immediate feature request and I'm sure you have thought about it already, but I would like to know some kind of an estimate -- how hard is it, how much work would it be, how deep would the changes need to be etc.
I would like to use Piggydb collaboratively for example with my students. In one Piggydb instance all of us would have separate user accounts. At the start (after logging in...) everyone would only see their fragments. But it would be possible to switch to a different user's perspective and see his fragments. And it would be possible to select a fragment and "add it" to my perspective, and create relationships from it to other fragments I see.
The use case is that I'm teaching a course and I would like every student to create their own "concept map" in piggydb, but I would like to bootstrap them by giving them something to start with (my map). So after the first lesson I would construct what was taught and they could take from it, and add anything to it. After the second lesson, they would be able to take new fragments from me and again add anything to it. And continually they could also share fragments with each other.
Implementation-wise I don't think it is far-fetched. Users are already present in the system; I don't know how fragment metadata looks like but it seems to me that you would only have to add a field containing a list of users that want to display this fragment in their "perspective". As for relationships and tags, while viewing a fragment a user should only be shown those that are enabled for his perspective; e.g. if a student creates a fragment and connects it to my fragment (or assigns his tag onto my fragment), by default I wouldn't see that.
I realize this is rudimental and is based on trust, but it would already be hugely beneficial to all the use cases I have in mind. Even now when I share a piggydb with my fianceé this functionality would be immensely helpful.
Problems that I see:
- if a student creates a relationship between two of my fragments, I would see it (which is probably undesirable). Same with tags.
- a student is either able to edit my fragment (possibly dangerous) or doesn't have a good way to modify it. Only options left for him to add his notes are
- add a new fragment and connect it;
- clone my fragment (thus losing whatever work/corrections/... I do on it in the future).
Fixing these would require having metadata on relationships which is probably not possible yet. (And more generally, some well thought-out access control system in place.)