Bulk identification tool

This is a great point.

Let’s think about the impact of a freshly minted new user who lands on the ‘Identifier’ page. However, unfortunately this particular new user has no genuine interest in naturalism and only wants to entertain themselves with vandalism. (This is an extreme example but I think it helps illustrate the point)

If the vandal was able to assign “course” taxa to multiple observations at once (let’s say, they ID a large group of frogs and plants as “Avian”), their vandalism won’t affect the level of scrutiny that observation gets on the site. The observation will remain as “Needs ID” until it meets the criteria for “research grade”, and eventually the vandal’s ID will be labelled as “Maverick”.

However, the vandalism possible if an individual inappropriately uses the “Agree” button to confirm large numbers of observations they have no idea about, has far more potential for harm on the site. Because anyone can “Agree” with species level IDs even if they have no idea, there is a significant risk that large amounts of observations on the site will change from “Needs ID” to “Research grade”. As a consequence, this would lead to these observations being filtered out of the workflow of legitimate Identifiers, and thereby actually allowing rampant “Agree” vandalism to prevail in the database and bypass scrutiny.

In summary, I’m arguing that a bulk ID (+ reversal) tool, for course taxa only, is less risk than the existing “Agree” button, which can be used to provide a false species-level ID

7 Likes

Thanks so much @jdmore I never knew that though I’ve been on iNat for almost a year and have done over 1500 identifications lol.

1 Like

@tripleaxle Right? It took me even longer! Seems like it could be made more discoverable than it currently is. Or maybe it’s intended that one be here for a while before gaining “the power”? :wink:

1 Like

Has any progress been possible for this feature?

I think it’s far too easy to abuse a bulk ID tool. I sometimes use an external app that allows me to do rapid IDs of Unknowns, and even though I need to ID each individual, I could easily plow through thousands an hour. A bad actor with this sort of tool could easily ruin lots of valuable data – a bot could be even worse.
While I do think that some trusted people should have access to this sort of tool or shortcut, I am opposed to its being a built-in feature anyone can use.

3 Likes

What about a safety feature where only Unknown records can be bulk-identified, and only to Order level, for example. So you could easily identify a whole batch of Flowering Plants, or Mammals, but nothing lower than Order (or Class if that’s safer).

That would really help users to clear up the Unknown records, and it’s safe because experts will look at them later and fix up any mistakes.

6 Likes

Also just a note that this has also been requested on a separate thread, but with only one note so far: https://forum.inaturalist.org/t/batch-add-the-same-id-to-multiple-observations/2549

2 Likes

Now this, I’d support.

3 Likes

I upvoted it!

1 Like

Also a useful and safe way that a bulk identification tool could help is to select a whole bunch of observations and mark them as Captive/Cultivated. That would help to reduce the number of observations to sift through when trying to ID wild plants/animals.

4 Likes

Sorry if I sound like a broken record, but I keep seeing this thread getting a lot of attention (https://forum.inaturalist.org/t/amount-of-unknown-records-is-decreasing/8594/298), and I think the bulk-identification tool (with safety features) would make a huge difference to a lot of people, and be relatively easy to implement.

4 Likes

I’d also like to support the idea of there being a bulk identifier that labels the Unknowns. The number of unknown observations is often watched and seen as a problem and a few people devote a lot of time labeling plant/insect/mushroom/arachnid/etc . Say that those people can still do kingdom filtering if they like, but if an observation goes - maybe - 24 hrs or a week without an ID, then it gets automatically kingdom IDed by the auto-suggester. A day, a week, a month, doesn’t matter … it just prevents a huge backlog of unknown observations. And then people IDing plants or spiders or whatever they like to ID will easily be able to correct the few mislabeled ones. If identifiers don’t like having to correct those ones, add a filter for them to look at ‘all plants’ or ‘all spiders’ which have not been only auto-IDed (like how identifiers can view unreviewed observations with a checkbox).

2 Likes

There’s a lot of points re it being useful for unknowns on the other feature request too.
Have you voted for that one?

i was thinking about this today since i’ve been experimenting with Power Automate Desktop a little bit. using this tool, it seems possible to set up mechanism to trigger different sets of actions based on user-input keyboard shortcuts.

just as a proof of concept, i set up a flow that will effectively perform the following actions when you’re on the Identify screen:

  • (Ctrl+1) ID as Crinum americanum, with a note “5 Petals”
  • (Ctrl+2) Annotate as Alive + Organism
  • (Ctrl+3) Add a comment “Nice Photo!”
  • (Ctrl+4) just for debugging, display an information box that shows all the actions executed so far

i didn’t set up the flow in the most proper way (since it was just a quick proof of concept), and i’ve run across times when it glitches, but when it’s working, it seems to work pretty well, and i think it could save quite a few keystrokes (and therefore time) for common repetitive tasks.

Power Automate Desktop is included and free to use on Windows 11, and if anyone’s interested in trying it out on their own, below are the actions from the flow i set up. (you can just copy and paste into your own blank flow.)


SET keysGoToInfo TO $'''{Shift}({Left}){Shift}({Left}){Shift}({Left})'''
SET keysGoToAnnotations TO $'''{Shift}({Right}){Shift}({Right}){Shift}({Right}){Shift}({Left})'''
SET delayForAutocomplete TO 1
Variables.CreateNewList List=> listActionsTaken
LOOP WHILE (1) = (1)
    MouseAndKeyboard.WaitForShortcutKey.WaitForShortcutKey InputKeys: ['Ctrl+NumPad1', 'Ctrl+NumPad2', 'Ctrl+NumPad3', 'Ctrl+NumPad4'] IndexOfShortcutKeyPressed=> IndexOfShortcutKeyPressed
    MouseAndKeyboard.PressReleaseKey.ReleaseKey Control: True Alt: True Shift: True Win: False
    SWITCH IndexOfShortcutKeyPressed
        CASE = 1
            Variables.AddItemToList Item: $'''ID with Note: Crinum 5 Petals''' List: listActionsTaken NewList=> listActionsTaken
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%keysGoToInfo%
{I}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''Southern Swamp Crinum''' DelayBetweenKeystrokes: 0 SendTextAsHardwareKeys: False
            WAIT delayForAutocomplete
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''{Down}{Tab}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''5 Petals''' DelayBetweenKeystrokes: 0 SendTextAsHardwareKeys: False
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''{Tab}{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
        CASE = 2
            Variables.AddItemToList Item: $'''Annotate: Alive + Organism''' List: listActionsTaken NewList=> listActionsTaken
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%keysGoToAnnotations%
{A}{A}
{E}{O}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
        CASE = 3
            Variables.AddItemToList Item: $'''Comment: Nice Photo''' List: listActionsTaken NewList=> listActionsTaken
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''%keysGoToInfo%
{C}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''Nice Photo!''' DelayBetweenKeystrokes: 0 SendTextAsHardwareKeys: False
            MouseAndKeyboard.SendKeys.FocusAndSendKeys TextToSend: $'''{Tab}{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
        DEFAULT
            Variables.AddItemToList Item: $'''Display Debug Messages''' List: listActionsTaken NewList=> listActionsTaken
            Display.ShowMessageDialog.ShowMessage Title: $'''Actions Taken''' Message: listActionsTaken Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: True
    END
END

this could be adapted to handle various use cases. for example:

  • when Identifying from unknown to Kingdom, you could set up actions based on something like Ctrl+1=>Plant, Ctrl+2=>Animal, etc…
  • when Annotating animals, you could set up actions based on something like Ctrl+1=>Alive+Organism, Ctrl+2=>Dead+Organism, etc…
  • when Annotating plants, you could set up actions based on something like Ctrl+1=>Flowering, Ctrl+2=>Fruiting, Ctrl+3=>Flowering+Fruiting, etc…
  • etc…
2 Likes

What external app do you use?

i believe trh_blue is on hiatus, but @arboretum_amy might know the answer.

i made my example above in Power Automate, and in another thread, this other tool is mentioned:

1 Like

I do know, but I am not sure if I should say, as it was never clear to me whether or not staff agreed with extensive use of that app. It hasn’t been banned as far as I know, which might be taken as tacit approval, but perhaps it is best not encouraged either.

3 Likes

oh. interesting. you / trh_blue mean one of those apps. i always thought staff encouraged 3rd party app development of that sort, as long as it didn’t violate any TOS. that said, the delivery model of the particular app that i think you’re referring to struck me as odd back in the day, though i’m not sure if that’s changed. but i think you’re more concerned about the potential misuse of that kind of app, and i guess that’s a fair concern, too.

I’ve been meaning to start using Power Automate for some work processes. For whatever reason, it never occurred to me that I could “play” with it in some outside work scenarios first.

1 Like

yup. with folks switching to Win 11 for home and work, and also with more workplaces starting to learn about and use Power Automate, i thought folks here might be interested in knowing about how it could be applied to handle various iNat workflows. it seems like a relatively accessible way for regular folks to solve a lot of interesting challenges on their own without doing a lot of traditional coding (scripting), and yet the underlying code can also be shared easily with others, too, to spread good ideas rapidly.

3 Likes