|
Download research/coverage_reader/README.md from psiloceyeben/oracle7: direct link, hf CLI and curl.
- Browser
- Download file 3.77 kB
-
https://huggingface.co/psiloceyeben/oracle7/resolve/main/research/coverage_reader/README.md
- Command line
-
hf download hf://psiloceyeben/oracle7/research/coverage_reader/README.md
-
curl -L -o README.md https://huggingface.co/psiloceyeben/oracle7/resolve/main/research/coverage_reader/README.md
3.77 kB
| # The general relation reader: how it was measured | |
| Fold w539 adds `general_reader_v1` (in `root/wander-train/`). It runs only when the core declined for lack of a reading. | |
| It answers a question one Wikidata fact away from a thing the question names, and every answer carries the record it read. | |
| The reader answers only when every one of these conditions holds: | |
| - The question's own words name the relation, through the property's label or one of its aliases. | |
| - The answer is the kind of thing that was asked for: | |
| - a person for "who"; | |
| - a city or a country for "which city" or "which country", checked against the answer's own classes; | |
| - the named relation itself for "what is the capital of". | |
| - Exactly one candidate answer remains. | |
| - The relation is one that the admitted relation specialists also read. | |
| - Every name in the question is one the reader linked. | |
| - When the question names two or more things, at least two of them agree on the answer. | |
| It declines on: | |
| - a turn that names a year; | |
| - a private question; | |
| - a question with several parts; | |
| - a question carrying a qualifier such as "when", "during", "before" or "nickname". | |
| ## Held-out runs (each run once; data never used to build it) | |
| All three runs used TriviaQA (`mandarjoshi/trivia_qa`, `rc.nocontext`, train split) at offsets the reader was never developed on. | |
| | Run | Data | Answered | Right (scorer) | Right (judged) | Precision | Bar 95% | | |
| |---|---|---:|---:|---:|---:|---| | |
| | v6 | offset 100000, 2,000 questions | 17 | 14 | 16 | 94.1% | failed | | |
| | v7 | offset 120000, 6,000 questions | 68 | 62 | 63 | 92.6% | failed | | |
| | **v10** | **offset 130000, 6,000 questions** | **82** | **80** | **81** | **98.8%** | **passed** | | |
| The two failed runs showed one cause. When the question named something the reader could not link (Jennings Brewery, | |
| Dismaland), the reader answered about the nearest thing it could link (Cumbria, Banksy). Its "which country" check also | |
| let a city through (Peter Hain → Nairobi). Three changes fixed this: | |
| - a name the reader cannot link stops it; | |
| - two named things must agree on the answer; | |
| - place types are checked on the answer's own classes. | |
| The development data was the offsets 40000, 60000 and 80000, plus the two spent held-out sets: 14,000 questions in all. | |
| On these the reader answered 99 and got 96 right by the scorer. | |
| **The judging rule** (`adjudicate_v1.py`, SHA-256 `37c8329f…`) was written and hashed before the v10 run. It counts an | |
| answer the scorer marked wrong as right only if the answer is a place that the relation store records inside the | |
| expected place. In v10 that applied once: Rupelmonde is in Belgium, which is the answer key's "Belgium". Every other | |
| disagreement stays wrong, including this one: | |
| - What is the currency of Bulgaria? The reader answered Euro, from Wikidata; the key says Lev. Bulgaria adopted the | |
| euro on 1 January 2026, so the key is out of date. The rule does not cover this, so it counts as wrong. | |
| **Hashes recorded before the v10 run** (`coverage_heldout_v10.hashes`): | |
| | File | SHA-256 | | |
| |---|---| | |
| | reader | `429e1e4b…` | | |
| | allowlist | `dfe5d802…` | | |
| | judging rule | `37c8329f…` | | |
| | question set | `7ae9fc9a…` | | |
| | time | 2026-10-14T13:14:52Z | | |
| ## Coverage | |
| The reader is precise but narrow. It answered 82 of 6,000 trivia questions, about 1.4%, on top of what the core already | |
| answers. That is the trade the release makes everywhere: an answer with its record, or a decline. | |
| ## Files | |
| - `general_reader_v1.py`: the reader as shipped. | |
| - `adjudicate_v1.py`: the judging rule. | |
| - `coverage_heldout_v10.hashes`, `coverage_heldout_v10.log`, `coverage_heldout_v10_result.json`: the passing run. | |
| - `coverage_heldout_v6.log`, `coverage_heldout_v7.log`: the failed runs. | |
| - `coverage_eval_v9.log`: development. | |