Hi everybody,
this proposal is a response to a feature request for hierarchical tags in the Zotero forum (http://forums.zotero.org/discussion/79/hierarchical-tags/#Item_26). In the course of working on my phd thesis I implemented a feature called context, that is basically similar to hierarchical tags for Zotero.
I added a screenshot of my running system as attachment to describe how the feature has been implemented.
The area marked as 'area 1' in the screenshot shows the additional context tab I added for a particular item:
- All contexts for an item are shown.
- To make use of the hierarchies and provide additional value, parents, siblings, and children of assigned contexts are shown.
- The hierarchies can be built and resolved using drag and drop.
- Just as for tags, the number of assigned contexts is shown and new contexts can be added.
- Assigned contexts are marked by a green icon in front; contexts only displayed due to their hierarchical relation to an assigned context are displayed with a grey icon in front.
- Displayed contexts can easily be assigned to or removed from an item by using the + or - icons at the end of the row.
- Renaming the context is possible by (1) clicking on the name of the context or (2) using a right click and selecting 'rename context' from the displayed menu.
- Deleting the context (from the whole system) is also possible using a right click and selecting ‘delete context’.
The area marked as 'area 2' in the screenshot shows the context selector for the system (similar to the tag selector):
- All contexts in the system are shown.
- Hierarchies can be changed.
- Contexts can be renamed and deleted.
- An assignment of contexts to items is however not possible.
- The color of the icon in front of a context indicates if the context is assigned to an item. This information is always based on the current selection of items. Therefore starting the program it will usually be based on the whole collection.
- If tags or collections are selected, the colors of the icons are updated based on the current selection.
- By clicking on an icon the context is selected as filter for items displayed in the main windows (just as for tags).
Contexts are of course also available through search and as search condition. So far, there are however no general settings for contexts available for configuration throughout the system settings menu.
I hope this description delivers a good overview of the additional functionality I implemented.
If there is interest in adding this functionality to Zotero, I will be pleased provide a pull request with my source code. I understand that what happens next is, though, strongly depending on the quality and alignment of the source code I can provide. However, I’d appreciate a short feedback in advance.
Thanks, Stefanie
An assignment of contexts to items is however not possible.
To view this discussion on the web visit https://groups.google.com/d/msg/zotero-dev/-/gMomXYMaHuYJ.--
You received this message because you are subscribed to the Google Groups "zotero-dev" group.
To post to this group, send email to zoter...@googlegroups.com.
To unsubscribe from this group, send email to zotero-dev+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/zotero-dev?hl=en.
An assignment of contexts to items is however not possible.This is somewhat confusing to me. How does a context get assigned to an item?
So besides the hierarchical ordering, is there any distinction between context and tag? I don't see this happening in addition to tags, but the hierarchical ordering code could be applied to tags.
An assignment of contexts to items is however not possible.This is somewhat confusing to me. How does a context get assigned to an item?
From the example given with contexts, it's hard to say if contexts can be nested or whether this system provides only a single level to the hierarchy. If I'm understanding the description correctly, nesting is possible
To view this discussion on the web visit https://groups.google.com/d/msg/zotero-dev/-/uu4gYc8wH_QJ.
If contexts are merely a "folder" or "collection" for tags and cannot be assigned directly to items, then I do not understand the purpose of the additional tab in Area 1. It seems to me that the only way to get something added to that tab would be by first assigning a tag to the item in the tags tab. Then the only thing that could be done in the Context tab would be to remove a certain tag, which can already be done in the tags tab.
From my point of view, tags should be nested within other tags and any level of the hierarchy should be assignable to an item. For example I might want to assign "Programming/Languages" to an item that compares multiple programming languages, but "Programming/Languages/C++" to an article discussing C++.
I imagine that when you go to assign a tag on the tags tab, you start typing and you get suggestions from multiple levels of the hierarchy. For instance when you start typing "P", you should get suggestions for "Programming" and "Programming/Languages/Pascal". This would allow for a fairly quick assignment of deeply nested tags. We'd have to figure out how to prevent parent-child separator from clashing with characters within current tags. I have some ideas.
I think tag display should be able to toggle between flat and tree view. Tree view takes up a lot of space, so perhaps we could move tags to a different tab on the left pane. Have a Collections tab and Tags tab. While I know that this sort of change will receive a good amount of resistance, I think tree view would be a great way to organize tags themselves by moving them within the hierarchy.
I was looking around on the forums for some concrete use cases for the hierarchical tag system:
http://forums.zotero.org/discussion/79/hierarchical-tags/#Item_5
http://forums.zotero.org/discussion/700/equivalence-of-collections-and-tags/#Item_1
http://forums.zotero.org/discussion/700/equivalence-of-collections-and-tags/#Item_12
There are some other examples.
From reading the discussions, the requirements of this system would be as follows:
- Multiple levels of nesting
- Ability to search by any level of the hierarchy
- Easy tagging
From the example given with contexts, it's hard to say if contexts can be nested or whether this system provides only a single level to the hierarchy. If I'm understanding the description correctly, nesting is possible
From the description, searching by context is possible, so that satisfies (2).
I'm not so sure about (3). If we're just assigning tags, then it's simple. If tags are allowed in multiple contexts, then that might introduce problems. You may want to indicate which context you want the item to have.
I don't see much distinction between tags and contexts besides not being able to assign contexts to items.
Finally, I just want to say that with introduction of hierarchical tagging system, there remains very little distinction between tags and collections. I don't mean to say that this is a bad thing. I think it's great that Zotero introduces two dimensions to organize items. I, for instance, use collections to organize items based on the project I am working on. Tags are for subjects that span multiple projects or topics. For instance I would use tags to label an item as "protocol". What I do want to suggest, however, is that perhaps we should think of these two systems as practically equivalent and try to synchronize the features between them. With many questions being asked about finding the collections that an item belongs to, I've started thinking about adding a tab to the right item pane that would display a list of collections the item is assigned to. This would be a direct parallel to the tag tab.
Haven't followed this, but FWIW, Adobe Lightroom has a simple, well-implemented, hierarchical tags UI.
--
You received this message because you are subscribed to the Google Groups "zotero-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zotero-dev+...@googlegroups.com.
To post to this group, send email to zoter...@googlegroups.com.
Visit this group at https://groups.google.com/group/zotero-dev.
For more options, visit https://groups.google.com/d/optout.