About this app

Metadata Lens is my own project. It works on real, public metadata and is rebuilt from the repositories every week.

What this app is for

Research repositories describe each publication with metadata: title, authors, date, DOI, access right, licence, language and more. They share these records over OAI-PMH with search portals, aggregators such as OpenAIRE and research knowledge graphs. If the metadata is incomplete or inconsistent, publications are harder to find, cite, reuse and link.

Metadata Lens shows what a harvester actually receives, how complete and correct those records are, what could be fixed, and what a knowledge graph built from them can answer. It is meant for repository and library teams who want to improve their records, and for research data infrastructure teams who combine metadata from many sources.

How it works

  1. Harvest. A Python harvester asks each repository for records changed since a start date in the oai_dc format, follows resumption tokens, pauses between pages and respects the repository's request to wait.
  2. Read. OpenAIRE vocabularies are turned into plain facts: DOI, access right, embargo end, publication type, version, licence, language.
  3. Check. Seventeen rules based on the OpenAIRE guidelines and FAIR practice; each finding has a severity and lowers a score from 100.
  4. Map. Every record becomes Schema.org JSON-LD and part of an RDF graph; each repository becomes a DCAT catalogue with catalogue records.
  5. Curate. Fixes that can be proposed with confidence, duplicates and publisher spellings are listed for a person to accept or reject.
  6. Publish. A scheduled GitHub Actions workflow runs the pipeline every week and deploys this static app; the same steps also exist as an Airflow DAG.

Sources

The rules

RuleSeverityCheck

Limits

  • Only the oai_dc export is checked. Repositories often hold richer metadata (for example licences or ORCID iDs) in MARCXML or DataCite, so a finding here means “not visible to a Dublin Core harvester”, not necessarily “missing in the repository”.
  • The harvest is a sample of recent records, not the whole repository.
  • Duplicate detection uses DOIs and normalised titles; it can miss reworded titles and flag different works with identical titles.
  • Scores are a simple weighted count meant for comparison, not an official quality metric.

Who made it

Amrina (M.Sc. Educational Technology, Saarland University; B.Sc. Informatics). Design, rules and analysis are my own; AI was used as a supporting tool for coding. This is an independent project, not affiliated with Forschungszentrum Jülich, the Karlsruhe Institute of Technology or the Helmholtz Association.

Live app · Code on GitHub · LinkedIn · Portfolio