glam/frontend/public/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml
kempersc f9f3cc8e74 fix: resolve YAML import indentation and add missing slot descriptions
Schema Improvements:
- Fix YAML import indentation across 800+ class files (sed: '^- ../' → '  - ../')
- Add descriptions to 26 inline slots missing them (lint warnings)
- Fix malformed imports in BirthPlace.yaml and CustodianObservation.yaml

Validation Results:
- linkml-lint: 4 warnings (intentional SCREAMING_CASE tier names)
- gen-owl: SUCCESS (164,069 lines generated)
- gen-json-schema: SUCCESS (9.4MB generated)

Files affected: 1,034 files, +23,908 -15,200 lines
2026-01-16 00:09:28 +01:00

294 lines
14 KiB
YAML

id: https://nde.nl/ontology/hc/class/AccessPolicy
name: access_policy_class
title: AccessPolicy Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
premis: http://www.loc.gov/premis/rdf/v3/
dcterms: http://purl.org/dc/terms/
rico: https://www.ica.org/standards/RiC/ontology#
schema: http://schema.org/
skos: http://www.w3.org/2004/02/skos/core#
wd: http://www.wikidata.org/entity/
default_prefix: hc
imports:
- linkml:types
# Migrated per slot_fixes.yaml (Rule 53) - 2026-01-14
# valid_from + valid_to → temporal_extent + TimeSpan (with begin_of_the_begin/end_of_the_end)
- ../slots/temporal_extent
- ./TimeSpan
- ../slots/embargo_end_date
- ../slots/contact_email
- ../slots/policy_id
- ../slots/policy_name
- ../slots/has_or_had_access_description
- ../slots/has_or_had_access_level
# RESTORED 2026-01-15: requires_appointment has correct semantics (schema:reservationRequired)
# The is_or_was_required slot was incorrectly using schema:isRequired which is for form field validation
- ../slots/requires_appointment
- ../slots/condition
- ../slots/credentials_required
- ../slots/cultural_protocol_url
- ../slots/embargo_reason
- ../slots/fee_amount
- ../slots/fee_required
- ../slots/legal_basis
- ../slots/registration_required
- ../slots/review_date
- ../slots/rights_statement
- ../slots/rights_statement_url
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
AccessPolicy:
class_uri: premis:RightsStatus
description: "Access policy defining conditions under which heritage collections can be accessed.\n\n**PURPOSE**:\n\n\
AccessPolicy captures the access conditions governing a Collection:\n- WHO can access (public, researchers, staff only)\n\
- HOW access is granted (open, by appointment, with credentials)\n- WHEN access is available (opening hours, embargo\
\ periods)\n- WHAT restrictions apply (fragile materials, privacy, cultural sensitivity)\n\n1. **PREMIS**:\n - `premis:RightsStatus`\
\ - \"Information about the rights status of an object.\"\n - Links\
\ to Collection via premis:rightsStatus\n\n2. **Dublin Core**:\n - `dcterms:accessRights` - \"Information\
\ about who may access the resource\n or an indication of its security status.\"\n\n3. **RiC-O**:\n - `rico:hasOrHadAllMembersWithAccessConditions`\
\ - Links RecordSet to access\n conditions applying to all members\n\n4. **RightsStatements.org**:\n - Standardized\
\ rights statements for cultural heritage\n - E.g., \"In Copyright\", \"No Copyright\", \"Unknown Copyright\"\n\n\
**ACCESS LEVEL TAXONOMY**:\n\n```\nAccessPolicy (root)\n │\n ├── OpenAccess\n │ ├── PUBLIC_OPEN - No restrictions,\
\ walk-in access\n │ ├── PUBLIC_REGISTRATION - Free registration required\n │ └── PUBLIC_ONLINE - Digital\
\ access freely available\n │\n ├── RestrictedAccess\n │ ├── RESEARCHERS_ONLY - Academic researchers with credentials\n\
\ │ ├── BY_APPOINTMENT - Advance booking required\n │ ├── STAFF_ONLY - Internal access only\n │ └── PERMISSION_REQUIRED\
\ - Written permission needed\n │\n ├── ClosedAccess\n │ ├── TEMPORARILY_CLOSED - Renovation, conservation\n\
\ │ ├── EMBARGOED - Time-limited closure\n │ ├── PERMANENTLY_CLOSED - Not accessible\n │ └── REPATRIATED\
\ - Returned to community of origin\n │\n └── ConditionalAccess\n ├── CULTURALLY_SENSITIVE - Indigenous/sacred\
\ materials\n ├── PRIVACY_RESTRICTED - Personal data protection\n ├── FRAGILE_HANDLING - Special handling\
\ required\n └── LEGAL_RESTRICTION - Copyright, legal constraints\n```\n\n**USE CASES**:\n\n1. **Archive Open\
\ Access**:\n ```yaml\n AccessPolicy:\n policy_id: \"hc:access-policy/nationaal-archief-open\"\n access_level:\
\ \"PUBLIC_OPEN\"\n access_description: \"Open to all visitors during reading room hours\"\n conditions: \"\
Valid ID required for registration\"\n ```\n\n2. **Restricted Research Materials**:\n ```yaml\n AccessPolicy:\n\
\ policy_id: \"hc:access-policy/university-special-collections\"\n access_level: \"RESEARCHERS_ONLY\"\n \
\ access_description: \"Academic researchers with institutional affiliation\"\n conditions: \"Letter of introduction\
\ required from supervising institution\"\n requires_appointment: true\n ```\n\n3. **Embargoed Collection**:\n\
\ ```yaml\n AccessPolicy:\n policy_id: \"hc:access-policy/donor-embargo-2050\"\n access_level: \"EMBARGOED\"\
\n access_description: \"Closed until 2050 per donor agreement\"\n embargo_end_date: \"2050-01-01\"\n embargo_reason:\
\ \"Donor privacy restrictions\"\n ```\n\n4. **Culturally Sensitive**:\n ```yaml\n AccessPolicy:\n policy_id:\
\ \"hc:access-policy/indigenous-protocols\"\n access_level: \"CULTURALLY_SENSITIVE\"\n access_description: \"\
Access governed by Traditional Knowledge protocols\"\n conditions: \"Consultation with originating community required\"\
\n cultural_protocol_url: \"https://localcontexts.org/tk-labels/\"\n ```\n\n**RELATIONSHIP TO DIM ARCHIVE**:\n\
\nDimArchive (Dark archive / Preservation-only storage) uses AccessPolicy to express:\n- Materials stored for preservation,\
\ not current access\n- Access restricted until triggering conditions (time, event)\n- \"Gray literature\" or un-catalogued\
\ backlogs awaiting processing\n"
exact_mappings:
- premis:RightsStatus
- dcterms:accessRights
close_mappings:
- rico:Rule
- schema:ActionAccessSpecification
related_mappings:
- rico:hasOrHadAllMembersWithAccessConditions
slots:
- has_or_had_access_description
- has_or_had_access_level
# RESTORED 2026-01-15: requires_appointment - correct semantics (schema:reservationRequired)
- requires_appointment
- condition
- contact_email
- credentials_required
- cultural_protocol_url
- embargo_end_date
- embargo_reason
- fee_amount
- fee_required
- legal_basis
- policy_id
- policy_name
- registration_required
- review_date
- rights_statement
- rights_statement_url
- specificity_annotation
- template_specificity
- temporal_extent # was: valid_from + valid_to - migrated per Rule 53
slot_usage:
policy_id:
range: uriorcurie
required: true
identifier: true
examples:
- value: https://nde.nl/ontology/hc/access-policy/open-access
description: Standard open access policy
policy_name:
range: string
required: true
examples:
- value: Open Access
description: Public open access
- value: Researchers Only
description: Restricted to researchers
- value: Embargoed until 2050
description: Time-limited closure
has_or_had_access_level:
range: string
required: true
examples:
- value: PUBLIC_OPEN
- value: RESEARCHERS_ONLY
- value: EMBARGOED
has_or_had_access_description:
range: string
examples:
- value: Open to all visitors during reading room hours (Mon-Fri 9-17)
description: Archive public access
- value: Access restricted to academic researchers with institutional has_or_had_affiliation
description: University special collections
condition:
range: string
multivalued: true
examples:
- value:
- Valid government-issued ID required
- Registration form must be completed
- Bags and coats must be stored in lockers
description: Archive access conditions
rights_statement:
range: string
examples:
- value: In Copyright
description: Copyright protected
- value: No Copyright - United States
description: Public domain (US)
rights_statement_url:
range: uri
examples:
- value: http://rightsstatements.org/vocab/InC/1.0/
description: In Copyright
- value: http://rightsstatements.org/vocab/NoC-US/1.0/
description: No Copyright - United States
requires_appointment:
range: boolean
description: |
Whether an appointment is required for access.
Uses schema:reservationRequired which is semantically correct for access policies.
examples:
- value: true
description: Appointment required
- value: false
description: Walk-in access
registration_required:
range: boolean
examples:
- value: true
description: Must register as reader
credentials_required:
range: string
examples:
- value: INSTITUTIONAL
description: Must be affiliated with research institution
fee_required:
range: boolean
examples:
- value: false
description: Free access
- value: true
description: Fee required
fee_amount:
range: string
examples:
- value: €5.00 per day
description: Daily reading room fee
- value: Free for researchers, €10 for general public
description: Tiered fee structure
embargo_end_date:
range: date
examples:
- value: '2050-01-01'
description: Embargo lifts January 1, 2050
embargo_reason:
range: string
examples:
- value: Donor privacy restrictions per deed of gift
description: Donor-imposed embargo
- value: Contains personal data protected under GDPR
description: Privacy law embargo
cultural_protocol_url:
range: uri
examples:
- value: https://localcontexts.org/tk-labels/
description: Traditional Knowledge labels
legal_basis:
range: string
examples:
- value: General Data Protection Regulation (GDPR)
description: EU privacy law
- value: Freedom of Information Act exemption 6
description: US FOIA exemption
review_date:
range: date
examples:
- value: '2025-12-31'
description: Annual review date
contact_email:
range: string
examples:
- value: access@nationaalarchief.nl
description: Access request contact
temporal_extent: # was: valid_from + valid_to - migrated per Rule 53
description: |
Validity period for this access policy using CIDOC-CRM TimeSpan.
MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53).
Uses begin_of_the_begin for policy start date and end_of_the_end for expiry.
range: TimeSpan
inlined: true
required: false
examples:
- value:
begin_of_the_begin: '2024-01-01'
end_of_the_end: '2050-12-31'
description: Policy valid from 2024 until end of 2050
comments:
- AccessPolicy defines access conditions for Collection instances
- Used by Collection.access_policy_ref to link policies to holdings
- Supports RightsStatements.org and Local Contexts protocols
- Temporal validity enables policy versioning and embargo expiration
- DimArchive (dark archive) uses AccessPolicy to express preservation-only access
see_also:
- http://www.loc.gov/premis/rdf/v3/RightsStatus
- https://rightsstatements.org/
- https://localcontexts.org/
- https://www.ica.org/standards/RiC/ontology#Rule
examples:
- value:
policy_id: https://nde.nl/ontology/hc/access-policy/nationaal-archief-open
policy_name: Nationaal Archief Public Access
access_level: PUBLIC_OPEN
access_description: Open to all visitors during reading room hours
condition:
- Valid government-issued ID required
- Registration form must be completed
- Original materials handled with gloves
registration_required: true
requires_appointment: false # Walk-in access allowed
fee_required: false
contact_email: studiezaal@nationaalarchief.nl
description: Standard archive public access policy
- value:
policy_id: https://nde.nl/ontology/hc/access-policy/donor-embargo-2050
policy_name: Embargoed until 2050
access_level: EMBARGOED
access_description: Collection closed until 2050 per donor agreement
embargo_end_date: '2050-01-01'
embargo_reason: Donor privacy restrictions per deed of gift
legal_basis: Deed of Gift clause 4.2
review_date: '2049-06-01'
description: Time-limited embargo policy
- value:
policy_id: https://nde.nl/ontology/hc/access-policy/dim-archive-preservation
policy_name: DIM Archive - Preservation Only
access_level: TEMPORARILY_CLOSED
access_description: Materials in preservation storage, not currently accessible
condition:
- Awaiting processing and cataloging
- Access may be arranged for urgent research needs
requires_appointment: true # Appointment required for DIM archive access
credentials_required: PROFESSIONAL
contact_email: preservation@archive.org
description: Dark archive / DIM access policy