Symbolic links between subcollections

One of the great virtues of Zotero is that items can appear in multiple collections. It is therefore possible to have a hierarchical structure of collections, with individual items appearing under more than one heading.

It would be wonderful if the same was possible for collections,
i.e. if one could create a subcollection X that internally is a pointer to an existing (sub)collection Y somewhere else in the structure in Zoteros left hand pane. Then the items and subsubcollections inside X would be (and remain to be) identical to those inside Y.

Currently I use a workaround by creating a new empty subcollection named like "Subtopic-X_See_collection_A/B/C/Y"
which then makes me move to A/B/C/Y, away from where I really want to be. This works but it is quite clumsy.

Since Zotero uses a database, would linking between subcollections be possible ? Or can one already do it somehow ?

Thanks !
  • You could certainly modify the code to do this, but I don't think we'd ever implement this. It's too complicated conceptually — it'd be extremely hard to convey or remember that the collections were the same and that making changes to one affected the other.

    What will likely happen at some point is the ability to place saved searches under other collections, at which point you could create a saved search that was just a copy of another collection. (You wouldn't be able to add items to such a saved search, but you could at least see the same items there without having to go find the other collection.)
  • (I mean, I think there are ways it could be done — say, highlighting the other symlinked collections when one was selected — but I don't think it's something we'd do in Zotero proper.)
  • I know that this point has been made several times, but I want to signal how valuable it would to be able to reference a single structure of items/sub-collections from different places in the main library. Hierarchical tags might work for this, but a symbolic link to a sub-collection would be a killer. The link could be a hyperlink -- it needn't duplicate the items. Something like the related items function would be fine. My main source of fatigue in Zotero derives from the confusions over duplicated or poorly duplicated sub-collections that deal with the same, or very similar, problems. Of course if it worked across the group libraries it would be a fantastic teaching and collaboration tool ...

    Thanks for the life-saving work.
  • edited July 18, 2020
    Please let me plead once more for symbolic links between subcollections. Please ! Zotero has now become almost unusable for my scientific work (yet I depend on it completely), because the list of folders and subfolders has become unmanageable. The *sole* reason is the lack of hyperlinks in the folder structure. Too many collections in subfolders belong to several higher level topics at once.
    The workaround described in my original post, namely manual pointers, means that I have to hunt back an forth in a very long linear folder structure all the time (since Zotero only offers a single window). The alternative, namely moving or copying of subfolders, while convenient in the short term, has let to an awkward forked and inconsistent structure.
    I fully agree with the previous comment by kdb_research. No folders need to be duplicated. All we need is the equivalent of hyperlinks. On the level of library items, Zotero already does just that: an item can reside in several collections at once.
    However, the present folder structure of Zotero is very similar to an internet without hyperlinks (!), where one manually has to type in each reference (while working in a single window, without a back-button), or where each reference is replaced by the full copied, and quickly outdated, contents of that webpage.
    For a really big collection, this is unworkable.
    Could you *please* help ? Thank you.
  • Can you give a concrete example of a use case for this?
  • edited July 19, 2020
    Thank you for asking. And thank you again for Zotero, which has been a life-saver.

    I collect research papers in Zotero. They need to be accessible from several different avenues, which means different hierachies, for example research topics, techniques, projects, students, grants, individual papers,...

    Topic A (e.g. materials)
    -> subtopic 1, -> -> subsubtopics a,b,c
    -> subtopic 2, -> -> subsubtopics b,d,e ("b" appears again)
    -> subtopic 3, ....
    Topic B (e.g. models for materials)
    -> subtopic 2, (again)
    -> subtopic 4, ....
    Technique TA
    -> subclass T1 -> -> applications to materials from subtopic 3 above, ...
    -> subclass T2 ....
    Technique TB
    -> ...
    Project P1
    -> material from subtopic 4, -> -> technique subclass T2 above...
    Project P2....
    Student S1..., Student S2...
    Grant G1, Grant G2...
    Paper p1, Paper p2,....

    and so on. The actual research library now contains, after many years of use, more than a thousand subcollections when fully expanded, with hierarchies deeper than in the example above, and naturally interconnected.
    The structure is similar to the connectivity of the internet (the web!), where you use hyperlinks (=pointers) to point to some webpage from any other page.
    In a Unix filesystem, such a structure is effortless to implement with symbolic links.

    Copies of collections will not work: when looking at publications in, say, collection subsubtopic a, there will often be new citations to these papers. Some new citations (Zotero items) have to be added to the subsubtopic. But it needs to stay up to date and consistent everywhere.

    On the level of items (individual papers), Zotero is so enormously useful (thank you!) because an item can be in many collections at once, i.e. the collections contain pointers (=links) to the actual item.
    On the level of Zotero collections, the same functionality is unfortunately missing.
  • Of course I strongly agree with oldtimer on this. Without a means of linking to structures of collections a large Zotero collection is, eventually, always going to become a bewildering mess. (With fragments of similar or repeated collections distributed in a disorderly way through the collection tree).

    The question is really -- what can we do to make it possible?
  • +1 to all of this. I would find this very valuable for the reasons oldtimer and kdb_research explain.
  • +1 for me as well, with the same use case as described above by oldtimer.
  • +1 from my side as well.
    A tree graph cannot accurately capture the connections between research areas, and yet the current folder structure imposes this limitation.
    Instead of a traditional folder structure, how about showing an actual, general graph in the UI? Adding a new collection would mean adding a new node that one can optionally connect in complex ways to existing nodes. No need to automatically replicate the items in the "parent" nodes, just showing symlinks/pointers inside a node's content is enough at least for my use case.
  • My Windows folder structure uses lots of folder shortcuts to nest subfolders under multiple parent folders. I found this thread while seeking ways to create a similar logical nested collection structure in Zotero.

    I haven't delved deeply into Zotero's capabilities so I'd appreciate some insight: Are logical links to subcollections available yet? If not, can this type of functionality be simulated with tags?
  • I would recommend using tags for that. It’s helpful to think about collections as being for hierarchical relationships and tags being for non-hierarchical relationships.
  • Tags can do a small amount of what's needed here -- but they produce a flat structure limited by the collection context. What we need -- to avoid duplications and errors in duplication -- is a way to repeat the collection tree structures. This is what symbolic links do in directory trees, and it's what we need in Zotero. Not having it means that the collection structures in a large library generate serious confusion and fatigue.
  • I also strong look for this functionality. Tags are 'shallow' and therefore 'not scalable' in my experience. With a library containing thousands of papers, one really needs such more advanced organization tools. One example from machine learning:
    - there are all sorts of loosely-related 'X-learning' works, which I collect under various problem-specific collections, such as "problem-A / X-learning", "problem-B / X-learning", etc. This is important because I really need to access X-learning techniques when looking info problem-A collection.
    - But then there are some specific X-learning techniques, which belong to multiple problem domains.
    - So, I'd like to have sub-collections that can be 'shared' by several of problem-* / X-learning collections (such as, some X.Y-learning appearing under both problem-A/X-learning/X.Y-learning and problem-B/X-learning/X.Y-learning).

    The way I handle this is currently manually adding notes with some content like 'look for the category under x / y / z". But: (i) this is a lot of meaningless effort and (ii) when I re-name a collection, some of these notes turn into dangling pointers. My Zotero library now contains many such painfully handled pointers, which has started to become a headache.

    If developers are worried that shared collections might be 'confusing' for being shared, they can add collections with 'shortcut' icons. When the user clicks it, it can jump to the actual collection.
  • Hello -

    Please do consider adding this functionality, akin to folder aliases in the MacOS Finder (and I believe "shortcuts" work similarly in Windows). This would be extremely useful. My folder hierarchy collection is also becoming rather complicated; as with posters above, many subcollections (subfolders) should properly appear in multiple places in the hierarchy.

    It could be implemented as with the Mac:
    - One folder is the original, with the normal icon
    - Aliases to that folder would have a modified folder icon (with an arrow added, for example), to distinguish from the original folder

    Thank you for considering this very valuable feature.
  • - One folder is the original, with the normal icon
    - Aliases to that folder would have a modified folder icon
    In my opinion, both collections should be shown with the modified icon. Zotero's collections aren't like folders in your filesystem and there's no reason one collection should be master. This would only create problems, e.g., when deleting the original collection. The modified icon, e.g., with a chain symbol, would then indicate that other "linked" or "cloned" collections exist. If you now delete the original collection, the clone would become a regular collection.

    Both the collection name and the collection items should be kept in sync, I think. If you add an item to one collection, it would also be added to all its clones. If you clone a collection, all its items would be added to the clone. The name of all clones should probably be kept the same for simplicity.

    The context menu of a cloned collection could show a list of all the other clones and their paths in the collection tree. This would allow jumping to another instance of a cloned collection, e.g., from "UK/London" to "Cities/London".

    Such a feature could be nice, but the risk is that you add more complexity to your collection structure. At least for now I would recommend trying to avoid a complex collection hierarchy. I'm mostly working with tags and saved searches. The Zutilo add-on provides keyboard shortcuts that help with managing tags.
  • As a workaround, you could work with zotero://select links to collections. Add them to a note or as a "Link to URI" attachment. Zutilo adds a "Copy select collection link" option to the collection's context menu.

    See here for more details:
    https://forums.zotero.org/discussion/73893/zotero-select-for-collections
  • edited August 20, 2021
    both collections should be shown with the modified icon
    Yes, I agree.
    Both the collection name and the collection items should be kept in sync, I think.
    I was going to ask about the name. For the people who want this, would you want the name to stay in sync if you rename one, or would you want to be able to name them separately (but then potentially have to rename all if you rename one)? Enforcing the same name seems like it would somewhat reduce the potential for confusion.
  • Thanks @qqbb Zutilo works nicely to expose the Collection URI, and it's useful to be to link directly from a standalone note. This creates a one-way link, which is probably inevitable.

    On @dstillman's question -- I think keeping the name of linked collections synced would be best.
  • I came here hoping that someone had suggested this idea, and yes, here it is! Thank you. The larger my collection gets, the harder it is to organize all of my items. Tagging is nice but somewhat unpredictable, both because tags are first set by the translators and because tags are not inherently hierarchical. Tags are thus helpful for finding items by subject or search, but less so for logical organization.

    Two particular cases call for the use of symbolic links in collections. First, there is the case of specific temporary projects. I normally organize my works on Aristotle in Philosophy\Ancient\Aristotle, but when working on a specific book project I want to have a collection for that book that contains a symbolic link to the Aristotle folder and other relevant collections, so switching between collections with sources for that book project would be nice and easy.

    Secondly, when organizing items in a hierarchical fashion there can often be cases where collections could fit in multiple places and might be looked for in multiple places. For example, some thinkers are both philosophers and theologians.

    qqbb makes a good point about implementation. There is no strict need for one folder to be the master and the others the clones. Collection hierarchy does not map onto any strict storage hierarchy, and thus a single collection could really appear in multiple places within the library. Deleting such a multiple-located collection should pop up a dialog asking whether to delete only the one instance or all of them.

    This suggestion really isn't that complicated overall, and I bet it would be used a lot because many of us scholarly-types love organization. I am really thankful for Zotero, and I wish I had the time to contribute to its development myself. Hopefully this suggestion will be a positive contribution nonetheless.
  • edited June 1, 2022
  • +1 For implementing a feature of this sort, either allowing the same subcollection to appear in multiple places on the tree or allowing links from one subcollection to another so that a single subcollection can be easily found in multiple places.

    The previous posters explain well the rationale for this. I'm personally getting around it by just using stand-alone notes and saying "see subcollection X," but this is obviously awkward. Anyone with a complex tree structure is going to have the problem of subcollections that logically make sense in multiple places on the tree. (I've had the unfortunate experience of creating a subcollection only to discover later that I had already created the one for the same or similar topic elsewhere.)
  • Just as previous comments describe, I stumbled upon this thread looking for this feature too. Perhaps it helps to give another example of why this would be so useful, this time from life sciences. Many aspects of health and disease belong to more than one topic. For example, a disease such as psoriasis is both considered a skin disease as well as an auto-immune disease. So in my folder structure I would like to have a subcollection called 'psoriasis' under the higher level collection 'auto-immune diseases', as well as a subcollection called 'psoriasis' under the higher level collection 'skin conditions'. Any publication on psoriasis should be in both subcollections, as it simply is one and the same disease.

    What may become complex is when a collection that is being linked (i.e. the subcolection 'psoriasis' in my example) itself contains subcollections. Would these become linked too? My guess is that this might become way too complex to track in a dbase table. In fact, the fact that collections contain items including other collections is exactly what distincts it from publications (that indeed can be part of multiple collections). A solution might be to restrict linking (sub)collections to the lowest level (allow no subcollections inside linked collections). I am not sure if that would be acceptable to users though, as it is major restriction. Another thing that could rapidly corrupt the dbase is if a linked subcollection is placed inside that very subcollection, that certainly does need resrictions.

    I hope that this feature will be considered for implementation and I am willing to help thinking about the desired logic behind it (but I cannot help coding it).
  • +1 on this suggestion for me too. Such a functionality would be very helpful in my work.
  • +1 for this too! I'm working on outlining a dissertation proposal, and there are many subcollections that I need to reference under multiple parent collections. It's getting really hard to manage. I think this would be useful for a ton of us!
  • +1 this would be very useful, and implementation along the lines of MacOS would be fantastic.
  • edited December 10, 2023
    Thank you @qqbb (August 19, 2021) for pointing out zutilo and "Copy select collection link" !
    It saved me from desperation...

    Maybe the following can help somebody:

    One way to use this feature is to manually create an item
    (I use item-type "radio broadcast", for easy visibility of its icon),
    enter the copied collection link as the URL, and write some description in the title,
    like "--> subcollection A".
    Clicking the new item will then immediately jump into "subcollection A".

    This jump is one-way; so one will want a similar new item in "subcollection A" to jump back (possibly several ones to different places).

    It is not the same as symbolic links, but works reasonably well for me.

    I have not found any way to make a click on a subcollection itself jump elsewhere. One workaround is to create a subcollection titled e.g. "--> subcollection A" and put the  "radio broadcast" item described above inside. Requires two clicks for the jump instead of one, which is ok.

    I do hope that the "copy select collection link" functionality will be available in Zotero 7.

    Thanks to the developers!
  • I strongly support the development of such a feature which would make my life a tiny – but non-negligible – bit better :-)
Sign In or Register to comment.