From eff2f47f6fef7a95477e2f68ccf15ef7604e5521 Mon Sep 17 00:00:00 2001 From: kempersc Date: Tue, 25 Nov 2025 15:06:43 +0100 Subject: [PATCH] Add auxiliary enums and slots for digital platforms and physical locations - Created AuxiliaryDigitalPlatformTypeEnum.yaml to classify types of secondary digital platforms. - Created AuxiliaryPlaceTypeEnum.yaml to classify types of secondary physical locations. - Added OrganizationBranchTypeEnum.yaml for formal organizational branches at auxiliary locations. - Introduced auxiliary_places.yaml slot to link CustodianPlace to subordinate physical locations. - Introduced auxiliary_platforms.yaml slot to link DigitalPlatform to subordinate digital properties. - Added located_at.yaml slot to connect OrganizationalStructure to physical locations. --- .../classes/AuxiliaryDigitalPlatform.yaml | 610 ++++++++++++++++++ .../modules/classes/CustodianPlace.yaml | 57 ++ .../modules/classes/DigitalPlatform.yaml | 66 ++ .../classes/OrganizationalStructure.yaml | 68 ++ .../AuxiliaryDigitalPlatformTypeEnum.yaml | 168 +++++ .../modules/enums/AuxiliaryPlaceTypeEnum.yaml | 132 ++++ .../enums/OrganizationBranchTypeEnum.yaml | 134 ++++ .../modules/slots/auxiliary_places.yaml | 98 +++ .../modules/slots/auxiliary_platforms.yaml | 110 ++++ .../linkml/modules/slots/located_at.yaml | 82 +++ 10 files changed, 1525 insertions(+) create mode 100644 schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml create mode 100644 schemas/20251121/linkml/modules/enums/AuxiliaryDigitalPlatformTypeEnum.yaml create mode 100644 schemas/20251121/linkml/modules/enums/AuxiliaryPlaceTypeEnum.yaml create mode 100644 schemas/20251121/linkml/modules/enums/OrganizationBranchTypeEnum.yaml create mode 100644 schemas/20251121/linkml/modules/slots/auxiliary_places.yaml create mode 100644 schemas/20251121/linkml/modules/slots/auxiliary_platforms.yaml create mode 100644 schemas/20251121/linkml/modules/slots/located_at.yaml diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml new file mode 100644 index 0000000000..bfdf66351e --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -0,0 +1,610 @@ +# Heritage Auxiliary Digital Platform Class +# Represents subordinate/project-based digital platforms of a heritage custodian +# DCAT: dcat:Catalog for secondary digital services + +id: https://nde.nl/ontology/hc/class/auxiliary-digital-platform +name: auxiliary-digital-platform-class +title: AuxiliaryDigitalPlatform Class + +imports: + - linkml:types + - ./Custodian + - ./DigitalPlatform + - ./CustodianObservation + - ./ReconstructionActivity + - ./TimeSpan + - ../enums/AuxiliaryDigitalPlatformTypeEnum + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcat: http://www.w3.org/ns/dcat# + dcterms: http://purl.org/dc/terms/ + foaf: http://xmlns.com/foaf/0.1/ + prov: http://www.w3.org/ns/prov# + skos: http://www.w3.org/2004/02/skos/core# + +classes: + AuxiliaryDigitalPlatform: + class_uri: dcat:Catalog + description: >- + Subordinate or project-based digital platform associated with a heritage custodian. + + **CRITICAL DISTINCTION - THREE-TIER DIGITAL PLATFORM MODEL**: + + 1. **DigitalPlatform** (main digital entry point): + - Primary web presence of the custodian + - Main website, primary API, flagship digital platform + - Like CustodianPlace is the preferred place reference + - Examples: rijksmuseum.nl, europeana.eu, nationaalarchief.nl + + 2. **AuxiliaryDigitalPlatform** (subordinate platforms) - THIS CLASS: + - Secondary digital properties: project sites, exhibition microsites + - Like CustodianAppellation is to CustodianName + - Examples: project websites, temporary exhibition portals, specialized tools + + 3. **DigitalPlatformType** (custodian type classification): + - For digital-FIRST custodians (no physical building) + - Applied at Custodian.custodian_type level + - Examples: Europeana (aggregation platform), Internet Archive + + **DCAT ALIGNMENT**: + + `dcat:Catalog` - "A curated collection of metadata about datasets" + + Key properties: + - `dcat:dataset` - links to datasets/collections + - `dcat:service` - data services provided + - `dcterms:isPartOf` - links to parent catalog + + **RELATIONSHIP TO DIGITALPLATFORM**: + + AuxiliaryDigitalPlatform represents SUBORDINATE digital presence + DigitalPlatform represents PRIMARY digital entry point + + ``` + Custodian (hub) + │ + └── digital_platform → DigitalPlatform (main digital entry) + └── auxiliary_platforms → AuxiliaryDigitalPlatform (project sites) + ``` + + **USE CASES**: + + 1. **Project Websites**: + - Rijksmuseum → Rijksstudio API (separate from main website) + - National Archives → WW2 Portal (thematic project) + + 2. **Exhibition Microsites**: + - Temporary exhibition with dedicated website + - Virtual tour for specific collection + + 3. **Specialized Tools/Apps**: + - Mobile app (separate from responsive website) + - Collection browser tool + - Crowdsourcing platform + + 4. **Legacy/Archived Platforms**: + - Previous website versions + - Deprecated APIs still in use + + 5. **Grant-Funded Projects**: + - EU-funded digitization project portal + - Research project data portal + + 6. **Educational Platforms**: + - Teacher resources portal + - Student learning modules + - Workshop booking system + + **Example - Rijksmuseum Auxiliary Platforms**: + ```yaml + Custodian: + hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" + preferred_label: "Rijksmuseum" + digital_platform: + - platform_name: "Rijksmuseum Website" + homepage_web_address: "https://www.rijksmuseum.nl/" + auxiliary_platforms: + - platform_name: "Rijksstudio" + auxiliary_platform_type: PROJECT_WEBSITE + platform_url: "https://www.rijksmuseum.nl/nl/rijksstudio" + platform_purpose: "Personal collection creation and high-res image downloads" + - platform_name: "Rijksmuseum Data API" + auxiliary_platform_type: API_ENDPOINT + platform_url: "https://data.rijksmuseum.nl/" + platform_purpose: "Developer access to collection metadata and images" + - platform_name: "Night Watch Experience" + auxiliary_platform_type: EXHIBITION_MICROSITE + platform_url: "https://www.rijksmuseum.nl/en/stories/operation-night-watch" + platform_purpose: "Interactive exploration of Night Watch research project" + ``` + + **TEMPORAL VALIDITY**: + + Auxiliary platforms often have finite lifespans: + - Exhibition microsite: opens with exhibition, archived after closure + - Project portal: funded period, then deprecated or integrated + - Legacy platforms: valid_to when replaced by new system + + exact_mappings: + - dcat:Catalog + + close_mappings: + - schema:WebSite + - dcat:DataService + - foaf:Document + + related_mappings: + - dcterms:isPartOf + - schema:isRelatedTo + - dcat:servesDataset + + slots: + - auxiliary_platform_id + - platform_name + - auxiliary_platform_type + - platform_url + - platform_purpose + - platform_description + - api_documentation + - technology_stack + - is_auxiliary_of + - provides_access_to + - related_project + - funding_source + - iiif_support + - linked_data + - valid_from + - valid_to + - temporal_extent + - archival_status + - archived_at + - was_derived_from + - was_generated_by + - refers_to_custodian + + slot_usage: + auxiliary_platform_id: + slot_uri: dcterms:identifier + description: >- + Unique identifier for this auxiliary digital platform. + Format: URI following NDE Heritage Custodian ontology conventions. + range: uriorcurie + required: true + identifier: true + examples: + - value: "https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio" + description: "Rijksstudio platform ID" + + platform_name: + slot_uri: dcterms:title + description: >- + Name of this auxiliary digital platform. + + Dublin Core: title for resource name. + + This is the human-readable name of the secondary platform. + range: string + required: true + examples: + - value: "Rijksstudio" + description: "Personal collection tool" + - value: "Operation Night Watch" + description: "Research project microsite" + - value: "WW2 Portal" + description: "Thematic archive portal" + + auxiliary_platform_type: + slot_uri: dcterms:type + description: >- + Type of auxiliary platform using AuxiliaryDigitalPlatformTypeEnum. + + Types include: + - PROJECT_WEBSITE: Dedicated project site + - EXHIBITION_MICROSITE: Temporary exhibition portal + - API_ENDPOINT: Programmatic interface (separate from main API) + - MOBILE_APP: Native or hybrid mobile application + - COLLECTION_BROWSER: Specialized collection exploration tool + - CROWDSOURCING_PLATFORM: User contribution portal + - EDUCATIONAL_PORTAL: Learning resources + - DATA_PORTAL: Dataset download/access + - LEGACY_PLATFORM: Deprecated but maintained platform + - VIRTUAL_TOUR: 360° or immersive experience + + Dublin Core: type for classification. + range: AuxiliaryDigitalPlatformTypeEnum + required: true + examples: + - value: "PROJECT_WEBSITE" + description: "Project site type" + - value: "EXHIBITION_MICROSITE" + description: "Exhibition microsite type" + + platform_url: + slot_uri: foaf:homepage + description: >- + URL of this auxiliary digital platform. + + FOAF: homepage for web address. + + This is the entry point URL for the platform. + range: uri + required: true + pattern: "^https?://" + examples: + - value: "https://www.rijksmuseum.nl/nl/rijksstudio" + description: "Rijksstudio URL" + - value: "https://data.rijksmuseum.nl/" + description: "Data API URL" + + platform_purpose: + slot_uri: dcterms:description + description: >- + Brief description of what this platform provides/enables. + + Dublin Core: description for purpose statement. + + Focus on user benefit and functionality. + range: string + examples: + - value: "Personal collection creation and high-res image downloads" + description: "Rijksstudio purpose" + - value: "Interactive exploration of Night Watch research project" + description: "Exhibition microsite purpose" + + platform_description: + slot_uri: dcterms:abstract + description: >- + Detailed description of this auxiliary platform. + + Dublin Core: abstract for longer description. + + Include: + - Full functionality description + - Target audience + - Technical requirements + - Relationship to main platform + range: string + examples: + - value: "Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others." + description: "Detailed platform description" + + api_documentation: + slot_uri: dcat:endpointDescription + description: >- + URL to API documentation (for API-type platforms). + + DCAT: endpointDescription for API documentation. + range: uri + examples: + - value: "https://data.rijksmuseum.nl/object-metadata/api/" + description: "API documentation URL" + + technology_stack: + slot_uri: schema:programmingLanguage + description: >- + Technologies used to build this platform. + + Schema.org: programmingLanguage for technical implementation. + + Include frameworks, languages, services. + range: string + multivalued: true + examples: + - value: "React" + description: "Frontend framework" + - value: "Python/Django" + description: "Backend stack" + + is_auxiliary_of: + slot_uri: dcterms:isPartOf + description: >- + Link back to the DigitalPlatform that this is an auxiliary of. + + Dublin Core: isPartOf links part to whole. + + Like CustodianAppellation.variant_of_name → CustodianName, + this links AuxiliaryDigitalPlatform → DigitalPlatform (main platform). + range: DigitalPlatform + required: true + examples: + - value: "https://nde.nl/ontology/hc/platform/rijksmuseum-website" + description: "Main Rijksmuseum website" + + provides_access_to: + slot_uri: dcat:servesDataset + description: >- + Collections or datasets accessible through this platform. + + DCAT: servesDataset for data service relationship. + + Link to CustodianCollection or dataset identifiers. + range: uriorcurie + multivalued: true + examples: + - value: "https://nde.nl/ontology/hc/collection/rm-paintings" + description: "Paintings collection" + + related_project: + slot_uri: dcterms:isPartOf + description: >- + Research project or initiative this platform supports. + + Dublin Core: isPartOf for project relationship. + + Useful for grant-funded or research project platforms. + range: string + examples: + - value: "Operation Night Watch" + description: "Research project name" + - value: "EU Horizon 2020 Grant #123456" + description: "Grant reference" + + funding_source: + slot_uri: schema:funder + description: >- + Organization or grant funding this platform. + + Schema.org: funder for funding relationship. + range: string + examples: + - value: "European Commission Horizon 2020" + description: "EU funding" + - value: "Mondriaan Fund" + description: "Dutch cultural fund" + + iiif_support: + slot_uri: dcterms:conformsTo + description: >- + Does this platform support IIIF? + + Dublin Core: conformsTo for standard compliance. + range: boolean + examples: + - value: true + description: "IIIF enabled" + + linked_data: + slot_uri: dcterms:conformsTo + description: >- + Does this platform provide linked open data? + + Dublin Core: conformsTo for LOD compliance. + range: boolean + examples: + - value: true + description: "Provides RDF/JSON-LD" + + valid_from: + slot_uri: schema:validFrom + description: >- + Date when this auxiliary platform was launched. + + Track when project sites, microsites opened. + range: date + examples: + - value: "2018-06-01" + description: "Platform launched June 2018" + + valid_to: + slot_uri: schema:validThrough + description: >- + Date when this auxiliary platform was decommissioned. + + NULL if still active. + + Important for temporary exhibition sites and project portals. + range: date + examples: + - value: "2021-12-31" + description: "Exhibition site closed end of 2021" + + 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 fuzzy temporal boundaries. + range: TimeSpan + examples: + - value: + begin_of_the_begin: "2018-01-01" + end_of_the_end: "2021-12-31" + description: "Project period 2018-2021" + + archival_status: + slot_uri: schema:creativeWorkStatus + description: >- + Current status of platform if no longer active. + + Schema.org: creativeWorkStatus for lifecycle status. + + Values: + - ACTIVE: Currently operational + - DEPRECATED: Still accessible but not maintained + - ARCHIVED: Preserved in web archive + - OFFLINE: No longer accessible + range: string + examples: + - value: "ARCHIVED" + description: "Preserved in web archive" + - value: "DEPRECATED" + description: "Still accessible but not maintained" + + archived_at: + slot_uri: schema:archivedAt + description: >- + URL to archived version (e.g., Internet Archive Wayback Machine). + + Schema.org: archivedAt for archive location. + range: uri + examples: + - value: "https://web.archive.org/web/20211231/https://example.nl/exhibition/" + description: "Wayback Machine URL" + + was_derived_from: + slot_uri: prov:wasDerivedFrom + description: >- + CustodianObservation(s) documenting this platform. + + PROV-O: wasDerivedFrom for observation provenance. + range: CustodianObservation + multivalued: true + required: false + + was_generated_by: + slot_uri: prov:wasGeneratedBy + description: >- + ReconstructionActivity that generated this platform record. + + PROV-O: wasGeneratedBy for generation activity. + range: ReconstructionActivity + required: false + + refers_to_custodian: + slot_uri: dcterms:references + description: >- + The Custodian hub that operates this auxiliary platform. + + Dublin Core: references for entity reference. + + All auxiliary platforms MUST reference the main custodian hub. + range: Custodian + required: true + examples: + - value: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" + description: "Rijksmuseum custodian hub" + + comments: + - "AuxiliaryDigitalPlatform models SUBORDINATE digital properties" + - "DigitalPlatform models PRIMARY digital entry point" + - "Analogous to CustodianAppellation for alternative names" + - "DCAT dcat:Catalog for secondary data catalogs/services" + - "Temporal validity tracks platform lifecycle (launched/deprecated/archived)" + - "Links back to DigitalPlatform via is_auxiliary_of" + - "Important for project-based and exhibition microsites with finite lifespans" + + see_also: + - "https://www.w3.org/TR/vocab-dcat-2/#Class:Catalog" + - "https://www.w3.org/TR/vocab-dcat-2/#Property:catalog_service" + - "https://schema.org/archivedAt" + + examples: + - value: + auxiliary_platform_id: "https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio" + platform_name: "Rijksstudio" + auxiliary_platform_type: PROJECT_WEBSITE + platform_url: "https://www.rijksmuseum.nl/nl/rijksstudio" + platform_purpose: "Personal collection creation and high-res image downloads" + platform_description: "Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others." + is_auxiliary_of: "https://nde.nl/ontology/hc/platform/rijksmuseum-website" + provides_access_to: + - "https://nde.nl/ontology/hc/collection/rm-paintings" + - "https://nde.nl/ontology/hc/collection/rm-prints" + iiif_support: true + linked_data: false + valid_from: "2012-10-01" + archival_status: "ACTIVE" + refers_to_custodian: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" + description: "Rijksstudio personal collection platform" + + - value: + auxiliary_platform_id: "https://nde.nl/ontology/hc/aux-platform/rijksmuseum-data-api" + platform_name: "Rijksmuseum Data API" + auxiliary_platform_type: API_ENDPOINT + platform_url: "https://data.rijksmuseum.nl/" + platform_purpose: "Developer access to collection metadata and images" + api_documentation: "https://data.rijksmuseum.nl/object-metadata/api/" + technology_stack: + - "REST" + - "JSON" + is_auxiliary_of: "https://nde.nl/ontology/hc/platform/rijksmuseum-website" + iiif_support: true + linked_data: true + valid_from: "2013-03-01" + archival_status: "ACTIVE" + refers_to_custodian: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" + description: "Rijksmuseum developer API" + + - value: + auxiliary_platform_id: "https://nde.nl/ontology/hc/aux-platform/rm-night-watch-experience" + platform_name: "Operation Night Watch" + auxiliary_platform_type: EXHIBITION_MICROSITE + platform_url: "https://www.rijksmuseum.nl/en/stories/operation-night-watch" + platform_purpose: "Interactive exploration of Night Watch research project" + related_project: "Operation Night Watch" + funding_source: "ING Bank" + is_auxiliary_of: "https://nde.nl/ontology/hc/platform/rijksmuseum-website" + iiif_support: true + valid_from: "2019-07-01" + archival_status: "ACTIVE" + refers_to_custodian: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" + description: "Night Watch research project microsite" + + - value: + auxiliary_platform_id: "https://nde.nl/ontology/hc/aux-platform/na-ww2-portal" + platform_name: "WW2 Archives Portal" + auxiliary_platform_type: PROJECT_WEBSITE + platform_url: "https://www.nationaalarchief.nl/onderzoeken/zoekhulpen/ww2" + platform_purpose: "Thematic portal for World War 2 archival research" + platform_description: "Specialized portal providing access to WW2-related archives including resistance records, persecution documents, and liberation materials." + is_auxiliary_of: "https://nde.nl/ontology/hc/platform/nationaal-archief-website" + provides_access_to: + - "https://nde.nl/ontology/hc/collection/na-resistance-archives" + - "https://nde.nl/ontology/hc/collection/na-liberation-photos" + valid_from: "2015-05-05" + archival_status: "ACTIVE" + refers_to_custodian: "https://nde.nl/ontology/hc/nl-na" + description: "National Archives WW2 thematic portal" + +# Slot definitions (basic - detailed in class slot_usage) +slots: + auxiliary_platform_id: + description: Unique identifier for auxiliary digital platform + range: uriorcurie + + auxiliary_platform_type: + description: Type of auxiliary platform + range: AuxiliaryDigitalPlatformTypeEnum + + platform_url: + description: URL of auxiliary platform + range: uri + + platform_purpose: + description: Brief purpose statement + range: string + + api_documentation: + description: URL to API documentation + range: uri + + technology_stack: + description: Technologies used + range: string + + is_auxiliary_of: + description: Link to main DigitalPlatform + range: DigitalPlatform + + provides_access_to: + description: Collections/datasets accessible + range: uriorcurie + + related_project: + description: Related research project + range: string + + funding_source: + description: Funding organization/grant + range: string + + archival_status: + description: Current status (ACTIVE/DEPRECATED/ARCHIVED/OFFLINE) + range: string + + archived_at: + description: URL to archived version + range: uri diff --git a/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml b/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml index 3317610367..ea524333c7 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianPlace.yaml @@ -11,10 +11,12 @@ imports: - ./CustodianObservation - ./ReconstructionActivity - ./FeaturePlace + - ./AuxiliaryPlace - ./Country - ./Subregion - ./Settlement - ../enums/PlaceSpecificityEnum + - ../slots/auxiliary_places slots: place_name: @@ -123,6 +125,7 @@ classes: - subregion - settlement - has_feature_type + - auxiliary_places - was_derived_from - was_generated_by - refers_to_custodian @@ -310,6 +313,58 @@ classes: - value: "https://nde.nl/ontology/hc/feature/herenhuis-mansion" description: "Links 'het herenhuis' place to MANSION feature type" + auxiliary_places: + slot_uri: org:hasSite + description: >- + Subordinate or secondary physical locations associated with this main CustodianPlace. + + **W3C ORG Alignment**: + + `org:hasSite` - "Indicates a site at which the Organization has some presence" + + **Hierarchical Pattern - Mirrors CustodianName/CustodianAppellation**: + + - CustodianPlace (main headquarters) → primary org:Site + - AuxiliaryPlace (subordinate sites) → secondary org:Site instances + + Like CustodianAppellation provides alternative names for CustodianName, + AuxiliaryPlace provides subordinate locations for CustodianPlace. + + **Use Cases**: + + 1. **Off-site Storage**: Museum depot, archive annex + 2. **Branch Locations**: Regional library branches, satellite galleries + 3. **Specialized Facilities**: Conservation lab, digitization center + 4. **Temporary Locations**: Exhibition pavilions, renovation storage + + **Relationship to OrganizationBranch**: + + AuxiliaryPlace → hosts_branch → OrganizationBranch + + Physical location (AuxiliaryPlace) hosts formal organizational unit (OrganizationBranch). + + **Example - Rijksmuseum**: + ```yaml + CustodianPlace: + place_name: "Rijksmuseum" + auxiliary_places: + - place_name: "Depot Amersfoort" + auxiliary_place_type: STORAGE_FACILITY + - place_name: "Rijksmuseum Schiphol" + auxiliary_place_type: BRANCH_OFFICE + ``` + range: AuxiliaryPlace + multivalued: true + inlined_as_list: true + required: false + examples: + - value: + - place_name: "Depot Amersfoort" + auxiliary_place_type: STORAGE_FACILITY + - place_name: "Rijksmuseum Schiphol" + auxiliary_place_type: BRANCH_OFFICE + description: "Rijksmuseum subordinate locations" + was_derived_from: slot_uri: prov:wasDerivedFrom description: >- @@ -379,6 +434,8 @@ classes: - "Distinct from Location class which has lat/lon coordinates" - "Can be vague ('the mansion') or specific ('het museum op het Museumplein 1')" - "Historical place names capture how custodians were referenced in archival documents" + - "NEW: auxiliary_places links to subordinate AuxiliaryPlace sites (depots, branches, labs)" + - "Hierarchical pattern mirrors CustodianName → CustodianAppellation relationship" see_also: - "http://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E53" diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml index a7cde628a0..7988dac30b 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml @@ -11,7 +11,9 @@ imports: - ./CustodianObservation - ./ReconstructionActivity - ./DigitalPlatformType + - ./AuxiliaryDigitalPlatform - ./TimeSpan + - ../slots/auxiliary_platforms prefixes: linkml: https://w3id.org/linkml/ @@ -131,6 +133,7 @@ classes: - linked_data - metadata_standards - access_restrictions + - auxiliary_platforms - temporal_extent - was_derived_from - was_generated_by @@ -421,6 +424,67 @@ classes: - 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: >- @@ -488,6 +552,8 @@ classes: - "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" diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml index 0030af7831..a97a98601a 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml @@ -5,6 +5,11 @@ id: https://nde.nl/ontology/hc/class/OrganizationalStructure name: OrganizationalStructure +imports: + - linkml:types + - ./AuxiliaryPlace + - ../slots/located_at + classes: OrganizationalStructure: class_uri: org:OrganizationalUnit @@ -67,6 +72,7 @@ classes: - staff_count - staff_members - managed_collections + - located_at - contact_point - valid_from - valid_to @@ -364,6 +370,66 @@ classes: extent: "1,200 objects" description: "Collection managed by Paintings Department" + located_at: + slot_uri: org:basedAt + range: AuxiliaryPlace + multivalued: true + inlined_as_list: true + description: >- + Physical location (AuxiliaryPlace) where this organizational unit operates. + + **W3C ORG Alignment**: + + `org:basedAt` - "Indicates the site at which the Organization has its main + administrative/operational presence." + + **Optional Slot**: + + Many organizational units don't have fixed locations: + - Strategic Planning Committee (meets virtually) + - Research Fellowship Program (no physical space) + + Only use when organizational unit has identifiable physical location. + + **Use Cases**: + + 1. **Departments at Branch Locations**: + - Conservation Team → located at Amersfoort Depot + - Digitization Team → located at off-site facility + + 2. **Teams Spanning Multiple Locations**: + - IT Department → located at main building AND data center + - Public Services → located at main reading room AND annex + + **Relationship to OrganizationBranch**: + + OrganizationalStructure.located_at provides OPTIONAL location link. + OrganizationBranch.has_operational_unit provides hierarchical structure. + + ``` + AuxiliaryPlace + └── hosts_branch → OrganizationBranch + └── has_operational_unit → OrganizationalStructure + + OrganizationalStructure + └── located_at → AuxiliaryPlace (optional, direct link) + ``` + + **Example**: + ```yaml + OrganizationalStructure: + unit_name: "Conservation Division" + unit_type: DIVISION + located_at: + - place_name: "Conservation Lab - Main Building" + - place_name: "Climate-Controlled Storage - Depot" + ``` + examples: + - value: + - place_name: "Depot Amersfoort" + auxiliary_place_type: STORAGE_FACILITY + description: "Organizational unit located at off-site storage" + contact_point: range: string description: >- @@ -410,6 +476,8 @@ classes: - "Units can be nested via parent_unit (hierarchical structure)" - "Temporal validity tracks organizational changes" - "NOT for legally registered sub-organizations (use CustodianLegalStatus)" + - "NEW: located_at links organizational units to AuxiliaryPlace locations (optional)" + - "Enables tracking which departments/teams operate at which physical sites" examples: - value: diff --git a/schemas/20251121/linkml/modules/enums/AuxiliaryDigitalPlatformTypeEnum.yaml b/schemas/20251121/linkml/modules/enums/AuxiliaryDigitalPlatformTypeEnum.yaml new file mode 100644 index 0000000000..65fb3323a0 --- /dev/null +++ b/schemas/20251121/linkml/modules/enums/AuxiliaryDigitalPlatformTypeEnum.yaml @@ -0,0 +1,168 @@ +# AuxiliaryDigitalPlatformTypeEnum - Types of secondary/subordinate digital platforms +# +# Used by AuxiliaryDigitalPlatform class to classify types of secondary digital +# properties beyond the main website/platform. +# +# Generation date: 2025-11-25 +# +id: https://nde.nl/ontology/hc/enum/auxiliary-digital-platform-type +name: auxiliary-digital-platform-type-enum +title: Auxiliary Digital Platform Type Enumeration + +imports: + - linkml:types + +enums: + AuxiliaryDigitalPlatformTypeEnum: + description: >- + Types of secondary or subordinate digital platforms for heritage custodians. + + These represent digital properties beyond the main website, including project + sites, exhibition microsites, specialized APIs, mobile apps, etc. + + Aligns with DCAT dcat:Catalog concept for secondary data catalogs/services. + + permissible_values: + PROJECT_WEBSITE: + title: project website + description: >- + Dedicated website for a specific project, research initiative, or + long-term program. May have finite lifespan matching project duration. + meaning: dcat:Catalog + annotations: + examples: "Rijksstudio, Operation Night Watch, Digitization project portal" + + EXHIBITION_MICROSITE: + title: exhibition microsite + description: >- + Temporary website for specific exhibition or event. Has defined + valid_from/valid_to matching exhibition dates. + meaning: dcat:Catalog + annotations: + examples: "Temporary exhibition site, Virtual tour for exhibition, Exhibition archive" + + API_ENDPOINT: + title: API endpoint + description: >- + Programmatic interface separate from main API. Developer tools, + specialized data access, experimental APIs. + meaning: dcat:DataService + annotations: + examples: "Data API, IIIF API, Search API, Metadata API" + + MOBILE_APP: + title: mobile app + description: >- + Native or hybrid mobile application for iOS/Android. May be guide app, + collection browser, or interactive experience. + meaning: schema:MobileApplication + annotations: + examples: "Museum guide app, Collection browser app, AR experience app" + + COLLECTION_BROWSER: + title: collection browser + description: >- + Specialized tool for exploring specific collection or dataset. + Rich interface beyond main catalog search. + meaning: dcat:Catalog + annotations: + examples: "Paintings explorer, Photograph viewer, Interactive map" + + CROWDSOURCING_PLATFORM: + title: crowdsourcing platform + description: >- + Platform for user contributions: transcription, tagging, identification, + georeferencing, citizen science. + meaning: dcat:Catalog + annotations: + examples: "Transcription portal, Tagging tool, Citizen science project" + + EDUCATIONAL_PORTAL: + title: educational portal + description: >- + Learning resources, lesson plans, educational games, teacher materials. + May be separate platform or subdomain. + meaning: schema:LearningResource + annotations: + examples: "Teacher resources, Student portal, Educational games" + + DATA_PORTAL: + title: data portal + description: >- + Platform for downloading datasets, bulk exports, open data access. + May have different access policies than main platform. + meaning: dcat:Catalog + annotations: + examples: "Open data portal, Dataset downloads, Bulk export service" + + LEGACY_PLATFORM: + title: legacy platform + description: >- + Deprecated but maintained platform, old website version, sunset service. + No longer actively developed but still accessible. + meaning: dcat:Catalog + annotations: + examples: "Old website archive, Deprecated API version, Legacy search" + + VIRTUAL_TOUR: + title: virtual tour + description: >- + 360-degree tours, VR experiences, immersive gallery views. + Interactive spatial exploration of physical spaces. + meaning: schema:VirtualLocation + annotations: + examples: "360° gallery tour, VR museum, Google Arts & Culture street view" + + BLOG_NEWS: + title: blog and news + description: >- + Blog, news section, or content marketing platform separate from + main website. May be on different domain or platform. + meaning: schema:Blog + annotations: + examples: "Institutional blog, News portal, Stories section" + + SOCIAL_MEDIA: + title: social media presence + description: >- + Official social media accounts and channels. Instagram, Twitter, + Facebook, YouTube, TikTok institutional accounts. + meaning: schema:SocialMediaPosting + annotations: + examples: "Instagram account, YouTube channel, Twitter/X profile" + + PODCAST_CHANNEL: + title: podcast channel + description: >- + Audio podcast or video series hosted on dedicated platform. + Spotify, Apple Podcasts, YouTube, SoundCloud. + meaning: schema:PodcastSeries + annotations: + examples: "Museum podcast, Archive stories, Curator talks" + + BOOKING_SYSTEM: + title: booking system + description: >- + Online reservation and ticketing system, may be third-party platform + or custom solution. Reading room appointments, event tickets. + meaning: schema:ReservationPackage + annotations: + examples: "Ticket booking, Reading room reservations, Tour scheduling" + + WEBSHOP: + title: webshop + description: >- + E-commerce platform for museum shop, print-on-demand, merchandise. + May be separate domain or integrated. + meaning: schema:OnlineStore + annotations: + examples: "Museum shop, Print shop, Publications store" + + NEWSLETTER: + title: newsletter platform + description: >- + Email newsletter signup and archive. Mailchimp, Campaign Monitor, + or institutional email marketing. + meaning: schema:NewsArticle + annotations: + examples: "Monthly newsletter, Exhibition announcements, Member updates" diff --git a/schemas/20251121/linkml/modules/enums/AuxiliaryPlaceTypeEnum.yaml b/schemas/20251121/linkml/modules/enums/AuxiliaryPlaceTypeEnum.yaml new file mode 100644 index 0000000000..e51c47bcba --- /dev/null +++ b/schemas/20251121/linkml/modules/enums/AuxiliaryPlaceTypeEnum.yaml @@ -0,0 +1,132 @@ +# AuxiliaryPlaceTypeEnum - Types of secondary/subordinate physical locations +# +# Used by AuxiliaryPlace class to classify types of secondary locations +# that heritage custodians operate at beyond their main headquarters. +# +# Generation date: 2025-11-25 +# +id: https://nde.nl/ontology/hc/enum/auxiliary-place-type +name: auxiliary-place-type-enum +title: Auxiliary Place Type Enumeration + +imports: + - linkml:types + +enums: + AuxiliaryPlaceTypeEnum: + description: >- + Types of secondary or subordinate physical locations for heritage custodians. + + These represent physical sites beyond the main headquarters where custodians + operate, including storage facilities, branch offices, research centers, etc. + + Aligns with W3C ORG org:Site concept for organizational premises. + + permissible_values: + BRANCH_OFFICE: + title: branch office + description: >- + Regional or satellite office providing services in a different location + from the main headquarters. May have reading room, public services. + meaning: org:Site + annotations: + examples: "Noord-Hollands Archief regional reading room, University library branch campus" + + STORAGE_FACILITY: + title: storage facility + description: >- + Off-site storage depot, warehouse, or vault for collections. Typically + climate-controlled, staff-access only, not public-facing. + meaning: crm:E27_Site + annotations: + examples: "Rijksmuseum Depot Amersfoort, Archive document center" + + RESEARCH_CENTER: + title: research center + description: >- + Specialized research facility separate from main building. Conservation + labs, digitization centers, scholarly research units. + meaning: org:Site + annotations: + examples: "Conservation lab, Digitization center, Research library annex" + + EXHIBITION_SPACE: + title: exhibition space + description: >- + Satellite gallery or exhibition pavilion separate from main museum. + May be temporary or permanent installation. + meaning: crm:E27_Site + annotations: + examples: "Rijksmuseum Schiphol, Pop-up museum, Outdoor sculpture garden" + + HISTORIC_BUILDING: + title: historic building + description: >- + Secondary historic property managed by same custodian. Historic houses, + heritage buildings, archaeological sites. + meaning: crm:E27_Site + annotations: + examples: "Historic house museum annex, Heritage property, Preserved building" + + TEMPORARY_LOCATION: + title: temporary location + description: >- + Temporary facility during renovation, relocation, or special events. + Has defined valid_from/valid_to dates. + meaning: crm:E27_Site + annotations: + examples: "Renovation storage, Temporary exhibition venue, Event pavilion" + + ADMINISTRATIVE_OFFICE: + title: administrative office + description: >- + Non-public administrative building for staff operations, HR, finance, + IT services. Not a public-facing heritage facility. + meaning: org:Site + annotations: + examples: "Administrative headquarters, Back-office facility, IT data center" + + EDUCATION_CENTER: + title: education center + description: >- + Dedicated educational facility for workshops, classes, public programs. + May be at different location from main institution. + meaning: org:Site + annotations: + examples: "Youth education center, Teacher training facility, Workshop space" + + CONSERVATION_LAB: + title: conservation lab + description: >- + Specialized conservation and restoration facility with technical equipment. + May serve multiple institutions. + meaning: crm:E27_Site + annotations: + examples: "Paper conservation lab, Paintings restoration studio, Digital preservation lab" + + READING_ROOM_ANNEX: + title: reading room annex + description: >- + Overflow or specialized reading room separate from main building. + For peak periods or specialized collections. + meaning: org:Site + annotations: + examples: "Manuscript reading room, Genealogy research center, Microfilm reading room" + + WAREHOUSE: + title: warehouse + description: >- + Large-scale storage building for bulk materials, supplies, or + non-collection items. Industrial facility. + meaning: crm:E27_Site + annotations: + examples: "Equipment warehouse, Supplies storage, Exhibition materials storage" + + OUTDOOR_SITE: + title: outdoor site + description: >- + Open-air heritage site, garden, park, or landscape feature managed + by the custodian. Archaeological site, sculpture garden. + meaning: crm:E53_Place + annotations: + examples: "Sculpture garden, Archaeological excavation site, Historic park" diff --git a/schemas/20251121/linkml/modules/enums/OrganizationBranchTypeEnum.yaml b/schemas/20251121/linkml/modules/enums/OrganizationBranchTypeEnum.yaml new file mode 100644 index 0000000000..b7a4d34096 --- /dev/null +++ b/schemas/20251121/linkml/modules/enums/OrganizationBranchTypeEnum.yaml @@ -0,0 +1,134 @@ +# OrganizationBranchTypeEnum - Types of formal organizational branches +# +# Used by OrganizationBranch class to classify types of formal sub-organizations +# that operate at auxiliary physical locations. +# +# Generation date: 2025-11-25 +# +id: https://nde.nl/ontology/hc/enum/organization-branch-type +name: organization-branch-type-enum +title: Organization Branch Type Enumeration + +imports: + - linkml:types + +enums: + OrganizationBranchTypeEnum: + description: >- + Types of formal organizational branches for heritage custodians. + + These represent formal sub-organizations that operate at physical sites, + with some degree of administrative autonomy (own staff, budget, services). + + Distinguished from OrganizationalStructure (informal units like departments/teams). + + Aligns with W3C ORG org:OrganizationalUnit concept. + + permissible_values: + REGIONAL_OFFICE: + title: regional office + description: >- + Geographic regional branch serving a specific area. Full service branch + with own staff, reading room, and public services. + meaning: org:OrganizationalUnit + annotations: + examples: "Regionaal Historisch Centrum Noord-Holland, State Library branch" + + BRANCH_LIBRARY: + title: branch library + description: >- + Library branch at satellite campus, district, or specialized location. + Own collection, staff, and services. + meaning: org:OrganizationalUnit + annotations: + examples: "Science Library, Medical Library, Community Library branch" + + SATELLITE_GALLERY: + title: satellite gallery + description: >- + Museum exhibition space at separate location. Own curatorial program, + exhibitions, possibly specialized collection focus. + meaning: org:OrganizationalUnit + annotations: + examples: "Modern Art Annex, Contemporary Gallery, Airport exhibition space" + + CONSERVATION_LAB: + title: conservation lab + description: >- + Formal conservation/restoration unit with specialized staff. + May serve multiple institutions, semi-autonomous operations. + meaning: org:OrganizationalUnit + annotations: + examples: "Conservation Division, Restoration Center, Preservation Lab" + + DIGITIZATION_CENTER: + title: digitization center + description: >- + Dedicated digital production facility for scanning, photography, + digital preservation. Technical staff and equipment. + meaning: org:OrganizationalUnit + annotations: + examples: "Digital Production Center, Imaging Lab, Audiovisual Digitization" + + RESEARCH_CENTER: + title: research center + description: >- + Formal research unit focused on scholarly activities, publications, + academic programs. May have own research staff. + meaning: org:OrganizationalUnit + annotations: + examples: "Research Institute, Documentation Center, Study Center" + + EDUCATION_CENTER: + title: education center + description: >- + Formal educational program unit for public education, school programs, + teacher training. Own education staff. + meaning: org:OrganizationalUnit + annotations: + examples: "Education Department, Public Programs, Outreach Center" + + ADMINISTRATIVE_OFFICE: + title: administrative office + description: >- + Central administration unit handling HR, finance, IT, facilities. + Not public-facing, staff operations only. + meaning: org:OrganizationalUnit + annotations: + examples: "Central Administration, Shared Services, Operations Center" + + STORAGE_MANAGEMENT: + title: storage management + description: >- + Formal unit managing off-site storage facilities, logistics, + collection movement, climate control. + meaning: org:OrganizationalUnit + annotations: + examples: "Collection Storage Operations, Depot Management, Logistics Unit" + + EXHIBITION_SPACE: + title: exhibition space + description: >- + Formal exhibition programming unit, may be temporary or permanent. + Separate from main museum galleries. + meaning: org:OrganizationalUnit + annotations: + examples: "Special Exhibitions, Traveling Exhibitions, Project Space" + + VISITOR_SERVICES: + title: visitor services + description: >- + Public-facing unit at auxiliary location handling visitors, + ticketing, tours, accessibility. + meaning: org:OrganizationalUnit + annotations: + examples: "Visitor Center, Welcome Center, Tour Operations" + + COLLECTIONS_CENTER: + title: collections center + description: >- + Centralized collections management unit, possibly serving multiple + institutions. Registration, cataloging, loans. + meaning: org:OrganizationalUnit + annotations: + examples: "Collections Management Center, Registrar Services, Loans Department" diff --git a/schemas/20251121/linkml/modules/slots/auxiliary_places.yaml b/schemas/20251121/linkml/modules/slots/auxiliary_places.yaml new file mode 100644 index 0000000000..a1d2592561 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/auxiliary_places.yaml @@ -0,0 +1,98 @@ +# Auxiliary Places Slot +# Links CustodianPlace to subordinate/secondary physical locations +# W3C Org: org:hasSite pattern for organizational sites + +id: https://nde.nl/ontology/hc/slot/auxiliary_places +name: auxiliary_places + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + +imports: + - linkml:types + +slots: + auxiliary_places: + slot_uri: org:hasSite + range: AuxiliaryPlace + multivalued: true + inlined_as_list: true + description: >- + Subordinate or secondary physical locations associated with this CustodianPlace. + + **W3C ORG Alignment**: + + `org:hasSite` - "Indicates a site at which the Organization has some presence + even if only indirect (e.g. virtual office or a professional service + which is acting as the registered address for a company)." + + **Hierarchical Pattern**: + + CustodianPlace (main headquarters) + └── auxiliary_places → AuxiliaryPlace[] (subordinate sites) + └── hosts_branch → OrganizationBranch (formal branch at site) + + This mirrors the CustodianName → CustodianAppellation pattern: + - CustodianName is preferred name (skos:prefLabel) + - CustodianAppellation is alternative name (skos:altLabel) + - CustodianPlace is main place (org:Site - primary) + - AuxiliaryPlace is subordinate place (org:Site - secondary) + + **Use Cases**: + + 1. **Off-site Storage**: + - Museum depot in another city + - Archive annex for overflow documents + + 2. **Branch Locations**: + - Regional library branches + - Satellite museum galleries + + 3. **Specialized Facilities**: + - Conservation lab in separate building + - Digitization center at different address + + 4. **Temporary Locations**: + - Exhibition pavilions + - Storage during renovation + + **Example - Rijksmuseum**: + ```yaml + CustodianPlace: + place_name: "Rijksmuseum" + place_specificity: BUILDING + auxiliary_places: + - place_name: "Depot Amersfoort" + auxiliary_place_type: STORAGE_FACILITY + - place_name: "Rijksmuseum Schiphol" + auxiliary_place_type: BRANCH_OFFICE + hosts_branch: + branch_name: "Schiphol Exhibition Team" + ``` + + **Temporal Considerations**: + + Auxiliary places have independent lifecycles: + - Storage facility opened 1995, closed 2010 + - Branch office valid_from 2000, still active + + Each AuxiliaryPlace tracks its own valid_from/valid_to dates. + + **Query Pattern**: + + "Find all locations of Rijksmuseum": + - Main: CustodianPlace.place_name + - Secondary: CustodianPlace.auxiliary_places[*].place_name + examples: + - value: + - place_name: "Depot Amersfoort" + auxiliary_place_type: STORAGE_FACILITY + street_address: "Euterpelaan 25" + city: "Amersfoort" + - place_name: "Rijksmuseum Schiphol" + auxiliary_place_type: BRANCH_OFFICE + street_address: "Schiphol Airport, Lounge 2" + description: "Rijksmuseum subordinate locations" diff --git a/schemas/20251121/linkml/modules/slots/auxiliary_platforms.yaml b/schemas/20251121/linkml/modules/slots/auxiliary_platforms.yaml new file mode 100644 index 0000000000..236e03b14e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/auxiliary_platforms.yaml @@ -0,0 +1,110 @@ +# Auxiliary Platforms Slot +# Links DigitalPlatform to subordinate/project-based digital properties +# DCAT: dcterms:hasPart pattern for data catalogs + +id: https://nde.nl/ontology/hc/slot/auxiliary_platforms +name: auxiliary_platforms + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcat: http://www.w3.org/ns/dcat# + dcterms: http://purl.org/dc/terms/ + +imports: + - linkml:types + +slots: + auxiliary_platforms: + slot_uri: dcterms:hasPart + range: AuxiliaryDigitalPlatform + multivalued: true + inlined_as_list: true + description: >- + Subordinate or project-based digital platforms associated with this DigitalPlatform. + + **DCAT Alignment**: + + `dcterms:hasPart` - "A related resource that is included either physically + or logically in the described resource." + + Used in DCAT for catalog → sub-catalog relationships. + + **Hierarchical Pattern**: + + DigitalPlatform (main digital entry point) + └── auxiliary_platforms → AuxiliaryDigitalPlatform[] (project sites) + + This mirrors the CustodianName → CustodianAppellation pattern: + - CustodianName is preferred label (skos:prefLabel) + - CustodianAppellation is alternative name (skos:altLabel) + - DigitalPlatform is main digital entry (foaf:homepage) + - AuxiliaryDigitalPlatform is subordinate platform (dcterms:hasPart) + + **Use Cases**: + + 1. **Project Websites**: + - Research project portals + - Grant-funded digitization sites + + 2. **Exhibition Microsites**: + - Temporary exhibition with dedicated website + - Virtual tours for specific collections + + 3. **APIs and Tools**: + - Developer APIs (separate from main website) + - Collection browser tools + - Mobile applications + + 4. **Legacy/Archived Platforms**: + - Previous website versions + - Deprecated systems still accessible + + 5. **Educational Portals**: + - Teacher resources + - Student 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_url: "https://www.rijksmuseum.nl/nl/rijksstudio" + - platform_name: "Rijksmuseum Data API" + auxiliary_platform_type: API_ENDPOINT + platform_url: "https://data.rijksmuseum.nl/" + - platform_name: "Night Watch Experience" + auxiliary_platform_type: EXHIBITION_MICROSITE + platform_url: "https://www.rijksmuseum.nl/en/stories/operation-night-watch" + ``` + + **Temporal Considerations**: + + Auxiliary platforms often have finite lifespans: + - Exhibition microsite: opens/closes with exhibition + - Project portal: funded period only + - Legacy platforms: archived but not deleted + + Each AuxiliaryDigitalPlatform tracks: + - valid_from/valid_to: exact dates + - archival_status: ACTIVE/DEPRECATED/ARCHIVED/OFFLINE + - archived_at: Wayback Machine URL if archived + + **Query Pattern**: + + "Find all digital properties of Rijksmuseum": + - Main: DigitalPlatform.homepage_web_address + - Secondary: DigitalPlatform.auxiliary_platforms[*].platform_url + examples: + - value: + - platform_name: "Rijksstudio" + auxiliary_platform_type: PROJECT_WEBSITE + platform_url: "https://www.rijksmuseum.nl/nl/rijksstudio" + archival_status: "ACTIVE" + - platform_name: "Rijksmuseum Data API" + auxiliary_platform_type: API_ENDPOINT + platform_url: "https://data.rijksmuseum.nl/" + description: "Rijksmuseum subordinate digital platforms" diff --git a/schemas/20251121/linkml/modules/slots/located_at.yaml b/schemas/20251121/linkml/modules/slots/located_at.yaml new file mode 100644 index 0000000000..70ea6d1b89 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/located_at.yaml @@ -0,0 +1,82 @@ +# Located At Slot +# Links OrganizationalStructure to a physical location (AuxiliaryPlace) +# W3C Org: org:basedAt pattern for organization locations + +id: https://nde.nl/ontology/hc/slot/located_at +name: located_at_slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ + +imports: + - linkml:types + +slots: + located_at: + slot_uri: org:basedAt + range: AuxiliaryPlace + multivalued: true + inlined_as_list: true + description: >- + Physical location (AuxiliaryPlace) where this organizational unit operates. + + **W3C ORG Alignment**: + + `org:basedAt` - "Indicates the site at which the Organization has its main + administrative/operational presence." + + Alternative: `org:hasSite` - "Indicates a site at which the Organization + has some presence even if only indirect." + + **Use Cases**: + + 1. **Departments at Branch Locations**: + - Conservation Team → located at Amersfoort Depot + - Digitization Team → located at off-site facility + + 2. **Teams Spanning Multiple Locations**: + - IT Department → located at main building AND data center + - Public Services → located at main reading room AND annex + + 3. **Temporary Location Assignments**: + - Exhibition Team → temporarily at partner venue + - Collections → temporarily at storage during renovation + + **Relationship Pattern**: + + Two-way linking between locations and organizational units: + + ``` + AuxiliaryPlace + └── hosts_branch → OrganizationBranch + └── has_operational_unit → OrganizationalStructure + + OrganizationalStructure + └── located_at → AuxiliaryPlace (optional) + ``` + + **Optional Slot**: + + Many organizational units don't have fixed locations: + - Strategic Planning Committee (meets virtually) + - Research Fellowship Program (no physical space) + + Only use when organizational unit has identifiable physical location. + + **Example - Conservation Division**: + ```yaml + OrganizationalStructure: + unit_name: "Conservation Division" + unit_type: DIVISION + located_at: + - place_name: "Conservation Lab - Main Building" + - place_name: "Climate-Controlled Storage - Depot Amersfoort" + ``` + examples: + - value: + - place_name: "Depot Amersfoort" + auxiliary_place_type: STORAGE_FACILITY + description: "Organizational unit located at off-site storage"