Install Folio
bin/console folio:pull --dataset smith/cfchfolklife
Objects
obj
Link Types
| Forward | Reverse | Links |
|---|---|---|
|
per
created
obj
created
|
obj
created_by
per
created_by
|
8,139 |
|
coll
contains
obj
contains
|
obj
belongs_to
coll
belongs_to
|
4,676 |
Observed Schema
| Name | Core | Type | Rows |
|---|---|---|---|
| dto_audio | obj | audio | 6 |
| dto_coll_collection | coll | collection | 89 |
| dto_correspondence | obj | correspondence | 4 |
| dto_drawing | obj | drawing | 1 |
| dto_negative | obj | negative | 3 |
| dto_object | obj | object | 4,805 |
| dto_per_org | per | org | 2,261 |
| dto_per_person | per | person | 1,998 |
| dto_photograph | obj | photograph | 1 |
Archive Docs
Folio Metadata
json
{
"folio": {
"code": "smith/cfchfolklife",
"label": "CFCHFOLKLIFE",
"dataset_key": "smith/cfchfolklife",
"row_count": 9168
},
"cores": [
{
"code": "coll",
"label": null,
"row_count": 89
},
{
"code": "obj",
"label": null,
"row_count": 4820
},
{
"code": "per",
"label": null,
"row_count": 4259
}
],
"dtoTables": [
{
"id": "smith/cfchfolklife:dto_audio",
"name": "dto_audio",
"kind": "dto",
"core_code": "obj",
"dto_type": "audio",
"label": "Audio",
"description": "Sound recordings: oral histories, music, radio broadcasts, and field recordings.",
"row_count": 6
},
{
"id": "smith/cfchfolklife: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": 89
},
{
"id": "smith/cfchfolklife: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": "smith/cfchfolklife: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": 1
},
{
"id": "smith/cfchfolklife:dto_negative",
"name": "dto_negative",
"kind": "dto",
"core_code": "obj",
"dto_type": "negative",
"label": "Negative",
"description": null,
"row_count": 3
},
{
"id": "smith/cfchfolklife: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": 4805
},
{
"id": "smith/cfchfolklife:dto_per_org",
"name": "dto_per_org",
"kind": "dto",
"core_code": "per",
"dto_type": "org",
"label": "Org",
"description": "Concrete BaseItemDto for subjects whose content type is unknown or mixed.\nUse when no domain-specific DTO subclass applies.\n/",
"row_count": 2261
},
{
"id": "smith/cfchfolklife: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": 1998
},
{
"id": "smith/cfchfolklife:dto_photograph",
"name": "dto_photograph",
"kind": "dto",
"core_code": "obj",
"dto_type": "photograph",
"label": "Photograph",
"description": null,
"row_count": 1
}
],
"views": [
"dto_audio",
"dto_coll_collection",
"dto_correspondence",
"dto_drawing",
"dto_negative",
"dto_object",
"dto_per_org",
"dto_per_person",
"dto_photograph"
],
"generatedAt": "2026-06-29T18:02:11+00:00",
"metadata": {
"archivePreparedAt": "2026-06-29T18:02:11+00:00",
"schema": {
"tables": 12,
"properties": 82
},
"views": {
"views": 9
}
}
}
Overview
md
# Folio smith/cfchfolklife CFCHFOLKLIFE - Dataset key: `smith/cfchfolklife` - Rows: 9,168 - Cores: 3 - Observed DTO tables: 9 ## Cores | Core | Label | Rows | | --- | --- | ---: | | `coll` | coll | 89 | | `obj` | obj | 4,820 | | `per` | per | 4,259 |
Observed Schema
md
# Observed Schema ## `dto_audio` - Core: `obj` - DTO type: `audio` - Rows: 6 Sound recordings: oral histories, music, radio broadcasts, and field recordings. | Field | Type | Flags | Description | | --- | --- | --- | --- | | `id` | `?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 | | `rights` | `?string` | | dcterms:rights | | `creators` | `?array` | | dcterms:creator — array of names | | `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. | | `pageCount` | `?int` | sortable | Number of pages in the document. | | `source` | `string` | | Source of this data: import \| ai \| ocr \| human | | `hasTranscription` | `bool` | | | ## `dto_coll_collection` - Core: `coll` - DTO type: `collection` - Rows: 89 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` | | | | `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 | | `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` | | | | `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 | | `rights` | `?string` | | dcterms:rights | | `creators` | `?array` | | dcterms:creator — array of names | | `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. | | `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: 1 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` | | | | `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 | | `rights` | `?string` | | dcterms:rights | | `creators` | `?array` | | dcterms:creator — array of names | | `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. | | `pageCount` | `?int` | sortable | Number of pages in the document. | | `source` | `string` | | Source of this data: import \| ai \| ocr \| human | ## `dto_negative` - Core: `obj` - DTO type: `negative` - Rows: 3 | Field | Type | Flags | Description | | --- | --- | --- | --- | | `id` | `?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 | | `rights` | `?string` | | dcterms:rights | | `creators` | `?array` | | dcterms:creator — array of names | | `genreSpecific` | `?array` | filterable, facet | Genre specific terms (TGM) e.g. "Portrait photographs", "Architectural photographs". A facet. | | `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: 4,805 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` | | | | `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 | | `rights` | `?string` | | dcterms:rights | | `creators` | `?array` | | dcterms:creator — array of names | | `genreSpecific` | `?array` | filterable, facet | Specific genre/form terms (MODS genre @specific) — e.g. ["Albumen prints"]. A facet. | | `pageCount` | `?int` | sortable | Number of pages in the document. | | `source` | `string` | | Source of this data: import \| ai \| ocr \| human | | `cul` | `?array` | filterable, facet | MuseumVocab::CULTURE — cultural attribution, e.g. ['Mochica', 'Inca'] | | `accession` | `?string` | | MuseumVocab::ACCESSION — local accession / catalog number | | `year` | `?int` | filterable, facet, sortable | Coverage/production year. | ## `dto_per_org` - Core: `per` - DTO type: `org` - Rows: 2,261 Concrete BaseItemDto for subjects whose content type is unknown or mixed. Use when no domain-specific DTO subclass applies. / | Field | Type | Flags | Description | | --- | --- | --- | --- | | `id` | `?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 | | `pageCount` | `?int` | sortable | Number of pages in the document. | | `source` | `string` | | Source of this data: import \| ai \| ocr \| human | ## `dto_per_person` - Core: `per` - DTO type: `person` - Rows: 1,998 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 | | | `name` | `?string` | searchable, sortable | | | `source` | `string` | | | | `confidence` | `?float` | | | ## `dto_photograph` - Core: `obj` - DTO type: `photograph` - Rows: 1 | Field | Type | Flags | Description | | --- | --- | --- | --- | | `id` | `?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 | | `rights` | `?string` | | dcterms:rights | | `creators` | `?array` | | dcterms:creator — array of names | | `genreSpecific` | `?array` | filterable, facet | Genre specific terms (TGM) e.g. "Portrait photographs", "Architectural photographs". A facet. | | `pageCount` | `?int` | sortable | Number of pages in the document. | | `source` | `string` | | Source of this data: import \| ai \| ocr \| human |
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_audio limit 20; ``` ```sql select * from dto_coll_collection limit 20; ``` ```sql select * from dto_correspondence limit 20; ``` ```sql select * from dto_drawing limit 20; ``` ```sql select * from dto_negative limit 20; ``` ```sql select * from dto_object limit 20; ``` ```sql select * from dto_per_org limit 20; ``` ```sql select * from dto_per_person limit 20; ``` ```sql select * from dto_photograph limit 20; ```