Skip to content

Eurostat: $DV_ bookmark entries inflate the catalogue, and detail=allstubs strips the Description #54

Description

@aborruso

Two independent problems in the Eurostat catalogue, sharing one root cause: portals.json sets dataflow_params = {"detail": "allstubs", "references": "none"}, so everything except Name is discarded at the wire.

They are separately shippable and have very different costs — part 1 needs no extra fetch at all.


Part 1 — $DV_ entries inflate the catalogue

546 of 8,246 Eurostat catalogue entries carry a $DV_ suffix in their ID. Sampling ISOC_CI_AC_I$DV_645 at detail=full:

DISSEMINATION_OBJECT_TYPE     = EXTRACTION      (PRC_HICP_MIDX has DATASET)
DISSEMINATION_EXTRACTION_TYPE = BOOKMARK
DISSEMINATION_PARENT_ID       = ISOC_CI_AC_I
<Ref id="ISOC_CI_AC_I">                         same DSD as the parent
no <c:Description>                              only the parent has one

These are saved extractions/bookmarks, not distinct datasets, and they duplicate their parent's title. Individuals - internet activities appears 6 times, Business demography by size class and NACE Rev. 2 activity 5 times.

Effect on title ambiguity:

catalogue dataflows ambiguous titles
as-is 8,246 1,120 (14%)
excluding $DV_ 7,700 148 (1.9%)

So Eurostat's apparent title problem is almost entirely these entries — the underlying catalogue is healthy. This fix needs no detail=full: the $DV_ pattern is already visible in the cached df_id.

Evidence level: 546 identified by ID pattern; one entry verified via annotations.

Open question, worth resolving before implementing: is $DV_ visibility a consequence of detail=allstubs, or does the API expose a parameter to exclude extractions server-side? The latter would be the clean fix. Filtering on DISSEMINATION_OBJECT_TYPE is the robust client-side option but requires detail=full.


Part 2 — the dataflow Description is stripped

PRC_HICP_MIDX, references=none:

payload <c:Description>
detail=full 7,276 B present, EN/DE/FR
detail=allstubs 995 B absent

The text carries information that is not in the title:

The Harmonised Index of Consumer Prices (HICP) measures price changes of various consumer goods and services over time (inflation). […] Please note that this dataset is discontinued and replaced by dataset prc_hicp_minr

This is content for retrieval, not a fix for ambiguity — that is Part 1.

Second, provider-independent cause: even with allstubs removed, the field would still be ignored. df_description is populated by get_name_by_lang() (discovery.py:129), which reads Name — the title. The only Description reader in the package is categories.py:92, for category schemes. Both changes are needed.

Bonus: this same fetch unblocks #9. That issue is trying to infer the ESMS metadata URL from the dataflow ID and finding no reliable pattern. There is no need to guess — detail=full includes it verbatim:

<c:AnnotationType>ESMS_HTML</c:AnnotationType>
<c:AnnotationURL>https://ec.europa.eu/eurostat/cache/metadata/en/prc_hicp_esms.htm</c:AnnotationURL>

Open questions

  • Cost of detail=full at catalogue scale is unmeasured: 7.3× payload on a single dataflow, unknown on 8,246. Measure before choosing lazy-per-dataflow vs bulk at catalogue build.
  • Descriptions are HTML and need stripping before indexing.
  • Comext shares the same dataflow_params; it has only 9 dataflows, so likely moot, but worth confirming.

Scope note

The ISTAT catalogue needs neither of these — no $DV_ equivalent, and Description is present on 26 of 4,884 dataflows. Its descriptions come from a different endpoint entirely. Each catalogue imposes its own strategy, which argues for per-provider hooks rather than branching in shared code — see #41.

Activity

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions