Last refreshed: 2026-07-06
Source: Abstract Work schema docs and abstract.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 Abstract Work schema describes a `crm:E89_Propositional_Object`: a purely conceptual work, such as the idea behind an exhibition. In Linked Art API terms this is the `PropositionalObject` endpoint shape.
Related upstream references:
Top-Level Constraints
- Schema type: object.
- CRM class: `crm:E89_Propositional_Object`.
- Additional top-level properties are not allowed.
- `@context`: required.
- `id`: required URI string for the entity.
- `type`: required class string, such as `Person`, `Place`, `Type`, or `HumanMadeObject`; for this endpoint the practical Linked Art class is `PropositionalObject`.
- `_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 the entity beyond its `type`.
- `referred_to_by`: array of embedded statements or textual references about the entity.
- `equivalent`: array of compact references to equivalent identities in external vocabularies or systems.
- `representation`: array of embedded `VisualItem` structures linked to digital objects.
- `member_of`: array of `Set` references.
- `subject_of`: array of embedded `LinguisticObject` web pages or digital objects focused on this entity.
- `attributed_by`: array of `AttributeAssignment` structures relating another entity to this one.
- `dimension`: array of `Dimension` structures.
- `subject_to`: array of `Right` structures.
- `about`: array of references to the main topics of the abstract work.
- `conceptually_part_of`: array of `PropositionalObject` references for parent abstract works.
- `created_by`: creation activity for the intellectual or conceptual entity.
Embedded Structures Highlighted By The Schema
`identified_by` items can be:
- `Name` structures, with required `type` and `content`, plus optional `_label`, `identified_by`, `referred_to_by`, `classified_as`, `language`, and `part`.
- `Identifier` structures, following the shared identifier pattern.
`equivalent` items are compact references:
- `id`: required.
- `type`: required.
- `_label`: optional.
- `equivalent`: optional nested equivalent references.
`representation` items are embedded `VisualItem` structures:
- `type`: required.
- `_label`, `identified_by`, `classified_as`, `referred_to_by`, and `digitally_shown_by` are allowed.
`subject_of` items are embedded `LinguisticObject` structures:
- `type`: required.
- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `language`, and `digitally_carried_by` are allowed.
`subject_to` items are `Right` structures:
- `type`: required.
- `_label`, `identified_by`, `classified_as`, `referred_to_by`, `created_by`, and `possessed_by` are allowed.
`conceptually_part_of` items are compact `PropositionalObject` references:
- `id`: required.
- `type`: required.
- `_label`: optional.
- `equivalent`: optional.
Creation Activity Shape
`created_by` describes the creation of the conceptual entity. The expanded schema allows normal activity fields:
- `type`
- `_label`
- `identified_by`
- `classified_as`
- `referred_to_by`
- `took_place_at`
- `timespan`
- `caused_by`
- `carried_out_by`
- `used_specific_object`
- `influenced_by`
- `technique`
- `during`
- `after`
- `before`
- `part_of`
`part_of` can reference an `Event` or `Activity` with required `id` and `type`, plus optional `_label` and `equivalent`.
Meta Museum Notes
Meta Museum's existing Abstract Works endpoint note already records the conceptual-work boundary. This expanded schema adds the concrete validation shape: top-level strictness, required `@context`/`id`/`type`/`_label`, and the allowed places for names, identifiers, external equivalents, visual representation, set membership, subject web pages, attribution evidence, rights, topics, parent abstract works, and creation activities.
The highest-value next code task is to add schema-backed validation fixtures for representative `PropositionalObject` records and assert that unknown top-level fields fail validation.
Test Ideas
- Validate a representative Abstract Work record against `abstract.json`.
- Assert `@context`, `id`, `type`, and `_label` are present.
- Assert unknown top-level properties fail schema validation.
- Preserve `created_by` activity fields including `timespan`, `carried_out_by`, `used_specific_object`, `technique`, and `part_of`.
- Preserve `conceptually_part_of` as compact `PropositionalObject` references with `id` and `type`.
- Preserve `subject_of` web-page evidence and `representation` image evidence without flattening them into display text.