Refactor schema files to improve clarity and maintainability

- Updated WorldCatIdentifier.yaml to remove unnecessary description and ensure consistent formatting.
- Enhanced WorldHeritageSite.yaml by breaking long description into multiple lines for better readability and removed unused attributes.
- Simplified WritingSystem.yaml by removing redundant attributes and ensuring consistent formatting.
- Cleaned up XPathScore.yaml by removing unnecessary attributes and ensuring consistent formatting.
- Improved YoutubeChannel.yaml by breaking long description into multiple lines for better readability.
- Enhanced YoutubeEnrichment.yaml by breaking long description into multiple lines for better readability.
- Updated YoutubeVideo.yaml to break long description into multiple lines and removed legacy field name.
- Refined has_or_had_affiliation.yaml by removing unnecessary comments and ensuring clarity.
- Cleaned up is_or_was_retrieved_at.yaml by removing unnecessary comments and ensuring clarity.
- Added rules for generic slots and avoiding rough edits in schema files to maintain structural integrity.
- Introduced changes_or_changed_through.yaml to define a new slot for linking entities to change events.
This commit is contained in:
kempersc 2026-01-31 00:46:23 +01:00
parent 4034c2a00a
commit ca4a54181e
628 changed files with 747 additions and 12878 deletions

View file

@ -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)

View file

@ -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.

View file

@ -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": {

View file

@ -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)

View file

@ -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": {

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -19,4 +19,3 @@ classes:
specificity_rationale: "Generic utility class created during migration"
custodian_types: '["*"]'
slots:
- has_or_had_amount

View file

@ -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

View file

@ -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

View file

@ -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."

View file

@ -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."

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -19,4 +19,3 @@ classes:
specificity_rationale: "Generic utility class created during migration"
custodian_types: '["*"]'
slots:
- has_or_had_amount

View file

@ -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:

View file

@ -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:

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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: >-

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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: '[''*'']'

View file

@ -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'

View file

@ -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
'

View file

@ -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

View file

@ -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
'

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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:

View file

@ -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

View file

@ -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:

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
'

View file

@ -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

View file

@ -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

View file

@ -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
'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

Some files were not shown because too many files have changed in this diff Show more