# GHCID Ontology Integration Guide
**Version**: 1.0
**Date**: 2025-11-06
**Schema Version**: v0.2.0 (modular)
---
## Table of Contents
1. [Introduction](#introduction)
2. [Ontology Landscape](#ontology-landscape)
3. [CIDOC-CRM Integration](#cidoc-crm-integration)
4. [RiC-O Integration](#ric-o-integration)
5. [Schema.org Integration](#schemaorg-integration)
6. [EU Core Public Organization Vocabulary (CPOV)](#eu-core-public-organization-vocabulary-cpov)
7. [Dutch TOOI Ontology](#dutch-tooi-ontology)
8. [W3C Organization Ontology](#w3c-organization-ontology)
9. [PROV-O Integration](#prov-o-integration)
10. [Comprehensive Mapping Table](#comprehensive-mapping-table)
11. [RDF Serialization Examples](#rdf-serialization-examples)
12. [Gap Analysis](#gap-analysis)
13. [Implementation Recommendations](#implementation-recommendations)
---
## Introduction
### Purpose
This document provides a comprehensive guide to integrating the **Global Heritage Custodian Identifier (GHCID)** schema with established heritage, archival, and organizational ontologies. The GHCID schema is designed to be **interoperable** with existing Linked Data standards while providing unique capabilities for persistent identification and change tracking across heritage institutions worldwide.
### Scope
The GHCID project integrates with **seven major ontologies**:
1. **CIDOC Conceptual Reference Model (CIDOC-CRM) v7.1.3** - Museum and cultural heritage domain
2. **Records in Contexts Ontology (RiC-O) v1.1** - International archival standard
3. **Schema.org** - Web discoverability and SEO
4. **EU Core Public Organization Vocabulary (CPOV)** - European public sector organizations
5. **Dutch TOOI Ontology** - Netherlands government organizations
6. **W3C Organization Ontology (ORG)** - Generic organizational structures
7. **W3C PROV Ontology (PROV-O)** - Provenance and data lineage
### Integration Philosophy
The GHCID schema follows these principles:
- **Alignment over Replacement**: Map GHCID concepts to ontology equivalents using `owl:equivalentClass` and `rdfs:subClassOf`
- **Selective Extension**: Add GHCID-specific capabilities (persistent IDs, change history) as extensions
- **Multi-Ontology Compatibility**: Support multiple ontologies simultaneously (e.g., a museum can be both `cidoc:E74_Group` and `schema:Museum`)
- **Namespace Preservation**: Preserve original ontology namespaces in RDF serialization
- **Practical Interoperability**: Focus on real-world use cases (data exchange, aggregation, discovery)
---
## Ontology Landscape
### File Locations
All ontology files are stored in `/data/ontology/`:
```
data/ontology/
├── CIDOC_CRM_v7.1.3.rdf # CIDOC-CRM OWL/RDF (948 lines)
├── RiC-O_1-1.rdf # RiC-O OWL/RDF (16,795 lines)
├── schemaorg.owl # Schema.org OWL (2.7 MB)
├── core-public-organisation-ap.ttl # CPOV Turtle (600+ lines)
├── tooiont.ttl # TOOI Turtle (Dutch gov)
├── org.ttl # W3C ORG Ontology
└── prov-o.ttl # W3C PROV-O
```
### Namespace Prefixes
```turtle
@prefix ghcid: .
@prefix cidoc: .
@prefix rico: .
@prefix schema: .
@prefix cpov: .
@prefix tooi: .
@prefix org: .
@prefix prov: .
@prefix owl: .
@prefix rdfs: .
@prefix skos: .
```
---
## CIDOC-CRM Integration
### Overview
**CIDOC Conceptual Reference Model (CIDOC-CRM)** is the **ISO 21127:2014** standard for cultural heritage information. It provides a formal ontology for museum documentation, collection management, and heritage data integration.
**Specification**: `data/ontology/CIDOC_CRM_v7.1.3.rdf`
**Namespace**: `http://www.cidoc-crm.org/cidoc-crm/`
**Relevance**: Essential for museums, galleries, and cultural heritage institutions.
### Key CIDOC-CRM Classes
| CIDOC-CRM Class | Description | GHCID Mapping |
|-----------------|-------------|---------------|
| `E39_Actor` | Agents (people or groups) capable of actions | `HeritageCustodian` (superclass) |
| `E74_Group` | Organized collectives with identity | `HeritageCustodian` (primary mapping) |
| `E5_Event` | Changes of state in physical/conceptual items | `ChangeEvent` |
| `E78_Curated_Holding` | Collections assembled and managed | `Collection` |
| `E53_Place` | Geographic locations | `Location` |
| `E42_Identifier` | Identifiers assigned to entities | `Identifier` |
### Class Alignments
#### HeritageCustodian → E74_Group
```turtle
ghcid:HeritageCustodian
rdfs:subClassOf cidoc:E74_Group ;
owl:equivalentClass cidoc:E74_Group ;
rdfs:label "Heritage Custodian Organization"@en ;
rdfs:comment "A heritage institution (museum, library, archive, etc.) that holds and manages cultural heritage collections. Modeled as a CIDOC-CRM Group (E74) to enable integration with museum documentation standards."@en .
```
**Rationale**:
- `E74_Group` represents organizations with collective identity and purpose
- `E74` is subclass of `E39_Actor`, enabling participation in events (E5)
- Museums, libraries, and archives fit the definition of "social entities" in CIDOC-CRM
#### ChangeEvent → E5_Event
```turtle
ghcid:ChangeEvent
rdfs:subClassOf cidoc:E5_Event ;
rdfs:label "Organizational Change Event"@en ;
rdfs:comment "Significant organizational changes (mergers, relocations, closures, etc.) modeled as CIDOC-CRM Events (E5) to track temporal evolution of heritage institutions."@en .
```
**Properties**:
- `cidoc:P4_has_time-span` → `ChangeEvent.event_date`
- `cidoc:P14_carried_out_by` → Participating organizations
- `cidoc:P16_used_specific_object` → Affected organizations
#### Collection → E78_Curated_Holding
```turtle
ghcid:Collection
rdfs:subClassOf cidoc:E78_Curated_Holding ;
rdfs:label "Heritage Collection"@en .
```
### Property Mappings
| GHCID Property | CIDOC-CRM Property | Range |
|----------------|-------------------|-------|
| `name` | `P1_is_identified_by` + `E41_Appellation` | String |
| `description` | `P3_has_note` | String |
| `locations` | `P74_has_current_or_former_residence` | `E53_Place` |
| `identifiers` | `P1_is_identified_by` | `E42_Identifier` |
| `change_history` | `P11i_participated_in` | `E5_Event` |
### CIDOC-CRM Benefits
1. **ISO Standard Compliance**: Enables interoperability with museum sector systems
2. **Event Modeling**: Rich temporal modeling for organizational changes
3. **Collection Integration**: Direct mapping to collection management standards
4. **Property Graph**: Detailed relationship tracking via CIDOC properties
5. **Time-Span Support**: Better temporal granularity than ISO 8601 dates
### Limitations
- **Complexity**: CIDOC-CRM's 90+ classes can be overwhelming
- **Museum-Centric**: Less tailored for libraries and archives (use RiC-O for those)
- **Learning Curve**: Requires expertise in cultural heritage documentation
---
## RiC-O Integration
### Overview
**Records in Contexts Ontology (RiC-O)** is the official ontology of the **International Council on Archives (ICA)**. It replaces older archival standards (ISAD(G), ISAAR(CPF)) with a modern Linked Data approach.
**Specification**: `data/ontology/RiC-O_1-1.rdf` (16,795 lines!)
**Namespace**: `https://www.ica.org/standards/RiC/ontology#`
**Relevance**: **CRITICAL** for archives and archival institutions.
### Why RiC-O Matters for GHCID
RiC-O is **the most important ontology** for the archival sector:
1. **International Standard**: Endorsed by ICA, used globally
2. **Rich Provenance**: Extensive provenance modeling aligned with archival principles
3. **Relationship-Centric**: Models complex organizational relationships (predecessors, successors, hierarchies)
4. **Archival Description**: Purpose-built for describing archival records and their custodians
5. **Change Tracking**: Native support for organizational change events
### Key RiC-O Classes
| RiC-O Class | Description | GHCID Mapping |
|-------------|-------------|---------------|
| `rico:Agent` | Entities capable of actions | `HeritageCustodian` (superclass) |
| `rico:CorporateBody` | Organizations and institutions | `HeritageCustodian` (primary) |
| `rico:RecordResource` | Records and record sets | `Collection` |
| `rico:Record` | Individual records | `DigitalObject` |
| `rico:RecordSet` | Groups of records | `Collection` |
| `rico:Activity` | Actions performed by agents | `ChangeEvent` |
| `rico:Place` | Geographic locations | `Location` |
| `rico:Identifier` | Identifiers | `Identifier` |
### Class Alignments
#### HeritageCustodian → rico:CorporateBody
```turtle
ghcid:HeritageCustodian
rdfs:subClassOf rico:CorporateBody ;
owl:equivalentClass rico:CorporateBody ;
rdfs:label "Heritage Custodian Organization"@en ;
rdfs:comment "An archival institution, library, or museum modeled as a RiC-O Corporate Body to align with international archival standards (ICA RiC-O)."@en .
```
**Rationale**:
- Archives ARE corporate bodies in RiC-O terminology
- `rico:CorporateBody` supports organizational change tracking
- Aligns with archival description practices worldwide
#### ChangeEvent → rico:Activity
```turtle
ghcid:ChangeEvent
rdfs:subClassOf rico:Activity ;
rdfs:label "Organizational Change Activity"@en ;
rdfs:comment "Organizational changes (mergers, splits, relocations) modeled as RiC-O Activities to track archival institution evolution over time."@en .
```
**Properties**:
- `rico:hasBeginningDate` → `ChangeEvent.event_date`
- `rico:hasEndDate` → End of event (optional)
- `rico:hasActivityType` → Maps to `ChangeTypeEnum`
- `rico:agentAssociatedWithActivity` → Participating organizations
### Property Mappings
| GHCID Property | RiC-O Property | Notes |
|----------------|---------------|-------|
| `name` | `rico:hasOrHadName` + `rico:Name` | Use rico:Name class for structured names |
| `alternative_names` | `rico:hasOrHadOtherName` | Multiple alternative names |
| `description` | `rico:scopeAndContent` | Archival description field |
| `institution_type` | `rico:hasOrganizationType` | Maps to institution type taxonomy |
| `locations` | `rico:hasOrHadLocation` | Links to `rico:Place` |
| `identifiers` | `rico:hasOrHadIdentifier` | Links to `rico:Identifier` |
| `change_history` | `rico:history` | Narrative history field |
| `change_history` (events) | `rico:agentIsTargetOfActivity` | Link to `rico:Activity` |
### Advanced RiC-O Features
#### Predecessor/Successor Relationships
RiC-O excels at modeling organizational lineage:
```turtle
# Example: Merger creating Noord-Hollands Archief (2001)
ghcid:nl-haarhaarlem rdfs:label "Gemeentearchief Haarlem" ;
rico:hasSuccessor ghcid:nl-haarnha ;
rico:agentIsTargetOfActivity ghcid:event-nha-merger-2001 .
ghcid:nl-haarrijks rdfs:label "Rijksarchief in Noord-Holland" ;
rico:hasSuccessor ghcid:nl-haarnha ;
rico:agentIsTargetOfActivity ghcid:event-nha-merger-2001 .
ghcid:nl-haarnha rdfs:label "Noord-Hollands Archief" ;
rico:hasPredecessor ghcid:nl-haarhaarlem, ghcid:nl-haarrijks ;
rico:beginningDate "2001-01-01"^^xsd:date .
ghcid:event-nha-merger-2001 a rico:Activity, ghcid:ChangeEvent ;
rico:hasActivityType ghcid:MERGER ;
rico:hasBeginningDate "2001-01-01"^^xsd:date ;
rico:agentAssociatedWithActivity ghcid:nl-haarhaarlem, ghcid:nl-haarrijks, ghcid:nl-haarnha .
```
#### Archival Holdings
Link heritage custodians to their collections:
```turtle
ghcid:nl-haarnha
rico:hasOrHadCustody ghcid:collection-haarlem-city-records ;
rico:isOrWasAuthorityOf ghcid:collection-haarlem-city-records .
ghcid:collection-haarlem-city-records a rico:RecordSet, ghcid:Collection ;
rico:scopeAndContent "Municipal records of Haarlem, 1245-present" ;
rico:hasProvenance ghcid:nl-haarhaarlem .
```
### RiC-O Benefits for GHCID
1. **Archival Authority**: ICA-endorsed standard, widely adopted
2. **Change Tracking**: Native support for organizational evolution
3. **Relationship Modeling**: Predecessor/successor, parent/child, partner relationships
4. **Provenance Integration**: Aligns with archival provenance principles
5. **Global Adoption**: Used by national archives worldwide (France, UK, Netherlands, etc.)
### Implementation Priority
**HIGH PRIORITY**: For any GHCID instance involving archives, RiC-O alignment is **mandatory**.
---
## Schema.org Integration
### Overview
**Schema.org** is the de facto standard for structured data markup on the web. It enables search engines (Google, Bing) to understand and display rich results for heritage institutions.
**Specification**: `data/ontology/schemaorg.owl` (2.7 MB)
**Namespace**: `http://schema.org/`
**Relevance**: Essential for web discoverability and SEO.
### GLAM-Specific Schema.org Classes
Schema.org has **dedicated classes** for GLAM institutions:
| Schema.org Class | Description | GHCID Mapping |
|------------------|-------------|---------------|
| `schema:Museum` | Museum organizations | `InstitutionTypeEnum.MUSEUM` |
| `schema:Library` | Library organizations | `InstitutionTypeEnum.LIBRARY` |
| `schema:ArchiveOrganization` | Archival institutions | `InstitutionTypeEnum.ARCHIVE` |
| `schema:ArchiveComponent` | Archival collections | `Collection` |
| `schema:LibrarySystem` | Multi-branch library systems | Parent organizations |
### Class Alignments
#### Institution Type Mapping
```turtle
# When institution_type = MUSEUM
ghcid:rijksmuseum a schema:Museum, ghcid:HeritageCustodian ;
schema:name "Rijksmuseum" ;
schema:location [ a schema:Place ; schema:addressCountry "NL" ] ;
schema:url "https://www.rijksmuseum.nl" .
# When institution_type = LIBRARY
ghcid:kb-nl a schema:Library, ghcid:HeritageCustodian ;
schema:name "Koninklijke Bibliotheek" ;
schema:description "National Library of the Netherlands" .
# When institution_type = ARCHIVE
ghcid:nl-haarnha a schema:ArchiveOrganization, ghcid:HeritageCustodian ;
schema:name "Noord-Hollands Archief" ;
schema:archiveHeld ghcid:collection-haarlem-city-records .
```
#### Collection Mapping
```turtle
ghcid:collection-haarlem-city-records a schema:ArchiveComponent, ghcid:Collection ;
schema:name "Municipal Records of Haarlem" ;
schema:dateCreated "1245" ;
schema:temporalCoverage "1245/2025" ;
schema:about schema:HistoricalEvent ;
schema:archivedAt ghcid:nl-haarnha .
```
### Property Mappings
| GHCID Property | Schema.org Property | Notes |
|----------------|-------------------|-------|
| `name` | `schema:name` | Plain string |
| `alternative_names` | `schema:alternateName` | Multiple values allowed |
| `description` | `schema:description` | SEO-optimized description |
| `locations.city` | `schema:location` + `schema:address` | Use `schema:PostalAddress` |
| `identifiers` (URL) | `schema:url` | Official website |
| `identifiers` (Wikidata) | `schema:sameAs` | Link to Wikidata entity |
| `digital_platforms.platform_url` | `schema:url` or `schema:mainEntityOfPage` | Digital presence |
| `collections` | `schema:archiveHeld` (archives) | For archival holdings |
### SEO Benefits
Schema.org markup enables **Google Knowledge Graph** integration:
```html
```
### Implementation Recommendations
1. **Export JSON-LD**: Generate Schema.org JSON-LD for each institution
2. **Website Embedding**: Provide embeddable snippets for institutional websites
3. **Aggregator Support**: Use Schema.org in aggregation platforms (Europeana, DPLA)
4. **Discovery APIs**: Expose Schema.org via JSON-LD API endpoint
---
## EU Core Public Organization Vocabulary (CPOV)
### Overview
**EU Core Public Organization Vocabulary (CPOV)** is the European standard for describing public sector organizations and services.
**Specification**: `data/ontology/core-public-organisation-ap.ttl`
**Namespace**: `http://data.europa.eu/m8g/`
**Relevance**: Important for **government-funded** heritage institutions in EU member states.
### Integration Status
**ALREADY INTEGRATED** in `schemas/core.yaml:106`:
```yaml
# From schemas/core.yaml
class_uri: cpov:ContactPoint # EU Core Public Organization Vocabulary
```
### Key CPOV Classes
| CPOV Class | Description | GHCID Usage |
|------------|-------------|-------------|
| `cpov:PublicOrganisation` | Government or public sector organization | Many heritage institutions |
| `cpov:ContactPoint` | Contact information | `HeritageCustodian` contact details |
| `cpov:ReferenceFramework` | Legal/regulatory frameworks | Governance metadata |
### Property Mappings
| GHCID Property | CPOV Property | Notes |
|----------------|--------------|-------|
| `name` | `skos:prefLabel` | Preferred label |
| `alternative_names` | `skos:altLabel` | Alternative labels |
| `description` | `dct:description` | Dublin Core Terms |
| `locations` | `locn:location` | ISA Core Location Vocabulary |
| `identifiers` | `dct:identifier` | Dublin Core identifier |
### Use Cases
1. **EU Aggregation**: Interoperability with EU data portals (data.europa.eu)
2. **Public Sector Reporting**: Compliance with EU data standards
3. **Cross-Border Discovery**: Facilitate EU-wide heritage discovery
4. **Funding Compliance**: Align with EU funding requirements (Horizon Europe, etc.)
---
## Dutch TOOI Ontology
### Overview
**TOOI (Thesaurus en Ontologie Overheidsinformatie)** is the Dutch government's ontology for public sector organizations and administrative structures.
**Specification**: `data/ontology/tooiont.ttl`
**Namespace**: `https://identifier.overheid.nl/tooi/def/ont/`
**Relevance**: Essential for **Dutch heritage institutions**, especially government archives.
### Integration Status
**ALREADY INTEGRATED** in `schemas/provenance.yaml:91`:
```yaml
# From schemas/provenance.yaml
ChangeEvent:
class_uri: tooi:Wijzigingsgebeurtenis # Dutch government change event ontology
```
### Key TOOI Classes
| TOOI Class | Description | GHCID Mapping |
|------------|-------------|---------------|
| `tooi:Wijzigingsgebeurtenis` | Organizational change event | `ChangeEvent` |
| `tooi:Afsplitsing` | Organizational split | `ChangeTypeEnum.SPLIT` |
| `tooi:ExistentieleWijziging` | Existential change (founding, closure) | `ChangeTypeEnum.FOUNDING`, `CLOSURE` |
| `tooi:BestuurlijkeRuimte` | Administrative territory | `Location` (Dutch regions) |
### Change Event Alignment
TOOI provides **precise Dutch government terminology** for organizational changes:
```turtle
ghcid:event-nha-merger-2001 a tooi:Wijzigingsgebeurtenis, ghcid:ChangeEvent ;
tooi:wijzigingsdatum "2001-01-01"^^xsd:date ;
tooi:wijzigingstype ghcid:MERGER ;
tooi:betrokkenOrganisatie ghcid:nl-haarhaarlem, ghcid:nl-haarrijks, ghcid:nl-haarnha .
```
### Benefits for Dutch Institutions
1. **National Standard**: Official Dutch government ontology
2. **Legal Compliance**: Aligns with Dutch administrative law
3. **Provincial Archives**: Essential for provincial and municipal archive integration
4. **Change Tracking**: Precise terminology for Dutch government reorganizations
5. **Linked Open Data**: Integration with Dutch LOD infrastructure (data.overheid.nl)
### Implementation
Use TOOI for all **Dutch government heritage institutions**:
- Provincial archives (e.g., Noord-Hollands Archief, Gelders Archief)
- Municipal archives (e.g., Stadsarchief Amsterdam)
- National archives (Nationaal Archief)
- Government-funded museums and libraries
---
## W3C Organization Ontology
### Overview
**W3C Organization Ontology (ORG)** is a generic ontology for organizational structures, hierarchies, and relationships.
**Specification**: `data/ontology/org.ttl`
**Namespace**: `http://www.w3.org/ns/org#`
**Relevance**: Foundation for organizational modeling.
### Integration Status
**ALREADY INTEGRATED** in `schemas/core.yaml`:
```yaml
# From schemas/core.yaml
HeritageCustodian:
class_uri: org:Organization # W3C Organization Ontology
mixins:
- org:OrganizationalUnit # For sub-units and departments
```
### Key ORG Classes
| ORG Class | Description | GHCID Mapping |
|-----------|-------------|---------------|
| `org:Organization` | Generic organization | `HeritageCustodian` |
| `org:OrganizationalUnit` | Department or sub-unit | Branch libraries, museum departments |
| `org:Site` | Physical location | `Location` |
| `org:Post` | Job or role | Staff roles (optional) |
### Property Mappings
| GHCID Property | ORG Property | Notes |
|----------------|-------------|-------|
| `name` | `skos:prefLabel` | Organization name |
| `description` | `dct:description` | Organization description |
| `locations` | `org:hasSite` | Links to `org:Site` |
| Parent organization | `org:subOrganizationOf` | Hierarchical relationships |
| Sub-units | `org:hasSubOrganization` | Departments, branches |
### Use Cases
1. **Hierarchical Structures**: Model multi-branch library systems
2. **Museum Departments**: Represent departments within large museums
3. **Archive Networks**: Model provincial/municipal archive relationships
4. **Generic Interoperability**: Broadest possible compatibility
---
## PROV-O Integration
### Overview
**W3C PROV Ontology (PROV-O)** is the standard for provenance and data lineage tracking.
**Specification**: `data/ontology/prov-o.ttl`
**Namespace**: `http://www.w3.org/ns/prov#`
**Relevance**: Critical for **data quality** and **provenance tracking**.
### Integration Status
**ALREADY INTEGRATED** across multiple schema modules.
### Key PROV-O Classes
| PROV-O Class | Description | GHCID Mapping |
|--------------|-------------|---------------|
| `prov:Entity` | Data entities | `HeritageCustodian`, `Collection`, etc. |
| `prov:Activity` | Activities that generate/modify entities | `ChangeEvent`, extraction processes |
| `prov:Agent` | Agents responsible for activities | Data creators, extractors |
### Property Mappings
| GHCID Property | PROV-O Property | Notes |
|----------------|----------------|-------|
| `provenance.data_source` | `prov:hadPrimarySource` | Source of data |
| `provenance.extraction_date` | `prov:generatedAtTime` | When data was extracted |
| `provenance.extraction_method` | `prov:wasGeneratedBy` | Extraction process |
| `change_history` | `prov:wasInfluencedBy` | Organizational changes |
### Provenance Graph Example
```turtle
# GHCID record as PROV Entity
ghcid:nl-haarnha a prov:Entity, ghcid:HeritageCustodian ;
prov:wasGeneratedBy ghcid:extraction-activity-20251106 ;
prov:hadPrimarySource ;
prov:generatedAtTime "2025-11-06T10:30:00Z"^^xsd:dateTime .
# Extraction activity
ghcid:extraction-activity-20251106 a prov:Activity ;
prov:wasAssociatedWith ghcid:agent-opencode ;
prov:used ;
prov:endedAtTime "2025-11-06T10:30:00Z"^^xsd:dateTime .
# Data source
a prov:Entity ;
prov:wasAttributedTo ;
prov:generatedAtTime "2025-08-01T00:00:00Z"^^xsd:dateTime .
```
### Benefits
1. **Data Quality**: Track data lineage from source to publication
2. **Reproducibility**: Document extraction methods and tools
3. **Trust**: Demonstrate data provenance to users
4. **Versioning**: Track changes to GHCID records over time
---
## Comprehensive Mapping Table
### HeritageCustodian Class Mappings
| Ontology | Class | Relationship | Notes |
|----------|-------|-------------|-------|
| **CIDOC-CRM** | `cidoc:E74_Group` | `owl:equivalentClass` | Primary mapping for museums |
| **RiC-O** | `rico:CorporateBody` | `owl:equivalentClass` | Primary mapping for archives |
| **Schema.org** | `schema:Museum` / `Library` / `ArchiveOrganization` | `rdf:type` (conditional) | Based on `institution_type` |
| **CPOV** | `cpov:PublicOrganisation` | `rdf:type` (conditional) | For public sector institutions |
| **W3C ORG** | `org:Organization` | `rdfs:subClassOf` | Generic superclass |
| **PROV-O** | `prov:Entity` | `rdf:type` | For provenance tracking |
### ChangeEvent Class Mappings
| Ontology | Class | Relationship | Notes |
|----------|-------|-------------|-------|
| **CIDOC-CRM** | `cidoc:E5_Event` | `rdfs:subClassOf` | General events |
| **RiC-O** | `rico:Activity` | `rdfs:subClassOf` | Archival events |
| **TOOI** | `tooi:Wijzigingsgebeurtenis` | `owl:equivalentClass` | Dutch government events |
| **PROV-O** | `prov:Activity` | `rdfs:subClassOf` | Provenance activities |
### Collection Class Mappings
| Ontology | Class | Relationship | Notes |
|----------|-------|-------------|-------|
| **CIDOC-CRM** | `cidoc:E78_Curated_Holding` | `rdfs:subClassOf` | Museum collections |
| **RiC-O** | `rico:RecordSet` | `owl:equivalentClass` | Archival record sets |
| **Schema.org** | `schema:ArchiveComponent` | `rdf:type` | Archival collections |
### Location Class Mappings
| Ontology | Class | Relationship | Notes |
|----------|-------|-------------|-------|
| **CIDOC-CRM** | `cidoc:E53_Place` | `rdfs:subClassOf` | Geographic places |
| **RiC-O** | `rico:Place` | `rdfs:subClassOf` | Archival places |
| **Schema.org** | `schema:Place` | `rdfs:subClassOf` | Generic places |
| **W3C ORG** | `org:Site` | `rdf:type` | Organizational sites |
### Identifier Class Mappings
| Ontology | Class | Relationship | Notes |
|----------|-------|-------------|-------|
| **CIDOC-CRM** | `cidoc:E42_Identifier` | `rdfs:subClassOf` | Generic identifiers |
| **RiC-O** | `rico:Identifier` | `rdfs:subClassOf` | Archival identifiers |
---
## RDF Serialization Examples
### Example 1: Dutch Archive with Multiple Ontologies
```turtle
@prefix ghcid: .
@prefix cidoc: .
@prefix rico: .
@prefix schema: .
@prefix tooi: .
@prefix org: .
@prefix prov: .
@prefix xsd: .
# Noord-Hollands Archief - Multi-ontology representation
ghcid:nl-haarnha
# Type declarations
a ghcid:HeritageCustodian,
rico:CorporateBody, # RiC-O: Archival institution
schema:ArchiveOrganization, # Schema.org: Web discoverability
org:Organization, # W3C ORG: Generic organization
prov:Entity ; # PROV-O: Provenance entity
# Basic metadata
ghcid:name "Noord-Hollands Archief" ;
schema:name "Noord-Hollands Archief" ;
rico:hasOrHadName [
a rico:Name ;
rico:textualValue "Noord-Hollands Archief"@nl
] ;
# Alternative names
ghcid:alternative_names "NHA", "North Holland Archives" ;
schema:alternateName "NHA"@en ;
rico:hasOrHadOtherName [
a rico:Name ;
rico:textualValue "NHA"@en
] ;
# Institution type
ghcid:institution_type "ARCHIVE" ;
rico:hasOrganizationType ghcid:ARCHIVE ;
# Description
ghcid:description "Provincial archive of North Holland, formed in 2001 through merger of Gemeentearchief Haarlem and Rijksarchief in Noord-Holland." ;
schema:description "Provincial archive of North Holland, formed in 2001 through merger of Gemeentearchief Haarlem and Rijksarchief in Noord-Holland."@en ;
rico:scopeAndContent "Provincial archive of North Holland, formed in 2001 through merger of Gemeentearchief Haarlem and Rijksarchief in Noord-Holland."@en ;
# Location
ghcid:location [
a ghcid:Location, rico:Place, schema:Place ;
ghcid:city "Haarlem" ;
ghcid:country "NL" ;
schema:addressLocality "Haarlem" ;
schema:addressCountry "NL" ;
rico:hasOrHadName [ rico:textualValue "Haarlem"@nl ]
] ;
# Identifiers
ghcid:identifier [
a ghcid:Identifier, rico:Identifier ;
ghcid:identifier_scheme "ISIL" ;
ghcid:identifier_value "NL-HaarNHA" ;
rico:identifierType "ISIL" ;
rico:textualValue "NL-HaarNHA"
] ;
schema:url "https://www.noord-hollandsarchief.nl" ;
schema:sameAs ;
# Change history (merger event)
ghcid:change_history ghcid:event-nha-merger-2001 ;
rico:agentIsTargetOfActivity ghcid:event-nha-merger-2001 ;
# Predecessors (RiC-O)
rico:hasPredecessor ghcid:nl-haarhaarlem, ghcid:nl-haarrijks ;
# Collections
schema:archiveHeld ghcid:collection-haarlem-city-records ;
rico:hasOrHadCustody ghcid:collection-haarlem-city-records ;
# Provenance
prov:wasGeneratedBy ghcid:extraction-isil-registry-20251106 ;
prov:hadPrimarySource ;
prov:generatedAtTime "2025-11-06T10:30:00Z"^^xsd:dateTime .
# Merger event
ghcid:event-nha-merger-2001
a ghcid:ChangeEvent,
rico:Activity, # RiC-O: Activity
cidoc:E5_Event, # CIDOC-CRM: Event
tooi:Wijzigingsgebeurtenis, # TOOI: Dutch gov change event
prov:Activity ; # PROV-O: Activity
ghcid:change_type "MERGER" ;
ghcid:event_date "2001-01-01"^^xsd:date ;
ghcid:event_description "Merger of Gemeentearchief Haarlem and Rijksarchief in Noord-Holland to form Noord-Hollands Archief." ;
# RiC-O properties
rico:hasActivityType ghcid:MERGER ;
rico:hasBeginningDate "2001-01-01"^^xsd:date ;
rico:agentAssociatedWithActivity ghcid:nl-haarhaarlem, ghcid:nl-haarrijks, ghcid:nl-haarnha ;
# CIDOC-CRM properties
cidoc:P4_has_time-span [
a cidoc:E52_Time-Span ;
cidoc:P82_at_some_time_within "2001-01-01"^^xsd:date
] ;
cidoc:P14_carried_out_by ghcid:nl-haarnha ;
# TOOI properties
tooi:wijzigingsdatum "2001-01-01"^^xsd:date ;
tooi:wijzigingstype ghcid:MERGER ;
# PROV-O properties
prov:generated ghcid:nl-haarnha ;
prov:used ghcid:nl-haarhaarlem, ghcid:nl-haarrijks ;
prov:atTime "2001-01-01T00:00:00Z"^^xsd:dateTime .
```
### Example 2: Museum with CIDOC-CRM Focus
```turtle
# Rijksmuseum - Museum-centric representation
ghcid:nl-amsnl-rms
a ghcid:HeritageCustodian,
cidoc:E74_Group, # CIDOC-CRM: Museum as group
schema:Museum, # Schema.org: Museum type
org:Organization ;
ghcid:name "Rijksmuseum" ;
cidoc:P1_is_identified_by [
a cidoc:E41_Appellation ;
cidoc:P190_has_symbolic_content "Rijksmuseum"
] ;
ghcid:institution_type "MUSEUM" ;
cidoc:P2_has_type ghcid:MUSEUM ;
# Location (CIDOC-CRM E53_Place)
cidoc:P74_has_current_or_former_residence [
a cidoc:E53_Place ;
cidoc:P87_is_identified_by [
a cidoc:E44_Place_Appellation ;
cidoc:P190_has_symbolic_content "Amsterdam, Netherlands"
]
] ;
# Collections (CIDOC-CRM E78_Curated_Holding)
cidoc:P109_has_current_or_former_curator ghcid:collection-rijksmuseum-dutch-masters ;
schema:url "https://www.rijksmuseum.nl" ;
schema:sameAs .
# Collection
ghcid:collection-rijksmuseum-dutch-masters
a ghcid:Collection,
cidoc:E78_Curated_Holding ;
ghcid:collection_name "Dutch Masters Collection" ;
cidoc:P3_has_note "Collection of Dutch Golden Age paintings including works by Rembrandt, Vermeer, and Hals." ;
cidoc:P109i_is_current_or_former_curator_of ghcid:nl-amsnl-rms .
```
### Example 3: JSON-LD for Schema.org
```json
{
"@context": "https://schema.org",
"@type": "ArchiveOrganization",
"@id": "https://w3id.org/heritage/custodian/nl-haarnha",
"name": "Noord-Hollands Archief",
"alternateName": ["NHA", "North Holland Archives"],
"description": "Provincial archive of North Holland, formed in 2001 through merger of Gemeentearchief Haarlem and Rijksarchief in Noord-Holland.",
"url": "https://www.noord-hollandsarchief.nl",
"sameAs": [
"https://www.wikidata.org/wiki/Q2725652",
"https://viaf.org/viaf/..."
],
"address": {
"@type": "PostalAddress",
"addressLocality": "Haarlem",
"addressCountry": "NL"
},
"archiveHeld": {
"@type": "ArchiveComponent",
"@id": "https://w3id.org/heritage/custodian/collection-haarlem-city-records",
"name": "Municipal Records of Haarlem",
"temporalCoverage": "1245/2025",
"description": "Historical records of the city of Haarlem spanning 780 years."
},
"foundingDate": "2001-01-01",
"parentOrganization": null,
"subOrganization": []
}
```
---
## Gap Analysis
### What GHCID Provides Beyond Standard Ontologies
1. **Persistent Identifiers (GHCID)**
- **Unique**: Globally unique, persistent IDs for heritage institutions
- **Versioned**: Change history tracking via GHCID history entries
- **Resolvable**: Designed for HTTP resolution (future)
- **Gap**: No standard ontology provides persistent IDs for organizations
2. **Change History Tracking**
- **Comprehensive**: Dedicated ChangeEvent model with 11 event types
- **Temporal**: Full history from founding to present
- **Linked**: Events linked to affected organizations
- **Gap**: Most ontologies don't track organizational evolution over time
3. **Multi-Tier Provenance**
- **Data Quality**: 4-tier data quality system (TIER_1 through TIER_4)
- **Confidence Scoring**: Numeric confidence scores for extracted data
- **Source Tracking**: Precise provenance metadata
- **Gap**: PROV-O lacks data quality tiers
4. **Institution Type Taxonomy**
- **GLAM-Specific**: 13 institution types tailored for heritage sector
- **Extensible**: Can add new types as needed
- **Gap**: Schema.org has only 3 types (Museum, Library, ArchiveOrganization)
### What Standard Ontologies Provide That GHCID Could Use
1. **CIDOC-CRM Time-Spans**
- **Feature**: E52_Time-Span for precise temporal modeling
- **Benefit**: More granular than ISO 8601 dates (start/end, fuzzy dates)
- **Recommendation**: Extend ChangeEvent to support CIDOC-CRM time-spans
2. **RiC-O Relationship Types**
- **Feature**: 50+ relationship types (hierarchical, temporal, associative)
- **Benefit**: Rich organizational relationship modeling
- **Recommendation**: Add relationship modeling to GHCID schema (future)
3. **Schema.org Events**
- **Feature**: schema:Event for public-facing event information
- **Benefit**: Exhibition openings, closures, relocations for SEO
- **Recommendation**: Link ChangeEvents to schema:Event for web discoverability
4. **CPOV Contact Points**
- **Feature**: Structured contact information (already integrated!)
- **Benefit**: Standardized contact metadata
- **Status**: ✅ Already using `cpov:ContactPoint`
### Areas for Future Development
1. **Collection Metadata Enhancement**
- Adopt CIDOC-CRM E78_Curated_Holding properties
- Integrate RiC-O RecordSet relationships
- Add Schema.org CreativeWork linkage
2. **Relationship Modeling**
- Add parent/child organization relationships (org:subOrganizationOf)
- Add partnership relationships (RiC-O rico:isAssociatedWith)
- Add network membership (RiC-O rico:isMemberOf)
3. **Temporal Modeling**
- Support fuzzy dates ("circa 1850", "early 20th century")
- Use CIDOC-CRM E52_Time-Span for date ranges
- Add temporal qualifiers (RiC-O rico:certainty)
4. **Rights and Licensing**
- Add Dublin Core Terms rights metadata
- Integrate Creative Commons licenses
- Support ODRL for data usage rights
---
## Implementation Recommendations
### 1. RDF Export Priority
When exporting GHCID data to RDF, include:
**REQUIRED** (all institutions):
- W3C ORG: `org:Organization` (generic compatibility)
- PROV-O: `prov:Entity` (provenance)
- Schema.org: Institution-type-specific class (SEO)
**RECOMMENDED** (based on institution type):
- Archives → RiC-O: `rico:CorporateBody` (archival standard)
- Museums → CIDOC-CRM: `cidoc:E74_Group` (museum standard)
- Dutch institutions → TOOI: `tooi:Organisatie` (Dutch gov)
- EU institutions → CPOV: `cpov:PublicOrganisation` (EU public sector)
### 2. JSON-LD Context Design
Create a comprehensive JSON-LD context file:
```json
{
"@context": {
"ghcid": "https://w3id.org/heritage/custodian/",
"cidoc": "http://www.cidoc-crm.org/cidoc-crm/",
"rico": "https://www.ica.org/standards/RiC/ontology#",
"schema": "https://schema.org/",
"org": "http://www.w3.org/ns/org#",
"prov": "http://www.w3.org/ns/prov#",
"cpov": "http://data.europa.eu/m8g/",
"tooiont": "https://identifier.overheid.nl/tooi/def/ont/",
"HeritageCustodian": {
"@id": "ghcid:HeritageCustodian",
"@type": "@id"
},
"name": {
"@id": "schema:name",
"@container": "@language"
},
"institution_type": {
"@id": "ghcid:institution_type",
"@type": "@vocab"
},
...
}
}
```
### 3. Validation Strategy
Validate RDF exports against ontology specifications:
1. **Schema.org**: Use Google's Structured Data Testing Tool
2. **CIDOC-CRM**: Validate with CIDOC-CRM RDFS/OWL definitions
3. **RiC-O**: Validate with RiC-O v1.1 SHACL shapes (if available)
4. **W3C Standards**: Use W3C RDF validator
### 4. Incremental Adoption
**Phase 1** (Current): Basic ontology alignment
- Export as W3C ORG + Schema.org
- Include PROV-O provenance
- Minimal RDF serialization
**Phase 2** (Next 6 months): Domain-specific ontologies
- Add RiC-O for archives
- Add CIDOC-CRM for museums
- Add TOOI for Dutch institutions
**Phase 3** (Future): Advanced features
- Full relationship modeling
- CIDOC-CRM time-spans
- Rights and licensing metadata
### 5. Documentation and Examples
Provide clear examples for data consumers:
- **GitHub repo**: `/examples/rdf/` directory with Turtle, JSON-LD, RDF/XML
- **API documentation**: Ontology alignment tables in API docs
- **SPARQL queries**: Example queries for each ontology
- **Conversion scripts**: LinkML → RDF conversion utilities
---
## Conclusion
The GHCID schema achieves **interoperability** with seven major ontologies while maintaining unique capabilities for persistent identification and change tracking. By aligning with international standards (CIDOC-CRM, RiC-O, Schema.org) and regional standards (CPOV, TOOI), GHCID enables seamless data exchange across the global heritage sector.
**Key Takeaways**:
1. **RiC-O is critical** for archival institutions (highest priority)
2. **Schema.org enables web discoverability** (required for SEO)
3. **CIDOC-CRM supports museum integration** (recommended for museums)
4. **Multiple ontologies can coexist** (use conditional type assignments)
5. **GHCID adds unique value** (persistent IDs, change history, data quality tiers)
**Next Steps**:
1. ✅ Complete ONTOLOGY_INTEGRATION.md (this document)
2. ⏳ Create GHCID_PID_SCHEME.md (persistent identifier specification)
3. ⏳ Implement RDF export utilities in Python
4. ⏳ Generate JSON-LD context file
5. ⏳ Create example RDF serializations for each ontology
---
**Revision History**:
- v1.0 (2025-11-06): Initial comprehensive ontology integration guide
**Maintained By**: GLAM Data Extraction Project
**Contact**: [Project repository](https://github.com/kempersc/glam)