- 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`.
161 lines
6.3 KiB
YAML
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
|