Refactor address and asserter slots; migrate to has_or_had_* structure

- Updated manifest.json with new generated timestamp.
- Removed deprecated address_type and algorithm_name slots; migrated to has_or_had_type and has_or_had_label respectively.
- Updated Asserter.yaml to use has_or_had_* slots for asserter_contact, asserter_type, and asserter_version.
- Introduced IndexEntry class in Index.yaml for hierarchical index entries.
- Added DigitalPlatformType import to MailingListArchive.yaml and OnlineNewsArchive.yaml.
- Removed obsolete unit_type, algorithm_name, algorithm_version, asserter_contact, asserter_type, and asserter_version slot files.
- Archived removed slots in respective archive files.
- Updated slot_fixes.yaml to reflect migration statuses for asserter slots.
This commit is contained in:
kempersc 2026-01-17 15:34:11 +01:00
parent 46757be964
commit f18c7a5c3a
17 changed files with 273 additions and 116 deletions

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-17T13:41:17.002Z",
"generated": "2026-01-17T14:18:35.144Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2986,
"categoryCounts": {

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-17T14:18:35.144Z",
"generated": "2026-01-17T14:34:12.241Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2986,
"categoryCounts": {

View file

@ -21,7 +21,7 @@ prefixes:
imports:
- linkml:types
- ../slots/address_formatted
- ../slots/address_type
# REMOVED: ../slots/address_type - migrated to has_or_had_type (2026-01-17, Rule 53/56)
# Address component slots
- ../slots/house_number
# REMOVED: ../slots/street_name - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
@ -229,42 +229,19 @@ classes:
examples:
- value: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
description: Complete formatted address
has_or_had_label:
range: Label
required: false
multivalued: true
inlined: true
description: |
Labeled representations of address components or the full formatted address.
MIGRATED from address_formatted and street_name (2026-01-17).
Use Label class with language tagging to support:
- Full formatted address strings
- Street/thoroughfare names (migrated from street_name slot per Rule 53/56)
- Other labeled address components requiring language tagging
For street names, use Label with appropriate type annotation.
examples:
- value: |
has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
language: "nl"
description: Complete formatted address
- value: |
has_or_had_label: "Museumstraat"
language: "nl"
description: Street name as Label (migrated from street_name)
address_type:
range: string
required: false
description: |
Classification of address purpose.
DEPRECATED: Use has_or_had_type with AddressType class instead.
MIGRATION: 2026-01-13 - Replaced by has_or_had_type slot.
deprecated: "Use has_or_had_type with AddressType class instead"
examples:
- value: "HEADQUARTERS"
description: Main organizational address
has_or_had_type:
# REMOVED: address_type slot_usage - migrated to has_or_had_type (2026-01-17, Rule 53/56)
# address_type:
# range: string
# required: false
# description: |
# Classification of address purpose.
# DEPRECATED: Use has_or_had_type with AddressType class instead.
# MIGRATION: 2026-01-13 - Replaced by has_or_had_type slot.
# deprecated: "Use has_or_had_type with AddressType class instead"
# examples:
# - value: "HEADQUARTERS"
# description: Main organizational address
has_or_had_type: # was: address_type - migrated per Rule 53/56 (2026-01-17)
range: AddressType
required: false
multivalued: false

View file

@ -14,26 +14,17 @@ imports:
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_type # was: asserter_type - migrated per Rule 53/56 (2026-01-17)
- ../slots/has_or_had_version # was: asserter_version - migrated per Rule 53/56 (2026-01-17)
- ../slots/has_or_had_contact_point # was: asserter_contact - migrated per Rule 53/56 (2026-01-17)
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/asserter_contact
- ../slots/asserter_type
- ../slots/asserter_version
- ../slots/has_or_had_description
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/specificity_annotation
- ../slots/template_specificity
- ../slots/asserter_contact
- ../slots/asserter_type
- ../slots/asserter_version
- ../slots/has_or_had_description
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/specificity_annotation
- ../slots/template_specificity
# REMOVED - migrated to generic slots per Rule 53/56 (2026-01-17)
# - ../slots/asserter_contact → has_or_had_contact_point
# - ../slots/asserter_type → has_or_had_type
# - ../slots/asserter_version → has_or_had_version
default_prefix: hc
classes:
Asserter:
@ -68,11 +59,11 @@ classes:
```yaml
Asserter:
asserter_id: https://nde.nl/ontology/hc/asserter/claude-opus-4
asserter_name: Claude Opus 4
asserter_type: AI_AGENT
asserter_description: Anthropic Claude AI model used for assertion generation
asserter_version: "claude-opus-4-20250514"
has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4
has_or_had_label: Claude Opus 4
has_or_had_type: AI_AGENT
has_or_had_description: Anthropic Claude AI model used for assertion generation
has_or_had_version: "claude-opus-4-20250514"
```
exact_mappings:
- prov:Agent
@ -86,9 +77,9 @@ classes:
- has_or_had_identifier
- has_or_had_label
- has_or_had_description
- asserter_type
- asserter_version
- asserter_contact
- has_or_had_type # was: asserter_type - migrated per Rule 53/56 (2026-01-17)
- has_or_had_version # was: asserter_version - migrated per Rule 53/56 (2026-01-17)
- has_or_had_contact_point # was: asserter_contact - migrated per Rule 53/56 (2026-01-17)
- specificity_annotation
- template_specificity
slot_usage:
@ -123,7 +114,7 @@ classes:
examples:
- value: Anthropic Claude AI model used for heritage data assertions
- value: Senior digital heritage analyst at NDE
asserter_type:
has_or_had_type: # was: asserter_type - migrated per Rule 53/56 (2026-01-17)
range: AsserterTypeEnum
required: true
description: >-
@ -132,7 +123,7 @@ classes:
- value: AI_AGENT
- value: HUMAN_ANALYST
- value: AUTOMATED_SYSTEM
asserter_version:
has_or_had_version: # was: asserter_version - migrated per Rule 53/56 (2026-01-17)
range: string
required: false
description: >-
@ -140,7 +131,7 @@ classes:
examples:
- value: "claude-opus-4-20250514"
- value: "1.2.3"
asserter_contact:
has_or_had_contact_point: # was: asserter_contact - migrated per Rule 53/56 (2026-01-17)
range: string
required: false
description: >-
@ -160,23 +151,23 @@ classes:
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/asserter/claude-opus-4
has_or_had_label: Claude Opus 4
asserter_type: AI_AGENT
has_or_had_type: AI_AGENT # was: asserter_type
has_or_had_description: Anthropic Claude AI model used for heritage data assertions
asserter_version: "claude-opus-4-20250514"
has_or_had_version: "claude-opus-4-20250514" # was: asserter_version
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
asserter_type: HUMAN_ANALYST
has_or_had_type: HUMAN_ANALYST # was: asserter_type
has_or_had_description: Senior digital heritage analyst at NDE
asserter_contact: jane.doe@nde.nl
has_or_had_contact_point: jane.doe@nde.nl # was: asserter_contact
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
asserter_type: AUTOMATED_SYSTEM
has_or_had_type: AUTOMATED_SYSTEM # was: asserter_type
has_or_had_description: Automated system for classifying primary digital presence
asserter_version: "1.0.0"
has_or_had_version: "1.0.0" # was: asserter_version
description: Automated system asserter
# REMOVED inline slots 2026-01-16 - Rule 48 violation

View file

@ -116,6 +116,26 @@ classes:
- "Replaces string-based table_of_content per Rule 53/56 (2026-01-16)"
- "Enables hierarchical and typed index structures"
# IndexEntry class - a single entry in an index
IndexEntry:
class_uri: hc:IndexEntry
description: |
A single entry in an index.
attributes:
entry_label:
range: string
required: true
description: The text label for this entry (chapter title, subject term, etc.)
entry_page:
range: string
description: Page number or range (e.g., "42", "89-112", "42, 78, 156")
entry_level:
range: integer
description: Hierarchy level (1=top level, 2=subsection, etc.)
entry_uri:
range: uri
description: URI reference if this entry links to a digital resource
# Inline slot definitions for Index-specific slots
slots:
has_or_had_index_type:
@ -135,23 +155,3 @@ slots:
range: IndexEntry
multivalued: true
inlined_as_list: true
# IndexEntry as inline class
IndexEntry:
class_uri: hc:IndexEntry
description: |
A single entry in an index.
attributes:
entry_label:
range: string
required: true
description: The text label for this entry (chapter title, subject term, etc.)
entry_page:
range: string
description: Page number or range (e.g., "42", "89-112", "42, 78, 156")
entry_level:
range: integer
description: Hierarchy level (1=top level, 2=subsection, etc.)
entry_uri:
range: uri
description: URI reference if this entry links to a digital resource

View file

@ -25,6 +25,7 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ./MailingListArchiveRecordSetType
- ./DigitalPlatformType
- ../slots/platform_type_id
classes:
MailingListArchive:

View file

@ -25,15 +25,18 @@ prefixes:
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_label # also replaces algorithm_name - migrated per Rule 53/56 (2026-01-17)
- ../slots/has_or_had_description
- ../slots/has_or_had_version # was: algorithm_version - migrated per Rule 53/56 (2026-01-17)
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../enums/MethodologyTypeEnum
- ../slots/algorithm_name
- ../slots/algorithm_version
# REMOVED - algorithm_name migrated to has_or_had_label (2026-01-17, Rule 53/56)
# - ../slots/algorithm_name
# REMOVED - algorithm_version migrated to has_or_had_version (2026-01-17, Rule 53/56)
# - ../slots/algorithm_version
- ../slots/confidence_threshold
- ../slots/methodology_type
@ -92,10 +95,13 @@ classes:
slots:
- has_or_had_identifier
- methodology_type
- has_or_had_label
- has_or_had_label # also replaces algorithm_name - migrated per Rule 53/56 (2026-01-17)
- has_or_had_description
- algorithm_name
- algorithm_version
- has_or_had_version # was: algorithm_version - migrated per Rule 53/56 (2026-01-17)
# REMOVED - algorithm_name migrated to has_or_had_label (2026-01-17, Rule 53/56)
# - algorithm_name
# REMOVED - algorithm_version migrated to has_or_had_version (2026-01-17, Rule 53/56)
# - algorithm_version
- confidence_threshold
- specificity_annotation
- template_specificity
@ -122,10 +128,15 @@ classes:
range: string
required: false
description: >-
Human-readable name for the methodology.
Human-readable name for the methodology or algorithm.
MIGRATED: Now serves both methodology name AND algorithm_name (Rule 53/56).
examples:
- value: "RetinaFace + ArcFace clustering"
description: Face detection and clustering pipeline
- value: "YOLOv8"
description: Object detection model (was algorithm_name)
- value: "ArcFace"
description: Face recognition model (was algorithm_name)
has_or_had_description:
range: string
required: false
@ -134,24 +145,27 @@ classes:
examples:
- value: "Faces detected using RetinaFace, clustered using ArcFace embeddings"
description: Algorithm description
algorithm_name:
has_or_had_version: # was: algorithm_version - migrated per Rule 53/56 (2026-01-17)
range: string
required: false
description: >-
Name of the algorithm or model used.
examples:
- value: "YOLOv8"
description: Object detection model
- value: "ArcFace"
description: Face recognition model
algorithm_version:
range: string
required: false
description: >-
Version of the algorithm or model.
Version of the algorithm, model, or methodology specification.
MIGRATED from algorithm_version per slot_fixes.yaml (Rule 53/56).
examples:
- value: "1.0.0"
- value: "v8n"
# REMOVED - algorithm_name migrated to has_or_had_label (2026-01-17, Rule 53/56)
# algorithm_name:
# range: string
# required: false
# description: >-
# Name of the algorithm or model used.
# REMOVED - algorithm_version migrated to has_or_had_version (2026-01-17, Rule 53/56)
# algorithm_version:
# range: string
# required: false
# description: >-
# Version of the algorithm or model.
confidence_threshold:
range: float
required: false
@ -172,11 +186,11 @@ classes:
examples:
- value:
methodology_type: ENTITY_RESOLUTION
has_or_had_label: "RetinaFace + ArcFace clustering"
has_or_had_label: "RetinaFace + ArcFace clustering" # includes algorithm name
has_or_had_description: >-
Faces detected using RetinaFace model, then clustered
using ArcFace embeddings with cosine similarity threshold 0.6.
algorithm_name: "ArcFace"
has_or_had_version: "1.0" # was: algorithm_name: "ArcFace" - combined into label
confidence_threshold: 0.6
description: Face entity resolution methodology
- value:
@ -185,8 +199,7 @@ classes:
has_or_had_description: >-
Objects tracked across video frames using DeepSORT algorithm
with Kalman filtering and appearance features.
algorithm_name: "DeepSORT"
algorithm_version: "1.0"
has_or_had_version: "1.0" # was: algorithm_version
description: Object tracking methodology

View file

@ -25,6 +25,7 @@ imports:
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ./OnlineNewsArchiveRecordSetType
- ./DigitalPlatformType
- ../slots/platform_type_id
classes:
OnlineNewsArchive:

View file

@ -132,7 +132,11 @@ classes:
examples:
- value: Archive Box 145 - WWII Correspondence
- value: Map Drawer 42 - Netherlands 19th Century
unit_type:
has_or_had_type: # was: unit_type - migrated per Rule 53/56 (2026-01-17)
description: |
Type classification for this storage unit.
MIGRATED from unit_type per slot_fixes.yaml (Rule 53).
Uses StorageUnitTypeEnum values.
range: StorageUnitTypeEnum
required: true
has_or_had_description: # was: has_or_had_description # was: unit_description - migrated per Rule 53 (uses Description class)

View file

@ -6024,12 +6024,22 @@ fixes:
- label: ArrangementLevel
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/asserter_contact
processed:
status: true
timestamp: '2026-01-17T00:00:00Z'
session: session-2026-01-17-slot-migrations
notes: 'FULLY MIGRATED: asserter_contact → has_or_had_contact_point in Asserter.yaml. Used has_or_had_contact_point (existing slot) instead of has_or_had_contact_person (not existing). Original slot archived.'
revision:
- label: has_or_had_contact_person
type: slot
- label: ContactPerson
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/asserter_type
processed:
status: true
timestamp: '2026-01-17T00:00:00Z'
session: session-2026-01-17-slot-migrations
notes: 'FULLY MIGRATED: asserter_type → has_or_had_type in Asserter.yaml. Range narrowed to AsserterTypeEnum via slot_usage. Original slot archived.'
revision:
- label: has_or_had_type
type: slot
@ -6040,6 +6050,11 @@ fixes:
- label: AsserterTypes
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/asserter_version
processed:
status: true
timestamp: '2026-01-17T00:00:00Z'
session: session-2026-01-17-slot-migrations
notes: 'FULLY MIGRATED: asserter_version → has_or_had_version in Asserter.yaml. Original slot archived.'
revision:
- label: has_or_had_version
type: slot
@ -7071,6 +7086,161 @@ fixes:
type: slot
- label: Sublabel
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/catalog_system
revision:
- label: uses_or_used
type: slot
- label: CatalogSystem
type: class
- label: has_or_had_type
type: slot
- label: CatalogSystemType
type: class
- label: includes_or_included
type: slot
- label: CatalogSystemTypes
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/catalog_title
revision:
- label: has_or_had_label
type: slot
- label: Label
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/catalog_type
revision:
- label: has_or_had_type
type: slot
- label: CatalogType
type: class
- label: includes_or_included
type: slot
- label: CatalogTypes
type: class
- orignal_slot_id: https://nde.nl/ontology/hc/slot/catalog_url
revision:
- label: has_or_had_url
type: slot
- label: URL
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/cataloging_standard
revision:
- label: complies_or_complied_with
type: slot
- label: CatalogingStandard
type: class
- label: includes_or_included
type: slot
- label: CatalogingStandards
type: class
- orignal_slot_id: https://nde.nl/ontology/hc/slot/category_measurement
revision:
- label: has_or_had_measurement_type
type: slot
- label: MeasurementType
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/category_note
revision:
- label: has_or_had_note
type: slot
- label: Note
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/category_status
revision:
- label: has_or_had_status
type: slot
- label: CategoryStatus
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/catering_price_range
revision:
- label: has_or_had_price
type: slot
- label: Price
type: class
- label: has_or_had_currency
type: slot
link_branch: 1
- label: Currency
type: class
link_branch: 1
- label: has_or_had_range
type: slot
link_branch: 2
- label: PriceRange
type: class
link_branch: 2
- original_slot_id: https://nde.nl/ontology/hc/slot/catering_type
revision:
- label: has_or_had_type
type: slot
- label: CateringType
type: class
- label: includes_or_included
type: slot
- label: CateringTypes
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/certainty_level
revision:
- label: has_or_had_level
type: slot
- label: CertaintyLevel
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/certainty_note
revision:
- label: has_or_had_level
type: slot
- label: CertaintyLevel
type: class
- label: has_or_had_note
type: slot
- label: Note
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/cessation_observed_in
revision:
- label: temporal_extent
type: slot
- label: TimeSpan
type: class
- label: end_of_the_end
type: slot
- label: Timestamp
type: class
- label: has_or_had_provenance
type: slot
- label: Provenance
type: class
type: class
- label: has_or_had_note
type: slot
- label: Note
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/cessation_observed_in
revision:
- label: temporal_extent
type: slot
- label: TimeSpan
type: class
- label: end_of_the_end
type: slot
- label: Timestamp
type: class
- label: has_or_had_provenance
type: slot
- label: Provenance
type: class
- orignal_slot_id: https://nde.nl/ontology/hc/slot/change_in_net_asset
revision:
- label: specifies_or_specified
type: slot
- label: NetAsset
type: class
- label: has_or_had_quantity
type: slot
link_branch: 1
- label: Quantity
type: class
link_branch: 1
- label:
# > https://nde.nl/ontology/hc/slot/catalog_system