glam/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml
kempersc f3c0586d09 Refactor schema and slots for improved clarity and organization
- Updated `has_or_had_url` slot to allow a broader range of values by changing its range from `uriorcurie` to `Any`.
- Removed obsolete slots: `house_number`, `html_file`, `html_snapshot_path`, and `http_status_code`.
- Introduced new classes: `CeasingEvent`, `FileLocation`, `FilePath`, `HTMLFile`, `HTTPStatusCode`, `HouseNumber`, `MaximumHumidity`, `MinimumHumidity`, `TargetHumidity`, and `WKT` to better represent various concepts.
- Migrated existing slots to new structures, ensuring alignment with RiC-O naming conventions.
- Added new slots: `ceases_or_ceased_through`, `has_or_had_file_location`, `has_or_had_file_path`, `has_or_had_http_status`, and `is_or_was_observed_by` to capture additional metadata.
- Enhanced descriptions and annotations for clarity and context.
2026-01-28 10:49:49 +01:00

495 lines
19 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
- ./DataServiceEndpointTypes
- ../slots/has_or_had_auxiliary_entities
- ../slots/has_or_had_powered_by_cm
- ../slots/has_or_had_access_restriction
- ../slots/preservation_level
- ../slots/has_or_had_endpoint
- ../classes/APIEndpoint
- ../slots/metadata_standard
- ../slots/sparql_endpoint
- ../slots/oai_pmh_endpoint
- ../slots/platform_type
- ../slots/platform_name
- ../slots/is_or_was_stored_at
- ./StorageLocation
- ../slots/serves_finding_aid
- ./ReconstructedEntity
- ../slots/has_or_had_data_service_endpoint
- ../slots/has_or_had_web_page
- ./URL
- ./WebPage
- ../slots/is_or_was_checked_through
- ./FixityVerification
- ../slots/homepage_web_address
- ../slots/iiif_support
- ../slots/inventory_web_address
- ../slots/linked_data
- ../slots/platform_id
- ../slots/programming_language
- ../slots/refers_to_custodian
- ../slots/repository_software
- ../slots/specificity_annotation
- ../slots/has_or_had_score
- ../slots/temporal_extent
- ../slots/is_or_was_derived_from
- ../slots/is_or_was_generated_by
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
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.\n\n**CRITICAL DISTINCTION**:\n\n**DigitalPlatform CLASS** (this class):\n- Represents the DIGITAL INFRASTRUCTURE of any custodian\n- Used by PHYSICAL institutions (museums, archives, libraries) to represent their websites\n- Used by DIGITAL-FIRST institutions to represent their primary platform\n- Examples: Rijksmuseum website, museum online catalog, archive digital portal\n\n**DigitalPlatformType** (custodian type):\n- Classification for DIGITAL-FIRST custodians (online-only, no physical building)\n- Example: Europeana (aggregation platform), Internet Archive (born-digital)\n\n**Decision Rules**:\n\n1. **Physical Institution with Website**:\n - Custodian.custodian_type = MUSEUM/ARCHIVE/LIBRARY (not DIGITAL_PLATFORM)\n - Custodian.digital_platform \u2192 DigitalPlatform instance (this class)\n - Example: Rijksmuseum (MUSEUM) has Rijksstudio (DigitalPlatform)\n\n2. **Digital-First Institution**:\n\
\ - Custodian.custodian_type = DIGITAL_PLATFORM (DigitalPlatformType)\n - Custodian.digital_platform \u2192 DigitalPlatform instance (primary platform)\n - Example: Europeana (DIGITAL_PLATFORM) operates at https://europeana.eu/\n\n**Relationship to Custodian Hub**:\n\nDigitalPlatform is DIRECTLY connected to Custodian via refers_to_custodian,\njust like CustodianPlace, CustodianName, and CustodianLegalStatus.\n\nThis allows modeling:\n- Multiple digital platforms per custodian (website + API + mobile app)\n- Platform evolution over time (temporal validity)\n- Platform features and technical capabilities\n- Access points for digital heritage\n\n- Schema.org: schema:WebSite (primary), schema:WebApplication\n- DCAT: dcat:Catalog (for aggregation platforms), dcat:DataService (for APIs)\n- FOAF: foaf:homepage, foaf:Document\n- CIDOC-CRM: crm:E73_Information_Object (digital objects)\n\n**Example - Physical Museum with Digital Platform**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\
\n preferred_label: \"Rijksmuseum\"\n custodian_type: MUSEUM # Physical institution\n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n platform_type: DISCOVERY_PORTAL\n iiif_support: true\n linked_data: true\n```\n\n**Example - Digital-First Platform**:\n```yaml\nCustodian:\n has_or_had_identifier: \"https://nde.nl/ontology/hc/eu-europeana\"\n preferred_label: \"Europeana\"\n custodian_type: DIGITAL_PLATFORM # Digital-first\n digital_platform:\n - platform_name: \"Europeana Platform\"\n homepage_web_address: \"https://www.europeana.eu/\"\n platform_type: AGGREGATION_PLATFORM\n api_endpoint: \"https://api.europeana.eu/\"\n iiif_support: true\n linked_data: true\n programming_languages: [\"Java\", \"Python\", \"JavaScript\"]\n```\n"
exact_mappings:
- schema:WebSite
- foaf:homepage
close_mappings:
- schema:WebApplication
- dcat:Catalog
- dcat:DataService
- crm:E73_Information_Object
- doap:Project
- premis:IntellectualEntity
related_mappings:
- foaf:Document
- schema:SoftwareApplication
- dcat:accessURL
slots:
- has_or_had_access_restriction
- has_or_had_endpoint
- has_or_had_auxiliary_entities
- has_or_had_web_page
- has_or_had_data_service_endpoint
- is_or_was_checked_through
- has_or_had_url
- iiif_support
- inventory_web_address
- linked_data
- metadata_standard
- oai_pmh_endpoint
- platform_id
- platform_name
- platform_type
- has_or_had_powered_by_cm
- preservation_level
- programming_language
- refers_to_custodian
- repository_software
- serves_finding_aid
- sparql_endpoint
- specificity_annotation
- is_or_was_stored_at
- has_or_had_score
- temporal_extent
- is_or_was_derived_from
- is_or_was_generated_by
attributes:
platform_url:
range: uri
description: URL of the platform (enrichment data field)
platform_category:
range: Any
description: Category of platform (can be string or list)
digital_collections:
range: string
description: Description of digital collections available
technology_stack:
range: string
description: Technology stack description
data_standards:
range: Any
description: Data standards used (can be string or list)
user_services:
range: string
description: User services offered
sustainability_model:
range: string
description: Sustainability/funding model
enrichment_timestamp:
range: string
description: Timestamp of enrichment extraction
source_method:
range: string
description: Method used to extract data (automated_extraction, manual, etc.)
enrichment_source:
range: string
description: Source of enrichment data (kien_registry, KB Netherlands Library Network, manual_curation, web_research, website_scrape_and_google_maps, etc.)
provenance:
range: Any
description: Provenance information for this platform record
inlined: true
slot_usage:
platform_id:
range: uriorcurie
required: false
examples:
- value: https://nde.nl/ontology/hc/platform/rijksmuseum-website
description: Platform ID for Rijksmuseum website
platform_name:
range: string
required: false
examples:
- value: Rijksmuseum Website
description: Main website name
- value: Europeana Platform
description: Aggregation platform name
platform_type:
range: Any
multivalued: false
required: false
description: Platform type - can be string, array of DigitalPlatformType, or null
examples:
- value: DigitalArchivePlatform
description: Digital archive platform (wd:Q1224984)
- value: AggregationPlatform
description: Aggregation platform (wd:Q7894)
- value: WEBSITE
description: Simple string type from enrichment data
has_or_had_url:
range: URL
required: false
inlined: true
description: 'Homepage URL of the platform.
MIGRATED from homepage_web_address (Rule 53).
Uses generic has_or_had_url with range URL.
'
examples:
- value:
has_or_had_url: https://www.rijksmuseum.nl/
has_or_had_type: homepage
description: Rijksmuseum homepage
- value:
has_or_had_url: https://www.europeana.eu/
has_or_had_type: homepage
description: Europeana homepage
has_or_had_web_page:
description: 'MIGRATED from collection_web_address per slot_fixes.yaml (Rule 53, 2026-01-22).
Web pages for accessing digital collections on this platform.
Uses WebPage class for structured representation with URL and metadata.
'
range: WebPage
multivalued: true
inlined: true
inlined_as_list: true
examples:
- value:
has_or_had_label:
label_value: Rijksstudio Collections
has_or_had_url:
- has_or_had_url: https://www.rijksmuseum.nl/nl/rijksstudio
has_or_had_type: collection_access
description: Rijksstudio collection access web page
inventory_web_address:
range: uri
multivalued: true
examples:
- value: https://www.nationaalarchief.nl/onderzoeken/index
description: National Archives finding aids
has_or_had_endpoint:
range: APIEndpoint
inlined: true
description: 'API endpoint for the platform.
MIGRATED from has_or_had_api_endpoint per Rule 53.
Uses APIEndpoint class.
'
examples:
- value:
has_or_had_url: https://api.europeana.eu/record/v2/
has_or_had_description: Europeana REST API endpoint
description: API endpoint
sparql_endpoint:
range: uri
examples:
- value: https://api.europeana.eu/sparql
description: Europeana SPARQL endpoint
oai_pmh_endpoint:
range: uri
examples:
- value: https://www.europeana.eu/oai
description: Europeana OAI-PMH endpoint
programming_language:
range: string
multivalued: true
examples:
- value: Java
description: Primary backend language
- value: Python
description: Data processing language
- value: JavaScript
description: Frontend language
repository_software:
range: string
examples:
- value: DSpace 7.2
description: Digital repository software
has_or_had_powered_by_cm:
range: CollectionManagementSystem
multivalued: true
required: false
examples:
- value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib
description: Platform powered by Rijksmuseum's Adlib CMS
iiif_support:
range: boolean
examples:
- value: true
description: Platform supports IIIF
- value: false
description: No IIIF support
linked_data:
range: boolean
examples:
- value: true
description: Platform provides linked data
- value: false
description: No linked data
metadata_standard:
range: string
multivalued: true
examples:
- value: Dublin Core
description: Basic descriptive standard
- value: MARC21
description: Library catalog standard
has_or_had_access_restriction:
range: string
examples:
- value: Public access
description: Open to all users
- value: API key required
description: Developer registration needed
is_or_was_associated_with:
description: 'MIGRATED from auxiliary_platforms/has_or_had_auxiliary_entities (Rule 53).
Subordinate or auxiliary digital platforms associated with this platform.
Range narrowed to AuxiliaryDigitalPlatform.
'
range: AuxiliaryDigitalPlatform
multivalued: true
inlined_as_list: true
required: false
examples:
- value:
- platform_name: Rijksstudio
has_or_had_type:
has_or_had_label: PROJECT_WEBSITE
platform_url: https://www.rijksmuseum.nl/nl/rijksstudio
- platform_name: Rijksmuseum Data API
has_or_had_type:
has_or_had_label: API_ENDPOINT
platform_url: https://data.rijksmuseum.nl/
description: Rijksmuseum subordinate digital platforms
temporal_extent:
range: TimeSpan
examples:
- value:
begin_of_the_begin: '2008-11-20'
end_of_the_begin: '2008-11-20'
description: Europeana launched November 20, 2008
is_or_was_derived_from:
range: CustodianObservation
multivalued: true
required: false
is_or_was_generated_by:
range: ReconstructionActivity
required: false
refers_to_custodian:
range: Custodian
required: false
examples:
- value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Rijksmuseum custodian hub
preservation_level:
range: string
required: false
examples:
- value: full_preservation
description: Complete digital preservation with format migration
- value: bit_preservation
description: Bit-level integrity preservation only
is_or_was_stored_at:
range: StorageLocation
required: false
inlined: true
description: 'Physical or digital storage infrastructure for this platform.
MIGRATED from storage_location per slot_fixes.yaml (Rule 53).
Uses StorageLocation class for unified location modeling.
'
examples:
- value:
has_or_had_identifier: aws-s3-eu-west-1
has_or_had_label:
label_text: AWS S3 eu-west-1
language: en
description: Cloud storage in EU West region
- value:
has_or_had_identifier: dans-data-archive
has_or_had_label:
label_text: DANS Data Archive
language: en
description: Dutch trusted digital repository
is_or_was_checked_through:
description: 'Verification of data integrity (fixity check).
MIGRATED from fixity_check_date per Rule 53.
Uses FixityVerification class with temporal_extent.
'
range: FixityVerification
inlined: true
required: false
examples:
- value:
temporal_extent:
begin_of_the_begin: '2025-11-15'
has_or_had_label: Last full fixity check
description: Last fixity check date
serves_finding_aid:
range: uriorcurie
multivalued: true
inlined_as_list: true
required: false
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
has_or_had_data_service_endpoint:
range: DataServiceEndpoint
multivalued: true
inlined_as_list: true
required: false
examples:
- value:
- endpoint_id: https://nde.nl/ontology/hc/endpoint/na-oai-pmh
endpoint_name: Nationaal Archief OAI-PMH
has_or_had_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
- "MIGRATED: auxiliary_platforms \u2192 has_or_had_auxiliary_entities for AuxiliaryDigitalPlatform sites (project portals, microsites, APIs)"
- "Hierarchical pattern mirrors CustodianName \u2192 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
has_or_had_url:
has_or_had_url: https://www.rijksmuseum.nl/
has_or_had_type: homepage
has_or_had_web_page:
- has_or_had_label:
label_value: Rijksstudio Collections
has_or_had_url:
- has_or_had_url: https://www.rijksmuseum.nl/nl/rijksstudio
has_or_had_type: collection_access
api_endpoint: https://www.rijksmuseum.nl/api/
iiif_support: true
linked_data: true
metadata_standard:
- 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
has_or_had_url:
has_or_had_url: https://www.europeana.eu/
has_or_had_type: homepage
has_or_had_web_page:
- has_or_had_label:
label_value: Europeana Collections Browse
has_or_had_url:
- has_or_had_url: https://www.europeana.eu/en/collections
has_or_had_type: collection_access
has_or_had_endpoint:
has_or_had_url: https://api.europeana.eu/record/v2/
sparql_endpoint: https://api.europeana.eu/sparql
oai_pmh_endpoint: https://www.europeana.eu/oai
programming_language:
- Java
- Python
- JavaScript
iiif_support: true
linked_data: true
metadata_standard:
- 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)
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept