Indicia-Team / warehouse

GNU General Public License v3.0
5 stars 3 forks source link

taxa_list_for_app.xml report choosing species synonyms randomly #509

Open kazlauskis opened 8 months ago

kazlauskis commented 8 months ago

I am using the reports/library/taxa/taxa_list_for_app.xml report to fetch the UKSI species list into my apps. For some reason, it now randomly picks the species' synonym name, so for the Anguilla anguilla, it sometimes returns Sharp-nosed Eel and sometimes Broad-nosed Eel. Is there something like a "preferred" synonym?

JimBacon commented 8 months ago

This report returns the 'default_common_name' in the column labelled 'common name'. This is, in my experience, the first common name that is added, so could be in any language. It is a rather useless thing, I find, particularly in a multilingual context. However, it is the only thing close to a 'preferred' common name. All other column names are equal.

In the column named 'synonym', the query assembles all the English names (with the exclusion of the default_common_name, should that be English) and then returns the first one in the list. What ends up first in the list will depend on how the database happens to execute the query. It could probably be explained by a postgresql guru but I'm content to say it is not easily predictable. The same is true of the Welsh name. And this applies to all species, not just the one you have given as an example.

As far as I know it means there is nothing that can be easily done about this. If there is any marking of preferred common names, I have not heard of it. I can see there is a case for it though.

JimBacon commented 8 months ago

Hi @kazlauskis, Do the apps only offer one common name rather than all common names to recorders? If so, we might need to pass this upwards for guidance on whether the apps should offer multiple common names or whether some constistent way of selecting a preferred common name is needed... or, I supposse, whether we are happy with the current situation.

kazlauskis commented 8 months ago

Most of my apps use only the scientific name and a single common name for a given language, such as English, Welsh, Spanish, etc. Some apps, including the iRecord App, also use a single English synonym, which now changes with every other report run.

We could start using all the synonyms as an array in those apps, but even then, it would make sense to return those in a predictable order. Could we sort the synonyms alphabetically and, for this report, return the first synonym on the list?