feat(schema): add Classroom and RoomUnit classes for classroom_count migration
Some checks failed
Deploy Frontend / build-and-deploy (push) Has been cancelled

- Create Classroom.yaml (subclass of Facility)
- Create RoomUnit.yaml (subclass of Unit for room counting)
- Create RoomUnitTypeEnum.yaml with room type values
- Update EducationCenter.yaml to use has_or_had_facility with Classroom
- Archive classroom_count.yaml slot

Rule 53 compliance: Replaces simple integer count with structured facility model.
This commit is contained in:
kempersc 2026-01-19 13:10:38 +01:00
parent 3da90b940e
commit e2d4666221
8 changed files with 487 additions and 10 deletions

View file

@ -1,5 +1,5 @@
{ {
"generated": "2026-01-19T12:05:24.104Z", "generated": "2026-01-19T12:05:53.461Z",
"schemaRoot": "/schemas/20251121/linkml", "schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2969, "totalFiles": 2969,
"categoryCounts": { "categoryCounts": {

View file

@ -1,5 +1,5 @@
{ {
"generated": "2026-01-19T12:05:53.461Z", "generated": "2026-01-19T12:10:38.542Z",
"schemaRoot": "/schemas/20251121/linkml", "schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2969, "totalFiles": 2969,
"categoryCounts": { "categoryCounts": {

View file

@ -0,0 +1,139 @@
# Classroom - Classroom facility class
#
# Created per slot_fixes.yaml migration for: classroom_count
# Creation date: 2026-01-19
#
# Rule 53 (No Bespoke Slots): classroom_count → has_or_had_facility + Classroom
# Rule 39 (RiC-O Naming): Uses has_or_had_* pattern
id: https://nde.nl/ontology/hc/class/Classroom
name: Classroom
title: Classroom Facility
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
qudt: http://qudt.org/schema/qudt/
default_prefix: hc
imports:
- linkml:types
- ./Facility
- ./Quantity
- ./RoomUnit
- ../slots/has_or_had_quantity
- ../slots/has_or_had_unit
classes:
Classroom:
is_a: Facility
class_uri: schema:Classroom
description: |
A classroom facility at an education center or heritage institution.
**RULE 53 MIGRATION**:
Replaces the simple `classroom_count` integer slot with a richer facility model:
- `has_or_had_quantity` → number of classroom spaces
- `has_or_had_unit` → RoomUnit (specifies what is being counted)
**USAGE**:
```yaml
has_or_had_facility:
- facility_name: "Classroom Wing"
has_or_had_quantity:
numeric_value: 4
has_or_had_unit:
unit_type: CLASSROOM
```
**CHARACTERISTICS**:
- Dedicated teaching/learning space
- Capacity for group instruction
- May include AV equipment
- Configurable seating arrangements
slots:
- has_or_had_quantity
- has_or_had_unit
slot_usage:
has_or_had_quantity:
range: Quantity
inlined: true
description: |
Number of classroom spaces in this facility.
examples:
- value: |
numeric_value: 4
description: 4 classroom spaces
has_or_had_unit:
range: RoomUnit
inlined: true
description: |
Unit specification for the count (classroom, seat, etc.).
examples:
- value: |
unit_type: CLASSROOM
description: Counting classrooms
attributes:
seating_capacity:
range: integer
description: Total seating capacity across all classrooms
av_equipped:
range: boolean
description: Whether classrooms have AV equipment
flexible_seating:
range: boolean
description: Whether seating can be reconfigured
exact_mappings:
- schema:Classroom
close_mappings:
- schema:Room
- schema:Place
annotations:
specificity_score: "0.55"
specificity_rationale: "Moderately specific - classrooms common in education centers."
template_specificity:
archive_search: 0.30
museum_search: 0.50
library_search: 0.45
collection_discovery: 0.20
person_research: 0.15
location_browse: 0.60
identifier_lookup: 0.10
organizational_change: 0.25
digital_platform: 0.15
general_heritage: 0.55
examples:
- value:
facility_name: "Education Wing Classrooms"
facility_description: "Four fully-equipped classroom spaces for educational programs"
has_or_had_quantity:
numeric_value: 4
has_or_had_unit:
unit_type: CLASSROOM
seating_capacity: 120
av_equipped: true
flexible_seating: true
description: Museum education center classroom facility
- value:
facility_name: "Archive Learning Rooms"
facility_description: "Two seminar rooms for genealogy and research workshops"
has_or_had_quantity:
numeric_value: 2
has_or_had_unit:
unit_type: CLASSROOM
seating_capacity: 40
av_equipped: true
description: Archive education classroom facility

View file

@ -11,7 +11,11 @@ imports:
# REMOVED 2026-01-15: ../slots/annual_participants - migrated to has_or_had_annual_participant_count # REMOVED 2026-01-15: ../slots/annual_participants - migrated to has_or_had_annual_participant_count
# REMOVED 2026-01-15: ../slots/booking_required - migrated to is_or_was_required # REMOVED 2026-01-15: ../slots/booking_required - migrated to is_or_was_required
- ../slots/is_or_was_required - ../slots/is_or_was_required
- ../slots/classroom_count # REMOVED 2026-01-19: ../slots/classroom_count - migrated to has_or_had_facility with Classroom
- ../slots/has_or_had_facility
- ./Classroom
- ./RoomUnit
- ../enums/RoomUnitTypeEnum
- ../slots/has_or_had_custodian_type - ../slots/has_or_had_custodian_type
# Shared slots (replacing education_center_* slots per Rule 53) # Shared slots (replacing education_center_* slots per Rule 53)
- ../slots/has_or_had_identifier - ../slots/has_or_had_identifier
@ -94,7 +98,8 @@ classes:
- has_or_had_annual_participant_count - has_or_had_annual_participant_count
# REMOVED 2026-01-15: booking_required - migrated to is_or_was_required # REMOVED 2026-01-15: booking_required - migrated to is_or_was_required
- is_or_was_required - is_or_was_required
- classroom_count # REMOVED 2026-01-19: classroom_count - migrated to has_or_had_facility with Classroom
- has_or_had_facility
- has_or_had_custodian_type - has_or_had_custodian_type
# MIGRATED 2026-01-15: education_center_* slots replaced with shared slots per Rule 53 # MIGRATED 2026-01-15: education_center_* slots replaced with shared slots per Rule 53
- has_or_had_identifier # was: education_center_id - has_or_had_identifier # was: education_center_id
@ -184,11 +189,31 @@ classes:
description: Professional development description: Professional development
- value: Genealogy workshops - value: Genealogy workshops
description: Specialized workshops description: Specialized workshops
classroom_count: # REMOVED 2026-01-19: classroom_count - migrated to has_or_had_facility with Classroom
range: integer # classroom_count:
# range: integer
# examples:
# - value: 4
# description: 4 classrooms
has_or_had_facility:
range: Classroom
inlined: true
multivalued: true
description: |
Classroom facilities at this education center.
MIGRATED 2026-01-19: Replaces classroom_count slot per Rule 53.
Uses Classroom class (subclass of Facility) with has_or_had_quantity
and has_or_had_unit for structured room counting.
examples: examples:
- value: 4 - value: |
description: 4 classrooms facility_name: "Main Classroom Wing"
has_or_had_quantity:
numeric_value: 4
has_or_had_unit:
unit_type: CLASSROOM
seating_capacity: 120
av_equipped: true
description: 4 classroom facility
# REMOVED 2026-01-14: workshop_space - migrated to has_or_had_quantity with Quantity # REMOVED 2026-01-14: workshop_space - migrated to has_or_had_quantity with Quantity
# workshop_space: # workshop_space:
# range: integer # range: integer
@ -291,7 +316,16 @@ classes:
- Interactive workshops - Interactive workshops
- Family treasure hunts - Family treasure hunts
- Teacher training days - Teacher training days
classroom_count: 4 # MIGRATED 2026-01-19: classroom_count → has_or_had_facility + Classroom
has_or_had_facility:
- facility_name: "Education Wing Classrooms"
has_or_had_quantity:
numeric_value: 4
has_or_had_unit:
unit_type: CLASSROOM
seating_capacity: 120
av_equipped: true
flexible_seating: true
has_or_had_quantity: has_or_had_quantity:
value: 2 value: 2
unit: workshop_spaces unit: workshop_spaces
@ -322,7 +356,15 @@ classes:
- Genealogy workshops - Genealogy workshops
- Paleography basics - Paleography basics
- Teacher curriculum support - Teacher curriculum support
classroom_count: 2 # MIGRATED 2026-01-19: classroom_count → has_or_had_facility + Classroom
has_or_had_facility:
- facility_name: "Learning Rooms"
has_or_had_quantity:
numeric_value: 2
has_or_had_unit:
unit_type: CLASSROOM
seating_capacity: 40
av_equipped: true
max_group_size: 20 max_group_size: 20
has_av_equipment: true has_av_equipment: true
is_or_was_required: true is_or_was_required: true

View file

@ -0,0 +1,113 @@
# RoomUnit - Unit class for counting room/space facilities
#
# Created per slot_fixes.yaml migration for: classroom_count
# Creation date: 2026-01-19
#
# Rule 53 (No Bespoke Slots): classroom_count → has_or_had_facility + Classroom + RoomUnit
# Rule 39 (RiC-O Naming): Uses has_or_had_* pattern
id: https://nde.nl/ontology/hc/class/RoomUnit
name: RoomUnit
title: Room Unit
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ./Unit
- ../enums/RoomUnitTypeEnum
classes:
RoomUnit:
is_a: Unit
class_uri: hc:RoomUnit
description: |
A unit of measurement for counting rooms or spaces in a facility.
**RULE 53 MIGRATION**:
Replaces simple integer count slots with typed unit specification:
- `classroom_count: 4` → `has_or_had_quantity: 4` + `has_or_had_unit: {unit_type: CLASSROOM}`
**ROOM TYPES**:
- CLASSROOM - Teaching/learning spaces
- WORKSHOP_SPACE - Hands-on activity areas
- SEMINAR_ROOM - Discussion/presentation spaces
- LABORATORY - Scientific/conservation labs
- STUDIO - Creative/production spaces
- READING_ROOM - Research/study areas
- STORAGE_ROOM - Collection storage spaces
- OFFICE - Administrative spaces
**USAGE PATTERN**:
```yaml
has_or_had_facility:
- facility_name: "Education Wing"
has_or_had_quantity:
numeric_value: 4
has_or_had_unit:
unit_type: CLASSROOM
```
exact_mappings:
- qudt:Unit
close_mappings:
- schema:Room
attributes:
unit_type:
range: RoomUnitTypeEnum
required: true
description: |
The type of room/space being counted.
examples:
- value: CLASSROOM
description: Classroom space
- value: READING_ROOM
description: Reading room
annotations:
custodian_types: '["E", "L", "A", "M", "R"]'
custodian_types_rationale: >-
Room counting most relevant for education providers (E), libraries (L),
archives (A), museums (M), and research centers (R).
custodian_types_primary: "E"
specificity_score: 0.45
specificity_rationale: >-
Moderately specific - room counting common in education/facility contexts.
template_specificity:
archive_search: 0.35
museum_search: 0.45
library_search: 0.50
collection_discovery: 0.20
person_research: 0.10
location_browse: 0.55
identifier_lookup: 0.10
organizational_change: 0.20
digital_platform: 0.10
general_heritage: 0.45
examples:
- value:
unit_type: CLASSROOM
description: Unit for counting classroom spaces
- value:
unit_type: READING_ROOM
description: Unit for counting reading rooms
- value:
unit_type: WORKSHOP_SPACE
description: Unit for counting workshop areas
comments:
- Created from slot_fixes.yaml migration (2026-01-19)
- Specialized unit for room/space counting
- Subclass of Unit with room-specific type enum
- Used with Classroom and similar facility classes

View file

@ -0,0 +1,134 @@
# RoomUnitTypeEnum - Types of rooms/spaces for counting
#
# Created per slot_fixes.yaml migration for: classroom_count
# Creation date: 2026-01-19
#
# Rule 53 (No Bespoke Slots): Supports RoomUnit class for facility counting
id: https://nde.nl/ontology/hc/enum/RoomUnitTypeEnum
name: room_unit_type_enum
title: Room Unit Type Enum
description: >-
Enumeration of room and space types for counting facilities.
**RULE 53 COMPLIANT**: Supports RoomUnit class for standardized
room counting in heritage facility metrics.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
imports:
- linkml:types
default_prefix: hc
enums:
RoomUnitTypeEnum:
description: >-
Standard room types for counting heritage facility spaces.
Used with RoomUnit class in has_or_had_unit slot for facility counting.
permissible_values:
# Educational spaces
CLASSROOM:
description: Teaching/learning space for group instruction
meaning: schema:Classroom
annotations:
usage_context: education
typical_capacity: "20-40"
WORKSHOP_SPACE:
description: Hands-on activity area for practical work
annotations:
usage_context: education
typical_capacity: "10-20"
SEMINAR_ROOM:
description: Discussion/presentation space for smaller groups
annotations:
usage_context: education
typical_capacity: "10-25"
LECTURE_HALL:
description: Large presentation space for lectures
annotations:
usage_context: education
typical_capacity: "50-300"
# Research spaces
LABORATORY:
description: Scientific or conservation laboratory space
annotations:
usage_context: research
STUDIO:
description: Creative or production workspace
annotations:
usage_context: creative
# Library/archive spaces
READING_ROOM:
description: Research/study area for visitors
meaning: hc:ReadingRoom
annotations:
usage_context: research
STUDY_CARREL:
description: Individual study booth or station
annotations:
usage_context: research
# Storage spaces
STORAGE_ROOM:
description: Collection storage space
annotations:
usage_context: storage
VAULT:
description: Secure storage for valuable items
annotations:
usage_context: storage
security_level: high
# Administrative spaces
OFFICE:
description: Administrative workspace
annotations:
usage_context: administrative
MEETING_ROOM:
description: Conference/meeting space
annotations:
usage_context: administrative
# Public spaces
GALLERY:
description: Exhibition gallery space
meaning: schema:ExhibitionEvent
annotations:
usage_context: exhibition
AUDITORIUM:
description: Large performance/presentation venue
meaning: schema:EventVenue
annotations:
usage_context: events
# Support spaces
RESTROOM:
description: Visitor restroom facilities
annotations:
usage_context: visitor_services
CLOAKROOM:
description: Coat/bag storage for visitors
annotations:
usage_context: visitor_services
# Unknown
UNKNOWN:
description: Room type not specified or unknown
annotations:
usage_context: unspecified

View file

@ -10682,3 +10682,52 @@ fixes:
type: slot type: slot
- label: TimeSpan - label: TimeSpan
type: class type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/date_precision
revision:
- label: degree_of_certainty
type: slot
- label: DatePrecision
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/date_retrieved
revision:
- label: was_retrieved_at
type: slot
- label: Timestamp
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/de
revision:
- label: has_or_had_language
type: slot
- label: Language
type: class
value: de
- original_slot_id: https://nde.nl/ontology/hc/slot/dealer_name
revision:
- label: is_or_was_associated_with
type: slot
- label: ArtDealer
type: class
- label: has_or_had_name
type: slot
- label: Name
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/death_place
revision:
- label: is_deceased
type: slot
- label: DeceasedStatus
type: class
- label: was_or_is_caused_by
type: slot
- label: CauseOfDeath
type: class
- label: occurs_or_occurred_at
type: slot
- label: Place
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/deceased
revision:
- label: is_deceased
type: slot
- label: DeceasedStatus
type: class