897 lines
33 KiB
YAML
897 lines
33 KiB
YAML
# Heritage Digital Platform Class
|
|
# Represents digital systems and online presence of heritage custodians
|
|
|
|
id: https://nde.nl/ontology/hc/class/digital-platform
|
|
name: digital_platform_class
|
|
title: DigitalPlatform Class
|
|
|
|
imports:
|
|
- linkml:types
|
|
- ./Custodian
|
|
- ./CustodianObservation
|
|
- ./ReconstructionActivity
|
|
- ./DigitalPlatformType
|
|
- ./AuxiliaryDigitalPlatform
|
|
- ./TimeSpan
|
|
- ./CollectionManagementSystem
|
|
- ./DataServiceEndpoint
|
|
- ./OAIPMHEndpoint
|
|
- ./SearchAPI
|
|
- ./METSAPI
|
|
- ./FileAPI
|
|
- ./IIPImageServer
|
|
- ./EADDownload
|
|
- ../enums/DigitalPlatformTypeEnum
|
|
- ../slots/auxiliary_platforms
|
|
- ../slots/powered_by_cms
|
|
- ../slots/access_restrictions
|
|
- ../slots/preservation_level
|
|
- ../slots/api_endpoint
|
|
- ../slots/metadata_standards
|
|
- ../slots/sparql_endpoint
|
|
- ../slots/oai_pmh_endpoint
|
|
- ../slots/platform_type
|
|
- ../slots/platform_name
|
|
- ../slots/storage_location
|
|
- ../slots/serves_finding_aids
|
|
- ./ReconstructedEntity
|
|
|
|
prefixes:
|
|
linkml: https://w3id.org/linkml/
|
|
hc: https://nde.nl/ontology/hc/
|
|
schema: http://schema.org/
|
|
foaf: http://xmlns.com/foaf/0.1/
|
|
dcat: http://www.w3.org/ns/dcat#
|
|
dcterms: http://purl.org/dc/terms/
|
|
crm: http://www.cidoc-crm.org/cidoc-crm/
|
|
doap: http://usefulinc.com/ns/doap#
|
|
premis: http://www.loc.gov/premis/rdf/v3/
|
|
prov: http://www.w3.org/ns/prov#
|
|
|
|
classes:
|
|
DigitalPlatform:
|
|
is_a: ReconstructedEntity
|
|
class_uri: schema:WebSite
|
|
description: |
|
|
Digital platform or online system associated with a heritage custodian.
|
|
|
|
**CRITICAL DISTINCTION**:
|
|
|
|
**DigitalPlatform CLASS** (this class):
|
|
- Represents the DIGITAL INFRASTRUCTURE of any custodian
|
|
- Used by PHYSICAL institutions (museums, archives, libraries) to represent their websites
|
|
- Used by DIGITAL-FIRST institutions to represent their primary platform
|
|
- Examples: Rijksmuseum website, museum online catalog, archive digital portal
|
|
|
|
**DigitalPlatformType** (custodian type):
|
|
- Classification for DIGITAL-FIRST custodians (online-only, no physical building)
|
|
- Example: Europeana (aggregation platform), Internet Archive (born-digital)
|
|
|
|
**Decision Rules**:
|
|
|
|
1. **Physical Institution with Website**:
|
|
- Custodian.custodian_type = MUSEUM/ARCHIVE/LIBRARY (not DIGITAL_PLATFORM)
|
|
- Custodian.digital_platform → DigitalPlatform instance (this class)
|
|
- Example: Rijksmuseum (MUSEUM) has Rijksstudio (DigitalPlatform)
|
|
|
|
2. **Digital-First Institution**:
|
|
- Custodian.custodian_type = DIGITAL_PLATFORM (DigitalPlatformType)
|
|
- Custodian.digital_platform → DigitalPlatform instance (primary platform)
|
|
- Example: Europeana (DIGITAL_PLATFORM) operates at https://europeana.eu/
|
|
|
|
**Relationship to Custodian Hub**:
|
|
|
|
DigitalPlatform is DIRECTLY connected to Custodian via refers_to_custodian,
|
|
just like CustodianPlace, CustodianName, and CustodianLegalStatus.
|
|
|
|
This allows modeling:
|
|
- Multiple digital platforms per custodian (website + API + mobile app)
|
|
- Platform evolution over time (temporal validity)
|
|
- Platform features and technical capabilities
|
|
- Access points for digital heritage
|
|
|
|
**Ontology Alignment**:
|
|
|
|
- Schema.org: schema:WebSite (primary), schema:WebApplication
|
|
- DCAT: dcat:Catalog (for aggregation platforms), dcat:DataService (for APIs)
|
|
- FOAF: foaf:homepage, foaf:Document
|
|
- CIDOC-CRM: crm:E73_Information_Object (digital objects)
|
|
|
|
**Example - Physical Museum with Digital Platform**:
|
|
```yaml
|
|
Custodian:
|
|
hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"
|
|
preferred_label: "Rijksmuseum"
|
|
custodian_type: MUSEUM # Physical institution
|
|
digital_platform:
|
|
- platform_name: "Rijksmuseum Website"
|
|
homepage_web_address: "https://www.rijksmuseum.nl/"
|
|
platform_type: DISCOVERY_PORTAL
|
|
iiif_support: true
|
|
linked_data: true
|
|
```
|
|
|
|
**Example - Digital-First Platform**:
|
|
```yaml
|
|
Custodian:
|
|
hc_id: "https://nde.nl/ontology/hc/eu-europeana"
|
|
preferred_label: "Europeana"
|
|
custodian_type: DIGITAL_PLATFORM # Digital-first
|
|
digital_platform:
|
|
- platform_name: "Europeana Platform"
|
|
homepage_web_address: "https://www.europeana.eu/"
|
|
platform_type: AGGREGATION_PLATFORM
|
|
api_endpoint: "https://api.europeana.eu/"
|
|
iiif_support: true
|
|
linked_data: true
|
|
programming_languages: ["Java", "Python", "JavaScript"]
|
|
```
|
|
|
|
exact_mappings:
|
|
- schema:WebSite
|
|
- foaf:homepage
|
|
|
|
close_mappings:
|
|
- schema:WebApplication
|
|
- schema:SoftwareApplication
|
|
- dcat:Catalog
|
|
- dcat:DataService
|
|
- crm:E73_Information_Object
|
|
- doap:Project
|
|
- premis:IntellectualEntity
|
|
|
|
related_mappings:
|
|
- foaf:Document
|
|
- schema:SoftwareApplication
|
|
- dcat:accessURL
|
|
|
|
slots:
|
|
- platform_id
|
|
- platform_name
|
|
- platform_type
|
|
- homepage_web_address
|
|
- collection_web_addresses
|
|
- inventory_web_addresses
|
|
- api_endpoint
|
|
- sparql_endpoint
|
|
- oai_pmh_endpoint
|
|
- programming_languages
|
|
- repository_software
|
|
- powered_by_cms
|
|
- iiif_support
|
|
- linked_data
|
|
- metadata_standards
|
|
- access_restrictions
|
|
- auxiliary_platforms
|
|
- temporal_extent
|
|
- was_derived_from
|
|
- was_generated_by
|
|
- refers_to_custodian
|
|
- preservation_level
|
|
- storage_location
|
|
- fixity_check_date
|
|
- serves_finding_aids
|
|
- data_service_endpoints
|
|
|
|
slot_usage:
|
|
platform_id:
|
|
slot_uri: dcterms:identifier
|
|
description: |
|
|
Unique identifier for this digital platform instance.
|
|
Format: URI following NDE Heritage Custodian ontology conventions.
|
|
range: uriorcurie
|
|
required: true
|
|
identifier: true
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/platform/rijksmuseum-website"
|
|
description: "Platform ID for Rijksmuseum website"
|
|
|
|
platform_name:
|
|
slot_uri: schema:name
|
|
description: |
|
|
Human-readable name for this digital platform.
|
|
|
|
Examples:
|
|
- "Rijksmuseum Website"
|
|
- "Europeana Platform"
|
|
- "National Archives Digital Repository"
|
|
- "Museum API"
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: "Rijksmuseum Website"
|
|
description: "Main website name"
|
|
- value: "Europeana Platform"
|
|
description: "Aggregation platform name"
|
|
|
|
platform_type:
|
|
slot_uri: dcterms:type
|
|
description: |
|
|
Type of digital platform using DigitalPlatformTypeEnum classification.
|
|
|
|
Categories include:
|
|
- DIGITAL_ARCHIVE: Digital archive platform
|
|
- DIGITAL_LIBRARY: Digital library
|
|
- AGGREGATOR: Aggregation platform
|
|
- ARCHIVES_PORTAL: Archives discovery portal
|
|
- And 50+ other types from DigitalPlatformTypeEnum
|
|
|
|
A platform may have multiple types (e.g., digital archive + aggregator).
|
|
range: DigitalPlatformTypeEnum
|
|
multivalued: true
|
|
required: false
|
|
examples:
|
|
- value: "DIGITAL_ARCHIVE"
|
|
description: "Digital archive platform"
|
|
- value: "AGGREGATOR"
|
|
description: "Aggregation platform"
|
|
|
|
homepage_web_address:
|
|
slot_uri: foaf:homepage
|
|
description: |
|
|
Primary homepage URL for this digital platform.
|
|
|
|
FOAF: homepage for main web address.
|
|
|
|
This is the entry point users access to interact with the platform.
|
|
Must be a valid HTTP/HTTPS URL.
|
|
range: uri
|
|
required: true
|
|
pattern: "^https?://"
|
|
examples:
|
|
- value: "https://www.rijksmuseum.nl/"
|
|
description: "Rijksmuseum homepage"
|
|
- value: "https://www.europeana.eu/"
|
|
description: "Europeana homepage"
|
|
|
|
collection_web_addresses:
|
|
slot_uri: dcat:accessURL
|
|
description: |
|
|
URLs for accessing digital collections on this platform.
|
|
|
|
DCAT: accessURL for collection access points.
|
|
|
|
Examples:
|
|
- "https://www.rijksmuseum.nl/nl/rijksstudio" (Rijksstudio collections)
|
|
- "https://www.europeana.eu/en/collections" (Europeana collections browse)
|
|
- "https://archive.org/details/texts" (Internet Archive text collections)
|
|
range: uri
|
|
multivalued: true
|
|
examples:
|
|
- value: "https://www.rijksmuseum.nl/nl/rijksstudio"
|
|
description: "Rijksstudio collection access"
|
|
|
|
inventory_web_addresses:
|
|
slot_uri: dcat:landingPage
|
|
description: |
|
|
URLs for archival inventories, finding aids, or collection catalogs.
|
|
|
|
DCAT: landingPage for human-readable collection descriptions.
|
|
|
|
Examples:
|
|
- "https://www.nationaalarchief.nl/onderzoeken/index" (National Archives inventories)
|
|
- "https://archief.amsterdam/inventarissen" (Amsterdam City Archives inventories)
|
|
range: uri
|
|
multivalued: true
|
|
examples:
|
|
- value: "https://www.nationaalarchief.nl/onderzoeken/index"
|
|
description: "National Archives finding aids"
|
|
|
|
api_endpoint:
|
|
slot_uri: dcat:endpointURL
|
|
description: |
|
|
API endpoint URL for programmatic access.
|
|
|
|
DCAT: endpointURL for API base address.
|
|
|
|
Examples:
|
|
- "https://api.europeana.eu/record/v2/" (Europeana REST API)
|
|
- "https://www.rijksmuseum.nl/api/" (Rijksmuseum API)
|
|
- "https://archive.org/advancedsearch.php" (Internet Archive API)
|
|
range: uri
|
|
examples:
|
|
- value: "https://api.europeana.eu/record/v2/"
|
|
description: "Europeana REST API endpoint"
|
|
|
|
sparql_endpoint:
|
|
slot_uri: dcat:endpointURL
|
|
description: |
|
|
SPARQL endpoint URL for linked data queries.
|
|
|
|
DCAT: endpointURL for SPARQL service.
|
|
|
|
Indicates platform supports RDF triple queries.
|
|
|
|
Examples:
|
|
- "https://api.europeana.eu/sparql" (Europeana SPARQL)
|
|
- "https://data.collectienederland.nl/sparql" (Collectie Nederland SPARQL)
|
|
range: uri
|
|
examples:
|
|
- value: "https://api.europeana.eu/sparql"
|
|
description: "Europeana SPARQL endpoint"
|
|
|
|
oai_pmh_endpoint:
|
|
slot_uri: dcat:endpointURL
|
|
description: |
|
|
OAI-PMH endpoint URL for metadata harvesting.
|
|
|
|
DCAT: endpointURL for OAI-PMH service.
|
|
|
|
Supports Open Archives Initiative Protocol for Metadata Harvesting.
|
|
|
|
Examples:
|
|
- "https://www.europeana.eu/oai" (Europeana OAI-PMH)
|
|
- "https://repository.example.edu/oai" (Institutional repository OAI-PMH)
|
|
range: uri
|
|
examples:
|
|
- value: "https://www.europeana.eu/oai"
|
|
description: "Europeana OAI-PMH endpoint"
|
|
|
|
programming_languages:
|
|
slot_uri: doap:programming-language
|
|
description: |
|
|
Programming languages used to build this platform.
|
|
|
|
DOAP: programming-language for software implementation languages.
|
|
(DOAP = Description of a Project, W3C vocabulary for software projects)
|
|
|
|
Examples:
|
|
- "Java", "Python", "JavaScript", "Ruby", "PHP"
|
|
- "TypeScript", "Go", "Rust"
|
|
|
|
Useful for technical assessment and developer onboarding.
|
|
range: string
|
|
multivalued: true
|
|
examples:
|
|
- value: "Java"
|
|
description: "Primary backend language"
|
|
- value: "Python"
|
|
description: "Data processing language"
|
|
- value: "JavaScript"
|
|
description: "Frontend language"
|
|
|
|
repository_software:
|
|
slot_uri: doap:repository
|
|
description: |
|
|
Repository or content management software powering this platform.
|
|
|
|
DOAP: repository for software/system identification.
|
|
(DOAP = Description of a Project, W3C vocabulary for software projects)
|
|
|
|
Examples:
|
|
- "DSpace 7.x"
|
|
- "Fedora Commons 6.x"
|
|
- "CollectiveAccess"
|
|
- "ResourceSpace"
|
|
- "Omeka S"
|
|
- "Custom-built"
|
|
range: string
|
|
examples:
|
|
- value: "DSpace 7.2"
|
|
description: "Digital repository software"
|
|
|
|
powered_by_cms:
|
|
slot_uri: crm:P33i_was_used_by
|
|
range: CollectionManagementSystem
|
|
multivalued: true
|
|
required: false
|
|
description: |
|
|
Collection Management System(s) powering this digital platform.
|
|
|
|
CIDOC-CRM: P33i_was_used_by (inverse of P33_used_specific_technique).
|
|
The CMS provides the backend/technique for the digital platform.
|
|
|
|
**Bidirectional Relationship**:
|
|
- Forward: DigitalPlatform → CollectionManagementSystem (powered_by_cms)
|
|
- Reverse: CollectionManagementSystem → DigitalPlatform (powers_platform)
|
|
|
|
**Use Cases**:
|
|
1. "What CMS powers this website?" → Follow powered_by_cms
|
|
2. "What websites use CollectiveAccess?" → Follow powers_platform
|
|
3. Technical assessment: Determine backend infrastructure of platforms
|
|
|
|
**Notes**:
|
|
- Multivalued: Platform may use multiple CMS (e.g., hybrid architecture)
|
|
- If null, CMS may be unknown or platform is custom-built
|
|
- Distinct from repository_software: CMS is the full system,
|
|
repository_software is the underlying software package
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib"
|
|
description: "Platform powered by Rijksmuseum's Adlib CMS"
|
|
|
|
iiif_support:
|
|
slot_uri: dcterms:conformsTo
|
|
description: |
|
|
Does this platform support IIIF (International Image Interoperability Framework)?
|
|
|
|
Dublin Core: conformsTo indicates standard compliance.
|
|
When true, implies conformance to IIIF API specifications:
|
|
- https://iiif.io/api/image/3/ (Image API 3.0)
|
|
- https://iiif.io/api/presentation/3/ (Presentation API 3.0)
|
|
|
|
IIIF enables:
|
|
- Image API (deep zoom, tiles)
|
|
- Presentation API (manifests, viewers)
|
|
- Content Search API (full-text search)
|
|
- Authentication API (access control)
|
|
|
|
Boolean true/false or null if unknown.
|
|
range: boolean
|
|
examples:
|
|
- value: true
|
|
description: "Platform supports IIIF"
|
|
- value: false
|
|
description: "No IIIF support"
|
|
|
|
linked_data:
|
|
slot_uri: dcterms:conformsTo
|
|
description: |
|
|
Does this platform provide linked open data (RDF)?
|
|
|
|
Dublin Core: conformsTo indicates LOD compliance.
|
|
|
|
Linked data features:
|
|
- RDF triples (Turtle, JSON-LD, N-Triples)
|
|
- SPARQL endpoint
|
|
- Dereferenceable URIs
|
|
- Linked to external vocabularies (Wikidata, Getty, etc.)
|
|
|
|
Boolean true/false or null if unknown.
|
|
range: boolean
|
|
examples:
|
|
- value: true
|
|
description: "Platform provides linked data"
|
|
- value: false
|
|
description: "No linked data"
|
|
|
|
metadata_standards:
|
|
slot_uri: dcterms:conformsTo
|
|
description: |
|
|
Metadata standards implemented by this platform.
|
|
|
|
Dublin Core: conformsTo for standard compliance.
|
|
|
|
Examples:
|
|
- "Dublin Core"
|
|
- "MARC21"
|
|
- "EAD (Encoded Archival Description)"
|
|
- "LIDO"
|
|
- "MODS"
|
|
- "EDM (Europeana Data Model)"
|
|
- "Schema.org"
|
|
- "CIDOC-CRM"
|
|
range: string
|
|
multivalued: true
|
|
examples:
|
|
- value: "Dublin Core"
|
|
description: "Basic descriptive standard"
|
|
- value: "MARC21"
|
|
description: "Library catalog standard"
|
|
|
|
access_restrictions:
|
|
slot_uri: dcterms:accessRights
|
|
description: |
|
|
Access restrictions or rights management for this platform.
|
|
|
|
Dublin Core: accessRights for access control.
|
|
|
|
Examples:
|
|
- "Public access"
|
|
- "Registration required"
|
|
- "Institutional access only"
|
|
- "API key required"
|
|
- "Subscription-based"
|
|
- "Restricted to researchers"
|
|
range: string
|
|
examples:
|
|
- value: "Public access"
|
|
description: "Open to all users"
|
|
- value: "API key required"
|
|
description: "Developer registration needed"
|
|
|
|
auxiliary_platforms:
|
|
slot_uri: dcterms:hasPart
|
|
description: |
|
|
Subordinate or project-based digital platforms associated with this main DigitalPlatform.
|
|
|
|
**DCAT Alignment**:
|
|
|
|
`dcterms:hasPart` - Links main catalog/platform to sub-catalogs.
|
|
|
|
**Hierarchical Pattern - Mirrors CustodianName/CustodianAppellation**:
|
|
|
|
- DigitalPlatform (main entry point) → primary foaf:homepage
|
|
- AuxiliaryDigitalPlatform (project sites) → secondary platforms
|
|
|
|
Like CustodianAppellation provides alternative names for CustodianName,
|
|
AuxiliaryDigitalPlatform provides subordinate platforms for DigitalPlatform.
|
|
|
|
**Use Cases**:
|
|
|
|
1. **Project Websites**: Research project portals, grant-funded sites
|
|
2. **Exhibition Microsites**: Temporary exhibition portals, virtual tours
|
|
3. **APIs and Tools**: Developer APIs, collection browsers, mobile apps
|
|
4. **Legacy/Archived**: Previous website versions, deprecated systems
|
|
5. **Educational Portals**: Teacher resources, learning modules
|
|
|
|
**Example - Rijksmuseum**:
|
|
```yaml
|
|
DigitalPlatform:
|
|
platform_name: "Rijksmuseum Website"
|
|
homepage_web_address: "https://www.rijksmuseum.nl/"
|
|
auxiliary_platforms:
|
|
- platform_name: "Rijksstudio"
|
|
auxiliary_platform_type: PROJECT_WEBSITE
|
|
- platform_name: "Rijksmuseum Data API"
|
|
auxiliary_platform_type: API_ENDPOINT
|
|
- platform_name: "Night Watch Experience"
|
|
auxiliary_platform_type: EXHIBITION_MICROSITE
|
|
```
|
|
|
|
**Temporal Considerations**:
|
|
|
|
Auxiliary platforms often have finite lifespans:
|
|
- Exhibition microsite opens/closes with exhibition
|
|
- Project portals run during funding period
|
|
- Legacy platforms archived but accessible
|
|
|
|
Each AuxiliaryDigitalPlatform tracks archival_status and archived_at.
|
|
range: AuxiliaryDigitalPlatform
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
- platform_name: "Rijksstudio"
|
|
auxiliary_platform_type: PROJECT_WEBSITE
|
|
platform_url: "https://www.rijksmuseum.nl/nl/rijksstudio"
|
|
- platform_name: "Rijksmuseum Data API"
|
|
auxiliary_platform_type: API_ENDPOINT
|
|
platform_url: "https://data.rijksmuseum.nl/"
|
|
description: "Rijksmuseum subordinate digital platforms"
|
|
|
|
temporal_extent:
|
|
slot_uri: crm:P4_has_time-span
|
|
description: |
|
|
Temporal period during which this platform was operational.
|
|
|
|
CIDOC-CRM: P4_has_time-span for platform lifecycle.
|
|
|
|
Use when:
|
|
- Platform launched (begin_of_the_begin)
|
|
- Platform shut down (end_of_the_end)
|
|
- Platform migrated to new URL
|
|
|
|
For current platforms, leave end dates null.
|
|
range: TimeSpan
|
|
examples:
|
|
- value:
|
|
begin_of_the_begin: "2008-11-20"
|
|
end_of_the_begin: "2008-11-20"
|
|
description: "Europeana launched November 20, 2008"
|
|
|
|
was_derived_from:
|
|
slot_uri: prov:wasDerivedFrom
|
|
description: |
|
|
CustodianObservation(s) documenting this platform.
|
|
|
|
PROV-O: wasDerivedFrom for observation provenance.
|
|
|
|
Examples:
|
|
- Website screenshot observation
|
|
- API documentation observation
|
|
- Technical specification observation
|
|
range: CustodianObservation
|
|
multivalued: true
|
|
required: false
|
|
|
|
was_generated_by:
|
|
slot_uri: prov:wasGeneratedBy
|
|
description: |
|
|
ReconstructionActivity that created this platform record.
|
|
|
|
PROV-O: wasGeneratedBy for generation activity.
|
|
|
|
If present: Platform record created through formal reconstruction
|
|
If null: Platform record extracted directly
|
|
range: ReconstructionActivity
|
|
required: false
|
|
|
|
refers_to_custodian:
|
|
slot_uri: dcterms:references
|
|
description: |
|
|
The Custodian hub that operates this digital platform (REQUIRED).
|
|
|
|
Links the digital platform to the custodian it represents.
|
|
|
|
Dublin Core: references for entity reference.
|
|
range: Custodian
|
|
required: true
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"
|
|
description: "Rijksmuseum custodian hub"
|
|
|
|
preservation_level:
|
|
slot_uri: premis:policy
|
|
description: |
|
|
Digital preservation commitment level for this platform.
|
|
|
|
PREMIS: policy links to PreservationPolicy describing preservation actions.
|
|
|
|
Values indicate the level of digital preservation applied:
|
|
- "full_preservation": Complete digital preservation with format migration
|
|
- "bit_preservation": Bit-level integrity preservation only
|
|
- "access_only": No formal preservation commitment
|
|
- "dark_archive": Preserved but not publicly accessible
|
|
|
|
See Library of Congress PREMIS preservation levels:
|
|
http://id.loc.gov/vocabulary/preservation/preservationLevelRole
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: "full_preservation"
|
|
description: "Complete digital preservation with format migration"
|
|
- value: "bit_preservation"
|
|
description: "Bit-level integrity preservation only"
|
|
|
|
storage_location:
|
|
slot_uri: premis:storedAt
|
|
description: |
|
|
Primary storage location or infrastructure for digital content.
|
|
|
|
PREMIS: storedAt links to StorageLocation describing where content is stored.
|
|
|
|
Examples:
|
|
- "AWS S3 eu-west-1" (cloud storage)
|
|
- "On-premises data center, Amsterdam" (physical infrastructure)
|
|
- "DANS Data Archive" (trusted digital repository)
|
|
- "Internet Archive" (third-party preservation service)
|
|
|
|
Note: For detailed storage information, use auxiliary properties
|
|
or link to a dedicated StorageLocation entity.
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: "AWS S3 eu-west-1"
|
|
description: "Cloud storage in EU West region"
|
|
- value: "DANS Data Archive"
|
|
description: "Dutch trusted digital repository"
|
|
|
|
fixity_check_date:
|
|
slot_uri: premis:fixity
|
|
description: |
|
|
Date of most recent fixity/checksum verification.
|
|
|
|
PREMIS: fixity property indicates integrity verification.
|
|
|
|
Regular fixity checks ensure digital content has not been
|
|
corrupted or altered. This date indicates when the last
|
|
verification occurred.
|
|
|
|
Best practices recommend:
|
|
- Monthly fixity checks for actively accessed content
|
|
- Quarterly checks for archived content
|
|
- Immediate verification after any storage migration
|
|
range: date
|
|
required: false
|
|
examples:
|
|
- value: "2025-11-15"
|
|
description: "Last fixity check date"
|
|
|
|
serves_finding_aids:
|
|
slot_uri: rico:isOrWasProviderOf
|
|
range: uriorcurie
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
required: false
|
|
description: |
|
|
Finding aids hosted/served by this digital platform.
|
|
|
|
**INVERSE RELATIONSHIP**:
|
|
- Forward: FindingAid.served_by → DigitalPlatform (finding aid is served by platform)
|
|
- Inverse: DigitalPlatform.serves_finding_aids → FindingAid[] (platform serves finding aids)
|
|
|
|
**RiC-O ALIGNMENT**:
|
|
`rico:isOrWasProviderOf` - The agent (platform) provides the finding aid.
|
|
|
|
**USE CASES**:
|
|
1. "What finding aids are available on this platform?" → Follow serves_finding_aids
|
|
2. "Which platforms host EAD finding aids?" → Query platforms with EAD-format finding aids
|
|
3. Platform inventory: Map all finding aids served by each digital infrastructure
|
|
|
|
**EXAMPLES**:
|
|
- National Archives website serves collection guides and inventories
|
|
- Regional archive portal serves EAD-encoded finding aids
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/finding-aid/na/voc-inventory"
|
|
description: "VOC Archives inventory finding aid"
|
|
- value: "https://nde.nl/ontology/hc/finding-aid/rm/paintings-catalogue"
|
|
description: "Rijksmuseum paintings catalogue"
|
|
|
|
data_service_endpoints:
|
|
slot_uri: dcat:servesDataset
|
|
range: DataServiceEndpoint
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
required: false
|
|
description: |
|
|
Data service endpoints exposed by this digital platform.
|
|
|
|
**DCAT ALIGNMENT**:
|
|
`dcat:servesDataset` - Links a DataService to the datasets it serves.
|
|
|
|
**ENDPOINT TYPES**:
|
|
This polymorphic slot can contain any subclass of DataServiceEndpoint:
|
|
- OAIPMHEndpoint: OAI-PMH metadata harvesting endpoints
|
|
- SearchAPI: REST/JSON search API endpoints
|
|
- METSAPI: METS document retrieval endpoints
|
|
- FileAPI: File/asset download endpoints
|
|
- IIPImageServer: IIP/IIIF image server endpoints
|
|
- EADDownload: EAD finding aid download endpoints
|
|
|
|
**USE CASES**:
|
|
1. "What APIs does this platform expose?" → Follow data_service_endpoints
|
|
2. "Which platforms support OAI-PMH?" → Filter by OAIPMHEndpoint type
|
|
3. Technical integration: Discover all programmatic access points
|
|
4. Data harvesting: Find endpoints for metadata aggregation
|
|
|
|
**RELATIONSHIP TO SIMPLE SLOTS**:
|
|
- `api_endpoint`, `sparql_endpoint`, `oai_pmh_endpoint` (simple URI slots) provide quick access
|
|
- `data_service_endpoints` provides FULL documentation of each endpoint with:
|
|
- Protocol details and versions
|
|
- Authentication requirements
|
|
- Rate limits and usage policies
|
|
- Response formats and metadata standards
|
|
- Discovery provenance
|
|
|
|
**EXAMPLE - Nationaal Archief**:
|
|
```yaml
|
|
data_service_endpoints:
|
|
- endpoint_type: OAIPMHEndpoint
|
|
endpoint_name: "NA OAI-PMH Endpoint"
|
|
endpoint_url: "https://www.nationaalarchief.nl/onderzoeken/oai-pmh"
|
|
protocol_version: "2.0"
|
|
metadata_prefixes: ["oai_dc", "ese", "edm"]
|
|
- endpoint_type: SearchAPI
|
|
endpoint_name: "NA Search API"
|
|
endpoint_url: "https://www.nationaalarchief.nl/onderzoeken/api/zoeken"
|
|
http_method: POST
|
|
response_formats: ["application/json"]
|
|
- endpoint_type: IIPImageServer
|
|
endpoint_name: "NA Image Server"
|
|
endpoint_url: "https://service.archief.nl/iipsrv"
|
|
server_software: "IIPImage Server"
|
|
iiif_image_api_version: "3.0"
|
|
```
|
|
examples:
|
|
- value:
|
|
- endpoint_id: "https://nde.nl/ontology/hc/endpoint/na-oai-pmh"
|
|
endpoint_name: "Nationaal Archief OAI-PMH"
|
|
endpoint_url: "https://www.nationaalarchief.nl/onderzoeken/oai-pmh"
|
|
protocol: OAI_PMH
|
|
status: ACTIVE
|
|
description: "Nationaal Archief data service endpoints"
|
|
|
|
comments:
|
|
- "DigitalPlatform is DIRECTLY linked to Custodian hub (not a subclass of CustodianObservation)"
|
|
- "Used by BOTH physical institutions (website) and digital-first custodians (primary platform)"
|
|
- "Multivalued on Custodian: one custodian can have multiple platforms (website + API + mobile app)"
|
|
- "Temporal validity tracks platform lifecycle (launch, shutdown, migration)"
|
|
- "IIIF and linked data flags enable discovery of interoperable platforms"
|
|
- "NEW: auxiliary_platforms links to subordinate AuxiliaryDigitalPlatform sites (project portals, microsites, APIs)"
|
|
- "Hierarchical pattern mirrors CustodianName → CustodianAppellation relationship"
|
|
|
|
see_also:
|
|
- "https://schema.org/WebSite"
|
|
- "https://www.w3.org/ns/dcat"
|
|
- "https://iiif.io/"
|
|
- "http://usefulinc.com/ns/doap#"
|
|
- "https://www.loc.gov/standards/premis/"
|
|
|
|
examples:
|
|
- value:
|
|
platform_id: "https://nde.nl/ontology/hc/platform/rijksmuseum-website"
|
|
platform_name: "Rijksmuseum Website"
|
|
platform_type: ["DISCOVERY_PORTAL"]
|
|
homepage_web_address: "https://www.rijksmuseum.nl/"
|
|
collection_web_addresses:
|
|
- "https://www.rijksmuseum.nl/nl/rijksstudio"
|
|
api_endpoint: "https://www.rijksmuseum.nl/api/"
|
|
iiif_support: true
|
|
linked_data: true
|
|
metadata_standards:
|
|
- "Dublin Core"
|
|
- "LIDO"
|
|
access_restrictions: "Public access, API key required for API"
|
|
refers_to_custodian: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"
|
|
description: "Rijksmuseum digital platform (physical museum with website)"
|
|
|
|
- value:
|
|
platform_id: "https://nde.nl/ontology/hc/platform/europeana"
|
|
platform_name: "Europeana Platform"
|
|
platform_type: ["AGGREGATION_PLATFORM", "API_SERVICE"]
|
|
homepage_web_address: "https://www.europeana.eu/"
|
|
collection_web_addresses:
|
|
- "https://www.europeana.eu/en/collections"
|
|
api_endpoint: "https://api.europeana.eu/record/v2/"
|
|
sparql_endpoint: "https://api.europeana.eu/sparql"
|
|
oai_pmh_endpoint: "https://www.europeana.eu/oai"
|
|
programming_languages: ["Java", "Python", "JavaScript"]
|
|
iiif_support: true
|
|
linked_data: true
|
|
metadata_standards:
|
|
- "EDM (Europeana Data Model)"
|
|
- "Dublin Core"
|
|
- "LIDO"
|
|
- "EAD"
|
|
access_restrictions: "Public access, API key required for API"
|
|
temporal_extent:
|
|
begin_of_the_begin: "2008-11-20"
|
|
end_of_the_begin: "2008-11-20"
|
|
refers_to_custodian: "https://nde.nl/ontology/hc/eu-europeana"
|
|
description: "Europeana platform (digital-first aggregation platform)"
|
|
|
|
slots:
|
|
platform_id:
|
|
description: Unique identifier for the platform
|
|
range: uriorcurie
|
|
|
|
# NOTE: platform_name imported from global slot ../slots/platform_name.yaml
|
|
|
|
# NOTE: platform_type imported from global slot ../slots/platform_type.yaml
|
|
|
|
homepage_web_address:
|
|
description: Primary homepage URL
|
|
range: uri
|
|
|
|
collection_web_addresses:
|
|
description: Collection access URLs
|
|
range: uri
|
|
|
|
inventory_web_addresses:
|
|
description: Inventory/finding aid URLs
|
|
range: uri
|
|
|
|
# NOTE: api_endpoint imported from global slot ../slots/api_endpoint.yaml
|
|
|
|
# NOTE: sparql_endpoint imported from global slot ../slots/sparql_endpoint.yaml
|
|
# NOTE: oai_pmh_endpoint imported from global slot ../slots/oai_pmh_endpoint.yaml
|
|
|
|
programming_languages:
|
|
description: Programming languages used
|
|
range: string
|
|
|
|
repository_software:
|
|
description: Repository software used
|
|
range: string
|
|
|
|
# NOTE: powered_by_cms imported from global slot ../slots/powered_by_cms.yaml
|
|
|
|
iiif_support:
|
|
description: IIIF support flag
|
|
range: boolean
|
|
|
|
linked_data:
|
|
description: Linked open data flag
|
|
range: boolean
|
|
|
|
# NOTE: metadata_standards imported from global slot ../slots/metadata_standards.yaml
|
|
|
|
# NOTE: access_restrictions imported from global slot ../slots/access_restrictions.yaml
|
|
|
|
# NOTE: preservation_level imported from global slot ../slots/preservation_level.yaml
|
|
|
|
# NOTE: storage_location imported from global slot ../slots/storage_location.yaml
|
|
# Use slot_usage in class to customize range
|
|
|
|
fixity_check_date:
|
|
slot_uri: premis:fixity
|
|
description: Date of most recent fixity/checksum verification
|
|
range: date
|
|
|
|
data_service_endpoints:
|
|
slot_uri: dcat:servesDataset
|
|
description: Data service endpoints exposed by this digital platform
|
|
range: DataServiceEndpoint
|
|
multivalued: true
|
|
inlined_as_list: true
|