Project

General

Profile

feature request #7932

Implement subject resolver for CdmPreferences

Added by Andreas Müller 6 months ago. Updated 16 days ago.

Status:
In Progress
Priority:
Highest
Category:
cdmlib
Target version:
Start date:
11/29/2018
Due date:
% Done:

30%

Severity:
normal

Description

Finding the best matching preference for preferences with same predicates but differing subjects is currently not yet implemented or only limited for subjects with taxonomic subtree preferences.

As handling preferences in application has shown that there is a need for caching preferences it is preferred to implement a best matching subject resolver that is DB independent.
This creates difficulties for tree filters like the taxonomic subtree filter where the subject may include the subtree uuid or the tree index. Using the subtree uuid is easier to maintain but requires on the fly creation of the tree index because only with the tree index one may be able to decide if a taxon is included or not. Using the tree index as part of the subject avoids this problem but is more difficult to maintain if a taxon node is moved or if it's higher taxonomy changes.

There are multiple possibilities to implement resolving

  1. easiest: all matching subjects must completely be included in the query subject, the longest subject winns
  2. middle: all parts of a matching subject must be in the query subject in the same order, but the query subject may include additional parts, not only at the end but also in the middle; for finding the best matching we start from the back, if the last part exists it is the best matching otherwise call recusively with the query subject shortened by the last part
  3. general: to match the query subject all parts of the subject must also be parts in the query subject no matter which order; finding the best matching works like in 2), the query subject is read from behind and whenever a subject includes the last part read it winns, otherwise start recursively

Related issues

Related to Edit - feature request #7920: Possibility to define area specific status selection In Progress 11/22/2018

Associated revisions

Revision b45c1f2d (diff)
Added by Andreas Müller 6 months ago

ref #7932 first implementation of PreferenceResolver and some adaption to PreferenceService API.

  • Correct handling of subtree subjects still open.
  • Also creation of user defined subjects still open.

Revision fa1dc0a8 (diff)
Added by Katja Luther about 2 months ago

ref #7932: add getBestMatching method using preferenceResolver in preferenceCache

Revision 12b0669d (diff)
Added by Katja Luther about 2 months ago

ref #7932: add getBestMatching method using preferenceResolver in preferenceCache

History

#1 Updated by Andreas Müller 6 months ago

For now we implement solution 2.

#2 Updated by Andreas Müller 4 months ago

#3 Updated by Andreas Müller 4 months ago

  • Description updated (diff)

#4 Updated by Andreas Müller 4 months ago

  • Status changed from New to In Progress

#5 Updated by Andreas Müller 4 months ago

  • % Done changed from 0 to 30

Katja, Andreas, could you please integrate the resolver into your DBpref stores/caches? It is mostly implemented.

#6 Updated by Andreas Müller 3 months ago

  • Target version changed from Release 5.5 to Release 5.6

#7 Updated by Andreas Müller 3 months ago

  • Priority changed from New to Highest

#8 Updated by Andreas Müller about 1 month ago

  • Target version changed from Release 5.6 to Release 5.7

This is mostly done but untested therefore move to 5.7

#9 Updated by Andreas Müller 16 days ago

  • Target version changed from Release 5.7 to Release 5.8

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)