feat: Migrate capacity_value and cut_count to structured has_or_had_quantity; archive previous slots and update related schemas
This commit is contained in:
parent
3c9926956e
commit
4efaef60e4
18 changed files with 795 additions and 45 deletions
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated": "2026-01-22T19:41:07.059Z",
|
||||
"generated": "2026-01-22T21:08:05.291Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3037,
|
||||
"categoryCounts": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"generated": "2026-01-22T21:08:05.291Z",
|
||||
"generated": "2026-01-22T21:16:36.017Z",
|
||||
"schemaRoot": "/schemas/20251121/linkml",
|
||||
"totalFiles": 3037,
|
||||
"categoryCounts": {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,9 @@ imports:
|
|||
- ../slots/has_or_had_status
|
||||
- ./BudgetStatus
|
||||
- ../slots/has_or_had_type
|
||||
- ../slots/capital_budget
|
||||
# MIGRATED 2026-01-22: capital_budget → has_or_had_main_part + MainPart per slot_fixes.yaml revision
|
||||
- ../slots/has_or_had_main_part
|
||||
- ./MainPart
|
||||
- ./BudgetType
|
||||
- ../slots/digitization_budget
|
||||
- ../slots/documented_by
|
||||
|
|
@ -115,7 +117,8 @@ classes:
|
|||
# - budget_status
|
||||
- has_or_had_status
|
||||
- has_or_had_type
|
||||
- capital_budget
|
||||
# MIGRATED 2026-01-22: capital_budget → has_or_had_main_part + MainPart per slot_fixes.yaml revision
|
||||
- has_or_had_main_part
|
||||
- digitization_budget
|
||||
- documented_by
|
||||
- endowment_draw
|
||||
|
|
@ -258,9 +261,22 @@ classes:
|
|||
operating_budget:
|
||||
range: decimal
|
||||
required: false
|
||||
capital_budget:
|
||||
range: decimal
|
||||
# MIGRATED 2026-01-22: capital_budget → has_or_had_main_part + MainPart per slot_fixes.yaml revision
|
||||
has_or_had_main_part:
|
||||
range: MainPart
|
||||
inlined: true
|
||||
required: false
|
||||
description: |
|
||||
Capital budget allocation (infrastructure, equipment, major purchases).
|
||||
MIGRATED from capital_budget per slot_fixes.yaml (Rule 53, 2026-01-22).
|
||||
MainPart provides structured representation with Quantity for amount and currency metadata.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_quantity:
|
||||
quantity_value: 3000000.0
|
||||
part_type: capital_budget
|
||||
currency_code: EUR
|
||||
description: Capital budget of 3 million EUR
|
||||
has_or_had_acquisition_budget:
|
||||
range: decimal
|
||||
required: false
|
||||
|
|
@ -389,7 +405,11 @@ classes:
|
|||
has_or_had_label: Euro
|
||||
currency_symbol: €
|
||||
operating_budget: 38000000.0
|
||||
capital_budget: 3000000.0
|
||||
has_or_had_main_part:
|
||||
has_or_had_quantity:
|
||||
quantity_value: 3000000.0
|
||||
part_type: capital_budget
|
||||
currency_code: EUR
|
||||
acquisition_budget: 2000000.0
|
||||
personnel_budget: 22000000.0
|
||||
preservation_budget: 1500000.0
|
||||
|
|
@ -421,7 +441,11 @@ classes:
|
|||
has_or_had_label: Euro
|
||||
currency_symbol: €
|
||||
operating_budget: 7500000.0
|
||||
capital_budget: 500000.0
|
||||
has_or_had_main_part:
|
||||
has_or_had_quantity:
|
||||
quantity_value: 500000.0
|
||||
part_type: capital_budget
|
||||
currency_code: EUR
|
||||
personnel_budget: 5200000.0
|
||||
digitization_budget: 800000.0
|
||||
external_funding: 6000000.0
|
||||
|
|
|
|||
153
schemas/20251121/linkml/modules/classes/DataFormat.yaml
Normal file
153
schemas/20251121/linkml/modules/classes/DataFormat.yaml
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
# DataFormat - Class for data format specifications
|
||||
#
|
||||
# Created per slot_fixes.yaml migration for: data_format
|
||||
# Creation date: 2026-01-22
|
||||
# Rule compliance: 39 (RiC-O naming), 50 (ontology mapping), 53 (generic slot reuse), 0b (Type/Types)
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DataFormat
|
||||
name: data_format_class
|
||||
title: Data Format
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
dct: http://purl.org/dc/terms/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_type
|
||||
- ../slots/has_or_had_label
|
||||
- ../slots/has_or_had_description
|
||||
|
||||
classes:
|
||||
DataFormat:
|
||||
class_uri: hc:DataFormat
|
||||
description: |
|
||||
Specification of a data format for files, APIs, or data streams.
|
||||
|
||||
**DEFINITION**:
|
||||
DataFormat captures format characteristics including type, media type,
|
||||
schema references, and encoding specifications.
|
||||
|
||||
**USAGE**:
|
||||
- API response formats (JSON, XML, RDF)
|
||||
- File formats (CSV, Excel, PDF, TIFF)
|
||||
- Streaming protocols (MQTT, WebSocket payloads)
|
||||
- Archival formats (METS, EAD, MARC)
|
||||
|
||||
**ONTOLOGY ALIGNMENT**:
|
||||
- **Primary** (`class_uri`): `hc:DataFormat` - Heritage Custodian class
|
||||
- **Close**: `dct:MediaTypeOrExtent` - Dublin Core media type
|
||||
- **Close**: `schema:encodingFormat` - Schema.org encoding
|
||||
|
||||
**Common Format Types**:
|
||||
| Type | Media Type | Use Case |
|
||||
|------|------------|----------|
|
||||
| JSON | application/json | API responses, config |
|
||||
| XML | application/xml | Legacy APIs, metadata |
|
||||
| CSV | text/csv | Data exports, tabular |
|
||||
| RDF | application/rdf+xml | Linked data |
|
||||
| SensorML | application/xml | Sensor metadata |
|
||||
|
||||
**Example**:
|
||||
```yaml
|
||||
has_or_had_format:
|
||||
has_or_had_type: JsonFormat
|
||||
has_or_had_media_type: "application/json"
|
||||
has_or_had_encoding: "UTF-8"
|
||||
```
|
||||
|
||||
close_mappings:
|
||||
- dct:MediaTypeOrExtent
|
||||
- schema:encodingFormat
|
||||
|
||||
slots:
|
||||
- has_or_had_type
|
||||
- has_or_had_label
|
||||
- has_or_had_description
|
||||
- has_or_had_media_type
|
||||
- has_or_had_encoding
|
||||
- has_or_had_schema_url
|
||||
|
||||
slot_usage:
|
||||
has_or_had_type:
|
||||
range: DataFormatType
|
||||
description: |
|
||||
The format type classification.
|
||||
Links to DataFormatType taxonomy (JSON, XML, CSV, etc.).
|
||||
examples:
|
||||
- value: JsonFormat
|
||||
description: JSON format type
|
||||
- value: CsvFormat
|
||||
description: CSV format type
|
||||
has_or_had_label:
|
||||
range: Label
|
||||
inlined: true
|
||||
description: Human-readable name for the format.
|
||||
examples:
|
||||
- value:
|
||||
label_text: "JSON"
|
||||
description: Format label
|
||||
has_or_had_media_type:
|
||||
range: string
|
||||
description: |
|
||||
IANA media type (MIME type) for the format.
|
||||
See: https://www.iana.org/assignments/media-types/
|
||||
examples:
|
||||
- value: "application/json"
|
||||
description: JSON media type
|
||||
- value: "text/csv"
|
||||
description: CSV media type
|
||||
has_or_had_encoding:
|
||||
range: string
|
||||
description: Character encoding used (e.g., UTF-8, ISO-8859-1).
|
||||
examples:
|
||||
- value: "UTF-8"
|
||||
description: Unicode encoding
|
||||
has_or_had_schema_url:
|
||||
range: uri
|
||||
description: URL to schema definition (JSON Schema, XSD, etc.).
|
||||
examples:
|
||||
- value: "https://api.museum.nl/schemas/v1/climate.json"
|
||||
description: JSON Schema URL
|
||||
|
||||
attributes:
|
||||
has_or_had_media_type:
|
||||
range: string
|
||||
description: IANA media type (MIME type).
|
||||
has_or_had_encoding:
|
||||
range: string
|
||||
description: Character encoding (e.g., UTF-8).
|
||||
has_or_had_schema_url:
|
||||
range: uri
|
||||
description: URL to schema definition.
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: "Data format specifications apply to all custodian types with digital systems."
|
||||
specificity_score: 0.55
|
||||
specificity_rationale: "Moderately specific to digital platform and API contexts."
|
||||
|
||||
# Type class for format taxonomy (Rule 0b: Type/Types pattern)
|
||||
DataFormatType:
|
||||
class_uri: hc:DataFormatType
|
||||
abstract: true
|
||||
description: |
|
||||
Abstract base class for data format type taxonomy.
|
||||
|
||||
**Type/Types Pattern** (Rule 0b):
|
||||
- `DataFormatType` (this file): Abstract base class
|
||||
- `DataFormatTypes.yaml`: Concrete subclasses (JsonFormat, XmlFormat, etc.)
|
||||
|
||||
Subclasses define specific format types used in heritage data systems.
|
||||
|
||||
slots:
|
||||
- has_or_had_label
|
||||
- has_or_had_description
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: "Format types applicable universally."
|
||||
217
schemas/20251121/linkml/modules/classes/DataFormatTypes.yaml
Normal file
217
schemas/20251121/linkml/modules/classes/DataFormatTypes.yaml
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
# DataFormatTypes - Concrete subclasses for data format taxonomy
|
||||
#
|
||||
# Created per slot_fixes.yaml migration for: data_format
|
||||
# Creation date: 2026-01-22
|
||||
# Rule compliance: 0b (Type/Types pattern), 39 (RiC-O naming)
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/DataFormatTypes
|
||||
name: data_format_types
|
||||
title: Data Format Types
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ./DataFormat
|
||||
|
||||
classes:
|
||||
# ===== Common Data Interchange Formats =====
|
||||
|
||||
JsonFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:JsonFormat
|
||||
description: |
|
||||
JavaScript Object Notation (JSON) format.
|
||||
Media type: application/json
|
||||
Common for APIs, configuration, and data exchange.
|
||||
annotations:
|
||||
media_type: "application/json"
|
||||
|
||||
XmlFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:XmlFormat
|
||||
description: |
|
||||
Extensible Markup Language (XML) format.
|
||||
Media type: application/xml
|
||||
Common for legacy APIs, metadata standards.
|
||||
annotations:
|
||||
media_type: "application/xml"
|
||||
|
||||
CsvFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:CsvFormat
|
||||
description: |
|
||||
Comma-Separated Values (CSV) format.
|
||||
Media type: text/csv
|
||||
Common for tabular data exports.
|
||||
annotations:
|
||||
media_type: "text/csv"
|
||||
|
||||
# ===== Linked Data Formats =====
|
||||
|
||||
RdfXmlFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:RdfXmlFormat
|
||||
description: |
|
||||
RDF/XML serialization format.
|
||||
Media type: application/rdf+xml
|
||||
W3C standard for RDF serialization.
|
||||
annotations:
|
||||
media_type: "application/rdf+xml"
|
||||
|
||||
TurtleFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:TurtleFormat
|
||||
description: |
|
||||
Turtle (Terse RDF Triple Language) format.
|
||||
Media type: text/turtle
|
||||
Human-readable RDF serialization.
|
||||
annotations:
|
||||
media_type: "text/turtle"
|
||||
|
||||
JsonLdFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:JsonLdFormat
|
||||
description: |
|
||||
JSON for Linked Data (JSON-LD) format.
|
||||
Media type: application/ld+json
|
||||
JSON-based linked data serialization.
|
||||
annotations:
|
||||
media_type: "application/ld+json"
|
||||
|
||||
NTriplesFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:NTriplesFormat
|
||||
description: |
|
||||
N-Triples format for RDF.
|
||||
Media type: application/n-triples
|
||||
Line-based RDF serialization.
|
||||
annotations:
|
||||
media_type: "application/n-triples"
|
||||
|
||||
# ===== Sensor/IoT Formats =====
|
||||
|
||||
SensorMlFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:SensorMlFormat
|
||||
description: |
|
||||
Sensor Model Language (SensorML) format.
|
||||
OGC standard for sensor metadata and processes.
|
||||
annotations:
|
||||
media_type: "application/xml"
|
||||
standard: "OGC SensorML"
|
||||
|
||||
MqttPayloadFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:MqttPayloadFormat
|
||||
description: |
|
||||
MQTT message payload format.
|
||||
Used for IoT device communication.
|
||||
Actual payload typically JSON or binary.
|
||||
annotations:
|
||||
protocol: "MQTT"
|
||||
|
||||
# ===== Heritage Metadata Formats =====
|
||||
|
||||
EadFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:EadFormat
|
||||
description: |
|
||||
Encoded Archival Description (EAD) format.
|
||||
Media type: application/xml
|
||||
Standard for archival finding aids.
|
||||
annotations:
|
||||
media_type: "application/xml"
|
||||
standard: "EAD3"
|
||||
|
||||
MarcXmlFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:MarcXmlFormat
|
||||
description: |
|
||||
MARC 21 XML format.
|
||||
Media type: application/marcxml+xml
|
||||
Library bibliographic record format.
|
||||
annotations:
|
||||
media_type: "application/marcxml+xml"
|
||||
standard: "MARC21"
|
||||
|
||||
MetsFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:MetsFormat
|
||||
description: |
|
||||
Metadata Encoding and Transmission Standard (METS).
|
||||
Media type: application/xml
|
||||
Digital library object packaging.
|
||||
annotations:
|
||||
media_type: "application/xml"
|
||||
standard: "METS"
|
||||
|
||||
LidoFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:LidoFormat
|
||||
description: |
|
||||
Lightweight Information Describing Objects (LIDO).
|
||||
Media type: application/xml
|
||||
Museum object description harvesting.
|
||||
annotations:
|
||||
media_type: "application/xml"
|
||||
standard: "LIDO"
|
||||
|
||||
DublinCoreFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:DublinCoreFormat
|
||||
description: |
|
||||
Dublin Core metadata format (DC or qualified DC).
|
||||
Media type: application/xml
|
||||
General-purpose metadata standard.
|
||||
annotations:
|
||||
media_type: "application/xml"
|
||||
standard: "Dublin Core"
|
||||
|
||||
# ===== Document Formats =====
|
||||
|
||||
PdfFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:PdfFormat
|
||||
description: |
|
||||
Portable Document Format (PDF).
|
||||
Media type: application/pdf
|
||||
Document distribution and archival.
|
||||
annotations:
|
||||
media_type: "application/pdf"
|
||||
|
||||
HtmlFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:HtmlFormat
|
||||
description: |
|
||||
HyperText Markup Language (HTML).
|
||||
Media type: text/html
|
||||
Web page content.
|
||||
annotations:
|
||||
media_type: "text/html"
|
||||
|
||||
PlainTextFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:PlainTextFormat
|
||||
description: |
|
||||
Plain text format.
|
||||
Media type: text/plain
|
||||
Unformatted text content.
|
||||
annotations:
|
||||
media_type: "text/plain"
|
||||
|
||||
# ===== Binary/Media Formats =====
|
||||
|
||||
BinaryFormat:
|
||||
is_a: DataFormatType
|
||||
class_uri: hc:BinaryFormat
|
||||
description: |
|
||||
Generic binary data format.
|
||||
Media type: application/octet-stream
|
||||
Raw binary data streams.
|
||||
annotations:
|
||||
media_type: "application/octet-stream"
|
||||
80
schemas/20251121/linkml/modules/classes/MainPart.yaml
Normal file
80
schemas/20251121/linkml/modules/classes/MainPart.yaml
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
id: https://nde.nl/ontology/hc/class/MainPart
|
||||
name: main_part_class
|
||||
title: Main Part Class
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
dcterms: http://purl.org/dc/terms/
|
||||
imports:
|
||||
- linkml:types
|
||||
- ../slots/has_or_had_quantity
|
||||
- ./Quantity
|
||||
default_prefix: hc
|
||||
|
||||
classes:
|
||||
MainPart:
|
||||
class_uri: schema:QuantitativeValue
|
||||
description: >-
|
||||
Represents a principal/primary portion of something with quantified value.
|
||||
|
||||
**PURPOSE**:
|
||||
|
||||
MainPart provides structured representation for primary allocations such as:
|
||||
- Capital budget (principal budget for infrastructure/equipment)
|
||||
- Primary funding amount
|
||||
- Main portion of a larger whole
|
||||
|
||||
**ONTOLOGY ALIGNMENT**:
|
||||
|
||||
| Ontology | Mapping | Rationale |
|
||||
|----------|---------|-----------|
|
||||
| Schema.org | schema:QuantitativeValue | Quantified value |
|
||||
|
||||
**USE CASES**:
|
||||
- Capital budget allocation in institutional budgets
|
||||
- Primary collection value
|
||||
- Main funding allocation
|
||||
|
||||
MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for capital_budget.
|
||||
Replaces simple decimal capital_budget with structured class.
|
||||
exact_mappings:
|
||||
- schema:QuantitativeValue
|
||||
slots:
|
||||
- has_or_had_quantity
|
||||
slot_usage:
|
||||
has_or_had_quantity:
|
||||
range: Quantity
|
||||
required: true
|
||||
inlined: true
|
||||
description: >-
|
||||
The quantified value of this main part.
|
||||
For capital budget: Quantity.quantity_value = amount, currency in metadata.
|
||||
attributes:
|
||||
part_type:
|
||||
range: string
|
||||
required: false
|
||||
description: >-
|
||||
Type of main part (e.g., "capital_budget", "primary_allocation", "main_funding").
|
||||
currency_code:
|
||||
range: string
|
||||
required: false
|
||||
description: >-
|
||||
ISO 4217 currency code for financial values (e.g., "EUR", "USD", "GBP").
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_quantity:
|
||||
quantity_value: 3000000.0
|
||||
part_type: capital_budget
|
||||
currency_code: EUR
|
||||
description: Capital budget of 3 million EUR
|
||||
- value:
|
||||
has_or_had_quantity:
|
||||
quantity_value: 500000.0
|
||||
part_type: capital_budget
|
||||
currency_code: USD
|
||||
description: Capital budget of 500,000 USD
|
||||
annotations:
|
||||
specificity_score: 0.40
|
||||
specificity_rationale: >-
|
||||
Main parts are moderately specific, relevant for budget and allocation queries.
|
||||
124
schemas/20251121/linkml/modules/classes/OutputData.yaml
Normal file
124
schemas/20251121/linkml/modules/classes/OutputData.yaml
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
# OutputData - Class for device/service output specifications
|
||||
#
|
||||
# Created per slot_fixes.yaml migration for: data_format
|
||||
# Creation date: 2026-01-22
|
||||
# Rule compliance: 39 (RiC-O naming), 50 (ontology mapping), 53 (generic slot reuse)
|
||||
|
||||
id: https://nde.nl/ontology/hc/class/OutputData
|
||||
name: output_data
|
||||
title: Output Data
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
sosa: http://www.w3.org/ns/sosa/
|
||||
dct: http://purl.org/dc/terms/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
- ./DataFormat
|
||||
- ../slots/has_or_had_format
|
||||
- ../slots/has_or_had_description
|
||||
- ../slots/has_or_had_identifier
|
||||
|
||||
classes:
|
||||
OutputData:
|
||||
class_uri: hc:OutputData
|
||||
description: |
|
||||
Specification of output produced by a device, service, or process.
|
||||
|
||||
**DEFINITION**:
|
||||
OutputData captures the characteristics of data or signals emitted by
|
||||
systems, including format, structure, destination, and metadata.
|
||||
|
||||
**USAGE**:
|
||||
- IoT device data (sensor readings, beacon signals)
|
||||
- API responses (JSON, XML, RDF)
|
||||
- Export files (CSV, Excel, PDF)
|
||||
- Streaming data (MQTT, WebSocket)
|
||||
|
||||
**ONTOLOGY ALIGNMENT**:
|
||||
- **Primary** (`class_uri`): `hc:OutputData` - Heritage Custodian class
|
||||
- **Close**: `sosa:Result` - SOSA observation result
|
||||
- **Close**: `schema:DataDownload` - Schema.org data download
|
||||
|
||||
**Example**:
|
||||
```yaml
|
||||
has_or_had_output:
|
||||
- has_or_had_format:
|
||||
has_or_had_type: JsonFormat
|
||||
has_or_had_media_type: "application/json"
|
||||
has_or_had_description: "Climate sensor readings"
|
||||
destination_url: "https://analytics.museum.nl/climate"
|
||||
```
|
||||
|
||||
close_mappings:
|
||||
- sosa:Result
|
||||
- schema:DataDownload
|
||||
|
||||
slots:
|
||||
- has_or_had_format
|
||||
- has_or_had_description
|
||||
- has_or_had_identifier
|
||||
- destination_url
|
||||
- schema_url
|
||||
- is_streaming
|
||||
|
||||
slot_usage:
|
||||
has_or_had_format:
|
||||
range: DataFormat
|
||||
inlined: true
|
||||
description: |
|
||||
The format specification for this output.
|
||||
Uses DataFormat class to capture format type, media type, and schema.
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_type: JsonFormat
|
||||
has_or_had_media_type: "application/json"
|
||||
description: JSON output format
|
||||
has_or_had_description:
|
||||
range: string
|
||||
description: Human-readable description of the output data.
|
||||
examples:
|
||||
- value: "Temperature and humidity readings from conservation sensors"
|
||||
description: Sensor data description
|
||||
destination_url:
|
||||
range: uri
|
||||
description: URL where output is sent or published.
|
||||
examples:
|
||||
- value: "https://analytics.museum.nl/data"
|
||||
description: Analytics platform destination
|
||||
schema_url:
|
||||
range: uri
|
||||
description: URL to schema definition for the output data structure.
|
||||
examples:
|
||||
- value: "https://api.museum.nl/schemas/climate-v1.json"
|
||||
description: JSON Schema for climate data
|
||||
is_streaming:
|
||||
range: boolean
|
||||
description: Whether this output is continuous/streaming vs batch/discrete.
|
||||
examples:
|
||||
- value: true
|
||||
description: Real-time streaming data
|
||||
- value: false
|
||||
description: Batch data export
|
||||
|
||||
attributes:
|
||||
destination_url:
|
||||
range: uri
|
||||
description: URL where output is sent or published.
|
||||
schema_url:
|
||||
range: uri
|
||||
description: URL to schema definition for the output data.
|
||||
is_streaming:
|
||||
range: boolean
|
||||
description: Whether this output is streaming vs batch.
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: "Output data specifications apply to all custodian types with digital systems."
|
||||
specificity_score: 0.65
|
||||
specificity_rationale: "Fairly specific to IoT and digital platform contexts."
|
||||
|
|
@ -225,27 +225,30 @@ classes:
|
|||
Uses Capacity class with capacity_type and has_or_had_measurement_unit.
|
||||
examples:
|
||||
- value:
|
||||
- capacity_value: 8000.0
|
||||
capacity_type: SHELF_LENGTH
|
||||
has_or_had_measurement_unit:
|
||||
has_or_had_type: LINEAR_METER
|
||||
has_or_had_symbol: "m"
|
||||
- has_or_had_quantity:
|
||||
has_or_had_numeric_value: 8000.0
|
||||
has_or_had_unit:
|
||||
has_or_had_type: LinearMeter
|
||||
has_or_had_symbol: "m"
|
||||
has_or_had_type: ShelfLength
|
||||
has_or_had_description: Total linear meters of shelving
|
||||
description: Was capacity_linear_meters
|
||||
description: Was capacity_linear_meters (capacity_value → has_or_had_quantity)
|
||||
- value:
|
||||
- capacity_value: 2500.0
|
||||
capacity_type: VOLUME
|
||||
has_or_had_measurement_unit:
|
||||
has_or_had_type: CUBIC_METER
|
||||
has_or_had_symbol: "m³"
|
||||
description: Was capacity_cubic_meters
|
||||
- has_or_had_quantity:
|
||||
has_or_had_numeric_value: 2500.0
|
||||
has_or_had_unit:
|
||||
has_or_had_type: CubicMeter
|
||||
has_or_had_symbol: "m³"
|
||||
has_or_had_type: Volume
|
||||
description: Was capacity_cubic_meters (capacity_value → has_or_had_quantity)
|
||||
- value:
|
||||
- capacity_value: 50000
|
||||
capacity_type: ITEM_COUNT
|
||||
has_or_had_measurement_unit:
|
||||
has_or_had_type: ITEM
|
||||
has_or_had_symbol: "archive boxes"
|
||||
description: Was capacity_item
|
||||
- has_or_had_quantity:
|
||||
has_or_had_numeric_value: 50000
|
||||
has_or_had_unit:
|
||||
has_or_had_type: Item
|
||||
has_or_had_symbol: "archive boxes"
|
||||
has_or_had_type: ItemCount
|
||||
description: Was capacity_item (capacity_value → has_or_had_quantity)
|
||||
- value:
|
||||
- has_or_had_description: "Approximately 5,000 linear meters of shelving across 3 floors"
|
||||
is_estimate: true
|
||||
|
|
@ -376,11 +379,12 @@ classes:
|
|||
label_text: Rijksmuseum Depot Amersfoort
|
||||
language: nl
|
||||
has_or_had_capacity: # was: capacity_linear_meters - migrated per Rule 53
|
||||
- capacity_value: 8000.0
|
||||
capacity_type: SHELF_LENGTH
|
||||
has_or_had_measurement_unit:
|
||||
has_or_had_type: LINEAR_METER
|
||||
has_or_had_symbol: "m"
|
||||
- has_or_had_quantity:
|
||||
has_or_had_numeric_value: 8000.0
|
||||
has_or_had_unit:
|
||||
has_or_had_type: LinearMeter
|
||||
has_or_had_symbol: "m"
|
||||
has_or_had_type: ShelfLength
|
||||
has_or_had_description: Total linear shelf capacity
|
||||
current_utilization_percent: 78.5
|
||||
standards_applied:
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ imports:
|
|||
- ./Methodology
|
||||
- ../slots/person_id
|
||||
- ../slots/has_average_scene_duration_seconds
|
||||
- ../slots/cut_count
|
||||
# REMOVED 2026-01-22: cut_count migrated to has_or_had_quantity + Quantity (Rule 53)
|
||||
- ../slots/has_or_had_detected_face
|
||||
- ../slots/has_or_had_detected_landmark
|
||||
- ../slots/has_or_had_detected_logo
|
||||
|
|
@ -196,7 +196,7 @@ classes:
|
|||
- schema:Clip
|
||||
slots:
|
||||
- has_average_scene_duration_seconds
|
||||
- cut_count
|
||||
- has_or_had_quantity # was: cut_count - migrated per Rule 53 (2026-01-22)
|
||||
- detection_level
|
||||
- dissolve_count
|
||||
- fade_count
|
||||
|
|
@ -253,13 +253,21 @@ classes:
|
|||
examples:
|
||||
- value: '[{has_or_had_label: "CUT"}, {has_or_had_label: "FADE_IN"}]'
|
||||
description: Transition types found in video
|
||||
cut_count:
|
||||
range: integer
|
||||
has_or_had_quantity: # was: cut_count - migrated per Rule 53 (2026-01-22)
|
||||
range: Quantity
|
||||
required: false
|
||||
minimum_value: 0
|
||||
inlined: true
|
||||
description: |
|
||||
Number of hard cuts (instantaneous transitions) as a Quantity.
|
||||
MIGRATED from cut_count per slot_fixes.yaml (Rule 53).
|
||||
Uses Quantity class with Unit type "Cut".
|
||||
examples:
|
||||
- value: 42
|
||||
description: 42 cuts detected
|
||||
- value:
|
||||
has_or_had_numeric_value: 42
|
||||
has_or_had_unit:
|
||||
has_or_had_type: Cut
|
||||
has_or_had_symbol: "cuts"
|
||||
description: 42 cuts detected (was cut_count)
|
||||
fade_count:
|
||||
range: integer
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -306,7 +306,8 @@ classes:
|
|||
description: Dutch subtitles in VTT format
|
||||
- value:
|
||||
is_available: false
|
||||
description: No captions available (migrated from caption_available: false)
|
||||
language: null
|
||||
description: No captions available (migrated from caption_available false)
|
||||
default_language:
|
||||
range: string
|
||||
required: false
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
id: https://nde.nl/ontology/hc/slot/has_or_had_main_part
|
||||
name: has_or_had_main_part_slot
|
||||
title: Has or Had Main Part Slot
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
dcterms: http://purl.org/dc/terms/
|
||||
imports:
|
||||
- linkml:types
|
||||
default_range: string
|
||||
|
||||
slots:
|
||||
has_or_had_main_part:
|
||||
slot_uri: schema:hasPart
|
||||
description: >-
|
||||
Links to a MainPart representing the principal/primary portion of something.
|
||||
|
||||
**USE CASES**:
|
||||
- Capital budget (primary budget allocation for infrastructure/equipment)
|
||||
- Primary collection holdings
|
||||
- Main organizational unit
|
||||
|
||||
**ONTOLOGY ALIGNMENT**:
|
||||
- slot_uri: schema:hasPart (primary)
|
||||
- Represents a significant/main portion of a larger whole
|
||||
|
||||
MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for capital_budget.
|
||||
range: MainPart
|
||||
inlined: true
|
||||
exact_mappings:
|
||||
- schema:hasPart
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: Main parts are universal across organizational contexts
|
||||
66
schemas/20251121/linkml/modules/slots/has_or_had_output.yaml
Normal file
66
schemas/20251121/linkml/modules/slots/has_or_had_output.yaml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# has_or_had_output - Output/emission slot for devices and services
|
||||
#
|
||||
# Created per slot_fixes.yaml migration for: data_format
|
||||
# Creation date: 2026-01-22
|
||||
# Rule compliance: 39 (RiC-O naming), 50 (ontology mapping), 53 (generic slot reuse)
|
||||
|
||||
id: https://nde.nl/ontology/hc/slot/has_or_had_output
|
||||
name: has_or_had_output
|
||||
title: Has or Had Output
|
||||
|
||||
prefixes:
|
||||
linkml: https://w3id.org/linkml/
|
||||
hc: https://nde.nl/ontology/hc/
|
||||
schema: http://schema.org/
|
||||
sosa: http://www.w3.org/ns/sosa/
|
||||
|
||||
default_prefix: hc
|
||||
|
||||
imports:
|
||||
- linkml:types
|
||||
|
||||
slots:
|
||||
has_or_had_output:
|
||||
slot_uri: hc:hasOrHadOutput
|
||||
description: |
|
||||
Output produced by a device, service, or process.
|
||||
|
||||
**USAGE**:
|
||||
Represents data, signals, or artifacts emitted by:
|
||||
- IoT devices (sensor readings, beacon signals)
|
||||
- APIs and services (data responses)
|
||||
- Processing pipelines (transformed data)
|
||||
- Software systems (reports, exports)
|
||||
|
||||
**ONTOLOGY ALIGNMENT**:
|
||||
- **Primary** (`slot_uri`): `hc:hasOrHadOutput` - Heritage Custodian property
|
||||
- **Close**: `sosa:hasResult` - SOSA observation result
|
||||
- **Close**: `schema:produces` - Schema.org production relationship
|
||||
|
||||
**RANGE**: `OutputData` class
|
||||
The OutputData class captures output specifications including format,
|
||||
frequency, destination, and data characteristics.
|
||||
|
||||
range: OutputData
|
||||
multivalued: true
|
||||
inlined_as_list: true
|
||||
|
||||
close_mappings:
|
||||
- sosa:hasResult
|
||||
- schema:produces
|
||||
|
||||
examples:
|
||||
- value:
|
||||
has_or_had_format:
|
||||
has_or_had_type: JsonFormat
|
||||
has_or_had_description: "Climate sensor readings in JSON format"
|
||||
description: IoT device output specification
|
||||
- value:
|
||||
has_or_had_format:
|
||||
has_or_had_type: CsvFormat
|
||||
destination_url: "https://analytics.museum.nl/data"
|
||||
description: Data export output
|
||||
|
||||
annotations:
|
||||
custodian_types: '["*"]'
|
||||
custodian_types_rationale: "Output specifications applicable to all custodian types with digital systems."
|
||||
|
|
@ -20,9 +20,8 @@
|
|||
"has_or_had_notation.yaml",
|
||||
"has_or_had_canonical_form.yaml",
|
||||
"capacity_type.yaml",
|
||||
"capacity_value.yaml",
|
||||
"capital_budget.yaml",
|
||||
"caption_available.yaml",
|
||||
"has_or_had_main_part.yaml",
|
||||
"has_or_had_caption.yaml",
|
||||
"card_image_url.yaml",
|
||||
"card_title.yaml",
|
||||
"card_title_en.yaml",
|
||||
|
|
@ -175,7 +174,7 @@
|
|||
"custodian_type_related.yaml",
|
||||
"custody_history.yaml",
|
||||
"custody_received_by.yaml",
|
||||
"cut_count.yaml",
|
||||
"__ARCHIVED_20260122__cut_count.yaml",
|
||||
"data_format.yaml",
|
||||
"data_license_policy.yaml",
|
||||
"data_repository.yaml",
|
||||
|
|
|
|||
|
|
@ -8096,7 +8096,8 @@ fixes:
|
|||
would enhance semantic clarity and allow for richer metadata about each budget amount.
|
||||
|
||||
This would align with best practices for financial data modeling.'
|
||||
done: false
|
||||
done: true
|
||||
response: "Completed 2026-01-22 by claude-sonnet-4. Per revision: created has_or_had_main_part slot and MainPart class. Migrated Budget.yaml to use MainPart with Quantity for capital budget amount. MainPart.part_type='capital_budget' and currency_code attribute. Archived capital_budget.yaml."
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/caption_available
|
||||
revision:
|
||||
- label: has_or_had_caption
|
||||
|
|
@ -8133,7 +8134,8 @@ fixes:
|
|||
would enhance semantic clarity and allow for richer metadata about caption availability.
|
||||
|
||||
This would align with best practices for accessibility data modeling.'
|
||||
done: false
|
||||
done: true
|
||||
response: "Completed 2026-01-22 by claude-sonnet-4. Created has_or_had_caption slot and Caption class. Migrated VideoPost.yaml to use structured Caption with is_available, language, caption_format, caption_url attributes. Archived caption_available.yaml."
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/card_description
|
||||
revision:
|
||||
- label: has_or_had_description
|
||||
|
|
@ -11368,6 +11370,24 @@ fixes:
|
|||
type: slot
|
||||
- label: Unit
|
||||
type: class
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-22'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration #60: capacity_value** ✅ COMPLETE
|
||||
|
||||
**Pattern**: capacity_value → has_or_had_quantity + Quantity + has_or_had_unit + Unit
|
||||
|
||||
**Files Used** (pre-existing):
|
||||
- has_or_had_quantity.yaml, Quantity.yaml
|
||||
- has_or_had_unit.yaml, Unit.yaml
|
||||
|
||||
**Files Modified**:
|
||||
- Capacity.yaml: Replaced capacity_value with has_or_had_quantity (required field)
|
||||
- Storage.yaml: Updated examples to use has_or_had_quantity pattern
|
||||
|
||||
**Archived**: modules/slots/archive/capacity_value_archived_20260122.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/cut_count
|
||||
revision:
|
||||
- label: has_or_had_quantity
|
||||
|
|
@ -11379,6 +11399,25 @@ fixes:
|
|||
- label: Unit
|
||||
type: class
|
||||
value: cut
|
||||
processed:
|
||||
status: true
|
||||
date: '2026-01-22'
|
||||
agent: claude-claude-sonnet-4-20250514
|
||||
notes: |
|
||||
**Migration #61: cut_count** ✅ COMPLETE
|
||||
|
||||
**Pattern**: cut_count → has_or_had_quantity + Quantity + has_or_had_unit + Unit (value: cut)
|
||||
|
||||
**Files Used** (pre-existing):
|
||||
- has_or_had_quantity.yaml, Quantity.yaml
|
||||
- has_or_had_unit.yaml, Unit.yaml
|
||||
|
||||
**Files Modified**:
|
||||
- VideoAnnotationTypes.yaml: Replaced cut_count with has_or_had_quantity in VideoSceneAnnotation class
|
||||
- Updated imports, slots list, and slot_usage section
|
||||
- Unit type set to "Cut" per revision value specification
|
||||
|
||||
**Archived**: modules/slots/archive/cut_count_archived_20260122.yaml
|
||||
- original_slot_id: https://nde.nl/ontology/hc/slot/data_format
|
||||
revision:
|
||||
- label: has_or_had_output
|
||||
|
|
|
|||
Loading…
Reference in a new issue