Dustpan is a tool for Wikidata contributors to uncover WikiProjects that can be improved.
Choose a WikiProject and a query type, optionally narrow the results by scope, and Dustpan runs the corresponding SPARQL query against Wikidata. The results are shown in a table with guidance on what to improve.
Built as a companion to Broomstick, which serves the same purpose for Lexemes.
- WikiProjects are the top level grouping (WikiProject Music, WikiProject Sum of All Paintings, and so on). Each one links back to its WikiProject page on Wikidata.
- Query types live under a WikiProject. Each one is a SPARQL query targeting a specific missing property, plus contribution guidance explaining what to do with the results.
- Scope narrows a query type's results further, where the query type supports it. Not every query type has a scope.
WikiProjects and query types are defined in JSON under src/catalog/.
Keeping the catalog in the repository means new WikiProjects and queries can be proposed and reviewed through normal GitHub contributions.
See CONTRIBUTING.md for details.
- Vue 3, Vite, Pinia for the frontend
- Codex, Wikimedia's design system, for UI components
- vue-banana-i18n for internationalization, with translations managed through translatewiki.net
- Express + MySQL service (
server/) for logging the selection
Requirements:
- Node.js 20.19 or later
- pnpm 10.22.0
Install dependencies and start the frontend:
pnpm install
pnpm devCreate a production build:
pnpm buildPreview the production build locally:
pnpm previewsrc/
├── catalog/ WikiProject and query type definitions
├── i18n/ Translations files and language handling
├── query/ SPARQL query building
├── state/ Pinia stores, URL state, scope persistence
├── types/ Shared TypeScript types
├── components/ Vue components
├── views/ Application views (Landing and Search)
└── scripts/ Maintenance scripts
server/ Logs for selection
src/scripts/updateProperties.ts regenerates src/catalog/properties.json, which contains Wikidata property labels used by the catalog.
Run it after adding a new property or language:
pnpm exec tsx src/scripts/updateProperties.tsDustpan runs on Wikimedia Toolforge. Deployment is currently manual.
Bug reports, new WikiProjects, new query types, translations, and other improvements are welcome.
See CONTRIBUTING.md for development and contribution guidelines. Translations are managed through translatewiki.net.
GPL-2.0-or-later. See LICENSE.