glam/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml
2025-12-23 13:27:35 +01:00

533 lines
18 KiB
YAML

# AccessPolicy Class - Access restrictions and conditions for heritage collections
#
# This class defines access policies governing how heritage collections can be accessed.
# Used by Collection class to specify access conditions.
#
# Ontology alignment:
# - PREMIS: premis:RightsDeclaration
# - Dublin Core: dcterms:accessRights
# - RiC-O: rico:hasOrHadAllMembersWithAccessConditions
#
# Generation date: 2025-12-08
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
- ../slots/valid_from
- ../slots/valid_to
- ../slots/embargo_end_date
- ../slots/contact_email
- ../slots/policy_id
- ../slots/policy_name
classes:
AccessPolicy:
class_uri: premis:RightsDeclaration
description: |
Access policy defining conditions under which heritage collections can be accessed.
**PURPOSE**:
AccessPolicy captures the access conditions governing a Collection:
- WHO can access (public, researchers, staff only)
- HOW access is granted (open, by appointment, with credentials)
- WHEN access is available (opening hours, embargo periods)
- WHAT restrictions apply (fragile materials, privacy, cultural sensitivity)
**ONTOLOGY ALIGNMENT**:
1. **PREMIS**:
- `premis:RightsDeclaration` - "An assertion of one or more rights or
permissions pertaining to an object and/or its content."
- Links to Collection via premis:hasRightsDeclaration
2. **Dublin Core**:
- `dcterms:accessRights` - "Information about who may access the resource
or an indication of its security status."
3. **RiC-O**:
- `rico:hasOrHadAllMembersWithAccessConditions` - Links RecordSet to access
conditions applying to all members
4. **RightsStatements.org**:
- Standardized rights statements for cultural heritage
- E.g., "In Copyright", "No Copyright", "Unknown Copyright"
**ACCESS LEVEL TAXONOMY**:
```
AccessPolicy (root)
├── OpenAccess
│ ├── PUBLIC_OPEN - No restrictions, walk-in access
│ ├── PUBLIC_REGISTRATION - Free registration required
│ └── PUBLIC_ONLINE - Digital access freely available
├── RestrictedAccess
│ ├── RESEARCHERS_ONLY - Academic researchers with credentials
│ ├── BY_APPOINTMENT - Advance booking required
│ ├── STAFF_ONLY - Internal access only
│ └── PERMISSION_REQUIRED - Written permission needed
├── ClosedAccess
│ ├── TEMPORARILY_CLOSED - Renovation, conservation
│ ├── EMBARGOED - Time-limited closure
│ ├── PERMANENTLY_CLOSED - Not accessible
│ └── REPATRIATED - Returned to community of origin
└── ConditionalAccess
├── CULTURALLY_SENSITIVE - Indigenous/sacred materials
├── PRIVACY_RESTRICTED - Personal data protection
├── FRAGILE_HANDLING - Special handling required
└── LEGAL_RESTRICTION - Copyright, legal constraints
```
**USE CASES**:
1. **Archive Open Access**:
```yaml
AccessPolicy:
policy_id: "hc:access-policy/nationaal-archief-open"
access_level: "PUBLIC_OPEN"
access_description: "Open to all visitors during reading room hours"
conditions: "Valid ID required for registration"
```
2. **Restricted Research Materials**:
```yaml
AccessPolicy:
policy_id: "hc:access-policy/university-special-collections"
access_level: "RESEARCHERS_ONLY"
access_description: "Academic researchers with institutional affiliation"
conditions: "Letter of introduction required from supervising institution"
appointment_required: true
```
3. **Embargoed Collection**:
```yaml
AccessPolicy:
policy_id: "hc:access-policy/donor-embargo-2050"
access_level: "EMBARGOED"
access_description: "Closed until 2050 per donor agreement"
embargo_end_date: "2050-01-01"
embargo_reason: "Donor privacy restrictions"
```
4. **Culturally Sensitive**:
```yaml
AccessPolicy:
policy_id: "hc:access-policy/indigenous-protocols"
access_level: "CULTURALLY_SENSITIVE"
access_description: "Access governed by Traditional Knowledge protocols"
conditions: "Consultation with originating community required"
cultural_protocol_url: "https://localcontexts.org/tk-labels/"
```
**RELATIONSHIP TO DIM ARCHIVE**:
DimArchive (Dark archive / Preservation-only storage) uses AccessPolicy to express:
- Materials stored for preservation, not current access
- Access restricted until triggering conditions (time, event)
- "Gray literature" or un-catalogued backlogs awaiting processing
exact_mappings:
- premis:RightsDeclaration
- dcterms:accessRights
close_mappings:
- rico:Rule
- schema:ActionAccessSpecification
related_mappings:
- rico:hasOrHadAllMembersWithAccessConditions
slots:
- policy_id
- policy_name
- access_level
- access_description
- conditions
- rights_statement
- rights_statement_url
- appointment_required
- registration_required
- credentials_required
- fee_required
- fee_amount
- embargo_end_date
- embargo_reason
- cultural_protocol_url
- legal_basis
- review_date
- contact_email
- valid_from
- valid_to
slot_usage:
policy_id:
slot_uri: dcterms:identifier
description: |
Unique identifier for this access policy.
range: uriorcurie
required: true
identifier: true
examples:
- value: "https://nde.nl/ontology/hc/access-policy/open-access"
description: "Standard open access policy"
policy_name:
slot_uri: skos:prefLabel
description: |
Human-readable name for this policy.
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"
access_level:
slot_uri: dcterms:accessRights
description: |
Primary access level classification.
Values:
- PUBLIC_OPEN: No restrictions, walk-in access
- PUBLIC_REGISTRATION: Free registration required
- PUBLIC_ONLINE: Digital access freely available
- RESEARCHERS_ONLY: Academic researchers with credentials
- BY_APPOINTMENT: Advance booking required
- STAFF_ONLY: Internal access only
- PERMISSION_REQUIRED: Written permission needed
- TEMPORARILY_CLOSED: Renovation, conservation
- EMBARGOED: Time-limited closure
- PERMANENTLY_CLOSED: Not accessible
- CULTURALLY_SENSITIVE: Indigenous/sacred materials
- PRIVACY_RESTRICTED: Personal data protection
- FRAGILE_HANDLING: Special handling required
- LEGAL_RESTRICTION: Copyright, legal constraints
range: string
required: true
examples:
- value: "PUBLIC_OPEN"
- value: "RESEARCHERS_ONLY"
- value: "EMBARGOED"
access_description:
slot_uri: dcterms:description
description: |
Narrative description of access conditions.
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 affiliation"
description: "University special collections"
conditions:
slot_uri: rico:conditionOfAccess
description: |
Specific conditions or requirements for access.
RiC-O: conditionOfAccess for access requirements.
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:
slot_uri: dcterms:rights
description: |
Rights statement text (from RightsStatements.org or similar).
range: string
examples:
- value: "In Copyright"
description: "Copyright protected"
- value: "No Copyright - United States"
description: "Public domain (US)"
rights_statement_url:
slot_uri: dcterms:rights
description: |
URL to standardized rights statement (RightsStatements.org).
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"
appointment_required:
slot_uri: schema:requiresAppointment
description: |
Whether advance appointment is required.
range: boolean
examples:
- value: true
description: "Appointment required"
- value: false
description: "Walk-in access"
registration_required:
slot_uri: schema:eligibleCustomerType
description: |
Whether registration is required (even for free access).
range: boolean
examples:
- value: true
description: "Must register as reader"
credentials_required:
slot_uri: schema:eligibleCustomerType
description: |
Type of credentials required for access.
Values:
- NONE: No credentials needed
- INSTITUTIONAL: Affiliation with research institution
- PROFESSIONAL: Professional membership (archivist, librarian)
- ACADEMIC: Academic degree or enrollment
- GOVERNMENT: Government clearance
range: string
examples:
- value: "INSTITUTIONAL"
description: "Must be affiliated with research institution"
fee_required:
slot_uri: schema:isAccessibleForFree
description: |
Whether access requires payment.
range: boolean
examples:
- value: false
description: "Free access"
- value: true
description: "Fee required"
fee_amount:
slot_uri: schema:price
description: |
Fee amount if access requires payment.
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:
slot_uri: premis:endDate
description: |
Date when embargo ends (for EMBARGOED access level).
PREMIS: endDate for rights expiration.
range: date
examples:
- value: "2050-01-01"
description: "Embargo lifts January 1, 2050"
embargo_reason:
slot_uri: premis:determinationBasis
description: |
Reason for embargo (donor restriction, legal, etc.).
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:
slot_uri: dcterms:conformsTo
description: |
URL to cultural protocol (for CULTURALLY_SENSITIVE materials).
E.g., Local Contexts Traditional Knowledge labels.
range: uri
examples:
- value: "https://localcontexts.org/tk-labels/"
description: "Traditional Knowledge labels"
legal_basis:
slot_uri: premis:statute
description: |
Legal basis for access restriction.
PREMIS: statute for legal foundation.
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:
slot_uri: dcterms:modified
description: |
Date when access policy should be reviewed.
range: date
examples:
- value: "2025-12-31"
description: "Annual review date"
contact_email:
slot_uri: schema:email
description: |
Email contact for access inquiries.
range: string
examples:
- value: "access@nationaalarchief.nl"
description: "Access request contact"
valid_from:
slot_uri: schema:validFrom
description: |
Date when this policy became effective.
range: date
valid_to:
slot_uri: schema:validThrough
description: |
Date when this policy expires (if applicable).
range: date
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/RightsDeclaration"
- "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"
conditions:
- "Valid government-issued ID required"
- "Registration form must be completed"
- "Original materials handled with gloves"
registration_required: true
appointment_required: false
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"
conditions:
- "Awaiting processing and cataloging"
- "Access may be arranged for urgent research needs"
appointment_required: true
credentials_required: "PROFESSIONAL"
contact_email: "preservation@archive.org"
description: "Dark archive / DIM access policy"
# Basic slot definitions
slots:
# policy_id: imported from ../slots/policy_id
# policy_name: imported from ../slots/policy_name
access_level:
description: Primary access level classification
range: string
access_description:
description: Narrative description of access
range: string
conditions:
description: Specific access conditions
range: string
multivalued: true
rights_statement:
description: Rights statement text
range: string
rights_statement_url:
description: URL to standardized rights statement
range: uri
appointment_required:
description: Whether appointment is required
range: boolean
registration_required:
description: Whether registration is required
range: boolean
credentials_required:
description: Type of credentials required
range: string
fee_required:
description: Whether fee is required
range: boolean
fee_amount:
description: Fee amount description
range: string
# embargo_end_date: imported from ../slots/embargo_end_date
embargo_reason:
description: Reason for embargo
range: string
cultural_protocol_url:
description: URL to cultural protocol
range: uri
legal_basis:
description: Legal basis for restriction
range: string
review_date:
description: Policy review date
range: date
# contact_email: imported from ../slots/contact_email