Every user has different expectations from MusicBrainz. It has always been the goal to fullfill all of them. Thus the current database model (and style guidelines for additional modelling) tries to be everything at once. That - in the opinion of quite some users - does not work any more, as expexctations are generally higher now. A new approach could go the following way: find out, what different kinds of aspects there are; model objects and views for all of them (separatly!); find out, what they have in common - then split the objects (and later the data) into smaller parts (logical units) such that some of those units can be shared between the different models.
The ViewModel then tries to develop views on the different aspects and the DatabaseModel will describe how to store the data generated by the instances of the objects. But those two things will happen later!
To figure out what aspects we are dealing with we will write down what questions a user could pose to MusicBrainz:
- What albums does artist X have?
- Which releases were there exactly from artist X?
- What other works has artist X done? What are her/his relationships to other artists?
- Who worked on this song? Who wrote it originally? What versions are there? On which releases/albums does it appear?
- How do I easily get the titles of the tracks on my CD to my player?
- How can I tag my files most easily, fast and exact? And how can I tag them in my prefered way?
- I can't read that signs! Nor can my system/player. Isn't there a way to show it in latin letters?
- How can I enter all my medias into the database? For example my vinyl, cassettes, CDs, DVDs, SACDs, DualDiscs, web albums, ...? And how can I easily use MusicBrainz as a catalogue for all these media types?
- How can I find all this stuff easily and only view the information I want to see - but then again more if I want so?
- Which tracks did Jimi Hendrix record when and where? Which ones do I have, and which ones do I still need to collect?
From those questions some aspects solidify. You can see each of them as a pair of glasses. Putting one on you only see information relevant for this aspect. The good thing: they work additive. Putting other glasses over them shows you all information being relevant for both of them. Thus if you are interested in many different aspects you should be able to:
- switch between aspects,
- combine certain aspects (where it makes sense and is possible) to see as much information as you need at once.
The aspects are:
- /ExternalInterfacesAspect (?)
Are those not aspects, too:
- The Discography of an aritst
- The creative process behind a work (who remixed, performed, arranged, composed)
Or are these questions and not aspects? In this case you would have to define in more details