Currently in Specify 7, certain attributes/properties which are modeled using controlled vocabularies can generally only be recorded with one controlled value per field per record. If a user wants to record more than one value for a given record, there are only a few ways of doing that:
-
Using a yesNo box field for each attribute/property term
This works OK if the number of terms is very small (<5). But it also means that the field is split into multiple fields which cannot be consolidated into one field in query results or sent to aggregators without modification. -
Use a text field with a picklist where each attribute/property is an item in the list
The above works if the attribute/property is always discretely known for a given record. But it is less useful when combinations of properties must be recorded, as the picklist must include every possible combination of the discrete values, and controlling those values becomes more complex.
Take for example “Sampling method” which in our DB is a picklist that users can modify. The current practice is to list distinct values with a | separator between them. But this requires a lot of maintenance, and it’s easy to get distinct values that mean the same thing. ex. “viewer” and “view bucket” are the same tool, but because one user entered “hand” as the first method, they didn’t see that there was already a preferred term for the tool.
This kind of information would be better modeled as a multi-select combo box, where users can pick all the properties that apply to a given record. Have the devs ever considered this?
I’d love to see support in a future Specify version.

