Add API endpoint for annotators

Platform(s): API

URLs: N/A

Description of need:
Related to @conboy 's post at https://forum.inaturalist.org/t/community-annotation-challenges/5488, we have a community that wants to improve iNat data through annotation. One motivating facet is to see how we’re performing in relation to our peers, so just as we have fast methods of checking where we stand in terms of number of observations, species, and identifications, could we please have an efficient way to show our standings in terms of number of annotations?

Feature request details:
A conventional leaderboard, and/or similar to
image
a new API endpoint /v1/observations/annotators

@benarmstrong reviewed all of the other endpoints and ruled them out because:

  • the ones returning user stats returned only top observers (by # of obs or # of species) or top identifiers, but not the users making the annotations
  • even when an annotated_observation_count was included, it wasn’t related to the observation query, but just to the user’s overall stats
  • the only recourse would seem to be to exhaustively download all observations of interest, then tally up all annotations made on them by user making the annotation, which is incredibly inefficient

if you can constrain your “peers” to a specific list of users, then you could always just get an annotated observations count for each of those users in the list (ex. https://api.inaturalist.org/v1/observations?per_page=0&annotation_user_id=pisum). note that this will count only observations, not annotations, and it’s based on original annotations, not also agreements.

“Peers” is a very open-ended group, dependent on the slice of data we’re looking at. It may not even be people within our Discord community, or people we know from iNat outside of it. It would be nice to know all the people who also cared about the part of the iNat data we’re working on and sharpen each other by comparing our stats, but we don’t really know that in advance. Does that make it clearer?

In a Discord context we’d use this API endpoint to create displays from observation queries on-the-fly (e.g. a query that will take N seconds for N people or crunch even more than a few 200-observation pages is just not going to cut it …) much in the same way as we do with identifiers with /v1/observations/identifiers. Let’s say our interest is Hempitera in Northeastern US & Canada, we can say:

,topids hemiptera from northeast

And that produces a display like:

We would like to be able to say:

,topann hemiptera from northeast

and produce a similar display for annotators. It should list not the overall annotation stats for those users, but the # of annotations made by annotators for the matching data set.

The web equivalent of the identifiers leaderboard is linked from the title of the display in the screenshot above:

https://www.inaturalist.org/observations?place_id=59956&taxon_id=47744&view=identifiers

We understand that this may not be something that is given much priority for the web, but it would be nice to have a view=annotators as well. At least having the API endpoint would allow us to fill in the gaps for these needs even if it is outside any immediate plans for the web.

that’s fine. my thought was that you could have a better-than-nothing way of fostering competition strictly within an interested group, but if that’s not a path worth considering, then i guess you’ll just have to wait for a system change, unless you code and submit the changes yourself.

Understood. While it’s not entirely out of the question to make the change myself, I’m hoping we’ll get to the point where there’s more community demand for this beyond our relatively small segment of the wider iNat community.

While we wait to see if this feature request gets implemented, here’s my informal list of the top annotators, based on a survey of the top 500 identifiers plus other profiles I’ve encountered. If you’re on this list, thanks for your efforts to improve phenology data on iNaturalist! If you have over 100K annotations and you’re not on this list, please let me know so I can add you!

  1. douch - 1,572,517
  2. tz_nh - 1,263,079
  3. themez - 999,571
  4. lotteryd - 828,603
  5. goosiaczek - 732,547
  6. cwbarrows - 510,485
  7. choess - 390,166
  8. vireyajacquard - 368,742
  9. darlingbeetle - 344,929
  10. michaelpirrello - 335,725
  11. rudolphous - 314,703
  12. kharkovbut - 304,370
  13. mpintar - 276,307
  14. peakaytea - 252,731
  15. aztekium - 248,863
  16. tsn - 231,031
  17. mettcollsuss - 205,957
  18. rzeczpospolita - 200,537
  19. esant - 185,528
  20. brennafarrell - 181,316
  21. comradejon - 171,746
  22. truthseqr - 158,912
  23. someplant - 158,030
  24. matthewvosper - 156,632
  25. cpu - 151,672
  26. treichard - 146,673
  27. morganstickrod - 145,270
  28. ericwilliams - 140,119
  29. rob-westerduijn - 126.616
  30. trscavo - 111,389
  31. natev - 108,788
  32. joshua_tx - 103,691
  33. williamb - 103,316
  34. pachogut - 102,596
  35. pastabaum - 100,298

@calvertm has over 3mil annotations

Thanks! (And there goes my Top 10 status, even before rudolphous inevitably zooms by me).

interesting list, you forgot @larswillighagen an awesome annotator for hemiptera.

Thanks, I’ve updated my personal list. But unfortunately it’s not a matter of forgetting anyone, it’s a matter of not being able to find them in the first place. Please vote for the feature request!

i took a random sample of 10000 observations with annotations (based on verifiable=any&term_id=17,33,1,22,36,9,12&order_by=random). taking the top 25 users with annotations in that set and getting their total annotated observation counts in the system, i’m fairly certain that your original top 13 + calvertm + lwnrngr represent the true top 15 annotators in the system at the moment.

UPDATE:

just to give you at least as many users as in your original list of 35, i repeated the same sort of process, but i ran the top 77 annotators from my set of 10000 random observations, and it looks like that gives me a fairly good idea of the top 39 or so. my guess is that it would would be possible to get a good idea of the top 50 by running 150 users, and 100 might take 1000 users. beyond that, i’d probably have to start with a larger random observation sample size, which would be a little more complicated to do (but not too hard).

rank annotator obs count
1 calvertm 3,282,935
2 douch 1,593,795
3 tz_nh 1,296,082
4 themez 1,024,498
5 lotteryd 828,161
6 goosiaczek 743,349
7 cwbarrows 511,399
8 choess 403,324
9 vireyajacquard 384,033
10 lwnrngr 349,262
11 darlingbeetle 347,465
12 michaelpirrello 336,182
13 rudolphous 329,358
14 kharkovbut 307,679
15 mpintar 276,339
16 larswillighagen 271,344
17 peakaytea 262,416
18 aztekium 251,746
19 tsn 233,655
20 rzeczpospolita 221,297
21 woolcarderbee 207,406
22 mettcollsuss 207,387
23 a_emmerson 204,041
24 esant 187,884
25 brennafarrell 184,869
26 comradejon 171,887
27 tisrel 164,296
28 someplant 162,270
29 bonelia_ophelia 161,913
30 matthewvosper 160,855
31 truthseqr 160,316
32 morganstickrod 152,920
33 cpu 151,655
34 treichard 147,830
35 ericwilliams 143,725
36 eddiewoodwardo 142,663
37 soo_moths 134,628
38 rob-westerduijn 127,895
39 gbohne 125,514
40 natev 112,392

Thank you for doing this!

Nice request. It would be nice if the nationality were also mentioned, because it seems that mine is overrepresented.