Install Folio
bin/console folio:pull --dataset fpeu/poland
Link Types
| Forward | Reverse | Links |
|---|---|---|
| No link types loaded. | ||
Observed Schema
| Name | Core | Type | Rows |
|---|---|---|---|
| dto_photograph | obj | photograph | 9,029 |
Archive Docs
Folio Metadata
json
{
"folio": {
"code": "fpeu/poland",
"label": "Fortepan Fotofestiwal Poland",
"dataset_key": "fpeu/poland",
"row_count": 9029
},
"cores": [
{
"code": "obj",
"label": null,
"row_count": 9029
}
],
"dtoTables": [
{
"id": "fpeu/poland:dto_photograph",
"name": "dto_photograph",
"kind": "dto",
"core_code": "obj",
"dto_type": "photograph",
"label": "Photograph",
"description": null,
"row_count": 9029
}
],
"views": [
"dto_photograph"
],
"generatedAt": "2026-07-01T16:48:52+00:00",
"metadata": {
"archivePreparedAt": "2026-07-01T16:48:52+00:00",
"schema": {
"tables": 2,
"properties": 17
},
"views": {
"views": 1
}
}
}
Overview
md
# Folio fpeu/poland Fortepan Fotofestiwal Poland - Dataset key: `fpeu/poland` - Rows: 9,029 - Cores: 1 - Observed DTO tables: 1 ## Cores | Core | Label | Rows | | --- | --- | ---: | | `obj` | obj | 9,029 |
Observed Schema
md
# Observed Schema ## `dto_photograph` - Core: `obj` - DTO type: `photograph` - Rows: 9,029 | Field | Type | Flags | Description | | --- | --- | --- | --- | | `id` | `?string` | | | | `sourceUrl` | `?string` | | | | `contentType` | `?string` | | | | `aggregator` | `?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. | | `description` | `?string` | | dcterms:description — short curatorial text from the source institution | | `credit` | `?string` | | Credit line / acknowledgment, e.g. "Gift of the Brooklyn Museum of Art, Paul F. Walter Collection". | | `sourceCaption` | `?string` | | The source's own caption text, VERBATIM — never an AI summary. Some image sources (e.g. Fortepan) ship only a short caption; keep it on its own field so the UI shows it as the real "Source caption" instead of mislabelling the AI-filled `description` / `denseSummary`. / | | `year` | `?int` | filterable, facet, sortable | Coverage/production year. | | `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` | filterable, facet | dcterms:license URI (rightsstatements.org). Also a facet: some sources (e.g. Cleveland) carry the rights value as a short licence code here rather than a URI (CC0 / Copyrighted), and that splits a collection cleanly. NOTE: if a subclass DTO redeclares this property, repeat #[Field] — PHP attributes are not inherited on a redeclared property. / | | `country` | `?string` | filterable, facet | | | `city` | `?string` | filterable, facet | | | `iiifBase` | `?string` | | IIIF Image API base URL — use for AI vision and imgProxy resizing | | `largeImageUrl` | `?string` | | | | `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_photograph limit 20; ```