@varve/agency-sdks

Graph Metadata

Build bounded Eurostat dataset, dimension, and member graphs for search, lineage, and NLQ systems.

Eurostat metadata can expand quickly. getDatasetGraphMetadata() keeps expansion explicit by using strategies.

const graph = await client.getDatasetGraphMetadata('demo_gind', {
  strategy: 'filtered',
  filters: {
    freq: 'A',
    indic_de: 'JAN',
    geo: ['DE', 'FR'],
    time: ['2022', '2023'],
  },
});
 
console.log(graph.dataset);
console.log(graph.dimensions);
console.log(graph.members);

Strategies

// Default: use latest advertised period when available.
await client.getDatasetGraphMetadata('demo_gind');
 
// Use Eurostat default presentation filters plus latest period.
await client.getDatasetGraphMetadata('demo_gind', { strategy: 'sample' });
 
// Require explicit caller filters.
await client.getDatasetGraphMetadata('demo_gind', {
  strategy: 'filtered',
  filters: { freq: 'A', geo: ['DE', 'FR'], time: ['2023'] },
});
 
// Full expansion is guarded.
await client.getDatasetGraphMetadata('demo_gind', {
  strategy: 'full',
  allowLarge: true,
});

By default, full expansion throws for datasets above maxObservationCount unless allowLarge: true is passed.

Graph shape

(:Dataset {code})-[:HAS_DIMENSION {position}]->(:Dimension {id})
(:Dimension {id})-[:HAS_MEMBER {order}]->(:Member {id})

Use filtered graph metadata when you want a reproducible slice that can be cited or searched without importing an entire Eurostat cube.

On this page