glam/schemas/20251121/linkml/modules/classes/DetectedEntity.yaml
kempersc 7cf10084b4 Implement scripts for schema modifications and ontology verification
- Added `fix_dual_class_link.py` to remove dual class link references from specified YAML files.
- Created `fix_specific_ghosts.py` to apply specific replacements in YAML files based on defined mappings.
- Introduced `migrate_staff_count.py` to migrate staff count references to a new structure in specified YAML files.
- Developed `migrate_type_slots.py` to replace type-related slots with new identifiers across YAML files.
- Implemented `scan_ghost_references.py` to identify and report ghost references to archived slots and classes in YAML files.
- Added `verify_ontology_terms.py` to verify the presence of ontology terms in specified ontology files against schema definitions.
2026-01-29 17:10:25 +01:00

159 lines
7.5 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_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_type
- ../slots/is_or_was_generated_by
- ./GenerationEvent
- ./ConfidenceScore
- ../slots/has_or_had_time_interval
- ./TimeInterval
- ../slots/has_or_had_geographic_extent
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 \u2192 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 \u2502\n \u2514\u2500\u2500 has_or_had_detected \u2192 DetectedEntity[]\n\
\ \u251C\u2500\u2500 has_or_had_type \u2192 TransitionType (FADE_IN, CUT, etc.)\n \u251C\u2500\u2500 confidence_score \u2192 0.95\n \u251C\u2500\u2500 start_time \u2192 \"00:03:15\"\n \u2514\u2500\u2500 end_time \u2192 \"00:03:17\"\n```\n\n**USE CASE - Text Detection**:\n\n```\nVideoAnnotation\n \u2502\n \u2514\u2500\u2500 has_or_had_detected \u2192 DetectedEntity[]\n \u251C\u2500\u2500 has_or_had_type \u2192 TextType (TITLE, CAPTION, etc.)\n \u251C\u2500\u2500 confidence_score \u2192 0.87\n \u251C\u2500\u2500 has_or_had_geographic_extent \u2192 [x1, y1, x2, y2]\n \u2514\u2500\u2500 has_or_had_label \u2192 \"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 \u2192 DetectedEntity[]\n- `has_or_had_type`: Links DetectedEntity \u2192 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
attributes:
start_time:
range: string
required: false
description: Start timestamp for temporal detections (ISO 8601 or HH:MM:SS format). Defined as attribute.
examples:
- value: 00:03:15
- value: PT3M15S
slot_usage:
has_or_had_identifier:
range: string
required: false
description: Unique identifier for this detection instance
examples:
- value: detection-001
- value: transition-fade-00:03:15
has_or_had_type:
range: string
required: true
description: 'Type of detected entity. Specialize range in subclasses or
slot_usage to reference specific Type classes (TransitionType, TextType, etc.)
'
examples:
- value: TransitionType:FADE_IN
- value: TextType:TITLE
has_or_had_label:
range: string
required: false
description: Human-readable label for the detected entity (e.g., detected text content)
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
description: High confidence detection
- value:
has_or_had_score:
has_or_had_score: 0.62
has_or_had_method: ocr_extraction
description: Moderate confidence, may need review
has_or_had_time_interval:
range: TimeInterval
required: false
inlined: true
description: Duration of detection. Replaces end_time. Use duration_value for ISO 8601 duration (e.g., PT2S).
examples:
- value:
duration_value: PT0M02S
description: 2 second duration
has_or_had_geographic_extent:
range: float
multivalued: true
required: false
description: Spatial location as [x1, y1, x2, y2] pixel coordinates for image detection
examples:
- value:
- 100.0
- 50.0
- 400.0
- 150.0
description: Bounding box for detected text region
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\nwith structured DetectedEntity \u2192 has_or_had_type \u2192 Type pattern.\n"
custodian_types: "['*']"
custodian_types_rationale: Universal utility concept
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 \u2192 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:
duration_value: PT0M02S
description: Video transition detection (fade in)
- 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
description: On-screen text detection