A tool that generates dashboards of property coverage for a given part of Wikidata.
Wikidata editors configure a dashboard by placing {{Property dashboard}} on a Wikidata (or Commons) page, defining an item selection, a grouping dimension, and properties to track. A bot (User:InteGraalityBot) then periodically uses SPARQL to query the coverage for each property, and updates the table on-wiki (or users can trigger an update manually).
Each cell in the dashboard links (via 🔍) to a live query showing exactly which items have or lack a given property — making it easy to find and fix gaps.
Live instance: https://integraality.toolforge.org/
- User guide (how to create a dashboard): Wikidata:Tools/inteGraality
- Template reference (all parameters): Template:Property dashboard
- Operations & architecture: Wikitech Tool:InteGraality
- Report issues or file feature requests on Phabricator
- Ask questions or get help at Wikidata_talk:Tools/inteGraality
A cron job periodically loops through all dashboard pages, runs SPARQL queries (via WDQS or QLever) to compute property coverage, and writes results back as wikitext tables. A Flask web app handles on-demand updates (/update) and generates the SPARQL queries behind the 🔍 links (/queries). Both use pywikibot to read template configs from wiki pages and write results back. Redis caches parsed configs to speed up the query endpoint.
- Python 3.11
- uv
- Docker & Docker Compose (for the full local stack)
docker compose up -dThis starts the Flask web app on http://localhost:5000 and a Redis instance. Pages are written to docker_pages/ instead of to the live wiki.
uv run pytest├── integraality/ # Python package (app, bot, tests)
├── bin/ # Shell scripts for Toolforge jobs
├── conf/ # Dockerfile
├── docker-compose.yml
└── pyproject.toml
Built and maintained by Jean-Frédéric.
Based on an original idea by Maarten Dammers.