glam/schemas/20251121/linkml/modules/classes/Methodology.yaml

140 lines
6.8 KiB
YAML

id: https://nde.nl/ontology/hc/class/Methodology
name: methodology_class
title: Methodology Class
description: 'Defines the methodology or technique used to derive a measurement or observation.
**RULE 53 COMPLIANT**: Created for unique_object_count and unique_face_count migration per slot_fixes.yaml revision (lines 1951-1994).
**PROV-O ALIGNMENT**:
Maps to `prov:Plan` - "A plan is an entity that represents a set of actions or steps intended by one or more agents to achieve some goals."
In the PROV-O data model, a Plan describes HOW an activity was performed. Methodology extends this to describe HOW a measurement was derived.'
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
rdfs: http://www.w3.org/2000/01/rdf-schema#
org: http://www.w3.org/ns/org#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_version
- ../slots/specificity_annotation
- ../slots/has_or_had_score
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ../enums/MethodologyTypeEnum
- ../slots/has_or_had_threshold
- ./ConfidenceThreshold
- ../slots/methodology_type
default_prefix: hc
classes:
Methodology:
class_uri: prov:Plan
description: "Describes the methodology, technique, or algorithm used to derive a measurement.\n**PROV-O ALIGNMENT**:\nMaps to `prov:Plan` which represents \"a set of actions or steps intended by one or more agents to achieve some goals.\" In measurement contexts, this describes HOW a value was computed or derived.\n**WHY METHODOLOGY MATTERS**:\nTwo measurements of \"unique objects\" could use different methodologies:\n| Methodology | Description | Accuracy | |-------------|-------------|----------| | ENTITY_RESOLUTION | Deduplication via feature matching | High | | TRACKING | Object tracking across frames | Medium | | MANUAL_COUNT | Human counting | Variable | | SAMPLING | Statistical sampling | Estimated |\nWithout methodology, two measurements cannot be meaningfully compared.\n**HERITAGE USE CASES**:\n- **Video annotation**: How unique faces/objects were counted (entity resolution) - **Collection inventories**: How item counts were derived (physical vs. digital) - **Visitor statistics**:\
\ How attendance was measured (counters, tickets, samples) - **Digitization metrics**: How completeness was assessed\n**EXAMPLE**:\n```yaml has_or_had_methodology:\n methodology_type: ENTITY_RESOLUTION\n has_or_had_label: \"RetinaFace + ArcFace clustering\"\n has_or_had_description: >-\n Faces detected using RetinaFace model, then clustered\n using ArcFace embeddings with cosine similarity threshold 0.6\n to identify unique individuals.\n```"
exact_mappings:
- prov:Plan
close_mappings:
- schema:HowToStep
related_mappings:
- dcterms:methodology
slots:
- has_or_had_identifier
- methodology_type
- has_or_had_label
- has_or_had_description
- has_or_had_version
- has_or_had_threshold
- specificity_annotation
- has_or_had_score
slot_usage:
has_or_had_identifier:
range: uriorcurie
required: false
description: Optional identifier for this methodology specification.
examples:
- value: https://nde.nl/ontology/hc/methodology/retinaface-arcface-v1
description: Face clustering methodology identifier
methodology_type:
range: MethodologyTypeEnum
required: false
description: The type of methodology used.
examples:
- value: ENTITY_RESOLUTION
description: Deduplication via feature matching
- value: OBJECT_TRACKING
description: Multi-object tracking across frames
has_or_had_label:
range: string
required: false
description: 'Human-readable name for the methodology or algorithm. MIGRATED: Now serves both methodology name AND algorithm_name (Rule 53/56).'
examples:
- value: RetinaFace + ArcFace clustering
description: Face detection and clustering pipeline
- value: YOLOv8
description: Object detection model (was algorithm_name)
- value: ArcFace
description: Face recognition model (was algorithm_name)
has_or_had_description:
range: string
required: false
description: Detailed description of the methodology.
examples:
- value: Faces detected using RetinaFace, clustered using ArcFace embeddings
description: Algorithm description
has_or_had_version:
range: string
required: false
description: Version of the algorithm, model, or methodology specification. MIGRATED from algorithm_version per slot_fixes.yaml (Rule 53/56).
examples:
- value: 1.0.0
- value: v8n
has_or_had_threshold:
range: ConfidenceThreshold
required: false
description: Confidence threshold used for detection/classification. MIGRATED from confidence_threshold per slot_fixes.yaml (Rule 53). Uses ConfidenceThreshold class for structured threshold representation.
examples:
- value:
threshold_value: 0.6
threshold_type: CONFIDENCE
threshold_description: Minimum confidence for face matching
description: 60% confidence threshold for face matching
comments:
- Describes HOW a measurement was derived
- Essential for comparing measurements from different sources
- Maps to PROV-O Plan for provenance tracking
- Rule 53 compliant - supports unique_object_count/unique_face_count migration
see_also:
- https://www.w3.org/TR/prov-o/#Plan
examples:
- value:
methodology_type: ENTITY_RESOLUTION
has_or_had_label: RetinaFace + ArcFace clustering
has_or_had_description: Faces detected using RetinaFace model, then clustered using ArcFace embeddings with cosine similarity threshold 0.6.
has_or_had_version: '1.0'
has_or_had_threshold:
- threshold_value: 0.6
threshold_type: CONFIDENCE
description: Face entity resolution methodology
- value:
methodology_type: OBJECT_TRACKING
has_or_had_label: DeepSORT multi-object tracking
has_or_had_description: Objects tracked across video frames using DeepSORT algorithm with Kalman filtering and appearance features.
has_or_had_version: '1.0'
description: Object tracking methodology
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"
custodian_types_rationale: Universal utility concept