i think that smart "featuring" grabbing algoryhm is really important thing for foo_discogs.
we all must help bubbleguum for develop some smart algorithm for "Credits" grabbing... it must be not hard to realize... and with simple logic... because i think bubleguum have very small amounts of free time...
all who wants to help look at source code of this link:
http://www.discogs.com/release/935576?f=xm..._key=90c962fb19and try to develop something.
---
ill try to offer some algorythm:
as example i will talk about this release:
http://www.discogs.com/release/935576?f=xm..._key=90c962fb19i can see here that all "featurings" placed in separate tag "<extraartists>" so we got all values now simply (thanks to api):
<extraartists>
<artist>
<name>Benny Benassi</name>
<role>Remix</role>
</artist>
<artist>
<name>Pharrell Williams</name>
<role>Vocals [Featuring]</role>
</artist>
</extraartists>
the main problem here is tag <role> ... because this tag is not standartized.. and submitters can write here all what they want...
(shure, who use DISCOGS_TRACK_CREDITS with RAW credits info for showing - this people dont have problem in this questions...)
for all others:
...we can try to standartize <role> tag by applying to it some "key words" and if <role> have this keyword, then write <name> tag to linked DISCOGS_CREDITS_**** tag.
for example:
QUOTE
1.14A Oakenfold* - Sex N' Money
Remix - Benny Benassi
Vocals [Featuring] - Pharrell Williams
"key words" list:
1. Vocal (without "s" and the end)
2. Remix
4. Producer
3. Feat (without "uring" at the end or "." at the end)
so we grab first <artist> in <extraartist> tag:
Remix - Benny Benassi
and analyze <role> tag by applying to it "key words list":
1. Vocal - no it hasnt any "vocal" text
2. Remix - yes it have Remix SO:
2.1 Benny Benassi goes to multivalued %DISCOGS_CREDIT_REMIX%
break;
grab second <artist> in <extraartist> (priority have importance here):
Vocals [Featuring] - Pharrell Williams
1. Vocal - yes it have "vocal" text so
1.1 Pharrell Williams goes to %DISCOGS_CREDIT_VOCALS%
break; (shure it have "feat" text too but Vocals is more important than just "Featuring"... and we dont need somethink like this: "track (vocals by Pharrell Williams, Featuring: Pharrell Williams")
so because of it we need to break key list checking after first occurence...
and... if no occurence was after key list checking -> tag <name> goes to default DISCOGS_CREDIT_FEATURING
so by looking at my version "key list" there must be 4 standartized tags:
DISCOGS_CREDIT_VOCALS
DISCOGS_CREDIT_REMIX
DISCOGS_CREDIT_PRODUCER
DISCOGS_CREDIT_FEATURING
and shure raw:
DISCOGS_TRACK_CREDITS
i thing that this algorythm is not hard to realize.. and have simple logic.