- 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.
159 lines
7.5 KiB
YAML
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
|