Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Hierarchical Keywords #628

Closed
marc-reichenbach opened this issue Jan 3, 2016 · 13 comments
Closed

Feature: Hierarchical Keywords #628

marc-reichenbach opened this issue Jan 3, 2016 · 13 comments

Comments

@marc-reichenbach
Copy link

Hi,

I'm using jabref quite a long time and I'm very satisfied with it. Thanks for your work. Now, while I'm writing my Phd thesis I miss one very important feature: Hierarchical Keywords

I store in bibtex my keywords as: group1|subgroup1|subsubgroup1, group2|subgroup2, group3, group4|subgroup4

where (,) is the delimiter of the keywords and (|) the delimiter of hierarchical levels.

In the current version, I can only parse regarding (,) resulting in very long keywords (which cannot be displayed as a whole). I would be very happy if somebody can implement this feature. What do you think about that? I'm willing to pay a donation, if somebody could implement it, because I have to submit the thesis in 3 month and the approx. 300 papers in my bibtex drives me to hell :)

Regards,

Marc

@simonharrer
Copy link
Contributor

You can use groups which can be put into a hierarchy. This should solve your issue.

@koppor
Copy link
Member

koppor commented Jan 3, 2016

Marc, could you elaborate more on the concrete desired functionality? Would you be willing to join JabCon, where we could work on that?

@marc-reichenbach
Copy link
Author

Thank you very much for your anwser and time.

@simonharrer: Thanks, for your recommondation: that will work, but then I have to create the groups by hand. I like the usage of standard file formats (like *.bib) and i like the intelligent functionality of creating groups by parsing keywords.

@koppor: The short anwser is: like XMP will do that for fotos. There also exisits hierarchies like: landscape|animal|bird|parrot

The long anwser is: Beginning with scientific work (first 3 years), I started with jabref and using the keywords by IEEExplor, ACM, etc. But then, I mentioned that the keywords have noting to do with the personal point of view, evaluating a paper. Therefore, I switch to docear (2 years usage). Using the mindmap, I have exactly the structured view as I wish. The problem is, a mind map with 300+ papers is not very clear, moreover I need to use links to have a paper in 2 "categories". Therefore, I switched back to jabref to combine hierachies and keywords together. As I mentioned, I was inspired by XMP and image. There I heavyly use hierarchy keywords. Like the example above: a parrot is a bird, a bird is an animal, etc. I understand, that this functionality can also be applied by using 4 single keywords than using 1 hierachical: but I think it makes life easier to combine these both approachs.

From technical side, as I understand it, the "group by" menu have to be extended for a second delimiter. On algorithmic view, it should be very strait forward. I tried to hack itfor myself (I'm computer scientiest but more in the hardware area), but without knowing code in detail, I will waste to much time. Therefore, I asked for help.

The conference sounds very interesting. I will check tomorrow, if there is some project with enough money for a business trip :) Otherwise, we can have a telefone call between Erlangen and Stuttgart.

I hope, i could elaborate the wished feature better. Thanks again.

@oscargus
Copy link
Contributor

oscargus commented Jan 3, 2016

Thanks for your elaboration. Are you primarily talking about the groups interface (just to be clear)? I agree that it should be quite straightforward to handle it there. The "Manage keywords" dialog and Content selector dialog will be significantly more work, not even clear what the dialog should look like (but then it may not be required to handle anything else but strings there, at least initially).

@marc-reichenbach
Copy link
Author

osargus, yes, from jabref point of view, I talking about groups and how to automatically create them using bibtex fields.

@oscargus
Copy link
Contributor

Related to #705

While trying to unify the code to only use "," as a separator, this issue struck me as I saw some entries in the test bib-files that had keywords as:

  Keywords                 = {Action Potentials, physiology; Animals; Axons, physiology; Electrophysiology;
 Ganglia, Invertebrate, physiology; Ganglia, Sensory, physiology;
 Leeches; Neurons, physiology; Synapses, physiology; Synaptic Transmission,
 physiology},

My interpretation is that this is some sort of hierarchical keywords, although it is not completely clear how the ordering is (I'd guess reversed). These keywords are supposedly generated by some database engine, so it would be nice to support it.

Then, the question is: should one use this format or some other format?

@mlep
Copy link
Contributor

mlep commented Jan 27, 2016

I do not remember reading about it among the SourceForge feature requests, or in the survey analysis.
Do we need to ask users if they 1) currently use hierarchical keywords and 2) if they would like to use it.

@tobiasdiez
Copy link
Member

I do like the syntax group|subgroup suggested above. Or maybe group>subgroup. Preferably, the separator can be specified by the user. I'll have a look at this in the next couple of days (except somebody else wants to do it)

@davydden
Copy link

davydden commented Apr 1, 2016

having hierarchical keywords would be good, indeed. I second @tobiasdiez on group|subgroup or group>subgroup. I think at some point after 2-3-5 years of usage of JabRef one has a big bibtex file with a lot of papers in it. Hierarchical keywords would allot to better organise/categorise papers. Knowing nothing about Java, i think it would also help to have some GUI for that. Maybe extend Manage keywords to show things as

group1
   subgroup1
          subsubgroup1
   subgroup2
          subsubgroup2
                subsubsubgroup2
          subsubgroup3
group2
    subgroup3

and allow the user to drag-and-drop the subtrees. For example, one should be able to drag-and-drop subgroup2 to group2 together with all its childs:

group1
   subgroup1
          subsubgroup1
group2
   subgroup2
          subsubgroup2
                subsubsubgroup2
          subsubgroup3
   subgroup3

This, together with filtering capabilities IMHO would constitute a very pleasant user experience where one would be able to quickly see what tags one has and show only relevant papers.

As a continuation of this idea, it would be good to be able to assign (hierarchical) keywords to the entry from already used in the bibtex file. One could use the same visualisation above but only for selection of keywords for a particular paper (i.e. no renaming of keywords, changing parents for trees, etc).

@tobiasdiez
Copy link
Member

tobiasdiez commented Sep 24, 2016

With #1950 the code base is now in place to support hierarchical keywords. The following steps are needed to complete the feature:

  • Move keyword delimiter from preferences to metadata (database properties)
  • Add hierarchical delimiter and change parsing logic in KeywordList accordingly
  • Change UI to support hierarchical keywords

@tobiasdiez
Copy link
Member

The automatic generation of new groups will be included in the next release of JabRef 4.0. You can try out the latest build from https://builds.jabref.org/master/, but please make a backup of your bib file as the current development version is only in an alpha state.

@marc-reichenbach I known this comes a bit late for your PhD thesis but maybe it will be valuable for your further work 😄

Siedlerchr added a commit that referenced this issue Apr 6, 2017
* upstream/master:
  Implement #1359: collect telemetry (#2283)
  Write groups under tag `group` instead of `groupstree` to enhance compatibility with previous versions (#2704)
  Avoid conversion of single underscores (#2711)
  Fix #628: implement hierarchical keywords (#2703)
@davydden
Copy link

@tobiasdiez

are

Add hierarchical delimiter

and

Change UI to support hierarchical keywords

done already? Looking at your comments I was not sure if it's still TODO.

@tobiasdiez
Copy link
Member

@davydden Yes, this is included since 4.1 (probably even earlier). If you create a new group, select "Automatically create groups" where you can specify the delimiter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants