Replies: 13 comments 27 replies
-
Here is a start, feel free to add/suggest changes: BaseModel (Model): A base model that contains fields and functionality used in all models.
Family (Model): An instrument can belong to a family of instruments (Wind, String, Percussion, etc.).
Instrument (Model): A particular instrument that may have multiple alternate names in different languages
AlternativeName (Model): To store multiple alternative names for each instrument, along with the corresponding language.
Language (Model):
User (AbstractUser):
Maybe we could also have something like Audio/video clips? |
Beta Was this translation helpful? Give feedback.
-
I think we need to assume that there will be multiple images per instrument... It's also unclear to me, now that I am thinking about it, how this is "moderated" -- if you think you have a new instrument, do you submit it and then that goes in a moderation queue? Or is it more like a wiki that you submit but then there is opportunity for moderation post facto? |
Beta Was this translation helpful? Give feedback.
-
Just a quick look:
The "date" prefix is redundant, and anyway it's a "date time" field, not just a date.
You'll probably want to store the language code somehow, and decide on a standard to follow. (ISO 639, BCP 47). You'll also probably want a way to differentiate between the "language" and the "script", since many languages can be expressed in multiple different scripts (roman alphabet vs. their own alphabet). Some will also have different romanization schemes. (https://en.wikipedia.org/wiki/Romanization_of_Japanese)
|
Beta Was this translation helpful? Give feedback.
-
To handle cases where an instrument may have many sub-categories (Example: "guitar" could be electric-guitar, acoustic-guitar, etc.) we could have a field in the Instrument model: Perhaps the Family model should just be renamed to "Category" to handle the more abstract instrument categories (idiophones, membranophones, chordophones, aerophones). |
Beta Was this translation helpful? Give feedback.
-
Location (Model)
Instrument (Model)
|
Beta Was this translation helpful? Give feedback.
-
Note: I'm trying to update the model in the main post to keep track of the discussion, so we can reference it for the current "senseof the group" |
Beta Was this translation helpful? Give feedback.
-
I'm now thinking that instrument names should also come from wikidata. Instrument descriptions we might want more of. |
Beta Was this translation helpful? Give feedback.
-
@zhannaklimanova @lucasmarchd01 I've tried to capture the discussion here in the initial post in the discussion...since there hasn't been discussion here yet this week wondering if I can go ahead and start on a PR. Any thoughts//reactions to that first post before I do that? |
Beta Was this translation helpful? Give feedback.
-
A few relevant notes from VIM's 31 July meeting:
|
Beta Was this translation helpful? Give feedback.
-
To outline in writing some of my thinking, I started with separate As I understand it, there are two "things" that could be associated with an instrument (an entity on a curated, for "garbage" removal, list of wikidata ID's): a name and an image (let's say image for simplicity, but could be a video, could be an audio file). VIM supports an accordion having many names (in different languages and in the same language) and VIM supports an accordion having many images, so these are many-to-one relationships. Are there any one-to-one relationships from an accordion to some property or some other abstraction that VIM supports? I can think of two, one from before this morning's meeting and one as a result of this morning's meeting. The first is whether or not VIM added this instrument to Wikidata or if the instrument came to wikidata from some other source. This could be stored in the The second is that this meeting reminded me that there will be curation (some bit of it manual) of what entities in wikidata are going to be in VIM. So there is a one-to-one relationship between an instrument and whether or not it is being included in VIM. A problem with this approach, that is tangential here, is what happens when someone comes to VIM and enters something that is not in VIM but is in wikidata and that we had already decided shouldn't be in VIM. My thought is that we would know if an instrument passed curation to be in VIM because it had names and images (ie. an Both of these are only issues if we are storing anything about names on VIM itself or all this is being stored directly on wikidata, so that's a pretty big question to resolve... What I am confused by is why an |
Beta Was this translation helpful? Give feedback.
-
What I was trying to communicate in today's meeting turns out to be fairly similar to the models outlined in Lucas's first comment - the main suggestion, I think, would be to rename Here is how I imagine models could work (thanks to @annamorphism, @kyrieb-ekat and @lucasmarchd01 for helping refine/clarify this):
|
Beta Was this translation helpful? Give feedback.
-
I've updated the main discussion post to reflect the direction we've agreed to in today's (14 Sept) meeting. I'm going to close this discussion in recognition that what's above is the direction for our first attempt; substantive changes and additions can be addressed in new discussion, issues, etc. If you see something in the main post that is not what we agreed to in the meeting, though, that's unintentional, so please edit or comment! |
Beta Was this translation helpful? Give feedback.
-
I don't understand what |
Beta Was this translation helpful? Give feedback.
-
As of 14 Sept 2023
Models
NB: All models will include information on revisions (who revised and when) from django-reversion (see django-reversion docs)
User – Attributes of a specific VIM user
email
(required): primary log-in ID and contact methodfull_name
(required): user’s full display namecountry
(optional): user’s country, Wikidata IDlanguage
(required): user's preferred site language, language code for use with translatorcity
(optional): user’s city, Wikidata IDinstitution
(optional): institution the user is associated with, for display on the user’s detail pageabout
(optional): text to display on user’s detail pageInstrument – Instruments hosted by VIM
wikidata_id
(required): Wikidata id for the instrumenthornbostel_sachs_classification
(optional): classification in Hornbostel-Sachs classification systemmimo_classification
(optional): classification in MIMO classification systemdefault_image
(required): foreign key toAVResource
to use as the default image for the instrumentLanguage - Languages supported by VIM
wikidata_code
(required): Wikidata language codewikidata_id
(required): Item ID in Wikidataen_label
(required): Language label on wikidata in Englishautonym
(required): Language autonym on wikidata in scriptInstrumentName - Details and provenance of the name of an instrument in a particular language
Source may be broken out into an additional model.
instrument
(required): foreign key toInstrument
language
(required): foreign key toLanguage
name
(required): the name of the instrument in the languageavresource_added
(optional): foreign key toAVResource
if any AV resources were provided with this namesource_name
(required): who (person) or what (eg. written source) called the instrument thissource_type
(required): what type of source is this?source_date
(required): date of sourcesource_location
(required): wikidata ID, geographysource_description
(optional): narrative details on the source of the name provideddescription_language
(optional; required if source_description not empty): foreign key toLanguage
; the language in which the description is enteredAVResource – Records AV resources and maps to an instrument
NB: AVResources will have source provenance data, but I need to do more research into how we can harmonize what's on Wikimedia Commons already and new AV resources.
instrument
(required): foreign key toInstrument
type
(required): audio/video/photo/?format
(required): resource formaturi
(required): ID for the resource on internet archiveinstrument_date
(optional): date instrument was madeinstrument_maker
(optional): maker of instrumentinstrument_location
(optional): place instrument was made; wikidata ID, geographyinstrument_description
(optional): additional narrative about the instrument in the resourceinstrument_description_language
(optional; required ifinstrument_description
is not empty): foreign key toLanguage
URLS
NB: Nouns in URLs (eg.
users
,languages
,instruments
) are consistently in the plural!User
“/users/<user_id>” -- User detail page (later: ranking)
Language
“/languages/” -- summary information about languages – list of languages, number of instruments needing names (later: top contributor)
“/languages/<language_id>” -- language detail page
Instrument
“/instruments/” -- summary information about instruments
"/instruments/languages/<language_id>" -- page with lists of instruments that have labels in the given language and that need labels in the given language
“/instruments/<instrument_id>” -- list of an instrument’s names in various languages
“/instruments/<instrument_id>/languages/<language_id> -- details/history/provenance of an instrument’s name in a given language
Beta Was this translation helpful? Give feedback.
All reactions