1.1.3. Data Model¶
erDiagram
%% Logical entity-relationship diagram of the WHG v4 data model, which is PLATO (https://w3id.org/plato).
%% Relationship labels are PLATO RDF properties. Attribute names are PLATO JSON keys where PLATO JSON has one,
%% otherwise PLATO RDF properties. The id attribute is the node's IRI (JSON @id). This is a model, not a storage layout.
%% The attestation bundle
ATTESTATION }o--|| SPATIAL_ENTITY : "attests_about"
ATTESTATION }o--o{ NAME : "attests_name"
ATTESTATION }o--o{ GEOMETRY : "attests_geometry"
ATTESTATION }o--o{ TIMESPAN : "attests_timespan"
ATTESTATION }o--o{ TYPE : "attests_type"
ATTESTATION }o--o{ PROPERTY_VALUE : "attests_property"
%% Relations, identity and meta-attestations
ATTESTATION }o--o| SPATIAL_ENTITY : "relates_to"
ATTESTATION }o--o| RELATION_TYPE : "has_relation_type"
ATTESTATION }o--o{ IDENTITY_RELATION : "attests_identity"
IDENTITY_RELATION }o--|| SPATIAL_ENTITY : "identity_subject"
IDENTITY_RELATION }o--|| SPATIAL_ENTITY : "identity_object"
ATTESTATION }o--o| ATTESTATION : "meta_attestation_about"
%% Provenance
ATTESTATION }o--o{ AUTHORITY : "sourced_by"
ATTESTATION ||--o{ CITATION : "has_citation"
CITATION }o--|| AUTHORITY : "cites"
ATTESTATION }o--o| CERTAINTY_LEVEL : "certainty_level"
ATTESTATION }o--o| CONTRIBUTOR : "contributed_by"
%% The five kinds of Authority
SOURCE ||--|| AUTHORITY : "subClassOf"
DATASET ||--|| AUTHORITY : "subClassOf"
PERIOD ||--|| AUTHORITY : "subClassOf"
RELATION_TYPE ||--|| AUTHORITY : "subClassOf"
CERTAINTY_LEVEL ||--|| AUTHORITY : "subClassOf"
SOURCE }o--o| DATASET : "partOf"
SOURCE }o--o| TIMESPAN : "source_timespan"
SOURCE }o--o| SOURCE : "derived_from"
PERIOD }o--o| TIMESPAN : "has_timespan"
TIMESPAN }o--o| PERIOD : "relative_to"
RELATION_TYPE }o--o| RELATION_TYPE : "broader_relation"
%% Gazetteers and gazetteer groups
GAZETTEER |o--o{ SPATIAL_ENTITY : "contains_entity"
GAZETTEER |o--o{ ATTESTATION : "contains_attestation"
GAZETTEER |o--o{ IDENTITY_RELATION : "contains_identity_relation"
GAZETTEER |o--o{ RELATION_TYPE : "declares_relation_type"
GAZETTEER }o--o{ GAZETTEER_GROUP : "member_of_group"
GAZETTEER }o--o| CONTRIBUTOR : "gazetteer_owner"
SPATIAL_ENTITY {
iri id "JSON @id"
string label "display label, not evidence"
array ccodes "ISO 3166-1 alpha-2, a finding aid"
string entityIdentifier
string namespace
}
ATTESTATION {
iri id "JSON @id"
float certainty "0.0 to 1.0"
string certaintyNote
boolean negated
iri sourceStance
boolean computed
int sequence "with MemberOf only"
iri formStatus
string notes
datetime created
datetime modified
}
NAME {
iri id "JSON @id, optional"
string toponym "required"
string language "BCP 47 tag"
string script "ISO 15924"
array nameType "toponym, chrononym, ethnonym, ..."
string romanized
string transliterationSystem
string ipa
string nameEmbedding "WHG uses 128-dimensional Symphonym vectors"
string sourceLabel
}
GEOMETRY {
iri id "JSON @id, optional"
json geojson "Point, LineString, Polygon and Multi forms"
string wkt
array reprPoint "longitude, latitude"
array bbox
string hull "WKT polygon"
iri role "Extent, FeaturePoint, RepresentativePoint, LabelAnchor, Itinerary"
array spatialPrecision "exact, approximate, uncertain, historical_approximate"
array precisionKm
string sourceCrs
string sourceLabel
}
TIMESPAN {
iri id "JSON @id, optional"
string startEarliest "ISO 8601 or signed year"
string startLatest
string endEarliest
string endLatest
string startPrecision "day, month, year, decade, century, era, geological_period"
string endPrecision
int precisionValue "years"
boolean openStart
boolean openEnd
string duration "xsd duration"
string label
iri periodoUri
string edtfString
string sourceLabel
}
TYPE {
iri id "the dataset's own, never the concept IRI"
iri identifier "the concept IRI, e.g. AAT or plato TypeRoute"
iri scheme
string schemeVersion
string label "required"
string sourceLabel
}
PROPERTY_VALUE {
iri property "property IRI in an external vocabulary"
string value
iri datatype
iri unit
iri valueType
string label
string sourceLabel
}
IDENTITY_RELATION {
string identityType "exactMatch, closeMatch, related, unspecified"
float certainty
string basis
}
CITATION {
string locator "p. 412, f. 12v"
iri attributionStatus
iri citationFunction "a CiTO property"
}
AUTHORITY {
iri id "JSON @id"
string authority_title "JSON title"
iri authority_uri "JSON uri"
string authority_version
string bibliographic_string "JSON citation"
iri license "dcterms license, JSON licence"
}
DATASET {
string publisher
}
PERIOD {
string period_label
iri period_periodo_uri
string spatial_coverage
}
RELATION_TYPE {
string relation_label
string inverse_label
string relation_domain
string relation_range
}
CERTAINTY_LEVEL {
string authority_title "certain, less certain, uncertain"
}
GAZETTEER {
iri id "JSON @id"
string title
string description
string version
string status "draft or published"
iri licence
array creator
}
GAZETTEER_GROUP {
iri id
}
CONTRIBUTOR {
iri id
string name
string orcid
string role
}
Fig. 1.10 Entity–relationship diagram for the WHG v4 data model.¶
Note
The model, its formal expression, and its storage. This section describes the WHG v4 data model: SpatialEntities, the Attestations made about them, and the Names, Geometries, Timespans, Types, relations and identity claims that attestations bundle, each resting on Authorities such as Sources and Periods. The model is PLATO, the Place Attestation Ontology, which also defines its JSON and RDF serialisations. The Linked Places Format (LPF) is PLATO’s single-object profile, and remains a supported input and output format.
These pages describe the model, not a storage layout. WHG holds it in PostgreSQL/PostGIS, with Elasticsearch serving search.
- 1.1.3.1. Introduction
- 1.1.3.1.1. Many names, many shapes, many dates, many sources
- 1.1.3.1.2. SpatialEntity: where attestations converge
- 1.1.3.1.3. The Attestation: a bundle of claims with its evidence
- 1.1.3.1.4. Why attestations rather than fields
- 1.1.3.1.5. Two attestations in PLATO JSON
- 1.1.3.1.6. Relations between entities
- 1.1.3.1.7. Identity between entities
- 1.1.3.1.8. Authorities: what attestations rest on
- 1.1.3.1.9. Gazetteers and gazetteer groups
- 1.1.3.1.10. Meta-attestations
- 1.1.3.1.11. Where next
- 1.1.3.2. Overview
- 1.1.3.2.1. Core entities
- 1.1.3.2.2. At a glance
- 1.1.3.2.3. SpatialEntity
- 1.1.3.2.4. Attestation
- 1.1.3.2.5. Name
- 1.1.3.2.6. Geometry
- 1.1.3.2.7. Timespan
- 1.1.3.2.8. Type
- 1.1.3.2.9. PropertyValue
- 1.1.3.2.10. Qualifying a facet
- 1.1.3.2.11. Authorities
- 1.1.3.2.12. Gazetteer and GazetteerGroup
- 1.1.3.2.13. Identity
- 1.1.3.2.14. Meta-attestations
- 1.1.3.2.15. Contributors
- 1.1.3.2.16. Lifecycle
- 1.1.3.2.17. Design rationale
- 1.1.3.2.18. Next steps
- 1.1.3.3. Attestations and Relations
- 1.1.3.3.1. What an attestation bundles
- 1.1.3.3.2. Qualifications: certainty, fuzziness and precision
- 1.1.3.3.3. Denial and the source’s stance
- 1.1.3.3.4. Sources and citations
- 1.1.3.3.5. Attribution
- 1.1.3.3.6. Computed values
- 1.1.3.3.7. Relations
- 1.1.3.3.8. Identity
- 1.1.3.3.9. Meta-attestations
- 1.1.3.3.10. Attestations about other Gazetteers’ places
- 1.1.3.3.11. Reading attestations
- 1.1.3.4. Vocabularies
- 1.1.3.4.1. Name types
- 1.1.3.4.2. Place types
- 1.1.3.4.3. Temporal precision
- 1.1.3.4.4. Spatial precision and geometry roles
- 1.1.3.4.5. Certainty, fuzziness and the source’s stance
- 1.1.3.4.6. Kinds of authority
- 1.1.3.4.7. Citation functions
- 1.1.3.4.8. Meta-attestation types
- 1.1.3.4.9. Relation types
- 1.1.3.4.10. Identity and matching
- 1.1.3.4.11. Gazetteers and contributors
- 1.1.3.5. Routes, Itineraries, Networks, Groups and Periods
- 1.1.3.5.1. The building blocks
- 1.1.3.5.1.1. Typing: routes, itineraries, networks and segments
- 1.1.3.5.1.2. Membership and sequence:
MemberOf - 1.1.3.5.1.3. Connections and direction:
ConnectedToandLeadsTo - 1.1.3.5.1.4. Segments:
BeginsAt,EndsAtandHasEnd - 1.1.3.5.1.5. Figures on links: PropertyValues
- 1.1.3.5.1.6. Computed values:
plato:computed
- 1.1.3.5.2. Route
- 1.1.3.5.3. Itinerary
- 1.1.3.5.4. Network
- 1.1.3.5.5. Gazetteer groups
- 1.1.3.5.6. Periods
- 1.1.3.5.7. Computed extents
- 1.1.3.5.8. On place pages
- 1.1.3.5.1. The building blocks
- 1.1.3.6. Contributions: What Arrives and What It Becomes
- 1.1.3.6.1. Formats WHG accepts
- 1.1.3.6.2. What a contribution becomes
- 1.1.3.6.3. From each format
- 1.1.3.6.4. Routes, itineraries and networks
- 1.1.3.6.5. Linking to places WHG already holds
- 1.1.3.6.6. Geometry is always attributed
- 1.1.3.6.7. Gazetteer groups
- 1.1.3.6.8. Place collections
- 1.1.3.6.9. Changing a contribution
- 1.1.3.6.10. Taking data out
- 1.1.3.7. RDF Representation
- 1.1.3.7.1. What WHG serves, and how
- 1.1.3.7.2. Namespaces
- 1.1.3.7.3. The classes and properties
- 1.1.3.7.4. An attestation in Turtle
- 1.1.3.7.5. Relations
- 1.1.3.7.6. Denials
- 1.1.3.7.7. Identity
- 1.1.3.7.8. Meta-attestations
- 1.1.3.7.9. Provenance
- 1.1.3.7.10. Querying with SPARQL
- 1.1.3.7.10.1. 1. The names of a place, with their dates and sources
- 1.1.3.7.10.2. 2. Routes, itineraries, networks and segments
- 1.1.3.7.10.3. 3. The members of an itinerary, in order
- 1.1.3.7.10.4. 4. Meta-attestations: what comments on what
- 1.1.3.7.10.5. 5. Identity claims, and whether they were denied
- 1.1.3.7.10.6. 6. The current state: attestations not withdrawn or replaced
- 1.1.3.7.11. Checking RDF
- 1.1.3.7.12. See also
- 1.1.3.8. Use Cases
- 1.1.3.8.1. Finding a place as it was named at the time
- 1.1.3.8.2. Dating by period
- 1.1.3.8.3. Weighing sources that disagree
- 1.1.3.8.4. Containment: what lay within what, and when
- 1.1.3.8.5. Reconciling a list of place names
- 1.1.3.8.6. One place in many gazetteers: clusters and loci
- 1.1.3.8.7. Routes, journeys and networks
- 1.1.3.8.8. Places in the histories of people, objects and events
- 1.1.3.8.9. Contributing and curating
- 1.1.3.8.10. Citing a place in a gazetteer that changes
- 1.1.3.8.11. How this differs from other resources
- 1.1.3.9. Summary
- 1.1.3.9.1. The idea in one paragraph
- 1.1.3.9.2. Key entities
- 1.1.3.9.3. Attestation
- 1.1.3.9.4. Relations
- 1.1.3.9.5. Identity
- 1.1.3.9.6. Meta-attestations
- 1.1.3.9.7. Gazetteers, collections, groups and periods
- 1.1.3.9.8. Computed values
- 1.1.3.9.9. Vocabularies
- 1.1.3.9.10. Formats and RDF
- 1.1.3.9.11. Storage
- 1.1.3.9.12. What it is for