flowchart LR
D7{🎲 D7}
D6Q{🎲 D6}
p{play}
subgraph field
dda[date]
dna[name]
dup[uprn]
dad[address]
ddo[d.o.b]
dcl[category]
dno[notice]
end
D7 .->|1| dda
D7 .->|2| dna
D7 .->|3| dup
D7 .->|4| dad
D7 .->|5| ddo
D7 .->|6| dcl
D7 .->|7| dno
dda .-> D6Q
dna .-> D6Q
dup .-> D6Q
dad .-> D6Q
ddo .-> D6Q
dcl .-> D6Q
dno .-> D6Q
subgraph "quality dimension"
qc[completeness]
qu[uniqueness]
qt[timeliness]
qv[validity]
qa[accuracy]
qco[consistency]
end
D6Q .->|1| qc
D6Q .->|2| qu
D6Q .->|3| qt
D6Q .->|4| qv
D6Q .->|5| qa
D6Q .->|6| qco
qc .-> p
qu .-> p
qt .-> p
qv .-> p
qa .-> p
qco .-> p
🦆 community notices
🎲 a game about Quality for data ✨
In this game we’ll begin to forge a data contract; a brilliant way of achieving consensus in data management (see Andrew Jones 2024; Joe Leach 2024).
📜 A data contract is “an api for data” and we’re going to craft one for the sleepy village of Lower Hamlets so their community notice board features posts that are high quality and friction free!
1 🔰 setup
You are a member of the Lower Hamlets Village Green Preservation Society. the society’s mission is to promote harmony and mutual aid with the help of the community notice board. the society sets information standards upfront, helping prevent the kind of muddles that might lead to squabbles later.
Preserving the old ways from being abused.
Protecting the new ways for me and for you.
What more can we do?
We are the Village Green Preservation Society (see The Kinks 1968).
1.1 ✨ Quality
🤭 Sometimes the villagers make mistakes in the notices, and sometimes mistakes are made when the notices are recorded to the official book of records! your role is to set expectations of a reliable notice, so you can catch mistakes before they are published, avoiding the potential for confusion and disharmony in the village!
💡 Think about what a good clear noticeboard dataset looks like; use this to check incoming notices against the “big six” dimensions of quality expectations (see Askham et al. 2013)1.
- Completeness
- missing values
- Uniqueness
- duplications
- Timeliness
- unpunctuality
- Validity
- extremities
- Accuracy
- imprecisions
- Consistency
- inconsistencies

2 🏁 let’s go
Assemble the society to assess the data schema; everyone has a part to play.
-- schema produced with sqlite
[DATE] TEXT, -- 1. date of notice [ISO 8601]
[NAME] TEXT, -- 2. name of sender [identifier]
[UPRN] INTEGER, -- 3. machine readable location [identifier]
[ADDRESS] TEXT, -- 4. human readable location
[D.O.B] TEXT, -- 5. date of birth [identifier]
[CATEGORY] TEXT, -- 6. category (service offered, service required, item for sale, general announcement)
[NOTICE] TEXT -- 7. text of notice…and here is how an example notice might arrive:
[
{
"date": "2025-01-30",
"name": "Worzel Gummidge",
"UPRN": "6733852",
"ADDRESS": "Worzel's Wheatfield, Lower Hamlets, LH1 1WW",
"D.O.B": "2001-01-01",
"category": ["Service offered"],
"notice": "To all villagers of Lower Hamlets, I respectfully offer scarecrow services so you can keep your prize pumpkins, your tasty turnips, and your beautiful blackcurrants safe from our feathered friends."
}
]3 🎲 gameplay
to play you roll two dice, one with seven sides (D7) and one with six (D6); the value of this roll determines the field and dimension you play respectively.
along with your fellow villagers, decide how best to set expectations of the six quality dimensions on the seven datafields.
4 🃏 make your move
- D7
- -
- -
- D6
- -
- -
jot down your solutions below. if you think a field doesn’t need quality control please write NA2
4.1 date
4.2 name
4.3 uprn
4.4 address
4.5 dob
4.6 category
4.7 notice
your entries on this page will be saved in your browser and available on reload.
4.8 🌊 rinse and repeat
5 🧪 associated schema
any unfilled form fields will be replaced with boilerplate content
References
Footnotes
download a copy of the original dama dimensions pdf↩︎
A pdf version of the game is also available: https://joelbth.codeberg.page/community-notices/index.pdf↩︎