Skip to main content

Metadata quality

Recommended (non-required) fields that improve discoverability. Required fields are in data-model.md. The analyzer writes findings to dataquality/.

FieldPurpose
descriptionHuman-readable summary. Missing or very short text is flagged.
endpointsHarvestable APIs (type + url)
identifierswikidata, re3data, fairsharing, …
langs{id, name} (e.g. EN / English)
tagsKeywords (government, has_api)
topicsEU data themes or ISO 19115
owner.linkOwning organization URL
owner.locationCountry and, when relevant, subregion
api_statusRequired in practice when api: true (active, inactive, uncertain)

Reports​

python scripts/builder.py analyze-quality
PathContents
dataquality/full_report.txtHuman-readable summary
dataquality/full_report.jsonlMachine-readable issues (join on uid)
dataquality/primary_priority.jsonlCRITICAL + IMPORTANT
dataquality/baseline_counts.jsonCI regression baseline
dataquality/hunts.jsonlDiscovery session completeness log
dataquality/rules/Per-rule breakdowns
dataquality/priorities/By CRITICAL / IMPORTANT / MEDIUM / LOW
dataquality/countries/Per-country

Integrity vs enrichment​

TrackExamplesCI
IntegrityINVALID_*, DUPLICATE_*, MISSING_ENDPOINTS when api: true, path/country mismatchesHard fail if CRITICAL/IMPORTANT counts grow
Enrichmentmissing topics/tags, short description, expected software endpointsWarning only by default

Maintainer notes: devdocs/quality-fix-workflow.md. Script map: enrichment.md. Issue codes: quality-rules.md. Vocabularies: vocabularies.md.

Fix workflow​

python scripts/builder.py analyze-quality
python scripts/fix_critical_issues.py
python scripts/fix_important_issues.py
python scripts/fix_is_national_flags.py --dry-run
python scripts/builder.py validate-yaml
python scripts/builder.py analyze-quality
python scripts/update_quality_baseline.py # only after an intentional baseline change

Agent-driven loop: python scripts/generate_cursor_commands.py then the generated prompts, or python scripts/builder.py fix if cursor-agent is installed.

Liveness probes (scripts/check_liveness.py, weekly workflow) write dataquality/liveness_report.jsonl. They do not update YAML status.