The long version
Why this exists
The game is the front door. This is what is behind it — the two problems the corpus is trying to answer, and the rules that make the answers worth anything.
Two problems, one dataset
Reading a label is harder than it looks. Apps that scan a coffee bag and fill in the details get it wrong in ways nobody can measure, because there is no public set of bag photos with the correct answer attached. Without one, every change to an extractor is a guess about whether it improved. Grindhog's own bean-scan evaluation harness has exactly one photo in it.
Nobody knows what a coffee record should contain. Origin, region, variety, process, roast level is a convention, not a finding. Real bags print altitude, lot numbers, fermentation times, two varieties at once, and processes that fit no dropdown. Rather than argue about the right fields, this counts what labels actually print.
Three marks, one distinction
Most forms know two things: you filled a field in, or you didn't. That is not enough here. “These photos don't show a region” and “I didn't check for a region” are completely different claims, and only the first one can catch a machine inventing an answer.
- ● Read off the bag
- ∅ Not in these photos
- · Not checked
In the round you play, only the middle one costs a click. Typing a value records it; leaving a field alone means nobody looked, which is already the honest default. The one button worth pressing says the photographs do not show this — and that is the button that catches an invention.
Note the wording: these photos, not the bag. A photograph cannot prove a package never prints something — it might be on a side nobody shot. What you can honestly say is what your images establish, and that happens to be the right answer anyway, because the extractor is shown the same images.
The rule
You never see a machine's guess before you type. The form does not pre-fill from an extractor, and it never will. If it did, people would click through whatever the model proposed, and the result would measure agreement with the model rather than what the bag says — worse than no data, because it would look like data.
It is also what makes the game fair, which is a happy accident: the integrity rule of the corpus and the fairness rule of the round are the same rule. It is enforced in code rather than left as a convention — there is deliberately no endpoint that returns a reading on its own, and a test pins the handler list so adding one has to be a deliberate act.
For the same reason: type only what is printed. Don't look the coffee up. A blank is more useful than a good guess, and a bag you can't identify is still worth recording — those are exactly the ones an extractor is worst at.
Disagreeing with the form is a contribution
The fields are a starting hypothesis, not the answer. Under More fields on the round, every one carries a flag to say the bag in your hand doesn't fit it — the allowed values are missing one, the bag lists two where the form takes one, the field means two different things. Anything the form has no room for goes in as a free-form entry, and those get counted too.
Objections are attached to the bag that prompted them, so every claim about the schema is backed by a photograph. Feedback gathered in the abstract is worth little — people invent fields they never use — while feedback captured with a bag in hand is grounded in an artifact we also have a photo of. What comes out is a running tally and a generated SHACL shape.
What ships
Versioned GitHub releases: bag photos, labels as JSON test cases, the whole thing as Turtle and JSON-LD, the generated shape, and — kept deliberately separate — what the models guessed from the same photographs. A reading by a person and a guess by a machine are different kinds of claim, and the release has to keep saying which is which.
CC0 — public domain, no attribution required, no strings. The grant is recorded per bag, in that bag's own named graph, so a future licence change cannot retroactively relicense what came before.
Photos are stripped of location data, including GPS, on upload — bag photos get taken in people's kitchens, and a release cannot be un-published. Your account is never published; contributions are attributed to a random identifier unless you ask to be credited by name.