# Minimize redundant information

**URL:** https://community.mp3tag.de/t/minimize-redundant-information/63648
**Category:** Support
**Created:** [February 1, 2024, 11:35am UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648 "2024-02-01T11:35:31Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Roland](https://community.mp3tag.de/user_avatar/community.mp3tag.de/roland/32/8001_2.png) [@Roland](https://community.mp3tag.de/u/Roland)
#### Post date: [February 1, 2024, 11:35am UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/1 "2024-02-01T11:35:31Z")

</div>

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.

 ![TAG Dubletten](https://community.mp3tag.de/uploads/default/original/3X/4/5/45f7fffa6e7842c10c8b22b02f512916b9039c08.jpeg)

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

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [February 1, 2024, 11:48am UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/2 "2024-02-01T11:48:23Z")

</div>

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

> **[Tag Field Mappings – Mp3tag Documentation](https://docs.mp3tag.de/mapping/#involvedpeople)**
>
> Overview of all available tag fields, their names in Mp3tag, and how they are mapped to the internal structures of the different tag formats. Mp3tag is the universal Tag Editor.

_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.

---

<div class="post-metadata">

### Author: ![Roland](https://community.mp3tag.de/user_avatar/community.mp3tag.de/roland/32/8001_2.png) [@Roland](https://community.mp3tag.de/u/Roland)
#### Post date: [February 1, 2024, 12:12pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/3 "2024-02-01T12:12:22Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [February 1, 2024, 1:20pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/4 "2024-02-01T13:20:14Z")

</div>

> [@Roland](#):
>
> 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:

> [@COPYRIGHT - eliminate redundancy](https://community.mp3tag.de/t/copyright-eliminate-redundancy/61494):
>
> In the COPYRIGHT field I often find strings like 2023 Blues Route / Delta 2023 Blues Route / Delta The texts contain a different even number of words. I would like to eliminate the obvious redundancy in the text. After correction, I would like to get the following: \> 2023 Blues Route / Delta How to do this?

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.

---

<div class="post-metadata">

### Author: ![Roland](https://community.mp3tag.de/user_avatar/community.mp3tag.de/roland/32/8001_2.png) [@Roland](https://community.mp3tag.de/u/Roland)
#### Post date: [February 1, 2024, 2:12pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/5 "2024-02-01T14:12:27Z")

</div>

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

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [February 1, 2024, 2:22pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/6 "2024-02-01T14:22:53Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Roland](https://community.mp3tag.de/user_avatar/community.mp3tag.de/roland/32/8001_2.png) [@Roland](https://community.mp3tag.de/u/Roland)
#### Post date: [February 1, 2024, 3:48pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/7 "2024-02-01T15:48:28Z")

</div>

> 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?

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [February 1, 2024, 7:13pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/8 "2024-02-01T19:13:13Z")

</div>

Which of my described steps didn't you understand?

---

<div class="post-metadata">

### Author: ![Roland](https://community.mp3tag.de/user_avatar/community.mp3tag.de/roland/32/8001_2.png) [@Roland](https://community.mp3tag.de/u/Roland)
#### Post date: [February 6, 2024, 10:23am UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/9 "2024-02-06T10:23:40Z")

</div>

I am not shure how to

> [@ohrenkino](#):
>
> and then apply the action that has already served you well to get the performers right.

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

---

<div class="post-metadata">

### Author: ![ohrenkino](https://community.mp3tag.de/user_avatar/community.mp3tag.de/ohrenkino/32/4843_2.png) [@ohrenkino](https://community.mp3tag.de/u/ohrenkino)
#### Post date: [February 6, 2024, 10:59am UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/10 "2024-02-06T10:59:53Z")

</div>

I would think instead of

> [@COPYRIGHT - eliminate redundancy](https://community.mp3tag.de/t/copyright-eliminate-redundancy/61494/3):
>
> `$regexp($reverse($regexp($regexp($reverse($regexp($regexp(%Genre%,'^(\s+;*|\s*;+)+|(\s+;*|\s*;+)+$|((?<=;)\s+)|(\s+(?=;))',),'^|,';')),'(;[^;]+)(?=(\1|;.*?\1))',),'^;+|;+,)),'(?<=;)',' ')`

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

---

<div class="post-metadata">

### Author: ![Roland](https://community.mp3tag.de/user_avatar/community.mp3tag.de/roland/32/8001_2.png) [@Roland](https://community.mp3tag.de/u/Roland)
#### Post date: [February 6, 2024, 12:56pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/11 "2024-02-06T12:56:57Z")

</div>

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

---

<div class="post-metadata">

### Author: ![system](https://community.mp3tag.de/uploads/default/original/2X/c/ce7035d426cb755a7916793326d23b465222a407.png) [@system](https://community.mp3tag.de/u/system)
#### Post date: [March 7, 2024, 12:57pm UTC](https://community.mp3tag.de/t/minimize-redundant-information/63648/12 "2024-03-07T12:57:40Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
