GLAM Metadata Export¶
A Guide for Archivists, Librarians, and Collection Managers¶
What is GLAM Metadata Export?¶
The GLAM Metadata Export plugin allows you to export your archival descriptions to international metadata standards used by:
- Archives - EAD3, RIC-O
- Libraries - MARC21, BIBFRAME
- Museums - LIDO
- Visual Resources - VRA Core 4
- Media Collections - PBCore, EBUCore
- Digital Preservation - PREMIS
Export Formats at a Glance¶
| Format | Sector | Output | Best For |
|---|---|---|---|
| EAD3 | Archives | XML | Finding aids, ArchivesSpace, ArchivesHub |
| RIC-O | Archives | JSON-LD | Linked data, semantic web |
| LIDO | Museums | XML | Europeana, museum aggregators |
| MARC21 | Libraries | XML | Library catalogs (Koha, Alma) |
| BIBFRAME | Libraries | JSON-LD | Library of Congress linked data |
| VRA Core 4 | Visual | XML | Art/photography collections |
| PBCore | Media | XML | Public broadcasting, video archives |
| EBUCore | Media | XML | European broadcasters |
| PREMIS | Preservation | XML | Digital preservation systems |
Using the Web Interface¶
Single Record Export¶
┌──────────────────────────┐
│ View any record │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Click "Export" button │
│ (top right area) │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Select format: │
│ • EAD3 │
│ • RIC-O (JSON-LD) │
│ • LIDO │
│ • MARC21 │
│ • PREMIS │
│ • (more...) │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Configure options: │
│ ☑ Include children │
│ ☑ Include digital obj │
│ ☐ Include drafts │
└───────────┬──────────────┘
│
▼
┌──────────────────────────┐
│ Download file │
└──────────────────────────┘
Steps¶
- Navigate to any archival description
- Look for the Export dropdown or button
- Select your desired format
- Configure export options
- Click Export or Download
Using the Command Line¶
The CLI is ideal for bulk exports and automation.
Basic Commands¶
# List all available formats
php symfony metadata:export --list
# Export single record to EAD3
php symfony metadata:export --format=ead3 --slug=my-fonds
# Export to all formats at once
php symfony metadata:export --format=all --slug=my-fonds --output=/exports/
Export Options¶
| Option | Description |
|---|---|
--format=FORMAT |
Export format (ead3, rico, lido, marc21, etc.) |
--slug=SLUG |
Record slug to export |
--repository=ID |
Export all records from a repository |
--output=PATH |
Output directory (default: /tmp) |
--include-children |
Include child records |
--include-digital-objects |
Include digital object metadata |
--include-drafts |
Include unpublished records |
Examples¶
Export a finding aid to EAD3:
Export entire repository to RIC-O linked data:
Export museum objects to LIDO:
php symfony metadata:export --format=lido --repository=3 --include-digital-objects --output=/exports/lido/
Export all formats for a record:
Understanding the Formats¶
For Archives¶
EAD3 (Encoded Archival Description 3)¶
The latest version of the standard finding aid format.
<ead xmlns="http://ead3.archivists.org/schema/">
<control>
<recordid>F001</recordid>
</control>
<archdesc level="fonds">
<did>
<unittitle>Smith Papers</unittitle>
<unitdate>1920-1950</unitdate>
</did>
<scopecontent>
<p>Personal papers of John Smith...</p>
</scopecontent>
</archdesc>
</ead>
Use for: ArchivesSpace, ArchivesHub, Library of Congress
RIC-O (Records in Contexts - Ontology)¶
Linked data format from the International Council on Archives.
{
"@context": "https://www.ica.org/standards/RiC/ontology#",
"@type": "rico:RecordSet",
"rico:identifier": "F001",
"rico:title": "Smith Papers",
"rico:hasOrHadCreator": {
"@type": "rico:Person",
"rico:name": "John Smith"
}
}
Use for: Semantic web, linked data publishing, knowledge graphs
For Libraries¶
MARC21¶
Standard library catalog format.
<record>
<leader>00000npc a2200000 u 4500</leader>
<controlfield tag="001">F001</controlfield>
<datafield tag="245" ind1="1" ind2="0">
<subfield code="a">Smith Papers</subfield>
</datafield>
<datafield tag="520">
<subfield code="a">Personal papers of John Smith...</subfield>
</datafield>
</record>
Use for: Koha, Evergreen, Alma, WorldCat
BIBFRAME¶
Library of Congress linked data format.
{
"@context": "http://id.loc.gov/ontologies/bibframe/",
"@type": "bf:Work",
"bf:title": {
"@type": "bf:Title",
"bf:mainTitle": "Smith Papers"
}
}
Use for: Library linked data, id.loc.gov
For Museums¶
LIDO (Lightweight Information Describing Objects)¶
Standard for museum object metadata.
<lido:lido>
<lido:lidoRecID>OBJ-001</lido:lidoRecID>
<lido:descriptiveMetadata>
<lido:objectIdentificationWrap>
<lido:titleWrap>
<lido:titleSet>
<lido:appellationValue>Portrait of a Lady</lido:appellationValue>
</lido:titleSet>
</lido:titleWrap>
</lido:objectIdentificationWrap>
</lido:descriptiveMetadata>
</lido:lido>
Use for: Europeana, museum aggregators, CollectiveAccess
For Visual Resources¶
VRA Core 4¶
Visual Resources Association standard.
<vra:vra>
<vra:work>
<vra:titleSet>
<vra:title>Photograph of Main Street</vra:title>
</vra:titleSet>
<vra:dateSet>
<vra:date type="creation">1945</vra:date>
</vra:dateSet>
</vra:work>
<vra:image>
<vra:measurementsSet>
<vra:measurements>1024x768 pixels</vra:measurements>
</vra:measurementsSet>
</vra:image>
</vra:vra>
Use for: Art libraries, image repositories
For Media Collections¶
PBCore (Public Broadcasting Core)¶
Metadata for audiovisual content.
<pbcoreDescriptionDocument>
<pbcoreIdentifier>VID-001</pbcoreIdentifier>
<pbcoreTitle>Interview with John Smith</pbcoreTitle>
<pbcoreDescription>Oral history interview...</pbcoreDescription>
</pbcoreDescriptionDocument>
Use for: PBS, public broadcasters, video archives
EBUCore¶
European Broadcasting Union standard.
Use for: European broadcasters, media archives
For Digital Preservation¶
PREMIS¶
Preservation Metadata Implementation Strategies.
<premis:premis>
<premis:object xsi:type="premis:file">
<premis:objectIdentifier>
<premis:objectIdentifierType>local</premis:objectIdentifierType>
<premis:objectIdentifierValue>DO-001</premis:objectIdentifierValue>
</premis:objectIdentifier>
<premis:objectCharacteristics>
<premis:format>
<premis:formatDesignation>
<premis:formatName>image/tiff</premis:formatName>
</premis:formatDesignation>
</premis:format>
</premis:objectCharacteristics>
</premis:object>
<premis:event>
<premis:eventType>ingestion</premis:eventType>
</premis:event>
</premis:premis>
Use for: Archivematica, Preservica, Rosetta, digital preservation workflows
DOI Integration¶
What is a DOI?¶
A Digital Object Identifier (DOI) is a persistent identifier used to uniquely identify digital objects. DOIs are widely used in academic publishing and increasingly in cultural heritage to provide permanent, citable links to archival records.
Example DOI: 10.12345/archive.2025.001
Resolves to: https://doi.org/10.12345/archive.2025.001
DOI in Exports¶
When you export records, any existing DOIs are automatically included in the appropriate metadata element for each format:
| Format | DOI Location in Export |
|---|---|
| EAD3 | <otherrecordid localtype="doi"> |
| RIC-O | rico:Identifier with type DOI |
| LIDO | <objectPublishedID lido:type="doi"> |
| MARC21 | Field 024 with $2=doi |
| BIBFRAME | bf:identifiedBy → bf:Doi |
| VRA Core | <refid type="doi"> |
| PBCore | <pbcoreIdentifier source="DOI"> |
| EBUCore | <identifier typeLabel="DOI"> |
| PREMIS | <objectIdentifierType>DOI |
Example: DOI in EAD3¶
<ead xmlns="http://ead3.archivists.org/schema/">
<control>
<recordid>F001</recordid>
<otherrecordid localtype="doi">10.12345/archive.2025.001</otherrecordid>
</control>
<!-- ... -->
</ead>
Example: DOI in RIC-O¶
{
"@type": "rico:RecordSet",
"rico:identifier": [
{
"@type": "rico:Identifier",
"rico:textualValue": "F001"
},
{
"@type": "rico:Identifier",
"rico:identifierType": "DOI",
"rico:textualValue": "10.12345/archive.2025.001"
}
],
"owl:sameAs": {"@id": "https://doi.org/10.12345/archive.2025.001"}
}
Example: DOI in MARC21¶
<datafield tag="024" ind1="7" ind2=" ">
<subfield code="a">10.12345/archive.2025.001</subfield>
<subfield code="2">doi</subfield>
</datafield>
DOI Export Options¶
| Option | Description |
|---|---|
--include-doi |
Include DOI in export (default: yes) |
--mint-doi |
Mint new DOI for records without one |
--doi-state=STATE |
State for new DOIs: draft, registered, findable |
--skip-no-doi |
Only export records that have DOIs |
CLI Examples with DOI¶
Export records with existing DOIs:
Export only records that have DOIs:
Mint DOIs during export (requires ahgDoiPlugin):
Benefits of DOI in Exports¶
- Persistent citation - Recipients can cite your records with a permanent link
- Interoperability - DOIs are recognized by academic databases and discovery systems
- Linked data - DOIs provide a stable URI for semantic web applications
- Tracking - DataCite provides usage statistics for your DOIs
Requirements¶
- DOIs are managed via the ahgDoiPlugin (DOI Management module)
- DOI minting requires DataCite credentials configured in Admin > DOI Settings
- Existing DOIs are included automatically; no configuration needed
Scheduling Automated Exports¶
Cron Job Examples¶
Set up regular exports for data synchronization:
Weekly EAD3 export (Sundays at 2am):
0 2 * * 0 cd /usr/share/nginx/archive && php symfony metadata:export --format=ead3 --repository=5 --output=/exports/ead3 >> /var/log/atom/ead3-export.log 2>&1
Daily PREMIS export for preservation (4am):
0 4 * * * cd /usr/share/nginx/archive && php symfony metadata:export --format=premis --output=/exports/premis >> /var/log/atom/premis-export.log 2>&1
Monthly all-format export (1st of month, 3am):
0 3 1 * * cd /usr/share/nginx/archive && php symfony metadata:export --format=all --repository=5 --output=/exports/monthly >> /var/log/atom/monthly-export.log 2>&1
Tips for Successful Exports¶
Before Exporting¶
- Know what format your recipient needs
- Check if they need hierarchical (children) data
- Verify access permissions on records
- Test with a single record first
For Archives (EAD3, RIC-O)¶
- EAD3 is best for traditional finding aid systems
- RIC-O is best for linked data / semantic web projects
- Include children for complete hierarchies
For Libraries (MARC21, BIBFRAME)¶
- MARC21 for traditional ILS systems
- BIBFRAME for modern linked data catalogs
- Check field mappings match your catalog's needs
For Museums (LIDO)¶
- Include digital objects for image metadata
- LIDO is required for Europeana submission
- Check object type mappings
For Preservation (PREMIS)¶
- Include digital objects for full preservation metadata
- PREMIS captures fixity, events, and rights
- Essential for AIP/SIP package creation
Troubleshooting¶
| Problem | Solution |
|---|---|
| Export is empty | Check the slug/repository ID is correct |
| Missing fields | Some fields may not map to the target format |
| File won't validate | Check the exported XML with an online validator |
| JSON-LD won't parse | Verify UTF-8 encoding |
| Export too slow | Use smaller batches or schedule overnight |
| Permission denied | Check output directory is writable |
Finding System Info¶
View available export formats and plugin status:
- Go to Admin > AHG Settings > System Info
- Scroll to GLAM Metadata Export Formats section
- View all 9 formats with status indicators
View cron job examples:
- Go to Admin > AHG Settings > Cron Jobs
- Scroll to Metadata Export section
- Copy example commands for scheduling
For technical support, contact your system administrator or The Archive and Heritage Group.