Add ancestry to all iNat places

Over 18000 iNat places have no ancestry, and another 5000+ have only continent level ancestry. While ancestry isn’t crucial most of the time, it can be helpful in a number of ways, e.g. for network node users (see here and here), and for disambiguating places with similar names.

I would like to request:

  • Automatic ancestry assignment for existing places.
  • Automatic parent suggestion during new place creation (user can optionally change it).

With all places assigned an ancestry and a better way to view child places, I think it may be easier for people to check whether a place already exists before creating a duplicate.

And how should that automatic process work? It should assign to a country or state?

I envisioned an algorithm that would assign the smallest standard place the place fits in.

6 Likes

i wonder if you’ll get some strangeness with this approach because borders in your place’s borders and its theoretical parent place should share a border, but the border varies slightly because they were drawn slightly differently? for example, suppose i create a city that should be entirely within a county and whose eastern boundary should trace the boundary of the county. but my city polygon is created with a slightly different source or level of precision. so part of my city polygon lies outside the standard county polygon. what happens in this case?

also, what about places in the ocean or which fall partly in the ocean? i don’t think we have oceans defined as standard places yet. so those places might legitimately have no parent. or there might be places on land that span multiple continents. what is the parent in that case?

1 Like

I left some details out on purpose because I didn’t want to bog down the request.

I was actually only going to propose using the bounding box of the place in question because the calculation is simpler and since around 95% of places lacking ancestry are smaller than the average US county, it didn’t seem worth adding any complexity to the calculation. But it does mean that some places will be assigned to a larger standard place than necessary, and I think that’s a reasonable compromise. Already there are “mistakes” in ancestry, like Yellowstone being assigned to Wyoming even though it includes parts of Montana and Idaho.

And I was going to suggest assigning some other place as the parent for oceanic/trans-continental places, perhaps Earth. But honestly, the number of places in that category is small compared to the number that can fit within the current standard places.

The map below obviously shows points, not boundaries, but these are all the places with no ancestry. Most of the ones that appear to be in the ocean are actually on islands.

3 Likes

Voted ‘Yes’ because I’d like to browse the places hierarchy. There seems to be sufficient fields in the database to allow this but the APIv1 doesn’t provide the equivalent of
/places?parent_place_id=6783&recursive=true

The functionality is broken anyway since very few places have a valid parent_id.

Doable, but the issue is how do we determine whether the place creator purposely didn’t add a parent place or not? Some people deliberately don’t add a parent for various reasons. While I agree the overall benefit of doing this would be large, in principle it’s similar to editing another user’s project or observation without permission.

1 Like

What are some of the reasons?

5 Likes

I suspect it’s mostly political, ie they don’t want their places being listed as being under a certain place.

For what it’s worth I’m basically for doing this because the benefits seem outweigh what I think are be minimal costs (I suspect most parentless places were not made on purpose) but it would mean editing user content without their permission.

1 Like