glam/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml
kempersc 174a420c08
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 3m57s
refactor(schema): centralize 1515 inline slot definitions per Rule 48
- Remove inline slot definitions from 144 class files
- Create 7 new centralized slot files in modules/slots/:
  - custodian_type_broader.yaml
  - custodian_type_narrower.yaml
  - custodian_type_related.yaml
  - definition.yaml
  - finding_aid_access_restriction.yaml
  - finding_aid_description.yaml
  - finding_aid_temporal_coverage.yaml
- Add centralize_inline_slots.py automation script
- Update manifest with new timestamp

Rule 48: Class files must NOT define inline slots - all slots
must be imported from modules/slots/ directory.

Note: Pre-existing IdentifierFormat duplicate class definition
(in Standard.yaml and IdentifierFormat.yaml) not addressed in
this commit - requires separate schema refactor.
2026-01-11 22:02:14 +01:00

750 lines
23 KiB
YAML

id: https://nde.nl/ontology/hc/class/CollectionManagementSystem
name: collection_management_system_class
title: CollectionManagementSystem Class
imports:
- linkml:types
- ./Custodian
- ./CustodianCollection
- ./DigitalPlatform
- ./CustodianObservation
- ./ReconstructionActivity
- ./TimeSpan
- ../slots/documentation_url
- ./ReconstructedEntity
- ../slots/api_available
- ../slots/cms_category
- ../slots/cms_id
- ../slots/cms_product_name
- ../slots/cms_product_version
- ../slots/has_or_had_custodian_type
- ../slots/deployment_date
- ../slots/iiif_compatible
- ../slots/license
- ../slots/linked_data_export
- ../slots/manages_collection
- ../slots/open_source
- ../slots/powers_platform
- ../slots/programming_language
- ../slots/refers_to_custodian
- ../slots/repository_url
- ../slots/specificity_annotation
- ../slots/supported_metadata_standard
- ../slots/template_specificity
- ../slots/temporal_extent
- ../slots/used_by_custodian
- ../slots/vendor_name
- ../slots/vendor_url
- ../slots/was_derived_from
- ../slots/was_generated_by
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/has_api_available_flag
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
crm: http://www.cidoc-crm.org/cidoc-crm/
doap: http://usefulinc.com/ns/doap#
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
foaf: http://xmlns.com/foaf/0.1/
rico: https://www.ica.org/standards/RiC/ontology#
classes:
CollectionManagementSystem:
is_a: ReconstructedEntity
class_uri: schema:SoftwareApplication
description: "Software system used to manage heritage collections, objects, and metadata.\n\n**Definition**:\nSoftware\
\ used by the collections staff of a collecting institution or by \nindividual private collectors to document, manage,\
\ and track objects or \nspecimens in their collections.\n\n**CRITICAL DESIGN DECISION**:\n\nCollectionManagementSystem\
\ represents the SOFTWARE PRODUCT (e.g., CollectiveAccess,\nMuseumPlus, Adlib, Axiell Collections) that may power one\
\ or more DigitalPlatforms.\n\n**Relationship Architecture**:\n\n```\nCollectionManagementSystem (software product)\n\
\ │\n ├── powers → DigitalPlatform (web interface)\n │ - Rijksmuseum Website (powered by Adlib)\n\
\ │ - National Archives Portal (powered by MAIS)\n │\n └── manages → CustodianCollection (collection\
\ records)\n - Paintings Collection\n - Archival Fonds\n```\n\n**Distinguishing\
\ CMS from DigitalPlatform**:\n\n| CMS | DigitalPlatform |\n|-----|-----------------|\n| Software product | Web interface\
\ |\n| Backend system | Frontend portal |\n| Data management | Data presentation |\n| Staff-facing | Public/researcher-facing\
\ |\n| Reusable across institutions | Institution-specific |\n\n**Examples of CMS Products**:\n\n- **CollectiveAccess**:\
\ Open-source, museums/archives\n- **MuseumPlus**: Zetcom, museum collections\n- **Adlib** (Axiell): Library/museum\
\ collections\n- **TMS (The Museum System)**: Gallery Systems\n- **ArchivesSpace**: Open-source, archival description\n\
- **MAIS-Flexis**: Dutch archival software\n- **Calm**: Axiell, archives\n- **ResourceSpace**: Digital asset management\n\
- **Omeka S**: Open-source, digital collections\n- **DSpace**: Digital repository\n\n**ONTOLOGY ALIGNMENT (from /data/ontology/)**:\n\
\n- **Schema.org** (`/data/ontology/schemaorg.owl`): `schema:SoftwareApplication` (primary)\n - CMS is specialized\
\ software for collection management\n - Properties: schema:applicationCategory, schema:softwareVersion, schema:creator\n\
\ - Related: schema:WebApplication (subclass)\n\n- **CIDOC-CRM** (`/data/ontology/CIDOC_CRM_v7.1.3.rdf`): `crm:E29_Design_or_Procedure`\n\
\ - CIDOC-CRM E73_Information_Object defines: \"procedural prescriptions, computer program code\"\n - E29_Design_or_Procedure\
\ is a subclass of E73_Information_Object\n - A CMS embodies procedures for managing collections\n - P33_used_specific_technique\
\ links activities to CMS\n\n- **DOAP** (`/data/ontology/doap.rdf`): `doap:Project`\n - Description of a Project vocabulary\
\ for software projects\n - Properties: doap:name, doap:homepage, doap:license, doap:repository\n - doap:programming-language\
\ for implementation languages\n - doap:category for software categorization\n\n- **RiC-O** (`/data/ontology/RiC-O_1-1.rdf`):\
\ Related concepts\n - rico:RecordResource for managed records\n - rico:Agent for custodian managing records via CMS\n\
\ - rico:Activity for record management activities\n\n**Use Cases**:\n\n1. **Platform Analysis**: \"What CMS powers\
\ the Rijksmuseum website?\"\n - Follow: DigitalPlatform.powered_by_cms → CollectionManagementSystem\n\n2. **Software\
\ Survey**: \"How many Dutch museums use CollectiveAccess?\"\n - Query: CMS instances where cms_product = \"CollectiveAccess\"\
\n\n3. **Collection-CMS Relationship**: \"Which collections are managed by MAIS?\"\n - Follow: CustodianCollection.managed_by_cms\
\ → CollectionManagementSystem\n\n4. **CMS Detection**: \"Does this website have a detectable CMS backend?\"\n - Check:\
\ DigitalPlatform.cms_detected flag\n\n**Example**:\n```yaml\nCollectionManagementSystem:\n cms_id: \"https://nde.nl/ontology/hc/cms/collective-access-rm\"\
\n cms_product_name: \"CollectiveAccess\"\n cms_product_version: \"1.8.0\"\n cms_category: MUSEUM_CMS\n open_source:\
\ true\n license: \"GPL-3.0\"\n vendor_name: \"Whirl-i-Gig\"\n powers_platform:\n - \"https://nde.nl/ontology/hc/platform/some-museum\"\
\n manages_collection:\n - \"https://nde.nl/ontology/hc/collection/some-collection\"\n```\n"
exact_mappings:
- schema:SoftwareApplication
close_mappings:
- crm:E29_Design_or_Procedure
- crm:E73_Information_Object
- doap:Project
- schema:WebApplication
related_mappings:
- crm:P33_used_specific_technique
- doap:programming-language
- doap:repository
- rico:Activity
slots:
- api_available
- cms_category
- cms_id
- cms_product_name
- cms_product_version
- has_or_had_custodian_type
- deployment_date
- documentation_url
- iiif_compatible
- license
- linked_data_export
- manages_collection
- open_source
- powers_platform
- programming_language
- refers_to_custodian
- repository_url
- specificity_annotation
- supported_metadata_standard
- template_specificity
- temporal_extent
- used_by_custodian
- vendor_name
- vendor_url
- was_derived_from
- was_generated_by
slot_usage:
cms_id:
slot_uri: dcterms:identifier
description: 'Unique identifier for this CMS instance/deployment.
Format: URI following NDE Heritage Custodian ontology conventions.
Note: This identifies a specific DEPLOYMENT of a CMS at an institution,
not the CMS product itself. One product (CollectiveAccess) may have
many deployments across different institutions.
'
range: uriorcurie
required: true
identifier: true
examples:
- value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib
description: Rijksmuseum's Adlib deployment
- value: https://nde.nl/ontology/hc/cms/nationaal-archief-mais
description: National Archives MAIS deployment
cms_product_name:
slot_uri: schema:name
description: 'Name of the CMS software product.
Schema.org: name for the software application name.
Examples:
- "CollectiveAccess"
- "MuseumPlus"
- "Adlib"
- "TMS (The Museum System)"
- "ArchivesSpace"
- "MAIS-Flexis"
- "Omeka S"
- "DSpace"
- "ResourceSpace"
'
range: string
required: true
examples:
- value: CollectiveAccess
description: Open-source museum CMS
- value: MuseumPlus
description: Zetcom museum CMS
cms_product_version:
slot_uri: schema:softwareVersion
description: 'Version of the CMS software deployed.
Schema.org: softwareVersion for version identification.
Format: Semantic versioning (MAJOR.MINOR.PATCH) preferred.
'
range: string
examples:
- value: 1.8.0
description: CollectiveAccess version
- value: '7.0'
description: MuseumPlus version
cms_category:
slot_uri: schema:applicationCategory
description: 'Category of CMS based on primary domain.
Schema.org: applicationCategory for software categorization.
Categories:
- MUSEUM_CMS: Museum collection management (MuseumPlus, TMS, CollectiveAccess)
- ARCHIVE_CMS: Archival description (ArchivesSpace, MAIS, Calm)
- LIBRARY_CMS: Library management (Koha, Alma, WorldShare)
- DAM: Digital asset management (ResourceSpace, DAMsimple)
- REPOSITORY: Digital repository (DSpace, Fedora, EPrints)
- MIXED: Multi-domain (Omeka S, CollectiveAccess)
- CUSTOM: Institution-specific/custom-built
'
range: string
examples:
- value: MUSEUM_CMS
description: Museum-focused CMS
- value: ARCHIVE_CMS
description: Archives-focused CMS
open_source:
slot_uri: doap:license
description: 'Is this CMS open-source software?
Boolean flag. If true, license slot should contain OSI-approved license.
Open-source CMS examples:
- CollectiveAccess (GPL-3.0)
- ArchivesSpace (ECL-2.0)
- Omeka S (GPL-3.0)
- DSpace (BSD-3-Clause)
- Koha (GPL-3.0)
'
range: boolean
examples:
- value: true
description: Open-source CMS
- value: false
description: Proprietary CMS
license:
slot_uri: doap:license
description: 'Software license for this CMS.
DOAP: license for software license information.
Use SPDX identifiers when possible:
- GPL-3.0: GNU General Public License v3
- MIT: MIT License
- Apache-2.0: Apache License 2.0
- BSD-3-Clause: BSD 3-Clause
- ECL-2.0: Educational Community License
- Proprietary: Commercial/proprietary license
'
range: string
examples:
- value: GPL-3.0
description: GNU GPL v3 license
- value: Proprietary
description: Commercial license
vendor_name:
slot_uri: schema:creator
description: 'Organization that develops/maintains this CMS.
Schema.org: creator for software creator organization.
Examples:
- "Whirl-i-Gig" (CollectiveAccess)
- "Zetcom AG" (MuseumPlus)
- "Axiell" (Adlib, Calm, Collections)
- "Gallery Systems" (TMS, eMuseum)
- "Lyrasis" (ArchivesSpace, DSpace)
- "OCLC" (WorldShare, CONTENTdm)
'
range: string
examples:
- value: Whirl-i-Gig
description: CollectiveAccess developer
- value: Zetcom AG
description: MuseumPlus developer
vendor_url:
slot_uri: schema:url
description: 'URL of the CMS vendor/developer website.
Schema.org: url for vendor website.
'
range: uri
examples:
- value: https://www.collectiveaccess.org/
description: CollectiveAccess website
- value: https://www.zetcom.com/
description: Zetcom website
documentation_url:
slot_uri: foaf:page
description: 'URL to CMS documentation or manual.
FOAF: page for documentation reference.
'
range: uri
examples:
- value: https://manual.collectiveaccess.org/
description: CollectiveAccess documentation
programming_language:
slot_uri: doap:programming-language
description: 'Programming languages used to build this CMS.
DOAP: programming-language for implementation languages.
Common CMS languages:
- PHP (CollectiveAccess, Omeka S, ResourceSpace)
- Ruby (ArchivesSpace)
- Java (DSpace, Fedora)
- Python (various)
- .NET (some proprietary CMS)
'
range: string
multivalued: true
examples:
- value: PHP
description: Server-side language
- value: JavaScript
description: Frontend language
repository_url:
slot_uri: doap:repository
description: 'Source code repository URL (for open-source CMS).
DOAP: repository for source code location.
Typically GitHub, GitLab, or similar.
'
range: uri
examples:
- value: https://github.com/collectiveaccess/providence
description: CollectiveAccess GitHub repo
- value: https://github.com/archivesspace/archivesspace
description: ArchivesSpace GitHub repo
supported_metadata_standard:
slot_uri: dcterms:conformsTo
description: 'Metadata standards supported by this CMS.
Dublin Core: conformsTo for standard compliance.
Common standards:
- Dublin Core
- VRA Core (visual resources)
- LIDO (museum objects)
- EAD (archival description)
- MARC21 (libraries)
- SPECTRUM (museum procedures)
- ISAD(G) (archival)
- MODS/METS
- EDM (Europeana)
'
range: string
multivalued: true
examples:
- value: Dublin Core
description: Basic metadata standard
- value: LIDO
description: Museum object standard
- value: EAD
description: Archival description standard
iiif_compatible:
slot_uri: dcterms:conformsTo
description: 'Does this CMS support IIIF image/presentation APIs?
Dublin Core: conformsTo for IIIF specification compliance.
IIIF support enables:
- Image API (deep zoom tiles)
- Presentation API (manifests)
- Integration with Mirador, Universal Viewer, etc.
'
range: boolean
examples:
- value: true
description: IIIF compatible
linked_data_export:
slot_uri: dcterms:conformsTo
description: 'Does this CMS support linked open data export (RDF)?
Dublin Core: conformsTo for LOD compliance.
Export formats may include:
- RDF/XML
- Turtle
- JSON-LD
- N-Triples
'
range: boolean
examples:
- value: true
description: Supports LOD export
has_api_available_flag:
slot_uri: schema:documentation
description: 'Does this CMS provide a programmatic API?
Schema.org: documentation for API availability.
API types:
- REST API
- GraphQL
- OAI-PMH
- SPARQL
- SRU/SRW
'
range: boolean
examples:
- value: true
description: API available
powers_platform:
slot_uri: crm:P33_used_specific_technique
description: 'DigitalPlatform(s) powered by this CMS deployment.
CIDOC-CRM: P33_used_specific_technique - the CMS is the technique/procedure
used to power the digital platform.
**BIDIRECTIONAL RELATIONSHIP**:
- Forward: CollectionManagementSystem → DigitalPlatform (powers_platform)
- Reverse: DigitalPlatform → CollectionManagementSystem (powered_by_cms)
One CMS deployment may power multiple platforms:
- Public website
- Staff intranet
- Mobile app backend
- API service
'
range: DigitalPlatform
multivalued: true
examples:
- value: https://nde.nl/ontology/hc/platform/rijksmuseum-website
description: Platform powered by this CMS
manages_collection:
slot_uri: crm:P70_documents
description: 'CustodianCollection(s) managed by this CMS.
CIDOC-CRM: P70_documents - the CMS documents the collection.
**BIDIRECTIONAL RELATIONSHIP**:
- Forward: CollectionManagementSystem → CustodianCollection (manages_collection)
- Reverse: CustodianCollection → CollectionManagementSystem (managed_by_cms)
Multiple collections may be managed by one CMS deployment:
- Paintings collection
- Prints and drawings
- Archival fonds
'
range: CustodianCollection
multivalued: true
examples:
- value: https://nde.nl/ontology/hc/collection/rm-paintings
description: Collection managed by this CMS
used_by_custodian:
slot_uri: dcterms:references
description: 'The Custodian that uses this CMS deployment.
Dublin Core: references for entity relationship.
Each CMS deployment is associated with exactly one custodian hub,
though a custodian may use multiple CMS systems.
'
range: Custodian
multivalued: true
examples:
- value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Rijksmuseum uses this CMS
deployment_date:
slot_uri: schema:datePublished
description: 'Date when this CMS was deployed/implemented at the institution.
Schema.org: datePublished for deployment date.
May be approximate (year-only acceptable).
'
range: date
examples:
- value: '2015-06-01'
description: CMS deployed June 2015
temporal_extent:
slot_uri: crm:P4_has_time-span
description: 'Temporal period during which this CMS deployment was/is active.
CIDOC-CRM: P4_has_time-span for deployment lifecycle.
Use for:
- Deployment start (begin_of_the_begin)
- Migration/replacement date (end_of_the_end)
- Upgrade timeline
'
range: TimeSpan
examples:
- value:
begin_of_the_begin: '2015-06-01'
end_of_the_end: null
description: Active since June 2015
was_derived_from:
slot_uri: prov:wasDerivedFrom
description: 'CustodianObservation(s) documenting this CMS usage.
PROV-O: wasDerivedFrom for observation provenance.
Evidence sources:
- Website footer/credits
- Technical documentation
- Staff interviews
- Conference presentations
'
range: CustodianObservation
multivalued: true
required: false
was_generated_by:
slot_uri: prov:wasGeneratedBy
description: 'ReconstructionActivity that created this CMS record.
PROV-O: wasGeneratedBy for generation activity.
'
range: ReconstructionActivity
required: false
refers_to_custodian:
slot_uri: dcterms:references
description: 'Primary Custodian hub associated with this CMS deployment.
Dublin Core: references for entity reference.
Required link to the heritage custodian using this CMS.
'
range: Custodian
required: true
examples:
- value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Rijksmuseum custodian hub
has_or_had_custodian_type:
equals_expression: '["*"]'
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- CMS represents SOFTWARE PRODUCT deployed at institution
- DigitalPlatform represents WEB INTERFACE powered by CMS
- One CMS deployment can power multiple platforms
- Multiple collections can be managed by one CMS
- Schema.org SoftwareApplication for software metadata
- CIDOC-CRM E29_Design_or_Procedure for procedural aspect
- DOAP for open-source software project metadata
see_also:
- https://schema.org/SoftwareApplication
- http://www.cidoc-crm.org/cidoc-crm/E29_Design_or_Procedure
- http://usefulinc.com/ns/doap#Project
examples:
- value:
cms_id: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib
cms_product_name: Adlib
cms_product_version: '7.4'
cms_category: MUSEUM_CMS
open_source: false
license: Proprietary
vendor_name: Axiell
vendor_url: https://www.axiell.com/
supported_metadata_standard:
- SPECTRUM
- Dublin Core
- LIDO
iiif_compatible: true
linked_data_export: true
api_available: true
powers_platform:
- https://nde.nl/ontology/hc/platform/rijksmuseum-website
manages_collection:
- https://nde.nl/ontology/hc/collection/rm-paintings
- https://nde.nl/ontology/hc/collection/rm-prints
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Rijksmuseum Adlib CMS deployment
- value:
cms_id: https://nde.nl/ontology/hc/cms/example-museum-collectiveaccess
cms_product_name: CollectiveAccess
cms_product_version: 1.8.0
cms_category: MUSEUM_CMS
open_source: true
license: GPL-3.0
vendor_name: Whirl-i-Gig
vendor_url: https://www.collectiveaccess.org/
documentation_url: https://manual.collectiveaccess.org/
programming_language:
- PHP
- JavaScript
- MySQL
repository_url: https://github.com/collectiveaccess/providence
supported_metadata_standard:
- Dublin Core
- VRA Core
- LIDO
iiif_compatible: true
linked_data_export: true
api_available: true
refers_to_custodian: https://nde.nl/ontology/hc/example-museum
description: Open-source CollectiveAccess deployment
- value:
cms_id: https://nde.nl/ontology/hc/cms/nationaal-archief-mais
cms_product_name: MAIS-Flexis
cms_product_version: null
cms_category: ARCHIVE_CMS
open_source: false
license: Proprietary
vendor_name: De Ree Archiefsystemen
supported_metadata_standard:
- ISAD(G)
- EAD
- MDTO
iiif_compatible: false
linked_data_export: false
api_available: true
manages_collection:
- https://nde.nl/ontology/hc/collection/na-government-records
refers_to_custodian: https://nde.nl/ontology/hc/nl-na
description: Dutch National Archives MAIS-Flexis deployment