Minimize redundant information

There is redundant information in many of my albums.
I can correct a lot of this with rule-based macros.
I like to have INVOLVEDPEOPLE as preferred information.
PERFORMER often contains redundant information.

How should a check or reformatting for the attached example be formulated?
Can it also include PRODUCER?

Before is start to think about anything to reduce parts:
IMHO, the format of the fields for INVOLVEDPEOPLE is not according to standard:

Notes Role1:Person1;Role2:Person2; … e.g., Drums:Jamie Graham;

PERFORMER is a user-defined field whereas INVOLVEDPEOPLE is a standard one.
I agree that probably hardly any player displays the data of these fields anyway, be it standard or not.

I would consider to create INVOLVEDPEOPLE fields in a format according to standard.
And then there is the question whether the information is now still redudant.

I would delete the content of PERFORMER if it is not already contained in INVOLVEDPEOPLE.
But how do you find matching content from 2 lists?
If I merge the respective strings, the question is "How do I find the same words in two sentences", right?

That is why I said: before I start to think about the reduction part.
Yet, I see it as the same problem as the one already discussed here:

And if the 2 fields are not yet 1 string, then the first task would be to merge them, perhaps in a user-defined field.

If I understand correctly, there is no available solution to identify identical strings in different tags.
Too bad. :woozy_face:

You could try a filter like
"$if($eql(%performer%,%involvedpeople%),1,0)" IS 1
but that would only work if there is just 1 field of each type.
In your case, you have created multi-value fields so that you would have to go through the list of fields and compare $meta(performer,1) with $meta(involvedpeople,1) and $meta(involvedpeople,2) and $meta(involvedpeople,3) and so on.
And the same applies to the second performer.
So the only way around it would be to merge the multi-value fields into one ...
but then you would have to look for a sub-string in a long string as probably the resulting long string of all INVOLVEDPEOPLE would be different from all the merged PERFORMERs esp. as the sorting would be different.
So the idea would be: merge INVOLVEDPEOPLE and PERFORMER to a user-defined field, eg. DUPLICATEPERFORMER and then apply the action that has already served you well to get the performers right.

I still wonder: what happens to the data that is not duplicated but unique to a certain field? would that stay in that field or would be merged to INVOLVEDPEOPLE?
If that is the case, then it would make even more sense to merge first and then remove the duplicates.

Blockquote I still wonder: what happens to the data that is not duplicated but unique to a certain field? would that stay in that field or would be merged to INVOLVEDPEOPLE?
If that is the case, then it would make even more sense to merge first and then remove the duplicates.

I would like to collect all the information in INVOLVEDPEOPLE.
How can I find out the correct values if I combine all multi-value fields from two tags into one?
How do I find the information that has been cleared of duplicates?

Which of my described steps didn't you understand?

I am not shure how to

Would you please give me a hint how to process DUPLICATEPERFORMER ? :thinking:

I would think instead of

Convert>tag-Tag for DUPLICATEPERFORMER
Format string:
$regexp($reverse($regexp($regexp($reverse($regexp($regexp(%DUPLICATEPERFORMER %,'^(\s+;*|\s*;+)+|(\s+;*|\s*;+)+$|((?<=;)\s+)|(\s+(?=;))',),'^|,';')),'(;[^;]+)(?=(\1|;.*?\1))',),'^;+|;+,)),'(?<=;)',' ')

Wow! :no_mouth: You seem to be an REGexpert.
Thank you very much. Your input will certainly bring me a big step closer to my goal. :clap: