374 lines
17 KiB
YAML
374 lines
17 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
|
|
# KEPT for backward compatibility - simple boolean for basic use cases
|
|
- ../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/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- ./SpecificityAnnotation
|
|
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
|
|
|
|
- ./TemplateSpecificityType
|
|
|
|
- ./TemplateSpecificityTypes
|
|
# ADDED 2026-01-17: Rich appointment modeling per slot_fixes.yaml revision for appointment_required
|
|
# These enable structured access conditions with Appointment entities (vs. just boolean)
|
|
- ../slots/condition_of_access
|
|
- ../slots/requires_or_required
|
|
- ./Appointment
|
|
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)
|
|
# KEPT for backward compatibility as simple boolean flag
|
|
- requires_appointment
|
|
- condition
|
|
# ADDED 2026-01-17: Rich access condition modeling per slot_fixes.yaml revision
|
|
- condition_of_access
|
|
- requires_or_required
|
|
- 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
|
|
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- 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
|
|
# ADDED 2026-01-17: Rich access condition modeling per slot_fixes.yaml revision
|
|
condition_of_access:
|
|
description: |
|
|
Textual conditions or requirements for access (RiC-O style).
|
|
Use for human-readable access requirements. For structured appointment
|
|
data, use requires_or_required with Appointment instances.
|
|
range: string
|
|
multivalued: true
|
|
examples:
|
|
- value:
|
|
- "Appointment required 48 hours in advance"
|
|
- "Valid researcher credentials required"
|
|
- "Materials must be handled with cotton gloves"
|
|
description: Multiple access conditions
|
|
requires_or_required:
|
|
description: |
|
|
Links to structured Appointment entities for rich appointment modeling.
|
|
ADDED 2026-01-17 per slot_fixes.yaml revision for appointment_required.
|
|
|
|
Use this for detailed appointment requirements (lead time, booking method,
|
|
contact info). For simple boolean, use requires_appointment instead.
|
|
range: Appointment
|
|
multivalued: true
|
|
inlined: true
|
|
examples:
|
|
- value:
|
|
- appointment_id: "hc:appointment/special-collections-48h"
|
|
has_or_had_label: "Special Collections Appointment"
|
|
has_or_had_description: "Book at least 48 hours in advance for manuscript access"
|
|
lead_time_hours: 48
|
|
booking_method:
|
|
- email
|
|
- online_form
|
|
booking_contact: "bijzondere.collecties@archive.nl"
|
|
appointment_required: true
|
|
description: Structured appointment requirement with rich metadata
|
|
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
|
|
# ADDED 2026-01-17: Example with rich appointment modeling
|
|
- value:
|
|
policy_id: https://nde.nl/ontology/hc/access-policy/special-collections-rich
|
|
policy_name: Special Collections - Rich Appointment Policy
|
|
access_level: RESEARCHERS_ONLY
|
|
access_description: Academic researchers with institutional affiliation
|
|
condition_of_access:
|
|
- "Valid institutional ID required"
|
|
- "Letter of introduction from supervisor"
|
|
- "Maximum 5 items per visit"
|
|
requires_or_required:
|
|
- appointment_id: "hc:appointment/special-collections-booking"
|
|
has_or_had_label: "Special Collections Appointment"
|
|
has_or_had_description: |
|
|
Appointments for manuscript and rare book collections must be made
|
|
at least 48 hours in advance. Please specify which materials you
|
|
wish to consult.
|
|
lead_time_hours: 48
|
|
booking_method:
|
|
- email
|
|
- online_form
|
|
booking_contact: "bijzondere.collecties@archive.nl"
|
|
confirmation_required: true
|
|
cancellation_notice_hours: 24
|
|
appointment_required: true
|
|
registration_required: true
|
|
credentials_required: INSTITUTIONAL
|
|
fee_required: false
|
|
contact_email: special.collections@archive.nl
|
|
description: Rich appointment modeling with structured Appointment entity
|