feat: Migrate multiple slots to structured classes and update processing notes
This commit is contained in:
parent
48d89206f9
commit
fba1ab9353
121 changed files with 4478 additions and 650 deletions
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-25T11:47:39.065Z",
|
||||
"generated": "2026-01-25T23:23:44.391Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3045,
|
||||
"totalFiles": 3044,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 1026,
|
||||
"class": 1033,
|
||||
"enum": 154,
|
||||
"slot": 1857,
|
||||
"slot": 1849,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -1490,6 +1490,11 @@
|
|||
"path": "modules/classes/DeviceTypes.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DiarizationStatus",
|
||||
"path": "modules/classes/DiarizationStatus.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalArchive",
|
||||
"path": "modules/classes/DigitalArchive.yaml",
|
||||
|
|
@ -1505,11 +1510,21 @@
|
|||
"path": "modules/classes/DigitalArchiveRecordSetTypes.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalConfidence",
|
||||
"path": "modules/classes/DigitalConfidence.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPlatform",
|
||||
"path": "modules/classes/DigitalPlatform.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPlatformScore",
|
||||
"path": "modules/classes/DigitalPlatformScore.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPlatformType",
|
||||
"path": "modules/classes/DigitalPlatformType.yaml",
|
||||
|
|
@ -1575,6 +1590,21 @@
|
|||
"path": "modules/classes/DigitalPlatformV2TransformationMetadata.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPresence",
|
||||
"path": "modules/classes/DigitalPresence.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPresenceType",
|
||||
"path": "modules/classes/DigitalPresenceType.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalProficiency",
|
||||
"path": "modules/classes/DigitalProficiency.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DimArchives",
|
||||
"path": "modules/classes/DimArchives.yaml",
|
||||
|
|
@ -4045,6 +4075,11 @@
|
|||
"path": "modules/classes/SourceWork.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Speaker",
|
||||
"path": "modules/classes/Speaker.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "SpecialCollection",
|
||||
"path": "modules/classes/SpecialCollection.yaml",
|
||||
|
|
@ -6697,71 +6732,11 @@
|
|||
"path": "modules/slots/description_type.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "device_count",
|
||||
"path": "modules/slots/device_count.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_confidence",
|
||||
"path": "modules/slots/diarization_confidence.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_enabled",
|
||||
"path": "modules/slots/diarization_enabled.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_end_seconds",
|
||||
"path": "modules/slots/diarization_end_seconds.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_speaker_id",
|
||||
"path": "modules/slots/diarization_speaker_id.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_speaker_label",
|
||||
"path": "modules/slots/diarization_speaker_label.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_start_seconds",
|
||||
"path": "modules/slots/diarization_start_seconds.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_confidence",
|
||||
"path": "modules/slots/digital_confidence.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_indicator",
|
||||
"path": "modules/slots/digital_indicator.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_platform",
|
||||
"path": "modules/slots/digital_platform.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_platform_score",
|
||||
"path": "modules/slots/digital_platform_score.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_presence_type",
|
||||
"path": "modules/slots/digital_presence_type.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_professional",
|
||||
"path": "modules/slots/digital_professional.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_surrogate",
|
||||
"path": "modules/slots/digital_surrogate.yaml",
|
||||
|
|
@ -6812,11 +6787,6 @@
|
|||
"path": "modules/slots/dissolution_date.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "dissolve_count",
|
||||
"path": "modules/slots/dissolve_count.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "dissolved_date",
|
||||
"path": "modules/slots/dissolved_date.yaml",
|
||||
|
|
@ -7022,6 +6992,11 @@
|
|||
"path": "modules/slots/emic_name.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "emphasizes_or_emphasized",
|
||||
"path": "modules/slots/emphasizes_or_emphasized.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "employer_linkedin_url",
|
||||
"path": "modules/slots/employer_linkedin_url.yaml",
|
||||
|
|
@ -7187,6 +7162,11 @@
|
|||
"path": "modules/slots/estimated_volume.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "estimates_or_estimated",
|
||||
"path": "modules/slots/estimates_or_estimated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "etag",
|
||||
"path": "modules/slots/etag.yaml",
|
||||
|
|
@ -9192,6 +9172,11 @@
|
|||
"path": "modules/slots/has_or_had_digital_platform.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_digital_presence",
|
||||
"path": "modules/slots/has_or_had_digital_presence.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_direction",
|
||||
"path": "modules/slots/has_or_had_direction.yaml",
|
||||
|
|
@ -10562,6 +10547,11 @@
|
|||
"path": "modules/slots/includes_timestamp.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "indicates_or_indicated",
|
||||
"path": "modules/slots/indicates_or_indicated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "industry_benchmark_high",
|
||||
"path": "modules/slots/industry_benchmark_high.yaml",
|
||||
|
|
@ -10967,6 +10957,11 @@
|
|||
"path": "modules/slots/is_or_was_derived_from.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_diarized",
|
||||
"path": "modules/slots/is_or_was_diarized.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_encompassed_by",
|
||||
"path": "modules/slots/is_or_was_encompassed_by.yaml",
|
||||
|
|
|
|||
|
|
@ -23,7 +23,9 @@ imports:
|
|||
- ../slots/has_or_had_custodian_type
|
||||
- ../slots/legal_status
|
||||
- ../slots/place_designation
|
||||
- ../slots/digital_platform
|
||||
# MIGRATED 2026-01-25: digital_platform → has_or_had_digital_presence (Rule 53)
|
||||
- ../slots/has_or_had_digital_presence
|
||||
# - ../slots/digital_platform # REMOVED
|
||||
- ../slots/has_or_had_collection # was: has_collection - migrated per Rule 53 (2025-01-15)
|
||||
- ../slots/organizational_structure
|
||||
- ../slots/has_or_had_organizational_change_event
|
||||
|
|
@ -196,7 +198,8 @@ classes:
|
|||
- created
|
||||
- has_or_had_custodian_type
|
||||
- has_or_had_policy # was: data_license_policy - migrated per Rule 53 (2026-01-22)
|
||||
- digital_platform
|
||||
# MIGRATED 2026-01-25: digital_platform → has_or_had_digital_presence (Rule 53)
|
||||
- has_or_had_digital_presence
|
||||
- is_or_was_encompassed_by # was: encompassing_body - migrated per Rule 53 (2025-01-15)
|
||||
- has_or_had_exhibition
|
||||
- gift_shop
|
||||
|
|
@ -235,11 +238,15 @@ classes:
|
|||
range: CustodianPlace
|
||||
inlined: true
|
||||
required: false
|
||||
digital_platform:
|
||||
# MIGRATED 2026-01-25: digital_platform → has_or_had_digital_presence (Rule 53)
|
||||
has_or_had_digital_presence:
|
||||
range: DigitalPlatform
|
||||
multivalued: true
|
||||
required: false
|
||||
inlined_as_list: true
|
||||
description: |
|
||||
Digital platform(s) or online presence(s) associated with this custodian.
|
||||
MIGRATED from digital_platform per slot_fixes.yaml (Rule 53, 2026-01-25).
|
||||
has_or_had_collection: # was: has_collection - migrated per Rule 53 (2025-01-15)
|
||||
range: CustodianCollection
|
||||
multivalued: true
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
# DiarizationStatus class
|
||||
# Status of speaker diarization process
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0 (LinkML single source of truth), 53 (migration from diarization_enabled)
|
||||
# Migration source: diarization_enabled slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DiarizationStatus
|
||||
name: diarization_status_class
|
||||
title: DiarizationStatus Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
DiarizationStatus:
|
||||
class_uri: schema:ActionStatusType
|
||||
description: |
|
||||
Represents the status of a speaker diarization process (enabled, disabled, completed, failed).
|
||||
|
||||
**MIGRATION SOURCE**: Created from diarization_enabled slot migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary**: `schema:ActionStatusType` - Status of an action
|
||||
|
||||
exact_mappings:
|
||||
- schema:ActionStatusType
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Status code or identifier (e.g., "COMPLETED", "ENABLED").
|
||||
range: uriorcurie
|
||||
required: false
|
||||
has_or_had_label:
|
||||
description: Human-readable status description.
|
||||
range: string
|
||||
required: true
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.8
|
||||
specificity_rationale: Specific to media analysis processes.
|
||||
|
||||
comments:
|
||||
- "CREATED from diarization_enabled migration per slot_fixes.yaml (Rule 53)"
|
||||
- "Tracks status of diarization process"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: Enabled
|
||||
has_or_had_identifier: https://schema.org/ActiveActionStatus
|
||||
description: Diarization enabled/active
|
||||
- value:
|
||||
has_or_had_label: Completed
|
||||
has_or_had_identifier: https://schema.org/CompletedActionStatus
|
||||
description: Diarization completed
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
# DigitalConfidence class
|
||||
# Represents confidence assessment for digital attributes/skills
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 0b (Type/Types pattern), 38 (slot centralization), 39 (RiC-O naming), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_confidence → estimates_or_estimated + DigitalConfidence
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalConfidence
|
||||
name: DigitalConfidence
|
||||
title: Digital Confidence Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
dqv: http://www.w3.org/ns/dqv#
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_score
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_type
|
||||
|
||||
classes:
|
||||
DigitalConfidence:
|
||||
class_uri: dqv:QualityMeasurement
|
||||
description: |
|
||||
Confidence assessment for digital attributes, skills, or proficiency.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
DigitalConfidence captures the certainty level associated with an inferred
|
||||
or extracted digital attribute (e.g., digital proficiency inferred from a profile).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **DQV**: `dqv:QualityMeasurement` - quality/confidence metric
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_confidence` (float) → estimates_or_estimated + DigitalConfidence
|
||||
|
||||
exact_mappings:
|
||||
- dqv:QualityMeasurement
|
||||
|
||||
slots:
|
||||
- has_or_had_score
|
||||
- has_or_had_description
|
||||
- has_or_had_type
|
||||
|
||||
slot_usage:
|
||||
has_or_had_score:
|
||||
description: |
|
||||
Numeric confidence score (0.0-1.0).
|
||||
Inherits broad range (Any) but overrides description/examples.
|
||||
range: float
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
maximum_value: 1.0
|
||||
examples:
|
||||
- value: 0.85
|
||||
description: High confidence estimation
|
||||
has_or_had_type:
|
||||
description: Type of confidence assessment (e.g., PROFICIENCY_INFERENCE)
|
||||
examples:
|
||||
- value: SKILL_INFERENCE
|
||||
has_or_had_description:
|
||||
description: Explanation of the confidence assessment
|
||||
examples:
|
||||
- value: "Inferred from explicit skill endorsements and project history"
|
||||
|
||||
annotations:
|
||||
custodian_types: '["P"]'
|
||||
custodian_types_rationale: Digital confidence applies to person profiles (custodian staff)
|
||||
specificity_score: 0.60
|
||||
specificity_rationale: Specific to person profile enrichment
|
||||
|
||||
comments:
|
||||
- "Represents confidence in digital attribute assessments"
|
||||
- "Migrated from digital_confidence slot per slot_fixes.yaml"
|
||||
- "Used in LinkedInProfile enrichment"
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
# DigitalPlatformScore class
|
||||
# Score for digital platform relevance/specificity
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 53
|
||||
# Migration source: digital_platform_score slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPlatformScore
|
||||
name: digital_platform_score_class
|
||||
title: Digital Platform Score Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
sosa: http://www.w3.org/ns/sosa/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_score
|
||||
|
||||
classes:
|
||||
DigitalPlatformScore:
|
||||
class_uri: sosa:Result
|
||||
description: |
|
||||
Represents a score for digital platform relevance or specificity.
|
||||
|
||||
**MIGRATION SOURCE**: Created from digital_platform_score slot migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary**: `sosa:Result` - Result of an observation/scoring
|
||||
|
||||
exact_mappings:
|
||||
- sosa:Result
|
||||
|
||||
slots:
|
||||
- has_or_had_score
|
||||
|
||||
slot_usage:
|
||||
has_or_had_score:
|
||||
description: The score value (0.0-1.0).
|
||||
range: float
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
maximum_value: 1.0
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.2
|
||||
specificity_rationale: "Used for scoring digital platform relevance."
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
# DigitalPresence class
|
||||
# Represents a digital presence instance (wrapper)
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 53
|
||||
# Migration source: digital_presence_type slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPresence
|
||||
name: digital_presence_class
|
||||
title: Digital Presence Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
crm: http://www.cidoc-crm.org/cidoc-crm/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_type
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./DigitalPresenceType
|
||||
- ./DigitalPresenceTypes
|
||||
|
||||
classes:
|
||||
DigitalPresence:
|
||||
class_uri: crm:E1_CRM_Entity
|
||||
description: |
|
||||
Represents a digital presence being asserted about (e.g. as primary).
|
||||
Wrapper that links a specific presence instance (URI) to its type classification.
|
||||
|
||||
**MIGRATION SOURCE**: Created from digital_presence_type slot migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Pattern**: Replaces `digital_presence_type` slot on assertion with structured object:
|
||||
- `has_or_had_identifier`: URI of the presence (SocialMediaProfile, Website, etc.)
|
||||
- `has_or_had_type`: Classification (DigitalPresenceType)
|
||||
|
||||
exact_mappings:
|
||||
- crm:E1_CRM_Entity
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_type
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: URI of the digital presence instance (e.g. hc:social-media/fb).
|
||||
range: uriorcurie
|
||||
required: true
|
||||
has_or_had_type:
|
||||
description: Type classification of this presence.
|
||||
range: DigitalPresenceType
|
||||
required: true
|
||||
inlined: true
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.5
|
||||
specificity_rationale: "Used for asserting properties of digital presences."
|
||||
|
||||
comments:
|
||||
- "CREATED from digital_presence_type migration per slot_fixes.yaml (Rule 53)"
|
||||
- "Wrapper for linking presence instance to its type"
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
# DigitalPresenceType class (Abstract Base)
|
||||
# Taxonomy for digital presence types
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 0b, 53
|
||||
# Migration source: DigitalPresenceTypeEnum per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPresenceType
|
||||
name: digital_presence_type_class
|
||||
title: DigitalPresenceType Class (Abstract)
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
DigitalPresenceType:
|
||||
class_uri: schema:Intangible
|
||||
abstract: true
|
||||
description: |
|
||||
Abstract base class for digital presence taxonomy.
|
||||
|
||||
**MIGRATION SOURCE**: Replaces DigitalPresenceTypeEnum (Rule 53, 2026-01-25).
|
||||
|
||||
**Pattern**: Type/Types (Rule 0b)
|
||||
- DigitalPresenceType (this file): Abstract base
|
||||
- DigitalPresenceTypes (separate file): Concrete subclasses
|
||||
|
||||
exact_mappings:
|
||||
- schema:Intangible
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Unique identifier for this presence type.
|
||||
range: uriorcurie
|
||||
required: false
|
||||
has_or_had_label:
|
||||
description: Human-readable name of this presence type.
|
||||
range: string
|
||||
required: true
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.6
|
||||
type_types_pattern: base
|
||||
type_types_related: DigitalPresenceTypes
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
# DigitalProficiency class
|
||||
# Represents a digital skill, tool, or competency
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 0b (Type/Types pattern), 38 (slot centralization), 39 (RiC-O naming), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_indicator → emphasizes_or_emphasized + DigitalProficiency
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalProficiency
|
||||
name: DigitalProficiency
|
||||
title: Digital Proficiency Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
skos: http://www.w3.org/2004/02/skos/core#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_type
|
||||
|
||||
classes:
|
||||
DigitalProficiency:
|
||||
class_uri: schema:DefinedTerm
|
||||
description: |
|
||||
A digital skill, tool, competency, or proficiency indicator.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
DigitalProficiency represents a specific digital capability (e.g., "Python",
|
||||
"Data Analysis", "CMS Management") identified in a person's profile.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Schema.org**: `schema:DefinedTerm` - defined concept (skill)
|
||||
- **SKOS**: `skos:Concept` - concept in a scheme
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_indicator` (string list) → emphasizes_or_emphasized + DigitalProficiency
|
||||
- `digital_professional` (boolean) → indicates_or_indicated + DigitalProficiency
|
||||
|
||||
exact_mappings:
|
||||
- schema:DefinedTerm
|
||||
|
||||
close_mappings:
|
||||
- skos:Concept
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_description
|
||||
- has_or_had_type
|
||||
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Name of the proficiency (e.g., "Python", "Data Science")
|
||||
required: true
|
||||
examples:
|
||||
- value: "Python"
|
||||
- value: "Linked Data"
|
||||
has_or_had_type:
|
||||
description: Category of proficiency (LANGUAGE, TOOL, CONCEPT, etc.)
|
||||
examples:
|
||||
- value: PROGRAMMING_LANGUAGE
|
||||
- value: METHODOLOGY
|
||||
|
||||
annotations:
|
||||
custodian_types: '["P"]'
|
||||
custodian_types_rationale: Digital proficiency applies to person profiles
|
||||
specificity_score: 0.60
|
||||
specificity_rationale: Specific to person profile enrichment and skills analysis
|
||||
|
||||
comments:
|
||||
- "Represents specific digital skills/indicators"
|
||||
- "Migrated from digital_indicator string list"
|
||||
- "Used in DigitalProfessionalAssessment"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Python"
|
||||
has_or_had_type: "PROGRAMMING_LANGUAGE"
|
||||
description: Python programming skill
|
||||
- value:
|
||||
has_or_had_label: "Collection Management Systems"
|
||||
has_or_had_type: "DOMAIN_TOOL"
|
||||
description: CMS proficiency
|
||||
|
|
@ -53,6 +53,9 @@ imports:
|
|||
- ../slots/is_or_was_published
|
||||
- ./Publication
|
||||
- ../slots/doi
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
- ../slots/has_or_had_time_interval
|
||||
- ./TimeInterval
|
||||
- ../slots/duration
|
||||
- ../slots/edition_statement
|
||||
- ../slots/extent_text
|
||||
|
|
@ -149,7 +152,8 @@ classes:
|
|||
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
|
||||
- is_or_was_published
|
||||
- doi
|
||||
- duration
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53)
|
||||
- has_or_had_time_interval
|
||||
- edition_statement
|
||||
- extent_text
|
||||
- file_number
|
||||
|
|
@ -227,13 +231,22 @@ classes:
|
|||
examples:
|
||||
- value: 'xii, 324 p., [8] p. of plates : ill. ; 24 cm'
|
||||
- value: '1 atlas (42 maps) : col. ; 38 cm'
|
||||
duration:
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
has_or_had_time_interval:
|
||||
required: false
|
||||
range: string
|
||||
range: TimeInterval
|
||||
inlined: true
|
||||
description: |
|
||||
Duration of the audiovisual carrier.
|
||||
MIGRATED from duration (string) to TimeInterval class.
|
||||
examples:
|
||||
- value: PT45M30S
|
||||
description: 45 minutes 30 seconds
|
||||
- value: 01:32:15
|
||||
- value:
|
||||
duration_value: PT45M30S
|
||||
duration_description: 45 minutes 30 seconds
|
||||
description: Audio recording duration
|
||||
- value:
|
||||
duration_value: 01:32:15
|
||||
description: Duration in HH:MM:SS format
|
||||
has_or_had_type:
|
||||
required: false
|
||||
range: BindingType
|
||||
|
|
|
|||
|
|
@ -20,7 +20,11 @@ imports:
|
|||
# REMOVED 2026-01-22: data_format migrated to has_or_had_output + OutputData (Rule 53)
|
||||
- ../slots/is_or_was_decommissioned_at # was: decommission_date - migrated per Rule 53 (2026-01-23)
|
||||
- ./Timestamp # Range for is_or_was_decommissioned_at
|
||||
- ../slots/device_count
|
||||
# MIGRATED 2026-01-25: device_count → has_or_had_quantity + Quantity (Rule 53)
|
||||
- ../slots/has_or_had_quantity
|
||||
- ../slots/has_or_had_unit
|
||||
- ./Quantity
|
||||
- ./Unit
|
||||
# MIGRATED 2026-01-25: device_id → has_or_had_identifier + Identifier (Rule 53)
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./Identifier
|
||||
|
|
@ -119,7 +123,8 @@ classes:
|
|||
- coverage_area
|
||||
- has_or_had_output # was: data_format - migrated per Rule 53 (2026-01-22)
|
||||
- is_or_was_decommissioned_at # was: decommission_date - migrated per Rule 53 (2026-01-23)
|
||||
- device_count
|
||||
# MIGRATED 2026-01-25: device_count → has_or_had_quantity (Rule 53)
|
||||
- has_or_had_quantity
|
||||
# MIGRATED 2026-01-25: device_id → has_or_had_identifier (Rule 53)
|
||||
- has_or_had_identifier
|
||||
# MIGRATED 2026-01-25: device_manufacturer → is_or_was_created_by (Rule 53)
|
||||
|
|
@ -225,15 +230,30 @@ classes:
|
|||
- value:
|
||||
has_or_had_label: Samsung
|
||||
description: Kiosk manufacturer
|
||||
device_count:
|
||||
range: integer
|
||||
minimum_value: 1
|
||||
# MIGRATED 2026-01-25: device_count → has_or_had_quantity (Rule 53)
|
||||
has_or_had_quantity:
|
||||
description: |
|
||||
MIGRATED from device_count per slot_fixes.yaml (Rule 53, 2026-01-25).
|
||||
Count of devices in this network/group.
|
||||
Uses Quantity class with unit "device".
|
||||
range: Quantity
|
||||
inlined: true
|
||||
required: false
|
||||
examples:
|
||||
- value: 24
|
||||
- value:
|
||||
quantity_value: 24
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
description: 24 beacons in gallery network
|
||||
- value: 150
|
||||
- value:
|
||||
quantity_value: 150
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
description: 150 climate sensors across facility
|
||||
- value: 1
|
||||
- value:
|
||||
quantity_value: 1
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
description: Single information kiosk
|
||||
coverage_area:
|
||||
range: string
|
||||
|
|
@ -405,7 +425,10 @@ classes:
|
|||
has_or_had_label: Estimote Proximity Beacon
|
||||
is_or_was_created_by:
|
||||
has_or_had_label: Estimote
|
||||
device_count: 24
|
||||
has_or_had_quantity:
|
||||
quantity_value: 24
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
coverage_area: Gallery of Honour (main wing)
|
||||
purpose: Proximity triggers for mobile app content near masterpieces
|
||||
connectivity_type:
|
||||
|
|
@ -428,7 +451,10 @@ classes:
|
|||
has_or_had_label: Sensirion SHT45
|
||||
is_or_was_created_by:
|
||||
has_or_had_label: Sensirion
|
||||
device_count: 150
|
||||
has_or_had_quantity:
|
||||
quantity_value: 150
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
coverage_area: All galleries and storage areas
|
||||
purpose: Temperature and humidity monitoring for preservation
|
||||
connectivity_type:
|
||||
|
|
@ -465,7 +491,10 @@ classes:
|
|||
has_or_had_label: Samsung Kiosk 24 Touch
|
||||
is_or_was_created_by:
|
||||
has_or_had_label: Samsung
|
||||
device_count: 4
|
||||
has_or_had_quantity:
|
||||
quantity_value: 4
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
coverage_area: Main entrance lobby
|
||||
purpose: Self-service collection search and wayfinding for visitors
|
||||
has_or_had_specification: 24-inch touchscreen, 1920x1080 resolution, wheelchair accessible
|
||||
|
|
|
|||
|
|
@ -24,8 +24,13 @@ imports:
|
|||
- ../slots/connections_text
|
||||
- ../slots/has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./DataSource
|
||||
- ../slots/digital_confidence
|
||||
- ../slots/digital_indicator
|
||||
# MIGRATED 2026-01-25: digital_confidence → estimates_or_estimated + DigitalConfidence (Rule 53)
|
||||
- ../slots/estimates_or_estimated
|
||||
- ./DigitalConfidence
|
||||
# MIGRATED 2026-01-25: digital_indicator → emphasizes_or_emphasized + DigitalProficiency (Rule 53)
|
||||
- ../slots/emphasizes_or_emphasized
|
||||
- ./DigitalProficiency
|
||||
# - ../slots/digital_indicator # REMOVED
|
||||
- ../slots/digital_professional
|
||||
- ../slots/education
|
||||
- ../slots/enriched_date
|
||||
|
|
@ -267,15 +272,20 @@ classes:
|
|||
|
||||
'
|
||||
slots:
|
||||
- digital_professional
|
||||
# MIGRATED 2026-01-25: digital_professional → indicates_or_indicated (Rule 53)
|
||||
- indicates_or_indicated
|
||||
- enrichment_metadata_whatsapp
|
||||
- specificity_annotation
|
||||
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
- has_or_had_likelihood_score # was: whatsapp_business_likelihood - migrated per Rule 53
|
||||
slot_usage:
|
||||
digital_professional:
|
||||
# MIGRATED 2026-01-25: digital_professional → indicates_or_indicated (Rule 53)
|
||||
indicates_or_indicated:
|
||||
range: DigitalProfessionalAssessment
|
||||
inlined: true
|
||||
description: |
|
||||
Indicates digital professional assessment.
|
||||
Migrated from digital_professional.
|
||||
has_or_had_likelihood_score: # was: whatsapp_business_likelihood - migrated per Rule 53
|
||||
range: LikelihoodScore
|
||||
inlined: true
|
||||
|
|
@ -291,19 +301,43 @@ classes:
|
|||
|
||||
'
|
||||
slots:
|
||||
- digital_confidence
|
||||
- digital_indicator
|
||||
# MIGRATED 2026-01-25: digital_confidence → estimates_or_estimated (Rule 53)
|
||||
- estimates_or_estimated
|
||||
# MIGRATED 2026-01-25: digital_indicator → emphasizes_or_emphasized (Rule 53)
|
||||
- emphasizes_or_emphasized
|
||||
- likely_whatsapp_proficient
|
||||
- specificity_annotation
|
||||
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
slot_usage:
|
||||
likely_whatsapp_proficient:
|
||||
range: boolean
|
||||
digital_indicator:
|
||||
range: string
|
||||
# MIGRATED 2026-01-25: digital_indicator → emphasizes_or_emphasized + DigitalProficiency (Rule 53)
|
||||
emphasizes_or_emphasized:
|
||||
range: DigitalProficiency
|
||||
inlined: true
|
||||
multivalued: true
|
||||
digital_confidence:
|
||||
range: string
|
||||
description: |
|
||||
Digital proficiency indicators (skills/tools) emphasized in the profile.
|
||||
Migrated from digital_indicator (string list).
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Python"
|
||||
has_or_had_type: "PROGRAMMING_LANGUAGE"
|
||||
description: Python skill indicator
|
||||
# MIGRATED 2026-01-25: digital_confidence → estimates_or_estimated + DigitalConfidence (Rule 53)
|
||||
estimates_or_estimated:
|
||||
range: DigitalConfidence
|
||||
inlined: true
|
||||
required: false
|
||||
description: |
|
||||
Confidence estimation for digital proficiency.
|
||||
Migrated from digital_confidence (string) to structured class.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_score: 0.85
|
||||
has_or_had_type: PROFICIENCY_INFERENCE
|
||||
has_or_had_description: "High confidence inferred from technical skills"
|
||||
description: High confidence estimation
|
||||
WhatsAppLikelihood:
|
||||
class_uri: hc:WhatsAppLikelihood
|
||||
description: 'Likelihood score for WhatsApp business usage.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
# Speaker class
|
||||
# Represents an identified speaker in audio/video content
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0 (LinkML single source of truth), 53 (migration from diarization_speaker_*)
|
||||
# Migration source: diarization_speaker_id/label slots per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/Speaker
|
||||
name: speaker_class
|
||||
title: Speaker Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
Speaker:
|
||||
class_uri: prov:Agent
|
||||
description: |
|
||||
Represents a speaker identified in audio/video content analysis.
|
||||
|
||||
**MIGRATION SOURCE**: Created from diarization_speaker_id and diarization_speaker_label migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary**: `prov:Agent` - An agent (person) participating in an activity (speaking)
|
||||
- **Close**: `schema:Person` - A person
|
||||
|
||||
exact_mappings:
|
||||
- prov:Agent
|
||||
|
||||
close_mappings:
|
||||
- schema:Person
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Unique identifier for the speaker (e.g., "spk_001", Wikidata ID).
|
||||
range: uriorcurie
|
||||
required: true
|
||||
has_or_had_label:
|
||||
description: Human-readable name or label for the speaker (e.g., "Curator", "Interviewer").
|
||||
range: string
|
||||
required: false
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.7
|
||||
specificity_rationale: Specific to audio/video content analysis.
|
||||
|
||||
comments:
|
||||
- "CREATED from diarization_speaker_* migration per slot_fixes.yaml (Rule 53)"
|
||||
- "Represents identified speakers in media content"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_identifier: spk_001
|
||||
has_or_had_label: Curator
|
||||
description: Identified curator speaker
|
||||
- value:
|
||||
has_or_had_identifier: https://www.wikidata.org/wiki/Q12345
|
||||
has_or_had_label: John Doe
|
||||
description: Speaker linked to Wikidata entity
|
||||
|
|
@ -205,7 +205,7 @@ classes:
|
|||
- has_or_had_quantity # was: cut_count - migrated per Rule 53 (2026-01-22)
|
||||
# MIGRATED 2026-01-25: detection_level → filters_or_filtered + DetectionLevelType (Rule 53)
|
||||
- filters_or_filtered
|
||||
- dissolve_count
|
||||
# MIGRATED 2026-01-25: dissolve_count → has_or_had_quantity (Rule 53)
|
||||
- fade_count
|
||||
- scene_count
|
||||
- has_or_had_scene_segment
|
||||
|
|
@ -281,21 +281,27 @@ classes:
|
|||
examples:
|
||||
- value: '[{has_or_had_label: "CUT"}, {has_or_had_label: "FADE_IN"}]'
|
||||
description: Transition types found in video
|
||||
has_or_had_quantity: # was: cut_count - migrated per Rule 53 (2026-01-22)
|
||||
has_or_had_quantity:
|
||||
range: Quantity
|
||||
required: false
|
||||
multivalued: true
|
||||
inlined: true
|
||||
description: |
|
||||
Number of hard cuts (instantaneous transitions) as a Quantity.
|
||||
MIGRATED from cut_count per slot_fixes.yaml (Rule 53).
|
||||
Uses Quantity class with Unit type "Cut".
|
||||
Quantities of detected transitions (cuts, dissolves, fades).
|
||||
MIGRATED from cut_count, dissolve_count per slot_fixes.yaml (Rule 53).
|
||||
Uses Quantity class with Unit type "Cut", "Dissolve", "Fade".
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_numeric_value: 42
|
||||
has_or_had_unit:
|
||||
has_or_had_type: Cut
|
||||
has_or_had_symbol: "cuts"
|
||||
description: 42 cuts detected (was cut_count)
|
||||
description: 42 cuts detected
|
||||
- value:
|
||||
has_or_had_numeric_value: 3
|
||||
has_or_had_unit:
|
||||
has_or_had_label: "dissolve transition"
|
||||
description: 3 dissolves detected
|
||||
fade_count:
|
||||
range: integer
|
||||
required: false
|
||||
|
|
@ -303,13 +309,6 @@ classes:
|
|||
examples:
|
||||
- value: 5
|
||||
description: 5 fades detected
|
||||
dissolve_count:
|
||||
range: integer
|
||||
required: false
|
||||
minimum_value: 0
|
||||
examples:
|
||||
- value: 3
|
||||
description: 3 dissolves detected
|
||||
comments:
|
||||
- Scene and shot boundary detection
|
||||
- Supports both technical (shot) and semantic (scene) analysis
|
||||
|
|
|
|||
|
|
@ -10,13 +10,26 @@ imports:
|
|||
# - ../slots/audio_event_segments
|
||||
- ../slots/has_or_had_segment
|
||||
- ../slots/has_audio_quality_score
|
||||
- ../slots/diarization_confidence
|
||||
- ../slots/diarization_enabled
|
||||
- ../slots/diarization_end_seconds
|
||||
- ../slots/has_or_had_diarization_segment
|
||||
- ../slots/diarization_speaker_id
|
||||
- ../slots/diarization_speaker_label
|
||||
- ../slots/diarization_start_seconds
|
||||
# MIGRATED 2026-01-25: diarization_* slots (Rule 53)
|
||||
- ../slots/has_or_had_provenance
|
||||
- ./Provenance
|
||||
- ./ConfidenceScore
|
||||
- ../slots/is_or_was_diarized
|
||||
- ./DiarizationStatus
|
||||
- ../slots/temporal_extent
|
||||
- ./TimeSpan
|
||||
- ../slots/start_of_the_start
|
||||
- ../slots/end_of_the_end
|
||||
- ./Timestamp
|
||||
- ../slots/contains_or_contained
|
||||
- ./Speaker
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./Identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ./Label
|
||||
# MIGRATED 2026-01-25: has_or_had_diarization_segment → contains_or_contained (Rule 53)
|
||||
# - ../slots/has_or_had_diarization_segment # REMOVED
|
||||
|
||||
- ../slots/has_clipping
|
||||
- ../slots/is_background
|
||||
- ../slots/is_overlapping
|
||||
|
|
@ -123,8 +136,10 @@ classes:
|
|||
# - audio_event_segments
|
||||
- has_or_had_segment
|
||||
- audio_quality_score
|
||||
- diarization_enabled
|
||||
- has_or_had_diarization_segment
|
||||
# MIGRATED 2026-01-25: diarization_enabled → is_or_was_diarized (Rule 53)
|
||||
- is_or_was_diarized
|
||||
# MIGRATED 2026-01-25: has_or_had_diarization_segment → contains_or_contained (Rule 53)
|
||||
- contains_or_contained
|
||||
- has_clipping
|
||||
- languages_detected
|
||||
- music_confidence
|
||||
|
|
@ -212,19 +227,33 @@ classes:
|
|||
examples:
|
||||
- value: '[nl, en, de]'
|
||||
description: Dutch, English, and German detected
|
||||
diarization_enabled:
|
||||
range: boolean
|
||||
# MIGRATED 2026-01-25: diarization_enabled → is_or_was_diarized (Rule 53)
|
||||
is_or_was_diarized:
|
||||
range: DiarizationStatus
|
||||
required: false
|
||||
inlined: true
|
||||
description: |
|
||||
Status of speaker diarization process.
|
||||
MIGRATED from diarization_enabled (Rule 53).
|
||||
examples:
|
||||
- value: true
|
||||
description: Diarization was performed
|
||||
has_or_had_diarization_segment:
|
||||
- value:
|
||||
has_or_had_label: Enabled
|
||||
has_or_had_identifier: https://schema.org/ActiveActionStatus
|
||||
description: Diarization enabled
|
||||
# MIGRATED 2026-01-25: has_or_had_diarization_segment → contains_or_contained (Rule 53)
|
||||
contains_or_contained:
|
||||
range: DiarizationSegment
|
||||
multivalued: true
|
||||
required: false
|
||||
inlined_as_list: true
|
||||
examples:
|
||||
- value: '[{start_seconds: 0.0, end_seconds: 15.0, speaker_id: ''spk_001'', speaker_label: ''Curator''}]'
|
||||
- value:
|
||||
temporal_extent:
|
||||
begin_of_the_begin: 0.0
|
||||
end_of_the_end: 15.0
|
||||
contains_or_contained:
|
||||
has_or_had_identifier: spk_001
|
||||
has_or_had_label: Curator
|
||||
description: Curator speaking for first 15 seconds
|
||||
speaker_count:
|
||||
range: integer
|
||||
|
|
@ -385,34 +414,29 @@ classes:
|
|||
|
||||
'
|
||||
slots:
|
||||
- diarization_confidence
|
||||
- diarization_end_seconds
|
||||
- diarization_speaker_id
|
||||
- diarization_speaker_label
|
||||
- diarization_start_seconds
|
||||
# MIGRATED 2026-01-25: diarization_* slots (Rule 53)
|
||||
- has_or_had_provenance # for confidence
|
||||
- temporal_extent # for start/end seconds
|
||||
- contains_or_contained # for speaker
|
||||
- is_overlapping
|
||||
- specificity_annotation
|
||||
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
slot_usage:
|
||||
diarization_start_seconds:
|
||||
range: float
|
||||
temporal_extent:
|
||||
description: Time range of the diarization segment.
|
||||
range: TimeSpan
|
||||
inlined: true
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
diarization_end_seconds:
|
||||
range: float
|
||||
contains_or_contained:
|
||||
description: Speaker identified in this segment.
|
||||
range: Speaker
|
||||
inlined: true
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
diarization_speaker_id:
|
||||
range: string
|
||||
required: true
|
||||
diarization_speaker_label:
|
||||
range: string
|
||||
has_or_had_provenance:
|
||||
description: Provenance metadata including confidence score.
|
||||
range: Provenance
|
||||
inlined: true
|
||||
required: false
|
||||
diarization_confidence:
|
||||
range: float
|
||||
required: false
|
||||
minimum_value: 0.0
|
||||
maximum_value: 1.0
|
||||
is_overlapping:
|
||||
range: boolean
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ imports:
|
|||
- ../slots/has_or_had_status
|
||||
- ./Status
|
||||
- ../slots/dislike_count
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
- ../slots/has_or_had_time_interval
|
||||
- ./TimeInterval
|
||||
- ../slots/duration
|
||||
- ../slots/favorite_count
|
||||
# MIGRATED 2026-01-22: frame_rate → has_or_had_quantity + Quantity + has_or_had_unit + Unit (Rule 53)
|
||||
|
|
@ -242,7 +245,8 @@ classes:
|
|||
# MIGRATED 2026-01-24: definition → has_or_had_resolution + Resolution (Rule 53)
|
||||
- has_or_had_resolution
|
||||
- dislike_count
|
||||
- duration
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53)
|
||||
- has_or_had_time_interval
|
||||
- favorite_count
|
||||
# REMOVED 2026-01-22: frame_rate - migrated to has_or_had_quantity + Quantity + Unit (Rule 53)
|
||||
- is_embeddable
|
||||
|
|
@ -259,15 +263,23 @@ classes:
|
|||
- has_or_had_comment # was: video_comment - migrated per Rule 53 (2025-01-15)
|
||||
- has_or_had_quantity
|
||||
slot_usage:
|
||||
duration:
|
||||
range: string
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
has_or_had_time_interval:
|
||||
range: TimeInterval
|
||||
required: false
|
||||
pattern: ^P(T(\d+H)?(\d+M)?(\d+S)?)?$
|
||||
inlined: true
|
||||
description: |
|
||||
Video duration.
|
||||
MIGRATED from duration (ISO 8601 string) to TimeInterval class.
|
||||
examples:
|
||||
- value: PT10M59S
|
||||
description: 10 minutes and 59 seconds
|
||||
- value: PT1H30M
|
||||
description: 1 hour 30 minutes
|
||||
- value:
|
||||
duration_value: PT10M59S
|
||||
duration_description: 10 minutes and 59 seconds
|
||||
description: Video duration
|
||||
- value:
|
||||
duration_value: PT1H30M
|
||||
duration_description: 1 hour 30 minutes
|
||||
description: Long format duration
|
||||
# MIGRATED 2026-01-24: definition → has_or_had_resolution + Resolution (Rule 53)
|
||||
has_or_had_resolution:
|
||||
range: Resolution
|
||||
|
|
|
|||
|
|
@ -15,13 +15,14 @@ prefixes:
|
|||
imports:
|
||||
- linkml:types
|
||||
|
||||
- ../classes/Hypothesis
|
||||
# - ../classes/Hypothesis # Broadened to generic range
|
||||
default_prefix: hc
|
||||
|
||||
slots:
|
||||
asserts_or_asserted:
|
||||
description: >-
|
||||
Links a provenance record to a hypothesis or assertion that it supports.
|
||||
Links a provenance record, assertion, or activity to the entity, hypothesis,
|
||||
or proposition that it asserts or supports.
|
||||
|
||||
**TEMPORAL SEMANTICS** (RiC-O style):
|
||||
The "asserts_or_asserted" naming indicates that assertions can change:
|
||||
|
|
@ -30,14 +31,14 @@ slots:
|
|||
- Confidence levels may be updated over time
|
||||
|
||||
**USAGE**:
|
||||
Used within a Provenance class to link the provenance activity
|
||||
to a specific Hypothesis about uncertain data.
|
||||
- Link Provenance to Hypothesis (prov:generated)
|
||||
- Link PrimaryDigitalPresenceAssertion to DigitalPresence (crm:P140)
|
||||
|
||||
**EXAMPLE**:
|
||||
A provenance record from web scraping asserts a hypothesis about
|
||||
institution type based on evidence found on the website.
|
||||
**RANGE**:
|
||||
Generic `uriorcurie` to support multiple assertion targets (Hypothesis, DigitalPresence).
|
||||
Classes should narrow this via slot_usage.
|
||||
|
||||
range: Hypothesis
|
||||
range: uriorcurie # Broadened from Hypothesis (Rule 55)
|
||||
slot_uri: prov:generated
|
||||
inlined: true
|
||||
|
||||
|
|
@ -46,26 +47,17 @@ slots:
|
|||
|
||||
close_mappings:
|
||||
- schema:mainEntity
|
||||
- crm:P140_assigned_attribute_to
|
||||
|
||||
annotations:
|
||||
custodian_types: '["U"]'
|
||||
custodian_types_rationale: >-
|
||||
Assertions/hypotheses primarily relevant for Unknown type institutions.
|
||||
custodian_types_primary: "U"
|
||||
specificity_score: 0.8
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "assertsOrAsserted" naming pattern.
|
||||
specificity_score: 0.2 # Broadened from 0.8
|
||||
specificity_rationale: >-
|
||||
High specificity - only relevant for hypothesis tracking.
|
||||
|
||||
examples:
|
||||
- value: |
|
||||
asserts_or_asserted:
|
||||
asserted_value: "MUSEUM"
|
||||
confidence_level: "medium"
|
||||
supporting_evidence:
|
||||
- "Website mentions 'permanent collection'"
|
||||
description: Provenance asserting a museum type hypothesis.
|
||||
Broadly applicable assertion predicate.
|
||||
|
||||
comments:
|
||||
- Created from slot_fixes.yaml migration (2026-01-14)
|
||||
- Created from slot_fixes.yaml migration (2026-01-14, updated 2026-01-25)
|
||||
- Replaces direct type_hypothesis slot usage
|
||||
- Links Provenance class to Hypothesis class
|
||||
- Replaces digital_presence_type usage in PrimaryDigitalPresenceAssertion
|
||||
- Links asserter/activity to asserted entity/proposition
|
||||
|
|
|
|||
|
|
@ -0,0 +1,86 @@
|
|||
# emphasizes_or_emphasized slot
|
||||
# Generic slot for linking entities to emphasized qualities, skills, or topics
|
||||
#
|
||||
# Following RiC-O naming convention (Rule 39): "emphasizesOrEmphasized" pattern
|
||||
# for active/passive temporal relationships.
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_indicator → emphasizes_or_emphasized + DigitalProficiency
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/emphasizes_or_emphasized
|
||||
name: emphasizes_or_emphasized_slot
|
||||
title: Emphasizes Or Emphasized Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
skos: http://www.w3.org/2004/02/skos/core#
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
emphasizes_or_emphasized:
|
||||
slot_uri: skos:related
|
||||
description: |
|
||||
Links an entity to a quality, skill, or topic that it emphasizes or highlights.
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "emphasizesOrEmphasized" naming follows RiC-O convention indicating this relationship
|
||||
may be historical - emphasis may change over time (e.g., in a CV or profile).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `skos:related` - general relatedness/association
|
||||
- **Related**: `schema:knowsAbout` - for skills/proficiency
|
||||
|
||||
**Usage**:
|
||||
Used to link professional assessments to specific proficiency indicators found in
|
||||
source data (e.g., keywords in a LinkedIn profile that indicate digital skills).
|
||||
|
||||
**Pattern**:
|
||||
```
|
||||
DigitalProfessionalAssessment
|
||||
└── emphasizes_or_emphasized → DigitalProficiency
|
||||
├── has_or_had_label: "Python"
|
||||
└── has_or_had_type: PROGRAMMING_LANGUAGE
|
||||
```
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_indicator` → emphasizes_or_emphasized + DigitalProficiency
|
||||
|
||||
**Cardinality**:
|
||||
Multivalued - an entity may emphasize multiple qualities.
|
||||
|
||||
range: string
|
||||
required: false
|
||||
multivalued: true
|
||||
inlined: true
|
||||
|
||||
exact_mappings:
|
||||
- skos:related
|
||||
|
||||
related_mappings:
|
||||
- schema:knowsAbout
|
||||
- schema:skills
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "emphasizesOrEmphasized" pattern for active/passive predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "digital_indicator"
|
||||
migration_date: "2026-01-25"
|
||||
|
||||
comments:
|
||||
- "Generic emphasis slot for linking to skills/qualities"
|
||||
- "Links entity to DigitalProficiency or similar quality classes"
|
||||
- "Replaces specific indicator slots like digital_indicator"
|
||||
- "RiC-O naming: emphasizesOrEmphasized indicates emphasis relationship"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Data Science"
|
||||
description: "Emphasizes Data Science proficiency"
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
# estimates_or_estimated slot
|
||||
# Generic slot for linking entities to estimations or confidence assessments
|
||||
#
|
||||
# Following RiC-O naming convention (Rule 39): "estimatesOrEstimated" pattern
|
||||
# for active/passive temporal relationships.
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_confidence → estimates_or_estimated + DigitalConfidence
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/estimates_or_estimated
|
||||
name: estimates_or_estimated_slot
|
||||
title: Estimates Or Estimated Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
schema: http://schema.org/
|
||||
dqv: http://www.w3.org/ns/dqv#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
estimates_or_estimated:
|
||||
slot_uri: prov:wasDerivedFrom
|
||||
description: |
|
||||
Links an entity to an estimation or confidence assessment derived from it.
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "estimatesOrEstimated" naming follows RiC-O convention indicating this relationship
|
||||
may be historical - estimations may be updated over time.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `prov:wasDerivedFrom` - derivation from source
|
||||
- **Related**: `dqv:hasQualityMeasurement` - linking to quality/confidence metric
|
||||
|
||||
**Usage**:
|
||||
Used to link profiles or entities to confidence assessments about specific
|
||||
attributes (e.g., digital proficiency confidence).
|
||||
|
||||
**Pattern**:
|
||||
```
|
||||
LinkedInProfile
|
||||
└── estimates_or_estimated → DigitalConfidence
|
||||
├── has_or_had_score: 0.8
|
||||
└── has_or_had_type: PROFICIENCY_LEVEL
|
||||
```
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_confidence` → estimates_or_estimated + DigitalConfidence
|
||||
|
||||
**Cardinality**:
|
||||
Multivalued - an entity may have multiple estimations (e.g., for different attributes).
|
||||
|
||||
range: string
|
||||
required: false
|
||||
multivalued: true
|
||||
inlined: true
|
||||
|
||||
exact_mappings:
|
||||
- prov:wasDerivedFrom
|
||||
|
||||
related_mappings:
|
||||
- dqv:hasQualityMeasurement
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "estimatesOrEstimated" pattern for active/passive predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "digital_confidence"
|
||||
migration_date: "2026-01-25"
|
||||
|
||||
comments:
|
||||
- "Generic estimation slot for linking to confidence/quality assessments"
|
||||
- "Links entity to DigitalConfidence or similar assessment classes"
|
||||
- "Replaces specific confidence slots like digital_confidence"
|
||||
- "RiC-O naming: estimatesOrEstimated indicates estimation relationship"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_score: 0.85
|
||||
has_or_had_label: "High Digital Proficiency"
|
||||
description: "Estimation of digital proficiency"
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
# has_or_had_digital_presence slot
|
||||
# Links entity to its digital platform/presence
|
||||
#
|
||||
# Following RiC-O naming convention (Rule 39): "isOrWas..." pattern
|
||||
# for temporal relationships in heritage domain.
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix)
|
||||
# Migration source: digital_platform slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/has_or_had_digital_presence
|
||||
name: has_or_had_digital_presence_slot
|
||||
title: Has Or Had Digital Presence Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
dcat: http://www.w3.org/ns/dcat#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
has_or_had_digital_presence:
|
||||
slot_uri: schema:mainEntityOfPage
|
||||
description: |
|
||||
Links an entity to its digital platform or online presence (website, portal, repository).
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "hasOrHad" naming follows RiC-O convention indicating this relationship
|
||||
may be historical - websites change, platforms migrate or are decommissioned.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `schema:mainEntityOfPage` - Page about the entity
|
||||
- **Close**: `schema:url` - URL of the entity
|
||||
- **Close**: `dcat:landingPage` - Web page providing access
|
||||
|
||||
**Usage**:
|
||||
Use with DigitalPlatform class to describe the platform.
|
||||
|
||||
**Replaces**: digital_platform slot per slot_fixes.yaml migration (2026-01-25)
|
||||
|
||||
range: uriorcurie
|
||||
required: false
|
||||
multivalued: true
|
||||
|
||||
exact_mappings:
|
||||
- schema:mainEntityOfPage
|
||||
|
||||
close_mappings:
|
||||
- schema:url
|
||||
- dcat:landingPage
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "hasOrHad" pattern for temporal predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "digital_platform"
|
||||
migration_date: "2026-01-25"
|
||||
|
||||
comments:
|
||||
- "Links custodian to digital platforms"
|
||||
- "RiC-O naming: hasOrHad indicates historical persistence"
|
||||
|
|
@ -31,7 +31,7 @@ slots:
|
|||
- Quality ratings
|
||||
- Similarity scores
|
||||
|
||||
range: float
|
||||
range: Any # Broadened from float per Rule 55 to support ConfidenceScore class override
|
||||
|
||||
close_mappings:
|
||||
- schema:ratingValue
|
||||
|
|
|
|||
|
|
@ -0,0 +1,85 @@
|
|||
# indicates_or_indicated slot
|
||||
# Generic slot for linking entities to things they indicate or signify
|
||||
#
|
||||
# Following RiC-O naming convention (Rule 39): "indicatesOrIndicated" pattern
|
||||
# for active/passive temporal relationships.
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_professional → indicates_or_indicated + DigitalProficiency
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/indicates_or_indicated
|
||||
name: indicates_or_indicated_slot
|
||||
title: Indicates Or Indicated Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
indicates_or_indicated:
|
||||
slot_uri: prov:generated
|
||||
description: |
|
||||
Links an entity (e.g., an analysis or enrichment) to what it indicates or signifies.
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "indicatesOrIndicated" naming follows RiC-O convention indicating this relationship
|
||||
may be historical.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `prov:generated` - if the indication is a result
|
||||
- **Related**: `schema:result`
|
||||
|
||||
**Usage**:
|
||||
Used to link enrichments (like WhatsAppEnrichment) to the assessment result
|
||||
(DigitalProfessionalAssessment).
|
||||
|
||||
**Pattern**:
|
||||
```
|
||||
WhatsAppEnrichment
|
||||
└── indicates_or_indicated → DigitalProfessionalAssessment
|
||||
├── estimates_or_estimated → DigitalConfidence
|
||||
└── emphasizes_or_emphasized → DigitalProficiency
|
||||
```
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_professional` → indicates_or_indicated + DigitalProficiency/Assessment
|
||||
|
||||
**Cardinality**:
|
||||
Single or multivalued depending on context.
|
||||
|
||||
range: string
|
||||
required: false
|
||||
multivalued: false
|
||||
inlined: true
|
||||
|
||||
exact_mappings:
|
||||
- prov:generated
|
||||
|
||||
related_mappings:
|
||||
- schema:result
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "indicatesOrIndicated" pattern for active/passive predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "digital_professional"
|
||||
migration_date: "2026-01-25"
|
||||
|
||||
comments:
|
||||
- "Generic indication slot"
|
||||
- "Links enrichment/analysis to its result/assessment"
|
||||
- "Replaces digital_professional slot"
|
||||
- "RiC-O naming: indicatesOrIndicated"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
likely_whatsapp_proficient: true
|
||||
description: "Indicates digital proficiency assessment"
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
# is_or_was_diarized slot
|
||||
# Indicates if diarization was performed on the media object
|
||||
#
|
||||
# Following RiC-O naming convention (Rule 39): "isOrWas..." pattern
|
||||
# for temporal relationships in heritage domain.
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix)
|
||||
# Migration source: diarization_enabled slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/is_or_was_diarized
|
||||
name: is_or_was_diarized_slot
|
||||
title: Is Or Was Diarized Slot
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
is_or_was_diarized:
|
||||
slot_uri: schema:actionStatus
|
||||
description: |
|
||||
Indicates the status of speaker diarization process on this media object.
|
||||
|
||||
**Temporal Semantics** (RiC-O Pattern):
|
||||
The "isOrWas" naming follows RiC-O convention indicating this status
|
||||
relates to a process that occurred or is occurring.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary** (`slot_uri`): `schema:actionStatus` - Status of an action (diarization)
|
||||
|
||||
**Usage**:
|
||||
Use with DiarizationStatus class or boolean (if simplified).
|
||||
|
||||
**Replaces**: diarization_enabled slot per slot_fixes.yaml migration (2026-01-25)
|
||||
|
||||
range: uriorcurie
|
||||
required: false
|
||||
multivalued: false
|
||||
|
||||
exact_mappings:
|
||||
- schema:actionStatus
|
||||
|
||||
annotations:
|
||||
rico_naming_convention: |
|
||||
Follows RiC-O "isOrWas" pattern for temporal predicates.
|
||||
See Rule 39: Slot Naming Convention (RiC-O Style)
|
||||
replaces_slots: "diarization_enabled"
|
||||
migration_date: "2026-01-25"
|
||||
|
||||
comments:
|
||||
- "Indicates diarization status"
|
||||
- "RiC-O naming: isOrWas indicates process status"
|
||||
|
|
@ -225,24 +225,24 @@
|
|||
"__ARCHIVED_20260125__detection_count.yaml",
|
||||
"__ARCHIVED_20260125__detection_level.yaml",
|
||||
"__ARCHIVED_20260125__detection_threshold.yaml",
|
||||
"device_count.yaml",
|
||||
"device_id.yaml",
|
||||
"device_manufacturer.yaml",
|
||||
"device_model.yaml",
|
||||
"device_name.yaml",
|
||||
"device_type.yaml",
|
||||
"diarization_confidence.yaml",
|
||||
"diarization_enabled.yaml",
|
||||
"diarization_end_seconds.yaml",
|
||||
"diarization_speaker_id.yaml",
|
||||
"diarization_speaker_label.yaml",
|
||||
"diarization_start_seconds.yaml",
|
||||
"digital_confidence.yaml",
|
||||
"digital_indicator.yaml",
|
||||
"__ARCHIVED_20260125__device_count.yaml",
|
||||
"__ARCHIVED_20260125__device_id.yaml",
|
||||
"__ARCHIVED_20260125__device_manufacturer.yaml",
|
||||
"__ARCHIVED_20260125__device_model.yaml",
|
||||
"__ARCHIVED_20260125__device_name.yaml",
|
||||
"__ARCHIVED_20260125__device_type.yaml",
|
||||
"__ARCHIVED_20260125__diarization_confidence.yaml",
|
||||
"__ARCHIVED_20260125__diarization_enabled.yaml",
|
||||
"__ARCHIVED_20260125__diarization_end_seconds.yaml",
|
||||
"__ARCHIVED_20260125__diarization_speaker_id.yaml",
|
||||
"__ARCHIVED_20260125__diarization_speaker_label.yaml",
|
||||
"__ARCHIVED_20260125__diarization_start_seconds.yaml",
|
||||
"__ARCHIVED_20260125__digital_confidence.yaml",
|
||||
"__ARCHIVED_20260125__digital_indicator.yaml",
|
||||
"digital_platform.yaml",
|
||||
"digital_platform_score.yaml",
|
||||
"digital_presence_type.yaml",
|
||||
"digital_professional.yaml",
|
||||
"__ARCHIVED_20260125__digital_professional.yaml",
|
||||
"digital_surrogate.yaml",
|
||||
"digital_surrogate_url.yaml",
|
||||
"digitization_budget.yaml",
|
||||
|
|
@ -253,7 +253,7 @@
|
|||
"display_location.yaml",
|
||||
"disposition_service.yaml",
|
||||
"dissolution_date.yaml",
|
||||
"dissolve_count.yaml",
|
||||
"__ARCHIVED_20260125__dissolve_count.yaml",
|
||||
"dissolved_date.yaml",
|
||||
"document_description.yaml",
|
||||
"document_title.yaml",
|
||||
|
|
@ -295,6 +295,7 @@
|
|||
"embargo_end_date.yaml",
|
||||
"embargo_reason.yaml",
|
||||
"emic_name.yaml",
|
||||
"emphasizes_or_emphasized.yaml",
|
||||
"employer_linkedin_url.yaml",
|
||||
"employer_name.yaml",
|
||||
"employment_dates_raw.yaml",
|
||||
|
|
@ -326,6 +327,7 @@
|
|||
"environmental_zone_type_label.yaml",
|
||||
"equipment_type.yaml",
|
||||
"established_date.yaml",
|
||||
"estimates_or_estimated.yaml",
|
||||
"estimated_extent.yaml",
|
||||
"estimated_volume.yaml",
|
||||
"etag.yaml",
|
||||
|
|
@ -986,6 +988,7 @@
|
|||
"includes_music_description.yaml",
|
||||
"includes_object_tracking.yaml",
|
||||
"includes_or_included.yaml",
|
||||
"indicates_or_indicated.yaml",
|
||||
"includes_segmentation_mask.yaml",
|
||||
"includes_sound_description.yaml",
|
||||
"includes_speaker.yaml",
|
||||
|
|
|
|||
|
|
@ -12793,6 +12793,19 @@ fixes:
|
|||
- label: Unit
|
||||
type: class
|
||||
value: device
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: device_count → has_or_had_quantity + Quantity (Rule 53)
|
||||
|
||||
**Pattern**: Integer count migrated to Quantity class with unit 'device'
|
||||
|
||||
**Files Modified**:
|
||||
- InternetOfThings.yaml: Updated imports, slots list, slot_usage, examples
|
||||
|
||||
**Archived**: modules/slots/archive/device_count_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/device_id
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
|
|
@ -12932,12 +12945,38 @@ fixes:
|
|||
type: slot
|
||||
- label: ConfidenceScore
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: diarization_confidence → has_or_had_provenance + Provenance + has_or_had_score + ConfidenceScore (Rule 53)
|
||||
|
||||
**Pattern**: Float confidence migrated to structured provenance and confidence scoring model
|
||||
|
||||
**Files Modified**:
|
||||
- VideoAudioAnnotation.yaml: Updated DiarizationSegment with has_or_had_provenance and has_or_had_score
|
||||
|
||||
**Archived**: modules/slots/archive/diarization_confidence_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/diarization_enabled
|
||||
revision:
|
||||
- label: is_or_was_diarized
|
||||
type: slot
|
||||
- label: DiarizationStatus
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: diarization_enabled → is_or_was_diarized + DiarizationStatus (Rule 53)
|
||||
|
||||
**Pattern**: Boolean flag migrated to status class for better expressivity
|
||||
|
||||
**Files Modified**:
|
||||
- VideoAudioAnnotation.yaml: Updated slots and slot_usage
|
||||
|
||||
**Archived**: modules/slots/archive/diarization_enabled_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/diarization_end_seconds
|
||||
revision:
|
||||
- label: temporal_extent
|
||||
|
|
@ -12946,8 +12985,19 @@ fixes:
|
|||
type: class
|
||||
- label: end_of_the_end
|
||||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: diarization_end_seconds → temporal_extent + TimeSpan + end_of_the_end (Rule 53)
|
||||
|
||||
**Pattern**: Flattened end seconds migrated to temporal_extent structured object
|
||||
|
||||
**Files Modified**:
|
||||
- VideoAudioAnnotation.yaml: Updated DiarizationSegment usage
|
||||
|
||||
**Archived**: modules/slots/archive/diarization_end_seconds_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/diarization_speaker_id
|
||||
revision:
|
||||
- label: contains_or_contained
|
||||
|
|
@ -12958,6 +13008,16 @@ fixes:
|
|||
type: slot
|
||||
- label: Identifier
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
notes: |
|
||||
MIGRATED 2026-01-25.
|
||||
|
||||
**Pattern**: diarization_speaker_id → contains_or_contained + Speaker + has_or_had_identifier
|
||||
|
||||
**Class**: Created Speaker.yaml (prov:Agent)
|
||||
**Files Modified**: VideoAudioAnnotation.yaml (DiarizationSegment)
|
||||
**Archived**: modules/slots/archive/diarization_speaker_id_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/diarization_speaker_label
|
||||
revision:
|
||||
- label: contains_or_contained
|
||||
|
|
@ -12968,6 +13028,15 @@ fixes:
|
|||
type: slot
|
||||
- label: Label
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
notes: |
|
||||
MIGRATED 2026-01-25.
|
||||
|
||||
**Pattern**: diarization_speaker_label → contains_or_contained + Speaker + has_or_had_label
|
||||
|
||||
**Files Modified**: VideoAudioAnnotation.yaml (DiarizationSegment)
|
||||
**Archived**: modules/slots/archive/diarization_speaker_label_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/diarization_start_seconds
|
||||
revision:
|
||||
- label: temporal_extent
|
||||
|
|
@ -12978,30 +13047,95 @@ fixes:
|
|||
type: slot
|
||||
- label: Timestamp
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
notes: |
|
||||
MIGRATED 2026-01-25.
|
||||
|
||||
**Pattern**: diarization_start_seconds → temporal_extent + TimeSpan + start_of_the_start
|
||||
|
||||
**Files Modified**: VideoAudioAnnotation.yaml (DiarizationSegment)
|
||||
**Archived**: modules/slots/archive/diarization_start_seconds_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/digital_confidence
|
||||
revision:
|
||||
- label: estimates_or_estimated
|
||||
type: slot
|
||||
- label: DigitalConfidence
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: digital_confidence → estimates_or_estimated + DigitalConfidence (Rule 53)
|
||||
|
||||
**Pattern**: String confidence migrated to structured DigitalConfidence class with numeric score
|
||||
|
||||
**Files Created**:
|
||||
- estimates_or_estimated.yaml: Generic estimation slot
|
||||
- DigitalConfidence.yaml: Structured confidence class
|
||||
|
||||
**Files Modified**:
|
||||
- LinkedInProfile.yaml: Updated DigitalProfessionalAssessment usage
|
||||
|
||||
**Archived**: modules/slots/archive/digital_confidence_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/digital_indicator
|
||||
revision:
|
||||
- label: emphasizes_or_emphasized
|
||||
type: slot
|
||||
- label: DigitalProficiency
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: digital_indicator → emphasizes_or_emphasized + DigitalProficiency (Rule 53)
|
||||
|
||||
**Pattern**: String indicator list migrated to structured DigitalProficiency class
|
||||
|
||||
**Files Created**:
|
||||
- emphasizes_or_emphasized.yaml: Generic emphasis slot
|
||||
- DigitalProficiency.yaml: Structured proficiency class
|
||||
|
||||
**Files Modified**:
|
||||
- LinkedInProfile.yaml: Updated DigitalProfessionalAssessment usage
|
||||
|
||||
**Archived**: modules/slots/archive/digital_indicator_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/digital_platform
|
||||
revision:
|
||||
- label: has_or_had_digital_presence
|
||||
type: slot
|
||||
- label: DigitalPlatform
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
notes: |
|
||||
MIGRATED 2026-01-25.
|
||||
|
||||
**Pattern**: digital_platform → has_or_had_digital_presence + DigitalPlatform
|
||||
|
||||
**Slot**: Created has_or_had_digital_presence.yaml (schema:mainEntityOfPage)
|
||||
**Class**: DigitalPlatform already existed
|
||||
|
||||
**Files Modified**: Custodian.yaml (replaced usages)
|
||||
**Archived**: modules/slots/archive/digital_platform_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/digital_platform_score
|
||||
revision:
|
||||
- label: has_or_had_score
|
||||
type: slot
|
||||
- label: DigitalPlatformScore
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
notes: |
|
||||
MIGRATED 2026-01-25.
|
||||
|
||||
**Pattern**: digital_platform_score → has_or_had_score + DigitalPlatformScore
|
||||
|
||||
**Class**: Created DigitalPlatformScore.yaml (sosa:Result)
|
||||
**Files Modified**: None (slot usage not found in classes, created class for future use)
|
||||
**Archived**: modules/slots/archive/digital_platform_score_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/digital_presence_type
|
||||
revision:
|
||||
- label: asserts_or_asserted
|
||||
|
|
@ -13022,6 +13156,23 @@ fixes:
|
|||
type: slot
|
||||
- label: DigitalProficiency
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: digital_professional → indicates_or_indicated (Rule 53)
|
||||
|
||||
**Pattern**: Replaced digital_professional slot with indicates_or_indicated pointing to DigitalProfessionalAssessment.
|
||||
NOTE: Revision asked for DigitalProficiency class, but DigitalProfessionalAssessment is the structured container used in LinkedInProfile.
|
||||
|
||||
**Files Created**:
|
||||
- indicates_or_indicated.yaml: Generic indication slot
|
||||
|
||||
**Files Modified**:
|
||||
- LinkedInProfile.yaml: Updated WhatsAppEnrichment usage
|
||||
|
||||
**Archived**: modules/slots/archive/digital_professional_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/digital_surrogate
|
||||
revision:
|
||||
- label: is_or_was_instantiated_by
|
||||
|
|
@ -13138,6 +13289,19 @@ fixes:
|
|||
- label: Unit
|
||||
type: class
|
||||
value: dissolve transition
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-25'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration Complete**: dissolve_count → has_or_had_quantity + Quantity (Rule 53)
|
||||
|
||||
**Pattern**: Integer count migrated to Quantity class with unit 'dissolve transition'
|
||||
|
||||
**Files Modified**:
|
||||
- VideoAnnotationTypes.yaml: Updated has_or_had_quantity usage to include dissolve counts
|
||||
|
||||
**Archived**: modules/slots/archive/dissolve_count_archived_20260125.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/dissolved_date
|
||||
revision:
|
||||
- label: is_or_was_dissolved_by
|
||||
|
|
@ -17133,6 +17297,15 @@ fixes:
|
|||
type: slot
|
||||
- label: DiarizationSegment
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
notes: |
|
||||
MIGRATED 2026-01-25.
|
||||
|
||||
**Pattern**: has_or_had_diarization_segment → contains_or_contained + DiarizationSegment
|
||||
|
||||
**Files Modified**: VideoAudioAnnotation.yaml (replaced usages)
|
||||
**Old Slot**: No physical file found (was inline).
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/has_or_had_documentation_source
|
||||
revision:
|
||||
- label: has_or_had_provenance
|
||||
|
|
@ -18129,4 +18302,195 @@ fixes:
|
|||
type: slot
|
||||
- label: MaximumHumidity
|
||||
type: class
|
||||
# https://nde.nl/ontology/hc/slot/hosts_branch
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_min
|
||||
revision:
|
||||
- label: has_or_had_policy
|
||||
type: slot
|
||||
- label: Humidity
|
||||
type: class
|
||||
- label: minimum_of_minimum
|
||||
type: slot
|
||||
- label: MinimumHumidity
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_target
|
||||
revision:
|
||||
- label: has_or_had_policy
|
||||
type: slot
|
||||
- label: Humidity
|
||||
type: class
|
||||
- label: has_or_had_target
|
||||
type: slot
|
||||
- label: TargetHumidity
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_tolerance
|
||||
revision:
|
||||
- label: has_or_had_policy
|
||||
type: slot
|
||||
- label: Humidity
|
||||
type: class
|
||||
- label: has_or_had_tolerance
|
||||
type: slot
|
||||
- label: HumidityTolerance
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/hypernym_event_type
|
||||
revision:
|
||||
- label: has_or_had_hypernym
|
||||
type: slot
|
||||
- label: EventType
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/ich_domain
|
||||
revision:
|
||||
- label: is_or_was_categorized_as
|
||||
type: slot
|
||||
- label: ICHDomain
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/ich_transmission_method
|
||||
revision:
|
||||
- label: transmits_or_transmitted_through
|
||||
type: slot
|
||||
- label: TransmissionMethod
|
||||
type: class
|
||||
- label: has_or_had_type
|
||||
type: slot
|
||||
- label: TransmissionMethodType
|
||||
type: class
|
||||
- label: includes_or_included
|
||||
type: slot
|
||||
- label: TransmissionMethodTypes
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/iconography
|
||||
revision:
|
||||
- label: has_or_had_symbolism
|
||||
type: slot
|
||||
- label: Iconography
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/id
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
- label: ID
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identification_qualifier
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
- label: Identifier
|
||||
type: class
|
||||
- label: has_or_had_qualifier
|
||||
type: slot
|
||||
- label: Qualifier
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identified_by
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
- label: Identifier
|
||||
type: class
|
||||
- label: is_or_was_created_by
|
||||
type: slot
|
||||
- label: Agent
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
- label: Identifier
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_format
|
||||
revision:
|
||||
- label: has_or_had_identifier
|
||||
type: slot
|
||||
- label: Identifier
|
||||
type: class
|
||||
- label: has_or_had_format
|
||||
type: slot
|
||||
- label: IdentifierFormat
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_format_used
|
||||
revision:
|
||||
- label: has_or_had_format
|
||||
type: slot
|
||||
- label: IdentifierFormat
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_lookup_score
|
||||
revision:
|
||||
- label: has_or_had_score
|
||||
type: slot
|
||||
- label: IdentifierLookupScore
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_scheme
|
||||
revision:
|
||||
- label: has_or_had_scheme
|
||||
type: slot
|
||||
- label: IdentifierScheme
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_url
|
||||
revision:
|
||||
- label: has_or_had_url
|
||||
type: slot
|
||||
- label: URL
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifier_value
|
||||
revision:
|
||||
- label: has_or_had_value
|
||||
type: slot
|
||||
- label: IdentifierValue
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/identifies_custodian
|
||||
revision:
|
||||
- label: identifies_or_identified
|
||||
type: slot
|
||||
- label: Custodian
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/iiif_compatible
|
||||
revision:
|
||||
- label: is_or_was_compatible_with
|
||||
type: slot
|
||||
- label: IIIF
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/iiif_support
|
||||
revision:
|
||||
- label: is_or_was_compatible_with
|
||||
type: slot
|
||||
- label: IIIF
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/illustration
|
||||
revision:
|
||||
- label: catalogues_or_catalogued
|
||||
type: slot
|
||||
- label: Illustration
|
||||
type: class
|
||||
- label: has_or_had_description
|
||||
type: slot
|
||||
- label: Description
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/image_url
|
||||
revision:
|
||||
- label: has_or_had_image
|
||||
type: slot
|
||||
- label: Image
|
||||
type: class
|
||||
- label: has_or_had_url
|
||||
type: slot
|
||||
- label: URL
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/impact_measurement
|
||||
revision:
|
||||
- label: measures_or_measured
|
||||
type: slot
|
||||
- label: ImpactMeasurement
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/implements_agenda
|
||||
revision:
|
||||
- label: implements_or_implemented
|
||||
type: slot
|
||||
- label: Agenda
|
||||
type: class
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/implements_auxiliary_platform
|
||||
revision:
|
||||
- label: is_or_was_related_to
|
||||
type: slot
|
||||
- label: WebPlatform
|
||||
type: class
|
||||
|
||||
# https://nde.nl/ontology/hc/slot/implements_digital_platform
|
||||
|
|
@ -70,6 +70,7 @@ export interface UMLNode {
|
|||
type: 'class' | 'enum' | 'entity' | 'slot';
|
||||
attributes?: { name: string; type: string }[];
|
||||
methods?: { name: string; returnType?: string }[];
|
||||
slotUsage?: string[]; // List of properties overridden in slot_usage (e.g., ["range", "description"])
|
||||
x?: number;
|
||||
y?: number;
|
||||
width?: number;
|
||||
|
|
@ -651,6 +652,20 @@ const UMLVisualizationInner: React.FC<UMLVisualizationProps> = ({
|
|||
});
|
||||
}
|
||||
|
||||
// Measure slotUsage widths
|
||||
if (node.slotUsage && node.slotUsage.length > 0) {
|
||||
// Header "SLOT USAGE OVERRIDES"
|
||||
const headerWidth = measureTextWidth("SLOT USAGE OVERRIDES", '10px', 'bold', sansSerifFont) + textPadding * 2;
|
||||
maxWidth = Math.max(maxWidth, headerWidth);
|
||||
|
||||
// Items
|
||||
node.slotUsage.forEach(item => {
|
||||
// "✦ item"
|
||||
const itemWidth = measureTextWidth(`✦ ${item}`, '12px', 'normal', monospaceFont) + textPadding * 2;
|
||||
maxWidth = Math.max(maxWidth, itemWidth);
|
||||
});
|
||||
}
|
||||
|
||||
// Clamp to max width
|
||||
return Math.min(maxWidth, maxNodeWidth);
|
||||
};
|
||||
|
|
@ -791,17 +806,20 @@ const UMLVisualizationInner: React.FC<UMLVisualizationProps> = ({
|
|||
association: workingLinks.filter(l => l.type === 'association').length,
|
||||
});
|
||||
|
||||
workingNodes.forEach(node => {
|
||||
// When showing attributes as edges, don't count attributes for node height
|
||||
const attributeCount = showAttributesAsEdges ? 0 : (node.attributes?.length || 0);
|
||||
const methodCount = node.methods?.length || 0;
|
||||
|
||||
// Calculate dynamic width based on content (also respects showAttributesAsEdges)
|
||||
node.width = calculateNodeWidth(node, showAttributesAsEdges);
|
||||
node.height = nodeHeaderHeight +
|
||||
(attributeCount > 0 ? attributeCount * attributeHeight + nodePadding : 0) +
|
||||
(methodCount > 0 ? methodCount * methodHeight + nodePadding : 0);
|
||||
});
|
||||
workingNodes.forEach(node => {
|
||||
// When showing attributes as edges, don't count attributes for node height
|
||||
const attributeCount = showAttributesAsEdges ? 0 : (node.attributes?.length || 0);
|
||||
const methodCount = node.methods?.length || 0;
|
||||
const slotUsageCount = node.slotUsage?.length || 0;
|
||||
|
||||
// Calculate dynamic width based on content (also respects showAttributesAsEdges)
|
||||
node.width = calculateNodeWidth(node, showAttributesAsEdges);
|
||||
node.height = nodeHeaderHeight +
|
||||
(attributeCount > 0 ? attributeCount * attributeHeight + nodePadding : 0) +
|
||||
(methodCount > 0 ? methodCount * methodHeight + nodePadding : 0) +
|
||||
(slotUsageCount > 0 ? 20 + slotUsageCount * attributeHeight + nodePadding : 0); // 20px for header
|
||||
});
|
||||
|
||||
|
||||
// When showAttributesAsEdges is true, create primitive type nodes and edges for attributes
|
||||
if (showAttributesAsEdges) {
|
||||
|
|
@ -2000,40 +2018,107 @@ const UMLVisualizationInner: React.FC<UMLVisualizationProps> = ({
|
|||
});
|
||||
}
|
||||
|
||||
// Draw methods section
|
||||
nodes.each(function(d) {
|
||||
if (!d.methods || d.methods.length === 0) return;
|
||||
// Draw methods section
|
||||
nodes.each(function(d) {
|
||||
if (!d.methods || d.methods.length === 0) return;
|
||||
|
||||
const nodeGroup = d3.select(this);
|
||||
const attributeCount = d.attributes?.length || 0;
|
||||
let yOffset = nodeHeaderHeight + nodePadding +
|
||||
(attributeCount > 0 ? attributeCount * attributeHeight + nodePadding : 0);
|
||||
const nodeGroup = d3.select(this);
|
||||
const attributeCount = d.attributes?.length || 0;
|
||||
let yOffset = nodeHeaderHeight + nodePadding +
|
||||
(attributeCount > 0 ? attributeCount * attributeHeight + nodePadding : 0);
|
||||
|
||||
// Methods divider
|
||||
nodeGroup.append('line')
|
||||
.attr('x1', 0)
|
||||
.attr('y1', yOffset - nodePadding)
|
||||
.attr('x2', d.width || defaultNodeWidth)
|
||||
.attr('y2', yOffset - nodePadding)
|
||||
.attr('stroke', '#0a3dfa')
|
||||
.attr('stroke-width', 1);
|
||||
// Methods divider
|
||||
nodeGroup.append('line')
|
||||
.attr('x1', 0)
|
||||
.attr('y1', yOffset - nodePadding)
|
||||
.attr('x2', d.width || defaultNodeWidth)
|
||||
.attr('y2', yOffset - nodePadding)
|
||||
.attr('stroke', '#0a3dfa')
|
||||
.attr('stroke-width', 1);
|
||||
|
||||
// Method entries
|
||||
d.methods.forEach((method, i) => {
|
||||
const methodText = method.returnType
|
||||
? `${method.name}(): ${method.returnType}`
|
||||
: `${method.name}()`;
|
||||
|
||||
nodeGroup.append('text')
|
||||
.attr('class', 'node-method')
|
||||
.attr('x', 10)
|
||||
.attr('y', yOffset + i * methodHeight)
|
||||
.attr('fill', '#172a59')
|
||||
.attr('font-size', '12px')
|
||||
.attr('font-family', "'Monaco', 'Courier New', monospace")
|
||||
.text(methodText);
|
||||
// Method entries
|
||||
d.methods.forEach((method, i) => {
|
||||
const methodText = method.returnType
|
||||
? `${method.name}(): ${method.returnType}`
|
||||
: `${method.name}()`;
|
||||
|
||||
nodeGroup.append('text')
|
||||
.attr('class', 'node-method')
|
||||
.attr('x', 10)
|
||||
.attr('y', yOffset + i * methodHeight)
|
||||
.attr('fill', '#172a59')
|
||||
.attr('font-size', '12px')
|
||||
.attr('font-family', "'Monaco', 'Courier New', monospace")
|
||||
.text(methodText);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Draw slotUsage section
|
||||
nodes.each(function(d) {
|
||||
if (!d.slotUsage || d.slotUsage.length === 0) return;
|
||||
|
||||
const nodeGroup = d3.select(this);
|
||||
const attributeCount = d.attributes?.length || 0;
|
||||
const methodCount = d.methods?.length || 0;
|
||||
|
||||
let yOffset = nodeHeaderHeight + nodePadding +
|
||||
(attributeCount > 0 ? attributeCount * attributeHeight + nodePadding : 0) +
|
||||
(methodCount > 0 ? methodCount * methodHeight + nodePadding : 0);
|
||||
|
||||
// Slot usage divider (green to match slot theme)
|
||||
nodeGroup.append('line')
|
||||
.attr('x1', 0)
|
||||
.attr('y1', yOffset - nodePadding)
|
||||
.attr('x2', d.width || defaultNodeWidth)
|
||||
.attr('y2', yOffset - nodePadding)
|
||||
.attr('stroke', '#10b981')
|
||||
.attr('stroke-width', 1)
|
||||
.attr('stroke-dasharray', '4,2'); // Dashed to indicate it's special
|
||||
|
||||
// Slot Usage Header
|
||||
// Background for header
|
||||
nodeGroup.append('rect')
|
||||
.attr('x', 2)
|
||||
.attr('y', yOffset - nodePadding + 2)
|
||||
.attr('width', (d.width || defaultNodeWidth) - 4)
|
||||
.attr('height', 16)
|
||||
.attr('fill', '#d1fae5') // Light emerald
|
||||
.attr('rx', 2);
|
||||
|
||||
nodeGroup.append('text')
|
||||
.attr('x', (d.width || defaultNodeWidth) / 2)
|
||||
.attr('y', yOffset - nodePadding + 14) // Center vertically in rect
|
||||
.attr('text-anchor', 'middle')
|
||||
.attr('fill', '#065f46') // Dark emerald
|
||||
.attr('font-size', '10px')
|
||||
.attr('font-weight', 'bold')
|
||||
.attr('text-transform', 'uppercase')
|
||||
.text('Slot Usage Overrides');
|
||||
|
||||
yOffset += 20; // Move down past header
|
||||
|
||||
// Slot usage entries
|
||||
d.slotUsage.forEach((item, i) => {
|
||||
// Bullet point (✦)
|
||||
nodeGroup.append('text')
|
||||
.attr('x', 10)
|
||||
.attr('y', yOffset + i * attributeHeight)
|
||||
.attr('fill', '#059669') // Emerald 600
|
||||
.attr('font-size', '10px')
|
||||
.text('✦'); // Sparkle/star icon
|
||||
|
||||
// Item text
|
||||
nodeGroup.append('text')
|
||||
.attr('class', 'node-slot-usage')
|
||||
.attr('x', 24)
|
||||
.attr('y', yOffset + i * attributeHeight)
|
||||
.attr('fill', '#064e3b') // Emerald 900
|
||||
.attr('font-size', '12px')
|
||||
.attr('font-family', "'Monaco', 'Courier New', monospace")
|
||||
.text(item);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Shared function to update all link positions - ensures edges stay attached to box borders
|
||||
const updateLinkPositions = () => {
|
||||
|
|
|
|||
|
|
@ -257,8 +257,8 @@ export interface SlotExportInfo {
|
|||
/** Classes that have slot_usage overrides for this slot */
|
||||
classesWithSlotUsage: Array<{
|
||||
className: string;
|
||||
/** Properties overridden in slot_usage (e.g., 'range', 'description', 'required') */
|
||||
overrides: string[];
|
||||
/** Properties overridden in slot_usage with their values */
|
||||
overrides: Array<{ property: string; value: string }>;
|
||||
}>;
|
||||
|
||||
/** The range type if it's a class or enum (for navigation) */
|
||||
|
|
@ -1568,17 +1568,33 @@ class LinkMLSchemaService {
|
|||
// Check if class has slot_usage for this slot
|
||||
if (classDef.slot_usage?.[slotName]) {
|
||||
const slotUsage = classDef.slot_usage[slotName];
|
||||
const overrides: string[] = [];
|
||||
const overrides: Array<{ property: string; value: string }> = [];
|
||||
|
||||
// Detect which properties are overridden
|
||||
if (slotUsage.range !== undefined) overrides.push('range');
|
||||
if (slotUsage.description !== undefined) overrides.push('description');
|
||||
if (slotUsage.required !== undefined) overrides.push('required');
|
||||
if (slotUsage.multivalued !== undefined) overrides.push('multivalued');
|
||||
if (slotUsage.pattern !== undefined) overrides.push('pattern');
|
||||
if (slotUsage.slot_uri !== undefined) overrides.push('slot_uri');
|
||||
if (slotUsage.identifier !== undefined) overrides.push('identifier');
|
||||
if (slotUsage.examples !== undefined) overrides.push('examples');
|
||||
// Detect which properties are overridden and capture values
|
||||
if (slotUsage.range !== undefined) {
|
||||
overrides.push({ property: 'range', value: String(slotUsage.range) });
|
||||
}
|
||||
if (slotUsage.description !== undefined) {
|
||||
overrides.push({ property: 'description', value: slotUsage.description });
|
||||
}
|
||||
if (slotUsage.required !== undefined) {
|
||||
overrides.push({ property: 'required', value: String(slotUsage.required) });
|
||||
}
|
||||
if (slotUsage.multivalued !== undefined) {
|
||||
overrides.push({ property: 'multivalued', value: String(slotUsage.multivalued) });
|
||||
}
|
||||
if (slotUsage.pattern !== undefined) {
|
||||
overrides.push({ property: 'pattern', value: slotUsage.pattern });
|
||||
}
|
||||
if (slotUsage.slot_uri !== undefined) {
|
||||
overrides.push({ property: 'slot_uri', value: slotUsage.slot_uri });
|
||||
}
|
||||
if (slotUsage.identifier !== undefined) {
|
||||
overrides.push({ property: 'identifier', value: String(slotUsage.identifier) });
|
||||
}
|
||||
if (slotUsage.examples !== undefined) {
|
||||
overrides.push({ property: 'examples', value: `(${slotUsage.examples.length} examples)` });
|
||||
}
|
||||
|
||||
exportInfo.classesWithSlotUsage.push({
|
||||
className,
|
||||
|
|
|
|||
|
|
@ -3059,3 +3059,25 @@
|
|||
.dark .wcms-only-item:hover:not(.selected) {
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
}
|
||||
|
||||
/* Profile Sources Section (Matches Email Semantics Section style) */
|
||||
.profile-sources-section {
|
||||
margin-top: 1rem;
|
||||
padding: 0.75rem;
|
||||
background: rgba(16, 185, 129, 0.05);
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(16, 185, 129, 0.15);
|
||||
}
|
||||
|
||||
.dark .profile-sources-section {
|
||||
background: rgba(16, 185, 129, 0.1);
|
||||
border-color: rgba(16, 185, 129, 0.25);
|
||||
}
|
||||
|
||||
/* Remove default styling from inner existing-source-urls when inside profile-sources-section */
|
||||
.profile-sources-section .existing-source-urls {
|
||||
background: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -491,11 +491,16 @@ export default function EntityReviewPage() {
|
|||
// Initialize search fields from profile data
|
||||
setSearchName(data.name || '');
|
||||
setSearchInstitution(data.wcms_identifiers?.institution_name || '');
|
||||
// Auto-select first pending candidate
|
||||
// Auto-select candidate: prioritize matched, then pending
|
||||
const matchedCandidate = data.match_candidates?.find((c: MatchCandidate) => c.review_decision === 'match');
|
||||
const pendingCandidate = data.match_candidates?.find((c: MatchCandidate) => !c.reviewed);
|
||||
if (pendingCandidate) {
|
||||
setSelectedCandidate(pendingCandidate);
|
||||
fetchLinkedinProfile(pendingCandidate.linkedin_ppid);
|
||||
|
||||
// Select matched first, then pending, otherwise none (or could select first available)
|
||||
const candidateToSelect = matchedCandidate || pendingCandidate;
|
||||
|
||||
if (candidateToSelect) {
|
||||
setSelectedCandidate(candidateToSelect);
|
||||
fetchLinkedinProfile(candidateToSelect.linkedin_ppid);
|
||||
}
|
||||
} catch (err) {
|
||||
setError(err instanceof Error ? err.message : 'Unknown error');
|
||||
|
|
@ -1796,6 +1801,68 @@ export default function EntityReviewPage() {
|
|||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Existing Source URLs (Moved from bottom) */}
|
||||
{selectedProfile.source_urls && selectedProfile.source_urls.length > 0 && (
|
||||
<div className="profile-sources-section">
|
||||
<div className="section-header">
|
||||
<span className="section-title">
|
||||
{language === 'nl' ? '🌐 Extra Bronnen' : '🌐 Additional Sources'}
|
||||
</span>
|
||||
</div>
|
||||
<div className="existing-source-urls">
|
||||
{selectedProfile.source_urls.map((source: SourceUrlItem) => {
|
||||
// Extract path from URL for display (full URL minus protocol)
|
||||
let displayUrl = source.source_url;
|
||||
try {
|
||||
const urlObj = new URL(source.source_url);
|
||||
// Show hostname + path (truncate if too long)
|
||||
displayUrl = urlObj.hostname + urlObj.pathname;
|
||||
if (displayUrl.length > 50) {
|
||||
displayUrl = displayUrl.substring(0, 47) + '...';
|
||||
}
|
||||
} catch {
|
||||
displayUrl = source.source_domain || source.source_url;
|
||||
}
|
||||
return (
|
||||
<div key={source.source_id} className="source-url-item">
|
||||
<div className="source-url-header">
|
||||
<a
|
||||
href={source.source_url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="source-url-link"
|
||||
title={source.source_url}
|
||||
>
|
||||
<Globe size={12} />
|
||||
{displayUrl}
|
||||
</a>
|
||||
{source.provides_match && (
|
||||
<span
|
||||
className="provides-match-badge"
|
||||
title={language === 'nl' ? 'Bron volstaat als match' : 'Provides match'}
|
||||
>
|
||||
<CheckCircle size={10} />
|
||||
{language === 'nl' ? 'Match' : 'Match'}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{source.comment && (
|
||||
<div className="source-url-comment">
|
||||
"{source.comment}"
|
||||
</div>
|
||||
)}
|
||||
{source.added_at && (
|
||||
<div className="source-url-date">
|
||||
{new Date(source.added_at).toLocaleDateString()}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Candidate selector */}
|
||||
|
|
@ -2114,64 +2181,7 @@ export default function EntityReviewPage() {
|
|||
|
||||
{/* Other Source URL Section */}
|
||||
<div className="source-url-section">
|
||||
{/* Display existing source URLs */}
|
||||
{selectedProfile?.source_urls && selectedProfile.source_urls.length > 0 && (
|
||||
<div className="existing-source-urls">
|
||||
<div className="source-urls-header">
|
||||
<Globe size={14} />
|
||||
{language === 'nl' ? 'Toegevoegde bronnen' : 'Added sources'}
|
||||
</div>
|
||||
{selectedProfile.source_urls.map((source: SourceUrlItem) => {
|
||||
// Extract path from URL for display (full URL minus protocol)
|
||||
let displayUrl = source.source_url;
|
||||
try {
|
||||
const urlObj = new URL(source.source_url);
|
||||
// Show hostname + path (truncate if too long)
|
||||
displayUrl = urlObj.hostname + urlObj.pathname;
|
||||
if (displayUrl.length > 50) {
|
||||
displayUrl = displayUrl.substring(0, 47) + '...';
|
||||
}
|
||||
} catch {
|
||||
displayUrl = source.source_domain || source.source_url;
|
||||
}
|
||||
return (
|
||||
<div key={source.source_id} className="source-url-item">
|
||||
<div className="source-url-header">
|
||||
<a
|
||||
href={source.source_url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="source-url-link"
|
||||
title={source.source_url}
|
||||
>
|
||||
<Globe size={12} />
|
||||
{displayUrl}
|
||||
</a>
|
||||
{source.provides_match && (
|
||||
<span
|
||||
className="provides-match-badge"
|
||||
title={language === 'nl' ? 'Bron volstaat als match' : 'Provides match'}
|
||||
>
|
||||
<CheckCircle size={10} />
|
||||
{language === 'nl' ? 'Match' : 'Match'}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
{source.comment && (
|
||||
<div className="source-url-comment">
|
||||
"{source.comment}"
|
||||
</div>
|
||||
)}
|
||||
{source.added_at && (
|
||||
<div className="source-url-date">
|
||||
{new Date(source.added_at).toLocaleDateString()}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
)}
|
||||
{/* Existing source URLs moved to profile details */}
|
||||
|
||||
<button
|
||||
className="toggle-source-url-btn"
|
||||
|
|
|
|||
|
|
@ -930,11 +930,22 @@ const buildSlotUMLDiagram = (
|
|||
for (const className of slotExportInfo.classesUsingSlot) {
|
||||
// Check if this class also has slot_usage overrides
|
||||
const overrides = classOverrides.get(className);
|
||||
const attributes = overrides && overrides.length > 0
|
||||
? [{ name: 'slot_usage', type: overrides.join(', ') }]
|
||||
: [];
|
||||
const node: UMLNode = {
|
||||
id: className,
|
||||
name: className,
|
||||
type: 'class',
|
||||
attributes: [],
|
||||
methods: [],
|
||||
};
|
||||
|
||||
if (overrides && overrides.length > 0) {
|
||||
node.slotUsage = overrides;
|
||||
}
|
||||
|
||||
addNode(className, 'class', attributes);
|
||||
if (!addedNodes.has(className)) {
|
||||
addedNodes.add(className);
|
||||
nodes.push(node);
|
||||
}
|
||||
|
||||
// Link from class to slot (subject → predicate)
|
||||
links.push({
|
||||
|
|
@ -950,11 +961,20 @@ const buildSlotUMLDiagram = (
|
|||
// Skip if already added (declared the slot)
|
||||
if (addedNodes.has(className)) continue;
|
||||
|
||||
const attributes = overrides.length > 0
|
||||
? [{ name: 'slot_usage', type: overrides.join(', ') }]
|
||||
: [];
|
||||
const node: UMLNode = {
|
||||
id: className,
|
||||
name: className,
|
||||
type: 'class',
|
||||
attributes: [],
|
||||
methods: [],
|
||||
};
|
||||
|
||||
if (overrides && overrides.length > 0) {
|
||||
node.slotUsage = overrides;
|
||||
}
|
||||
|
||||
addNode(className, 'class', attributes);
|
||||
addedNodes.add(className);
|
||||
nodes.push(node);
|
||||
|
||||
// Link from class to slot - these customize but don't declare
|
||||
links.push({
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"generated": "2026-01-25T11:47:39.065Z",
|
||||
"generated": "2026-01-26T00:41:04.603Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3045,
|
||||
"totalFiles": 3044,
|
||||
"categoryCounts": {
|
||||
"main": 4,
|
||||
"class": 1026,
|
||||
"class": 1033,
|
||||
"enum": 154,
|
||||
"slot": 1857,
|
||||
"slot": 1849,
|
||||
"module": 4
|
||||
},
|
||||
"categories": [
|
||||
|
|
@ -1490,6 +1490,11 @@
|
|||
"path": "modules/classes/DeviceTypes.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DiarizationStatus",
|
||||
"path": "modules/classes/DiarizationStatus.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalArchive",
|
||||
"path": "modules/classes/DigitalArchive.yaml",
|
||||
|
|
@ -1505,11 +1510,21 @@
|
|||
"path": "modules/classes/DigitalArchiveRecordSetTypes.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalConfidence",
|
||||
"path": "modules/classes/DigitalConfidence.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPlatform",
|
||||
"path": "modules/classes/DigitalPlatform.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPlatformScore",
|
||||
"path": "modules/classes/DigitalPlatformScore.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPlatformType",
|
||||
"path": "modules/classes/DigitalPlatformType.yaml",
|
||||
|
|
@ -1575,6 +1590,21 @@
|
|||
"path": "modules/classes/DigitalPlatformV2TransformationMetadata.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPresence",
|
||||
"path": "modules/classes/DigitalPresence.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalPresenceType",
|
||||
"path": "modules/classes/DigitalPresenceType.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DigitalProficiency",
|
||||
"path": "modules/classes/DigitalProficiency.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "DimArchives",
|
||||
"path": "modules/classes/DimArchives.yaml",
|
||||
|
|
@ -4045,6 +4075,11 @@
|
|||
"path": "modules/classes/SourceWork.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "Speaker",
|
||||
"path": "modules/classes/Speaker.yaml",
|
||||
"category": "class"
|
||||
},
|
||||
{
|
||||
"name": "SpecialCollection",
|
||||
"path": "modules/classes/SpecialCollection.yaml",
|
||||
|
|
@ -6697,71 +6732,11 @@
|
|||
"path": "modules/slots/description_type.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "device_count",
|
||||
"path": "modules/slots/device_count.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_confidence",
|
||||
"path": "modules/slots/diarization_confidence.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_enabled",
|
||||
"path": "modules/slots/diarization_enabled.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_end_seconds",
|
||||
"path": "modules/slots/diarization_end_seconds.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_speaker_id",
|
||||
"path": "modules/slots/diarization_speaker_id.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_speaker_label",
|
||||
"path": "modules/slots/diarization_speaker_label.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "diarization_start_seconds",
|
||||
"path": "modules/slots/diarization_start_seconds.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_confidence",
|
||||
"path": "modules/slots/digital_confidence.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_indicator",
|
||||
"path": "modules/slots/digital_indicator.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_platform",
|
||||
"path": "modules/slots/digital_platform.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_platform_score",
|
||||
"path": "modules/slots/digital_platform_score.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_presence_type",
|
||||
"path": "modules/slots/digital_presence_type.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_professional",
|
||||
"path": "modules/slots/digital_professional.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "digital_surrogate",
|
||||
"path": "modules/slots/digital_surrogate.yaml",
|
||||
|
|
@ -6812,11 +6787,6 @@
|
|||
"path": "modules/slots/dissolution_date.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "dissolve_count",
|
||||
"path": "modules/slots/dissolve_count.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "dissolved_date",
|
||||
"path": "modules/slots/dissolved_date.yaml",
|
||||
|
|
@ -7022,6 +6992,11 @@
|
|||
"path": "modules/slots/emic_name.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "emphasizes_or_emphasized",
|
||||
"path": "modules/slots/emphasizes_or_emphasized.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "employer_linkedin_url",
|
||||
"path": "modules/slots/employer_linkedin_url.yaml",
|
||||
|
|
@ -7187,6 +7162,11 @@
|
|||
"path": "modules/slots/estimated_volume.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "estimates_or_estimated",
|
||||
"path": "modules/slots/estimates_or_estimated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "etag",
|
||||
"path": "modules/slots/etag.yaml",
|
||||
|
|
@ -9192,6 +9172,11 @@
|
|||
"path": "modules/slots/has_or_had_digital_platform.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_digital_presence",
|
||||
"path": "modules/slots/has_or_had_digital_presence.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "has_or_had_direction",
|
||||
"path": "modules/slots/has_or_had_direction.yaml",
|
||||
|
|
@ -10562,6 +10547,11 @@
|
|||
"path": "modules/slots/includes_timestamp.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "indicates_or_indicated",
|
||||
"path": "modules/slots/indicates_or_indicated.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "industry_benchmark_high",
|
||||
"path": "modules/slots/industry_benchmark_high.yaml",
|
||||
|
|
@ -10967,6 +10957,11 @@
|
|||
"path": "modules/slots/is_or_was_derived_from.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_diarized",
|
||||
"path": "modules/slots/is_or_was_diarized.yaml",
|
||||
"category": "slot"
|
||||
},
|
||||
{
|
||||
"name": "is_or_was_encompassed_by",
|
||||
"path": "modules/slots/is_or_was_encompassed_by.yaml",
|
||||
|
|
|
|||
|
|
@ -28,8 +28,13 @@ imports:
|
|||
- ../slots/has_or_had_main_part
|
||||
- ./MainPart
|
||||
- ./BudgetType
|
||||
- ../slots/digitization_budget
|
||||
- ../slots/documented_by
|
||||
- ../slots/allocates_or_allocated
|
||||
- ./DigitizationBudget
|
||||
- ../slots/has_or_had_quantity
|
||||
- ../classes/Quantity
|
||||
- ../slots/has_or_had_unit
|
||||
- ../classes/Unit
|
||||
- ../slots/employee_benefits_expenses
|
||||
- ../slots/endowment_draw
|
||||
- ../slots/external_funding
|
||||
- ../slots/fiscal_year_end
|
||||
|
|
@ -119,8 +124,7 @@ classes:
|
|||
- has_or_had_type
|
||||
# MIGRATED 2026-01-22: capital_budget → has_or_had_main_part + MainPart per slot_fixes.yaml revision
|
||||
- has_or_had_main_part
|
||||
- digitization_budget
|
||||
- documented_by
|
||||
- allocates_or_allocated
|
||||
- endowment_draw
|
||||
- external_funding
|
||||
- fiscal_year_end
|
||||
|
|
@ -286,9 +290,14 @@ classes:
|
|||
preservation_budget:
|
||||
range: decimal
|
||||
required: false
|
||||
digitization_budget:
|
||||
range: decimal
|
||||
allocates_or_allocated:
|
||||
range: DigitizationBudget
|
||||
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
|
||||
|
|
@ -413,7 +422,11 @@ classes:
|
|||
acquisition_budget: 2000000.0
|
||||
personnel_budget: 22000000.0
|
||||
preservation_budget: 1500000.0
|
||||
digitization_budget: 500000.0
|
||||
allocates_or_allocated:
|
||||
- has_or_had_quantity:
|
||||
has_or_had_value: 500000.0
|
||||
has_or_had_unit:
|
||||
has_or_had_label: "EUR"
|
||||
innovation_budget: 750000.0
|
||||
external_funding: 15000000.0
|
||||
internal_funding: 25000000.0
|
||||
|
|
@ -447,7 +460,11 @@ classes:
|
|||
part_type: capital_budget
|
||||
currency_code: EUR
|
||||
personnel_budget: 5200000.0
|
||||
digitization_budget: 800000.0
|
||||
allocates_or_allocated:
|
||||
- has_or_had_quantity:
|
||||
has_or_had_value: 800000.0
|
||||
has_or_had_unit:
|
||||
has_or_had_label: "EUR"
|
||||
external_funding: 6000000.0
|
||||
internal_funding: 2500000.0
|
||||
approval_date: '2024-03-01'
|
||||
|
|
|
|||
|
|
@ -40,8 +40,8 @@ imports:
|
|||
# REMOVED 2026-01-18: ../slots/collection_type_ref - migrated to is_or_was_categorized_as + CollectionType (Rule 53)
|
||||
- ../slots/has_or_had_curation_activity
|
||||
- ../slots/custodial_history
|
||||
- ../slots/digital_surrogate_url
|
||||
- ../slots/digitization_status
|
||||
- ../slots/is_or_was_instantiated_by
|
||||
- ./DigitalInstantiation
|
||||
- ../slots/extent
|
||||
- ../slots/extent_item
|
||||
- ../slots/has_or_had_finding_aid
|
||||
|
|
@ -127,8 +127,7 @@ classes:
|
|||
- has_or_had_curation_activity
|
||||
- custodial_history
|
||||
- has_or_had_custodian_type
|
||||
- digital_surrogate_url
|
||||
- digitization_status
|
||||
- is_or_was_instantiated_by
|
||||
- extent
|
||||
- extent_item
|
||||
- has_or_had_finding_aid
|
||||
|
|
@ -456,6 +455,19 @@ classes:
|
|||
language:
|
||||
- nl
|
||||
- en
|
||||
digitization_status: PARTIAL
|
||||
part_of_custodian_collection: https://nde.nl/ontology/hc/custodian-collection/nationaal-archief
|
||||
is_or_was_instantiated_by:
|
||||
range: DigitalInstantiation
|
||||
multivalued: true
|
||||
inlined: true
|
||||
description: |
|
||||
Digital surrogates (URL) or digitization status.
|
||||
MIGRATED from digital_surrogate_url and digitization_status (2026-01-25).
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_status:
|
||||
has_or_had_label: PARTIAL
|
||||
has_or_had_url:
|
||||
url_value: "https://www.nationaalarchief.nl/onderzoeken/archief/1.04.02/download"
|
||||
description: Partial digitization with download link
|
||||
part_of_custodian_collection: https://nde.nl/ontology/hc/custodian-collection/nationaal-archief
|
||||
description: VOC archival fonds at Nationaal Archief
|
||||
|
|
|
|||
39
schemas/20251121/linkml/modules/classes/ContactDetails.yaml
Normal file
39
schemas/20251121/linkml/modules/classes/ContactDetails.yaml
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
id: https://nde.nl/ontology/hc/class/ContactDetails
|
||||
name: ContactDetails
|
||||
title: Contact Details Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
vcard: http://www.w3.org/2006/vcard/ns#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/includes_or_included
|
||||
- ./EmailAddress
|
||||
|
||||
classes:
|
||||
ContactDetails:
|
||||
class_uri: schema:ContactPoint
|
||||
description: >-
|
||||
Structured contact information for an entity.
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `schema:ContactPoint`
|
||||
- **Close**: `vcard:VCard`
|
||||
|
||||
slots:
|
||||
- includes_or_included
|
||||
|
||||
slot_usage:
|
||||
includes_or_included:
|
||||
range: EmailAddress
|
||||
description: Email addresses included in these contact details.
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.2
|
||||
specificity_rationale: Universal contact info class.
|
||||
|
|
@ -23,7 +23,9 @@ imports:
|
|||
- ../slots/has_or_had_custodian_type
|
||||
- ../slots/legal_status
|
||||
- ../slots/place_designation
|
||||
- ../slots/digital_platform
|
||||
# MIGRATED 2026-01-25: digital_platform → has_or_had_digital_presence (Rule 53)
|
||||
- ../slots/has_or_had_digital_presence
|
||||
# - ../slots/digital_platform # REMOVED
|
||||
- ../slots/has_or_had_collection # was: has_collection - migrated per Rule 53 (2025-01-15)
|
||||
- ../slots/organizational_structure
|
||||
- ../slots/has_or_had_organizational_change_event
|
||||
|
|
@ -196,7 +198,8 @@ classes:
|
|||
- created
|
||||
- has_or_had_custodian_type
|
||||
- has_or_had_policy # was: data_license_policy - migrated per Rule 53 (2026-01-22)
|
||||
- digital_platform
|
||||
# MIGRATED 2026-01-25: digital_platform → has_or_had_digital_presence (Rule 53)
|
||||
- has_or_had_digital_presence
|
||||
- is_or_was_encompassed_by # was: encompassing_body - migrated per Rule 53 (2025-01-15)
|
||||
- has_or_had_exhibition
|
||||
- gift_shop
|
||||
|
|
@ -235,11 +238,15 @@ classes:
|
|||
range: CustodianPlace
|
||||
inlined: true
|
||||
required: false
|
||||
digital_platform:
|
||||
# MIGRATED 2026-01-25: digital_platform → has_or_had_digital_presence (Rule 53)
|
||||
has_or_had_digital_presence:
|
||||
range: DigitalPlatform
|
||||
multivalued: true
|
||||
required: false
|
||||
inlined_as_list: true
|
||||
description: |
|
||||
Digital platform(s) or online presence(s) associated with this custodian.
|
||||
MIGRATED from digital_platform per slot_fixes.yaml (Rule 53, 2026-01-25).
|
||||
has_or_had_collection: # was: has_collection - migrated per Rule 53 (2025-01-15)
|
||||
range: CustodianCollection
|
||||
multivalued: true
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@ imports:
|
|||
- ./CollectionManagementSystem
|
||||
- ./ReconstructedEntity
|
||||
- ../slots/preservation_level
|
||||
- ../slots/digitization_status
|
||||
- ../slots/is_or_was_instantiated_by
|
||||
- ./DigitalInstantiation
|
||||
# REMOVED 2026-01-18: ../slots/collection_name - migrated to has_or_had_label + Label (Rule 53)
|
||||
- ../slots/has_or_had_label
|
||||
- ./Label
|
||||
|
|
@ -36,7 +37,6 @@ imports:
|
|||
- ../slots/is_or_was_generated_by # was: was_generated_by - migrated per Rule 53
|
||||
- ../slots/has_or_had_custodian_type
|
||||
- ../slots/custody_history
|
||||
- ../slots/digital_surrogate
|
||||
- ../slots/id
|
||||
- ../slots/has_or_had_managed_by_cm
|
||||
- ../slots/has_or_had_provenance # was: provenance_note - migrated per Rule 53/56 (2026-01-18)
|
||||
|
|
@ -102,8 +102,7 @@ classes:
|
|||
# REMOVED 2026-01-22: collection_type - migrated to has_or_had_content + CollectionContent (Rule 53)
|
||||
- has_or_had_custodian_type
|
||||
- custody_history
|
||||
- digital_surrogate
|
||||
- digitization_status
|
||||
- is_or_was_instantiated_by
|
||||
- extent
|
||||
- id
|
||||
- has_or_had_managed_by_cm
|
||||
|
|
@ -216,18 +215,13 @@ classes:
|
|||
has_or_had_access_right:
|
||||
range: string
|
||||
required: false
|
||||
digital_surrogate:
|
||||
range: string
|
||||
is_or_was_instantiated_by:
|
||||
range: DigitalInstantiation
|
||||
multivalued: true
|
||||
required: false
|
||||
digitization_status:
|
||||
range: string
|
||||
required: false
|
||||
examples:
|
||||
- value: PARTIAL
|
||||
description: 30% of collection digitized as of 2024
|
||||
- value: COMPLETE
|
||||
description: Full collection digitized 2019-2021
|
||||
inlined: true
|
||||
description: |
|
||||
Digital surrogates or digitization status.
|
||||
MIGRATED from digital_surrogate and digitization_status (2026-01-25).
|
||||
preservation_level:
|
||||
range: string
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
# DiarizationStatus class
|
||||
# Status of speaker diarization process
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0 (LinkML single source of truth), 53 (migration from diarization_enabled)
|
||||
# Migration source: diarization_enabled slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DiarizationStatus
|
||||
name: diarization_status_class
|
||||
title: DiarizationStatus Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
DiarizationStatus:
|
||||
class_uri: schema:ActionStatusType
|
||||
description: |
|
||||
Represents the status of a speaker diarization process (enabled, disabled, completed, failed).
|
||||
|
||||
**MIGRATION SOURCE**: Created from diarization_enabled slot migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary**: `schema:ActionStatusType` - Status of an action
|
||||
|
||||
exact_mappings:
|
||||
- schema:ActionStatusType
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Status code or identifier (e.g., "COMPLETED", "ENABLED").
|
||||
range: uriorcurie
|
||||
required: false
|
||||
has_or_had_label:
|
||||
description: Human-readable status description.
|
||||
range: string
|
||||
required: true
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.8
|
||||
specificity_rationale: Specific to media analysis processes.
|
||||
|
||||
comments:
|
||||
- "CREATED from diarization_enabled migration per slot_fixes.yaml (Rule 53)"
|
||||
- "Tracks status of diarization process"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: Enabled
|
||||
has_or_had_identifier: https://schema.org/ActiveActionStatus
|
||||
description: Diarization enabled/active
|
||||
- value:
|
||||
has_or_had_label: Completed
|
||||
has_or_had_identifier: https://schema.org/CompletedActionStatus
|
||||
description: Diarization completed
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
# DigitalConfidence class
|
||||
# Represents confidence assessment for digital attributes/skills
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 0b (Type/Types pattern), 38 (slot centralization), 39 (RiC-O naming), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_confidence → estimates_or_estimated + DigitalConfidence
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalConfidence
|
||||
name: DigitalConfidence
|
||||
title: Digital Confidence Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
dqv: http://www.w3.org/ns/dqv#
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_score
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_type
|
||||
|
||||
classes:
|
||||
DigitalConfidence:
|
||||
class_uri: dqv:QualityMeasurement
|
||||
description: |
|
||||
Confidence assessment for digital attributes, skills, or proficiency.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
DigitalConfidence captures the certainty level associated with an inferred
|
||||
or extracted digital attribute (e.g., digital proficiency inferred from a profile).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **DQV**: `dqv:QualityMeasurement` - quality/confidence metric
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_confidence` (float) → estimates_or_estimated + DigitalConfidence
|
||||
|
||||
exact_mappings:
|
||||
- dqv:QualityMeasurement
|
||||
|
||||
slots:
|
||||
- has_or_had_score
|
||||
- has_or_had_description
|
||||
- has_or_had_type
|
||||
|
||||
slot_usage:
|
||||
has_or_had_score:
|
||||
description: |
|
||||
Numeric confidence score (0.0-1.0).
|
||||
Inherits broad range (Any) but overrides description/examples.
|
||||
range: float
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
maximum_value: 1.0
|
||||
examples:
|
||||
- value: 0.85
|
||||
description: High confidence estimation
|
||||
has_or_had_type:
|
||||
description: Type of confidence assessment (e.g., PROFICIENCY_INFERENCE)
|
||||
examples:
|
||||
- value: SKILL_INFERENCE
|
||||
has_or_had_description:
|
||||
description: Explanation of the confidence assessment
|
||||
examples:
|
||||
- value: "Inferred from explicit skill endorsements and project history"
|
||||
|
||||
annotations:
|
||||
custodian_types: '["P"]'
|
||||
custodian_types_rationale: Digital confidence applies to person profiles (custodian staff)
|
||||
specificity_score: 0.60
|
||||
specificity_rationale: Specific to person profile enrichment
|
||||
|
||||
comments:
|
||||
- "Represents confidence in digital attribute assessments"
|
||||
- "Migrated from digital_confidence slot per slot_fixes.yaml"
|
||||
- "Used in LinkedInProfile enrichment"
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
id: https://nde.nl/ontology/hc/class/DigitalInstantiation
|
||||
name: DigitalInstantiation
|
||||
description: >-
|
||||
Representation of a digital surrogate, digitization status, or digital manifestation of an entity.
|
||||
Captures details about digital availability, format, and resolution.
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_url
|
||||
- ../classes/URL
|
||||
- ../slots/has_or_had_status
|
||||
- ../classes/Status
|
||||
- ../slots/has_or_had_label
|
||||
- ../classes/Label
|
||||
|
||||
classes:
|
||||
DigitalInstantiation:
|
||||
description: >-
|
||||
A digital manifestation or surrogate of a heritage entity.
|
||||
MIGRATED from digital_surrogate, digital_surrogate_url, and digitization_status slots (2026-01-25).
|
||||
slots:
|
||||
- has_or_had_url
|
||||
- has_or_had_status
|
||||
- has_or_had_label
|
||||
slot_usage:
|
||||
has_or_had_url:
|
||||
range: URL
|
||||
description: "URL to the digital surrogate or download endpoint."
|
||||
has_or_had_status:
|
||||
range: Status
|
||||
description: "Digitization status (e.g., PARTIAL, COMPLETE)."
|
||||
has_or_had_label:
|
||||
range: Label
|
||||
description: "Label or name of the digital instantiation."
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
# DigitalPlatformScore class
|
||||
# Score for digital platform relevance/specificity
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 53
|
||||
# Migration source: digital_platform_score slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPlatformScore
|
||||
name: digital_platform_score_class
|
||||
title: Digital Platform Score Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
sosa: http://www.w3.org/ns/sosa/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_score
|
||||
|
||||
classes:
|
||||
DigitalPlatformScore:
|
||||
class_uri: sosa:Result
|
||||
description: |
|
||||
Represents a score for digital platform relevance or specificity.
|
||||
|
||||
**MIGRATION SOURCE**: Created from digital_platform_score slot migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary**: `sosa:Result` - Result of an observation/scoring
|
||||
|
||||
exact_mappings:
|
||||
- sosa:Result
|
||||
|
||||
slots:
|
||||
- has_or_had_score
|
||||
|
||||
slot_usage:
|
||||
has_or_had_score:
|
||||
description: The score value (0.0-1.0).
|
||||
range: float
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
maximum_value: 1.0
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.2
|
||||
specificity_rationale: "Used for scoring digital platform relevance."
|
||||
65
schemas/20251121/linkml/modules/classes/DigitalPresence.yaml
Normal file
65
schemas/20251121/linkml/modules/classes/DigitalPresence.yaml
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# DigitalPresence class
|
||||
# Represents a digital presence instance (wrapper)
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 53
|
||||
# Migration source: digital_presence_type slot per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPresence
|
||||
name: digital_presence_class
|
||||
title: Digital Presence Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
crm: http://www.cidoc-crm.org/cidoc-crm/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_type
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./DigitalPresenceType
|
||||
- ./DigitalPresenceTypes
|
||||
|
||||
classes:
|
||||
DigitalPresence:
|
||||
class_uri: crm:E1_CRM_Entity
|
||||
description: |
|
||||
Represents a digital presence being asserted about (e.g. as primary).
|
||||
Wrapper that links a specific presence instance (URI) to its type classification.
|
||||
|
||||
**MIGRATION SOURCE**: Created from digital_presence_type slot migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Pattern**: Replaces `digital_presence_type` slot on assertion with structured object:
|
||||
- `has_or_had_identifier`: URI of the presence (SocialMediaProfile, Website, etc.)
|
||||
- `has_or_had_type`: Classification (DigitalPresenceType)
|
||||
|
||||
exact_mappings:
|
||||
- crm:E1_CRM_Entity
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_type
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: URI of the digital presence instance (e.g. hc:social-media/fb).
|
||||
range: uriorcurie
|
||||
required: true
|
||||
has_or_had_type:
|
||||
description: Type classification of this presence.
|
||||
range: DigitalPresenceType
|
||||
required: true
|
||||
inlined: true
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.5
|
||||
specificity_rationale: "Used for asserting properties of digital presences."
|
||||
|
||||
comments:
|
||||
- "CREATED from digital_presence_type migration per slot_fixes.yaml (Rule 53)"
|
||||
- "Wrapper for linking presence instance to its type"
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
# DigitalPresenceType class (Abstract Base)
|
||||
# Taxonomy for digital presence types
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 0b, 53
|
||||
# Migration source: DigitalPresenceTypeEnum per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPresenceType
|
||||
name: digital_presence_type_class
|
||||
title: DigitalPresenceType Class (Abstract)
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
DigitalPresenceType:
|
||||
class_uri: schema:Intangible
|
||||
abstract: true
|
||||
description: |
|
||||
Abstract base class for digital presence taxonomy.
|
||||
|
||||
**MIGRATION SOURCE**: Replaces DigitalPresenceTypeEnum (Rule 53, 2026-01-25).
|
||||
|
||||
**Pattern**: Type/Types (Rule 0b)
|
||||
- DigitalPresenceType (this file): Abstract base
|
||||
- DigitalPresenceTypes (separate file): Concrete subclasses
|
||||
|
||||
exact_mappings:
|
||||
- schema:Intangible
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Unique identifier for this presence type.
|
||||
range: uriorcurie
|
||||
required: false
|
||||
has_or_had_label:
|
||||
description: Human-readable name of this presence type.
|
||||
range: string
|
||||
required: true
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.6
|
||||
type_types_pattern: base
|
||||
type_types_related: DigitalPresenceTypes
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
# DigitalPresenceTypes class (Concrete Subclasses)
|
||||
# Concrete classes for digital presence taxonomy
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0, 0b, 53
|
||||
# Migration source: DigitalPresenceTypeEnum per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalPresenceTypes
|
||||
name: digital_presence_types_class
|
||||
title: DigitalPresenceTypes Class (Concrete)
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
dcat: http://www.w3.org/ns/dcat#
|
||||
foaf: http://xmlns.com/foaf/0.1/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ./DigitalPresenceType
|
||||
|
||||
classes:
|
||||
# PRIMARY
|
||||
WebsitePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:WebSite
|
||||
description: "Traditional website - informational web presence."
|
||||
annotations: { enum_equivalent: WEBSITE }
|
||||
|
||||
WebApplicationPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:WebApplication
|
||||
description: "Interactive web application with user accounts/features."
|
||||
annotations: { enum_equivalent: WEB_APPLICATION }
|
||||
|
||||
DiscoveryPortalPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: dcat:Catalog
|
||||
description: "Collection discovery and search portal."
|
||||
annotations: { enum_equivalent: DISCOVERY_PORTAL }
|
||||
|
||||
DigitalRepositoryPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: dcat:Dataset
|
||||
description: "Digital object repository for preservation and access."
|
||||
annotations: { enum_equivalent: DIGITAL_REPOSITORY }
|
||||
|
||||
ApiServicePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: dcat:DataService
|
||||
description: "Programmatic API access to data/services."
|
||||
annotations: { enum_equivalent: API_SERVICE }
|
||||
|
||||
# SECONDARY
|
||||
ProjectWebsitePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: foaf:Project
|
||||
description: "Project-specific website (grant-funded, thematic)."
|
||||
annotations: { enum_equivalent: PROJECT_WEBSITE }
|
||||
|
||||
ExhibitionMicrositePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:ExhibitionEvent
|
||||
description: "Temporary exhibition website/portal."
|
||||
annotations: { enum_equivalent: EXHIBITION_MICROSITE }
|
||||
|
||||
MobileAppPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:MobileApplication
|
||||
description: "Native or hybrid mobile application."
|
||||
annotations: { enum_equivalent: MOBILE_APP }
|
||||
|
||||
LearningPlatformPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:LearningResource
|
||||
description: "Learning management system or educational platform."
|
||||
annotations: { enum_equivalent: LEARNING_PLATFORM }
|
||||
|
||||
VirtualTourPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:VirtualLocation
|
||||
description: "360-degree or immersive virtual tour experience."
|
||||
annotations: { enum_equivalent: VIRTUAL_TOUR }
|
||||
|
||||
# THIRD PARTY
|
||||
SocialMediaPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: foaf:OnlineAccount
|
||||
description: "Social media profile on third-party platform."
|
||||
annotations: { enum_equivalent: SOCIAL_MEDIA }
|
||||
|
||||
MessagingServicePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:Message
|
||||
description: "Messaging/chat service presence."
|
||||
annotations: { enum_equivalent: MESSAGING_SERVICE }
|
||||
|
||||
MetaversePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:VirtualLocation
|
||||
description: "Presence in metaverse or virtual world platform."
|
||||
annotations: { enum_equivalent: METAVERSE_PRESENCE }
|
||||
|
||||
# ARCHIVED
|
||||
ArchivedWebsitePresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:archivedAt
|
||||
description: "Historical/archived website preserved in web archive."
|
||||
annotations: { enum_equivalent: ARCHIVED_WEBSITE }
|
||||
|
||||
# IOT (Physical Digital)
|
||||
IoTBeaconPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:Thing
|
||||
description: "Bluetooth/NFC beacon for location-based services."
|
||||
annotations: { enum_equivalent: IOT_BEACON }
|
||||
|
||||
IoTKioskPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:Thing
|
||||
description: "Interactive kiosk or touch screen display."
|
||||
annotations: { enum_equivalent: IOT_KIOSK }
|
||||
|
||||
IoTSensorPresenceType:
|
||||
is_a: DigitalPresenceType
|
||||
class_uri: schema:Thing
|
||||
description: "Environmental or monitoring sensor."
|
||||
annotations: { enum_equivalent: IOT_SENSOR }
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
# DigitalProficiency class
|
||||
# Represents a digital skill, tool, or competency
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 0b (Type/Types pattern), 38 (slot centralization), 39 (RiC-O naming), 53 (slot_fixes.yaml)
|
||||
# Migration: digital_indicator → emphasizes_or_emphasized + DigitalProficiency
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DigitalProficiency
|
||||
name: DigitalProficiency
|
||||
title: Digital Proficiency Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
skos: http://www.w3.org/2004/02/skos/core#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_type
|
||||
|
||||
classes:
|
||||
DigitalProficiency:
|
||||
class_uri: schema:DefinedTerm
|
||||
description: |
|
||||
A digital skill, tool, competency, or proficiency indicator.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
DigitalProficiency represents a specific digital capability (e.g., "Python",
|
||||
"Data Analysis", "CMS Management") identified in a person's profile.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Schema.org**: `schema:DefinedTerm` - defined concept (skill)
|
||||
- **SKOS**: `skos:Concept` - concept in a scheme
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `digital_indicator` (string list) → emphasizes_or_emphasized + DigitalProficiency
|
||||
- `digital_professional` (boolean) → indicates_or_indicated + DigitalProficiency
|
||||
|
||||
exact_mappings:
|
||||
- schema:DefinedTerm
|
||||
|
||||
close_mappings:
|
||||
- skos:Concept
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_description
|
||||
- has_or_had_type
|
||||
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Name of the proficiency (e.g., "Python", "Data Science")
|
||||
required: true
|
||||
examples:
|
||||
- value: "Python"
|
||||
- value: "Linked Data"
|
||||
has_or_had_type:
|
||||
description: Category of proficiency (LANGUAGE, TOOL, CONCEPT, etc.)
|
||||
examples:
|
||||
- value: PROGRAMMING_LANGUAGE
|
||||
- value: METHODOLOGY
|
||||
|
||||
annotations:
|
||||
custodian_types: '["P"]'
|
||||
custodian_types_rationale: Digital proficiency applies to person profiles
|
||||
specificity_score: 0.60
|
||||
specificity_rationale: Specific to person profile enrichment and skills analysis
|
||||
|
||||
comments:
|
||||
- "Represents specific digital skills/indicators"
|
||||
- "Migrated from digital_indicator string list"
|
||||
- "Used in DigitalProfessionalAssessment"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Python"
|
||||
has_or_had_type: "PROGRAMMING_LANGUAGE"
|
||||
description: Python programming skill
|
||||
- value:
|
||||
has_or_had_label: "Collection Management Systems"
|
||||
has_or_had_type: "DOMAIN_TOOL"
|
||||
description: CMS proficiency
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
id: https://nde.nl/ontology/hc/class/DigitizationBudget
|
||||
name: DigitizationBudget
|
||||
description: >-
|
||||
Representation of a budget allocated for digitization activities.
|
||||
MIGRATED from digitization_budget slot (2026-01-25).
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_quantity
|
||||
- ../classes/Quantity
|
||||
- ../slots/has_or_had_unit
|
||||
- ../classes/Unit
|
||||
classes:
|
||||
DigitizationBudget:
|
||||
description: Budget allocated for digitization.
|
||||
slots:
|
||||
- has_or_had_quantity
|
||||
- has_or_had_unit
|
||||
|
|
@ -25,7 +25,7 @@ imports:
|
|||
- ./PermissionTypes
|
||||
- ../slots/has_or_had_custodian_type
|
||||
- ../slots/diocese_name
|
||||
- ../slots/ecclesiastical_province
|
||||
- ../slots/originates_or_originated_from
|
||||
# MIGRATED 2026-01-22: founding_date_diocese → is_or_was_part_of + Diocese (Rule 53)
|
||||
- ../slots/is_or_was_part_of
|
||||
- ./Diocese
|
||||
|
|
@ -49,7 +49,7 @@ classes:
|
|||
- requires_or_required # was: canonical_access_rule - migrated 2026-01-22
|
||||
- has_or_had_custodian_type
|
||||
- diocese_name
|
||||
- ecclesiastical_province
|
||||
- originates_or_originated_from
|
||||
- is_or_was_part_of # was: founding_date_diocese - migrated per Rule 53 (2026-01-22)
|
||||
- hold_or_held_record_set_type
|
||||
- specificity_annotation
|
||||
|
|
@ -83,10 +83,16 @@ classes:
|
|||
range: string
|
||||
examples:
|
||||
- value: Archdiocese of Utrecht
|
||||
ecclesiastical_province:
|
||||
range: string
|
||||
originates_or_originated_from:
|
||||
range: Diocese
|
||||
description: |
|
||||
The diocese from which this archive originates (and is likely part of).
|
||||
MIGRATED from ecclesiastical_province per Rule 53 (2026-01-25).
|
||||
examples:
|
||||
- value: Province of Utrecht
|
||||
- value:
|
||||
diocese_name: Diocese of Utrecht
|
||||
is_or_was_located_in:
|
||||
has_or_had_label: Province of Utrecht
|
||||
# MIGRATED 2026-01-22: founding_date_diocese → is_or_was_part_of + Diocese (Rule 53)
|
||||
is_or_was_part_of:
|
||||
description: |
|
||||
|
|
@ -152,7 +158,10 @@ classes:
|
|||
has_or_had_description: Archive of a bishopric (diocese) # was: type_description - migrated per Rule 53/56 (2026-01-16)
|
||||
diocese_name: Diocese of 's-Hertogenbosch
|
||||
archdiocese_name: Archdiocese of Utrecht
|
||||
ecclesiastical_province: Province of Utrecht
|
||||
originates_or_originated_from:
|
||||
diocese_name: Diocese of 's-Hertogenbosch
|
||||
is_or_was_located_in:
|
||||
has_or_had_label: Province of Utrecht
|
||||
# MIGRATED 2026-01-22: founding_date_diocese → is_or_was_part_of + Diocese (Rule 53)
|
||||
is_or_was_part_of:
|
||||
diocese_name: "Diocese of 's-Hertogenbosch"
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ imports:
|
|||
- ../slots/has_or_had_identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/description
|
||||
- ../slots/is_or_was_located_in
|
||||
- ./EcclesiasticalProvince
|
||||
- ./FoundingEvent
|
||||
|
||||
classes:
|
||||
|
|
@ -63,6 +65,7 @@ classes:
|
|||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
- description
|
||||
- is_or_was_located_in
|
||||
|
||||
attributes:
|
||||
diocese_id:
|
||||
|
|
@ -97,12 +100,7 @@ classes:
|
|||
examples:
|
||||
- value: "Archdiocese of Utrecht"
|
||||
|
||||
ecclesiastical_province:
|
||||
description: |
|
||||
Name of the ecclesiastical province containing this diocese.
|
||||
range: string
|
||||
examples:
|
||||
- value: "Province of Utrecht"
|
||||
# ecclesiastical_province migrated to is_or_was_located_in + EcclesiasticalProvince (Rule 53)
|
||||
|
||||
denomination:
|
||||
description: |
|
||||
|
|
@ -115,6 +113,15 @@ classes:
|
|||
- value: "Eastern Orthodox"
|
||||
|
||||
slot_usage:
|
||||
is_or_was_located_in:
|
||||
range: EcclesiasticalProvince
|
||||
description: |
|
||||
The ecclesiastical province this diocese belongs to.
|
||||
MIGRATED from ecclesiastical_province per Rule 53 (2026-01-25).
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Province of Utrecht"
|
||||
description: Part of the Province of Utrecht
|
||||
is_or_was_founded_through:
|
||||
description: |
|
||||
The founding event of this diocese.
|
||||
|
|
@ -141,7 +148,8 @@ classes:
|
|||
diocese_id: "wd:Q1808831"
|
||||
diocese_name: "Diocese of Utrecht"
|
||||
archdiocese_name: "Archdiocese of Utrecht"
|
||||
ecclesiastical_province: "Province of Utrecht"
|
||||
is_or_was_located_in:
|
||||
has_or_had_label: "Province of Utrecht"
|
||||
denomination: "Roman Catholic"
|
||||
is_or_was_founded_through:
|
||||
temporal_extent:
|
||||
|
|
@ -154,7 +162,8 @@ classes:
|
|||
diocese_id: "hc:diocese/s-hertogenbosch"
|
||||
diocese_name: "Diocese of 's-Hertogenbosch"
|
||||
archdiocese_name: "Archdiocese of Utrecht"
|
||||
ecclesiastical_province: "Province of Utrecht"
|
||||
is_or_was_located_in:
|
||||
has_or_had_label: "Province of Utrecht"
|
||||
denomination: "Roman Catholic"
|
||||
is_or_was_founded_through:
|
||||
temporal_extent:
|
||||
|
|
|
|||
60
schemas/20251121/linkml/modules/classes/EADIdentifier.yaml
Normal file
60
schemas/20251121/linkml/modules/classes/EADIdentifier.yaml
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# EADIdentifier class
|
||||
# Represents an Encoded Archival Description (EAD) identifier
|
||||
#
|
||||
# Created: 2026-01-25
|
||||
# Rule compliance: 0b (Type/Types pattern), 38 (slot centralization), 39 (RiC-O naming), 53 (slot_fixes.yaml)
|
||||
# Migration: ead_id → has_or_had_identifier + EADIdentifier
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/EADIdentifier
|
||||
name: EADIdentifier
|
||||
title: EAD Identifier Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ./Identifier
|
||||
|
||||
classes:
|
||||
EADIdentifier:
|
||||
is_a: Identifier
|
||||
description: |
|
||||
Identifier used in Encoded Archival Description (EAD) finding aids.
|
||||
|
||||
**DEFINITION**:
|
||||
|
||||
Uniquely identifies a finding aid or archival description component
|
||||
within the EAD standard context.
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Schema.org**: `schema:PropertyValue`
|
||||
|
||||
**Migrated From** (per slot_fixes.yaml):
|
||||
- `ead_id` (string) → has_or_had_identifier + EADIdentifier
|
||||
|
||||
slot_usage:
|
||||
identifier_scheme:
|
||||
equals_string: "EAD"
|
||||
has_or_had_type:
|
||||
description: Type of EAD identifier (e.g., FINDING_AID_ID, COMPONENT_ID)
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_code: EAD_ID
|
||||
has_or_had_label: EAD Identifier
|
||||
|
||||
annotations:
|
||||
custodian_types: '["A"]'
|
||||
custodian_types_rationale: EAD identifiers are specific to archives
|
||||
specificity_score: 0.80
|
||||
specificity_rationale: Specific to archival description standards
|
||||
|
||||
examples:
|
||||
- value:
|
||||
identifier_value: "NL-HaNA_2.21.006.50"
|
||||
identifier_scheme: "EAD"
|
||||
description: "National Archives EAD identifier"
|
||||
49
schemas/20251121/linkml/modules/classes/EBook.yaml
Normal file
49
schemas/20251121/linkml/modules/classes/EBook.yaml
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
id: https://nde.nl/ontology/hc/class/EBook
|
||||
name: EBook
|
||||
title: EBook Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
bf: http://id.loc.gov/ontologies/bibframe/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_url
|
||||
- ./URL
|
||||
|
||||
classes:
|
||||
EBook:
|
||||
class_uri: schema:EBook
|
||||
description: >-
|
||||
A digital book or publication in electronic format.
|
||||
|
||||
Used to represent the electronic manifestation of an ExhibitionCatalog or Book.
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `schema:EBook`
|
||||
- **Close**: `bf:Electronic` (BIBFRAME Carrier)
|
||||
|
||||
exact_mappings:
|
||||
- schema:EBook
|
||||
close_mappings:
|
||||
- bf:Electronic
|
||||
|
||||
slots:
|
||||
- has_or_had_url
|
||||
|
||||
slot_usage:
|
||||
has_or_had_url:
|
||||
range: URL
|
||||
required: true
|
||||
description: >-
|
||||
The URL where the eBook is available (download, purchase, or view).
|
||||
Uses structured URL class.
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.3
|
||||
specificity_rationale: Specific manifestation class for digital publications.
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
id: https://nde.nl/ontology/hc/class/EcclesiasticalProvince
|
||||
name: EcclesiasticalProvince
|
||||
title: Ecclesiastical Province Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
org: http://www.w3.org/ns/org#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
EcclesiasticalProvince:
|
||||
class_uri: org:Organization
|
||||
description: >-
|
||||
An ecclesiastical province is a large jurisdiction of religious government,
|
||||
consisting of several dioceses (one archdiocese and several suffragan dioceses).
|
||||
|
||||
**Usage**:
|
||||
Used to model the hierarchical location of a Diocese.
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `org:Organization` (Administrative unit)
|
||||
- **Close**: `schema:Organization`
|
||||
|
||||
exact_mappings:
|
||||
- org:Organization
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_identifier
|
||||
|
||||
annotations:
|
||||
custodian_types: '["H"]'
|
||||
specificity_score: 0.8
|
||||
specificity_rationale: Highly specific to ecclesiastical hierarchy.
|
||||
51
schemas/20251121/linkml/modules/classes/Edition.yaml
Normal file
51
schemas/20251121/linkml/modules/classes/Edition.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
id: https://nde.nl/ontology/hc/class/Edition
|
||||
name: Edition
|
||||
title: Edition Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
bf: http://id.loc.gov/ontologies/bibframe/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_note
|
||||
|
||||
classes:
|
||||
Edition:
|
||||
class_uri: bf:Edition
|
||||
description: >-
|
||||
Information relating to the edition of a work or event.
|
||||
|
||||
Used to capture edition numbers (e.g. "25th edition") and statements
|
||||
(e.g. "Revised and expanded edition").
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `bf:Edition`
|
||||
- **Close**: `schema:bookEdition` (as property, promoted to class here)
|
||||
|
||||
exact_mappings:
|
||||
- bf:Edition
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
- has_or_had_note
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Edition number or identifier (e.g., "1", "25", "IX").
|
||||
has_or_had_label:
|
||||
description: Edition name or label (e.g., "Silver Jubilee Edition").
|
||||
has_or_had_note:
|
||||
description: Edition statement or descriptive note.
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.4
|
||||
specificity_rationale: Common bibliographic and event metadata.
|
||||
45
schemas/20251121/linkml/modules/classes/Editor.yaml
Normal file
45
schemas/20251121/linkml/modules/classes/Editor.yaml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
id: https://nde.nl/ontology/hc/class/Editor
|
||||
name: Editor
|
||||
title: Editor Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
bibo: http://purl.org/ontology/bibo/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_role
|
||||
- ../slots/has_or_had_affiliation
|
||||
|
||||
classes:
|
||||
Editor:
|
||||
class_uri: schema:Person
|
||||
description: >-
|
||||
A person or organization responsible for editing a publication or work.
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `schema:Person` or `schema:Organization` (Role-based)
|
||||
- **Close**: `bibo:Editor`
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_identifier
|
||||
- has_or_had_role
|
||||
- has_or_had_affiliation
|
||||
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Name of the editor.
|
||||
has_or_had_role:
|
||||
description: Specific editorial role (e.g., "Editor-in-Chief", "Guest Editor").
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.5
|
||||
specificity_rationale: Common bibliographic role.
|
||||
47
schemas/20251121/linkml/modules/classes/Education.yaml
Normal file
47
schemas/20251121/linkml/modules/classes/Education.yaml
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
id: https://nde.nl/ontology/hc/class/Education
|
||||
name: Education
|
||||
title: Education Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/temporal_extent
|
||||
- ./TimeSpan
|
||||
- ../slots/has_or_had_description
|
||||
|
||||
classes:
|
||||
Education:
|
||||
class_uri: schema:EducationalOccupationalCredential
|
||||
description: >-
|
||||
An educational background entry, credential, or degree program.
|
||||
|
||||
Used to model education history in profiles (e.g. LinkedIn) or heritage education context.
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `schema:EducationalOccupationalCredential`
|
||||
- **Close**: `schema:Course`
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_identifier
|
||||
- temporal_extent
|
||||
- has_or_had_description
|
||||
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: Name of the degree, certificate, or institution.
|
||||
temporal_extent:
|
||||
description: Time period of the education (start/end years).
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.6
|
||||
specificity_rationale: Specific to person/staff profiles.
|
||||
38
schemas/20251121/linkml/modules/classes/EmailAddress.yaml
Normal file
38
schemas/20251121/linkml/modules/classes/EmailAddress.yaml
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
id: https://nde.nl/ontology/hc/class/EmailAddress
|
||||
name: EmailAddress
|
||||
title: Email Address Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
vcard: http://www.w3.org/2006/vcard/ns#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../metadata
|
||||
- ../slots/has_or_had_label
|
||||
|
||||
classes:
|
||||
EmailAddress:
|
||||
class_uri: schema:email
|
||||
description: >-
|
||||
An email address.
|
||||
|
||||
**Ontology Alignment**:
|
||||
- **Primary**: `schema:email` (property promoted to class for structure if needed, or just value)
|
||||
- **Close**: `vcard:Email`
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_label:
|
||||
description: The email address string (e.g., info@example.com).
|
||||
pattern: "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.1
|
||||
specificity_rationale: Basic datatype class.
|
||||
|
|
@ -45,7 +45,8 @@ imports:
|
|||
- ../slots/contributor
|
||||
- ../slots/has_or_had_custodian_type
|
||||
- ../slots/doi
|
||||
- ../slots/ebook_url
|
||||
- ../slots/is_or_was_instantiated_as
|
||||
- ./EBook
|
||||
- ../slots/editor
|
||||
- ../slots/has_or_had_essay
|
||||
- ../slots/illustration
|
||||
|
|
@ -114,7 +115,7 @@ classes:
|
|||
- contributor
|
||||
- has_or_had_custodian_type
|
||||
- doi
|
||||
- ebook_url
|
||||
- is_or_was_instantiated_as
|
||||
- editor
|
||||
- has_or_had_essay
|
||||
- illustration
|
||||
|
|
@ -369,11 +370,19 @@ classes:
|
|||
range: uri
|
||||
examples:
|
||||
- value: https://www.rijksmuseum.nl/media/vermeer-catalog.pdf
|
||||
ebook_url:
|
||||
required: false
|
||||
range: uri
|
||||
is_or_was_instantiated_as:
|
||||
range: EBook
|
||||
inlined: true
|
||||
multivalued: true
|
||||
description: >-
|
||||
Electronic version (eBook) of the catalog.
|
||||
MIGRATED from ebook_url per Rule 53 (2026-01-25).
|
||||
examples:
|
||||
- value: https://www.amazon.com/dp/B0XXXXX
|
||||
- value:
|
||||
has_or_had_url:
|
||||
has_or_had_url: "https://www.amazon.com/dp/B0XXXXX"
|
||||
has_or_had_type: "purchase_page"
|
||||
description: eBook available on Amazon
|
||||
price:
|
||||
required: false
|
||||
range: string
|
||||
|
|
|
|||
|
|
@ -90,6 +90,10 @@ imports:
|
|||
- ../slots/was_retrieved_at # was: date_retrieved - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./Timestamp
|
||||
- ../slots/de
|
||||
# MIGRATED 2026-01-25: ead_id → has_or_had_identifier + EADIdentifier (Rule 53)
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./Identifier
|
||||
- ./EADIdentifier
|
||||
- ../slots/ead_id
|
||||
- ../slots/en
|
||||
- ../slots/end
|
||||
|
|
@ -277,7 +281,8 @@ classes:
|
|||
- creator
|
||||
- custodian
|
||||
- finding_aid_description
|
||||
- ead_id
|
||||
# MIGRATED 2026-01-25: ead_id → has_or_had_identifier (Rule 53)
|
||||
- has_or_had_identifier
|
||||
- has_or_had_external_resource
|
||||
- finding_aid_note
|
||||
- has_or_had_type
|
||||
|
|
@ -317,6 +322,18 @@ classes:
|
|||
required: true
|
||||
slug:
|
||||
required: true
|
||||
# MIGRATED 2026-01-25: ead_id → has_or_had_identifier (Rule 53)
|
||||
has_or_had_identifier:
|
||||
range: EADIdentifier
|
||||
description: |
|
||||
EAD Identifier for the finding aid.
|
||||
MIGRATED from ead_id (string) to EADIdentifier class per Rule 53.
|
||||
inlined: true
|
||||
examples:
|
||||
- value:
|
||||
identifier_value: "NL-HaNA_2.21.006.50"
|
||||
identifier_scheme: "EAD"
|
||||
description: National Archives EAD identifier
|
||||
has_or_had_type:
|
||||
required: true
|
||||
range: FindingAidType
|
||||
|
|
|
|||
|
|
@ -53,8 +53,12 @@ imports:
|
|||
- ../slots/is_or_was_published
|
||||
- ./Publication
|
||||
- ../slots/doi
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
- ../slots/has_or_had_time_interval
|
||||
- ./TimeInterval
|
||||
- ../slots/duration
|
||||
- ../slots/edition_statement
|
||||
- ../slots/has_or_had_edition
|
||||
- ./Edition
|
||||
- ../slots/extent_text
|
||||
- ../slots/file_number
|
||||
- ../slots/folio_count
|
||||
|
|
@ -149,8 +153,9 @@ classes:
|
|||
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
|
||||
- is_or_was_published
|
||||
- doi
|
||||
- duration
|
||||
- edition_statement
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53)
|
||||
- has_or_had_time_interval
|
||||
- has_or_had_edition
|
||||
- extent_text
|
||||
- file_number
|
||||
- folio_count
|
||||
|
|
@ -227,13 +232,22 @@ classes:
|
|||
examples:
|
||||
- value: 'xii, 324 p., [8] p. of plates : ill. ; 24 cm'
|
||||
- value: '1 atlas (42 maps) : col. ; 38 cm'
|
||||
duration:
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
has_or_had_time_interval:
|
||||
required: false
|
||||
range: string
|
||||
range: TimeInterval
|
||||
inlined: true
|
||||
description: |
|
||||
Duration of the audiovisual carrier.
|
||||
MIGRATED from duration (string) to TimeInterval class.
|
||||
examples:
|
||||
- value: PT45M30S
|
||||
description: 45 minutes 30 seconds
|
||||
- value: 01:32:15
|
||||
- value:
|
||||
duration_value: PT45M30S
|
||||
duration_description: 45 minutes 30 seconds
|
||||
description: Audio recording duration
|
||||
- value:
|
||||
duration_value: 01:32:15
|
||||
description: Duration in HH:MM:SS format
|
||||
has_or_had_type:
|
||||
required: false
|
||||
range: BindingType
|
||||
|
|
@ -373,12 +387,22 @@ classes:
|
|||
begin_of_the_begin: "1623-01-01"
|
||||
publication_date_string: "1623"
|
||||
description: Year-level precision
|
||||
edition_statement:
|
||||
required: false
|
||||
range: string
|
||||
has_or_had_edition:
|
||||
range: Edition
|
||||
inlined: true
|
||||
multivalued: true
|
||||
description: |
|
||||
Edition statement(s) for the carrier.
|
||||
MIGRATED from edition_statement per Rule 53 (2026-01-25).
|
||||
Uses Edition class with has_or_had_note for the statement text.
|
||||
examples:
|
||||
- value: First edition
|
||||
- value: Second edition, revised and enlarged
|
||||
- value:
|
||||
has_or_had_note: "First edition"
|
||||
description: Standard edition statement
|
||||
- value:
|
||||
has_or_had_note: "Second edition, revised and enlarged"
|
||||
has_or_had_label: "2nd Edition"
|
||||
description: Complex edition statement
|
||||
copy_number:
|
||||
required: false
|
||||
range: string
|
||||
|
|
|
|||
|
|
@ -15,7 +15,8 @@ imports:
|
|||
- ../slots/event_id
|
||||
- ../slots/has_or_had_audience_size
|
||||
- ../slots/has_or_had_custodian_type
|
||||
- ../slots/edition_number
|
||||
- ../slots/has_or_had_edition
|
||||
- ./Edition
|
||||
- ../slots/event_cancelled_reason
|
||||
- ../slots/event_date_end
|
||||
- ../slots/event_date_start
|
||||
|
|
@ -74,7 +75,7 @@ classes:
|
|||
slots:
|
||||
- audience_size
|
||||
- has_or_had_custodian_type
|
||||
- edition_number
|
||||
- has_or_had_edition
|
||||
- event_cancelled_reason
|
||||
- event_date_end
|
||||
- event_date_start
|
||||
|
|
@ -121,11 +122,17 @@ classes:
|
|||
inlined: false
|
||||
examples:
|
||||
- value: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam
|
||||
edition_number:
|
||||
required: false
|
||||
range: integer
|
||||
has_or_had_edition:
|
||||
range: Edition
|
||||
inlined: true
|
||||
multivalued: true
|
||||
description: |
|
||||
Edition of the event (e.g. 29th edition).
|
||||
MIGRATED from edition_number per Rule 53 (2026-01-25).
|
||||
examples:
|
||||
- value: 29
|
||||
- value:
|
||||
has_or_had_identifier: "29"
|
||||
has_or_had_label: "29th Edition"
|
||||
description: Pride Amsterdam 2024
|
||||
event_date_start:
|
||||
required: true
|
||||
|
|
@ -239,7 +246,8 @@ classes:
|
|||
|
||||
'
|
||||
instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam
|
||||
edition_number: 29
|
||||
has_or_had_edition:
|
||||
- has_or_had_identifier: "29"
|
||||
event_date_start: '2024-08-03'
|
||||
event_date_end: '2024-08-10'
|
||||
event_location:
|
||||
|
|
@ -261,7 +269,8 @@ classes:
|
|||
|
||||
'
|
||||
instance_of: https://nde.nl/ontology/hc/heritage-form/pride-amsterdam
|
||||
edition_number: 25
|
||||
has_or_had_edition:
|
||||
- has_or_had_identifier: "25"
|
||||
event_date_start: '2020-08-01'
|
||||
event_date_end: '2020-08-08'
|
||||
event_status: CANCELLED
|
||||
|
|
|
|||
|
|
@ -20,7 +20,11 @@ imports:
|
|||
# REMOVED 2026-01-22: data_format migrated to has_or_had_output + OutputData (Rule 53)
|
||||
- ../slots/is_or_was_decommissioned_at # was: decommission_date - migrated per Rule 53 (2026-01-23)
|
||||
- ./Timestamp # Range for is_or_was_decommissioned_at
|
||||
- ../slots/device_count
|
||||
# MIGRATED 2026-01-25: device_count → has_or_had_quantity + Quantity (Rule 53)
|
||||
- ../slots/has_or_had_quantity
|
||||
- ../slots/has_or_had_unit
|
||||
- ./Quantity
|
||||
- ./Unit
|
||||
# MIGRATED 2026-01-25: device_id → has_or_had_identifier + Identifier (Rule 53)
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./Identifier
|
||||
|
|
@ -119,7 +123,8 @@ classes:
|
|||
- coverage_area
|
||||
- has_or_had_output # was: data_format - migrated per Rule 53 (2026-01-22)
|
||||
- is_or_was_decommissioned_at # was: decommission_date - migrated per Rule 53 (2026-01-23)
|
||||
- device_count
|
||||
# MIGRATED 2026-01-25: device_count → has_or_had_quantity (Rule 53)
|
||||
- has_or_had_quantity
|
||||
# MIGRATED 2026-01-25: device_id → has_or_had_identifier (Rule 53)
|
||||
- has_or_had_identifier
|
||||
# MIGRATED 2026-01-25: device_manufacturer → is_or_was_created_by (Rule 53)
|
||||
|
|
@ -225,15 +230,30 @@ classes:
|
|||
- value:
|
||||
has_or_had_label: Samsung
|
||||
description: Kiosk manufacturer
|
||||
device_count:
|
||||
range: integer
|
||||
minimum_value: 1
|
||||
# MIGRATED 2026-01-25: device_count → has_or_had_quantity (Rule 53)
|
||||
has_or_had_quantity:
|
||||
description: |
|
||||
MIGRATED from device_count per slot_fixes.yaml (Rule 53, 2026-01-25).
|
||||
Count of devices in this network/group.
|
||||
Uses Quantity class with unit "device".
|
||||
range: Quantity
|
||||
inlined: true
|
||||
required: false
|
||||
examples:
|
||||
- value: 24
|
||||
- value:
|
||||
quantity_value: 24
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
description: 24 beacons in gallery network
|
||||
- value: 150
|
||||
- value:
|
||||
quantity_value: 150
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
description: 150 climate sensors across facility
|
||||
- value: 1
|
||||
- value:
|
||||
quantity_value: 1
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
description: Single information kiosk
|
||||
coverage_area:
|
||||
range: string
|
||||
|
|
@ -405,7 +425,10 @@ classes:
|
|||
has_or_had_label: Estimote Proximity Beacon
|
||||
is_or_was_created_by:
|
||||
has_or_had_label: Estimote
|
||||
device_count: 24
|
||||
has_or_had_quantity:
|
||||
quantity_value: 24
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
coverage_area: Gallery of Honour (main wing)
|
||||
purpose: Proximity triggers for mobile app content near masterpieces
|
||||
connectivity_type:
|
||||
|
|
@ -428,7 +451,10 @@ classes:
|
|||
has_or_had_label: Sensirion SHT45
|
||||
is_or_was_created_by:
|
||||
has_or_had_label: Sensirion
|
||||
device_count: 150
|
||||
has_or_had_quantity:
|
||||
quantity_value: 150
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
coverage_area: All galleries and storage areas
|
||||
purpose: Temperature and humidity monitoring for preservation
|
||||
connectivity_type:
|
||||
|
|
@ -465,7 +491,10 @@ classes:
|
|||
has_or_had_label: Samsung Kiosk 24 Touch
|
||||
is_or_was_created_by:
|
||||
has_or_had_label: Samsung
|
||||
device_count: 4
|
||||
has_or_had_quantity:
|
||||
quantity_value: 4
|
||||
has_or_had_unit:
|
||||
unit_value: "device"
|
||||
coverage_area: Main entrance lobby
|
||||
purpose: Self-service collection search and wayfinding for visitors
|
||||
has_or_had_specification: 24-inch touchscreen, 1920x1080 resolution, wheelchair accessible
|
||||
|
|
|
|||
|
|
@ -24,8 +24,13 @@ imports:
|
|||
- ../slots/connections_text
|
||||
- ../slots/has_or_had_source # was: data_source_whatsapp - migrated per Rule 53/56/57 (2026-01-23)
|
||||
- ./DataSource
|
||||
- ../slots/digital_confidence
|
||||
- ../slots/digital_indicator
|
||||
# MIGRATED 2026-01-25: digital_confidence → estimates_or_estimated + DigitalConfidence (Rule 53)
|
||||
- ../slots/estimates_or_estimated
|
||||
- ./DigitalConfidence
|
||||
# MIGRATED 2026-01-25: digital_indicator → emphasizes_or_emphasized + DigitalProficiency (Rule 53)
|
||||
- ../slots/emphasizes_or_emphasized
|
||||
- ./DigitalProficiency
|
||||
# - ../slots/digital_indicator # REMOVED
|
||||
- ../slots/digital_professional
|
||||
- ../slots/education
|
||||
- ../slots/enriched_date
|
||||
|
|
@ -267,15 +272,20 @@ classes:
|
|||
|
||||
'
|
||||
slots:
|
||||
- digital_professional
|
||||
# MIGRATED 2026-01-25: digital_professional → indicates_or_indicated (Rule 53)
|
||||
- indicates_or_indicated
|
||||
- enrichment_metadata_whatsapp
|
||||
- specificity_annotation
|
||||
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
- has_or_had_likelihood_score # was: whatsapp_business_likelihood - migrated per Rule 53
|
||||
slot_usage:
|
||||
digital_professional:
|
||||
# MIGRATED 2026-01-25: digital_professional → indicates_or_indicated (Rule 53)
|
||||
indicates_or_indicated:
|
||||
range: DigitalProfessionalAssessment
|
||||
inlined: true
|
||||
description: |
|
||||
Indicates digital professional assessment.
|
||||
Migrated from digital_professional.
|
||||
has_or_had_likelihood_score: # was: whatsapp_business_likelihood - migrated per Rule 53
|
||||
range: LikelihoodScore
|
||||
inlined: true
|
||||
|
|
@ -291,19 +301,43 @@ classes:
|
|||
|
||||
'
|
||||
slots:
|
||||
- digital_confidence
|
||||
- digital_indicator
|
||||
# MIGRATED 2026-01-25: digital_confidence → estimates_or_estimated (Rule 53)
|
||||
- estimates_or_estimated
|
||||
# MIGRATED 2026-01-25: digital_indicator → emphasizes_or_emphasized (Rule 53)
|
||||
- emphasizes_or_emphasized
|
||||
- likely_whatsapp_proficient
|
||||
- specificity_annotation
|
||||
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
slot_usage:
|
||||
likely_whatsapp_proficient:
|
||||
range: boolean
|
||||
digital_indicator:
|
||||
range: string
|
||||
# MIGRATED 2026-01-25: digital_indicator → emphasizes_or_emphasized + DigitalProficiency (Rule 53)
|
||||
emphasizes_or_emphasized:
|
||||
range: DigitalProficiency
|
||||
inlined: true
|
||||
multivalued: true
|
||||
digital_confidence:
|
||||
range: string
|
||||
description: |
|
||||
Digital proficiency indicators (skills/tools) emphasized in the profile.
|
||||
Migrated from digital_indicator (string list).
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_label: "Python"
|
||||
has_or_had_type: "PROGRAMMING_LANGUAGE"
|
||||
description: Python skill indicator
|
||||
# MIGRATED 2026-01-25: digital_confidence → estimates_or_estimated + DigitalConfidence (Rule 53)
|
||||
estimates_or_estimated:
|
||||
range: DigitalConfidence
|
||||
inlined: true
|
||||
required: false
|
||||
description: |
|
||||
Confidence estimation for digital proficiency.
|
||||
Migrated from digital_confidence (string) to structured class.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_score: 0.85
|
||||
has_or_had_type: PROFICIENCY_INFERENCE
|
||||
has_or_had_description: "High confidence inferred from technical skills"
|
||||
description: High confidence estimation
|
||||
WhatsAppLikelihood:
|
||||
class_uri: hc:WhatsAppLikelihood
|
||||
description: 'Likelihood score for WhatsApp business usage.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ imports:
|
|||
- linkml:types
|
||||
- ./WebObservation
|
||||
- ./TimeSpan
|
||||
- ../enums/DigitalPresenceTypeEnum
|
||||
# MIGRATED 2026-01-25: DigitalPresenceTypeEnum → DigitalPresence class hierarchy (Rule 53)
|
||||
# - ../enums/DigitalPresenceTypeEnum # REMOVED
|
||||
- ../slots/supersedes_or_superseded # was: supersede - migrated per Rule 53/56 (2026-01-17)
|
||||
# REMOVED 2026-01-19: ../slots/confidence_score - migrated to is_or_was_generated_by + GenerationEvent + ConfidenceScore (Rule 53)
|
||||
- ../slots/is_or_was_generated_by
|
||||
|
|
@ -23,7 +24,12 @@ imports:
|
|||
- ../slots/has_assertion_rationale
|
||||
- ../slots/has_assertion_value
|
||||
- ../slots/has_or_had_based_on_observation
|
||||
- ../slots/digital_presence_type
|
||||
# MIGRATED 2026-01-25: digital_presence_type → asserts_or_asserted + DigitalPresence (Rule 53)
|
||||
# - ../slots/digital_presence_type # REMOVED
|
||||
- ../slots/asserts_or_asserted
|
||||
- ./DigitalPresence
|
||||
- ./DigitalPresenceType
|
||||
- ./DigitalPresenceTypes
|
||||
- ../slots/specificity_annotation
|
||||
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
- ../slots/temporal_extent
|
||||
|
|
@ -112,7 +118,8 @@ classes:
|
|||
- has_or_had_based_on_observation
|
||||
# REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53)
|
||||
- is_or_was_generated_by
|
||||
- digital_presence_type
|
||||
# MIGRATED 2026-01-25: digital_presence_type → asserts_or_asserted (Rule 53)
|
||||
- asserts_or_asserted
|
||||
- specificity_annotation
|
||||
- is_or_was_superseded_by # was: superseded_by - migrated per Rule 53/56 (2026-01-16)
|
||||
- supersedes_or_superseded # was: supersede - migrated per Rule 53/56 (2026-01-17)
|
||||
|
|
@ -132,16 +139,26 @@ classes:
|
|||
- value: https://nde.nl/ontology/hc/social-media/hvn-facebook
|
||||
- value: https://nde.nl/ontology/hc/platform/rijksmuseum-website
|
||||
- value: https://nde.nl/ontology/hc/iot/museum-beacon-network
|
||||
digital_presence_type:
|
||||
range: DigitalPresenceTypeEnum
|
||||
# MIGRATED 2026-01-25: digital_presence_type → asserts_or_asserted (Rule 53)
|
||||
asserts_or_asserted:
|
||||
range: DigitalPresence
|
||||
required: false
|
||||
inlined: true
|
||||
description: |
|
||||
The digital presence classification being asserted.
|
||||
MIGRATED from digital_presence_type per slot_fixes.yaml (Rule 53, 2026-01-25).
|
||||
Uses DigitalPresence wrapper with typed classification (WebsitePresenceType, SocialMediaPresenceType, etc.).
|
||||
examples:
|
||||
- value: SOCIAL_MEDIA
|
||||
- value:
|
||||
has_or_had_type:
|
||||
has_or_had_label: "Social Media Profile"
|
||||
has_or_had_identifier: "https://nde.nl/ontology/hc/type/social-media"
|
||||
description: Characterizing a social media profile
|
||||
- value: WEBSITE
|
||||
- value:
|
||||
has_or_had_type:
|
||||
has_or_had_label: "Website"
|
||||
has_or_had_identifier: "https://nde.nl/ontology/hc/type/website"
|
||||
description: Characterizing main website
|
||||
- value: IOT_BEACON
|
||||
description: Characterizing beacon network
|
||||
has_assertion_value:
|
||||
range: boolean
|
||||
required: true
|
||||
|
|
|
|||
|
|
@ -76,7 +76,15 @@ classes:
|
|||
multivalued: true
|
||||
inlined_as_list: true
|
||||
description: Languages known
|
||||
specifies_or_specified:
|
||||
range: Education
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
description: >-
|
||||
Educational background.
|
||||
MIGRATED from education per Rule 53 (2026-01-25).
|
||||
education:
|
||||
deprecated: "Migrated to specifies_or_specified"
|
||||
range: EducationEntry
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
|
|
|
|||
74
schemas/20251121/linkml/modules/classes/Speaker.yaml
Normal file
74
schemas/20251121/linkml/modules/classes/Speaker.yaml
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# Speaker class
|
||||
# Represents an identified speaker in audio/video content
|
||||
#
|
||||
# Generation date: 2026-01-25
|
||||
# Rule compliance: 0 (LinkML single source of truth), 53 (migration from diarization_speaker_*)
|
||||
# Migration source: diarization_speaker_id/label slots per slot_fixes.yaml
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/Speaker
|
||||
name: speaker_class
|
||||
title: Speaker Class
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
prov: http://www.w3.org/ns/prov#
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
Speaker:
|
||||
class_uri: prov:Agent
|
||||
description: |
|
||||
Represents a speaker identified in audio/video content analysis.
|
||||
|
||||
**MIGRATION SOURCE**: Created from diarization_speaker_id and diarization_speaker_label migration (Rule 53, 2026-01-25).
|
||||
|
||||
**Ontological Alignment**:
|
||||
- **Primary**: `prov:Agent` - An agent (person) participating in an activity (speaking)
|
||||
- **Close**: `schema:Person` - A person
|
||||
|
||||
exact_mappings:
|
||||
- prov:Agent
|
||||
|
||||
close_mappings:
|
||||
- schema:Person
|
||||
|
||||
slots:
|
||||
- has_or_had_identifier
|
||||
- has_or_had_label
|
||||
|
||||
slot_usage:
|
||||
has_or_had_identifier:
|
||||
description: Unique identifier for the speaker (e.g., "spk_001", Wikidata ID).
|
||||
range: uriorcurie
|
||||
required: true
|
||||
has_or_had_label:
|
||||
description: Human-readable name or label for the speaker (e.g., "Curator", "Interviewer").
|
||||
range: string
|
||||
required: false
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
specificity_score: 0.7
|
||||
specificity_rationale: Specific to audio/video content analysis.
|
||||
|
||||
comments:
|
||||
- "CREATED from diarization_speaker_* migration per slot_fixes.yaml (Rule 53)"
|
||||
- "Represents identified speakers in media content"
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_identifier: spk_001
|
||||
has_or_had_label: Curator
|
||||
description: Identified curator speaker
|
||||
- value:
|
||||
has_or_had_identifier: https://www.wikidata.org/wiki/Q12345
|
||||
has_or_had_label: John Doe
|
||||
description: Speaker linked to Wikidata entity
|
||||
|
|
@ -205,7 +205,7 @@ classes:
|
|||
- has_or_had_quantity # was: cut_count - migrated per Rule 53 (2026-01-22)
|
||||
# MIGRATED 2026-01-25: detection_level → filters_or_filtered + DetectionLevelType (Rule 53)
|
||||
- filters_or_filtered
|
||||
- dissolve_count
|
||||
# MIGRATED 2026-01-25: dissolve_count → has_or_had_quantity (Rule 53)
|
||||
- fade_count
|
||||
- scene_count
|
||||
- has_or_had_scene_segment
|
||||
|
|
@ -281,21 +281,27 @@ classes:
|
|||
examples:
|
||||
- value: '[{has_or_had_label: "CUT"}, {has_or_had_label: "FADE_IN"}]'
|
||||
description: Transition types found in video
|
||||
has_or_had_quantity: # was: cut_count - migrated per Rule 53 (2026-01-22)
|
||||
has_or_had_quantity:
|
||||
range: Quantity
|
||||
required: false
|
||||
multivalued: true
|
||||
inlined: true
|
||||
description: |
|
||||
Number of hard cuts (instantaneous transitions) as a Quantity.
|
||||
MIGRATED from cut_count per slot_fixes.yaml (Rule 53).
|
||||
Uses Quantity class with Unit type "Cut".
|
||||
Quantities of detected transitions (cuts, dissolves, fades).
|
||||
MIGRATED from cut_count, dissolve_count per slot_fixes.yaml (Rule 53).
|
||||
Uses Quantity class with Unit type "Cut", "Dissolve", "Fade".
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_numeric_value: 42
|
||||
has_or_had_unit:
|
||||
has_or_had_type: Cut
|
||||
has_or_had_symbol: "cuts"
|
||||
description: 42 cuts detected (was cut_count)
|
||||
description: 42 cuts detected
|
||||
- value:
|
||||
has_or_had_numeric_value: 3
|
||||
has_or_had_unit:
|
||||
has_or_had_label: "dissolve transition"
|
||||
description: 3 dissolves detected
|
||||
fade_count:
|
||||
range: integer
|
||||
required: false
|
||||
|
|
@ -303,13 +309,6 @@ classes:
|
|||
examples:
|
||||
- value: 5
|
||||
description: 5 fades detected
|
||||
dissolve_count:
|
||||
range: integer
|
||||
required: false
|
||||
minimum_value: 0
|
||||
examples:
|
||||
- value: 3
|
||||
description: 3 dissolves detected
|
||||
comments:
|
||||
- Scene and shot boundary detection
|
||||
- Supports both technical (shot) and semantic (scene) analysis
|
||||
|
|
|
|||
|
|
@ -10,13 +10,26 @@ imports:
|
|||
# - ../slots/audio_event_segments
|
||||
- ../slots/has_or_had_segment
|
||||
- ../slots/has_audio_quality_score
|
||||
- ../slots/diarization_confidence
|
||||
- ../slots/diarization_enabled
|
||||
- ../slots/diarization_end_seconds
|
||||
- ../slots/has_or_had_diarization_segment
|
||||
- ../slots/diarization_speaker_id
|
||||
- ../slots/diarization_speaker_label
|
||||
- ../slots/diarization_start_seconds
|
||||
# MIGRATED 2026-01-25: diarization_* slots (Rule 53)
|
||||
- ../slots/has_or_had_provenance
|
||||
- ./Provenance
|
||||
- ./ConfidenceScore
|
||||
- ../slots/is_or_was_diarized
|
||||
- ./DiarizationStatus
|
||||
- ../slots/temporal_extent
|
||||
- ./TimeSpan
|
||||
- ../slots/start_of_the_start
|
||||
- ../slots/end_of_the_end
|
||||
- ./Timestamp
|
||||
- ../slots/contains_or_contained
|
||||
- ./Speaker
|
||||
- ../slots/has_or_had_identifier
|
||||
- ./Identifier
|
||||
- ../slots/has_or_had_label
|
||||
- ./Label
|
||||
# MIGRATED 2026-01-25: has_or_had_diarization_segment → contains_or_contained (Rule 53)
|
||||
# - ../slots/has_or_had_diarization_segment # REMOVED
|
||||
|
||||
- ../slots/has_clipping
|
||||
- ../slots/is_background
|
||||
- ../slots/is_overlapping
|
||||
|
|
@ -123,8 +136,10 @@ classes:
|
|||
# - audio_event_segments
|
||||
- has_or_had_segment
|
||||
- audio_quality_score
|
||||
- diarization_enabled
|
||||
- has_or_had_diarization_segment
|
||||
# MIGRATED 2026-01-25: diarization_enabled → is_or_was_diarized (Rule 53)
|
||||
- is_or_was_diarized
|
||||
# MIGRATED 2026-01-25: has_or_had_diarization_segment → contains_or_contained (Rule 53)
|
||||
- contains_or_contained
|
||||
- has_clipping
|
||||
- languages_detected
|
||||
- music_confidence
|
||||
|
|
@ -212,19 +227,33 @@ classes:
|
|||
examples:
|
||||
- value: '[nl, en, de]'
|
||||
description: Dutch, English, and German detected
|
||||
diarization_enabled:
|
||||
range: boolean
|
||||
# MIGRATED 2026-01-25: diarization_enabled → is_or_was_diarized (Rule 53)
|
||||
is_or_was_diarized:
|
||||
range: DiarizationStatus
|
||||
required: false
|
||||
inlined: true
|
||||
description: |
|
||||
Status of speaker diarization process.
|
||||
MIGRATED from diarization_enabled (Rule 53).
|
||||
examples:
|
||||
- value: true
|
||||
description: Diarization was performed
|
||||
has_or_had_diarization_segment:
|
||||
- value:
|
||||
has_or_had_label: Enabled
|
||||
has_or_had_identifier: https://schema.org/ActiveActionStatus
|
||||
description: Diarization enabled
|
||||
# MIGRATED 2026-01-25: has_or_had_diarization_segment → contains_or_contained (Rule 53)
|
||||
contains_or_contained:
|
||||
range: DiarizationSegment
|
||||
multivalued: true
|
||||
required: false
|
||||
inlined_as_list: true
|
||||
examples:
|
||||
- value: '[{start_seconds: 0.0, end_seconds: 15.0, speaker_id: ''spk_001'', speaker_label: ''Curator''}]'
|
||||
- value:
|
||||
temporal_extent:
|
||||
begin_of_the_begin: 0.0
|
||||
end_of_the_end: 15.0
|
||||
contains_or_contained:
|
||||
has_or_had_identifier: spk_001
|
||||
has_or_had_label: Curator
|
||||
description: Curator speaking for first 15 seconds
|
||||
speaker_count:
|
||||
range: integer
|
||||
|
|
@ -385,34 +414,29 @@ classes:
|
|||
|
||||
'
|
||||
slots:
|
||||
- diarization_confidence
|
||||
- diarization_end_seconds
|
||||
- diarization_speaker_id
|
||||
- diarization_speaker_label
|
||||
- diarization_start_seconds
|
||||
# MIGRATED 2026-01-25: diarization_* slots (Rule 53)
|
||||
- has_or_had_provenance # for confidence
|
||||
- temporal_extent # for start/end seconds
|
||||
- contains_or_contained # for speaker
|
||||
- is_overlapping
|
||||
- specificity_annotation
|
||||
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
||||
slot_usage:
|
||||
diarization_start_seconds:
|
||||
range: float
|
||||
temporal_extent:
|
||||
description: Time range of the diarization segment.
|
||||
range: TimeSpan
|
||||
inlined: true
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
diarization_end_seconds:
|
||||
range: float
|
||||
contains_or_contained:
|
||||
description: Speaker identified in this segment.
|
||||
range: Speaker
|
||||
inlined: true
|
||||
required: true
|
||||
minimum_value: 0.0
|
||||
diarization_speaker_id:
|
||||
range: string
|
||||
required: true
|
||||
diarization_speaker_label:
|
||||
range: string
|
||||
has_or_had_provenance:
|
||||
description: Provenance metadata including confidence score.
|
||||
range: Provenance
|
||||
inlined: true
|
||||
required: false
|
||||
diarization_confidence:
|
||||
range: float
|
||||
required: false
|
||||
minimum_value: 0.0
|
||||
maximum_value: 1.0
|
||||
is_overlapping:
|
||||
range: boolean
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -44,6 +44,9 @@ imports:
|
|||
- ../slots/has_or_had_status
|
||||
- ./Status
|
||||
- ../slots/dislike_count
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
- ../slots/has_or_had_time_interval
|
||||
- ./TimeInterval
|
||||
- ../slots/duration
|
||||
- ../slots/favorite_count
|
||||
# MIGRATED 2026-01-22: frame_rate → has_or_had_quantity + Quantity + has_or_had_unit + Unit (Rule 53)
|
||||
|
|
@ -242,7 +245,8 @@ classes:
|
|||
# MIGRATED 2026-01-24: definition → has_or_had_resolution + Resolution (Rule 53)
|
||||
- has_or_had_resolution
|
||||
- dislike_count
|
||||
- duration
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval (Rule 53)
|
||||
- has_or_had_time_interval
|
||||
- favorite_count
|
||||
# REMOVED 2026-01-22: frame_rate - migrated to has_or_had_quantity + Quantity + Unit (Rule 53)
|
||||
- is_embeddable
|
||||
|
|
@ -259,15 +263,23 @@ classes:
|
|||
- has_or_had_comment # was: video_comment - migrated per Rule 53 (2025-01-15)
|
||||
- has_or_had_quantity
|
||||
slot_usage:
|
||||
duration:
|
||||
range: string
|
||||
# MIGRATED 2026-01-25: duration → has_or_had_time_interval + TimeInterval (Rule 53)
|
||||
has_or_had_time_interval:
|
||||
range: TimeInterval
|
||||
required: false
|
||||
pattern: ^P(T(\d+H)?(\d+M)?(\d+S)?)?$
|
||||
inlined: true
|
||||
description: |
|
||||
Video duration.
|
||||
MIGRATED from duration (ISO 8601 string) to TimeInterval class.
|
||||
examples:
|
||||
- value: PT10M59S
|
||||
description: 10 minutes and 59 seconds
|
||||
- value: PT1H30M
|
||||
description: 1 hour 30 minutes
|
||||
- value:
|
||||
duration_value: PT10M59S
|
||||
duration_description: 10 minutes and 59 seconds
|
||||
description: Video duration
|
||||
- value:
|
||||
duration_value: PT1H30M
|
||||
duration_description: 1 hour 30 minutes
|
||||
description: Long format duration
|
||||
# MIGRATED 2026-01-24: definition → has_or_had_resolution + Resolution (Rule 53)
|
||||
has_or_had_resolution:
|
||||
range: Resolution
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ slots:
|
|||
allocates_or_allocated:
|
||||
description: >-
|
||||
Resources or identifiers allocated by this entity.
|
||||
range: string
|
||||
range: uriorcurie # Broadened from string per Rule 55 (2026-01-25)
|
||||
multivalued: true
|
||||
slot_uri: prov:generated
|
||||
close_mappings:
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue