-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Batch load taxon names, unexpected behavior from a newcomer's perspective #4151
Comments
@weevil-see First, thanks very much for spending time with TW and taking the time to report your experience, we appreciate that. I think you came to all the "right" conclusions.
You got it. This exactly reflects what happens when you import the data, we "normalize" it into TaxonWorks model.
It's not just that. What you are seeing in the summary is a list of the unique "objects" that will be created in TaxonWorks.
"Line breakdown" is a little obscure. It is meant to reflect that we are looking at one line of data, and "breaking it down", or decomposing it into one more "things". We like to say that TaxonWorks takes data "from rows to things". Storing data as "things" gives us major advantages, for example we can annotate all things with a wide range of metadata, etc. It also has some draw-backs, it's more difficult to communicate what's going on in imports like this, precisely what you experienced.
Precisely! You can see that via the Latinized error downstream. This particular importer will ignore that message and let you create the higher taxon, only failing at the lower taxon (assuming you select a particular mode).
You're right, there are certainly nuances here. To understand this it helps to think a little broader. The "things" (models) in TW have various validations, both hard (preventing addition), and "soft" which allow addition and then subsequently provide feedback on, say, logical inconsistencies, or ways to fix the data. Because all data models act the same we can write "meta" tools, like generic batch loaders, across them. This lets us re-use code, knowning that objects will have errors on them that need to be reported, in a generic fashion. What you are seeing in this type of batch-loader is the application of this generic framework. There are various other contexts in which you would create a name, other forms, batch scripts, etc., validations need to apply to all those contexts. Deciding which validations to show in which context (in batch show these, in script show those, in form show these other) is, basically, not really worth it, what's important is that any data that enters the system does so following the same set of rules. A couple followups:
Action items:
Thanks again! |
@mjy thanks a lot! I really appreciate the effort! |
Steps to reproduce the bug
Screenshot
This is what the upload looks like:
Expected behavior
To me, the "Line breakdown" looks very unfamiliar. I would have expected a breakdown per line, but instead every higher taxon is only recorded once, in the first line where it occurs.
I get that this is useful, to make sure that every data error is recorded only once, if it is for example in a family-group name.
As soon as I figured this out, the "children is invalid" error did not seem as strange to me. The thing which befuddled me is that it is called a "line breakdown", so I did not understand that there is an error for a line which seemingly did not contain any errors.
Now I understand that the "children is invalid" is raised in the first line where a higher taxon appears, which has a child in another line with an error.
I am not sure if this is really necessary, as the child error is also raised in the corresponding line.
Additional Screenshots
The two Bruchela species are raising an error, this is why the "children is invalid" error shows up in the first line with the genus, and the first line of the subfamily, and the first line of the family.
Environment
Development (docker)
Sandbox Used
No response
Version
v0.44.3
Browser Used
firefox
The text was updated successfully, but these errors were encountered: