diff --git a/.opencode/rules/generic-slots-specific-classes.md b/.opencode/rules/generic-slots-specific-classes.md new file mode 100644 index 0000000000..34958ca8b8 --- /dev/null +++ b/.opencode/rules/generic-slots-specific-classes.md @@ -0,0 +1,129 @@ +# Rule: Generic Slots, Specific Classes + +**Identifier**: `generic-slots-specific-classes` +**Severity**: **CRITICAL** + +## Core Principle + +**Slots MUST be generic predicates** that can be reused across multiple classes. **Classes MUST be specific** to provide context and constraints. + +**DO NOT** create class-specific slots when a generic predicate can be used. + +## Rationale + +1. **Predicate Proliferation**: Creating bespoke slots for every class explodes the schema size (e.g., `has_museum_name`, `has_library_name`, `has_archive_name` instead of `has_name`). +2. **Interoperability**: Generic predicates (`has_name`, `has_identifier`, `has_part`) map cleanly to standard ontologies (Schema.org, Dublin Core, RiC-O). +3. **Querying**: It's easier to query "all entities with a name" than "all entities with museum_name OR library_name OR archive_name". +4. **Maintenance**: Updating one generic slot propagates to all classes. + +## Examples + +### ❌ Anti-Pattern: Class-Specific Slots + +```yaml +# WRONG: Creating specific slots for each class +slots: + has_museum_visitor_count: + range: integer + has_library_patron_count: + range: integer + +classes: + Museum: + slots: + - has_museum_visitor_count + Library: + slots: + - has_library_patron_count +``` + +### ✅ Correct Pattern: Generic Slot, Specific Class Usage + +```yaml +# CORRECT: One generic slot reused +slots: + has_or_had_quantity: + slot_uri: rico:hasOrHadQuantity + range: Quantity + multivalued: true + +classes: + Museum: + slots: + - has_or_had_quantity + slot_usage: + has_or_had_quantity: + description: The number of visitors to the museum. + + Library: + slots: + - has_or_had_quantity + slot_usage: + has_or_had_quantity: + description: The number of registered patrons. +``` + +## Intermediate Class Pattern + +Making slots generic often requires introducing **Intermediate Classes** to hold structured data, rather than flattening attributes onto the parent class. + +### ❌ Anti-Pattern: Specific Flattened Slots + +```yaml +# WRONG: Flattened specific attributes +classes: + Museum: + slots: + - has_museum_budget_amount + - has_museum_budget_currency + - has_museum_budget_year +``` + +### ✅ Correct Pattern: Generic Slot + Intermediate Class + +```yaml +# CORRECT: Generic slot pointing to structured class +slots: + has_or_had_budget: + range: Budget + multivalued: true + +classes: + Museum: + slots: + - has_or_had_budget + + Budget: + slots: + - has_or_had_amount + - has_or_had_currency + - has_or_had_year +``` + +## Specificity Levels + +| Level | Component | Example | +|-------|-----------|---------| +| **Generic** | **Slot (Predicate)** | `has_or_had_identifier` | +| **Specific** | **Class (Subject/Object)** | `ISILCode` | +| **Specific** | **Slot Usage (Context)** | "The ISIL code assigned to this library" | + +## Migration Guide + +If you encounter an overly specific slot: + +1. **Identify the generic concept** (e.g., `has_museum_opening_hours` → `has_opening_hours`). +2. **Check if a generic slot exists** in `modules/slots/`. +3. **If yes**, use the generic slot and add `slot_usage` to the class. +4. **If no**, create the **generic** slot, not a specific one. + +## Naming Indicators + +**Reject slots containing:** +* Class names (e.g., `has_custodian_name` → `has_name`) +* Narrow types (e.g., `has_isbn_identifier` → `has_identifier`) +* Contextual specifics (e.g., `has_primary_email` → `has_email` + type/role) + +## See Also +* Rule 55: Broaden Generic Predicate Ranges +* Rule 39: Slot Naming Convention (RiC-O Style) diff --git a/.opencode/rules/no-rough-edits-in-schema.md b/.opencode/rules/no-rough-edits-in-schema.md new file mode 100644 index 0000000000..d618bd072e --- /dev/null +++ b/.opencode/rules/no-rough-edits-in-schema.md @@ -0,0 +1,61 @@ +# Rule: No Rough Edits in Schema Files + +**Identifier**: `no-rough-edits-in-schema` +**Severity**: **CRITICAL** + +## Core Directive + +**DO NOT** perform rough, imprecise, or bulk text substitutions (like `sed -i` or regex-based python scripts) on LinkML schema files (`schemas/*/linkml/`) without guaranteeing structural integrity. + +**YOU MUST**: +* ✅ Use proper YAML parsers/dumpers if modifying structure programmatically. +* ✅ Manually verify edits if using text replacement. +* ✅ Ensure indentation and nesting are preserved exactly. +* ✅ Respect comments and ordering (which parsers often destroy, so careful text editing is sometimes necessary, but it must be PRECISE). + +## Rationale + +LinkML schemas are highly structured YAML files where indentation and nesting semantics are critical. Rough edits often cause: +* **Duplicate keys** (e.g., leaving a property behind after deleting its parent key). +* **Invalid indentation** (breaking the parent-child relationship). +* **Silent corruption** (valid YAML but wrong semantics). + +## Examples + +### ❌ Anti-Pattern: Rough Deletion + +Deleting lines containing a string without checking context: + +```python +# WRONG: Deleting lines blindly +for line in lines: + if "some_slot" in line: + continue # Deletes the line, but might leave children orphaned! + new_lines.append(line) +``` + +**Resulting Corruption**: +```yaml +# Original +slots: + some_slot: + range: string + +# Corrupted (orphaned child) +slots: + range: string # INVALID! +``` + +### ✅ Correct Pattern: Structural Awareness + +If removing a slot reference, ensure you remove the entire list item or key-value block. + +```python +# BETTER: Check for list item syntax +if re.match(r'^\s*-\s*some_slot\s*$', line): + continue +``` + +## Application + +This rule applies to ALL files in `schemas/20251121/linkml/` and future versions. diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index cb040033eb..d3791cf9cb 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-30T23:22:16.389Z", + "generated": "2026-01-30T23:28:10.160Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3003, "categoryCounts": { diff --git a/schemas/20251121/linkml/01_custodian_name_modular.yaml b/schemas/20251121/linkml/01_custodian_name_modular.yaml index 4a15603fd5..04316188fe 100644 --- a/schemas/20251121/linkml/01_custodian_name_modular.yaml +++ b/schemas/20251121/linkml/01_custodian_name_modular.yaml @@ -37,6 +37,7 @@ imports: - modules/slots/has_or_had_description - modules/slots/has_or_had_label - modules/slots/has_or_had_affiliation + - modules/slots/changes_or_changed_through - modules/slots/is_or_was_retrieved_at # collection_description ARCHIVED (2026-01-18) - migrated to has_or_had_description (Rule 53) # collection_name ARCHIVED (2026-01-18) - migrated to has_or_had_label (Rule 53) diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index d3791cf9cb..1021ffbf26 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-30T23:28:10.160Z", + "generated": "2026-01-30T23:46:23.532Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3003, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml b/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml index 82d2b479b9..a5ec94e0c1 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicArchive.yaml @@ -37,7 +37,6 @@ classes: description: Archive of a higher education institution (university, college, polytechnic). slots: - has_or_had_type - - dual_class_link - hold_or_held_record_set_type - has_or_had_hypernym - has_or_had_label @@ -69,7 +68,6 @@ classes: - faculty papers - research documentation - university publications - - ephemera - campus photographs - audiovisual materials - campus life documentation @@ -79,21 +77,15 @@ classes: ' has_or_had_identifier: pattern: ^Q[0-9]+$ - description: Wikidata identifier for Academic Archive concept (Q27032435) has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' is_or_was_related_to: range: WikidataAlignment inlined: true has_or_had_hypernym: - description: MIGRATED from broader_concept (Rule 53). SKOS broader (parent) concept in the archive type hierarchy. equals_expression: '["wd:Q166118"]' has_or_had_label: - description: Human-readable label for the broader concept. Stored for display to avoid repeated lookups. MIGRATED from broader_concept_label (2026-01-15) per Rule 53. ifabsent: string(archive) - dual_class_link: - range: DualClassLink - inlined: true exact_mappings: - wd:Q27032435 close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml index 999f0a48c4..521916e1e9 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetType.yaml @@ -25,7 +25,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -56,9 +55,6 @@ classes: is_or_was_related_to: range: WikidataAlignment inlined: true - dual_class_link: - range: DualClassLink - inlined: true exact_mappings: - wd:Q27032435 - rico:RecordSetType diff --git a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml index 0ecac3a113..fc5a6f9a9d 100644 --- a/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/AcademicArchiveRecordSetTypes.yaml @@ -230,11 +230,8 @@ classes: - personal papers - faculty papers - research documentation - - correspondence - lecture notes - course materials - - manuscripts - - drafts - conference papers - professional papers - academic papers @@ -317,10 +314,7 @@ classes: - campus photographs - audiovisual materials - university publications - - yearbooks - student newspapers - - ephemera - - memorabilia - oral histories - event documentation - building documentation diff --git a/schemas/20251121/linkml/modules/classes/Access.yaml b/schemas/20251121/linkml/modules/classes/Access.yaml index 944b00bff3..890587f572 100644 --- a/schemas/20251121/linkml/modules/classes/Access.yaml +++ b/schemas/20251121/linkml/modules/classes/Access.yaml @@ -55,22 +55,15 @@ classes: slots: - has_or_had_type - has_or_had_user_category - - has_or_had_condition_of_access - has_or_had_description - temporal_extent - - is_digital_access - has_or_had_frequency slot_usage: has_or_had_type: range: AccessTypeEnum required: true - description: Type of access offered has_or_had_user_category: required: false - description: | - Categories of users eligible for this access. - Examples: "enrolled students", "faculty", "visiting scholars", - "credentialed researchers", "general public" examples: - value: "enrolled students" - value: "faculty and staff" @@ -79,22 +72,13 @@ classes: required: false range: TimeSpan inlined: true - description: | - Time period during which this access policy applies. - Useful for temporary restrictions or seasonal access. - is_digital_access: - required: false - range: boolean - description: Whether this is digital access has_or_had_frequency: required: false range: Frequency - description: Frequency of access (e.g., daily, weekly, by appointment) inlined: true examples: - value: has_or_had_label: "Daily" - description: Access available daily annotations: specificity_score: 0.50 specificity_rationale: "Moderately specific - applies to collection and service access contexts" @@ -110,19 +94,11 @@ classes: has_or_had_description: "Open to general public during gallery hours" has_or_had_user_category: - "general public" - has_or_had_condition_of_access: - - "during posted gallery hours" - description: "Public access during gallery hours" - value: has_or_had_type: BY_APPOINTMENT has_or_had_user_category: - "credentialed researchers" - "graduate students with faculty sponsor" - has_or_had_condition_of_access: - - "48-hour advance booking required" - - "handling training required for original materials" - - "fragile materials limited to supervised viewing only" - description: "Research access by appointment with conditions" - value: has_or_had_type: ACADEMIC has_or_had_description: "Open to enrolled students and faculty; public by appointment" @@ -130,14 +106,8 @@ classes: - "enrolled students" - "faculty" - "research staff" - has_or_had_condition_of_access: - - "valid university ID" - is_digital_access: false - description: "Academic community access with public by appointment" - value: has_or_had_type: DIGITAL_ONLY has_or_had_description: "Collection accessible only through online database" has_or_had_user_category: - - "anyone with internet access" - is_digital_access: true - description: "Digital-only access" + - "anyone with internet access" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml b/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml index 2ef382ae8d..7ffc13ac1d 100644 --- a/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/AccessPolicy.yaml @@ -64,14 +64,12 @@ classes: - has_or_had_level - requires_appointment - poses_or_posed_condition - - has_or_had_condition_of_access - requires_or_required - credentials_required - cultural_protocol_url - has_or_had_embargo_end_date - has_or_had_embargo_reason - imposes_or_imposed - - fee_required - legal_basis - policy_id - policy_name @@ -89,22 +87,14 @@ classes: 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_level: - description: 'Access level of the policy. - MIGRATED from has_or_had_access_level per Rule 53. - Uses AccessLevel class. - ' range: AccessLevel required: true inlined: true @@ -116,27 +106,18 @@ classes: - value: has_or_had_label: EMBARGOED has_or_had_description: - description: 'Description of the access policy. - MIGRATED from has_or_had_access_description per Rule 53. - Uses Description class. - ' range: string inlined: true examples: - value: description_text: Open to all visitors during reading room hours (Mon-Fri 9-17) - description: Archive public access - value: description_text: Access restricted to academic researchers with institutional has_or_had_affiliation - description: University special collections poses_or_posed_condition: range: Condition multivalued: true inlined: true inlined_as_list: true - description: 'Access conditions or requirements using structured Condition class. - MIGRATED from condition string slot per slot_fixes.yaml (Rule 53, 2026-01-22). - ' examples: - value: - has_or_had_type: AccessCondition @@ -145,110 +126,69 @@ classes: - has_or_had_type: AccessCondition has_or_had_description: description_text: Registration form must be completed - description: Archive access conditions using Condition class 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 imposes_or_imposed: - description: 'Fees imposed by the access policy. - MIGRATED from fee_amount per Rule 53. - Uses Fee class with structured Quantity. - ' range: Fee inlined: true multivalued: true examples: - value: has_or_had_quantity: - quantity_value: 5.0 has_or_had_unit: - unit_value: EUR has_or_had_description: Daily reading room fee - description: "\u20AC5.00 per day" - value: has_or_had_quantity: - quantity_value: 0 has_or_had_description: Free for researchers - description: Free for researchers - value: has_or_had_quantity: - quantity_value: 10.0 has_or_had_unit: - unit_value: EUR has_or_had_description: General public fee - description: "\u20AC10 for general public" has_or_had_embargo_end_date: range: date examples: - value: '2050-01-01' - description: Embargo lifts January 1, 2050 has_or_had_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 temporal_extent: - 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 @@ -256,26 +196,12 @@ classes: - value: begin_of_the_begin: '2024-01-01' end_of_the_end: '2050-12-31' - description: Policy valid from 2024 until end of 2050 - has_or_had_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 @@ -284,13 +210,6 @@ classes: - 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 @@ -322,10 +241,7 @@ classes: description_text: Original materials handled with gloves registration_required: true requires_appointment: false - fee_required: false has_or_had_contact_point: - 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 @@ -337,7 +253,6 @@ classes: has_or_had_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 @@ -355,8 +270,6 @@ classes: requires_appointment: true credentials_required: PROFESSIONAL has_or_had_contact_point: - email: preservation@archive.org - description: Dark archive / DIM access policy - value: policy_id: https://nde.nl/ontology/hc/access-policy/special-collections-rich policy_name: Special Collections - Rich Appointment Policy @@ -364,10 +277,6 @@ classes: has_or_had_label: RESEARCHERS_ONLY has_or_had_description: description_text: Academic researchers with institutional affiliation - has_or_had_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 @@ -375,20 +284,9 @@ classes: 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 has_or_had_contact_point: - email: special.collections@archive.nl - description: Rich appointment modeling with structured Appointment entity annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml b/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml index f00716e114..3a4f41e121 100644 --- a/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml +++ b/schemas/20251121/linkml/modules/classes/AcquisitionBudget.yaml @@ -19,4 +19,3 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_amount diff --git a/schemas/20251121/linkml/modules/classes/Activity.yaml b/schemas/20251121/linkml/modules/classes/Activity.yaml index 0f1973e35e..9edc39c33d 100644 --- a/schemas/20251121/linkml/modules/classes/Activity.yaml +++ b/schemas/20251121/linkml/modules/classes/Activity.yaml @@ -53,7 +53,6 @@ classes: - has_or_had_identifier - has_or_had_label - has_or_had_description - - has_or_had_activity_type - temporal_extent - is_or_was_succeeded_by - preceding_activity @@ -63,11 +62,6 @@ classes: - has_or_had_score slot_usage: has_or_had_identifier: - description: 'Unique identifier for this activity instance. - MIGRATED from has_activity_identifier per Rule 53. - Format: URI following NDE Heritage Custodian ontology conventions. - Pattern: `https://nde.nl/ontology/hc/activity/{custodian-slug}-{type}-{year}-{sequence}` - ' range: uriorcurie required: true identifier: true @@ -75,81 +69,50 @@ classes: examples: - value: identifier_value: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 - description: 2025 inventory at Rijksmuseum - value: identifier_value: https://nde.nl/ontology/hc/activity/nationaal-archief-digitization-voc-2024 - description: VOC digitization project at Nationaal Archief has_or_had_label: range: string required: true - description: Human-readable name for this activity. examples: - value: 2025 Annual Collection Inventory - description: Recurring annual inventory - value: VOC Archives Digitization Project Phase 2 - description: Multi-year digitization project has_or_had_description: range: string required: false - description: Detailed description of the activity scope and objectives. examples: - value: "Annual physical inventory of the Dutch Masters collection, \ncovering approximately 450 paintings. Spot-check methodology \nwith 20% sample verified against catalog records.\n" - description: Inventory activity description - has_or_had_activity_type: - range: ContentType - required: true - multivalued: true - description: 'The type classification(s) for this activity. - Values are ActivityType subclasses from ActivityTypes.yaml. - ' - examples: - value: CurationActivityType - description: Curation activity - value: '[DigitizationActivityType, ResearchActivityType]' - description: Combined digitization and research project temporal_extent: range: TimeSpan required: false inlined: true - description: 'Temporal extent of this activity. - Replaces has_timespan, start_date, end_date. - Uses CIDOC-CRM four-point temporal model for fuzzy bounds. - ' examples: - value: begin_of_the_begin: '2025-01-15' end_of_the_end: '2025-03-31' - description: Q1 2025 activity period is_or_was_succeeded_by: range: string multivalued: true inlined: false - description: Activity/activities that follow this one. examples: - value: https://nde.nl/ontology/hc/activity/conservation-treatment-2025 - description: Conservation follows condition survey preceding_activity: range: string inlined: false - description: Activity that preceded this one. examples: - value: https://nde.nl/ontology/hc/activity/condition-survey-2024 - description: Condition survey informed this conservation treatment has_or_had_status: range: string required: false - description: Current status of the activity. examples: - value: IN_PROGRESS - description: Activity currently underway - value: COMPLETED - description: Activity finished - value: PLANNED - description: Activity scheduled for future note: range: string multivalued: true - description: Additional notes about the activity. annotations: specificity_score: '0.50' specificity_rationale: Moderately specific - Activity is a core domain concept but broadly applicable across all heritage custodian types. @@ -170,25 +133,18 @@ classes: has_or_had_identifier: identifier_value: https://nde.nl/ontology/hc/activity/rijksmuseum-inventory-2025-001 has_or_had_label: 2025 Annual Collection Inventory - Dutch Masters - has_or_had_activity_type: - - CurationActivityType has_or_had_description: "Annual physical inventory of the Dutch Masters collection \n(Gallery of Honour and adjacent galleries). Spot-check methodology \nwith 20% sample verification against CMS records.\n" temporal_extent: begin_of_the_begin: '2025-01-15' end_of_the_end: '2025-03-31' has_or_had_status: IN_PROGRESS - description: Inventory activity at Rijksmuseum - value: has_or_had_identifier: identifier_value: https://nde.nl/ontology/hc/activity/kb-digitization-medieval-2024 has_or_had_label: Medieval Manuscripts Digitization Project - has_or_had_activity_type: - - DigitizationActivityType - - ResearchActivityType has_or_had_description: "High-resolution digitization of 342 medieval manuscripts with \nHTR processing and metadata enhancement. IIIF-compliant output.\n" temporal_extent: begin_of_the_begin: '2024-03-01' end_of_the_end: '2025-12-31' has_or_had_status: IN_PROGRESS - preceding_activity: https://nde.nl/ontology/hc/activity/kb-condition-survey-2023 - description: Digitization and research project at KB + preceding_activity: https://nde.nl/ontology/hc/activity/kb-condition-survey-2023 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ActivityType.yaml b/schemas/20251121/linkml/modules/classes/ActivityType.yaml index 8ebbc71da3..12a3592579 100644 --- a/schemas/20251121/linkml/modules/classes/ActivityType.yaml +++ b/schemas/20251121/linkml/modules/classes/ActivityType.yaml @@ -54,39 +54,23 @@ classes: required: true identifier: true multivalued: true - description: 'Unique identifier(s) for this activity type. - - MIGRATED from type_id per Rule 56 (2026-01-16). - - Also includes Wikidata entity references (previously wikidata_entity). - - ' examples: - value: https://nde.nl/ontology/hc/activity-type/curation - description: Internal type identifier for curation - value: wd:Q1348059 - description: Wikidata entity for curation has_or_had_label: range: string required: true multivalued: true - description: 'Human-readable label for this activity type. - - MIGRATED from type_label per slot_fixes.yaml (Rule 53). - - ' examples: - value: - Curation@en - curatie@nl - Kuration@de - description: Multilingual labels for curation type has_or_had_description: range: string required: false examples: - value: Activities related to the ongoing management and care of collections - description: Description of curation activity type created: range: datetime modified: @@ -115,5 +99,4 @@ classes: has_or_had_label: - Curation@en - curatie@nl - has_or_had_description: Activities related to ongoing collection management - description: Curation activity type with multilingual labels and identifiers + has_or_had_description: Activities related to ongoing collection management \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Address.yaml b/schemas/20251121/linkml/modules/classes/Address.yaml index f1df50c368..eb74e48860 100644 --- a/schemas/20251121/linkml/modules/classes/Address.yaml +++ b/schemas/20251121/linkml/modules/classes/Address.yaml @@ -132,7 +132,6 @@ classes: # Geographic coordinates (for geocoded addresses) - latitude - longitude - - geonames_id # Provenance - is_or_was_derived_from # was: was_derived_from - migrated per Rule 53 - is_or_was_generated_by # was: was_generated_by - migrated per Rule 53 @@ -140,14 +139,11 @@ classes: has_or_had_section: range: HouseNumber required: false - description: House/building number within street. examples: - value: has_or_had_value: "1" - description: Rijksmuseum - value: has_or_had_value: "221B" - description: Baker Street notation # REMOVED: street_name slot_usage - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56) # Street names should now use Label class with language tagging via has_or_had_label # REMOVED: street_address slot_usage - redundant string slot removed (2026-01-17, Rule 53/56) @@ -155,17 +151,13 @@ classes: postal_code: range: string required: false - description: Postal/ZIP code examples: - value: "1071 XX" - description: Dutch postal code format locality: range: string required: false - description: City, town, or village name examples: - value: "Amsterdam" - description: City name # REMOVED: city slot_usage - migrated to is_or_was_located_in + City (2026-01-18, Rule 53) # city: # range: string @@ -175,34 +167,22 @@ classes: range: string required: false inlined: true - description: | - The city where this address is located, as a structured City entity. - MIGRATED from city (string) slot (2026-01-18, Rule 53). - Provides GeoNames ID, coordinates, and subregion linkage. examples: - value: settlement_name: "Amsterdam" - geonames_id: 2759794 country: "NL" - description: Address located in Amsterdam region: range: string required: false - description: State, province, or region examples: - value: "Noord-Holland" - description: Dutch province - value: "NL-NH" - description: ISO 3166-2 code country_name: range: string required: false - description: Country name or ISO 3166-1 code examples: - value: "Netherlands" - description: Full name - value: "NL" - description: ISO 3166-1 alpha-2 code # REMOVED 2026-01-22: address_formatted - migrated to has_or_had_label + Label (Rule 53, Feedback F1) # Formatted address strings now use has_or_had_label slot_usage below # REMOVED: address_type slot_usage - migrated to has_or_had_type (2026-01-17, Rule 53/56) @@ -212,64 +192,36 @@ classes: inlined: true inlined_as_list: true required: false - description: | - Labels for this address, including: - 1. **Street name** as Label with language tag - 2. **Formatted address** as Label with language tag - MIGRATED from: - - address_formatted (2026-01-22, Feedback F1) - formatted address strings - - street_name (2026-01-17, Rule 53/56) - street name component - Use Label class with language_code for multilingual support. examples: - value: - has_or_had_label: "Museumstraat" language: "nl" - has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" language: "nl" - description: Street name and formatted address as labels has_or_had_type: # was: address_type - migrated per Rule 53/56 (2026-01-17) range: AddressType required: false multivalued: false - description: | - Classification of the address by purpose or type. - MIGRATED from address_type (2026-01-13). - Uses AddressType class hierarchy for rich type semantics. - Common types: HeadquartersAddress, LegalAddress, VisitingAddress, - MailingAddress, StorageAddress, BranchAddress. examples: - value: HeadquartersAddress - description: Main organizational headquarters latitude: range: float required: false - description: WGS84 latitude coordinate examples: - value: 52.3600 - description: Amsterdam latitude longitude: range: float required: false - description: WGS84 longitude coordinate examples: - value: 4.8852 - description: Amsterdam longitude - geonames_id: - range: integer - required: false - description: GeoNames ID for geocoded locality - examples: - value: 2759794 - description: Amsterdam GeoNames ID is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53 range: CustodianObservation multivalued: true required: false - description: Source observation from which address was extracted is_or_was_generated_by: # was: was_generated_by - migrated per Rule 53 range: ReconstructionActivity required: false - description: Activity that generated this address record comments: - vCard Address is the primary ontology class (RFC6350 standard) - Use structured components when available, address_formatted as fallback @@ -295,11 +247,8 @@ classes: locality: "Amsterdam" region: "Noord-Holland" country_name: "NL" - address_type: "HEADQUARTERS" latitude: 52.3600 longitude: 4.8852 - geonames_id: 2759794 - description: Rijksmuseum headquarters - fully structured address (street_name and street_address migrated to has_or_had_label) - value: has_or_had_section: - has_or_had_value: "40" @@ -307,8 +256,6 @@ classes: postal_code: "2011 RX" locality: "Haarlem" country_name: "NL" - address_type: "HEADQUARTERS" - description: Noord-Hollands Archief address - simplified structure - value: has_or_had_label: - has_or_had_label: "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA" @@ -316,8 +263,6 @@ classes: locality: "Washington" region: "DC" country_name: "US" - address_type: "LEGAL" - description: US address with formatted string primary - value: has_or_had_label: - has_or_had_label: "Euterpelaan" @@ -330,8 +275,6 @@ classes: locality: "Amersfoort" region: "Utrecht" country_name: "NL" - address_type: "STORAGE" - description: Off-site storage depot address (street_name and street_address migrated to has_or_had_label) annotations: specificity_score: 0.25 specificity_rationale: "Address is broadly applicable to all heritage custodian types and many other entities. Universal across domains." diff --git a/schemas/20251121/linkml/modules/classes/AddressComponent.yaml b/schemas/20251121/linkml/modules/classes/AddressComponent.yaml index 0e25ed8ef8..0f2a1d8420 100644 --- a/schemas/20251121/linkml/modules/classes/AddressComponent.yaml +++ b/schemas/20251121/linkml/modules/classes/AddressComponent.yaml @@ -124,46 +124,28 @@ classes: long_name: range: string required: false - description: Full form of the address component value examples: - value: "Netherlands" - description: Country full name - value: "Noord-Holland" - description: Province full name - value: "Museumstraat" - description: Street name short_name: range: string required: false - description: Abbreviated or short form of the component value (may equal long_name) examples: - value: "NL" - description: ISO 3166-1 alpha-2 country code - value: "NH" - description: Province abbreviation - value: "Museumstraat" - description: Same as long_name when no abbreviation exists # MIGRATED 2026-01-22: component_type → has_or_had_type + ComponentType (Rule 53) has_or_had_type: - description: | - Semantic type(s) of this address component. - MIGRATED from component_type per slot_fixes.yaml (Rule 53, 2026-01-22). - - Uses ComponentType class hierarchy for structured classification. range: ComponentType multivalued: true inlined_as_list: true required: false examples: - value: StreetNumber - description: House/building number - value: Locality - description: City or town - value: Region - description: State or province - value: Country - description: Country - comments: - Source-agnostic representation of address components - Use for parsing/normalization workflows before constructing Address objects @@ -180,38 +162,26 @@ classes: long_name: "1" short_name: "1" has_or_had_type: [StreetNumber] - description: Street number component - - value: long_name: "Museumstraat" short_name: "Museumstraat" has_or_had_type: [Route] - description: Street name component - - value: long_name: "Amsterdam" short_name: "Amsterdam" has_or_had_type: [Locality] - description: City component - - value: long_name: "Noord-Holland" short_name: "NH" has_or_had_type: [Region] - description: Province component with abbreviation - - value: long_name: "Netherlands" short_name: "NL" has_or_had_type: [Country] - description: Country component with ISO code - - value: long_name: "1071 XX" short_name: "1071 XX" has_or_had_type: [PostalCode] - description: Dutch postal code component - annotations: specificity_score: 0.35 specificity_rationale: "Generic address parsing component. Broadly applicable across all address sources and custodian types." diff --git a/schemas/20251121/linkml/modules/classes/AddressType.yaml b/schemas/20251121/linkml/modules/classes/AddressType.yaml index f8b26d6933..28c3d229b5 100644 --- a/schemas/20251121/linkml/modules/classes/AddressType.yaml +++ b/schemas/20251121/linkml/modules/classes/AddressType.yaml @@ -53,9 +53,7 @@ classes: pattern: ^https://nde\.nl/ontology/hc/address-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/address-type/headquarters - description: Main organizational headquarters address type - value: https://nde.nl/ontology/hc/address-type/legal - description: Registered legal address type has_or_had_code: range: string required: true @@ -87,32 +85,22 @@ classes: - value: Main organizational address where primary operations occur. has_or_had_hypernym: range: AddressType - description: Parent address type in the classification hierarchy. has_or_had_hyponym: range: AddressType multivalued: true inlined_as_list: true - description: Child address types in the classification hierarchy. is_or_was_related_to: range: AddressType multivalued: true inlined_as_list: true - description: Non-hierarchical associations with other address types. is_or_was_equivalent_to: range: WikiDataIdentifier multivalued: true inlined: true inlined_as_list: true - description: 'Wikidata equivalence for this address type concept. - - MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53. - - ' examples: - value: - qid: Q1234567 - label: Headquarters address - description: Wikidata equivalence for headquarters address type annotations: specificity_score: '0.30' specificity_rationale: Address types are broadly applicable - all heritage custodians have addresses. @@ -142,7 +130,6 @@ classes: are located. ' - description: Headquarters address type definition - value: has_or_had_identifier: https://nde.nl/ontology/hc/address-type/legal has_or_had_code: LEGAL @@ -157,7 +144,6 @@ classes: For Dutch organizations, this is the address registered with KvK. ' - description: Legal/statutory address type definition - value: has_or_had_identifier: https://nde.nl/ontology/hc/address-type/visiting has_or_had_code: VISITING @@ -169,7 +155,6 @@ classes: or libraries with public reading rooms. ' - description: Public visiting address type definition - value: has_or_had_identifier: https://nde.nl/ontology/hc/address-type/storage has_or_had_code: STORAGE @@ -183,5 +168,4 @@ classes: ' is_or_was_related_to: - - https://nde.nl/ontology/hc/address-type/branch - description: Storage/depot address type definition + - https://nde.nl/ontology/hc/address-type/branch \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml b/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml index 51e3b1451a..1626964a93 100644 --- a/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/AdministrativeLevel.yaml @@ -46,10 +46,8 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - description: Name of the level (e.g., "National") required: true has_or_had_code: - description: Code for the level (e.g., "NAT", "ISO-3166-2") required: false annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml b/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml index 850847956c..f630885983 100644 --- a/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml +++ b/schemas/20251121/linkml/modules/classes/AdministrativeOffice.yaml @@ -55,7 +55,6 @@ classes: - schema:Corporation - org:OrganizationalUnit slots: - - has_or_had_access_restriction - has_or_had_description - has_or_had_identifier - has_or_had_label @@ -72,47 +71,28 @@ classes: has_or_had_identifier: range: uriorcurie required: true - description: Identifier for the administrative office. has_or_had_label: range: string required: true - description: Name of the administrative office. has_or_had_description: range: string - description: Description of the administrative office. has_or_had_function: range: FunctionType multivalued: true inlined: true inlined_as_list: true - description: Organizational functions performed at this administrative office. Uses generic FunctionType class with function_category classification. examples: - value: function_category: ADMINISTRATIVE function_name: Finance and accounting - description: Financial operations - value: function_category: ADMINISTRATIVE function_name: Human resources - description: HR functions - value: function_category: SUPPORT function_name: Information technology - description: IT support - has_or_had_access_restriction: - range: string - required: true - ifabsent: string(Staff access only) - examples: - - value: Staff badge required - description: Badge access - value: Management access only - description: Restricted access has_or_had_staff: - description: | - Staff associated with the administrative office. - MIGRATED from has_or_had_admin_staff_count per Rule 53. - Uses Staff class (with Quantity). range: Staff multivalued: true inlined: true @@ -124,19 +104,15 @@ classes: has_or_had_label: "FTE" has_or_had_type: has_or_had_label: "Administrative Staff" - description: Medium admin office is_leased: range: boolean examples: - value: true - description: Leased office space - value: false - description: Owned property lease_expiry: range: date examples: - value: '2028-12-31' - description: Lease expires end of 2028 is_or_was_derived_from: range: CustodianObservation multivalued: true @@ -158,7 +134,6 @@ classes: - value: has_or_had_identifier: identifier_value: https://nde.nl/ontology/hc/aux/rijksmuseum-admin-zuidas - identifier_scheme: URI has_or_had_label: has_or_had_label: Rijksmuseum Administrative Offices - Zuidas has_or_had_description: @@ -174,7 +149,6 @@ classes: function_name: Information technology - function_category: ADMINISTRATIVE function_name: Legal affairs - has_or_had_access_restriction: Staff badge required has_or_had_staff: - has_or_had_quantity: has_or_had_value: 45 @@ -184,11 +158,9 @@ classes: has_or_had_label: "Administrative Staff" is_leased: true lease_expiry: '2028-12-31' - description: Museum administrative office in business district - value: has_or_had_identifier: identifier_value: https://nde.nl/ontology/hc/aux/kb-digitization-center - identifier_scheme: URI has_or_had_label: has_or_had_label: Koninklijke Bibliotheek Digitization Support Center has_or_had_description: @@ -202,7 +174,6 @@ classes: function_name: Quality control - function_category: SUPPORT function_name: Technical support - has_or_had_access_restriction: Project staff only has_or_had_staff: - has_or_had_quantity: has_or_had_value: 12 @@ -212,7 +183,6 @@ classes: has_or_had_label: "Technical Staff" is_leased: false lease_expiry: null - description: Library digitization support facility annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml b/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml index a00112f05c..29df64b04e 100644 --- a/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml +++ b/schemas/20251121/linkml/modules/classes/AdmissionFee.yaml @@ -19,4 +19,3 @@ classes: specificity_rationale: "Generic utility class created during migration" custodian_types: '["*"]' slots: - - has_or_had_amount diff --git a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml index 1863c6b53c..a0c0845337 100644 --- a/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AdvertisingRadioArchive.yaml @@ -60,7 +60,6 @@ classes: slot_usage: has_or_had_identifier: pattern: ^Q[0-9]+$ - description: Wikidata identifier for Advertising Radio Archive concept exact_mappings: - skos:Concept close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/Age.yaml b/schemas/20251121/linkml/modules/classes/Age.yaml index ebf4eac2c8..7ae801785c 100644 --- a/schemas/20251121/linkml/modules/classes/Age.yaml +++ b/schemas/20251121/linkml/modules/classes/Age.yaml @@ -37,10 +37,8 @@ classes: slot_usage: has_or_had_quantity: range: integer - description: The age value (in years). required: true has_or_had_unit: - description: Unit of time (usually "years", "months"). range: string required: false annotations: diff --git a/schemas/20251121/linkml/modules/classes/Agent.yaml b/schemas/20251121/linkml/modules/classes/Agent.yaml index 6ec6d9a32d..a421c037b3 100644 --- a/schemas/20251121/linkml/modules/classes/Agent.yaml +++ b/schemas/20251121/linkml/modules/classes/Agent.yaml @@ -54,21 +54,12 @@ classes: required: false slot_usage: has_or_had_name: - description: 'Structured name for the agent. - - ' range: uriorcurie required: false has_or_had_type: - description: 'Classification of the agent type. - - ' range: uriorcurie required: false has_or_had_identifier: - description: 'Identifiers for the agent (ORCID, ISNI, etc.). - - ' range: uriorcurie multivalued: true required: false @@ -79,23 +70,10 @@ classes: custodian_types: "['*']" examples: - value: - agent_name: Dr. Jane Smith - agent_type: person - agent_role: collector - description: Field biologist who collected specimens - value: - agent_name: Rijksmuseum Foundation - agent_type: organization - agent_role: donor - description: Organization that donated artwork - value: - agent_name: National Archives of the Netherlands - agent_type: organization - agent_role: transferring_agency has_or_had_identifier: - identifier_scheme: ISIL - identifier_value: NL-HaNA - description: Archive transferring records comments: - Created per slot_fixes.yaml migration (2026-01-22) - 'RULE 53: Replaces collector string slot with structured model' diff --git a/schemas/20251121/linkml/modules/classes/AgentType.yaml b/schemas/20251121/linkml/modules/classes/AgentType.yaml index 871a279367..5ab7e82a58 100644 --- a/schemas/20251121/linkml/modules/classes/AgentType.yaml +++ b/schemas/20251121/linkml/modules/classes/AgentType.yaml @@ -30,11 +30,9 @@ classes: has_or_had_code: range: string required: true - description: Short code for the agent type has_or_had_label: range: string required: false - description: Human-readable name for the agent type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Agreement.yaml b/schemas/20251121/linkml/modules/classes/Agreement.yaml index e946d3e64c..00f7b8f96b 100644 --- a/schemas/20251121/linkml/modules/classes/Agreement.yaml +++ b/schemas/20251121/linkml/modules/classes/Agreement.yaml @@ -47,11 +47,8 @@ classes: - temporal_extent slot_usage: has_or_had_label: - description: Title or name of the agreement. is_or_was_signed_on: - description: Date the agreement was signed. temporal_extent: - description: Validity period of the agreement. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AirChanges.yaml b/schemas/20251121/linkml/modules/classes/AirChanges.yaml index 150da8f900..9b964c8320 100644 --- a/schemas/20251121/linkml/modules/classes/AirChanges.yaml +++ b/schemas/20251121/linkml/modules/classes/AirChanges.yaml @@ -29,11 +29,9 @@ classes: slot_usage: has_or_had_quantity: range: float - description: The number of air changes. required: true has_or_had_unit: range: string - description: Unit of measurement (e.g., "per hour"). required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Alignment.yaml b/schemas/20251121/linkml/modules/classes/Alignment.yaml index ddd5fa9163..33bb921c27 100644 --- a/schemas/20251121/linkml/modules/classes/Alignment.yaml +++ b/schemas/20251121/linkml/modules/classes/Alignment.yaml @@ -28,49 +28,17 @@ classes: Captures horizontal alignment, vertical alignment, and position values. ' slots: - - horizontal_alignment - - vertical_alignment - - position_value - - position_unit slot_usage: - horizontal_alignment: - range: string - required: false - examples: - - value: left - description: Left-aligned content - value: center - description: Center-aligned content - value: right - description: Right-aligned content - vertical_alignment: - range: string - required: false - examples: - - value: top - description: Top-aligned (e.g., top subtitles) - value: bottom - description: Bottom-aligned (default for subtitles) - value: middle - description: Vertically centered - position_value: - range: string - required: false - description: Numeric or named position value examples: - value: '10' - description: Position 10 units from reference - value: default - description: Default positioning - position_unit: - range: string - required: false - description: Unit of measurement for position (px, %, em, etc.) examples: - value: px - description: Pixels - value: '%' - description: Percentage of container annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml b/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml index 6b06e527e7..2e6862e99a 100644 --- a/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AllocationEvent.yaml @@ -26,7 +26,6 @@ classes: - temporal_extent slot_usage: temporal_extent: - description: Time period when the allocation occurred. required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml b/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml index 25cef5e4f0..56ce2cfede 100644 --- a/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml +++ b/schemas/20251121/linkml/modules/classes/Alpha2Code.yaml @@ -48,12 +48,9 @@ classes: has_or_had_code: pattern: ^[A-Z]{2}$ required: true - description: Two-letter ISO 3166-1 alpha-2 country code examples: - value: NL - description: Netherlands - value: BE - description: Belgium exact_mappings: - skos:Concept annotations: @@ -62,5 +59,4 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_code: NL - description: Netherlands country code + has_or_had_code: NL \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml b/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml index b828a14b49..20a2947b2d 100644 --- a/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml +++ b/schemas/20251121/linkml/modules/classes/Alpha3Code.yaml @@ -48,12 +48,9 @@ classes: has_or_had_code: pattern: ^[A-Z]{3}$ required: true - description: Three-letter ISO 3166-1 alpha-3 country code examples: - value: NLD - description: Netherlands - value: BEL - description: Belgium exact_mappings: - skos:Concept annotations: @@ -62,5 +59,4 @@ classes: custodian_types: "['*']" examples: - value: - has_or_had_code: NLD - description: Netherlands country code + has_or_had_code: NLD \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Animal.yaml b/schemas/20251121/linkml/modules/classes/Animal.yaml index 5f4f36ed35..2328d703d1 100644 --- a/schemas/20251121/linkml/modules/classes/Animal.yaml +++ b/schemas/20251121/linkml/modules/classes/Animal.yaml @@ -38,7 +38,6 @@ classes: slot_usage: is_or_was_categorized_as: range: Species - description: The species classification of the animal. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml b/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml index f5f3cabab0..52811c814f 100644 --- a/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/AnimalSoundArchive.yaml @@ -33,7 +33,6 @@ classes: slot_usage: has_or_had_identifier: pattern: ^Q[0-9]+$ - description: Wikidata identifier for Animal Sound Archive concept exact_mappings: - skos:Concept close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/Annotation.yaml b/schemas/20251121/linkml/modules/classes/Annotation.yaml index 720d0d8bcb..ada8255d38 100644 --- a/schemas/20251121/linkml/modules/classes/Annotation.yaml +++ b/schemas/20251121/linkml/modules/classes/Annotation.yaml @@ -41,18 +41,13 @@ classes: - has_or_had_type slot_usage: has_or_had_description: - description: The content of the annotation (body). is_or_was_created_by: - description: The agent who created the annotation. range: Agent has_or_had_rationale: - description: The motivation for the annotation (e.g. commenting, tagging). range: Rationale contains_or_contained: - description: The target segment being annotated. range: Segment has_or_had_type: - description: The type of annotation. range: AnnotationType annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/AnnotationType.yaml b/schemas/20251121/linkml/modules/classes/AnnotationType.yaml index 281fbb4934..1a90403c72 100644 --- a/schemas/20251121/linkml/modules/classes/AnnotationType.yaml +++ b/schemas/20251121/linkml/modules/classes/AnnotationType.yaml @@ -30,11 +30,9 @@ classes: has_or_had_code: range: string required: true - description: Short code for the annotation type has_or_had_label: range: string required: false - description: Human-readable name for the annotation type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Appellation.yaml b/schemas/20251121/linkml/modules/classes/Appellation.yaml index 1e1e6bc2fc..8b7557dcd1 100644 --- a/schemas/20251121/linkml/modules/classes/Appellation.yaml +++ b/schemas/20251121/linkml/modules/classes/Appellation.yaml @@ -38,30 +38,15 @@ classes: - rdfs:label - dcterms:title slots: - - has_appellation_language - - has_appellation_type - - has_appellation_value - specificity_annotation - has_or_had_score - is_or_was_alternative_form_of slot_usage: - has_appellation_value: - range: string - required: true - has_appellation_language: - range: string - pattern: ^[a-z]{2}$ - has_appellation_type: - range: AppellationTypeEnum is_or_was_alternative_form_of: range: Label inlined: true - description: 'Reference to the CustodianName this appellation is a variant of. - MIGRATED 2026-01-14: Replaces variant_of_name slot. - ' examples: - value: "Label:\n label_value: \"Rijksmuseum\"\n label_language: \"nl\"\n" - description: Dutch name this appellation is variant of annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml b/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml index 70e2d06810..8f0acaf356 100644 --- a/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml +++ b/schemas/20251121/linkml/modules/classes/ApplicantRequirement.yaml @@ -34,10 +34,8 @@ classes: slot_usage: can_or_could_be_fulfilled_by: range: Applicant - description: The type of applicant that satisfies this requirement. imposes_or_imposed: range: GeographicExtent - description: Geographic constraints (e.g., eligible countries). annotations: custodian_types: '["*"]' specificity_score: 0.6 diff --git a/schemas/20251121/linkml/modules/classes/Appointment.yaml b/schemas/20251121/linkml/modules/classes/Appointment.yaml index 6a1a71c85c..26d439a091 100644 --- a/schemas/20251121/linkml/modules/classes/Appointment.yaml +++ b/schemas/20251121/linkml/modules/classes/Appointment.yaml @@ -86,21 +86,14 @@ classes: description: Appointment recommended but not required slot_usage: has_or_had_label: - description: Human-readable name for this appointment type examples: - value: Reading Room Appointment - value: Special Collections Viewing - value: Conservation Lab Access has_or_had_description: - description: Detailed description of appointment requirements examples: - value: "Appointments for the Special Collections reading room must be made \nat least 48 hours in advance. Please specify which materials you \nwish to consult. Maximum 5 items per visit.\n" temporal_extent: - description: 'When this appointment requirement is/was in effect. - - Enables historical tracking of when appointment policies changed. - - ' range: TimeSpan inlined: true examples: @@ -108,24 +101,10 @@ classes: appointment_id: hc:appointment/nationaal-archief-special-collections has_or_had_label: Special Collections Appointment has_or_had_description: Advance appointment required for manuscript and map collections - lead_time_hours: 48 - booking_method: - - email - - online_form - booking_contact: bijzondere.collecties@nationaalarchief.nl - confirmation_required: true - appointment_required: true - description: Nationaal Archief special collections appointment requirement - value: appointment_id: hc:appointment/reading-room-recommended has_or_had_label: Reading Room Reservation has_or_had_description: Reservations recommended but walk-ins accepted based on availability - lead_time_hours: 0 - booking_method: - - online_form - - in_person - appointment_required: false - description: Reading room with recommended but not required reservations annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml b/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml index 4ec1ab7fd2..bec1e11683 100644 --- a/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/AppreciationEvent.yaml @@ -112,9 +112,6 @@ classes: slot_usage: has_or_had_quantity: - description: | - Structured quantity for the appreciation count. - Use Quantity class with numeric_value and has_or_had_unit. range: integer inlined: true required: false @@ -123,52 +120,30 @@ classes: numeric_value: 42 has_or_had_unit: unit_label: "likes" - description: 42 likes using Quantity class - has_or_had_unit: - description: | - Unit for the appreciation type (likes, favorites, etc.). - Can be specified directly or via has_or_had_quantity.has_or_had_unit. range: string inlined: true required: false examples: - value: unit_label: "likes" - description: Likes unit - temporal_extent: - description: | - Time when the appreciation count was observed/recorded. range: TimeSpan inlined: true required: false examples: - value: begin_of_the_begin: "2025-01-14T10:00:00Z" - description: Observation timestamp - examples: - value: - appreciation_type: "like" - appreciation_count: 42 - description: Simple like count (minimal) - - value: - appreciation_type: "like" has_or_had_quantity: numeric_value: 42 has_or_had_unit: unit_label: "likes" temporal_extent: begin_of_the_begin: "2025-01-14T10:00:00Z" - description: Full structured like count with timestamp - - value: - appreciation_type: "favorite" - appreciation_count: 15 - description: Favorite count - comments: - Created 2026-01-22 from comment_like_count migration (Rule 53) - Models appreciation metrics as structured events diff --git a/schemas/20251121/linkml/modules/classes/Approver.yaml b/schemas/20251121/linkml/modules/classes/Approver.yaml index c82943896b..6068e31d75 100644 --- a/schemas/20251121/linkml/modules/classes/Approver.yaml +++ b/schemas/20251121/linkml/modules/classes/Approver.yaml @@ -48,14 +48,11 @@ classes: range: string examples: - value: Board of Directors - description: Organizational approver - value: Museum Director - description: Role-based approver has_or_had_identifier: range: uriorcurie examples: - value: https://nde.nl/ontology/hc/person/jan-de-vries - description: Link to person entity comments: - Generic approver class for approval provenance - Can represent individuals or organizational bodies @@ -66,7 +63,6 @@ classes: - value: has_or_had_label: Museum Director has_or_had_identifier: https://nde.nl/ontology/hc/person/example-director - description: Individual approver annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml b/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml index 7e8270bf1e..8c7a78c086 100644 --- a/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ApproximationStatus.yaml @@ -42,23 +42,17 @@ classes: has_or_had_level: range: string required: true - description: Level of approximation/uncertainty for the value. has_or_had_label: range: string required: false - description: Human-readable label for the approximation status. examples: - value: circa 1880 - description: Approximate date label - value: approximately 10,000 - description: Approximate quantity label has_or_had_description: range: string required: false - description: Explanation of why the value is approximate and how uncertainty was determined. examples: - value: Founding date derived from secondary sources, exact day unknown - description: Provenance of uncertainty comments: - ApproximationStatus replaces simple boolean approximate field - Provides structured uncertainty modeling for dates, quantities, etc. @@ -70,22 +64,18 @@ classes: - value: has_or_had_level: EXACT has_or_had_label: '1880-03-15' - description: Exact date with full precision - value: has_or_had_level: APPROXIMATE has_or_had_label: circa 1880 has_or_had_description: Founding date known only to year from newspaper accounts - description: Approximate date with explanation - value: has_or_had_level: ESTIMATED has_or_had_label: estimated 1875-1885 has_or_had_description: Date range inferred from building construction records - description: Estimated date range - value: has_or_had_level: UNKNOWN has_or_had_label: date unknown has_or_had_description: No founding records survive - description: Unknown date annotations: specificity_score: 0.3 specificity_rationale: Approximation status is broadly useful across contexts where uncertainty needs to be expressed. @@ -95,12 +85,7 @@ enums: description: Levels of approximation/uncertainty for values. permissible_values: EXACT: - description: Value is known with certainty APPROXIMATE: - description: Value is close but not exact (circa, roughly) ESTIMATED: - description: Value is calculated or inferred UNCERTAIN: - description: Significant doubt about accuracy - UNKNOWN: - description: Value cannot be determined + UNKNOWN: \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Architect.yaml b/schemas/20251121/linkml/modules/classes/Architect.yaml index 7e92558ecb..57534d4174 100644 --- a/schemas/20251121/linkml/modules/classes/Architect.yaml +++ b/schemas/20251121/linkml/modules/classes/Architect.yaml @@ -36,7 +36,6 @@ classes: - has_or_had_identifier slot_usage: has_or_had_label: - description: Name of the architect. required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml b/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml index 3d57b9d74c..bbb3726f3f 100644 --- a/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchitecturalArchive.yaml @@ -35,7 +35,6 @@ classes: slot_usage: has_or_had_identifier: pattern: ^Q[0-9]+$ - description: Wikidata identifier for Architectural Archive concept has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml b/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml index ec8d118565..ba2e81951d 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalLibrary.yaml @@ -28,14 +28,8 @@ classes: has_or_had_type: range: uriorcurie required: true - description: 'Type of branch. For archival libraries, this should be BranchLibraryUnit. - - MIGRATED from branch_type (2026-01-17) per Rule 53. - - ' examples: - value: BranchLibraryUnit - description: Archival library branch type is_branch_of: required: true exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml b/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml index 67d70879c7..4aeff07f67 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalReference.yaml @@ -30,7 +30,6 @@ classes: slot_usage: has_or_had_identifier: required: true - description: The reference code value. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml b/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml index 709d9be06a..c4d0d26bba 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivalStatus.yaml @@ -29,7 +29,6 @@ classes: slot_usage: has_or_had_code: required: true - description: Code for the status (e.g. UNPROCESSED, PROCESSED). annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml b/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml index fd89e9f15d..a5e5ee21c2 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveAssociation.yaml @@ -27,7 +27,6 @@ classes: required: true has_or_had_identifier: pattern: ^Q[0-9]+$ - description: Wikidata identifier for Archive Association concept has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType", "hc:HeritageSocietyType"]' exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml b/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml index ad4e855df1..d6b5b1df22 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveNetwork.yaml @@ -39,14 +39,10 @@ classes: required: true minimum_cardinality: 1 maximum_cardinality: 1 - description: 'Geographic applicability of the network (must be FR for ArchiveNetwork). - MIGRATED from has_applicable_country per Rule 53. - ' examples: - value: has_or_had_identifier: FR has_or_had_name: France - description: France only has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' annotations: diff --git a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml index 4c697d301d..1fcad89db7 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveOfInternationalOrganizationRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml b/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml index 642a45d14a..3e92d1487d 100644 --- a/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchiveOrganizationType.yaml @@ -107,25 +107,10 @@ classes: has_or_had_identifier: pattern: ^Q[0-9]+$ required: true - description: Wikidata identifier (Q-number) for this archive organization type has_or_had_policy: range: string - description: 'Appraisal policies for this archive type. - - MIGRATED from has_or_had_appraisal_policy per Rule 53. - - Uses AppraisalPolicy class. - - ' has_or_had_scope: range: string - description: 'The scope of the archive organization type. - - MIGRATED from has_or_had_archive_scope per Rule 53. - - Uses ArchiveScope class. - - ' custodian_type_broader: range: ArchiveOrganizationType required: false @@ -168,7 +153,6 @@ classes: has_or_had_schema: - has_or_had_label: EAD3 access_policy: mixed - description: National Archive classification with domain-specific metadata - value: has_or_had_identifier: https://nde.nl/ontology/hc/type/archive/Q10605195 has_or_had_type_code: ARCHIVE @@ -185,5 +169,4 @@ classes: preservation_standard: - ISO 15489 - MoReq - access_policy: restricted - description: Business Archive with corporate-specific scope + access_policy: restricted \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml index ab4bdd0377..ca1e6afc01 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivesRegionalesRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml b/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml index cd58e70c26..2a8e27109f 100644 --- a/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml +++ b/schemas/20251121/linkml/modules/classes/ArchivingPlan.yaml @@ -31,7 +31,6 @@ classes: - has_or_had_score slot_usage: temporal_extent: - description: The planned timeframe for archiving (e.g. transfer date). range: TimeSpan inlined: true annotations: diff --git a/schemas/20251121/linkml/modules/classes/Area.yaml b/schemas/20251121/linkml/modules/classes/Area.yaml index a4e060239a..4b30a59735 100644 --- a/schemas/20251121/linkml/modules/classes/Area.yaml +++ b/schemas/20251121/linkml/modules/classes/Area.yaml @@ -64,23 +64,12 @@ classes: - measurement_method - has_or_had_label slot_usage: - quantity_value: - description: >- - The numeric value of the area measurement. - MIGRATED from area_value (2026-01-22) which was migrated from - area_hectares, building_floor_area_sqm (Rule 53). - Using generic quantity_value aligns Area semantics with Quantity class. range: float required: true examples: - value: 25.0 - description: 25 hectares (outdoor site) - value: 5000.0 - description: 5000 square meters (building) has_or_had_unit: - description: >- - The unit of measurement for this area. - MIGRATED from implicit unit assumptions (Rule 53). range: MeasureUnit required: true inlined: true @@ -88,62 +77,40 @@ classes: - value: has_or_had_type: HECTARE has_or_had_symbol: "ha" - description: Hectare unit for outdoor site - value: has_or_had_type: SQUARE_METER has_or_had_symbol: "m²" - description: Square meter unit for building floor measurement_date: - description: >- - Date when the area was measured or recorded. range: date required: false examples: - value: "2024-01-15" - description: Recent measurement - value: "1985-06-01" - description: Historic measurement is_estimate: - description: >- - Whether the area is an estimate (true) or precise measurement (false). range: boolean required: false examples: - value: true - description: Estimated area for historic building - value: false - description: Precise surveyed measurement measurement_method: - description: >- - Method used to measure the area (survey, GIS, historical records, etc.). range: string required: false examples: - value: "GIS analysis" - description: Geographic Information System measurement - value: "Land survey" - description: Professional survey - value: "Historical records" - description: From archival documents has_or_had_label: - description: >- - Human-readable label for the area measurement. range: string examples: - value: "Total site area" - description: Label for outdoor site - value: "Building floor area" - description: Label for building examples: - value: - quantity_value: 25.0 has_or_had_unit: has_or_had_type: HECTARE has_or_had_symbol: "ha" has_or_had_label: "Sculpture garden area" - description: Outdoor site area in hectares (replaces area_hectares) - value: - quantity_value: 5000.0 has_or_had_unit: has_or_had_type: SQUARE_METER has_or_had_symbol: "m²" @@ -151,16 +118,13 @@ classes: is_estimate: false measurement_method: "Architectural survey" has_or_had_label: "Total floor area" - description: Building floor area in square meters (replaces building_floor_area_sqm) - value: - quantity_value: 650.0 has_or_had_unit: has_or_had_type: HECTARE has_or_had_symbol: "ha" is_estimate: true measurement_method: "Historical records" has_or_had_label: "Estate grounds" - description: Historic estate grounds with estimated area annotations: custodian_types: '["*"]' custodian_types_rationale: >- diff --git a/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml b/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml index 55a45a866b..93455da932 100644 --- a/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/ArrangementLevel.yaml @@ -41,9 +41,7 @@ classes: slot_usage: has_or_had_code: required: true - description: Code for the level (e.g., "FONDS", "SERIES", "FILE", "ITEM"). has_or_had_rank: - description: Numeric rank indicating hierarchical position (lower = higher in hierarchy). annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml index 0f3984a18a..e6224c1724 100644 --- a/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtArchiveRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ArtDealer.yaml b/schemas/20251121/linkml/modules/classes/ArtDealer.yaml index fdb644e841..d2e6a3e30f 100644 --- a/schemas/20251121/linkml/modules/classes/ArtDealer.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtDealer.yaml @@ -51,15 +51,12 @@ classes: slot_usage: has_or_had_name: - description: The name of the art dealer or gallery. range: Name inlined: true required: false examples: - value: has_or_had_label: "Duveen Brothers" - description: Famous art dealer firm - exact_mappings: - crm:E39_Actor close_mappings: @@ -90,12 +87,9 @@ classes: - value: has_or_had_name: has_or_had_label: "Duveen Brothers" - description: Famous art dealer firm (early 20th century) - value: has_or_had_name: has_or_had_label: "Paul Cassirer" - description: German art dealer (Impressionism specialist) - value: has_or_had_name: - has_or_had_label: "Jacques Goudstikker" - description: Dutch art dealer (notable Nazi-looted art case) + has_or_had_label: "Jacques Goudstikker" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml b/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml index 420fc1934c..fd1b9d0f4a 100644 --- a/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml +++ b/schemas/20251121/linkml/modules/classes/ArtSaleService.yaml @@ -87,43 +87,21 @@ classes: slot_usage: takes_or_took_comission: - description: | - Commission structure for this art sales service. range: CommissionRate inlined: true required: false examples: - value: - rate_type: "primary_market" has_or_had_percentage: - percentage_value: 50 - description: Standard 50% primary market commission - examples: - value: - service_name: "Primary Market Sales" - market_type: "primary" - artist_representation: true sales_activity: true takes_or_took_comission: - rate_type: "primary_market" has_or_had_percentage: - percentage_value: 50 - percentage_display: "50%" - description: Commercial gallery with 50% primary market commission - - value: - service_name: "Consignment Sales" - market_type: "secondary" - artist_representation: false sales_activity: true takes_or_took_comission: - rate_type: "secondary_market" has_or_had_percentage: - percentage_value: 15 - percentage_display: "10-20%" - description: Secondary market consignment with variable commission - comments: - Created 2026-01-22 from commission_rate migration (Rule 53) - Extends Service class for art sales context diff --git a/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml b/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml index 70bec862cb..4af6d1c41c 100644 --- a/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml +++ b/schemas/20251121/linkml/modules/classes/ArticlesOfAssociation.yaml @@ -103,8 +103,6 @@ classes: - has_or_had_type - is_or_was_effective_at - is_or_was_signed_at - - governance_clause - - id - is_current_version - jurisdiction - language @@ -112,54 +110,33 @@ classes: - notarial_deed_number - notary_name - notary_office - - purpose_clause - refers_to_custodian - refers_to_legal_status - registered_office_clause - requires_articles_at_registration - specificity_annotation - supersedes_or_superseded - - superseded_by_articles - has_or_had_score - temporal_extent - has_or_had_version - is_or_was_derived_from - is_or_was_generated_by slot_usage: - id: - identifier: true - required: true has_or_had_title: - description: 'Title of the articles document. - MIGRATED from document_title per Rule 53 (2026-01-26). - ' range: string inlined: true required: true examples: - value: has_or_had_label: Statuten Stichting Rijksmuseum - description: Title of articles has_or_had_description: - description: 'Description of the articles document. - MIGRATED from document_description per Rule 53 (2026-01-26). - ' range: string inlined: true required: false examples: - value: description_text: Original founding articles of the Rijksmuseum foundation - description: Document description - document_type: - description: 'DEPRECATED 2026-01-26: Use has_or_had_type with DocumentType subclass. - ' - range: string - deprecated: Use has_or_had_type has_or_had_type: - description: 'Type of the document (e.g. NotarialDeed). - MIGRATED from document_type per Rule 53 (2026-01-26). - ' range: DocumentType inlined: true required: true @@ -167,122 +144,69 @@ classes: - value: has_or_had_label: Notarial Deed has_or_had_type: NotarialDeed - description: Standard Dutch notarial deed is_or_was_signed_at: range: Timestamp inlined: true required: true - description: Timestamp when the articles were signed/executed. MIGRATED from execution_date (2026-01-26). examples: - value: has_or_had_timestamp: '2024-03-15' - description: Date notary executed the deed is_or_was_effective_at: range: date required: false examples: - value: '2024-03-18' - description: Date of KvK registration (3 days after execution) notary_name: range: string required: false examples: - value: mr. J.A. van der Berg - description: Dutch notary with title 'mr.' notary_office: range: string required: false examples: - value: Amsterdam - description: City where notary office is located notarial_deed_number: range: string required: false examples: - value: 2024/0315/001 - description: Notarial deed reference number has_or_had_version: - description: 'Version number of the articles. - Original articles = 1, first amendment = 2, etc. - MIGRATED from version_number per Rule 53. - ' range: string required: false examples: - value: '1' - description: Original founding articles - value: '3' - description: Third version (two amendments) is_current_version: range: boolean required: true - purpose_clause: - range: string - required: false - examples: - - value: The foundation aims to manage, preserve, and make accessible the cultural heritage of the Netherlands through the operation of the national museum. - description: Purpose clause for a museum foundation registered_office_clause: range: string required: false examples: - value: De stichting heeft haar zetel in de gemeente Amsterdam. - description: Registered office clause - governance_clause: - range: string - required: false - has_amendment_history: - range: string - multivalued: true - required: false - examples: - - value: '2010-05-20: Amendment to expand purpose clause to include digital heritage' - description: Amendment record - value: '2015-11-12: Amendment to restructure board composition' - description: Amendment record language: range: string required: false examples: - value: nl - description: Dutch - value: de - description: German - has_articles_document_url: - range: uri - required: false - has_articles_document_format: - range: string - required: false - has_articles_archival_stage: - range: RecordsLifecycleStageEnum - required: true - examples: - - value: ACTIVE - description: Current version in use - value: PRE_EXISTENCE - description: Drafted but organization not yet registered is_or_was_archived_in: range: CustodianArchive required: false is_or_was_included_in: - description: 'CustodianCollection where heritage articles are preserved. - Only applicable when has_articles_archival_stage = HERITAGE. - MIGRATED from collected_in per slot_fixes.yaml (Rule 53). - ' range: CustodianCollection required: false examples: - value: https://nde.nl/ontology/hc/collection/rm/institutional-archive - description: Rijksmuseum institutional archive collection requires_articles_at_registration: range: boolean required: false examples: - value: true - description: Dutch stichting - requires notarial deed at registration - value: false - description: Dutch VOF - partnership agreement created post-registration refers_to_legal_status: range: CustodianLegalStatus required: true @@ -303,10 +227,6 @@ classes: range: ReconstructionActivity required: false temporal_extent: - description: 'Validity period for these articles using CIDOC-CRM TimeSpan. - MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53). - Uses begin_of_the_begin for effective date and end_of_the_end for supersession. - ' range: TimeSpan inlined: true required: false @@ -314,7 +234,6 @@ classes: - value: begin_of_the_begin: '1885-07-01' end_of_the_end: '2015-11-11' - description: Original articles valid from 1885 until superseded in 2015 comments: - Represents founding legal documents (statuten, articles of incorporation) - 'Handles PRE_EXISTENCE paradox: articles exist before organization exists' @@ -347,7 +266,6 @@ classes: has_or_had_version: '1' is_current_version: false superseded_by_articles: https://nde.nl/ontology/hc/articles/rm/v15 - purpose_clause: De stichting heeft ten doel het beheren en toegankelijk maken van het Rijksmuseum... registered_office_clause: De stichting heeft haar zetel in de gemeente Amsterdam. language: nl articles_archival_stage: HERITAGE @@ -356,13 +274,9 @@ classes: refers_to_legal_status: https://nde.nl/ontology/hc/legal-status/rm refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 legal_form: - elf_code: '8888' - has_or_had_country: NL - local_name: Stichting jurisdiction: jurisdiction_id: NL jurisdiction_type: NATIONAL - description: Original 1885 founding articles of Rijksmuseum (now in heritage collection) - value: id: https://nde.nl/ontology/hc/articles/nha/v3 has_or_had_title: @@ -380,8 +294,6 @@ classes: has_or_had_version: '3' is_current_version: true supersedes_or_superseded: https://nde.nl/ontology/hc/articles/nha/v2 - purpose_clause: De stichting heeft ten doel het beheren, behouden, en toegankelijk maken van archieven en collecties met betrekking tot de geschiedenis van Noord-Holland, inclusief digitaal erfgoed... - has_amendment_history: - '2001-01-01: Merger of Gemeentearchief Haarlem and Rijksarchief Noord-Holland' - '2015-11-12: Expansion of purpose to include digital heritage preservation' language: nl @@ -389,7 +301,6 @@ classes: requires_articles_at_registration: true refers_to_legal_status: https://nde.nl/ontology/hc/legal-status/nha refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha - description: Current version of Noord-Hollands Archief articles annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Asserter.yaml b/schemas/20251121/linkml/modules/classes/Asserter.yaml index 14435625e6..a4dfbe4d90 100644 --- a/schemas/20251121/linkml/modules/classes/Asserter.yaml +++ b/schemas/20251121/linkml/modules/classes/Asserter.yaml @@ -51,34 +51,25 @@ classes: range: uriorcurie required: true identifier: true - description: Unique identifier for this asserter. examples: - value: https://nde.nl/ontology/hc/asserter/claude-opus-4 - description: AI agent asserter - value: https://nde.nl/ontology/hc/asserter/jane-doe-nde - description: Human analyst asserter has_or_had_label: range: string required: true - description: Name of the asserter. examples: - value: Claude Opus 4 - description: AI model name - value: Dr. Jane Doe - description: Human analyst name - value: primary-presence-classifier - description: Automated system name has_or_had_description: range: string required: false - description: Description of the asserter and their role in the assertion process. examples: - value: Anthropic Claude AI model used for heritage data assertions - value: Senior digital heritage analyst at NDE has_or_had_type: range: AsserterTypeEnum required: true - description: The type of agent making the assertion. examples: - value: AI_AGENT - value: HUMAN_ANALYST @@ -86,14 +77,12 @@ classes: has_or_had_version: range: string required: false - description: Version identifier for software agents. examples: - value: claude-opus-4-20250514 - value: 1.2.3 has_or_had_contact_point: range: string required: false - description: Contact information for human or organizational asserters. examples: - value: jane.doe@nde.nl - value: heritage-team@museum.nl @@ -112,21 +101,18 @@ classes: has_or_had_type: AI_AGENT has_or_had_description: Anthropic Claude AI model used for heritage data assertions has_or_had_version: claude-opus-4-20250514 - description: AI agent asserter - value: has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe-nde has_or_had_label: Dr. Jane Doe has_or_had_type: HUMAN_ANALYST has_or_had_description: Senior digital heritage analyst at NDE has_or_had_contact_point: jane.doe@nde.nl - description: Human analyst asserter - value: has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-classifier has_or_had_label: primary-presence-classifier has_or_had_type: AUTOMATED_SYSTEM has_or_had_description: Automated system for classifying primary digital presence has_or_had_version: 1.0.0 - description: Automated system asserter annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml b/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml index 6a37d99c30..a9e384a5f7 100644 --- a/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml +++ b/schemas/20251121/linkml/modules/classes/AssessmentCategory.yaml @@ -20,8 +20,6 @@ classes: slot_usage: has_or_had_type: range: uriorcurie - description: The type of assessment category. - annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml b/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml index c5950d51e2..5add2829e0 100644 --- a/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml +++ b/schemas/20251121/linkml/modules/classes/AuctionHouse.yaml @@ -20,7 +20,6 @@ classes: slot_usage: has_or_had_name: range: string - description: Name of the auction house. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml b/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml index 7a2bed8f52..605430ec75 100644 --- a/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml +++ b/schemas/20251121/linkml/modules/classes/AuctionSaleCatalog.yaml @@ -27,7 +27,6 @@ classes: slot_usage: has_or_had_name: range: string - description: Name or title of the auction sale/catalog. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml b/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml index dd80d41238..b820fb89c9 100644 --- a/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml +++ b/schemas/20251121/linkml/modules/classes/AudioEventSegment.yaml @@ -157,30 +157,21 @@ classes: has_or_had_type: range: AudioEventTypeEnum required: true - description: The type of audio event detected in this segment. examples: - value: SPEECH - description: Speech detected in this segment - value: MUSIC - description: Music detected in this segment has_or_had_time_interval: range: TimeInterval required: true inlined: true - description: Duration of audio segment. Replaces end_seconds/end_time. Use duration_value for ISO 8601 (e.g. PT15S). examples: - value: - duration_value: PT0M15S - description: 15 second duration segment_text: range: string required: false - description: Text content for this segment (e.g., speech transcript, music description). examples: - value: Welcome to the Rijksmuseum - description: Speech transcript text - value: Classical background music - description: Music segment description is_or_was_generated_by: range: GenerationEvent required: false @@ -191,7 +182,6 @@ classes: has_or_had_score: has_or_had_score: 0.95 has_or_had_method: audio_classification - description: High confidence audio event detection comments: - Audio event segment for speech, music, silence, sound event detection - Temporal boundaries with start/end seconds (primary) and ISO 8601 (secondary) diff --git a/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml index f05081d80d..582b09f86c 100644 --- a/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/AudiovisualArchiveRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Author.yaml b/schemas/20251121/linkml/modules/classes/Author.yaml index 170726d82e..bf3c217013 100644 --- a/schemas/20251121/linkml/modules/classes/Author.yaml +++ b/schemas/20251121/linkml/modules/classes/Author.yaml @@ -54,40 +54,28 @@ classes: has_or_had_name: range: string required: true - description: Full name of the author (person or organization). examples: - value: Jan de Vries - description: Individual author - value: Rijksmuseum Research Department - description: Corporate author has_or_had_role: range: AuthorRoleEnum required: false ifabsent: string(AUTHOR) - description: Role of this person in creating the work. examples: - value: AUTHOR - description: Primary author - value: EDITOR - description: Editor is_or_was_affiliated_with: range: string required: false - description: Organization the author is affiliated with. examples: - value: Rijksmuseum Amsterdam - description: Museum affiliation - value: Universiteit van Amsterdam - description: University affiliation has_or_had_identifier: range: uriorcurie required: false - description: Identifier for the author (ORCID, VIAF, etc.). examples: - value: https://orcid.org/0000-0001-2345-6789 - description: ORCID identifier - value: https://viaf.org/viaf/12345678 - description: VIAF identifier comments: - Author replaces simple string author lists with structured data - Supports both individual and organizational authors @@ -103,15 +91,12 @@ classes: has_or_had_role: AUTHOR is_or_was_affiliated_with: Rijksmuseum Amsterdam has_or_had_identifier: https://orcid.org/0000-0001-2345-6789 - description: Individual author with full metadata - value: has_or_had_name: Maria van Dijk has_or_had_role: EDITOR - description: Editor with minimal metadata - value: has_or_had_name: Rijksmuseum Research Department has_or_had_role: AUTHOR - description: Corporate author annotations: specificity_score: 0.35 specificity_rationale: Authorship is broadly useful for creative/documentary works. diff --git a/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml b/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml index 1ce585806b..6c5c4d89b5 100644 --- a/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml +++ b/schemas/20251121/linkml/modules/classes/AuthorityFile.yaml @@ -34,8 +34,6 @@ classes: slot_usage: contains_or_contained: range: string - description: The types of entities contained in this authority file. - annotations: custodian_types: '["*"]' specificity_score: 0.4 diff --git a/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml b/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml index 59294ad727..fd0cc7aa89 100644 --- a/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml +++ b/schemas/20251121/linkml/modules/classes/AutoGeneration.yaml @@ -46,16 +46,12 @@ classes: range: string examples: - value: YouTube Auto-Caption - description: Platform auto-generated captions - value: ASR Transcription - description: Automatic speech recognition has_or_had_description: range: string examples: - value: Automatically generated by YouTube's speech recognition system - description: Platform-provided auto-generation - value: Generated using Whisper ASR model - description: Specific ASR model used comments: - Generic auto-generation class replacing domain-specific boolean flags - Captures generation method and provenance @@ -67,7 +63,6 @@ classes: - value: has_or_had_label: YouTube Auto-Caption has_or_had_description: Automatically generated by YouTube's speech recognition - description: YouTube auto-generated subtitles annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml index a03748da1f..cc407da2ee 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -88,24 +88,19 @@ classes: - dcat:servesDataset slots: - has_or_had_documentation - - has_or_had_archival_status - is_or_was_archived_at - has_or_had_identifier - has_or_had_type - is_or_was_based_on - has_or_had_endpoint - - fixity_info - receives_or_received - - iiif_support - is_auxiliary_of_platform - linked_data - platform_description - platform_name - platform_purpose - platform_url - - has_or_had_powered_by_cm - has_or_had_type - - provides_access_to - refers_to_custodian - related_project - serves_finding_aid @@ -122,58 +117,41 @@ classes: identifier: true examples: - value: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-rijksstudio - description: Rijksstudio platform ID platform_name: range: string required: true examples: - value: Rijksstudio - description: Personal collection tool - value: Operation Night Watch - description: Research project microsite - value: WW2 Portal - description: Thematic archive portal has_or_had_type: range: string required: false examples: - value: web_harvest - description: Platform captured via Internet Archive - value: migration - description: Content migrated to successor platform platform_url: range: uri required: true pattern: ^https?:// examples: - value: https://www.rijksmuseum.nl/nl/rijksstudio - description: Rijksstudio URL - value: https://data.rijksmuseum.nl/ - description: Data API URL platform_purpose: range: string examples: - value: Personal collection creation and high-res image downloads - description: Rijksstudio purpose - value: Interactive exploration of Night Watch research project - description: Exhibition microsite purpose platform_description: range: string examples: - value: Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others. - description: Detailed platform description has_or_had_documentation: - description: Documentation resources for this auxiliary platform (API docs, user guides, etc.) range: uri multivalued: true examples: - value: https://data.rijksmuseum.nl/object-metadata/api/ - description: API documentation URL has_or_had_technological_infrastructure: - description: 'Structured technology stack components used by this platform. - MIGRATED from simple string list to TechnologicalInfrastructure class - for better semantic modeling, versioning, and component relationships. - ' range: TechnologicalInfrastructure multivalued: true inlined_as_list: true @@ -183,7 +161,6 @@ classes: has_or_had_type: FrontendFramework has_or_had_label: React has_or_had_version: '18.2' - description: React frontend framework - value: has_or_had_identifier: tech-django-backend has_or_had_type: BackendFramework @@ -191,126 +168,64 @@ classes: has_or_had_version: '4.2' includes_or_included: - Django REST Framework - description: Django backend stack with REST framework is_auxiliary_of_platform: range: DigitalPlatform required: true examples: - value: https://nde.nl/ontology/hc/platform/rijksmuseum-website - description: Main Rijksmuseum website - provides_access_to: - range: uriorcurie - multivalued: true - examples: - - value: https://nde.nl/ontology/hc/collection/rm-paintings - description: Paintings collection related_project: range: string examples: - value: Operation Night Watch - description: Research project name - value: 'EU Horizon 2020 Grant #123456' - description: Grant reference receives_or_received: - description: 'Funding source(s) for the auxiliary platform. - MIGRATED from funding_source per Rule 53. - Uses frapo:isFundedBy via receives_or_received slot. - ' range: FundingSource inlined: true examples: - value: has_or_had_label: European Commission Horizon 2020 - description: EU funding - value: has_or_had_label: Mondriaan Fund - description: Dutch cultural fund - iiif_support: - range: boolean - examples: - - value: true - description: IIIF enabled linked_data: range: boolean examples: - value: true - description: Provides RDF/JSON-LD temporal_extent: - description: 'Platform validity period using CIDOC-CRM TimeSpan. - MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53). - Replaces separate valid_from/valid_to slots with unified temporal model. - ' range: TimeSpan examples: - value: begin_of_the_begin: '2018-06-01' end_of_the_end: '2021-12-31' - description: Platform launched June 2018, closed end of 2021 has_or_had_status: range: ArchivalStatus inlined: true - description: 'Archival status of the platform (ACTIVE, DEPRECATED, MIGRATED). - MIGRATED from has_or_had_archival_status per Rule 53. - Uses ArchivalStatus class. - ' examples: - value: has_or_had_code: ACTIVE has_or_had_label: Active - description: Preserved in web archive - value: has_or_had_code: DEPRECATED has_or_had_label: Deprecated - description: Still accessible but not maintained - value: has_or_had_code: MIGRATED has_or_had_label: Migrated - description: Content migrated to successor platform is_or_was_archived_at: - description: URL where this platform is or was archived (e.g., Wayback Machine) range: uri examples: - value: https://web.archive.org/web/20211231/https://example.nl/exhibition/ - description: Wayback Machine URL - fixity_info: - range: string - required: false - examples: - - value: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - description: SHA-256 checksum of archived content is_or_was_based_on: - description: 'CMS detected on this platform (replaces boolean cms_detected). - MIGRATED from boolean flag to structured CMS reference. - If present, a CMS was detected; if absent, no CMS detected. - **Migration**: - - Old: cms_detected: true - - New: is_or_was_based_on: {cms_name: WordPress, cms_version: "6.4"} - ' range: CMS multivalued: true inlined_as_list: true required: false examples: - value: - cms_name: WordPress cms_version: 6.4.2 has_or_had_type: CustomCMS detected_at: '2026-01-19T12:00:00Z' - detection_method: HTTP_HEADER - description: CMS detected via HTTP header - value: - cms_name: Omeka S cms_version: 4.0.1 has_or_had_type: MuseumCMS - detection_method: URL_PATTERN - description: Omeka S detected via URL pattern - has_or_had_powered_by_cm: - range: CollectionManagementSystem - multivalued: true - required: false - examples: - - value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib - description: Auxiliary platform powered by Adlib CMS is_or_was_derived_from: range: CustodianObservation multivalued: true @@ -323,7 +238,6 @@ classes: required: true examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Rijksmuseum custodian hub serves_finding_aid: range: uriorcurie multivalued: true @@ -331,20 +245,7 @@ classes: required: false examples: - value: https://nde.nl/ontology/hc/finding-aid/rm/night-watch-guide - description: Night Watch Exhibition finding aid - has_or_had_data_service_endpoint: - range: DataServiceEndpoint - multivalued: true - inlined_as_list: true - required: false - examples: - - value: - - endpoint_id: https://nde.nl/ontology/hc/endpoint/rijksstudio-api - endpoint_name: Rijksstudio Image API has_or_had_url: https://www.rijksmuseum.nl/api/nl/collection - protocol: REST_JSON - status: ACTIVE - description: Rijksstudio auxiliary platform endpoints comments: - AuxiliaryDigitalPlatform models SUBORDINATE digital properties - DigitalPlatform models PRIMARY digital entry point @@ -368,16 +269,12 @@ classes: platform_purpose: Personal collection creation and high-res image downloads platform_description: Rijksstudio allows users to create personal collections from the Rijksmuseum's digitized artworks, download high-resolution images, and share curated sets with others. is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website - provides_access_to: - https://nde.nl/ontology/hc/collection/rm-paintings - https://nde.nl/ontology/hc/collection/rm-prints - iiif_support: true linked_data: false - valid_from: '2012-10-01' has_or_had_status: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Rijksstudio personal collection platform - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rijksmuseum-data-api platform_name: Rijksmuseum Data API @@ -396,13 +293,10 @@ classes: has_or_had_label: JSON has_or_had_description: JSON data format for API responses is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website - iiif_support: true linked_data: true - valid_from: '2013-03-01' has_or_had_status: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Rijksmuseum developer API - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/rm-night-watch-experience platform_name: Operation Night Watch @@ -414,12 +308,9 @@ classes: receives_or_received: has_or_had_label: ING Bank is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website - iiif_support: true - valid_from: '2019-07-01' has_or_had_status: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Night Watch research project microsite - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-platform/na-ww2-portal platform_name: WW2 Archives Portal @@ -429,14 +320,11 @@ classes: platform_purpose: Thematic portal for World War 2 archival research platform_description: Specialized portal providing access to WW2-related archives including resistance records, persecution documents, and liberation materials. is_auxiliary_of_platform: https://nde.nl/ontology/hc/platform/nationaal-archief-website - provides_access_to: - https://nde.nl/ontology/hc/collection/na-resistance-archives - https://nde.nl/ontology/hc/collection/na-liberation-photos - valid_from: '2015-05-05' has_or_had_status: has_or_had_code: ACTIVE refers_to_custodian: https://nde.nl/ontology/hc/nl-na - description: National Archives WW2 thematic portal annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml index d944c2cc95..6f459d4039 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml @@ -97,8 +97,6 @@ classes: - has_or_had_type - is_or_was_located_in - country - - geonames_id - - has_feature_type - has_or_had_location - is_or_was_location_of - is_auxiliary_of_place @@ -111,7 +109,6 @@ classes: - settlement - specialized_place - specificity_annotation - - has_or_had_address - has_or_had_geographic_subdivision - has_or_had_score - temporal_extent @@ -125,35 +122,24 @@ classes: identifier: true examples: - value: https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort - description: Rijksmuseum off-site storage facility place_name: range: string required: true examples: - value: Depot Amersfoort - description: Off-site storage facility name - value: Rijksmuseum Schiphol - description: Airport branch location - value: Reading Room Annex - description: Overflow reading room has_or_had_type: - description: 'Type of auxiliary place (e.g., STORAGE_FACILITY, BRANCH_OFFICE). - MIGRATED from has_auxiliary_place_type per Rule 53. - Uses PlaceType class (which wraps AuxiliaryPlaceTypeEnum). - ' range: PlaceType required: true inlined: true examples: - value: has_or_had_label: STORAGE_FACILITY - description: Off-site depot - value: has_or_had_label: BRANCH_OFFICE - description: Regional branch - value: has_or_had_label: RESEARCH_CENTER - description: Digitization center specialized_place: range: ReconstructedEntity required: false @@ -163,28 +149,16 @@ classes: research_center_id: https://nde.nl/hc/research/kb-digitization center_name: KB Digitization Center research_center_type: DIGITIZATION_CENTER - description: ResearchCenter instance for digitization facility - value: conservation_lab_id: https://nde.nl/hc/lab/rkd-paper lab_name: RKD Paper Conservation Lab conservation_specialties: - Works on paper - Drawings - description: ConservationLab instance place_description: range: string examples: - value: Off-site storage facility housing overflow collections. Staff access only. - description: Depot description - has_or_had_address: - range: Address - multivalued: true - inlined_as_list: true - required: false - description: 'Physical address(es) for this auxiliary place. - MIGRATED from street_address (string) to full Address class (2026-01-17, Rule 53/56). - Provides richer address modeling with components, geocoding, and provenance. - ' examples: - value: has_or_had_label: @@ -195,68 +169,45 @@ classes: postal_code: 3824 BK locality: Amersfoort country_name: NL - description: Depot street address as full Address object - value: has_or_had_label: - has_or_had_label: Schiphol Airport, Holland Boulevard, Lounge 2 language: en locality: Schiphol country_name: NL - description: Airport location as Address object postal_code: range: string examples: - value: 3824 BK - description: Dutch postal code is_or_was_located_in: range: string required: false inlined: true - description: 'The city where this auxiliary place is located, as a structured City entity. - MIGRATED from city (string) slot (2026-01-18, Rule 53). - Provides GeoNames ID, coordinates, and subregion linkage. - ' examples: - value: settlement_name: Amersfoort - geonames_id: 2759633 country: NL - description: Auxiliary place located in Amersfoort country: range: Country examples: - value: https://nde.nl/ontology/hc/country/NL - description: Netherlands has_or_had_geographic_subdivision: range: string examples: - value: https://nde.nl/ontology/hc/subregion/NL-UT - description: Utrecht province settlement: range: Settlement examples: - value: https://nde.nl/ontology/hc/settlement/2759633 - description: Amersfoort (GeoNames ID 2759633) latitude: range: float examples: - value: 52.1561 - description: Amersfoort latitude longitude: range: float examples: - value: 5.3878 - description: Amersfoort longitude - geonames_id: - range: integer - examples: - - value: 2759633 - description: Amersfoort GeoNames ID has_or_had_location: - description: 'Geospatial location of this auxiliary place. - MIGRATED from has_geospatial_location per Rule 53. - Uses GeoSpatialPlace class. - ' range: GeoSpatialPlace multivalued: true inlined_as_list: true @@ -275,8 +226,6 @@ classes: osm_id: way/234567890 has_accuracy_in_meters: 1.0 spatial_resolution: BUILDING - geospatial_source: Kadaster BAG - description: Storage depot with building footprint polygon - value: has_or_had_location: geospatial_id: https://nde.nl/ontology/hc/geo/schiphol-branch @@ -287,49 +236,30 @@ classes: has_or_had_value: POINT(4.7639 52.3086) has_or_had_type: has_or_had_label: POINT - geonames_id: 2747891 has_accuracy_in_meters: 50.0 spatial_resolution: BUILDING - geospatial_source: GeoNames API - description: Airport branch point location - has_feature_type: - range: FeaturePlace - examples: - - value: https://nde.nl/ontology/hc/feature/warehouse-type - description: Warehouse/depot building type is_or_was_location_of: range: OrganizationBranch multivalued: true inlined_as_list: true - description: | - Organization branch hosted at this auxiliary place. - MIGRATED from hosts_branch per Rule 53 (2026-01-28). examples: - value: has_or_had_label: Conservation Division - Amersfoort branch_type: CONSERVATION_LAB - description: Conservation branch at depot site is_auxiliary_of_place: range: CustodianPlace required: true examples: - value: https://nde.nl/ontology/hc/place/rijksmuseum-main - description: Main Rijksmuseum building temporal_extent: - description: 'Place validity period using CIDOC-CRM TimeSpan. - MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53). - Replaces separate valid_from/valid_to slots with unified temporal model. - ' range: TimeSpan examples: - value: begin_of_the_begin: '1995-06-01' end_of_the_end: '2010-12-31' - description: Depot opened June 1995, closed end of 2010 - value: begin_of_the_begin: '1970-01-01' end_of_the_begin: '1979-12-31' - description: Opened sometime in the 1970s (fuzzy) is_or_was_derived_from: range: CustodianObservation multivalued: true @@ -342,7 +272,6 @@ classes: required: true examples: - value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Rijksmuseum custodian hub comments: - AuxiliaryPlace models SUBORDINATE physical locations (not main headquarters) - Analogous to CustodianAppellation (alternative names) for CustodianName @@ -363,7 +292,6 @@ classes: has_or_had_type: has_or_had_label: STORAGE_FACILITY place_description: Off-site storage facility for overflow collections. Climate-controlled. Staff access only. - has_or_had_address: - has_or_had_label: - has_or_had_label: Euterpelaan 25, 3824 BK Amersfoort, Netherlands language: nl @@ -376,17 +304,14 @@ classes: has_or_had_geographic_subdivision: https://nde.nl/ontology/hc/subregion/NL-UT latitude: 52.1561 longitude: 5.3878 - valid_from: '1995-06-01' is_auxiliary_of_place: https://nde.nl/ontology/hc/place/rijksmuseum-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Rijksmuseum off-site storage depot - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/rijksmuseum-schiphol place_name: Rijksmuseum Schiphol has_or_had_type: has_or_had_label: BRANCH_OFFICE place_description: Small exhibition space at Schiphol Airport featuring rotating highlights from the collection. - has_or_had_address: - has_or_had_label: - has_or_had_label: Schiphol Airport, Holland Boulevard, Lounge 2 language: en @@ -394,16 +319,13 @@ classes: country_name: NL is_or_was_located_in: settlement_name: Hoofddorp - geonames_id: 2753801 country: NL country: https://nde.nl/ontology/hc/country/NL - valid_from: '2002-10-01' is_or_was_location_of: - has_or_had_label: Schiphol Exhibition Team branch_type: EXHIBITION_SPACE is_auxiliary_of_place: https://nde.nl/ontology/hc/place/rijksmuseum-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Rijksmuseum airport branch exhibition - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux-place/nha-reading-room-annex place_name: Noord-Hollands Archief Reading Room Annex @@ -415,7 +337,6 @@ classes: annex_reason: PEAK_DEMAND capacity_seats: 12 place_description: Overflow reading room for peak research periods. - has_or_had_address: - has_or_had_label: - has_or_had_label: Kleine Houtweg 20, 2012 CH Haarlem, Netherlands language: nl @@ -426,13 +347,9 @@ classes: country_name: NL is_or_was_located_in: settlement_name: Haarlem - geonames_id: 2755003 country: NL - valid_from: '2010-01-15' - valid_to: '2018-06-30' is_auxiliary_of_place: https://nde.nl/ontology/hc/place/noord-hollands-archief-main refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha - description: Archive annex with specialized ReadingRoomAnnex details (closed 2018) annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml b/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml index 5dd4cea832..f94d4d247d 100644 --- a/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/AvailabilityStatus.yaml @@ -50,33 +50,21 @@ classes: required: false examples: - value: API Available - description: Indicates API is available - value: Service Unavailable - description: Indicates service is down has_or_had_description: range: string examples: - value: REST API available with JSON responses - description: Details about API availability temporal_extent: - description: 'Availability validity period using CIDOC-CRM TimeSpan. - - MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53). - - Uses begin_of_the_begin for when available since and end_of_the_end for deprecation. - - ' range: TimeSpan inlined: true required: false examples: - value: begin_of_the_begin: '2015-01-01' - description: API available since 2015 (no end date - still available) - value: begin_of_the_begin: '2015-06-01' end_of_the_end: '2020-12-31' - description: API available from 2015 to 2020 (deprecated) comments: - Generic availability status class replacing domain-specific boolean flags - Supports temporal validity for tracking when availability changed @@ -88,9 +76,6 @@ classes: - value: has_or_had_label: API Available has_or_had_description: REST API with JSON responses available for collection metadata access - valid_from: '2015-06-01' - valid_to: null - description: CMS API availability status annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml b/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml index 9f09663832..568e888020 100644 --- a/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml +++ b/schemas/20251121/linkml/modules/classes/BOLDIdentifier.yaml @@ -1,8 +1,8 @@ id: https://nde.nl/ontology/hc/class/BOLDIdentifier name: bold_identifier_class title: BOLD Identifier Class -description: 'Barcode of Life Data System (BOLD) identifier for biological specimens. - Links heritage biological objects to their DNA barcode records in BOLD.' +description: Barcode of Life Data System (BOLD) identifier for biological specimens. Links heritage biological objects to + their DNA barcode records in BOLD. prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -22,49 +22,20 @@ classes: BOLDIdentifier: class_uri: schema:PropertyValue description: 'A Barcode of Life Data System (BOLD) identifier linking a biological specimen to its DNA barcode record. - **WHAT IS BOLD?** - BOLD (Barcode of Life Data System) is an online workbench and database for DNA barcoding. It stores specimen data and DNA barcode sequences, enabling species identification through DNA. - **USE CASES**: - 1. **Specimen Identification**: Link natural history specimens to DNA data 2. **Species Verification**: Cross-reference morphological IDs with DNA barcodes 3. **Research Provenance**: Document genetic sampling of collection objects - **IDENTIFIER FORMAT**: - BOLD identifiers follow the pattern: BOLD:XXXNNN - Process IDs: BOLD:AAA0001 - Sample IDs: Institution-specific prefixes - **EXTERNAL LINKS**: + **WHAT IS BOLD?** BOLD (Barcode of Life Data System) is an online workbench and database for DNA barcoding. It stores + specimen data and DNA barcode sequences, enabling species identification through DNA. **USE CASES**: 1. **Specimen Identification**: + Link natural history specimens to DNA data 2. **Species Verification**: Cross-reference morphological IDs with DNA barcodes + 3. **Research Provenance**: Document genetic sampling of collection objects **IDENTIFIER FORMAT**: BOLD identifiers + follow the pattern: BOLD:XXXNNN - Process IDs: BOLD:AAA0001 - Sample IDs: Institution-specific prefixes **EXTERNAL LINKS**: - BOLD Systems: https://boldsystems.org/ - Record URL pattern: https://boldsystems.org/index.php/Public_RecordView?processid={id}' exact_mappings: - schema:PropertyValue close_mappings: - dcterms:identifier slots: - - id - - identifier_value - - identifier_url - has_or_had_description - specificity_annotation - has_or_had_score - slot_usage: - id: - identifier: true - required: true - range: uriorcurie - pattern: ^https://nde\.nl/ontology/hc/bold-id/[A-Z0-9-]+$ - examples: - - value: https://nde.nl/ontology/hc/bold-id/NLNAT001-21 - description: Dutch natural history specimen BOLD ID - identifier_value: - description: The BOLD process ID or sample ID value. - range: string - required: true - pattern: ^[A-Z]{2,5}[0-9]{3,7}(-[0-9]{2})?$ - examples: - - value: NLNAT001-21 - description: Netherlands natural history specimen 2021 - - value: GBMIN12345-19 - description: UK specimen from 2019 - identifier_url: - description: URL to the BOLD record page. - range: uri - examples: - - value: https://boldsystems.org/index.php/Public_RecordView?processid=NLNAT001-21 comments: - Used for DNA barcode identifiers in natural history collections - Links physical specimens to molecular data @@ -72,11 +43,8 @@ classes: examples: - value: id: https://nde.nl/ontology/hc/bold-id/NLNAT001-21 - identifier_value: NLNAT001-21 identifier_url: https://boldsystems.org/index.php/Public_RecordView?processid=NLNAT001-21 - description: DNA barcode for Naturalis specimen - description: BOLD identifier for a Dutch natural history specimen annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration - custodian_types: "['*']" + custodian_types: '[''*'']' diff --git a/schemas/20251121/linkml/modules/classes/BackupStatus.yaml b/schemas/20251121/linkml/modules/classes/BackupStatus.yaml index db922b2611..08adbe82e3 100644 --- a/schemas/20251121/linkml/modules/classes/BackupStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/BackupStatus.yaml @@ -46,28 +46,22 @@ classes: range: uriorcurie multivalued: true inlined_as_list: true - description: The backup type(s) in use for this status. examples: - value: - has_or_had_code: DAILY_AUTOMATED - has_or_had_code: CLOUD_AZURE - description: Daily automated backup to Azure has_or_had_description: range: string - description: Free text description of the backup status. examples: - value: Daily backup to Azure, replicated to secondary site in Rotterdam. has_or_had_note: range: string multivalued: true - description: Additional notes or concerns about the backup status. examples: - value: Encryption at rest enabled since 2024-01 - value: Annual disaster recovery test passed 2025-06 begin_of_the_begin: - description: When this backup status configuration began. end_of_the_end: - description: When this backup status configuration ended (if changed). annotations: specificity_score: '0.60' specificity_rationale: Backup status relevant to all heritage custodians with digital assets. @@ -91,12 +85,10 @@ classes: ' begin_of_the_begin: '2024-01-15T00:00:00Z' - description: Example backup status with multiple types - value: has_or_had_identifier: https://nde.nl/ontology/hc/backup-status/critical-001 has_or_had_type: - has_or_had_code: NOT_BACKED_UP has_or_had_description: Legacy system not yet included in backup. Migration planned for Q2 2026. has_or_had_note: - - 'CRITICAL: Data at risk until migration complete' - description: Critical status - not backed up + - 'CRITICAL: Data at risk until migration complete' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/BackupType.yaml b/schemas/20251121/linkml/modules/classes/BackupType.yaml index 93b4df5700..5ec91e63cb 100644 --- a/schemas/20251121/linkml/modules/classes/BackupType.yaml +++ b/schemas/20251121/linkml/modules/classes/BackupType.yaml @@ -56,7 +56,6 @@ classes: pattern: ^https://nde\.nl/ontology/hc/backup-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/backup-type/daily-automated - description: Daily automated backup type has_or_had_code: range: string required: true @@ -82,7 +81,6 @@ classes: - value: Daily automated backup to off-site storage with 30-day retention. has_or_had_hypernym: range: BackupType - description: Parent backup type in the classification hierarchy. has_or_had_hyponym: range: BackupType multivalued: true @@ -92,16 +90,9 @@ classes: multivalued: true inlined: true inlined_as_list: true - description: 'Wikidata equivalence for this backup type concept. - - MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53. - - ' examples: - value: - qid: Q5227350 - label: data backup - description: Wikidata equivalence for backup concept annotations: specificity_score: '0.60' specificity_rationale: Backup types are relevant to all heritage custodians with digital assets. @@ -127,5 +118,4 @@ classes: Typically includes 30-day retention policy. - ' - description: Daily automated backup type definition + ' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/BayNumber.yaml b/schemas/20251121/linkml/modules/classes/BayNumber.yaml index f0cfce998c..4d1b4ea831 100644 --- a/schemas/20251121/linkml/modules/classes/BayNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/BayNumber.yaml @@ -33,13 +33,9 @@ classes: related_mappings: - schema:identifier slots: - - identifier_value - specificity_annotation - has_or_had_score slot_usage: - identifier_value: - required: true - description: The bay number/identifier value (string, may be numeric or alphanumeric). comments: - Storage bay identifier within a row/aisle - Part of hierarchical storage location addressing diff --git a/schemas/20251121/linkml/modules/classes/BindingType.yaml b/schemas/20251121/linkml/modules/classes/BindingType.yaml index a9e9ea89db..6c1cb7dd83 100644 --- a/schemas/20251121/linkml/modules/classes/BindingType.yaml +++ b/schemas/20251121/linkml/modules/classes/BindingType.yaml @@ -51,7 +51,6 @@ classes: pattern: ^https://nde\.nl/ontology/hc/binding-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/binding-type/full-leather - description: Full leather binding type has_or_had_code: range: string required: true @@ -77,7 +76,6 @@ classes: - value: Entire cover bound in leather, typically calfskin, goatskin, or morocco. has_or_had_hypernym: range: BindingType - description: Parent binding type in the classification hierarchy. has_or_had_hyponym: range: BindingType multivalued: true @@ -87,16 +85,9 @@ classes: multivalued: true inlined: true inlined_as_list: true - description: 'Wikidata equivalence for this binding type concept. - - MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53. - - ' examples: - value: - qid: Q188960 - label: bookbinding - description: Wikidata equivalence for binding types annotations: specificity_score: '0.70' specificity_rationale: Binding types are specific to bound volumes in libraries and archives. @@ -122,5 +113,4 @@ classes: or morocco. Common in fine bindings and historical books. - ' - description: Full leather binding type definition + ' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml b/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml index bc1837397d..03351ef8ff 100644 --- a/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml +++ b/schemas/20251121/linkml/modules/classes/BioCustodianSubtype.yaml @@ -97,9 +97,7 @@ classes: range: uriorcurie examples: - value: hc:BioCustodianSubtype/BOTANICAL_GARDEN - description: Standard botanical garden type - value: hc:BioCustodianSubtype/ZOOLOGICAL_GARDEN - description: Standard zoological park type has_or_had_label: required: true range: string @@ -114,20 +112,10 @@ classes: is_or_was_equivalent_to: required: false range: WikiDataIdentifier - description: Wikidata entity equivalent for this subtype (e.g., Q167346 for botanical garden). Replaces wikidata_id (Rule 53). examples: - value: - qid: Q167346 - label: botanical garden - description: botanical garden - value: - qid: Q43501 - label: zoo - description: zoo/zoological garden - value: - qid: Q2281788 - label: public aquarium - description: public aquarium comments: - Abstract base class for BioCustodianSubtypes hierarchy - Follows Type/Types naming convention (Rule 0b) diff --git a/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml b/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml index 289b313991..b21b19f873 100644 --- a/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml +++ b/schemas/20251121/linkml/modules/classes/BioCustodianSubtypes.yaml @@ -35,7 +35,6 @@ classes: has_or_had_label: Botanical Garden is_or_was_equivalent_to: - qid: Q167346 - description: Standard botanical garden type annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -62,7 +61,6 @@ classes: has_or_had_label: Arboretum is_or_was_equivalent_to: - qid: Q167951 - description: Arboretum subtype AlpineGardenSubtype: is_a: BioCustodianSubtype class_uri: hc:AlpineGardenSubtype @@ -131,7 +129,6 @@ classes: has_or_had_label: Zoological Garden is_or_was_equivalent_to: - qid: Q43501 - description: Standard zoo subtype WildlifeParkSubtype: is_a: BioCustodianSubtype class_uri: hc:WildlifeParkSubtype @@ -216,7 +213,6 @@ classes: has_or_had_label: Public Aquarium is_or_was_equivalent_to: - qid: Q2281788 - description: Standard aquarium subtype OceanariumSubtype: is_a: BioCustodianSubtype class_uri: hc:OceanariumSubtype diff --git a/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml b/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml index 841ca26d96..74050aa36f 100644 --- a/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml +++ b/schemas/20251121/linkml/modules/classes/BioCustodianType.yaml @@ -175,7 +175,6 @@ classes: - conservation_breeding - has_or_had_type - living_collection - - public_education - research_program - specificity_annotation - specimen_type @@ -186,33 +185,16 @@ classes: multivalued: true required: false has_or_had_quantity: - description: 'MIGRATED from collection_size per slot_fixes.yaml (Rule 53, 2026-01-19). - - Quantitative description of the living collection size using Quantity class. - - Can express species count, individual organisms, or both. - - Default unit is "item" (species count) or "specimen" (individual count). - - ' range: integer inlined: true multivalued: true required: false examples: - value: - quantity_value: 900 - quantity_type: COLLECTION_SIZE has_or_had_unit: - unit_value: species - description: Zoo species count - value: - quantity_value: 50000 - quantity_type: COLLECTION_SIZE has_or_had_unit: - unit_value: specimen is_estimate: true - description: Botanical garden specimen count living_collection: range: boolean required: true @@ -220,10 +202,6 @@ classes: range: string multivalued: true required: false - public_education: - range: string - multivalued: true - required: false conservation_breeding: range: string required: false diff --git a/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml b/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml index 53a0bca8f4..e2bca359c2 100644 --- a/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml +++ b/schemas/20251121/linkml/modules/classes/BioTypeClassification.yaml @@ -38,9 +38,7 @@ classes: range: uriorcurie examples: - value: hc:BioTypeClassification/BOTANICAL - description: Botanical institution classification - value: hc:BioTypeClassification/ZOOLOGICAL - description: Zoological institution classification has_or_had_label: required: true range: string @@ -54,7 +52,6 @@ classes: is_or_was_equivalent_to: required: false range: WikiDataIdentifier - description: Wikidata entity equivalent for this classification (if applicable). Replaces wikidata_id (Rule 53). comments: - Abstract base class for BioTypeClassifications hierarchy - Follows Type/Types naming convention (Rule 0b) diff --git a/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml b/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml index 6a35ea4956..4fd5fc8f19 100644 --- a/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml +++ b/schemas/20251121/linkml/modules/classes/BioTypeClassifications.yaml @@ -43,16 +43,12 @@ classes: ' slot_usage: - wikidata_id: - ifabsent: string(Q167346) has_or_had_label: ifabsent: string(Botanical Institution) examples: - value: has_or_had_identifier: hc:BioTypeClassification/BOTANICAL has_or_had_label: Botanical Institution - wikidata_id: Q167346 - description: Botanical institution classification annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration @@ -80,16 +76,12 @@ classes: ' slot_usage: - wikidata_id: - ifabsent: string(Q43501) has_or_had_label: ifabsent: string(Zoological Institution) examples: - value: has_or_had_identifier: hc:BioTypeClassification/ZOOLOGICAL has_or_had_label: Zoological Institution - wikidata_id: Q43501 - description: Zoological institution classification annotations: custodian_types: "['*']" AquaticInstitutionClassification: @@ -115,16 +107,12 @@ classes: ' slot_usage: - wikidata_id: - ifabsent: string(Q2281788) has_or_had_label: ifabsent: string(Aquatic Institution) examples: - value: has_or_had_identifier: hc:BioTypeClassification/AQUATIC has_or_had_label: Aquatic Institution - wikidata_id: Q2281788 - description: Aquatic institution classification annotations: custodian_types: "['*']" MixedBioInstitutionClassification: @@ -151,7 +139,6 @@ classes: - value: has_or_had_identifier: hc:BioTypeClassification/MIXED_BIO has_or_had_label: Mixed Biological Institution - description: Mixed biological institution classification annotations: custodian_types: "['*']" ConservationFocusedClassification: diff --git a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml index f2386c748e..936b145657 100644 --- a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml +++ b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml @@ -102,12 +102,7 @@ classes: - has_or_had_type - is_or_was_identified_through - has_or_had_identifier - - gbif_id - - genbank_accession - has_or_had_habitat - - higher_classification - - identification_qualifier - - identified_by - is_type_specimen - iucn_status - legal_provenance_note @@ -129,21 +124,12 @@ classes: - has_or_had_status slot_usage: is_or_was_associated_with: - description: MIGRATED from associated_taxa (Rule 53). Links biological object to associated taxa. Range narrowed to Taxon class. range: Taxon multivalued: true inlined_as_list: true examples: - value: https://nde.nl/ontology/hc/taxon/raphus-cucullatus - description: Associated with Dodo taxon has_or_had_identifier: - description: 'Identifiers for this biological object, including field numbers. - MIGRATED from field_number (2026-01-26). - Use has_or_had_type to distinguish identifier types: - - FieldNumber (dwc:fieldNumber) - - BOLDIdentifier (BOLD ID) - - WikiDataIdentifier (Wikidata Q-number) - ' range: uriorcurie multivalued: true inlined: true @@ -156,37 +142,19 @@ classes: - range: uriorcurie examples: - value: - identifier_value: ARW-1234 has_or_had_type: FieldNumber - description: Field number (was field_number) - value: id: https://nde.nl/ontology/hc/bold-id/NLNAT001-21 - identifier_value: NLNAT001-21 has_or_had_type: BOLDIdentifier - description: BOLD identifier (was bold_id) - value: - qid: Q193493 - label: Oxford Dodo has_or_had_type: WikiDataIdentifier - description: Wikidata identifier (from ExhibitedObject) has_or_had_label: - description: 'Scientific taxonomic name for this biological object. - MIGRATED from taxon_name per slot_fixes.yaml (Rule 53). - Uses TaxonName class for structured representation. - ' range: TaxonName inlined: true required: true examples: - value: - scientific_name: Raphus cucullatus (Linnaeus, 1758) - authorship: Linnaeus, 1758 - taxonomic_rank: SPECIES - description: Dodo with nomenclatural authority - value: - scientific_name: Panthera leo - taxonomic_rank: SPECIES - description: Lion (authority omitted) has_or_had_name: description: "Common/vernacular names for this biological object.\nMIGRATED from common_name and common_name_language per slot_fixes.yaml (Rule 53, 2026-01-22).\n\nUses Name class for structured representation including:\n- Name value (has_or_had_label)\n- Name type (has_or_had_type \u2192 NameType, e.g., CommonName)\n- Language (has_or_had_language)\n" required: false @@ -199,12 +167,10 @@ classes: has_or_had_label: Dodo has_or_had_type: CommonName has_or_had_language: en - description: English common name - value: has_or_had_label: Dronte has_or_had_type: CommonName has_or_had_language: nl - description: Dutch common name - value: has_or_had_label: Lion has_or_had_type: CommonName @@ -216,75 +182,37 @@ classes: has_or_had_rank: required: false range: string - description: 'Taxonomic rank of the identification. - MIGRATED from taxonomic_rank per slot_fixes.yaml (Rule 53/56, 2026-01-17). - ' examples: - value: SPECIES - value: SUBSPECIES - value: GENUS - description: When only identified to genus level has_or_had_authority: required: false range: TaxonomicAuthority inlined: true - description: 'Structured taxonomic authority information. - MIGRATED from taxonomic_authority per slot_fixes.yaml (Rule 53/56, 2026-01-16). - ' examples: - value: has_or_had_label: Linnaeus, 1758 has_or_had_author: - Carl Linnaeus - has_or_had_date: 1758 - is_or_was_recombined: false - nomenclatural_code: ICZN - description: Standard zoological authority - value: has_or_had_label: (Gray, 1821) has_or_had_author: - John Edward Gray - has_or_had_date: 1821 - is_or_was_recombined: true - description: Parentheses indicate recombination from original genus - higher_classification: - required: false - range: string - examples: - - value: Animalia|Chordata|Aves|Columbiformes|Columbidae|Raphus - description: Dodo classification has_or_had_comment: required: false range: string examples: - value: Previously classified as Didus ineptus - identification_qualifier: - required: false - range: string - examples: - - value: cf. - description: Uncertain, compare with named taxon - value: aff. - description: Related to but distinct from named taxon - identified_by: - required: false - range: string - multivalued: true - examples: - - value: Dr. Jane Smith is_or_was_identified_through: required: false range: IdentificationEvent inlined: true - description: 'Identification event for this specimen. - MIGRATED from date_identified per slot_fixes.yaml (Rule 53). - Uses IdentificationEvent class with temporal_extent for dates. - ' examples: - value: temporal_extent: begin_of_the_begin: '2020-03-15' - identified_by: - agent_name: Dr. Jane Smith description: 'Was date_identified: 2020-03-15' specimen_type: @@ -298,17 +226,12 @@ classes: range: boolean examples: - value: true - description: Type specimen has_or_had_status: range: TypeStatus inlined: true - description: 'Type status designation for this specimen. - MIGRATED 2026-01-14: Replaces type_status slot. - ' required: false examples: - value: "TypeStatus:\n status_value: \"Holotype of Raphus cucullatus Linnaeus, 1758\"\n status_type: \"nomenclatural\"\n" - description: Holotype status sex: required: false range: string @@ -337,7 +260,6 @@ classes: examples: - value: 1 - value: 50 - description: Lot of 50 insects on one pin/slide preservation_method: required: false range: PreservationMethodEnum @@ -369,7 +291,6 @@ classes: range: Acquisition inlined: true inlined_as_list: true - description: Acquisition event capturing when and how specimen was collected. Replaces simple collection_date with structured acquisition data. examples: - value: "acquisition_method: FIELD_COLLECTION\ntemporal_extent:\n begin_of_the_begin: \"2020-06-15\"\n end_of_the_end: \"2020-06-15\"\nacquisition_date_text: \"2020-06-15\"\n" - value: "acquisition_method: FIELD_COLLECTION\ntemporal_extent:\n begin_of_the_begin: \"2020-06-01\"\n end_of_the_end: \"2020-07-31\"\nacquisition_date_text: \"2020-06/2020-07\"\nacquisition_notes: \"Collected sometime in June-July 2020\"\n" @@ -378,8 +299,6 @@ classes: required: false range: CustodianPlace inlined: true - description: 'Structured location where specimen was collected. MIGRATED from collection_location per slot_fixes.yaml (Rule 53, 2026-01-19). - Uses CustodianPlace for detailed location including coordinates.' examples: - value: place_name: Mauritius @@ -391,22 +310,11 @@ classes: range: Locality inlined: true inlined_as_list: true - description: 'Verbatim locality description as recorded on specimen label. MIGRATED from collection_locality_text per slot_fixes.yaml (Rule 53, 2026-01-19). - Uses Locality class for structured representation including original text, language, and provenance.' examples: - value: - verbatim_text: Mauritius, near Port Louis, in forest - original_language: en - description: Locality for Dodo specimen - value: verbatim_text: 'Indonesia: Java: Mt. Gede, 1500m' - original_language: en - interpretation_notes: Mt. Gede is Gunung Gede volcano - description: Indonesian specimen with elevation is_or_was_acquired_by: - description: 'The person(s) or organization(s) who collected this specimen. - Migrated from collector per slot_fixes.yaml revision. - ' required: false range: Agent multivalued: true @@ -414,15 +322,7 @@ classes: inlined_as_list: true examples: - value: - agent_name: Alfred Russel Wallace - agent_type: person - agent_role: collector - description: Victorian naturalist collector - value: - agent_name: Charles Darwin - agent_type: person - agent_role: collector - description: HMS Beagle expedition collector has_or_had_habitat: required: false range: Habitat @@ -435,10 +335,6 @@ classes: has_or_had_label: Coral reef has_or_had_description: Depth 15m has_or_had_hypernym: - description: 'Associated taxon (e.g. host, parasite) relationship. - MIGRATED from has_associated_taxon per slot_fixes.yaml (Rule 53). - Uses Taxon class. - ' required: false range: Taxon multivalued: true @@ -448,7 +344,6 @@ classes: - value: has_or_had_label: Quercus robur description: host:Quercus robur - description: Insect collected from oak tree - value: has_or_had_label: Cervus elaphus description: parasite of:Cervus elaphus @@ -457,13 +352,8 @@ classes: range: string examples: - value: EX - description: Extinct (e.g., Dodo) - value: CR - description: Critically Endangered is_or_was_listed_in: - description: 'CITES (Convention on International Trade in Endangered Species) listing. MIGRATED from cites_appendix per slot_fixes.yaml (Rule 53, 2026-01-19). - Uses CITESAppendix class for structured representation including appendix level, listing date, and exemption notes. - Important for legal compliance in specimen transfers between institutions.' range: CITESAppendix inlined: true required: false @@ -471,32 +361,14 @@ classes: - value: has_or_had_type: APPENDIX_I has_or_had_label: CITES Appendix I - Most Endangered - listing_effective_date: '1975-07-01' - species_covered: Loxodonta africana - description: African elephant - highest CITES protection - value: has_or_had_type: NOT_LISTED has_or_had_label: Not regulated under CITES - species_covered: Raphus cucullatus - exemption_note: Extinct species - historical specimens pre-date CITES - description: Dodo - extinct, not subject to CITES restrictions legal_provenance_note: required: false range: string examples: - value: 'Collected pre-CITES (1975). Import permit #12345.' - gbif_id: - required: false - range: string - examples: - - value: https://www.gbif.org/occurrence/1234567890 - genbank_accession: - required: false - range: string - multivalued: true - examples: - - value: MW123456 - - value: MN987654 has_or_had_type: equals_expression: '["hc:BioCustodianType", "hc:MuseumType", "hc:ResearchOrganizationType"]' comments: @@ -516,9 +388,6 @@ classes: object_name: Oxford Dodo object_description: "The only surviving dodo soft tissue - a head with preserved skin and \\nfeathers, plus associated\\\n \\ foot. The most complete dodo specimen known.\\nDonated by Elias Ashmole in 1683.\\n" has_or_had_label: - scientific_name: Raphus cucullatus (Linnaeus, 1758) - authorship: Linnaeus, 1758 - taxonomic_rank: SPECIES has_or_had_name: - has_or_had_label: Dodo has_or_had_type: CommonName @@ -527,18 +396,15 @@ classes: has_or_had_type: CommonName has_or_had_language: nl has_or_had_rank: SPECIES - higher_classification: Animalia|Chordata|Aves|Columbiformes|Columbidae|Raphus part_type: - HEAD - FOOT preservation_method: DRIED_WHOLE was_acquired_through: - acquisition_method: FIELD_COLLECTION - acquisition_date_text: pre-1662 temporal_extent: begin_of_the_begin: '1600-01-01' end_of_the_end: '1662-12-31' - notes: Pre-1662 (before Great Fire of London destroyed records) has_or_had_place: place_name: Mauritius country: MU @@ -547,8 +413,6 @@ classes: accession_number: OUM 11605 has_or_had_identifier: - qid: Q193493 - label: Oxford Dodo - description: Oxford Dodo - most complete dodo specimen, Oxford University Museum - value: object_id: https://nde.nl/ontology/hc/object/naturalis-megatherium object_name: Megatherium skeleton @@ -556,9 +420,6 @@ classes: One of the finest examples of this extinct megafauna. ' has_or_had_label: - scientific_name: Megatherium americanum Cuvier, 1796 - authorship: Cuvier, 1796 - taxonomic_rank: SPECIES has_or_had_name: - has_or_had_label: Giant Ground Sloth has_or_had_type: CommonName @@ -569,19 +430,14 @@ classes: preservation_method: FOSSIL_PREPARED describes_or_described: - verbatim_text: Argentina, Buenos Aires Province - original_language: en iucn_status: EX current_keeper: https://nde.nl/ontology/hc/custodian/nl/naturalis - description: Megatherium skeleton at Naturalis Biodiversity Center - value: object_id: https://nde.nl/ontology/hc/object/kew-type-specimen object_name: Quercus robur type specimen object_description: 'Herbarium type specimen of English Oak collected by Linnaeus. ' has_or_had_label: - scientific_name: Quercus robur L. - authorship: L. - taxonomic_rank: SPECIES has_or_had_name: - has_or_had_label: English Oak has_or_had_type: CommonName @@ -594,30 +450,22 @@ classes: has_or_had_label: Linnaeus, 1753 has_or_had_author: - Carl Linnaeus - has_or_had_date: 1753 - nomenclatural_code: ICN specimen_type: LECTOTYPE is_type_specimen: true has_or_had_status: status_value: Lectotype of Quercus robur L., designated by Schwarz (1936) - status_type: nomenclatural part_type: - LEAF - FLOWER preservation_method: DRIED_PRESSED was_acquired_through: - acquisition_method: FIELD_COLLECTION - acquisition_date_text: 1750s temporal_extent: begin_of_the_begin: '1750-01-01' end_of_the_end: '1759-12-31' - notes: Collected by Linnaeus in the 1750s is_or_was_acquired_by: - agent_name: Carl Linnaeus - agent_type: person - agent_role: collector current_keeper: https://nde.nl/ontology/hc/custodian/uk/royal-botanic-gardens-kew - description: Oak type specimen at Royal Botanic Gardens, Kew annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BirthDate.yaml b/schemas/20251121/linkml/modules/classes/BirthDate.yaml index 75dca20c2e..3ab226300d 100644 --- a/schemas/20251121/linkml/modules/classes/BirthDate.yaml +++ b/schemas/20251121/linkml/modules/classes/BirthDate.yaml @@ -58,23 +58,16 @@ classes: description: 'Source reference for the birth date information. MIGRATED 2026-01-22: Replaces birth_source_text with structured Reference. Reference.citation_text preserves original verbatim source text.' examples: - value: - citation_text: born in the year of our Lord 1823 source_type: parish_register - source_location: Amsterdam Stadsarchief, DTB 456 - description: Parish register reference - value: - citation_text: ca. 1750 source_type: biography - description: Biographical reference with approximate date is_inferred: range: boolean required: false ifabsent: 'false' - description: Whether this birth date was inferred (vs. directly extracted). If true, inference_provenance MUST be provided per Rule 45. inference_provenance: range: string required: false - description: JSON string documenting inference chain per Rule 45. Required when is_inferred is true. examples: - value: '{"method": "earliest_education_heuristic", "inference_chain": [...]}' is_or_was_generated_by: @@ -87,13 +80,11 @@ classes: has_or_had_score: has_or_had_score: 0.95 has_or_had_method: document_extraction - description: High confidence date extraction - value: has_or_had_score: has_or_had_score: 0.5 has_or_had_method: education_inference has_or_had_description: Inferred from education start year - description: Low confidence inferred date temporal_extent: range: TimeSpan required: true @@ -112,17 +103,14 @@ classes: has_or_had_notation: '1970-08-15' begin_of_the_begin: '1970-08-15T00:00:00Z' end_of_the_end: '1970-08-15T23:59:59Z' - description: Full date known - EDTF and TimeSpan bounds - value: has_or_had_notation: 197X begin_of_the_begin: '1970-01-01T00:00:00Z' end_of_the_end: '1979-12-31T23:59:59Z' - description: Decade known (1970s) - EDTF with 10-year range - value: has_or_had_notation: 1970~ begin_of_the_begin: '1968-01-01T00:00:00Z' end_of_the_end: '1972-12-31T23:59:59Z' - description: Approximate (circa 1970) - EDTF with uncertainty range comments: - "MIGRATED 2026-01-22: birth_edtf, birth_iso_date \u2192 temporal_extent.has_or_had_notation" - TimeSpan provides CIDOC-CRM E52 temporal bounds with EDTF notation preservation @@ -142,7 +130,6 @@ classes: has_or_had_score: has_or_had_score: 0.95 has_or_had_method: birth_certificate_extraction - description: Full date known with high confidence - value: temporal_extent: has_or_had_notation: 197X @@ -154,7 +141,6 @@ classes: has_or_had_score: has_or_had_score: 0.4 has_or_had_method: education_inference - description: Decade inferred from education start year - value: temporal_extent: has_or_had_notation: '1823' @@ -163,13 +149,11 @@ classes: has_or_had_reference: - citation_text: born in the year of our Lord 1823 source_type: parish_register - source_location: Amsterdam Stadsarchief, DTB 456, folio 23r is_inferred: false is_or_was_generated_by: has_or_had_score: has_or_had_score: 0.75 has_or_had_method: document_extraction - description: Year extracted from historical document with structured reference annotations: specificity_score: 0.45 specificity_rationale: Birth dates are relevant for person research across all heritage sectors. @@ -179,10 +163,6 @@ enums: description: Confidence levels for birth date values. permissible_values: HIGH: - description: Full date from authoritative source (e.g., birth certificate) MEDIUM: - description: Date from reliable source (e.g., official biography) LOW: - description: Date inferred or from uncertain source - VERY_LOW: - description: Decade/century estimated from indirect evidence + VERY_LOW: \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/BirthPlace.yaml b/schemas/20251121/linkml/modules/classes/BirthPlace.yaml index 9746d6e3fe..2d528ab1ef 100644 --- a/schemas/20251121/linkml/modules/classes/BirthPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/BirthPlace.yaml @@ -47,7 +47,6 @@ classes: - modern_place_name - country_code - region_code - - geonames_id - has_or_had_identifier - coordinates - place_source_text @@ -57,60 +56,40 @@ classes: place_name: range: string required: true - description: Name of the birth place as recorded in source. May be historical name that has since changed. examples: - value: Amsterdam - description: Current name - value: Batavia - description: Historical name (now Jakarta) modern_place_name: range: string required: false - description: Modern equivalent name if place_name is historical. Leave null if place_name is current. examples: - value: Jakarta - description: Modern name for Batavia country_code: range: string required: false pattern: ^[A-Z]{2}$ - description: ISO 3166-1 alpha-2 country code. examples: - value: NL - value: ID region_code: range: string required: false - description: ISO 3166-2 region/province code or GeoNames admin1 code. examples: - value: NH - description: Noord-Holland - geonames_id: - range: integer - required: false - description: GeoNames geographic identifier for the place. Authoritative source per AGENTS.md. - examples: - value: 2759794 - description: Amsterdam GeoNames ID has_or_had_identifier: range: WikiDataIdentifier required: false - description: Wikidata entity identifier for the place. MIGRATED from wikidata_id (Rule 53). examples: - value: - qid: Q727 - description: Amsterdam Wikidata ID coordinates: range: string required: false - description: Geographic coordinates as "lat,lon" string. examples: - value: 52.3676,4.9041 - description: Amsterdam coordinates place_source_text: range: string required: false - description: Original place text from source document, preserved verbatim. Useful when source contains additional context. examples: - value: born at the family estate in rural Gelderland comments: @@ -125,25 +104,18 @@ classes: place_name: Amsterdam country_code: NL region_code: NH - geonames_id: 2759794 has_or_had_identifier: - qid: Q727 coordinates: 52.3676,4.9041 - description: Birth place with full geographic resolution - value: place_name: Batavia modern_place_name: Jakarta country_code: ID - geonames_id: 1642911 has_or_had_identifier: - qid: Q3630 - description: Historical place name with modern equivalent - value: place_name: rural Gelderland country_code: NL region_code: GE place_source_text: born at the family estate in rural Gelderland - description: Imprecise location from archival source annotations: specificity_score: 0.45 specificity_rationale: Birth places are relevant for person research across heritage sectors. diff --git a/schemas/20251121/linkml/modules/classes/Bookplate.yaml b/schemas/20251121/linkml/modules/classes/Bookplate.yaml index 818b6f0af3..e1b88341d0 100644 --- a/schemas/20251121/linkml/modules/classes/Bookplate.yaml +++ b/schemas/20251121/linkml/modules/classes/Bookplate.yaml @@ -39,36 +39,19 @@ classes: - crm:E37_Mark - schema:Thing slots: - - id - has_or_had_label - has_or_had_description - has_or_had_owner - specificity_annotation - has_or_had_score slot_usage: - id: - identifier: true - required: true - range: uriorcurie - pattern: ^https://nde\.nl/ontology/hc/bookplate/[a-z0-9-]+$ - examples: - - value: https://nde.nl/ontology/hc/bookplate/kb-exlibris-001 - description: KB bookplate record has_or_had_label: - description: Text or name on the bookplate. range: string required: true examples: - value: Ex Libris Johann Wolfgang von Goethe - description: Goethe's bookplate - value: Bibliotheca Regia - description: Royal library bookplate - description: - range: string - examples: - - value: Armorial bookplate with three lions, gilt border, 18th century has_or_had_owner: - description: Person or institution who owned the book according to this bookplate. range: string examples: - value: Johann Wolfgang von Goethe @@ -81,9 +64,7 @@ classes: - value: id: https://nde.nl/ontology/hc/bookplate/kb-exlibris-goethe-001 has_or_had_label: Ex Libris J.W. von Goethe - description: Armorial bookplate with oak wreath, early 19th century has_or_had_owner: Johann Wolfgang von Goethe - description: Goethe bookplate in rare book collection annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BoundingBox.yaml b/schemas/20251121/linkml/modules/classes/BoundingBox.yaml index 29d4f6d88f..3eacfac5b2 100644 --- a/schemas/20251121/linkml/modules/classes/BoundingBox.yaml +++ b/schemas/20251121/linkml/modules/classes/BoundingBox.yaml @@ -26,7 +26,6 @@ classes: slot_usage: has_or_had_coordinates: range: PlanarCoordinates - description: Origin coordinates (x, y) of the bounding box. required: true annotations: specificity_score: 0.1 diff --git a/schemas/20251121/linkml/modules/classes/BoxNumber.yaml b/schemas/20251121/linkml/modules/classes/BoxNumber.yaml index e8b87c821e..652fc8a99c 100644 --- a/schemas/20251121/linkml/modules/classes/BoxNumber.yaml +++ b/schemas/20251121/linkml/modules/classes/BoxNumber.yaml @@ -46,7 +46,6 @@ classes: numeric_value: required: true minimum_value: 1 - description: The box number (position on shelf or inventory number). comments: - Storage box position identifier - Typically integer representing shelf position or inventory number diff --git a/schemas/20251121/linkml/modules/classes/BranchOffice.yaml b/schemas/20251121/linkml/modules/classes/BranchOffice.yaml index 3d456cd46c..5d5410baca 100644 --- a/schemas/20251121/linkml/modules/classes/BranchOffice.yaml +++ b/schemas/20251121/linkml/modules/classes/BranchOffice.yaml @@ -56,7 +56,6 @@ classes: - has_or_had_label - has_or_had_service_area - has_or_had_quantity - - has_local_collection - is_public_facing - operating_hour - services_offered @@ -69,78 +68,52 @@ classes: range: uriorcurie required: true identifier: true - description: Unique identifier for this branch office. MIGRATED from branch_office_id (2026-01-14) per Rule 53. examples: - value: https://nde.nl/ontology/hc/aux/nha-zaanstreek-branch - description: Noord-Hollands Archief regional branch has_or_had_label: range: string required: true multivalued: false - description: Name of this branch office. MIGRATED from branch_office_name (2026-01-14) per Rule 53. Typically includes parent organization name + branch location/function. examples: - value: Noord-Hollands Archief - Zaanstreek-Waterland - description: Regional archive branch - value: Rijksmuseum Schiphol - description: Airport exhibition branch - value: Universiteitsbibliotheek Science Park - description: University library satellite has_or_had_description: range: string - description: Description of this branch office, including services offered, target audience, and distinguishing features. MIGRATED from branch_office_description (2026-01-15) per Rule 53. examples: - value: Regional branch serving Zaanstreek-Waterland area. Holds municipal records from Zaandam, Wormerland, Purmerend. Open to researchers Tuesday-Thursday. - description: Archive branch description has_or_had_service_area: range: ServiceArea inlined: true - description: Geographic area or community served by this branch. MIGRATED from branch_service_area (Rule 53) - changed from string to ServiceArea class for richer geographic modeling. examples: - value: service_area_id: https://nde.nl/ontology/hc/servicearea/zaanstreek-waterland service_area_name: Zaanstreek-Waterland region service_area_type: REGIONAL - description: Regional coverage as structured ServiceArea is_public_facing: range: boolean required: true ifabsent: 'true' examples: - value: true - description: Public-facing branch services_offered: range: string multivalued: true examples: - value: Archival research access - description: Core research service - value: Genealogical consultations - description: Specialized service - value: Local history reference - description: Reference service operating_hour: range: string examples: - value: Tu-Th 09:00-17:00 - description: Limited weekday hours has_or_had_quantity: range: integer inlined: true - description: Quantified values associated with this branch office (e.g., staff count). MIGRATED from branch_staff_count (Rule 53) - changed from integer to Quantity class for richer measurement context (units, dates, estimates). examples: - value: - quantity_value: 3 - quantity_type: STAFF_COUNT - quantity_unit: FTE has_or_had_description: Staff assigned to this branch - quantity_date: '2025-01-01' is_estimate: false - description: Branch staff count as structured Quantity - has_local_collection: - range: boolean - examples: - - value: true - description: Branch holds local municipal records is_or_was_derived_from: range: CustodianObservation multivalued: true @@ -174,12 +147,7 @@ classes: - Local history reference operating_hours: Tu-Th 09:00-17:00 has_or_had_quantity: - quantity_value: 3 - quantity_type: STAFF_COUNT - quantity_unit: FTE has_or_had_description: Staff assigned to Zaanstreek-Waterland branch - has_local_collection: true - description: Regional archive branch - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux/rijksmuseum-schiphol has_or_had_label: Rijksmuseum Schiphol @@ -194,12 +162,7 @@ classes: - Museum shop operating_hours: Daily 07:00-20:00 has_or_had_quantity: - quantity_value: 5 - quantity_type: STAFF_COUNT - quantity_unit: FTE has_or_had_description: Staff assigned to Schiphol branch - has_local_collection: false - description: Museum airport branch annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BranchType.yaml b/schemas/20251121/linkml/modules/classes/BranchType.yaml index 6276cf6d23..47e9b1b410 100644 --- a/schemas/20251121/linkml/modules/classes/BranchType.yaml +++ b/schemas/20251121/linkml/modules/classes/BranchType.yaml @@ -52,7 +52,6 @@ classes: pattern: ^https://nde\.nl/ontology/hc/branch-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/branch-type/regional-office - description: Regional office branch type has_or_had_code: range: string required: true @@ -78,7 +77,6 @@ classes: - value: Geographic regional branch serving local community. has_or_had_hypernym: range: BranchType - description: Parent branch type in the classification hierarchy. has_or_had_hyponym: range: BranchType multivalued: true @@ -88,16 +86,9 @@ classes: multivalued: true inlined: true inlined_as_list: true - description: 'Wikidata equivalence for this branch type concept. - - MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53. - - ' examples: - value: - qid: Q4830453 - label: organizational unit - description: Wikidata equivalence for organizational branch types annotations: specificity_score: '0.55' specificity_rationale: Branch types are moderately specific - relevant for organizational structure. @@ -123,5 +114,4 @@ classes: May provide full or partial services of parent organization. - ' - description: Regional office branch type definition + ' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Budget.yaml b/schemas/20251121/linkml/modules/classes/Budget.yaml index 7360b27776..9f3160860d 100644 --- a/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -87,8 +87,6 @@ classes: - schema:MonetaryAmount - frapo:hasFunding slots: - - has_or_had_acquisition_budget - - has_approval_date - is_or_was_approved_by - has_or_had_currency - has_or_had_description @@ -100,7 +98,6 @@ classes: - has_or_had_endowment_draw - includes_or_included - temporal_extent - - id - innovation_budget - internal_funding - managing_unit @@ -118,47 +115,28 @@ classes: - is_or_was_generated_by - is_or_was_documented_by slot_usage: - id: - identifier: true - required: true has_or_had_label: range: string required: true description: Name/title for this budget document. MIGRATED from budget_name (2026-01-15) per Rule 53. Maps to dcterms:title as a formal title for a financial planning resource. examples: - value: Rijksmuseum Operating Budget FY2024 - description: Major museum annual budget - value: Noord-Hollands Archief Annual Budget 2024-2025 - description: Provincial archive budget has_or_had_description: range: string required: false description: Narrative description of this budget document's scope and purpose. MIGRATED from budget_description (2026-01-15) per Rule 53. Maps to dcterms:description for financial planning documentation. examples: - value: Annual operating budget for fiscal year 2024, including major exhibition initiatives and digitization expansion. - description: Comprehensive budget description has_or_had_type: range: uriorcurie multivalued: true required: true - description: 'Type(s) of budget classification. - MIGRATED from budget_type (2026-01-13). - Uses BudgetType class hierarchy for rich type semantics. - Common types: OperatingBudget, CapitalBudget, ProjectBudget, - AcquisitionBudget, ConservationBudget. - ' examples: - value: - OperatingBudget - ConsolidatedBudget - description: Institution-wide operating budget temporal_extent: - description: 'Validity period for this budget using CIDOC-CRM TimeSpan. - MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53). - Use begin_of_the_begin for budget effective date (was valid_from). - Use end_of_the_end for budget expiration date (was valid_to). - For precise dates, set begin_of_the_begin == end_of_the_begin. - ' range: TimeSpan inlined: true required: false @@ -168,40 +146,29 @@ classes: end_of_the_begin: '2024-01-01' begin_of_the_end: '2024-12-31' end_of_the_end: '2024-12-31' - description: Calendar year budget with precise start/end - value: begin_of_the_begin: '2024-04-01' end_of_the_begin: '2024-04-01' begin_of_the_end: '2025-03-31' end_of_the_end: '2025-03-31' - description: Government fiscal year budget (Apr-Mar) has_or_had_quantity: range: decimal required: false - description: 'Total monetary amount for this budget. - FIXED: Previously used has_or_had_budget which has range: Budget - (for linking TO budgets). Now uses total_amount slot which has - range: decimal (for the actual monetary value). - ' examples: - value: 45000000.0 - description: EUR 45 million annual budget has_or_had_currency: range: Currency inlined: true required: true - description: Currency for all monetary amounts in this budget. MIGRATED from budget_currency (Rule 53) - changed from string to Currency class for richer currency metadata (ISO 4217 code, symbol, name). examples: - value: currency_code: EUR has_or_had_label: Euro currency_symbol: "\u20AC" - description: Euro currency as structured Currency object - value: currency_code: USD has_or_had_label: US Dollar currency_symbol: $ - description: US Dollar currency operating_budget: range: decimal required: false @@ -209,20 +176,11 @@ classes: range: MainPart inlined: true required: false - description: 'Capital budget allocation (infrastructure, equipment, major purchases). - MIGRATED from capital_budget per slot_fixes.yaml (Rule 53, 2026-01-22). - MainPart provides structured representation with Quantity for amount and currency metadata. - ' examples: - value: has_or_had_quantity: - quantity_value: 3000000.0 part_type: capital_budget currency_code: EUR - description: Capital budget of 3 million EUR - has_or_had_acquisition_budget: - range: decimal - required: false personnel_budget: range: decimal required: false @@ -234,7 +192,6 @@ classes: required: false multivalued: true inlined: true - description: Budget allocated for digitization activities. MIGRATED from digitization_budget (2026-01-25) per Rule 53. innovation_budget: range: decimal required: false @@ -242,33 +199,21 @@ classes: range: string multivalued: true inlined: true - description: External funding sources and amounts. MIGRATED from external_funding (2026-01-26). internal_funding: range: decimal required: false has_or_had_endowment_draw: range: decimal required: false - description: Amount drawn from endowment fund. MIGRATED from endowment_draw per Rule 53 (2026-01-26). - has_approval_date: - range: date - required: false is_or_was_approved_by: - description: Agent (person/organization) that approved this budget. MIGRATED from approved_by (2026-01-15) per Rule 39. Range changed from string to Approver class for structured approval tracking. range: Approver required: false has_or_had_status: - description: 'MIGRATED from budget_status (Rule 53). - Current status of this budget in its lifecycle. - Uses BudgetStatus class for structured status tracking. - ' range: BudgetStatus required: true examples: - value: '{value: "ACTIVE", is_or_was_effective_at: "2024-01-01"}' - description: Budget currently in effect - value: '{value: "DRAFT", is_or_was_effective_at: "2023-10-01"}' - description: Budget under development revision_number: range: integer required: false @@ -276,17 +221,12 @@ classes: range: date required: false is_or_was_documented_by: - description: 'Financial statements (actuals) documenting this budget (plan). - MIGRATED from documented_by string slot (2026-01-26). - Now links to FinancialStatement class. - ' range: FinancialStatement multivalued: true inlined: false required: false examples: - value: https://nde.nl/ontology/hc/financial/rijksmuseum-annual-report-2024 - description: Annual report auditing 2024 budget refers_to_custodian: range: Custodian required: true @@ -326,7 +266,6 @@ classes: operating_budget: 38000000.0 has_or_had_main_part: has_or_had_quantity: - quantity_value: 3000000.0 part_type: capital_budget currency_code: EUR acquisition_budget: 2000000.0 @@ -340,7 +279,6 @@ classes: innovation_budget: 750000.0 includes_or_included: - has_or_had_quantity: - quantity_value: 15000000.0 has_or_had_label: External Grants & Subsidies internal_funding: 25000000.0 has_or_had_endowment_draw: 5000000.0 @@ -352,7 +290,6 @@ classes: value: ACTIVE is_or_was_effective_at: '2024-01-01' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804 - description: Major museum annual operating budget - value: id: https://nde.nl/ontology/hc/budget/nha/fy2024-2025 has_or_had_label: Noord-Hollands Archief Annual Budget 2024-2025 @@ -371,7 +308,6 @@ classes: operating_budget: 7500000.0 has_or_had_main_part: has_or_had_quantity: - quantity_value: 500000.0 part_type: capital_budget currency_code: EUR personnel_budget: 5200000.0 @@ -382,7 +318,6 @@ classes: has_or_had_label: EUR includes_or_included: - has_or_had_quantity: - quantity_value: 6000000.0 has_or_had_label: Province Subsidy internal_funding: 2500000.0 is_or_was_approved_on: @@ -393,7 +328,6 @@ classes: value: ACTIVE is_or_was_effective_at: '2024-04-01' refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-haa-a-nha - description: Regional archive government-funded budget annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml b/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml index 3ebef1191c..ada021bc62 100644 --- a/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/BudgetStatus.yaml @@ -34,16 +34,10 @@ classes: related_mappings: - dcterms:status slots: - - identifier_value - is_or_was_effective_at - specificity_annotation - has_or_had_score slot_usage: - identifier_value: - required: true - description: 'The budget status value. - Valid values: DRAFT, PROPOSED, APPROVED, ACTIVE, REVISED, CLOSED, REJECTED, SUPERSEDED - ' comments: - Budget lifecycle status tracking - Supports audit trail of budget state changes diff --git a/schemas/20251121/linkml/modules/classes/BudgetType.yaml b/schemas/20251121/linkml/modules/classes/BudgetType.yaml index 564ab01aa1..5b2fe70532 100644 --- a/schemas/20251121/linkml/modules/classes/BudgetType.yaml +++ b/schemas/20251121/linkml/modules/classes/BudgetType.yaml @@ -47,7 +47,6 @@ classes: pattern: ^https://nde\.nl/ontology/hc/budget-type/[a-z0-9-]+$ examples: - value: https://nde.nl/ontology/hc/budget-type/operating - description: Operating budget type has_or_had_code: range: string required: true @@ -73,7 +72,6 @@ classes: - value: Day-to-day operational expenses including staff, utilities, and supplies. has_or_had_hypernym: range: BudgetType - description: Parent budget type in the classification hierarchy. has_or_had_hyponym: range: BudgetType multivalued: true @@ -83,16 +81,9 @@ classes: multivalued: true inlined: true inlined_as_list: true - description: 'Wikidata equivalence for this budget type concept. - - MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53. - - ' examples: - value: - qid: Q178848 - label: budget - description: Wikidata equivalence for budget concept annotations: specificity_score: '0.45' specificity_rationale: Budget types are moderately specific - relevant for financial management. @@ -115,5 +106,4 @@ classes: supplies, and ongoing maintenance. - ' - description: Operating budget type definition + ' \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml b/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml index c24f9d45e4..97d9ff8446 100644 --- a/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml +++ b/schemas/20251121/linkml/modules/classes/BusinessCriticality.yaml @@ -32,42 +32,30 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - description: Criticality level label (CRITICAL, HIGH, MEDIUM, LOW). required: true examples: - value: CRITICAL - description: Institution cannot function without this (hours to impact) - value: HIGH - description: Significant impact if unavailable (days to impact) - value: MEDIUM - description: Important but workarounds exist (weeks to impact) - value: LOW - description: Minimal operational impact has_or_had_description: - description: Explanation of criticality assessment. required: false examples: - value: Financial system required for daily operations, payroll processing - description: Why system is CRITICAL - value: Historical project files, reference only, no operational dependency - description: Why system is MEDIUM examples: - value: has_or_had_label: CRITICAL has_or_had_description: Financial system - required for operations, payroll cannot be processed without - description: Critical financial system - value: has_or_had_label: HIGH has_or_had_description: Director's correspondence - important for decision continuity - description: High-priority communications - value: has_or_had_label: MEDIUM has_or_had_description: Historical project files - reference only, operational workarounds exist - description: Medium-priority archives - value: has_or_had_label: LOW has_or_had_description: Promotional materials archive - minimal impact on operations - description: Low-priority materials annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/BusinessModel.yaml b/schemas/20251121/linkml/modules/classes/BusinessModel.yaml index 83827dbcab..90255d8f74 100644 --- a/schemas/20251121/linkml/modules/classes/BusinessModel.yaml +++ b/schemas/20251121/linkml/modules/classes/BusinessModel.yaml @@ -31,42 +31,30 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - description: Short label for business model type. required: true examples: - value: For-profit brand attraction - description: Heineken Experience model - value: Corporate archive, parent company funded - description: Ford Motor archive model - value: Brand heritage center - description: Coca-Cola World of Coke model has_or_had_description: - description: Detailed business model description including revenue sources, ownership structure, profitability, and reporting. required: false examples: - value: For-profit brand attraction, Admission fees, Merchandise, Marketing budget - description: Full business model description - value: Corporate archive within business, Fully funded by parent company, No public access - description: Internal corporate archive model - value: Brand heritage center, Event venue rental, Corporate hospitality, Tourism revenue - description: Brand heritage center model examples: - value: has_or_had_label: For-profit brand attraction has_or_had_description: "Admission fees (\u20AC21), Merchandise sales, Beer tasting experiences, Event venue rental. Reports to Marketing division." - description: Heineken Experience business model - value: has_or_had_label: Corporate archive has_or_had_description: Fully funded by parent company, No direct revenue, Serves internal research and legal compliance needs - description: Ford Motor Company Archive model - value: has_or_had_label: Brand heritage center has_or_had_description: Event venue rental, Corporate hospitality, Tourism revenue, Integrated with brand marketing budget - description: Coca-Cola World of Coke model - value: has_or_had_label: Factory museum has_or_had_description: Visitor fees supplement production operations, Marketing tool for brand awareness, Tours integrated with factory operations - description: Factory museum business model annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml b/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml index 7c9dd2d3fb..42f60cfa9b 100644 --- a/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml +++ b/schemas/20251121/linkml/modules/classes/CITESAppendix.yaml @@ -29,71 +29,33 @@ classes: - has_or_had_label slot_usage: has_or_had_type: - description: The CITES appendix level (APPENDIX_I, APPENDIX_II, APPENDIX_III, or NOT_LISTED). range: string required: true pattern: ^(APPENDIX_I|APPENDIX_II|APPENDIX_III|NOT_LISTED)$ examples: - value: APPENDIX_I - description: Highest protection - species threatened with extinction - value: APPENDIX_II - description: Moderate protection - trade must be controlled - value: APPENDIX_III - description: Protected in at least one country requesting cooperation - value: NOT_LISTED - description: Species not regulated under CITES has_or_had_label: - description: Human-readable description of the CITES listing status. range: string required: false examples: - value: CITES Appendix I - Trade Prohibited - value: CITES Appendix II - Trade Regulated attributes: - listing_effective_date: - deprecated: Use is_or_was_effective_at (Rule 53, 2026-01-26) - description: 'DEPRECATED 2026-01-26: Use is_or_was_effective_at instead. Date when the species was added to this CITES appendix.' - range: date - required: false is_or_was_effective_at: range: date required: false - description: Date when the CITES listing became effective. MIGRATED from listing_effective_date (2026-01-26). examples: - value: '1975-07-01' - description: Original CITES listing - value: '2019-08-28' - description: Added at CoP18 - listing_authority: - description: Authority responsible for the listing (typically CITES Secretariat or a specific Conference of the Parties decision). - range: string - required: false - examples: - value: CITES Secretariat - value: CoP18 Decision 18.219 - species_covered: - description: Scientific name of the species covered by this listing. May be at species, genus, or family level. - range: string - required: false - examples: - value: Raphus cucullatus - description: Extinct dodo (historical listing) - value: Elephantidae - description: All elephant species (family-level listing) - population_specific: - description: Indicates if the listing applies to a specific population rather than the entire species. Some CITES listings are population-specific. - range: boolean - required: false - examples: - value: true - description: Population-specific listing (e.g., African elephant populations) - value: false - description: Applies to all populations of the species - exemption_note: - description: Notes on any exemptions or special provisions that apply. - range: string - required: false - examples: - value: Pre-Convention specimens exempt with documentation - value: Captive-bred specimens listed as Appendix II exact_mappings: @@ -108,17 +70,9 @@ classes: has_or_had_type: APPENDIX_I has_or_had_label: CITES Appendix I - Most Endangered is_or_was_effective_at: '1975-07-01' - listing_authority: CITES Secretariat - species_covered: Loxodonta africana - population_specific: true - exemption_note: Some populations listed in Appendix II - description: African elephant CITES listing - value: has_or_had_type: NOT_LISTED has_or_had_label: Not regulated under CITES - species_covered: Raphus cucullatus - exemption_note: Extinct species - historical specimens pre-date CITES - description: Dodo - extinct, not subject to CITES trade restrictions annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CMS.yaml b/schemas/20251121/linkml/modules/classes/CMS.yaml index 5c7b783f60..7b52c9aa17 100644 --- a/schemas/20251121/linkml/modules/classes/CMS.yaml +++ b/schemas/20251121/linkml/modules/classes/CMS.yaml @@ -53,61 +53,38 @@ classes: close_mappings: - doap:Project slots: - - cms_name - has_or_had_version - has_or_had_type - - detected_at - - detection_method slot_usage: - cms_name: - description: Name of the detected CMS (e.g., WordPress, Drupal, Omeka) range: string required: true examples: - value: WordPress - description: WordPress CMS - value: Omeka S - description: Omeka S digital collections platform - value: CollectiveAccess - description: CollectiveAccess museum CMS has_or_had_version: - description: Detected version of the CMS range: string required: false examples: - value: "6.4.2" - description: WordPress version - value: "4.0.1" - description: Omeka S version has_or_had_type: - description: CMS type classification (maps to CMSType hierarchy) range: CMSType required: false examples: - value: MuseumCMS - description: Museum-focused CMS - value: ArchiveCMS - description: Archive-focused CMS - detected_at: - description: ISO 8601 timestamp when CMS was detected range: datetime required: false examples: - value: "2026-01-19T12:00:00Z" - description: Detection timestamp - detection_method: - description: Method used to detect the CMS range: string required: false examples: - value: HTTP_HEADER - description: Detected via X-Powered-By header - value: META_TAG - description: Detected via HTML generator meta tag - value: URL_PATTERN - description: Detected via URL structure - value: MANUAL - description: Manually identified annotations: custodian_types: '["D"]' custodian_types_rationale: Digital platforms (D) are the primary users of CMS detection diff --git a/schemas/20251121/linkml/modules/classes/CMSType.yaml b/schemas/20251121/linkml/modules/classes/CMSType.yaml index f7e949e7e4..b5bcc0403a 100644 --- a/schemas/20251121/linkml/modules/classes/CMSType.yaml +++ b/schemas/20251121/linkml/modules/classes/CMSType.yaml @@ -72,24 +72,16 @@ classes: slot_usage: has_or_had_label: - description: | - Display label for this CMS type. range: string required: true examples: - value: "MUSEUM_CMS" - description: Museum collection management system has_or_had_description: - description: | - Description of what this CMS type covers. examples: - value: description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management." description_type: definition - description: Museum CMS type definition includes_or_included: - description: | - Subtypes included in this CMS type (for hierarchical types). range: CMSType multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/CacheValidation.yaml b/schemas/20251121/linkml/modules/classes/CacheValidation.yaml index 12998ce58a..55a558d2fe 100644 --- a/schemas/20251121/linkml/modules/classes/CacheValidation.yaml +++ b/schemas/20251121/linkml/modules/classes/CacheValidation.yaml @@ -31,10 +31,8 @@ classes: has_or_had_identifier: range: ETag required: false - description: The ETag associated with this validation method. has_or_had_type: range: string - description: Type of validation (e.g. "ETag", "Last-Modified"). annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml b/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml index b8c01ea3fd..33eeb2d8c9 100644 --- a/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/CalendarSystem.yaml @@ -71,21 +71,11 @@ classes: has_or_had_label: range: string inlined: true - description: Human-readable label for the calendar system. examples: - value: - system_code: "gregorian" - system_name: "Gregorian Calendar" system_uri: "http://www.opengis.net/def/trs/BIPM/0/Gregorian" - description: Standard Gregorian calendar (ISO 8601) - value: - system_code: "julian" - system_name: "Julian Calendar" - description: Julian calendar for pre-1582 dates - value: - system_code: "hebrew" - system_name: "Hebrew Calendar" - description: Hebrew calendar for Jewish dates annotations: custodian_types: '["*"]' specificity_score: 0.5 diff --git a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index 2bf6940f42..a57d789e97 100644 --- a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -101,16 +101,7 @@ classes: slot_usage: is_or_was_due_on: range: TimeSpan - description: | - Deadline for submitting applications. - Replaces has_application_deadline per Rule 53. - Use end_of_the_end for the exact deadline timestamp. offers_or_offered: # was: funding_rate - migrated per Rule 53 (2026-01-26) - description: | - Funding rates offered by this call. - MIGRATED from funding_rate per Rule 53. - Uses frapo:hasFundingRate or similar. - Here we use generic offers_or_offered with FundingRate class. range: FundingRate multivalued: true inlined: true @@ -119,27 +110,16 @@ classes: - value: has_or_had_rate: "100%" maximal_of_maximal: 100 - description: 100% funding rate for non-profits is_or_was_opened_on: range: TimeSpan - description: | - Date when applications opened. - Replaces has_application_opening_date per Rule 53. - Use start_of_the_start for the opening timestamp. examples: - value: start_of_the_start: "2023-01-01T00:00:00Z" - description: Opening date has_or_had_budget: # was: total_budget - migrated per Rule 53 (2026-01-15) range: Budget multivalued: true inlined: true inlined_as_list: true - description: | - Total funding budget for this call. - MIGRATED from total_budget slot per Rule 53 (2026-01-15). - Now uses Budget class for structured budget information including - amount, currency, fiscal year, and temporal validity. examples: - value: has_or_had_label: Horizon Europe CL2 2025 Budget @@ -150,29 +130,17 @@ classes: currency_symbol: € fiscal_year_start: '2025-01-01' fiscal_year_end: '2025-12-31' - description: Horizon Europe heritage budget (€82.5M) - eligible_applicant: - range: string - multivalued: true - inlined_as_list: true - examples: - - value: Public bodies issuing_organisation: required: true range: uriorcurie examples: - value: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea - description: European Research Executive Agency has_or_had_provenance: # was: web_observation - migrated per Rule 53 range: WebObservation multivalued: true inlined_as_list: true - description: | - Web observations documenting when and where call information was retrieved. - MIGRATED from web_observation per slot_fixes.yaml (Rule 53, 2026-01-15). examples: - value: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2 - description: Web observation of Horizon Europe call page has_or_had_requirement: range: FundingRequirement multivalued: true @@ -180,31 +148,20 @@ classes: inlined_as_list: true examples: - value: See FundingRequirement class examples - description: Structured requirements with provenance has_or_had_funded: # was: funded_project - migrated per Rule 53 (2026-01-26) - description: | - Projects funded by this call. - MIGRATED from funded_project per Rule 53. - Uses frapo:funds (has_or_had_funded). range: uriorcurie multivalued: true inlined_as_list: true examples: - value: https://nde.nl/ontology/hc/project/nde/heritage-digitization-2025 - description: Project funded by this call requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19) range: CoFunding multivalued: false inlined: true - description: | - Co-funding/match funding requirement for this call. - MIGRATED from co_funding_required (boolean) to structured CoFunding class per Rule 53 (2026-01-19). - Now captures whether co-funding is required, percentage/amount requirements, and human-readable descriptions. examples: - value: is_or_was_required: true has_or_had_description: "Partnership funding 5-50% depending on grant size" - description: NLHF co-funding requirement with percentage range comments: - CallForApplication links FundingOrganisation to heritage custodian funding opportunities - Lifecycle tracked via CallForApplicationStatusEnum (ANNOUNCED through RESULTS_PUBLISHED) @@ -218,7 +175,6 @@ classes: - value: has_or_had_identifier: # was: call_id, call_identifier - migrated per Rule 53 (2026-01-17) - identifier_value: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 - identifier_scheme: URI has_or_had_label: # was: call_title, call_short_name - migrated per Rule 53 (2026-01-17) - Cultural heritage, cultural and creative industries - HORIZON-CL2-2025-HERITAGE-01 @@ -238,15 +194,11 @@ classes: has_or_had_budget: # was: total_budget - migrated per Rule 53 (2026-01-15) has_or_had_range: - minimal_of_minimal: - quantity_value: 2000000 has_or_had_measurement_unit: unit_label: EUR maximal_of_maximal: - quantity_value: 4000000 has_or_had_measurement_unit: unit_label: EUR - range_description: Typical project funding range - range_currency: EUR has_or_had_requirement: - can_or_could_be_fulfilled_by: - has_or_had_type: @@ -259,18 +211,11 @@ classes: - Climate change impact on heritage - Heritage skills and crafts - Community engagement with heritage - heritage_type: - - Tangible heritage - - Intangible heritage - - Digital heritage - - Documentary heritage partnership_required: true minimum_partners: 3 issuing_organisation: https://nde.nl/ontology/hc/encompassing-body/funding/ec-rea parent_programme: Horizon Europe Cluster 2 - programme_year: 2025 has_or_had_contact_point: - email: REA-C2@ec.europa.eu info_session_date: - 2025-02-15 - Virtual info day - 2025-04-10 - Brokerage event Brussels @@ -283,5 +228,4 @@ classes: - EU funding - Horizon Europe has_or_had_funded: # was: funded_project - migrated per Rule 53 (2026-01-26) - - https://nde.nl/ontology/hc/project/europeana/common-culture-2024 - description: Horizon Europe CL2 2025 Cultural Heritage call + - https://nde.nl/ontology/hc/project/europeana/common-culture-2024 \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/Cancellation.yaml b/schemas/20251121/linkml/modules/classes/Cancellation.yaml index 69b65c2e00..6bf699c952 100644 --- a/schemas/20251121/linkml/modules/classes/Cancellation.yaml +++ b/schemas/20251121/linkml/modules/classes/Cancellation.yaml @@ -31,7 +31,6 @@ classes: has_or_had_rationale: range: string inlined: true - description: The reason for cancellation. annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml b/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml index e62f5ad4e6..3875c22838 100644 --- a/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml +++ b/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml @@ -41,35 +41,17 @@ classes: range: string required: true inlined: true - description: The canonical/normalized value as a Label. Label.has_or_had_text contains the actual normalized string. attributes: - normalization_rule: - range: string - required: false - description: The rule or standard used to normalize this value. E.g., "ISNI_REMOVE_SPACES", "WIKIDATA_EXTRACT_QID", "DOI_LOWERCASE" - source_format: - range: string - required: false - description: The original format/scheme before normalization. E.g., "ISNI_DISPLAY", "WIKIDATA_URI", "DOI_URL" examples: - value: has_or_had_label: has_or_had_text: '0000000121465765' - normalization_rule: ISNI_REMOVE_SPACES - source_format: ISNI_DISPLAY - description: ISNI canonical form (spaces removed) - value: has_or_had_label: has_or_had_text: Q190804 - normalization_rule: WIKIDATA_EXTRACT_QID - source_format: WIKIDATA_URI - description: Wikidata canonical form (Q-number extracted) - value: has_or_had_label: has_or_had_text: 10.1234/example - normalization_rule: DOI_LOWERCASE_NO_PREFIX - source_format: DOI_URL - description: DOI canonical form (lowercase, no resolver prefix) annotations: specificity_score: 0.3 specificity_rationale: Canonical forms are relevant for identifier lookup across all heritage sectors. diff --git a/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml index 89b47f9796..60b9dfb25d 100644 --- a/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CantonalArchiveRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/Capacity.yaml b/schemas/20251121/linkml/modules/classes/Capacity.yaml index 83f8eeb2ad..7da1cf3cdb 100644 --- a/schemas/20251121/linkml/modules/classes/Capacity.yaml +++ b/schemas/20251121/linkml/modules/classes/Capacity.yaml @@ -61,66 +61,44 @@ classes: has_or_had_identifier: range: uriorcurie required: false - description: Optional identifier for this capacity specification. examples: - value: https://nde.nl/ontology/hc/capacity/na-depot-b-shelving - description: National Archives depot B shelf capacity has_or_had_type: range: uriorcurie required: false - description: The type of capacity measurement (volume, length, count, etc.). MIGRATED from capacity_type per slot_fixes.yaml (Rule 53, 2026-01-22). Uses CapacityType class hierarchy instead of CapacityTypeEnum. examples: - value: ShelfLengthCapacity - description: Linear shelf capacity - value: VolumeCapacity - description: Cubic volume capacity - value: ItemCountCapacity - description: Item count capacity - value: FloorAreaCapacity - description: Floor area capacity has_or_had_measurement_unit: range: MeasureUnit required: false inlined: true - description: The unit of measurement for this capacity. Uses MeasureUnit class for structured unit representation. examples: - value: has_or_had_type: LINEAR_METER has_or_had_symbol: m - description: Linear meters (shelf length) - value: has_or_had_type: CUBIC_METER has_or_had_symbol: "m\xB3" - description: Cubic meters (volume) - value: has_or_had_type: ITEM has_or_had_symbol: archive boxes - description: Item count has_or_had_quantity: range: integer required: true inlined: true - description: The capacity measurement as a structured Quantity. MIGRATED from capacity_value per slot_fixes.yaml (Rule 53, 2026-01-22). Contains quantity_value (numeric), and can include unit via has_or_had_unit. examples: - value: - quantity_value: 8000.0 has_or_had_unit: - unit_value: linear_meter - description: 8,000 linear meters of shelving - value: - quantity_value: 2500.0 has_or_had_unit: - unit_value: cubic_meter - description: 2,500 cubic meters of storage - value: - quantity_value: 50000 has_or_had_unit: - unit_value: item - description: 50,000 archive boxes has_or_had_description: range: string required: false - description: Textual description of the capacity. MIGRATED from capacity_description per slot_fixes.yaml (Rule 53). examples: - value: Approximately 5,000 linear meters of shelving across 3 floors - value: Large-scale art storage for paintings up to 4m x 6m @@ -129,17 +107,14 @@ classes: range: TimeSpan required: false inlined: true - description: Time period when this capacity specification is/was valid. examples: - value: begin_of_the_begin: '2020-01-01T00:00:00Z' end_of_the_end: '2030-12-31T23:59:59Z' - description: Capacity valid for decade is_estimate: range: boolean required: false ifabsent: 'false' - description: Whether this capacity is an estimate rather than exact measurement. comments: - Created 2026-01-17 per Rule 53 to consolidate capacity_* slots - Based on QUDT Quantity pattern with capacity-specific typing @@ -151,32 +126,22 @@ classes: - value: has_or_had_identifier: https://nde.nl/ontology/hc/capacity/rijksmuseum-depot-shelving has_or_had_quantity: - quantity_value: 8000.0 has_or_had_unit: - unit_value: linear_meter has_or_had_type: ShelfLengthCapacity has_or_had_description: Total linear shelf capacity in Depot Amersfoort is_estimate: false - description: Archive depot shelf capacity (was capacity_linear_meters) - value: has_or_had_quantity: - quantity_value: 2500.0 has_or_had_unit: - unit_value: cubic_meter has_or_had_type: VolumeCapacity - description: Cold storage volume capacity (was capacity_cubic_meters) - value: has_or_had_quantity: - quantity_value: 50000 has_or_had_unit: - unit_value: item has_or_had_type: ItemCountCapacity has_or_had_description: Capacity for 50,000 standard archive boxes - description: Archive box storage capacity (was capacity_item) - value: has_or_had_description: Approximately 5,000 linear meters of shelving across 3 floors. Large-scale art storage for paintings up to 4m x 6m. is_estimate: true - description: Descriptive capacity only (was capacity_description) annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CapacityType.yaml b/schemas/20251121/linkml/modules/classes/CapacityType.yaml index 6608d57384..20cace817f 100644 --- a/schemas/20251121/linkml/modules/classes/CapacityType.yaml +++ b/schemas/20251121/linkml/modules/classes/CapacityType.yaml @@ -59,10 +59,7 @@ classes: slot_usage: has_or_had_label: - description: Human-readable label for this capacity type. has_or_had_description: - description: Description of what this capacity type measures. - annotations: custodian_types: '["*"]' custodian_types_rationale: Capacity types apply to all storage facilities. diff --git a/schemas/20251121/linkml/modules/classes/Caption.yaml b/schemas/20251121/linkml/modules/classes/Caption.yaml index 674d5cf6a8..c810d64721 100644 --- a/schemas/20251121/linkml/modules/classes/Caption.yaml +++ b/schemas/20251121/linkml/modules/classes/Caption.yaml @@ -32,42 +32,20 @@ classes: range: string required: false inlined: true - description: Caption text content. Label.has_or_had_text contains the actual caption. language: range: string required: false - description: ISO 639-1 language code for the caption (e.g., "en", "nl", "de"). attributes: - caption_format: - range: string - required: false - description: Caption format (e.g., "SRT", "VTT", "TTML", "closed_caption", "open_caption"). - is_available: - range: boolean - required: false - description: Whether captions are available for this media. Replaces simple caption_available boolean/string. - caption_url: - range: uri - required: false - description: URL to external caption file (for SRT, VTT, etc.). examples: - value: - is_available: true language: en - caption_format: closed_caption - description: English closed captions available - value: - is_available: true language: nl - caption_format: SRT caption_url: https://example.org/video/captions_nl.srt - description: Dutch subtitles in SRT format - value: has_or_had_label: has_or_had_text: Video beschrijving voor slechthorenden language: nl - is_available: true - description: Dutch caption with descriptive text annotations: specificity_score: 0.6 specificity_rationale: Captions are specific to media content, moderately relevant for digital heritage. diff --git a/schemas/20251121/linkml/modules/classes/Carrier.yaml b/schemas/20251121/linkml/modules/classes/Carrier.yaml index c7cf6940d4..37dd8cd7c5 100644 --- a/schemas/20251121/linkml/modules/classes/Carrier.yaml +++ b/schemas/20251121/linkml/modules/classes/Carrier.yaml @@ -43,26 +43,21 @@ classes: - has_or_had_note slot_usage: has_or_had_type: - description: The type of physical carrier from the CarrierType taxonomy. Use CarrierType subclasses per Rule 0b (Type/Types pattern). range: CarrierType required: true examples: - value: carrier_type_code: CODEX carrier_type_label: Codex - description: Bound volume form - value: carrier_type_code: VINYL_DISC carrier_type_label: Vinyl Disc - description: Audio recording medium has_or_had_description: - description: Description of the physical carrier characteristics. Includes material, condition, dimensions, etc. range: string required: false examples: - value: Paper codex with leather binding, 324 leaves has_or_had_note: - description: Additional notes about the carrier. range: string required: false examples: @@ -71,13 +66,11 @@ classes: carrier_type_code: CODEX carrier_type_label: Codex has_or_had_description: Paper codex, 18th-century red morocco binding - description: Bound book carrier - value: has_or_had_type: carrier_type_code: VINYL_DISC carrier_type_label: Vinyl Disc has_or_had_description: "12-inch 33\u2153 RPM long-playing record" - description: Audio carrier annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CarrierType.yaml b/schemas/20251121/linkml/modules/classes/CarrierType.yaml index 9a53dfb1fb..648f92f480 100644 --- a/schemas/20251121/linkml/modules/classes/CarrierType.yaml +++ b/schemas/20251121/linkml/modules/classes/CarrierType.yaml @@ -36,17 +36,14 @@ classes: - has_or_had_description slot_usage: has_or_had_code: - description: Short code for the carrier type (e.g., CODEX, SCROLL, VINYL_DISC). range: string required: true identifier: true pattern: ^[A-Z][A-Z0-9_]*$ has_or_had_label: - description: Human-readable label for the carrier type. range: string required: true has_or_had_description: - description: Definition and scope of this carrier type. range: string required: false comments: diff --git a/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml b/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml index 789ef2d45b..ba14b8d0b1 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogSystem.yaml @@ -67,7 +67,6 @@ classes: - has_or_had_url slot_usage: has_or_had_name: - description: The name of the catalog or collection management system. required: true examples: - value: ALMA @@ -75,11 +74,9 @@ classes: - value: Sierra - value: Adlib has_or_had_type: - description: The type of catalog system (ILS, CMS, DAM, etc.). range: CatalogSystemType inlined: true has_or_had_url: - description: URL to the system vendor or documentation. exact_mappings: - schema:SoftwareApplication close_mappings: @@ -91,21 +88,18 @@ classes: has_or_had_name: Integrated Library System has_or_had_description: Ex Libris ALMA cloud-based library services platform has_or_had_url: https://exlibrisgroup.com/products/alma-library-services-platform/ - description: Ex Libris ALMA library platform - value: has_or_had_name: Koha has_or_had_type: has_or_had_name: Integrated Library System has_or_had_description: Open-source integrated library system has_or_had_url: https://koha-community.org/ - description: Koha open-source ILS - value: has_or_had_name: Adlib has_or_had_type: has_or_had_name: Collection Management System has_or_had_description: Axiell Adlib museum collection management system has_or_had_url: https://www.axiell.com/solutions/product/axiell-collections/ - description: Adlib/Axiell Collections for museums annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml b/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml index fcee288a31..562f93ea2c 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogSystemType.yaml @@ -53,10 +53,8 @@ classes: - has_or_had_description slot_usage: has_or_had_name: - description: The name of this catalog system type category. required: true has_or_had_description: - description: Description of this catalog system type and its typical use cases. exact_mappings: - skos:Concept close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml b/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml index f6dc83336b..02607ce965 100644 --- a/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml +++ b/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml @@ -67,16 +67,10 @@ classes: - has_or_had_label - has_or_had_description - has_or_had_url - - standard_domain slot_usage: has_or_had_identifier: required: true range: string - description: 'Short identifier/code for the standard (e.g., "LIDO", "MARC21"). - - MIGRATED from cataloging_standard string value (2026-01-17). - - ' examples: - value: LIDO - value: MARC21 @@ -84,7 +78,6 @@ classes: has_or_had_label: required: false range: string - description: Full name of the standard. examples: - value: Lightweight Information Describing Objects - value: Machine-Readable Cataloging 21 @@ -92,26 +85,14 @@ classes: has_or_had_description: required: false range: string - description: Purpose and scope of the standard. examples: - value: XML schema for museum object metadata harvesting has_or_had_url: required: false range: uri - description: URL to the standard specification or documentation. examples: - value: https://lido-schema.org/ - value: https://www.loc.gov/marc/ - standard_domain: - required: false - range: string - multivalued: true - description: 'Domain(s) where this standard is primarily used. - - Values: museum, library, archive, natural_history, general - - ' - examples: - value: museum - value: library examples: @@ -120,26 +101,16 @@ classes: has_or_had_label: Lightweight Information Describing Objects has_or_had_description: XML schema for museum object metadata harvesting and exchange has_or_had_url: https://lido-schema.org/ - standard_domain: - - museum - description: LIDO museum cataloging standard - value: has_or_had_identifier: MARC21 has_or_had_label: Machine-Readable Cataloging 21 has_or_had_description: Library cataloging format for bibliographic data has_or_had_url: https://www.loc.gov/marc/ - standard_domain: - - library - description: MARC21 library cataloging standard - value: has_or_had_identifier: Darwin Core has_or_had_label: Darwin Core has_or_had_description: Data standard for biodiversity specimen information has_or_had_url: https://dwc.tdwg.org/ - standard_domain: - - natural_history - - museum - description: Darwin Core for natural history collections annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml b/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml index 4b15acdcde..07722c741f 100644 --- a/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml +++ b/schemas/20251121/linkml/modules/classes/CategoryStatus.yaml @@ -53,13 +53,10 @@ classes: - has_or_had_value slot_usage: has_or_had_value: - description: The status value from StorageConditionStatusEnum. range: StorageConditionStatusEnum required: true has_or_had_name: - description: Human-readable name for this status (e.g., "Good", "Poor"). has_or_had_description: - description: Additional context or notes about this status assessment. exact_mappings: - crm:E55_Type close_mappings: @@ -69,12 +66,10 @@ classes: has_or_had_value: GOOD has_or_had_name: Good has_or_had_description: Acceptable temperature control with minor fluctuations - description: Good status with explanatory note - value: has_or_had_value: CRITICAL has_or_had_name: Critical has_or_had_description: Immediate pest treatment required - description: Critical status requiring action annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CateringPlace.yaml b/schemas/20251121/linkml/modules/classes/CateringPlace.yaml index e0ea8857bd..453f5d7509 100644 --- a/schemas/20251121/linkml/modules/classes/CateringPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/CateringPlace.yaml @@ -74,7 +74,6 @@ classes: - has_or_had_type - cuisine_type - is_or_was_founded_through - - has_michelin_star - has_or_had_service - is_or_was_classified_as - michelin_star @@ -94,121 +93,83 @@ classes: range: uriorcurie required: true identifier: true - description: Unique identifier for the catering place. examples: - value: https://nde.nl/ontology/hc/aux/rijksmuseum-restaurant - description: Rijksmuseum fine dining restaurant has_or_had_label: range: string inlined: true required: true - description: The name of the catering place. examples: - value: label_text: RIJKS Restaurant - description: Museum fine dining - value: label_text: "Nationaal Archief Caf\xE9" - description: "Archive caf\xE9" - value: label_text: "Van Gogh Museum Caf\xE9" - description: "Museum caf\xE9" has_or_had_description: range: string inlined: true - description: A description of the catering place. examples: - value: description_text: Michelin-starred restaurant serving modern Dutch cuisine using seasonal ingredients. Located in the museum's atrium with views of the garden. - description: Fine dining restaurant has_or_had_type: - description: 'MIGRATED from catering_type per Rule 53/56 (2026-01-24). - Type classification of catering facility. - ' range: CateringType required: true inlined: true examples: - value: has_or_had_name: Restaurant - description: Full-service restaurant - value: has_or_had_name: "Caf\xE9" - description: "Caf\xE9" is_or_was_classified_as: range: HeritageType - description: | - Classification of heritage type (e.g. Historic Restaurant). - MIGRATED from heritage_type_classification (Rule 53, 2026-01-28). required: false examples: - value: has_or_had_label: HISTORIC_RESTAURANT - description: Heritage restaurant cuisine_type: range: string examples: - value: Modern Dutch fine dining - description: Dutch cuisine - value: "Organic caf\xE9 fare" - description: "Caf\xE9 food" - value: Traditional Dutch pancakes - description: Dutch specialty seating_capacity: range: integer examples: - value: 80 - description: 80 indoor seats has_or_had_service: range: boolean examples: - value: true - description: Has terrace outdoor_seating_capacity: range: integer examples: - value: 40 - description: 40 terrace seats opening_hour: range: string examples: - value: Tu-Su 10:00-17:00 - description: Museum hours - value: Tu-Su 10:00-22:00 - description: Extended evening hours serves_visitors_only: range: boolean examples: - value: true - description: Visitors only - value: false - description: Public access serves_staff: range: boolean examples: - value: true - description: Serves staff reservation_required: range: boolean examples: - value: true - description: Reservations required - has_michelin_star: - range: boolean - examples: - - value: true - description: Michelin starred michelin_star: range: integer minimum_value: 1 maximum_value: 3 examples: - value: 1 - description: One Michelin star has_or_had_price: - description: 'MIGRATED from catering_price_range per Rule 53/56 (2026-01-24). - Price range or pricing information for the catering place. - ' range: Price inlined: true examples: @@ -217,36 +178,26 @@ classes: has_or_had_type: has_or_had_name: Luxury has_or_had_description: "Over \u20AC60 per person" - description: Fine dining price range - value: has_or_had_value: "\u20AC\u20AC" has_or_had_type: has_or_had_name: Moderate - description: Moderate price range - value: has_or_had_value: "\u20AC" has_or_had_type: has_or_had_name: Budget - description: Budget-friendly price range has_or_had_accessibility_feature: range: string multivalued: true examples: - value: Wheelchair accessible - description: Wheelchair access - value: Accessible restrooms - description: Accessible WC operator: range: string examples: - value: Vermaat Groep - description: Dutch catering company - value: In-house - description: Museum-operated is_or_was_founded_through: - description: 'The founding event for this catering place. - Migrated from founded_year per slot_fixes.yaml revision. - ' range: FoundingEvent inlined: true examples: @@ -254,8 +205,6 @@ classes: temporal_extent: begin_of_the_begin: '1902-01-01' end_of_the_begin: '1902-12-31' - founding_description: "Established as historic caf\xE9" - description: "Historic caf\xE9 founding event (1902)" is_or_was_derived_from: range: CustodianObservation multivalued: true @@ -289,14 +238,12 @@ classes: opening_hour: Tu-Su 12:00-15:00, 18:00-22:00 serves_visitors_only: false reservation_required: true - has_michelin_star: true michelin_star: 1 has_or_had_price: has_or_had_value: "\u20AC\u20AC\u20AC\u20AC" has_or_had_type: has_or_had_name: Luxury operator: Vermaat Groep - description: Michelin-starred museum restaurant - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux/na-cafe has_or_had_label: @@ -316,7 +263,6 @@ classes: has_or_had_name: Budget has_or_had_accessibility_feature: - Wheelchair accessible - description: "Archive visitor caf\xE9" - value: has_or_had_identifier: https://nde.nl/ontology/hc/aux/cafe-americain has_or_had_label: @@ -335,12 +281,10 @@ classes: temporal_extent: begin_of_the_begin: '1902-01-01' end_of_the_begin: '1902-12-31' - founding_description: "Historic art deco caf\xE9 established in 1902" has_or_had_price: has_or_had_value: "\u20AC\u20AC\u20AC" has_or_had_type: has_or_had_name: Upscale - description: "Historic heritage caf\xE9" annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CateringType.yaml b/schemas/20251121/linkml/modules/classes/CateringType.yaml index 2fb4344f21..4795efdd31 100644 --- a/schemas/20251121/linkml/modules/classes/CateringType.yaml +++ b/schemas/20251121/linkml/modules/classes/CateringType.yaml @@ -36,10 +36,8 @@ classes: - has_or_had_description slot_usage: has_or_had_name: - description: The name of this catering type category. required: true has_or_had_description: - description: Description of this catering type and typical characteristics. exact_mappings: - skos:Concept close_mappings: diff --git a/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml index a49853abb9..4c7ef8da2c 100644 --- a/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/CathedralArchiveRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml b/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml index 8786d9689a..3df0e864fe 100644 --- a/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml +++ b/schemas/20251121/linkml/modules/classes/CauseOfDeath.yaml @@ -43,21 +43,9 @@ classes: ' has_or_had_description: range: string - description: 'Detailed narrative description of the death circumstances. - - Include source documentation and context. - - Handle with respect and verify facts before documenting. - - ' has_or_had_location: range: string inlined: true - description: 'The location where the death occurred. - - Important for conflict deaths to document the specific location. - - ' comments: - Structured cause of death for heritage workers - Wikidata P1196 (manner of death) is semantically equivalent diff --git a/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml b/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml index b089fcdd23..e838f7b9ff 100644 --- a/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml +++ b/schemas/20251121/linkml/modules/classes/CertaintyLevel.yaml @@ -71,24 +71,14 @@ classes: slot_usage: level_value: - description: | - The certainty/confidence level value. - Standard values: CERTAIN, PROBABLE, POSSIBLE, UNCERTAIN. range: string required: true examples: - value: CERTAIN - description: Documentary evidence confirms claim - value: PROBABLE - description: Strong circumstantial evidence - value: POSSIBLE - description: Reasonable inference - value: UNCERTAIN - description: Speculative/unverified has_or_had_note: - description: | - Notes explaining the certainty assessment. - Use Note class with note_type: "certainty" for certainty-specific notes. range: string multivalued: true inlined: true @@ -97,16 +87,12 @@ classes: - value: note_type: certainty note_content: "Confirmed by sale catalogue and receipt" - description: Documentary evidence note - value: note_type: certainty note_content: "Inferred from stylistic analysis and collection history" - description: Circumstantial evidence note - value: note_type: certainty note_content: "Provenance gap 1933-1945 requires further research" - description: Research gap note - annotations: custodian_types: '["*"]' custodian_types_rationale: Certainty documentation applicable to all custodian types. @@ -121,18 +107,15 @@ classes: - note_type: certainty note_content: "Confirmed by sale catalogue and receipt" note_date: "2025-06-15" - description: "Certain provenance event with documentary evidence" - value: | level_value: PROBABLE has_or_had_note: - note_type: certainty note_content: "Van Ruijven was Vermeer's patron; likely acquired directly from artist" - description: "Probable ownership based on historical relationship" - value: | level_value: UNCERTAIN has_or_had_note: - note_type: certainty note_content: "Provenance gap 1933-1945 requires further research" - note_type: certainty - note_content: "Documentation incomplete; collector fled Vienna 1938" - description: "Uncertain Nazi-era provenance requiring research" + note_content: "Documentation incomplete; collector fled Vienna 1938" \ No newline at end of file diff --git a/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml b/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml index 1889fd351f..482efc9ecf 100644 --- a/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml +++ b/schemas/20251121/linkml/modules/classes/ChAnnotatorAnnotationMetadata.yaml @@ -42,17 +42,7 @@ classes: has_or_had_score: has_or_had_score: 0.92 has_or_had_method: annotation_validation - description: High confidence annotation attributes: - verified: - range: boolean - description: Whether annotation has been verified - verification_date: - range: datetime - description: When verification occurred - verified_by: - range: string - description: Who verified the annotation comments: - "MIGRATED 2026-01-19: confidence_score \u2192 is_or_was_generated_by + ConfidenceScore" annotations: diff --git a/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml b/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml index 15a326ebd3..f1a3156504 100644 --- a/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/ChAnnotatorEntityClaim.yaml @@ -38,36 +38,7 @@ classes: range: uriorcurie inlined: true required: true - description: 'MIGRATED from claim_type per slot_fixes.yaml (Rule 53/56, 2026-01-19). - Type of claim (full_name, institution_type, etc.). - Uses ClaimType class hierarchy with 507 concrete subtypes. - ' attributes: - claim_value: - range: string - required: true - description: Value of the claim - property_uri: - range: string - description: Property URI (e.g., skos:prefLabel) - hypernym_code: - range: string - description: CH-Annotator hypernym code (e.g., GRP, TOP) - hypernym_label: - range: string - description: Human-readable hypernym label (e.g., GROUP, TOPONYM) - extraction_source: - range: ExtractionSourceInfo - description: Structured extraction source information - provenance: - range: ChAnnotatorProvenance - description: Provenance of this claim - confidence: - range: float - description: Confidence score for this claim - resolution_method: - range: string - description: Method used to resolve/extract the claim annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml index 9c86d344f3..dbefecd64e 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveRecordSetTypes.yaml @@ -61,16 +61,10 @@ classes: in_language: pt keywords: - church governance - - kerkbestuur - synod records - - synode - - consistory - - kerkenraad - church council - visitation records - - kerkorde - membership rolls - - lidmatenregisters exact_mappings: - rico:RecordSetType related_mappings: @@ -154,11 +148,8 @@ classes: - parish registers - DTB boeken - baptism records - - doopregisters - marriage records - - trouwregisters - burial records - - begraafregisters - church records - genealogy sources - vital records @@ -248,7 +239,6 @@ classes: in_language: pt keywords: - pastoral correspondence - - predikantenarchief - clergy papers - sermon manuscripts - visitation reports @@ -340,13 +330,8 @@ classes: - church property - kerkelijke goederen - property deeds - - eigendomsakten - building records - - bouwdossiers - financial accounts - - rekeningen - - endowments - - legaten - cemetery records exact_mappings: - rico:RecordSetType @@ -426,16 +411,10 @@ classes: in_language: pt keywords: - congregational life - - gemeenteleven - church societies - - verenigingen - sunday school - - zondagsschool - choir records - - koor - church publications - - kerkbladen - - diaconie - photograph - youth groups exact_mappings: diff --git a/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml b/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml index c2d500eb8e..349e3901db 100644 --- a/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml +++ b/schemas/20251121/linkml/modules/classes/ChurchArchiveSwedenRecordSetType.yaml @@ -20,7 +20,6 @@ classes: class_uri: rico:RecordSetType slots: - has_or_had_type - - dual_class_link - specificity_annotation - has_or_had_score - has_or_had_scope @@ -30,9 +29,6 @@ classes: slot_usage: has_or_had_type: equals_expression: '["hc:ArchiveOrganizationType"]' - dual_class_link: - range: DualClassLink - inlined: true annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration diff --git a/schemas/20251121/linkml/modules/classes/ClaimType.yaml b/schemas/20251121/linkml/modules/classes/ClaimType.yaml index 785fd5bb7f..0dff28ce5a 100644 --- a/schemas/20251121/linkml/modules/classes/ClaimType.yaml +++ b/schemas/20251121/linkml/modules/classes/ClaimType.yaml @@ -27,10 +27,8 @@ classes: - has_or_had_description slot_usage: has_or_had_label: - description: The claim type identifier (e.g., "full_name", "email", "facebook") required: true has_or_had_description: - description: Description of what this claim type represents and where to find it annotations: specificity_score: '0.65' specificity_rationale: Claim types are moderately specific - useful for web extraction workflows but not universally applicable to all heritage queries. @@ -47,8 +45,6 @@ classes: - value: has_or_had_label: full_name has_or_had_description: 'Official full name of the organization. Expected in: