JabRef / jabref

Graphical Java application for managing BibTeX and biblatex (.bib) databases
https://devdocs.jabref.org
MIT License
3.59k stars 2.54k forks source link

Automatically focus on frequently used entries #10418

Open ehehela opened 1 year ago

ehehela commented 1 year ago

If attachments to an item have been opened frequently recently, they can be considered popular. I suggest that Jabref automatically display them at the front of the group, or highlight them.

ilippert commented 1 year ago

I guess, it might be possible for JabRef to be aware if an entry was engaged with - though I would want too disable it. For enabling it, an additional timestamp might be used that is updated whenever an entry is shown in the entry editor, or a click on it in the entry table happens.

ehehela commented 1 year ago

To be exact, JabRef should count the number of times that the entry is accessed in a period, e.g., the number of times the attachments (PDF files or others) were accessed in a month. Or perhaps, JabRef could add a new column named ViewCount to log the number of times in a period set by users. In this case, users can quickly find entries by sorting this column.

jiahengguo123 commented 12 months ago

Hello, I am a new contributor. And I will carefully read the contribution guidelines. Could you please assign this issue to me?

ThiloteE commented 12 months ago

@ehehela could you please describe your workflow where you need this? Why do you want to know this information? Is this a shared library or do you work alone? Have you ever thought about simply adding frequently used entries to groups or labeleling them as important? We even have a priority label.

image You also could create automatic keyword groups that capture entries with certain keywords. E.g. image

If we were to implement what you suggest, would this not introduce performance issue for large libraries? Also, how to reset the counter? Where to store the counter? - on pc or in library file? What happens, if multiple users have access to the library? Do you want to have separate counters for each user or multiple counters for each? ....

koppor commented 12 months ago

@ThiloteE The idea is that JabRef automatically tracks readings - without any additional user input. Explanation of the general idea in German: https://de.wikipedia.org/wiki/Mylyn

Scientific background:

koppor commented 12 months ago

To be exact, JabRef should count the number of times that the entry is accessed in a period, e.g., the number of times the attachments (PDF files or others) were accessed in a month.

This is a nice thing. Implementation: Use a MVStore provided by h2 stored in the directory retrieved with

Path.of(AppDirsFactory.getInstance()
                                         .getUserDataDir(
                                                 OS.APP_DIR_APP_NAME,
                                                 "views",
                                                 OS.APP_DIR_APP_AUTHOR))

The database knows tracks for each citation key the number of views. Granularity: one hour (that means, if accessed at 10:05 and 10:43, it counts as one).

Or perhaps, JabRef could add a new column named ViewCount to log the number of times in a period set by users. In this case, users can quickly find entries by sorting this column.

This is the second thing to implement so that the data can be accessed.

8 years ago, we had explicitly writable fields (refs https://github.com/JabRef/jabref/issues/574). I think, we should have a org.jabref.model.entry.field.FieldProperty adding INMEMORY stating it should not be written and not be synchronized to a server.

Hints

ehehela commented 12 months ago

I was struggling to articulate my thoughts, but thankfully, @koppor accurately and professionally expressed what I wanted to say.

Take myself for instance, there are many literatures regarding one research topic. Unread and low-quality entries are automatically moved into "Inbox" group, in which priority is used to mark entries to be read and quality-improved first. Other entries are in specific groups according to their research fields. When I decide to do research in one certain direction, I usually first locate a group then scroll down and up to query related papers which may well be the key references and will be looked up many times in the future. However, these papers are scattered in different (sub-)groups. How to quickly get these needed and strongly correlated papers? Maybe Jabref could guess according to user behavior, e.g., times of opening attachments. Maybe some smart groups will promote this. Or like the following drafts (illustrative, not necessary). 屏幕截图 2023-10-17 165522 屏幕截图 2023-10-17 181322

koppor commented 6 months ago

A new intelligent group should be introduced. This is comparable to BibDesk's "Smart" groups.

ExrosZ commented 5 days ago

Hi! I am a university student looking to work on an issue in this repository, I've read the contribution guidelines and I think I can implement this feature, I'd love to be assigned to this issue.

github-actions[bot] commented 5 days ago

Welcome to the vibrant world of open-source development with JabRef!

Newcomers, we're excited to have you on board. Start by exploring our Contributing guidelines, and don't forget to check out our workspace setup guidelines to get started smoothly.

In case you encounter failing tests during development, please check our developer FAQs!

Having any questions or issues? Feel free to ask here on GitHub. Need help setting up your local workspace? Join the conversation on JabRef's Gitter chat. And don't hesitate to open a (draft) pull request early on to show the direction it is heading towards. This way, you will receive valuable feedback.

Happy coding! 🚀