Autocomplete and hyperlink to taxa in comments

Platform(s), such as mobile, website, API, other: web

URLs (aka web addresses) of any pages, if relevant:

Description of need:

In the comment section on iNaturalist you can type ‘@’ followed by characters to autocomplete a username. Often, taxa get referenced in the comments by common name or with typos.

Feature request details:

To make it easier to compose messages that are unambiguous and future proof (in the case of taxa changes), there should be a way to easily add a link to a taxa. Maybe prefix with a ‘$’ or ‘#’?

I copypasta the URL for the taxon.

@mentions are glitchy as they accept typos, then the link 404s. I am often forced to the profile or leaderboard to check for - or _ or some (random string of) letters or numbers or …

in the past, i thought it might be nice to be able to do something like what you’re describing with observations, photos, and sounds. but i never thought about doing this with taxa, since they pose special challenges.

in the system, users have both unique numeric identifiers and unique string identifiers (besides the uuids), and humans are familiar with and comfortable using the unique string identifiers (logins). so it’s not an issue to return and display a unique string identifier (login).

observations, photos, and sounds have a unique numeric identifier (besides the uuids), and these numeric identifiers are the identifiers that a human would use to point to a particular observation, photo, or sound. so it wouldn’t be an issue to return and display a unique numeric identifier.

taxa have unique numeric identifiers, but these are not the identifiers that a human generally would prefer to use to point to a particular taxon. some folks would prefer to use scientific names, but these are not unique (ex. some animal genera share names with plant genera, some genera share names with their descendant sections, etc.). so for taxa, you’d have to return (or code) a numeric identifier, but then the system would have to translate that to some sort of string for display purposes only.

but that’s not the end of the challenge. people’s preferences for viewing taxon names vary. format-wise, there are 3 options (scientific only, scientific first, or common first). for common names, you then have to take into account language preferences and potentially even place priority. so you could potentially end up with people seeing different versions of the taxon name, which could be confusing in a conversation.

the scientific and common names also contain spaces, which means that you would need not just some sort of prefix character but some set of characters to denote beginning and end potentially.

finally, taxa are constantly changing. so you might code for a particular taxon numeric id, but then that reference might become obsolete over time. it’s unlikely that there would be functionality that would come through and update these references afterward. (in other words, these references wouldn’t exactly be “future proof”.)

i guess that’s a long way of saying that i think trying to do something exactly analogous to user mentions for taxa is problematic.

however, if you reduced the scope to being able to specify numeric identifiers in a way that would automatically get special functionality like hyperlinks, then i’m okay with that.

for example, if i typed / coded, say, ${taxon 1}, then it would be nice if a user could hover or tap on that to see a pop-up of the default taxon photo and a link to the taxon page. so then in this usage, if you wanted to include a scientific or common name, the you would still have to type it yourself like so: Animals ${taxon 1}, or else the name string could get spit out by some sort of lookup, but it would not be dynamic. so if the lookup returned Animals ${taxon 1}, then that’s the exact text that everyone would see regardless of their language and taxon name preferences.

i was thinking more about the best syntax for this, i think this is the way i would go with it:

item syntax example
taxon t/id t/123
observation o/id o/12345
photo p/id p/123456
sound s/id s/123
place l/id or l/slug l/18 or l/Texas
project r/id or r/slug r/1236 or r/my-test-project
journal post j/id j/123654