Skip to content

feat(sources): poblar external_ids al ingestar (cruce cross-motor) — al sumar el 2º motor #120

Description

@complexluise

Follow-up del ADR 0036. La tabla lateral external_ids(paper_id, engine, id) ya existe en los backends (PR #118) pero no se puebla (decisión consciente, PR #119).

Por qué quedó diferido

Con OpenAlex como único motor, source_id ya guarda el id y provenance.source el motor; external_ids no tiene consumidor todavía (sería redundante). Su razón de ser es el cruce/dedup cross-motor (un paper con su id de OpenAlex y de Semantic Scholar, unificados por DOI).

Qué hacer al sumar el 2º motor (Semantic Scholar)

  1. En el camino de ingesta de cada adaptador, escribir external_ids(paper_id, engine, source_id) tras computar el paper_id.
  2. El enricher/adaptador de cada motor consulta external_ids[engine=<suyo>] para obtener el id con el que pegarle a su API (en vez de asumir source_id == su id).
  3. Tests de cruce cross-motor (mismo DOI vía dos motores → un paper_id, dos filas en external_ids).

Relacionado: ADR 0036 (opción C), PR #118 (infra), PR #119 (core).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions