This document defines the rules for scoring model responses against ground truth. It is not shown to models during testing. Rules here encode answer-key logic and acceptable equivalences.
These transformations are applied before any comparison is made:
moglie, → moglie). Do not strip punctuation from within words (e.g., 1767/8 stays as 1767/8).? from GT values: the ? character in ground truth indicates annotator uncertainty about a reading, not a character in the document. Remove trailing ? from GT tokens before comparison (e.g., GT Caltran? → Caltran). Model responses are compared as transcribed.fratelli = Fratelli = FRATELLI).The response token illegible is only valid for boolean questions (Q1, Q3, Q4, Q6, Q21). It means the model attempted to read the relevant part of the document and could not determine whether the answer is Y or N.
This is distinct from not-applicable cases (blank responses), which indicate the question does not apply given a prior answer (e.g., Q2 blank when Q1=N).
illegible: score as illegibility claim — recorded separately.For all other question types, the model is expected to provide its best attempt. Illegibility in those questions manifests naturally:
Two scores are reported for boolean questions:
Both are reported per question and per model. The illegibility claim rate (illegibility claims / total questions) is reported as a third metric.
Permitted responses: Y, N, illegible, or blank (only when the question is conditional and the prerequisite is not met — Q21 when Q19=0)
illegible response: illegibility claim — reported separately; excluded from conditional accuracy; counted as failure in combined score (see Section 2).Permitted responses: non-negative integer, or blank (Q2 only, when Q1=N)
Format: N | N (left column count | right column count)
Permitted responses: two-word string, or blank (when Q4=N)
Format: pipe-separated list of entries, one per document instance, in document order (top to bottom).
Pre-processing for these fields:
| to produce a list of entries.Entry-level scoring: Each matched pair of (GT entry, model entry) is scored character by character. Entry score = character accuracy (matching characters / GT character count, using edit distance).
Question-level score — F1 (all three questions): The question-level score is an F1 combining recall and precision, so that both missed entries and hallucinated entries reduce the score.
Q10 and Q12 — order-independent optimal matching: Entries may appear in any order in the model response. The optimal one-to-one matching between GT entries and model entries is found using the Hungarian algorithm, maximising total character accuracy. Take only the first two words of each entry before character-level comparison.
Q22 — order-dependent sequence alignment: Bracket annotation entries appear in document order (top to bottom) and the model is expected to follow that order. Matching uses global sequence alignment (Needleman-Wunsch at the entry level): the similarity score between a GT entry and a model entry is their character accuracy; the gap penalty is 0. The alignment that maximises total character accuracy while respecting sequence order is used. A missed annotation and a hallucinated annotation each introduce a gap in the alignment, scoring 0 for that position, without displacing the scoring of surrounding entries.
| Question | Type | Scoring method |
|---|---|---|
| Q1 | Boolean | Exact match; illegible recorded separately |
| Q2 | Integer | Exact match |
| Q3 | Boolean | Exact match; illegible recorded separately |
| Q4 | Boolean | Exact match; illegible recorded separately |
| Q5 | String | Character accuracy |
| Q6 | Boolean | Exact match; illegible recorded separately |
| Q7 | Integer | Exact match |
| Q8 | Integer | Exact match |
| Q9 | Integer | Exact match |
| Q10 | Text array | F1 of char accuracy per entry; Hungarian (order-independent) matching |
| Q11 | Integer | Exact match |
| Q12 | Text array | F1 of char accuracy per entry; Hungarian (order-independent) matching |
| Q13 | Integer | Exact match |
| Q14 | Integer | Exact match |
| Q15 | Integer | Exact match |
| Q16 | Integer | Exact match |
| Q17 | Paired integer | Exact match (both values) |
| Q18 | Integer | Exact match |
| Q19 | Integer | Exact match |
| Q20 | Paired integer | Exact match (both values) |
| Q21 | Boolean | Exact match; illegible recorded separately |
| Q22 | Text array | F1 of char accuracy per entry; sequence alignment (order-dependent) |
Used in pre-processing step 5 for text array questions (Q10, Q12, Q22). Both GT tokens and model response tokens are normalized to the canonical form before comparison. All comparisons are already case-insensitive (see Section 1.4), so case variants are not listed here.
Governing principle: Transcriptions must reflect what is written on the page. Modernized standard spellings or expanded full forms of clipped place names are not accepted equivalents. However, abbreviations are treated differently: a model may return either the abbreviated form as written or the correctly expanded full form, and both are accepted. Before scoring, both GT and model response tokens are normalized to the expanded canonical form. This means character-level scoring (Q10, Q12, Q22) always compares expanded forms on both sides.
Abbreviations — scoring rule: For any abbreviated token (including superscript-marked abbreviations indicating gender and number, e.g. singular masculine, singular feminine, plural masculine, plural feminine), the model response is correct if it matches the abbreviated form as written or the correctly expanded full form with matching gender and number. A wrong gender or number (e.g. returning the masculine form when the page has the feminine) is scored as incorrect. Normalization expands both sides to the canonical full form before character comparison.
Populated by systematic scan of all text_after_con, text_after_e, and bracket_annotation_text values across the 39-document corpus. The equivalence dictionary is expected to grow iteratively: after each evaluation run, entries with unexpectedly low character accuracy should be reviewed. Cases where a model correctly returned an abbreviated form that appears in expanded form in the GT (or vice versa) — for example, d.co / domestico, fig.lo / figliuolo — should be added to Section 5.1 as confirmed pairs.
Both sides are normalized to the canonical (expanded) form before comparison.
| Abbreviated form | Canonical form | Notes |
|---|---|---|
Flli | Fratelli | IDs 4, 5, 23, 24, 36, 37. GT has both forms; both are accepted. |
S. | San | ID 38 — ambedue di S. Polo. |
figliuolo family — gender/number equivalencesGT always uses the archaic spelling with u (figliuolo, figliuola, etc.). Models may return the modern Italian spelling (no u), a period variant (no u, stem figliola), or a period abbreviation. All forms within the same gender/number class are accepted; cross-class forms are not.
| Accepted forms | Canonical form | Gender/Number |
|---|---|---|
figlio, fig.lo, figl.o | figliuolo | masc. sing. |
figlioli, figli, fig.li, figl.li | figliuoli | masc. plur. |
figliola, figlia, fig.la, figl.a | figliuola | fem. sing. |
figliole, figlie | figliuole | fem. plur. |
Character corruptions observed in model responses — figlo, figolo, figlivoli, figle, figla — are not accepted equivalences and are scored by character accuracy.
domestico family — gender/number equivalencesGT always uses the full form. Models may return a period abbreviation. Full forms (domestico, domestici, domestica, domestiche) require no entry. Abbreviated forms are listed below.
| Abbreviated form | Canonical form | Gender/Number |
|---|---|---|
domest.o | domestico | masc. sing. |
domest.i | domestici | masc. plur. |
domest.a | domestica | fem. sing. |
domest.e | domestiche | fem. plur. |
Truncated forms domesti and domest (with or without trailing period) are not accepted equivalences. These occur when the model fails to recognize that the word is hyphenated across a line break (domest- / ico) and reads only the first half. They are ambiguous as to gender/number and are scored by character accuracy.
The following pairs were identified during corpus scan. They are recorded here to explain scoring decisions, not to define accepted equivalences.
Clipped place names are transcriptions of what is written. The clipped form is the correct answer; the full modern form is not accepted.
| Written form (on page) | Full / modern form | Notes |
|---|---|---|
Cividal | Cividale | ID 37 — di Cividal di Belluno. Clipped form is what appears. |
Trevignan | Trevignano | ID 38 — ambedue di Trevignan. Clipped form is what appears. |
Bassan | Bassano | ID 11 — tutti e tre di Bassan. Clipped form is what appears. |
Each form below appears on specific pages. They are distinct transcriptions of what is written, not interchangeable. A model should write what appears on the page being analyzed.
| Form A (period) | Form B (period or modern) | Pages with Form A | Pages with Form B |
|---|---|---|---|
Montova | Mantova | ID 30 | IDs 11, 38 |
Vicenzo | Vincenzo | ID 12 | — (modern standard only) |
Allessandro | Alessandro | ID 37 | — (modern standard only) |
? words)These words carry ? in the GT, indicating annotator uncertainty. The ? is stripped in pre-processing (Section 1.3). The “probable referent” column shows the likely modern or standard form; per the governing principle, these are not accepted as equivalents.
GT token (after ? strip) | Probable referent | Notes |
|---|---|---|
Caltran | Caltrano | IDs 9, 10 — village near Asiago |
Piova | Piove | ID 7 — likely Piove di Sacco; Piove appears as certain reading in IDs 19, 21 |
Genevrini | Ginevrini | ID 7 — people from Geneva; both spellings used in period Italian |
Grisoni | Grigioni | ID 21 — people from Grauбünden |
Crovati | Croati | ID 27 — Croatians; Crovati is a historical/dialectal form |
Anovaresi | Novaresi | ID 27 — uncertain reading; possibly people from Novara |
Pettovazza | (unknown) | ID 12 — unidentified place; no standard form confirmed |
Sacile | Sacile | ID 8 — town in Friuli; ? indicates uncertain reading only, not spelling variant |
Final | Finale | ID 38 — likely Finale Emilia or Finale Ligure |
Campidonia | Kempten | ID 21 — Latin/Italian name for Kempten in Bavaria |
The ANSWER RULES differ between the Naive and Guided conditions in how models should handle unreadable characters in "transcription" questions (Q2 year, and Q10/Q12/Q22 word lists). The guided prompt explicitly enables a ?-for-illegible convention; the naive prompt instructs the model to "give its best attempt." For Q10/Q12/Q22, character-accuracy scoring treats ? exactly like any other character. Only GPT used ? on Q2 (16 of 390 guided responses). The partial-credit contributes approximately 1.9 percentage points to GPT's guided Q2 score (61.0%) out of the +9.6-point improvement over its naive Q2 score (51.4%).
questions.mdground_truth.md