Disagreements
Where two registers classify the same structure differently — and what kind of disagreement it is.
Every other castle dataset picks a register and inherits its opinions. This page is what happens when you refuse to.
Cadw and Wikidata both classify Welsh scheduled monuments, and Wikidata carries
Cadw’s own monument identifier (property P3007), so the two can be joined on
the monument itself rather than on its name. Name matching would manufacture
agreement and disagreement in roughly equal measure — the same structure is
“Aberlleiniog Castle” in one register and “Castell Aberlleiniog” in the other.
Joined properly, they disagree about 680 monuments.
The headline
Of the 341 monuments Wikidata classes as a castle and Cadw also holds, Cadw
agrees that it is a Castle for 100 of them.
Two registers, one country, an identifier-level join — and 29% agreement.
That is not a scandal about either register. Cadw designates by protection class under Welsh heritage law; Wikidata records what editors assert. They are answering different questions, and a dataset that adopts either one silently adopts the question with it.
The kinds matter more than the count
A register calling a motte a castle and a register calling a burial mound a castle are not the same event, so they are counted separately.
| Kind | Count | Meaning |
|---|---|---|
| granularity | 573 | Both classes map to the same band — one register is simply more specific. Real, but nobody is wrong. |
| band-conflict | 92 | They map to different bands. A genuine dispute about what kind of thing this is. |
| category-error | 15 | One class maps to no band at all. A burial mound is not a fortification under any definition here, so one of the two is wrong. |
The shape of that table is the finding. Most disagreement between these two registers is granularity — Cadw distinguishes motte from motte-and-bailey from ringwork where Wikidata says “castle”. That is two registers agreeing about the world and describing it at different resolutions.
Only 15 of 680 are cases where somebody is simply wrong.
Where the real conflicts are
Band-conflicts cluster, and the clusters are informative:
- Hillfort vs castle — the largest group. A hilltop with medieval castle fabric over earlier enclosure works can honestly be classed either way, and the two registers picked differently. In Welsh this is compounded by castell, which names hillforts as readily as castles.
- Moated site vs fortified manor house — a definitional dispute this project is a party to. Our
fortified_residenceband explicitly excludes passive defences without active defensive capability, following Gatehouse. Wikidata calls the same structures fortified manor houses. We record these as disputes, not as Wikidata’s error — our exclusion is a stance, not a fact. - House, manor, town defences — structures that are fortification-adjacent but land in
palatial_seatorstate_fortificationrather than the strict band.
The 15 category-errors are the ones where the word has simply come loose: Cadw records a round barrow, a mound, a henge, a dovecote; Wikidata records a castle. Note how many of them are named “…Castle Mound” or “Castle Arnold” — the name travelled and the classification followed it.
What we did to our own data
Two of these disagreements land on structures inside this dataset’s own
closed Welsh cell. Both were imported from Cadw as
fortified_residence: yes; Wikidata classes both as contour forts.
Both records were corrected to contested — and this is enforced rather
than remembered: if the ledger records a band-conflict on a structure we hold,
CI fails unless the record marks that band contested. The ledger and the records
cannot drift apart.
That correction also changed the counts. fortified_residence now reads 102
register-derived rather than 104, with two moved into assessed-and-contested.
Cross-checking a register against another register cost us two castles, which
is the correct direction for that trade.
A hypothesis we tested and rejected
The Welsh word castell applies to hillforts as well as castles, so an obvious theory is that Wikidata over-assigns “castle” to monuments whose names begin Castell.
It does not hold. 66% of band-conflicts carry castle or castell in a name — but so do 99% of the monuments where both registers agree it is a castle, and 86% of the granularity cases. Castle-naming is near-universal across the whole comparison and does not distinguish the disputes. If anything the disagreements are less castle-named than the agreements.
It is recorded here because it was tested, not because it worked.
Reading the ledger
Every row carries both registers’ own class terms verbatim, the band each was
mapped onto, and the identifiers to check it yourself. The band mapping is the
reviewable artefact — it lives in
scripts/analyse_disagreements.py,
and every row states the band each class was mapped to so you can disagree with
the mapping without reading the code.
Two asymmetries in that mapping are deliberate, and both were bugs first:
- A Cadw class mapped to no band is a positive claim (“a round barrow is not a fortification”). A Wikidata class simply absent from the map is our ignorance and is skipped, never reported as an error. An earlier pass conflated these and accused Wikidata of category errors for classing things “ringwork castle” and “peel tower”.
- Cadw classes meaning unclassified are skipped entirely. Silence is not a claim, and comparing against a blank field manufactures disagreement out of nothing. 34 monuments are excluded on this basis.
The full ledger is disagreements.yml; it is
regenerated from committed register snapshots and CI fails on drift.
Sample
| Kind | Cadw says | Wikidata says | Monument |
|---|---|---|---|
| category-error | Henge |
castle |
Castell Bryngwyn Prehistoric Enclosure · Q5049667 |
| category-error | Mound |
castle |
Battle Tump · Q24661723 |
| category-error | Mound |
castle |
Round Barrow 90m NE of Pipton Farm · Q38598441 |
| category-error | Round Barrow |
castle |
Castle Heli Mound · Q24659558 |
| category-error | Mound |
castle |
The Mount, Abergele · Q38621630 |
| category-error | Mound |
castle |
Maes-Gwyn Castle Mound · Q24661414 |
| category-error | dovecote |
peel tower |
Culver Hole Dovecot · Q29499966 |
| category-error | Round Barrow |
castle |
Mellington Hill Round Barrow · Q39011485 |
| category-error | Mound |
castle |
Castle Arnold · Q5049668 |
| category-error | Farmstead |
bastle house |
Flimston Farmhouse · Q17741673 |
| category-error | Farmstead |
bastle house |
Pricaston Farmhouse · Q17741685 |
| category-error | Mound |
castle |
Knapp Farm Mound · Q24659272 |
| category-error | Castle - tower house |
high cross |
Doe castle · Q30218154 · held |
| category-error | Castle - unclassified |
Irish round tower |
Castle · Q24896274 · held |
| category-error | Castle - motte |
abbey |
Durrow Moat · Q1809870 · held |
| band-conflict | Tower |
partial contour fort |
Caer y Tŵr · Q5016875 |
| band-conflict | Fort |
castle |
Roman Wall Surrounding St Cybi's Churchyard · Q5016868 |
| band-conflict | Moated Site |
fortified manor house |
Tre-Garnedd Moated Site · Q38604256 |
| band-conflict | Promontory Fort- coastal |
castle |
Castell Near Tre-Fadog · Q24660286 |
| band-conflict | Hillfort |
castle |
Castell Dinas · Q31062040 |
| band-conflict | Enclosure |
castle |
Crickadarn Camp · Q24659340 |
| band-conflict | Enclosure |
castle |
Pen-llys Earthwork · Q24659348 |
| band-conflict | House (domestic) |
fortified manor house |
Tretower Court · Q7838880 |
| band-conflict | Town Defences |
fortification |
Town Wall at Watton Mount · Q122218234 |
| band-conflict | Moated Site |
fortified manor house |
Llanfilo Moated Site · Q38613898 |
| band-conflict | Moated Site |
fortified manor house |
Moated Site in Llanfilo Village · Q39011311 |
| band-conflict | Hillfort |
castle |
Castell Flemish · Q13126899 |
| band-conflict | Hillfort |
castle |
Pen-y-Castell Group · Q20589449 |
| band-conflict | Hillfort |
ringwork castle |
Promontory Fort SSW of Felin Cwrrws · Q20594403 |
| band-conflict | Promontory Fort - inland |
castle |
Castell Cwmere · Q13126893 |
Showing category-errors and band-conflicts only — the 573 granularity rows are in the data file.