1.1.3.3. Attestations and Relations¶
In WHG v4 everything known about a place, apart from its identifier, is an attestation: a bundle of evidence saying that a SpatialEntity had a name, a location, a type, a relation to something else or some other attribute, at some time, according to some source, as recorded by someone. The model is PLATO, the Place Attestation Ontology, at PLATO 0.7.1 (doi:10.5281/zenodo.23060220; all versions: doi:10.5281/zenodo.21688313). This page describes what an attestation can hold, how relations and identity are expressed, how one attestation comments on another, and how a Gazetteer attests about places that other Gazetteers define. The controlled values it mentions are listed in Vocabularies.
The examples are PLATO JSON, the form in which WHG takes data in and gives it out. Most are quoted from PLATO’s own examples, including its worked examples of routes, journeys and networks; the few written for this page are marked as such, and every one validates against PLATO’s JSON schemas. WHG stores and indexes attestations in PostgreSQL/PostGIS and Elasticsearch; this page describes the model, not the storage.
1.1.3.3.1. What an attestation bundles¶
An attestation is about exactly one SpatialEntity (plato:attests_about). In a
place-centric document it is nested
under that SpatialEntity; in an
attestation-centric document its
about gives the SpatialEntity’s IRI. A meta-attestation need not say: it
is about its target attestation. Everything else is optional, and an attestation carries as much or
as little as its source says.
What |
PLATO property |
JSON key |
Notes |
|---|---|---|---|
The SpatialEntity |
|
|
Implicit when nested under the SpatialEntity. Not needed on a meta-attestation, which is about its target. |
Names |
|
|
A |
Geometries |
|
|
GeoJSON or WKT, with |
Timespans |
|
|
Four dates ( |
Types |
|
|
A classification: a vocabulary concept’s IRI in |
Other attributes |
|
|
PropertyValues: a population, a valuation, a market day, a distance. |
A relation |
|
|
At most one per attestation. See Relations. |
Identity relations |
|
|
Several, asserted together. See Identity. |
Commentary on another attestation |
|
|
See Meta-attestations. |
Sources |
|
|
The source or dataset the evidence comes from. |
Citations |
|
|
One use of one source, with a |
Who and when |
|
|
See Attribution. |
How sure |
|
|
The contributor’s confidence in the bundle. |
Denial |
|
|
The source says it is not so. |
The source’s stance |
|
|
Reported, tentative or doubted, rather than asserted. |
Worked out by software |
|
|
Not evidence. See Computed values. |
Position in a route, itinerary or network |
|
|
With a |
Occurrence in the source |
|
|
“3 X”; a form found only in a personal name. |
Status of the name form |
|
|
Attested, headword, preferred, normalised, reconstructed. |
Free text |
|
|
Transcriptions, translations, editorial remarks. |
The parts of an attestation are independent statements that share its provenance. A timespan in an attestation dates the whole bundle, not the name that happens to sit beside it; the source vouches for all of it; and a denial, a stance or a certainty applies to all of it. So a contributor bundles together only what one source says together, for the same time, and puts anything the source says separately, or with a different date or degree of confidence, in an attestation of its own. A denial is always one facet per attestation, so that what is denied is never in doubt.
Names, geometries, timespans, types and PropertyValues are reusable: the same Name can be attested
for several SpatialEntities, and one timespan can date many attestations. A SpatialEntity itself
holds only its identifier and some finding aids that are not evidence (a display label, ccodes,
an entityIdentifier and its namespace). Everything else about it is attested, and many
attestations from different sources, periods and contributors converge on it.
1.1.3.3.1.1. Example: Constantinople in the Notitia Urbis¶
One attestation from PLATO’s
Constantinople example
(place-centric-constantinople.json, lines 55–87), nested under its SpatialEntity: a name, a
timespan, a type and a source, all vouched for together, with the certainty and a note on how the
date was set.
{
"names": [
{
"toponym": "Constantinopolis",
"language": "la",
"script": "Latn",
"nameType": ["toponym"],
"sourceLabel": "urbis Constantinopolitanae"
}
],
"timespans": [
{
"startEarliest": "0425",
"endLatest": "0450",
"startPrecision": "decade",
"endPrecision": "year"
}
],
"types": [
{ "identifier": "http://vocab.getty.edu/aat/300008347", "label": "inhabited place" }
],
"sources": [
{
"title": "Notitia Urbis Constantinopolitanae",
"citation": "Notitia Urbis Constantinopolitanae, praefatio, ed. O. Seeck, Notitia Dignitatum (1876), p. 229",
"uri": "https://www.livius.org/sources/content/notitia-urbis-constantinopolitanae/"
}
],
"certainty": 1.0,
"certaintyNote": "The preface names the city 'urbis Constantinopolitanae'. The source describes the city's fourteen regions but gives no coordinates, so no geometry is attested.",
"notes": "The timespan is when this source witnesses the name Constantinopolis in use. A source witnesses only its own time, so that is the source's date, not the whole span in which the name was used. The Notitia was written under Theodosius II, who died in 450, and whom its preface praises; proposed dates run from about 425 to 447-450.",
"created": "2026-02-15T10:00:00Z"
}
The same SpatialEntity has two more attestations in that file: Βυζάντιον, from Herodotus (dated to the Histories, about 440 to 420 BC), and İstanbul, from GeoNames (dated to the day GeoNames was consulted, and the only one of the three with a geometry). Each keeps its own source, dates and certainty, and they need not agree. Each timespan is when its source witnesses the name in use. These sources witness only their own time, so it is the source’s date, not the whole span in which the name was used: that is a conclusion drawn from many attestations.
1.1.3.3.2. Qualifications: certainty, fuzziness and precision¶
PLATO keeps apart several things that are often run together:
Question |
Where |
Values |
|---|---|---|
How confident is the contributor in this bundle? |
|
1.0 is completely certain. Better evidence could raise it. |
The same, stated in words |
|
|
How confident in one value? |
|
May differ from the attestation’s own. |
Is the thing itself vague? |
|
A region never formally bounded is fuzzy however good the evidence. |
How finely is a location or date given? |
|
Resolution, not confidence. |
How firmly does the source say it? |
|
Reported, tentative or doubted. See Denial and the source’s stance. |
Is a transcription faithful and whole? |
|
Judges the reading, not the source. |
A facet can also be defined relative to something else, with qualification.relativeTo (the anchor
entity’s IRI), relativeBearing, relativeDistance (in metres) and a relativeQualifier such as
Near, Within or UpstreamOf. The values are listed in Vocabularies.
This geometry from PLATO’s customs-accounts example (attestation-centric-customs.json) places
Deptford Strand near modern Deptford, and says both that its location is uncertain and that the
strand itself was never sharply bounded (the relative-position keys are elided here):
"geometries": [
{
"spatialPrecision": ["uncertain"],
"precisionKm": [0.5],
"qualification": {
// … relativeTo, relativeQualifier and relativeDistance …
"fuzziness": 0.6,
"fuzzinessNote": "Strand location was not precisely bounded; refers to a general waterfront area."
}
}
]
1.1.3.3.3. Denial and the source’s stance¶
A source may say that something is not so: that a town had no market, that a grant was refused.
That is an attestation with negated: true, about the real SpatialEntity, bundling the one facet
the source denies. Nothing that never existed needs to be invented. A denial is a statement, often a
certain one, so it is neither low certainty nor a meta-attestation (which needs a claim to
contradict). Any consumer must honour it: a tool that cannot express a denial must leave the
attestation out and say so, never write it as an assertion. WHG follows that rule in what it shows
and what it exports.
From PLATO’s place-centric-judgements.json, an attestation about Littleworth:
{
"types": [
{
"label": "market"
}
],
"negated": true,
"timespans": [
{
"startEarliest": "1886",
"endLatest": "1886",
"sourceLabel": "1886"
}
],
"citations": [
{
"source": {
"@id": "https://whgazetteer.org/example/source/market-rights-1886",
"title": "Return of market rights and tolls, 1886"
},
"locator": "vol. XIII, p. 88",
"citationFunction": "http://purl.org/spar/cito/citesAsEvidence"
}
],
"notes": "The return answered for every district it covered, so 'no market here' is a statement, certain, not a gap. The attestation is about the real town, with the one thing denied; no market is invented."
}
A source may also say something without vouching for it. sourceStance records how firmly the
source asserts what the attestation bundles: StanceReported (“it is said”), StanceTentative
(hedged) or StanceDoubted (raised and left unsettled). It is omitted where the source simply
asserts. The stance is the source’s, not the contributor’s: an editor can be quite certain that a
source hedged, so certainty is not lowered to record it. Doubt is not denial: a source that
declines to settle whether there was a market is StanceDoubted; one that says there was none is
negated.
1.1.3.3.4. Sources and citations¶
An attestation names its evidence in one of two ways, which may be combined:
sources(plato:sourced_by) names a source or dataset directly: a URI, or an inline object with atitle, acitation, auri, alicenceand anauthorityType(source,dataset,period,relationTypeorcertaintyLevel).citations(plato:has_citation) records one use of one source (plato:Citation), with what is true of this citation rather than of the source: alocator(“p. 412”, “f. 12v”), anattributionStatus(AttributionInferredfor an “ibidem” resolved by an editor) and acitationFunction, why the source is cited, as a property of CiTO, the Citation Typing Ontology, such ascitesAsEvidenceorcitesAsDataSource. An attestation resting on two sources has two citations.
A source may carry its own timespan, the date of the document (a manuscript, an edition), which is
distinct from the attestation’s timespans, which date the claim. A source may also be
derivedFrom the source it copies, calendars or edits. A source’s licence is that of the copy
cited, so that a consumer can see when a cited source is licence-restricted.
From PLATO’s attestation-centric-citations.json, one claim resting on two located sources, in the
notation of a place-name survey:
{
"about": "https://whgazetteer.org/example/entity/bunsty",
"names": [
{ "toponym": "Bonestowe", "script": "Latn", "nameType": ["toponym"] }
],
"timespans": [
{
"startEarliest": "1252",
"startLatest": "1252",
"endEarliest": "1346",
"endLatest": "1346",
"startPrecision": "year",
"endPrecision": "year"
}
],
"sources": [
{ "@id": "https://whgazetteer.org/example/source/close-rolls", "title": "Cl", "citation": "Calendar of the Close Rolls" },
{ "@id": "https://whgazetteer.org/example/source/harley-charters", "title": "Harl", "citation": "British Library, Harley Charters" }
],
"citations": [
{ "source": "https://whgazetteer.org/example/source/close-rolls", "locator": "1251–53, p. 214", "citationFunction": "http://purl.org/spar/cito/citesAsEvidence" },
{ "source": "https://whgazetteer.org/example/source/harley-charters", "locator": "Harl. Ch. 84 D 20" }
],
"notes": "Survey notation: 1252 Cl et passim to 1346 Harl. One claim resting on two sources, each located.",
"contributor": "https://orcid.org/0000-0002-1234-5678",
"created": "2026-09-26T12:00:00Z"
}
1.1.3.3.5. Attribution¶
Every attestation records who made it (contributor, plato:contributed_by: a URI, or an inline
object with a name, an orcid, an affiliation and a role) and when (created, and modified
where it has changed). PLATO leaves the ORCID optional; in v4, WHG requires one for every new
contribution, since contributors sign in to WHG with ORCID. Data contributed before v4 keeps the
attribution it already has.
The contributor is not the source. The source is the evidence (a charter, a survey, a dataset); the
contributor is the person, team or process that recorded it in a Gazetteer. The Gazetteer’s own
creator (the people to cite as its authors) and contributor (its owner) are described in its
header.
Once a Gazetteer is published (status: "published"), its attestations are append-only: never
deleted or changed, only superseded or retracted by new attestations, each with its own created
time. The state of a Gazetteer at any moment is then the attestations created by that moment, less
those superseded or retracted by it. See Meta-attestations.
1.1.3.3.6. Computed values¶
A value that software worked out from other statements in the same data, and that any consumer
holding them could work out again (an itinerary’s span from its stops’ dates, a route’s line from
its stations), is marked computed: true, on the attestation or in a facet’s qualification. It is
not evidence: a consumer may show it, but must not take it in as an attestation; it computes the
value again or leaves it out. WHG marks such values when it shows or exports them, never stores
them as attested fact, and never imports anything marked computed as an attestation.
A figure a project works out from its own source material and publishes as a finding (letters
counted from a register) is not computed in this sense. It is attested, citing the work that
produced it as a Source or Dataset derivedFrom the material. See
Computed extents.
1.1.3.3.7. Relations¶
An attestation may assert one relation between its SpatialEntity and another entity. The
relation’s target is relates_to (JSON relatesTo) and its kind is has_relation_type (JSON
relationType), the IRI of a RelationType. Like everything else in an attestation, a relation has
the attestation’s timespan, source and certainty: containment in 1300 and in 1900 are two
attestations. Two relations need two attestations.
JSON key |
PLATO property |
Use |
|---|---|---|
|
|
The target’s IRI. Usually another SpatialEntity; for an association, a person, object or event described elsewhere. |
|
|
One of PLATO’s relation types below, or a type the document declares. |
|
|
A name to show for the target. Give it whenever the target is not a SpatialEntity in the same dataset: a platform cannot look up every IRI. |
|
|
The source’s own wording of the relation (“part of Berkshire”), before it was mapped to a type. |
The attestation’s sequence gives the SpatialEntity’s position in a route, itinerary or network
that it is a MemberOf.
1.1.3.3.7.1. Relation types¶
PLATO declares these relation types. Each reads from the attestation’s SpatialEntity (the subject)
to the relatesTo target; the inverse label reads the other way. Their IRIs are
https://w3id.org/plato# followed by the name in the first column.
Relation type |
Label |
Inverse label |
Target |
Meaning (PLATO) |
|---|---|---|---|---|
|
|
|
SpatialEntity |
The subject is contained in the target, for the attested timespan: a parish in a hundred, a hundred in a county. |
|
|
|
a route, itinerary or network |
The subject is a member of the target: a station on a road, a stop on a journey, a port in a trade network, a segment of a river system. Its position is |
|
|
|
SpatialEntity |
Directly connected, in no particular direction. |
|
|
|
SpatialEntity |
A directed connection from the subject to the target: a river into another, a post road to the next town. |
|
|
|
SpatialEntity |
A directed segment begins at the target. |
|
|
|
SpatialEntity |
A directed segment ends at the target. |
|
|
|
SpatialEntity |
An undirected segment has the target as one of its two ends. |
|
|
|
person |
The subject is where the target person was born. |
|
|
|
person |
The subject is where the target person died. |
|
|
|
person or group |
The target lived at the subject, for the attested timespan. |
|
|
|
person or group |
The target worked, or held office, at the subject. |
|
|
|
object |
The target object (a coin, an inscription, a manuscript) was found at the subject. |
|
|
|
event |
The target event (a battle, a council, a fair) took place at the subject. |
|
|
|
image, map or drawing |
The subject is shown in the target, identified by its address in a collection. |
|
|
|
record, document or publication |
The target is about the subject: an archival file, a site record, a report. |
Containment is ContainedIn, never MemberOf. MemberOf is membership of a route, itinerary
or network: a town on a road is not within it, and a network’s members need not lie inside
anything. Containment is a claim like any other, with a source, a date and a certainty; it is not
fixed by the model, and a place may be attested in different containers at different times or by
different sources.
What is not a relation type:
Names, geometries and timespans are facets of the attestation (
attests_nameand the rest), not relations.“The same place as” is not a relation between two places but an identity relation, with its own mechanism: see Identity.
Relations PLATO does not declare (“capital of”, “successor to”) are a project’s own. A PLATO JSON document declares them once in its
relationTypesarray, with alabel, aninverseLabeland, where one fits, the PLATO type it narrows asbroaderRelation; a relation then uses the declared type’s@idas itsrelationType. A narrower type keeps its broader type’s direction, so a consumer that knows onlyLeadsTostill follows a project’s “flows into” the right way. PLATO’s spreadsheet tables take only PLATO’s own relation types. See Routes, Itineraries, Networks, Groups and Periods.Thematic keywords (“coastal trade”, “politics”) are not relations. They belong in notes or, where they classify, in a Type.
1.1.3.3.7.2. Example: containment¶
Written for this page (it validates against PLATO’s attestation-centric schema). Bunsty Hundred, from PLATO’s survey examples, attested as contained in Buckinghamshire:
{
"$schema": "https://w3id.org/plato/schemas/attestation-centric.schema.json",
"profile": "attestation-centric",
"gazetteer": {
"@id": "https://whgazetteer.org/example/gazetteer/epns-survey",
"title": "Place-name survey attestations (illustrative)"
},
"attestations": [
{
"about": "https://whgazetteer.org/example/entity/bunsty",
"relations": [
{
"relatesTo": "https://whgazetteer.org/example/entity/buckinghamshire",
"relationType": "https://w3id.org/plato#ContainedIn"
}
],
"sources": [
{
"title": "PN Bk",
"citation": "A. Mawer and F. M. Stenton, The Place-Names of Buckinghamshire (EPNS 2, 1925)"
}
],
"notes": "A hundred of Buckinghamshire, as the county survey files it.",
"contributor": "https://orcid.org/0000-0002-1234-5678",
"created": "2026-09-30T12:00:00Z"
}
]
}
1.1.3.3.7.3. Example: membership and sequence¶
From PLATO’s King John example (place-centric-king-john.json), the first stop of the itinerary,
in an attestation nested under Windsor. The timespan is Windsor’s stay, the citation is Hardy’s page,
and sequence orders Windsor within this one itinerary:
{
"timespans": [
{
"sourceLabel": "from the 1st to the 3d of June 1215",
"startEarliest": "1215-06-01",
"endLatest": "1215-06-03"
}
],
"citations": [
{
"source": "https://whgazetteer.org/example/king-john/source/hardy-1835",
"locator": "p. 108",
"citationFunction": "http://purl.org/spar/cito/citesAsEvidence"
}
],
"relations": [
{
"relatesTo": "https://whgazetteer.org/example/king-john/place/itinerary-1215",
"relationType": "https://w3id.org/plato#MemberOf"
}
],
"sequence": 1
}
Windsor has further MemberOf attestations with sequences 6, 8 and 9, one for each return. How
routes, itineraries, networks and their segments are built from these, and what equal or missing
sequence numbers mean, is described in
Routes, Itineraries, Networks, Groups and Periods.
1.1.3.3.7.4. Associations with people, objects and events¶
The association types (BirthplaceOf to SubjectOf in the table) relate a place to something that
is not spatial and is described elsewhere: a person in Wikidata, an object in a museum catalogue, an
event. The target is given by its IRI with a relatedLabel, and PLATO deliberately gives
relates_to no range, so the target is not taken to be a SpatialEntity. WHG shows associations in a
section of their own on a place page and leaves them out of containment, clustering and matching.
See Associations;
the example under Attestations about other Gazetteers’ places
is one.
1.1.3.3.8. Identity¶
That two records (two SpatialEntities, often from different Gazetteers or authorities) are the same
place is not a relation type. It is an identity relation (plato:IdentityRelation):
JSON key |
PLATO property |
Use |
|---|---|---|
|
|
The first SpatialEntity. Implicit when nested under it. |
|
|
The second, often a record in another authority (a GeoNames feature, a Wikidata item), which is itself a SpatialEntity in PLATO. |
|
|
|
|
|
Confidence in the assertion, distinct from its type: a |
|
|
The evidence or reasoning. |
|
|
Who, when, on what authority, for one asserted on its own. |
|
|
The Candidate it was confirmed from, if any. |
An identity relation may be stated on its own, in a SpatialEntity’s identityRelations (as
Constantinople’s closeMatch to GeoNames is in PLATO’s example) or a document’s top-level
identityRelations. Identity relations asserted together, in one act, are bundled in one
attestation’s identities (plato:attests_identity), so that they share its provenance (who,
when, on what evidence) and are withdrawn or amended as a unit.
The rules WHG follows, all PLATO’s:
An identity relation is one attributed claim among many, never a canonical fact. WHG does not merge records or mint identifiers from identity relations, and does not let one outweigh contrary evidence by fiat. It is weighed like any other evidence, and someone else may say the opposite.
Chaining only within one attestation, and only for
exactMatch. A consumer may take the transitive closure of theexactMatchrelations inside one attestation. It must not chain identity relations across different attestations, nor chaincloseMatch,relatedorunspecifiedat all: A the same as B and B the same as C, asserted by different people, is not anyone’s assertion that A is C.“Not the same” is an attestation too. An attestation with
negated: truebundling oneexactMatchsays that two records are different places, so disagreement accumulates as well as agreement.
From PLATO’s place-centric-judgements.json, an editor’s judgement that two Newtons are different
places:
{
"@id": "https://whgazetteer.org/example/attestation/newtons-distinct",
"negated": true,
"identities": [
{
"subject": "https://whgazetteer.org/example/entity/newton-on-the-hill",
"object": "https://whgazetteer.org/example/entity/newton-by-the-river",
"identityType": "exactMatch"
}
],
"citations": [
{
"source": {
"@id": "https://whgazetteer.org/example/source/editor-review",
"title": "Editor's review of the Newtons",
"authorityType": "source"
}
}
],
"notes": "The editor's judgement that the two Newtons are different places: an identity denied (negated, bundling one exactMatch), attributed and dated like any claim, so that disagreement is recorded as well as agreement. It is about the places; the alternative readings above are about the mention."
}
1.1.3.3.8.1. Candidates, clusters and loci¶
A Candidate (
plato:Candidate) is a match suggested by software for a person to review, such as the matches WHG’s Map your Data reconciliation offers. It carries a similarity score, the algorithm’s version, optionally the settings that produced the score (plato:match_parameters), and a review status (suggested,confirmedorrejected). A Candidate is neither an attestation nor an identity relation. When a person confirms it, it becomes an identity relation that records where it came from inpromotedFrom.A cluster is not in PLATO. In WHG it is the result of a query in the Atlas: records grouped by their similarity at the moment of asking, not a stored entity. Its citable form is a locus (WHG place#172).
When a person accepts a cluster of n records, that is one attestation bundling the n-1
exactMatchrelations of the matches actually made (a spanning tree, not every pair), with the person, the time and the cluster’s definition as its provenance. It is still one claim among many: retracting it withdraws all its matches together, and it never becomes a canonical record.
Written for this page (it validates against PLATO’s attestation-centric schema): a curator accepts a
cluster of three records for Windsor, the King John example’s own, Wikidata’s, and a third
Gazetteer’s, as one attestation with two exactMatch relations:
{
"$schema": "https://w3id.org/plato/schemas/attestation-centric.schema.json",
"profile": "attestation-centric",
"gazetteer": {
"@id": "https://whgazetteer.org/example/gazetteer/windsor-review",
"title": "Windsor: accepted matches (illustrative)"
},
"attestations": [
{
"about": "https://whgazetteer.org/example/king-john/place/windsor",
"identities": [
{
"subject": "https://whgazetteer.org/example/king-john/place/windsor",
"object": "http://www.wikidata.org/entity/Q464955",
"identityType": "exactMatch"
},
{
"subject": "https://whgazetteer.org/example/king-john/place/windsor",
"object": "https://whgazetteer.org/example/entity/windsor",
"identityType": "exactMatch"
}
],
"sources": [
{
"title": "Cluster of three Windsor records, reviewed in the WHG Atlas",
"authorityType": "source"
}
],
"certainty": 0.9,
"notes": "Two matches make a spanning tree of the three records. The third pair is implied only within this attestation.",
"contributor": "https://orcid.org/0000-0002-1234-5678",
"created": "2026-09-30T12:00:00Z"
}
]
}
1.1.3.3.9. Meta-attestations¶
An attestation can comment on another attestation. A meta-attestation points at its target with
plato:meta_attestation_about and says what kind of comment it is with plato:has_meta_type, a
concept in PLATO’s meta-type scheme or a project’s own. In JSON both go in the attestation’s meta
object, as targetAttestation (the target’s @id) and metaType (the concept’s IRI). A
meta-attestation need not say which SpatialEntity it is about (about, plato:attests_about): it
is about its target, and through it about the target’s SpatialEntity. Where it does say, as when it
is nested under a place in a place-centric document, that is the target’s. A meta-attestation is an
ordinary attestation otherwise: it has its own source, contributor, date,
certainty and notes, and may itself be the target of another.
Meta type |
Meaning (PLATO) |
|---|---|
|
Asserts that the target attestation is incorrect. |
|
Provides additional evidence for the target attestation. |
|
Replaces the target attestation with newer information. |
|
Provides more precise information than the target attestation. |
|
Questions the validity of the target attestation. |
|
Groups the target with other related attestations. |
|
This attestation’s value was derived from the target’s, as a normalised search form is derived from an attested spelling. |
|
Adds a remark about the target, with its own source, without supporting, contradicting or refining it. The remark is the meta-attestation’s notes. |
|
This attestation and the target are alternative readings of the same evidence: at most one of them is right. Each keeps its own certainty, and the set counts once as evidence. |
|
The target is withdrawn by whoever made it, and kept only so that earlier states can be reproduced. A tool showing the current state leaves it out. Retracting a retraction restores the target. |
Their IRIs are https://w3id.org/plato# followed by the name. In a published Gazetteer, a
correction is a new attestation that Supersedes (or Contradicts) the old one, and a withdrawal
is a Retracts; nothing is deleted. A supersession or retraction takes effect only while it holds
itself, so a chain of them resolves in order.
WHG applies these in two situations of its own:
A revised upload. When a contributor uploads a new version of a published Gazetteer, WHG will compare it with what is there: a changed claim becomes a new attestation with a
Supersedesmeta-attestation, a removed claim aRetracts, and a new claim a new attestation (see Changing a contribution).A withdrawn place. A place whose attestations have all been retracted keeps its page, marked “withdrawn by its contributor” with the retraction’s reason. Its identifier never answers 404.
From PLATO’s place-centric-judgements.json, a bad import and its retraction, two attestations
about Littleworth:
{
"@id": "https://whgazetteer.org/example/attestation/littleworth-bad-import",
"geometries": [
{
"geojson": {
"type": "Point",
"coordinates": [
0.0,
0.0
]
}
}
],
"sources": [
{
"title": "Batch import, 2026-09-01"
}
],
"created": "2026-09-01T09:00:00Z",
"notes": "A bad import put Littleworth at 0°, 0°. In a published gazetteer it is not deleted: the next attestation retracts it."
},
{
"meta": {
"targetAttestation": "https://whgazetteer.org/example/attestation/littleworth-bad-import",
"metaType": "https://w3id.org/plato#Retracts"
},
"sources": [
{
"title": "Batch import, 2026-09-01"
}
],
"created": "2026-09-02T10:00:00Z",
"notes": "Withdrawn by whoever made it. The state as of 1 September still shows the point; the state from 2 September on does not."
}
In RDF the same mechanism is two properties on the attestation. From PLATO’s
examples/survey-attestations.ttl, a normalised search form derived from an attested spelling:
@prefix plato: <https://w3id.org/plato#> .
@prefix whgx: <https://whgazetteer.org/example/> .
whgx:attestation\/bunsty-bunstowe-normalised
a plato:Attestation ;
plato:attests_about whgx:entity\/bunsty ;
plato:attests_name whgx:name\/bunstowe ;
plato:sourced_by whgx:dataset\/deep ;
plato:form_status plato:Normalised ;
plato:meta_attestation_about whgx:attestation\/bunsty-bunstowe-attested ;
plato:has_meta_type plato:DerivedFrom .
1.1.3.3.9.1. Which to use¶
The situation |
Use |
|---|---|
The source says it is not so. |
|
The source passes it on, hedges, or leaves it open. |
|
The contributor is unsure. |
|
A scholar or source says another attestation is wrong. |
A meta-attestation, |
Its maker takes a claim back (a bad import). |
A meta-attestation, |
A corrected version replaces an earlier one. |
A new attestation that |
One mention could be read as either of two places. |
Two attestations, the second |
Two records are different places. |
|
1.1.3.3.10. Attestations about other Gazetteers’ places¶
A Gazetteer (plato:Gazetteer, a dcat:Dataset) is a workspace that defines its own
SpatialEntities and holds attestations. Its attestations need not be about SpatialEntities it
defines. It may attest about places that other Gazetteers define, identified by their IRIs, without
redefining them: a correction to another project’s place, a link from a record to an existing place,
a curator’s note on a place in a collection. Such an attestation adds evidence. It does not
change the place’s identity or make this Gazetteer its owner; its source, contributor and status are
this Gazetteer’s; and the append-only rule of a published Gazetteer applies to the attestations it
contains, not to what others say about its places.
In PLATO JSON these go in an attestation-centric document, where each attestation’s about
gives the IRI of an existing place. A place-centric document declares every SpatialEntity it
lists as its own, so it lists only those. PLATO’s customs-accounts example
(attestation-centric-customs.json) attests a Middle English name for Bristol with about
pointing at GeoNames’ record, https://www.geonames.org/2654675/.
1.1.3.3.10.1. Place collections¶
A WHG place collection is a curatorial act, so in the model it is a Gazetteer, not a SpatialEntity. The places it gathers belong to other Gazetteers. Selecting a place for the collection is attesting about it: a place is in the collection when the collection’s Gazetteer contains an attestation about that place. That attestation may carry the curator’s annotation, or it may be the selection alone. Either way it is attributed to the curator, with the collection’s own sources and dates. A place’s own page shows a collection’s annotations only if the collection declares them public. Teaching and class groups, in which students build collections together, are features of the WHG application, not part of PLATO.
Written for this page (it validates against PLATO’s attestation-centric schema): a collection’s annotation on Lumbini, a place another Gazetteer defines, which is also an association with a person described in Wikidata:
{
"$schema": "https://w3id.org/plato/schemas/attestation-centric.schema.json",
"profile": "attestation-centric",
"gazetteer": {
"@id": "https://whgazetteer.org/example/collection/buddha-life",
"title": "Places in the life of the Buddha (a place collection, illustrative)",
"contributor": "https://orcid.org/0000-0002-1234-5678",
"creator": [{ "@id": "https://orcid.org/0000-0002-1234-5678" }],
"licence": "https://creativecommons.org/licenses/by/4.0/"
},
"attestations": [
{
"about": "https://whgazetteer.org/example/entity/lumbini",
"relations": [
{
"relatesTo": "http://www.wikidata.org/entity/Q9441",
"relatedLabel": "the Buddha",
"relationType": "https://w3id.org/plato#BirthplaceOf"
}
],
"citations": [
{
"source": {
"@id": "https://whgazetteer.org/example/source/rummindei-pillar",
"title": "Rummindei pillar inscription of Aśoka",
"authorityType": "source"
},
"citationFunction": "http://purl.org/spar/cito/citesAsEvidence"
}
],
"notes": "The curator's annotation for this collection. Lumbini is another gazetteer's place: the collection adds evidence about it and does not redefine it.",
"contributor": "https://orcid.org/0000-0002-1234-5678",
"created": "2026-09-30T12:00:00Z"
}
]
}
A Gazetteer may also belong to a gazetteer group (plato:member_of_group); see
Gazetteer groups.
1.1.3.3.11. Reading attestations¶
Because every claim is its own attestation, questions about a place are answered by selecting attestations, not by reading a single record:
What was it called in 800? The names in attestations about the place whose timespans can include 800, each shown with its source and certainty. Retracted and superseded attestations are left out of the current state, and denials are shown as denials, not as names.
What contained it? Attestations about the place with a
ContainedInrelation, each with its own dates and source; there may be several, and they may disagree.Which places are connected to it? Attestations with
ConnectedToorLeadsTo(or a project type whosebroaderRelationleads to one of them) in either direction, with the direction taken from the relation type.
WHG answers such questions from PostgreSQL/PostGIS and its Elasticsearch indexes; how it does so is an implementation matter and not part of the model.