233 lines
8.5 KiB
YAML
233 lines
8.5 KiB
YAML
# DetectedEntity - Base class for detected items in automated analysis
|
|
#
|
|
# Following the Type/Types naming convention (Rule 0b):
|
|
# - DetectedEntity: Base class for things detected by automated analysis
|
|
# - Used with has_or_had_detected slot for linking detection results
|
|
#
|
|
# Generation date: 2026-01-13
|
|
# Rule compliance: 0b (Type/Types naming), 38 (slot centralization), 39 (RiC-O naming)
|
|
|
|
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
|
|
# MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + GenerationEvent + ConfidenceScore
|
|
- ../slots/is_or_was_generated_by
|
|
- ./GenerationEvent
|
|
- ./ConfidenceScore
|
|
- ../slots/start_time
|
|
- ../slots/end_time
|
|
- ../slots/has_or_had_geographic_extent # was: bounding_box - migrated per Rule 53/56 (2026-01-17)
|
|
|
|
classes:
|
|
DetectedEntity:
|
|
class_uri: prov:Entity
|
|
description: |
|
|
Base class for entities detected through automated analysis processes.
|
|
|
|
**DEFINITION**:
|
|
|
|
DetectedEntity represents items identified by automated analysis pipelines
|
|
(computer vision, NLP, audio analysis, etc.). Each detected entity captures:
|
|
- What was detected (via has_or_had_type → specific Type class)
|
|
- Detection confidence (probability score)
|
|
- Temporal/spatial location (timestamps, bounding boxes)
|
|
|
|
**CRITICAL: DETECTION vs TYPE**
|
|
|
|
| Aspect | DetectedEntity (This Class) | *Type Classes (Categories) |
|
|
|--------|----------------------------|---------------------------|
|
|
| **Nature** | Detection result | Classification |
|
|
| **Examples** | "Transition at 00:03:15" | FADE_IN, CUT, DISSOLVE |
|
|
| **Properties** | Confidence, timestamps | Semantic metadata |
|
|
| **Cardinality** | Many instances per video | ~20-30 types |
|
|
|
|
**USE CASE - Video Annotation**:
|
|
|
|
```
|
|
VideoAnnotation
|
|
│
|
|
└── has_or_had_detected → DetectedEntity[]
|
|
├── has_or_had_type → TransitionType (FADE_IN, CUT, etc.)
|
|
├── confidence_score → 0.95
|
|
├── start_time → "00:03:15"
|
|
└── end_time → "00:03:17"
|
|
```
|
|
|
|
**USE CASE - Text Detection**:
|
|
|
|
```
|
|
VideoAnnotation
|
|
│
|
|
└── has_or_had_detected → DetectedEntity[]
|
|
├── has_or_had_type → TextType (TITLE, CAPTION, etc.)
|
|
├── confidence_score → 0.87
|
|
├── has_or_had_geographic_extent → [x1, y1, x2, y2]
|
|
└── has_or_had_label → "Museum Tour"
|
|
```
|
|
|
|
**ONTOLOGY ALIGNMENT**:
|
|
|
|
- **PROV-O Entity**: Detected entities are generated by activities
|
|
- **W3C Web Annotation**: Compatible with annotation body/target patterns
|
|
- **CIDOC-CRM E73_Information_Object**: Information derived from sources
|
|
|
|
**RELATIONSHIP TO SLOTS**:
|
|
|
|
- `has_or_had_detected`: Links from VideoAnnotation → DetectedEntity[]
|
|
- `has_or_had_type`: Links DetectedEntity → TransitionType, TextType, etc.
|
|
- Uses shared slots for identifier, label, confidence
|
|
|
|
abstract: false
|
|
|
|
exact_mappings:
|
|
- prov:Entity
|
|
|
|
close_mappings:
|
|
- crm:E73_Information_Object
|
|
- schema:DataDownload
|
|
|
|
related_mappings:
|
|
- schema:Thing
|
|
- crm:E21_Person # For person detection
|
|
|
|
slots:
|
|
- has_or_had_identifier
|
|
- has_or_had_label
|
|
- has_or_had_type
|
|
# MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by
|
|
- is_or_was_generated_by
|
|
- start_time
|
|
- end_time
|
|
- has_or_had_geographic_extent # was: bounding_box - migrated per Rule 53/56 (2026-01-17)
|
|
|
|
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"
|
|
|
|
start_time:
|
|
range: string
|
|
required: false
|
|
description: "Start timestamp for temporal detections (ISO 8601 or HH:MM:SS format)"
|
|
examples:
|
|
- value: "00:03:15"
|
|
- value: "PT3M15S"
|
|
|
|
end_time:
|
|
range: string
|
|
required: false
|
|
description: "End timestamp for temporal detections"
|
|
examples:
|
|
- value: "00:03:17"
|
|
|
|
has_or_had_geographic_extent: # was: bounding_box - migrated per Rule 53/56 (2026-01-17)
|
|
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: # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
|
|
# NOTE: slot_usage may need manual review for range/description updates '{"collection_discovery": 0.30, "digital_platform": 0.80, "general_heritage": 0.50}'
|
|
replaces_pattern: |
|
|
Replaces inline transition_types_detected and text_types_detected slots
|
|
with structured DetectedEntity → has_or_had_type → Type pattern.
|
|
|
|
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"
|
|
end_time: "00:03:17"
|
|
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] # was: bounding_box
|
|
description: "On-screen text detection"
|