Can I have mutually exclusive groups?

I am currently writing a paper. I would like to have the papers cateogrized in: TODO, excluded, included.

That means, a paper can be either TODO, excluded, included. Can I do that with groups? I started with “included” and “excluded”. However, these two groups are not mutually exclusive.

grafik

There was a similar question in 2016. The solution proposed at How to create non-overlapping groups - #2 by simonharrer is unclear to me. I do not find the negation sign.

The hint on free search expression did not help me either. The documentation at Groups - JabRef is rather short.

Working with NOT does not work here:

Expression: NOT(groups=excluded) AND NOT(groups=included)

It seems only the firrst “NOT” is handled and the second one ignored. I also tried switching the inner conditions, but did not work, too.

grafik

Albeit i think there are many ways to rome, enhancing search to have a search-expression that allows to exclude

  • all groups
  • a specific group

for the search would indeed be a very useful enhancement of Jabref.

It would not only solve ‘mutually exclusive groups’ indirectly via workaround, but solve this issue as well: Search for an entry without triggering group or other fields · Issue #7996 · JabRef/jabref · GitHub

Two other approaches to create exclusive groups would be

  1. Allow entries to only be within a single group. This would remove a valuable feature currently provided by Jabref: Allow entries to be within multiple groups.
  2. Jabref acquires a mechanism that can mark a group as exclusive. The user would need to actively activate this option when creating a group or enabling it via preferences. There are at least two different variants of this:
    • Yet again, all entries that will be attached to this group can only be part of this group and none other. Jabref actively deletes all other groups from the entry and prevents the user to add such entries to other groups. Current Jabref is not able to do this i believe.
      OR
    • All entries that will be attached to this group will not be able to be part of groups specified by the user under group options/preferences. This allows to only exclude specific groups instead of ALL groups. If i am not mistaken Create disjoint subgroups · Issue #7049 · JabRef/jabref · GitHub shows how this is currently handled.

With my crude understanding, the search functionality of Jabref (e.g. something like: ´NOT(group=excluded)´) would play a crucial part in all of the approaches, regardless if the user uses it, or if Jabref one day may use it automatically in the background.

Heureka :grinning:, I found a solution for JabRef 5.6 January 2022:

It makes use of including additional conditions into the regular expression, to be exact other labels or keywords. The example uses readstatus=read and readstatus=skimmed to achieve this, but in theory other fields are possible too.

  • Configuration for the three groups included, excluded and to do:
    image
    image
    image

  • Known problems:
    Using this specific solution, entries cannot be manually moved from included to excluded group anymore using the add selected entries to this group button.
    image

Thanks again to @aexel and his post that describes how to create a group based on readstatus.

1 Like

Would this work for you @koppor?