Last refreshed: 2026-07-06
Source: Place schema docs and place.json, part of Linked Art API 1.0, published under CC BY 4.0. This is a project summary; the upstream schema is authoritative.
Purpose
The Place schema describes `crm:E53_Place`: geographic locations where activities occur. In Linked Art API terms this covers cities, countries, buildings-as-places, archaeological find spots, movement origins and destinations, residences, and other spatial extents.
Related upstream references:
Top-Level Constraints
- Schema type: object.
- CRM class: `crm:E53_Place`.
- Additional top-level properties are not allowed.
- `@context`: required.
- `id`: required URI string for the entity.
- `type`: required class string. The practical Linked Art class is `Place`.
- `_label`: required developer-facing human-readable label.
Permitted Top-Level Fields
- `identified_by`: array of `Name` or `Identifier` structures.
- `classified_as`: array of `Type` structures that classify this place.
- `referred_to_by`: array of embedded statements or textual references about the place.
- `equivalent`: array of compact references to equivalent identities.
- `representation`: array of embedded `VisualItem` structures linked through digital objects.
- `member_of`: array of `Set` references.
- `subject_of`: array of embedded `LinguisticObject` web pages or digital objects focused on this place.
- `attributed_by`: array of `AttributeAssignment` structures relating another entity to this place.
- `defined_by`: string containing a WKT or GeoJSON definition of the place extent.
- `part_of`: array of `Place` references for larger places that contain this place.
Embedded Structures Highlighted By The Schema
`identified_by` items can be:
- `Name` structures, with required `type` and `content`, plus optional `_label`, nested `identified_by`, `referred_to_by`, `classified_as`, `language`, and `part`.
- `Identifier` structures, following the shared identifier pattern.
`referred_to_by` items are embedded `LinguisticObject` statements:
- `type`: required.
- `content`: required.
- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `format` are allowed.
`representation` items are embedded `VisualItem` structures:
- `type`: required.
- `_label`, `identified_by`, `classified_as`, `referred_to_by`, and `digitally_shown_by` are allowed.
- Nested digital objects can carry `access_point`, `format`, and `conforms_to`.
`subject_of` items are embedded `LinguisticObject` structures:
- `type`: required.
- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `digitally_carried_by` are allowed.
Spatial Definition And Hierarchy
The schema keeps spatial extent and containment explicit:
- `defined_by`: WKT or GeoJSON geometry string for the spatial extent.
- `part_of`: larger `Place` references in which this place falls.
`part_of` should express geographic containment, not object containment. Physical containment belongs on object records through `held_or_supported_by`, `part_of`, or current-location fields depending on the evidence.
Incoming Relationship Context
Places commonly appear from other endpoint and activity shapes:
- `took_place_at`: events and activities occur at places.
- `current_location`: physical objects can currently be at a place.
- `current_permanent_location`: physical objects can have a normal long-term place.
- `moved_from` and `moved_to`: movement activities use places as origin and destination.
- `residence`: people and groups can have current or former residence places.
- `encountered_by`: object encounters can carry find-spot place evidence through activity location.
These incoming relationships should remain structured references, not flattened display strings.
Meta Museum Notes
Meta Museum already preserves place semantics in record detail coverage: city and nation classifications, names, descriptions, `part_of` spatial hierarchy, authority `equivalent[]`, WKT `defined_by` geometry, approximate place nesting, and building/object `current_location -> Place` references stay distinct.
This expanded schema adds the endpoint-level validation target for place exports: required identity fields, no unexpected top-level properties, explicit geometry, spatial containment, and the link between place records and activity/object/actor references.
Test Ideas
- Validate representative `Place` records against `place.json`.
- Assert `@context`, `id`, `type`, and `_label` are present.
- Assert unknown top-level properties fail schema validation.
- Preserve `defined_by` as WKT or GeoJSON geometry text.
- Preserve `part_of` as larger `Place` references.
- Preserve place references from `took_place_at`, `current_location`, `current_permanent_location`, `moved_from`, `moved_to`, and `residence` without flattening them.