glam/schemas/20251121/linkml/modules/classes/Methodology.yaml
kempersc 2d09776856 Refactor StorageCondition schema: Migrate compliance_status to has_or_had_status with ComplianceStatus class
- Removed compliance_status slot and replaced it with has_or_had_status.
- Updated has_or_had_status to use ComplianceStatus for structured representation.
- Adjusted examples to reflect new structure for compliance status.
- Updated documentation to indicate migration and provide details on the ComplianceStatus class.
2026-01-22 16:22:16 +01:00

221 lines
No EOL
9 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/
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label # also replaces algorithm_name - migrated per Rule 53/56 (2026-01-17)
- ../slots/has_or_had_description
- ../slots/has_or_had_version # was: algorithm_version - migrated per Rule 53/56 (2026-01-17)
- ../slots/specificity_annotation
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- ./SpecificityAnnotation
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ../enums/MethodologyTypeEnum
# REMOVED - algorithm_name migrated to has_or_had_label (2026-01-17, Rule 53/56)
# - ../slots/algorithm_name
# REMOVED - algorithm_version migrated to has_or_had_version (2026-01-17, Rule 53/56)
# - ../slots/algorithm_version
# MIGRATED 2026-01-22: confidence_threshold → has_or_had_threshold + ConfidenceThreshold (Rule 53)
- ../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.
**PROV-O ALIGNMENT**:
Maps 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.
**WHY METHODOLOGY MATTERS**:
Two measurements of "unique objects" could use different methodologies:
| 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 |
Without methodology, two measurements cannot be meaningfully compared.
**HERITAGE USE CASES**:
- **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
**EXAMPLE**:
```yaml
has_or_had_methodology:
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
to identify unique individuals.
```
exact_mappings:
- prov:Plan
close_mappings:
- schema:HowToStep
related_mappings:
- dcterms:methodology
slots:
- has_or_had_identifier
- methodology_type
- has_or_had_label # also replaces algorithm_name - migrated per Rule 53/56 (2026-01-17)
- has_or_had_description
- has_or_had_version # was: algorithm_version - migrated per Rule 53/56 (2026-01-17)
# REMOVED - algorithm_name migrated to has_or_had_label (2026-01-17, Rule 53/56)
# - algorithm_name
# REMOVED - algorithm_version migrated to has_or_had_version (2026-01-17, Rule 53/56)
# - algorithm_version
# MIGRATED 2026-01-22: confidence_threshold → has_or_had_threshold + ConfidenceThreshold (Rule 53)
- has_or_had_threshold
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
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: # was: algorithm_version - migrated per Rule 53/56 (2026-01-17)
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"
# REMOVED - algorithm_name migrated to has_or_had_label (2026-01-17, Rule 53/56)
# algorithm_name:
# range: string
# required: false
# description: >-
# Name of the algorithm or model used.
# REMOVED - algorithm_version migrated to has_or_had_version (2026-01-17, Rule 53/56)
# algorithm_version:
# range: string
# required: false
# description: >-
# Version of the algorithm or model.
# MIGRATED 2026-01-22: confidence_threshold → has_or_had_threshold + ConfidenceThreshold (Rule 53)
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" # includes algorithm name
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" # was: algorithm_name: "ArcFace" - combined into label
# MIGRATED 2026-01-22: confidence_threshold → has_or_had_threshold (Rule 53)
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" # was: algorithm_version
description: Object tracking methodology
# REMOVED inline slots 2026-01-16 - Rule 48 violation
# Slots are imported from ../slots/ - do not define inline