glam/frontend/public/schemas/20251121/linkml/modules/classes/RequirementStatus.yaml
2026-01-19 00:09:28 +01:00

208 lines
7.7 KiB
YAML

# RequirementStatus - Status class for structured requirement information
#
# Following the BackupStatus pattern:
# This is a STATUS class that represents the current state of a requirement,
# with structured type classification via RequirementType.
#
# Generation date: 2026-01-15 (created for booking_required migration)
# Rule compliance: 37 (specificity scores), 38 (slot centralization), 39 (RiC-O naming)
#
# ONTOLOGY ALIGNMENT: PROV-O prov:Entity for status with provenance
id: https://nde.nl/ontology/hc/class/RequirementStatus
name: requirement_status_class
title: Requirement Status Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
# Shared slots (centralized)
- ../slots/has_or_had_identifier
- ../slots/has_or_had_type
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_note
- ../slots/is_or_was_required
- ../slots/begin_of_the_begin
- ../slots/end_of_the_end
# Import the RequirementType for type references
- ./RequirementType
classes:
RequirementStatus:
class_uri: prov:Entity
description: |
Represents the status of a requirement (e.g., booking, registration, appointment).
**DEFINITION**:
RequirementStatus captures structured requirement information including:
- Whether the requirement is active (is_or_was_required boolean)
- The type(s) of requirement (via has_or_had_type → RequirementType)
- Status description (free text details)
- Temporal validity (when this requirement was in effect)
**ONTOLOGY ALIGNMENT**:
| Ontology | Class/Property | Notes |
|----------|----------------|-------|
| **PROV-O** | `prov:Entity` | Primary - entity with provenance |
| **Schema.org** | `schema:isRequired` | Boolean requirement |
| **SKOS** | `skos:Concept` | For type classification |
**RELATIONSHIP TO OTHER CLASSES**:
```
EducationCenter / ReadingRoom / etc.
└── has_or_had_status → RequirementStatus (THIS CLASS)
├── is_or_was_required (boolean - is booking required?)
├── has_or_had_type → RequirementType (what kind of requirement)
├── has_or_had_description (free text details)
└── begin_of_the_begin / end_of_the_end (validity period)
```
**SLOT MIGRATION** (2026-01-15):
This class replaces domain-specific boolean slots:
- booking_required (boolean) → has_or_had_status: RequirementStatus
- appointment_required (boolean) → has_or_had_status: RequirementStatus
- registration_required (boolean) → has_or_had_status: RequirementStatus
**SIMPLE VS STRUCTURED USAGE**:
For simple boolean requirement (just true/false):
```yaml
is_or_was_required: true
```
For structured requirement with details:
```yaml
has_or_had_status:
is_or_was_required: true
has_or_had_type:
- has_or_had_short_code: ADVANCE_BOOKING
has_or_had_description: "Advance booking required for groups of 10+"
```
exact_mappings:
- prov:Entity
close_mappings:
- schema:Action
slots:
- has_or_had_identifier
- is_or_was_required
- has_or_had_type
- has_or_had_label
- has_or_had_description
- has_or_had_note
- begin_of_the_begin
- end_of_the_end
slot_usage:
has_or_had_identifier:
range: uriorcurie
identifier: true
required: true
pattern: "^https://nde\\.nl/ontology/hc/requirement-status/[a-z0-9-]+$"
is_or_was_required:
range: boolean
required: true
description: "Whether this requirement is active/mandatory."
examples:
- value: true
description: Booking is required
- value: false
description: Booking is optional (walk-ins welcome)
has_or_had_type:
range: RequirementType
multivalued: true
inlined_as_list: true
description: "The type(s) of requirement (advance booking, group booking, etc.)."
examples:
- value:
- has_or_had_short_code: ADVANCE_BOOKING
description: Advance booking required
has_or_had_description:
range: string
description: "Free text description of the requirement details."
examples:
- value: "Advance booking required for groups of 10 or more. Individual visitors welcome without booking."
has_or_had_note:
range: string
multivalued: true
description: "Additional notes about the requirement."
examples:
- value: "Online booking available at www.museum.nl/book"
- value: "Phone bookings: +31 20 123 4567"
begin_of_the_begin:
description: "When this requirement came into effect."
end_of_the_end:
description: "When this requirement ended (if no longer in effect)."
annotations:
specificity_score: "0.55"
specificity_rationale: "Requirement status applicable to many heritage contexts (education, reading rooms, visits)."
has_or_had_score: # was: template_specificity - migrated per Rule 53 (2026-01-17)
# NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.60, "location_browse": 0.75, "general_heritage": 0.50}'
slot_migration: |
2026-01-15: Created to replace domain-specific requirement boolean slots
- booking_required (boolean) → has_or_had_status (RequirementStatus)
- appointment_required (boolean) → has_or_had_status (RequirementStatus)
comments:
- "RequirementStatus represents structured requirement information"
- "Linked to RequirementType for type classification"
- "Supports temporal validity tracking"
- "CREATED 2026-01-15: Enables migration from domain-specific boolean slots"
examples:
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/rijksmuseum-edu-booking
is_or_was_required: true
has_or_had_type:
- has_or_had_short_code: ADVANCE_BOOKING
has_or_had_label:
- Booking required for education programs@en
- Reservering verplicht voor educatieprogramma's@nl
has_or_had_description: |
Advance booking required for all school groups and educational programs.
Minimum 2 weeks advance booking for groups of 20+.
has_or_had_note:
- "Online booking: educatie@rijksmuseum.nl"
begin_of_the_begin: "2020-01-01T00:00:00Z"
description: Example booking requirement for museum education center
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/archive-reading-room
is_or_was_required: true
has_or_had_type:
- has_or_had_short_code: APPOINTMENT_REQUIRED
has_or_had_description: |
Appointment required for reading room access.
Walk-in visits not possible due to limited seating.
description: Appointment requirement for archive reading room
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/requirement-status/library-open-access
is_or_was_required: false
has_or_had_description: "No booking required. Open access during public hours."
description: No requirement (open access)