glam/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml
kempersc dfa667c90f Fix LinkML schema for valid RDF generation with proper slot_uri
Summary:
- Create 46 missing slot definition files with proper slot_uri values
- Add slot imports to main schema (01_custodian_name_modular.yaml)
- Fix YAML examples sections in 116+ class and slot files
- Fix PersonObservation.yaml examples section (nested objects → string literals)

Technical changes:
- All slots now have explicit slot_uri mapping to base ontologies (RiC-O, Schema.org, SKOS)
- Eliminates malformed URIs like 'custodian/:slot_name' in generated RDF
- gen-owl now produces valid Turtle with 153,166 triples

New slot files (46):
- RiC-O slots: rico_note, rico_organizational_principle, rico_has_or_had_holder, etc.
- Scope slots: scope_includes, scope_excludes, archive_scope
- Organization slots: organization_type, governance_authority, area_served
- Platform slots: platform_type_category, portal_type_category
- Social media slots: social_media_platform_category, post_type_*
- Type hierarchy slots: broader_type, narrower_types, custodian_type_broader
- Wikidata slots: wikidata_equivalent, wikidata_mapping

Generated output:
- schemas/20251121/rdf/01_custodian_name_modular_20260107_134534_clean.owl.ttl (6.9MB)
- Validated with rdflib: 153,166 triples, no malformed URIs
2026-01-07 13:48:03 +01:00

824 lines
31 KiB
YAML

id: https://nde.nl/ontology/hc/class/digital-platform
name: digital_platform_class
title: DigitalPlatform Class
imports:
- linkml:types
- ./Custodian
- ./CustodianObservation
- ./ReconstructionActivity
- ./DigitalPlatformType
- ./DigitalPlatformTypes
- ./AuxiliaryDigitalPlatform
- ./TimeSpan
- ./CollectionManagementSystem
- ./DataServiceEndpoint
- ./OAIPMHEndpoint
- ./SearchAPI
- ./METSAPI
- ./FileAPI
- ./IIPImageServer
- ./EADDownload
- ../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
- ../slots/data_service_endpoints
- ../slots/class_metadata_slots
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
- 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:
- access_restrictions
- api_endpoint
- auxiliary_platforms
- collection_web_addresses
- data_service_endpoints
- fixity_check_date
- homepage_web_address
- iiif_support
- inventory_web_addresses
- linked_data
- metadata_standards
- oai_pmh_endpoint
- platform_id
- platform_name
- platform_type
- powered_by_cms
- preservation_level
- programming_languages
- refers_to_custodian
- repository_software
- serves_finding_aids
- sparql_endpoint
- specificity_annotation
- storage_location
- template_specificity
- temporal_extent
- was_derived_from
- was_generated_by
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 DigitalPlatformType class hierarchy.\n\
\n**Class-based Type System** (replaces DigitalPlatformTypeEnum):\n\nPlatform\
\ types are organized into 8 high-level categories:\n- REPOSITORY: Digital\
\ archives, libraries, institutional repositories\n- AGGREGATOR: Aggregation\
\ and harvesting platforms \n- DISCOVERY: Search portals, catalogs, discovery\
\ interfaces\n- VIRTUAL_HERITAGE: 3D, VR/AR, immersive experiences\n- RESEARCH:\
\ Research data platforms, annotation tools\n- INTERACTIVE: Crowdsourcing,\
\ social, user contribution\n- COMMERCE: Licensing, print-on-demand, e-commerce\n\
- AUXILIARY: APIs, mobile apps, specialized tools\n\nEach category contains\
\ multiple concrete subclasses with Wikidata mappings.\nSee DigitalPlatformTypes.yaml\
\ for 69 concrete platform types.\n\nA platform may have multiple types\
\ (e.g., digital archive + aggregator).\n"
range: DigitalPlatformType
multivalued: true
required: false
examples:
- value: DigitalArchivePlatform
description: Digital archive platform (wd:Q1224984)
- value: AggregationPlatform
description: Aggregation platform (wd:Q7894)
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.\n\
\nCIDOC-CRM: P33i_was_used_by (inverse of P33_used_specific_technique).\n\
The CMS provides the backend/technique for the digital platform.\n\n**Bidirectional\
\ Relationship**:\n- Forward: DigitalPlatform → CollectionManagementSystem\
\ (powered_by_cms)\n- Reverse: CollectionManagementSystem → DigitalPlatform\
\ (powers_platform)\n\n**Use Cases**:\n1. \"What CMS powers this website?\"\
\ → Follow powered_by_cms\n2. \"What websites use CollectiveAccess?\" →\
\ Follow powers_platform\n3. Technical assessment: Determine backend infrastructure\
\ of platforms\n\n**Notes**:\n- Multivalued: Platform may use multiple CMS\
\ (e.g., hybrid architecture)\n- If null, CMS may be unknown or platform\
\ is custom-built\n- Distinct from repository_software: CMS is the full\
\ system, \n repository_software is the underlying software package\n"
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.\n\nPREMIS:\
\ fixity property indicates integrity verification.\n\nRegular fixity checks\
\ ensure digital content has not been \ncorrupted or altered. This date\
\ indicates when the last \nverification occurred.\n\nBest practices recommend:\n\
- Monthly fixity checks for actively accessed content\n- Quarterly checks\
\ for archived content\n- Immediate verification after any storage migration\n"
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
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
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:
- DiscoveryPortal
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:
- AggregationPlatform
- APIService
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
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
programming_languages:
description: Programming languages used
range: string
repository_software:
description: Repository software used
range: string
iiif_support:
description: IIIF support flag
range: boolean
linked_data:
description: Linked open data flag
range: boolean
fixity_check_date:
slot_uri: premis:fixity
description: Date of most recent fixity/checksum verification
range: date