Install Folio

bin/console folio:pull --dataset mus/walters

Link Types

Forward Reverse Links
obj was created by per
createdBy
per created obj
created
26,267
obj is in collection coll
inCollection
coll contains obj
contains
26,293

Observed Schema

Name Core Type Rows
dto_book obj book 192
dto_coll_collection coll collection 23
dto_correspondence obj correspondence 4
dto_document obj document 1
dto_drawing obj drawing 2,484
dto_manuscript obj manuscript 120
dto_map obj map 250
dto_object obj object 16,140
dto_painting obj painting 300
dto_per_person per person 4,059
dto_photograph obj photograph 2
dto_print obj print 578
dto_sculpture obj sculpture 1,805

Archive Docs

Folio Metadata json
{
    "folio": {
        "code": "mus/walters",
        "label": "The Walters Art Museum",
        "dataset_key": "mus/walters",
        "row_count": 25958
    },
    "cores": [
        {
            "code": "coll",
            "label": null,
            "row_count": 23
        },
        {
            "code": "obj",
            "label": null,
            "row_count": 21876
        },
        {
            "code": "per",
            "label": null,
            "row_count": 4059
        }
    ],
    "dtoTables": [
        {
            "id": "mus/walters:dto_book",
            "name": "dto_book",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "book",
            "label": "Book",
            "description": "Bound volumes: monographs, pamphlets, albums, and catalogues.",
            "row_count": 192
        },
        {
            "id": "mus/walters:dto_coll_collection",
            "name": "dto_coll_collection",
            "kind": "dto",
            "core_code": "coll",
            "dto_type": "collection",
            "label": "Collection",
            "description": "A collection / series \u2014 an aggregation of items rather than a single object.\nTwo producers: the \"folio of folios\" (each row is a whole folio) and aggregators like the\nSmithsonian that expose collections and series alongside objects. Unlike a generic item, a\ncollection is browsed by its dataset-level descriptors \u2014 provider, country, language, size \u2014\nso those are promoted to facets here. `subjects` (a parent facet) carries the dtoType mix.\n/",
            "row_count": 23
        },
        {
            "id": "mus/walters:dto_correspondence",
            "name": "dto_correspondence",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "correspondence",
            "label": "Correspondence",
            "description": "Letters, telegrams, memos, and other written communications between identified parties.",
            "row_count": 4
        },
        {
            "id": "mus/walters:dto_document",
            "name": "dto_document",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "document",
            "label": "Document",
            "description": "Generic text-primary item: broadsides, lists, clippings, forms, and any textual work that does not fit a more specific type.",
            "row_count": 1
        },
        {
            "id": "mus/walters:dto_drawing",
            "name": "dto_drawing",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "drawing",
            "label": "Drawing",
            "description": "DTO for drawn works: pencil, ink, charcoal, watercolour, pastel, etc.\nCovers any work where drawing is the primary medium.\nSubclass for more specific drawn types (CartoonDto, SketchDto, etc.)\n/",
            "row_count": 2484
        },
        {
            "id": "mus/walters:dto_manuscript",
            "name": "dto_manuscript",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "manuscript",
            "label": "Manuscript",
            "description": "Handwritten or typed manuscripts: diaries, journals, ledgers, legal documents, and field notes.",
            "row_count": 120
        },
        {
            "id": "mus/walters:dto_map",
            "name": "dto_map",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "map",
            "label": "Map",
            "description": null,
            "row_count": 250
        },
        {
            "id": "mus/walters:dto_object",
            "name": "dto_object",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "object",
            "label": "Artifact",
            "description": "Three-dimensional physical objects and artifacts that do not fit a more specific type: tools, vessels, garments, specimens, etc.",
            "row_count": 16140
        },
        {
            "id": "mus/walters:dto_painting",
            "name": "dto_painting",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "painting",
            "label": "Painting",
            "description": "A painting \u2014 oil, tempera, acrylic, watercolour, fresco, etc., where paint is the primary medium.\nAn ArtworkDto (style/movement) over PhysicalObjectDto's material/dimensions/weight.\n/",
            "row_count": 300
        },
        {
            "id": "mus/walters:dto_per_person",
            "name": "dto_per_person",
            "kind": "dto",
            "core_code": "per",
            "dto_type": "person",
            "label": "Person",
            "description": "People associated with collection records: creators, contributors, subjects, interviewees, performers, and other named agents.",
            "row_count": 4059
        },
        {
            "id": "mus/walters:dto_photograph",
            "name": "dto_photograph",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "photograph",
            "label": "Photograph",
            "description": null,
            "row_count": 2
        },
        {
            "id": "mus/walters:dto_print",
            "name": "dto_print",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "print",
            "label": "Print",
            "description": "DTO for drawn works: pencil, ink, charcoal, watercolour, pastel, etc.\nCovers any work where drawing is the primary medium.\nSubclass for more specific drawn types (CartoonDto, SketchDto, etc.)\n/",
            "row_count": 578
        },
        {
            "id": "mus/walters:dto_sculpture",
            "name": "dto_sculpture",
            "kind": "dto",
            "core_code": "obj",
            "dto_type": "sculpture",
            "label": "Sculpture",
            "description": "A sculpture \u2014 a three-dimensional physical artwork (statue, bust, relief, statuette, \u2026).\nAn artwork (style/movement via ArtworkDto) with the structured material / dimensions / weight\nrecords from PhysicalObjectDto. Promoted from generic ArtifactDto so sculptures are categorized\nand facetable; sculpture-specific fields (cast/edition, foundry, patina) can be added as needed.\n/",
            "row_count": 1805
        }
    ],
    "views": [
        "dto_book",
        "dto_coll_collection",
        "dto_correspondence",
        "dto_document",
        "dto_drawing",
        "dto_manuscript",
        "dto_map",
        "dto_object",
        "dto_painting",
        "dto_per_person",
        "dto_photograph",
        "dto_print",
        "dto_sculpture"
    ],
    "generatedAt": "2026-06-30T14:28:06+00:00",
    "metadata": {
        "archivePreparedAt": "2026-06-30T14:28:05+00:00",
        "schema": {
            "tables": 16,
            "properties": 277
        },
        "views": {
            "views": 13
        }
    }
}
Overview md
# Folio mus/walters

The Walters Art Museum

- Dataset key: `mus/walters`
- Rows: 25,958
- Cores: 3
- Observed DTO tables: 13

## Cores

| Core | Label | Rows |
| --- | --- | ---: |
| `coll` | coll | 23 |
| `obj` | obj | 21,876 |
| `per` | per | 4,059 |
Observed Schema md
# Observed Schema

## `dto_book`

- Core: `obj`
- DTO type: `book`
- Rows: 192

Bound volumes: monographs, pamphlets, albums, and catalogues.

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `hasTranscription` | `bool` | filterable, facet |  |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |

## `dto_coll_collection`

- Core: `coll`
- DTO type: `collection`
- Rows: 23

A collection / series — an aggregation of items rather than a single object.
Two producers: the "folio of folios" (each row is a whole folio) and aggregators like the
Smithsonian that expose collections and series alongside objects. Unlike a generic item, a
collection is browsed by its dataset-level descriptors — provider, country, language, size —
so those are promoted to facets here. `subjects` (a parent facet) carries the dtoType mix.
/

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `language` | `?string` | filterable, facet |  |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |

## `dto_correspondence`

- Core: `obj`
- DTO type: `correspondence`
- Rows: 4

Letters, telegrams, memos, and other written communications between identified parties.

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `hasTranscription` | `bool` |  |  |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |

## `dto_document`

- Core: `obj`
- DTO type: `document`
- Rows: 1

Generic text-primary item: broadsides, lists, clippings, forms, and any textual work that does not fit a more specific type.

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `hasTranscription` | `bool` |  |  |

## `dto_drawing`

- Core: `obj`
- DTO type: `drawing`
- Rows: 2,484

DTO for drawn works: pencil, ink, charcoal, watercolour, pastel, etc.
Covers any work where drawing is the primary medium.
Subclass for more specific drawn types (CartoonDto, SketchDto, etc.)
/

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `dimensions` | `?array` |  | MuseumVocab::DIMENSIONS — structured dimension records. Each entry: {height?, width?, length?, depth?, radius?, units, name?} where height/width/length/depth/radius are numeric values in `units` (e.g. "cm", "in", "mm"). `name` is an optional label like "framed", "sight", "with mount", etc. Producers should emit only the keys present on the source record. / |
| `dimensionsRaw` | `?string` |  | Original free-text dimensions string from the source, kept as a fallback when the normalizer cannot fully parse it (e.g. fractional inches, museum-specific shorthand). Templates may render this verbatim when `$dimensions` is empty. / |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `style` | `?string` | filterable, facet | Artistic style. |

## `dto_manuscript`

- Core: `obj`
- DTO type: `manuscript`
- Rows: 120

Handwritten or typed manuscripts: diaries, journals, ledgers, legal documents, and field notes.

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `hasTranscription` | `bool` |  |  |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |

## `dto_map`

- Core: `obj`
- DTO type: `map`
- Rows: 250

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |

## `dto_object`

- Core: `obj`
- DTO type: `object`
- Rows: 16,140

Three-dimensional physical objects and artifacts that do not fit a more specific type: tools, vessels, garments, specimens, etc.

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `dimensionsRaw` | `?string` |  | Original free-text dimensions string from the source, kept as a fallback when the normalizer cannot fully parse it (e.g. fractional inches, museum-specific shorthand). Templates may render this verbatim when `$dimensions` is empty. / |
| `dimensions` | `?array` |  | MuseumVocab::DIMENSIONS — structured dimension records. Each entry: {height?, width?, length?, depth?, radius?, units, name?} where height/width/length/depth/radius are numeric values in `units` (e.g. "cm", "in", "mm"). `name` is an optional label like "framed", "sight", "with mount", etc. Producers should emit only the keys present on the source record. / |

## `dto_painting`

- Core: `obj`
- DTO type: `painting`
- Rows: 300

A painting — oil, tempera, acrylic, watercolour, fresco, etc., where paint is the primary medium.
An ArtworkDto (style/movement) over PhysicalObjectDto's material/dimensions/weight.
/

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `dimensions` | `?array` |  | MuseumVocab::DIMENSIONS — structured dimension records. Each entry: {height?, width?, length?, depth?, radius?, units, name?} where height/width/length/depth/radius are numeric values in `units` (e.g. "cm", "in", "mm"). `name` is an optional label like "framed", "sight", "with mount", etc. Producers should emit only the keys present on the source record. / |
| `dimensionsRaw` | `?string` |  | Original free-text dimensions string from the source, kept as a fallback when the normalizer cannot fully parse it (e.g. fractional inches, museum-specific shorthand). Templates may render this verbatim when `$dimensions` is empty. / |
| `style` | `?string` | filterable, facet | Artistic style. |

## `dto_per_person`

- Core: `per`
- DTO type: `person`
- Rows: 4,059

People associated with collection records: creators, contributors, subjects, interviewees, performers, and other named agents.

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` | searchable, sortable |  |
| `contentType` | `?string` | filterable, facet |  |
| `sourceUrl` | `?string` |  |  |
| `language` | `?string` | filterable, facet |  |
| `name` | `?string` | searchable, sortable |  |
| `sortName` | `?string` | searchable, sortable |  |
| `description` | `?string` | searchable |  |
| `nationality` | `?string` | searchable, filterable, facet |  |
| `source` | `string` |  |  |
| `confidence` | `?float` |  |  |
| `gender` | `?string` | filterable, facet |  |

## `dto_photograph`

- Core: `obj`
- DTO type: `photograph`
- Rows: 2

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Genre specific terms (TGM) e.g. "Portrait photographs", "Architectural photographs". A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |

## `dto_print`

- Core: `obj`
- DTO type: `print`
- Rows: 578

DTO for drawn works: pencil, ink, charcoal, watercolour, pastel, etc.
Covers any work where drawing is the primary medium.
Subclass for more specific drawn types (CartoonDto, SketchDto, etc.)
/

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `dimensions` | `?array` |  | MuseumVocab::DIMENSIONS — structured dimension records. Each entry: {height?, width?, length?, depth?, radius?, units, name?} where height/width/length/depth/radius are numeric values in `units` (e.g. "cm", "in", "mm"). `name` is an optional label like "framed", "sight", "with mount", etc. Producers should emit only the keys present on the source record. / |
| `dimensionsRaw` | `?string` |  | Original free-text dimensions string from the source, kept as a fallback when the normalizer cannot fully parse it (e.g. fractional inches, museum-specific shorthand). Templates may render this verbatim when `$dimensions` is empty. / |
| `style` | `?string` | filterable, facet | Artistic style. |

## `dto_sculpture`

- Core: `obj`
- DTO type: `sculpture`
- Rows: 1,805

A sculpture — a three-dimensional physical artwork (statue, bust, relief, statuette, …).
An artwork (style/movement via ArtworkDto) with the structured material / dimensions / weight
records from PhysicalObjectDto. Promoted from generic ArtifactDto so sculptures are categorized
and facetable; sculpture-specific fields (cast/edition, foundry, patina) can be added as needed.
/

| Field | Type | Flags | Description |
| --- | --- | --- | --- |
| `id` | `?string` |  |  |
| `sourceUrl` | `?string` |  |  |
| `contentType` | `?string` |  |  |
| `stage` | `?string` | filterable, facet | Pipeline processing stage (raw / normalized / enriched). A facet so you can filter to enriched items; later this can be made dev-only. |
| `title` | `?string` |  | dcterms:title |
| `description` | `?string` |  | dcterms:description — short curatorial text from the source institution |
| `provenance` | `?string` |  | Ownership history (museum provenance line, e.g. Walters' "provenance" extra). Free text. |
| `date` | `?string` |  | dcterms:date — display string, may be fuzzy ("ca. 1920") |
| `citationUrl` | `?string` |  | ItemField::CITATION_URL — deep link back to the source record (e.g. the NARA catalog page). Rendered as the "Original" link on the folio item page. |
| `rightsUri` | `?string` |  | dcterms:license URI (rightsstatements.org) |
| `language` | `?string` |  | dcterms:language |
| `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. |
| `iiifBase` | `?string` |  | IIIF Image API base URL — use for AI vision and imgProxy resizing |
| `thumbnailUrl` | `?string` |  |  |
| `largeImageUrl` | `?string` |  |  |
| `imageCount` | `?int` | filterable, facet, sortable | Number of images associated with the item. |
| `pageCount` | `?int` | sortable | Number of pages in the document. |
| `source` | `string` |  | Source of this data: import \| ai \| ocr \| human |
| `dimensions` | `?array` |  | MuseumVocab::DIMENSIONS — structured dimension records. Each entry: {height?, width?, length?, depth?, radius?, units, name?} where height/width/length/depth/radius are numeric values in `units` (e.g. "cm", "in", "mm"). `name` is an optional label like "framed", "sight", "with mount", etc. Producers should emit only the keys present on the source record. / |
| `dimensionsRaw` | `?string` |  | Original free-text dimensions string from the source, kept as a fallback when the normalizer cannot fully parse it (e.g. fractional inches, museum-specific shorthand). Templates may render this verbatim when `$dimensions` is empty. / |
| `style` | `?string` | filterable, facet | Artistic style. |
Query Guide md
# Query Guide

This folio stores canonical rows in `item` and observed field metadata in `schema_table` / `schema_property`.

```sql
select * from schema_table where kind = 'dto';
select * from schema_property where table_id = ? order by position;
select local_id, label, dto_type, dto_data, extras from item limit 20;
```

Convenience views are generated from observed DTO fields:

```sql
select * from dto_book limit 20;
```

```sql
select * from dto_coll_collection limit 20;
```

```sql
select * from dto_correspondence limit 20;
```

```sql
select * from dto_document limit 20;
```

```sql
select * from dto_drawing limit 20;
```

```sql
select * from dto_manuscript limit 20;
```

```sql
select * from dto_map limit 20;
```

```sql
select * from dto_object limit 20;
```

```sql
select * from dto_painting limit 20;
```

```sql
select * from dto_per_person limit 20;
```

```sql
select * from dto_photograph limit 20;
```

```sql
select * from dto_print limit 20;
```

```sql
select * from dto_sculpture limit 20;
```