Skip to content

Structured species/ecotype/pod tags on bouts, for downstream consumers #1001

Description

@rainhead

This was generated by AI during triage.

Context. SalishSea.io — a sister project in the Acartia data cooperative — maps marine-mammal occurrences across the Salish Sea. We'd like to surface OrcaSound acoustic activity on the map as first-class occurrences alongside visual sightings.

What we found. The /api/json/bouts endpoint is the right grain to consume — bouts are human-curated, unlike raw detections. Of ~196 bouts, the 134 biophony ones carry the biological signal. Reading their name text, the mix is roughly:

  • ~70% killer whales, often identified to ecotype and pod (e.g. "SRKW J pod", "Bigg's T090s", "T419, T420, T421")
  • ~9 humpback
  • a tail of sea lion, fish, birds, mystery / OrcaHello false-positives, and some non-animal sounds mistagged as biophony

The problem. All of that identity lives only in the free-text name. A downstream consumer has to regex names to learn whether a bout is even a marine mammal, let alone which species/pod — fragile and lossy, and it discards the moderator's knowledge.

Proposal. Establish a small controlled tag vocabulary for bouts and apply it during curation. Bouts already have a tags relationship exposed on the JSON:API (Bout includes [:feed, :tags]), so no new endpoint or schema change is needed — only slug conventions and a moderator habit. Suggested namespaces:

  • ecotype:srkw, ecotype:biggs
  • pod:j, pod:k, pod:l
  • matriline:t090 (etc.)
  • species:humpback, species:steller-sea-lion, species:harbor-seal, species:ca-sea-lion, …
  • unconfirmed / false-positive for the mystery bucket, so consumers can drop those cleanly

With that in place, SalishSea.io mirrors bouts + their tags verbatim and translates the tags into our taxonomy at ingest — no name-parsing, and the moderator's judgment is preserved end to end.

Happy to help define the vocabulary and seed the tags if that's useful. Tracking issue on our side: salish-sea/salishsea-io#178.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status
    triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions