glam/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml
kempersc fc405445c6 Refactor and update schema definitions
- Removed obsolete slots: `has_or_had_custodian_observation`, `provider`, and `specificity_annotation`.
- Updated `has_or_had_score` slot to use `SpecificityScore` class and modified its description and examples.
- Added new slots: `end_seconds`, `end_time`, `has_archive_path`, `has_or_had_custodian_name`, `protocol_name`, and `protocol_version`.
- Introduced a script `check_annotation_types.py` to validate the presence and structure of `custodian_types` in YAML files.
- Added a script `update_specificity.py` to automate updates related to `SpecificityAnnotation` to `SpecificityScore`.
2026-02-01 19:55:38 +01:00

161 lines
6.3 KiB
YAML

id: https://nde.nl/ontology/hc/class/DetectedEntity
name: DetectedEntity
title: Detected Entity Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_geographic_extent
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_time_interval
- ../slots/has_or_had_type
- ../slots/is_or_was_generated_by
classes:
DetectedEntity:
class_uri: prov:Entity
description: "Base class for entities detected through automated analysis processes.\n\
\n**DEFINITION**:\n\nDetectedEntity represents items identified by automated\
\ analysis pipelines\n(computer vision, NLP, audio analysis, etc.). Each detected\
\ entity captures:\n- What was detected (via has_or_had_type → specific Type\
\ class)\n- Detection confidence (probability score)\n- Temporal/spatial location\
\ (timestamps, bounding boxes)\n\n**CRITICAL: DETECTION vs TYPE**\n\n| Aspect\
\ | DetectedEntity (This Class) | *Type Classes (Categories) |\n|--------|----------------------------|---------------------------|\n\
| **Nature** | Detection result | Classification |\n| **Examples** | \"Transition\
\ at 00:03:15\" | FADE_IN, CUT, DISSOLVE |\n| **Properties** | Confidence, timestamps\
\ | Semantic metadata |\n| **Cardinality** | Many instances per video | ~20-30\
\ types |\n\n**USE CASE - Video Annotation**:\n\n```\nVideoAnnotation\n │\n\
\ └── has_or_had_detected → DetectedEntity[]\n ├── has_or_had_type →\
\ TransitionType (FADE_IN, CUT, etc.)\n ├── confidence_score → 0.95\n\
\ ├── start_time → \"00:03:15\"\n └── end_time → \"00:03:17\"\n\
```\n\n**USE CASE - Text Detection**:\n\n```\nVideoAnnotation\n │\n └── has_or_had_detected\
\ → DetectedEntity[]\n ├── has_or_had_type → TextType (TITLE, CAPTION,\
\ etc.)\n ├── confidence_score → 0.87\n ├── has_or_had_geographic_extent\
\ → [x1, y1, x2, y2]\n └── has_or_had_label → \"Museum Tour\"\n```\n\n\
**ONTOLOGY ALIGNMENT**:\n\n- **PROV-O Entity**: Detected entities are generated\
\ by activities\n- **W3C Web Annotation**: Compatible with annotation body/target\
\ patterns\n- **CIDOC-CRM E73_Information_Object**: Information derived from\
\ sources\n\n**RELATIONSHIP TO SLOTS**:\n\n- `has_or_had_detected`: Links from\
\ VideoAnnotation → DetectedEntity[]\n- `has_or_had_type`: Links DetectedEntity\
\ → TransitionType, TextType, etc.\n- Uses shared slots for identifier, label,\
\ confidence\n"
abstract: false
exact_mappings:
- prov:Entity
close_mappings:
- crm:E73_Information_Object
- schema:DataDownload
related_mappings:
- schema:Thing
- crm:E21_Person
slots:
- has_or_had_identifier
- has_or_had_label
- has_or_had_type
- is_or_was_generated_by
- has_or_had_time_interval
- has_or_had_geographic_extent
- start_time
slot_usage:
has_or_had_identifier:
range: string
required: false
examples:
- value: detection-001
- value: transition-fade-00:03:15
has_or_had_type:
range: string
required: true
examples:
- value: TransitionType:FADE_IN
- value: TextType:TITLE
has_or_had_label:
range: string
required: false
examples:
- value: Museum Tour
- value: Opening Credits
is_or_was_generated_by:
range: GenerationEvent
required: false
inlined: true
description: 'Generation event containing confidence score for entity detection.
MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern.'
examples:
- value:
has_or_had_score:
has_or_had_score: 0.95
has_or_had_method: computer_vision
- value:
has_or_had_score:
has_or_had_score: 0.62
has_or_had_method: ocr_extraction
has_or_had_time_interval:
range: TimeInterval
required: false
inlined: true
examples:
- value: null
has_or_had_geographic_extent:
range: float
multivalued: true
required: false
examples:
- value:
- 100.0
- 50.0
- 400.0
- 150.0
annotations:
specificity_score: '0.65'
specificity_rationale: Fairly specific - detection entities are domain-relevant
for media analysis.
has_or_had_score: null
replaces_pattern: 'Replaces inline transition_types_detected and text_types_detected
slots
with structured DetectedEntity → has_or_had_type → Type pattern.
'
custodian_types: '[''*'']'
comments:
- Base class for automated detection results
- Use has_or_had_type to link to specific Type classes (TransitionType, TextType)
- 'Captures detection metadata: confidence (via is_or_was_generated_by), timestamps,
bounding boxes'
- Generated by detection activities (prov:wasGeneratedBy pattern)
- 'Rule 39 compliant: uses has_or_had_* slot naming'
- 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + ConfidenceScore'
see_also:
- https://www.w3.org/TR/prov-o/#Entity
- https://www.w3.org/TR/annotation-model/
- http://www.cidoc-crm.org/cidoc-crm/E73_Information_Object
examples:
- value:
has_or_had_identifier: transition-001
has_or_had_type: TransitionType:FADE_IN
is_or_was_generated_by:
has_or_had_score:
has_or_had_score: 0.95
has_or_had_method: video_analysis
start_time: 00:03:15
has_or_had_time_interval: null
- value:
has_or_had_identifier: text-001
has_or_had_type: TextType:TITLE
has_or_had_label: Museum Tour Guide
is_or_was_generated_by:
has_or_had_score:
has_or_had_score: 0.87
has_or_had_method: ocr_extraction
has_or_had_geographic_extent:
- 100.0
- 50.0
- 400.0
- 150.0