8000 Add WoRMS (World Register of Marine Species) Integration · Issue #255 · jra3/mulm · GitHub
[go: up one dir, main page]

Skip to content

Add WoRMS (World Register of Marine Species) Integration #255

Open

Description

@jra3

Description

Integrate WoRMS (World Register of Marine Species) as an authoritative taxonomic data source for marine organisms (corals, inverts, marine fish).

Background

WoRMS is the most authoritative source for marine species taxonomy:

  • 240,000+ marine species with accepted names
  • Maintained by taxonomic experts worldwide
  • Tracks synonyms and taxonomic changes
  • Free REST API access
  • Strong coverage for corals and marine invertebrates

Website: https://www.marinespecies.org/

Benefits

  • Authoritative taxonomy: Gold standard for marine species
  • Synonym detection: Find alternate/outdated names
  • Taxonomic validation: Verify our species names are current
  • Rich metadata: Classification, distribution, references
  • Expert-curated: Higher quality than crowdsourced data

API Overview

Base URL: https://www.marinespecies.org/rest/

Key Endpoints:

  • GET /AphiaRecordsByName/{scientificname} - Search by name
  • GET /AphiaRecordByAphiaID/{id} - Get full record
  • GET /AphiaClassificationByAphiaID/{id} - Get taxonomy
  • GET /AphiaSynonymsByAphiaID/{id} - Get synonyms

Rate Limiting: Not specified, use conservative 200ms delay

Implementation Plan

1. Create Integration Client

// src/integrations/worms.ts
export interface WoRMSResult {
  found: boolean;
  aphia_id?: number;
  species_url?: string;
  accepted_name?: string;
  synonyms?: string[];
  classification?: {
    kingdom?: string;
    phylum?: string;
    class?: string;
    order?: string;
    family?: string;
  };
}

export async function getExternalData(
  genus: string,
  species: string
): Promise<WoRMSResult>;

2. Create Sync Script

scripts/sync-worms-all-species.ts

Focus on:

  • Marine fish
  • Corals
  • Marine invertebrates

3. Use Cases

Taxonomic Validation:

  • Check if our species names are current
  • Flag outdated/synonym names
  • Suggest accepted names

Synonym Detection:

  • Find alternate names for same species
  • Merge duplicate species entries
  • Update to current nomenclature

Tasks

  • Create `src/integrations/worms.ts` client
  • Implement name lookup and validation
  • Create sync script for marine species
  • Add synonym detection logic
  • Create validation report for admins
  • Add to master orchestrator (optional)
  • Test with coral and invert species
  • Update documentation

Acceptance Criteria

6F1A
  • WoRMS API client successfully queries species
  • Taxonomic validation identifies outdated names
  • Synonyms stored in database
  • Species URLs added to external references
  • Rate limiting respects API guidelines
  • Documentation updated

Priority

Low - Useful for data quality but we have GBIF coverage.

Related Resources

Related to #240 (External Data Sources Integration)

Activity

  1. added
    enhancementNew feature or request
    databaseDatabase schema, migrations, and data integrity
    priority:lowLow priority - nice to have
    on Dec 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    databaseDatabase schema, migrations, and data integrityenhancementNew feature or requestpriority:lowLow priority - nice to have

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0