diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 1e6accbbd3..e4a47a69b6 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-14T18:57:52.851Z", + "generated": "2026-01-14T19:01:57.459Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2957, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index e4a47a69b6..508802aadd 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-14T19:01:57.459Z", + "generated": "2026-01-14T19:03:25.181Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2957, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index 436cdaf1ff..284f67bf66 100644 --- a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -45,7 +45,11 @@ imports: - ../slots/template_specificity - ../slots/thematic_area - ../slots/total_budget -- ../slots/typical_grant_range +- ../slots/has_or_had_range +- ./GrantRange +- ./Quantity +- ./MeasureUnit +- ../enums/MeasureUnitEnum - ../slots/web_observation - ./SpecificityAnnotation - ./TemplateSpecificityScores @@ -122,7 +126,7 @@ classes: - template_specificity - thematic_area - total_budget - - typical_grant_range + - has_or_had_range - web_observation slot_usage: call_id: @@ -249,7 +253,17 @@ classes: application_deadline: '2025-09-16' results_expected_date: '2026-03-01' total_budget: 82.5M EUR - typical_grant_range: 2M-4M EUR per project + has_or_had_range: + - minimal_of_minimal: + quantity_value: 2000000 + has_or_had_measurement_unit: + unit_label: EUR + maximal_of_maximal: + quantity_value: 4000000 + has_or_had_measurement_unit: + unit_label: EUR + range_description: Typical project funding range + range_currency: EUR eligible_applicant: - Public bodies - Research organisations @@ -309,7 +323,17 @@ classes: call_status: OPEN call_url: https://www.heritagefund.org.uk/funding/medium-grants application_deadline: '2025-12-31' - typical_grant_range: £250K-£5M + has_or_had_range: + - minimal_of_minimal: + quantity_value: 250000 + has_or_had_measurement_unit: + unit_label: GBP + maximal_of_maximal: + quantity_value: 5000000 + has_or_had_measurement_unit: + unit_label: GBP + range_description: Medium grants funding range + range_currency: GBP eligible_applicant: - Not-for-profit organisations - Local authorities diff --git a/schemas/20251121/linkml/modules/classes/GrantRange.yaml b/schemas/20251121/linkml/modules/classes/GrantRange.yaml new file mode 100644 index 0000000000..d1c1ab4cb1 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/GrantRange.yaml @@ -0,0 +1,155 @@ +# GrantRange - Structured representation of funding/grant amount ranges +# Created per slot_fixes.yaml migration for: typical_grant_range +# Creation date: 2026-01-14 +# +# REVISION FROM slot_fixes.yaml (lines 2166-2183): +# - label: GrantRange (class) ← THIS FILE +# - link_branch 1: minimal_of_minimal → Quantity +# - link_branch 2: maximal_of_maximal → Quantity +# +# Rule compliance: 38 (slot centralization), 51 (ontology verification), 53 (slot_fixes.yaml) + +id: https://nde.nl/ontology/hc/class/GrantRange +name: grant_range_class +title: GrantRange Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + schema: http://schema.org/ + +imports: + - linkml:types + - ../slots/minimal_of_minimal + - ../slots/maximal_of_maximal + - ./Quantity + - ./MeasureUnit + - ../enums/MeasureUnitEnum + +default_prefix: hc + +classes: + GrantRange: + class_uri: crm:E54_Dimension + description: | + Structured representation of a funding or grant amount range. + + **PURPOSE**: + Replaces string-based grant ranges like "€100K-€500K" with structured data + enabling comparison, filtering, and currency-aware analytics. + + **STRUCTURE** (per slot_fixes.yaml): + - `minimal_of_minimal` → Quantity (branch 1): Lower bound with amount and currency + - `maximal_of_maximal` → Quantity (branch 2): Upper bound with amount and currency + + **CIDOC-CRM Alignment**: + Maps to E54_Dimension which represents quantifiable properties, + using P90a/P90b for lower/upper value limits. + + **USE CASES**: + - Heritage grant programs (Mondriaan Fund, EU Creative Europe) + - Digitization funding ranges + - Conservation project budgets + - Research grant parameters + + **EXAMPLE** - Creative Europe Grant: + ```yaml + has_or_had_range: + - minimal_of_minimal: + quantity_value: 60000 + has_or_had_measurement_unit: + unit_label: "EUR" + maximal_of_maximal: + quantity_value: 200000 + has_or_had_measurement_unit: + unit_label: "EUR" + range_description: "Small-scale cooperation projects" + ``` + + exact_mappings: + - crm:E54_Dimension + + close_mappings: + - schema:MonetaryAmount + - schema:QuantitativeValue + + slots: + - minimal_of_minimal + - maximal_of_maximal + + attributes: + range_description: + range: string + description: Human-readable description of what this range represents. + examples: + - value: "Typical project funding range" + - value: "Small-scale cooperation projects" + - value: "Heritage digitization grants" + + range_currency: + range: string + description: | + ISO 4217 currency code for the range (convenience field). + Should match currency in minimal_of_minimal/maximal_of_maximal Quantities. + pattern: "^[A-Z]{3}$" + examples: + - value: "EUR" + - value: "USD" + - value: "GBP" + + range_notes: + range: string + description: Additional notes about range applicability or conditions. + examples: + - value: "Maximum 80% of total project budget" + - value: "Co-financing required" + + slot_usage: + minimal_of_minimal: + range: Quantity + inlined: true + required: false + description: Lower bound of the grant range (e.g., minimum funding amount). + maximal_of_maximal: + range: Quantity + inlined: true + required: false + description: Upper bound of the grant range (e.g., maximum funding amount). + + comments: + - Created from slot_fixes.yaml migration (2026-01-14) + - Replaces string-based typical_grant_range slot + - Enables structured comparison and filtering of funding opportunities + - Currency-aware through Quantity class integration + + see_also: + - https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E54 + + examples: + - value: + minimal_of_minimal: + quantity_value: 100000 + has_or_had_measurement_unit: + unit_label: "EUR" + maximal_of_maximal: + quantity_value: 500000 + has_or_had_measurement_unit: + unit_label: "EUR" + range_description: "Medium-scale heritage projects" + range_currency: "EUR" + description: EU Creative Europe medium project grant range + + - value: + minimal_of_minimal: + quantity_value: 250000 + has_or_had_measurement_unit: + unit_label: "GBP" + maximal_of_maximal: + quantity_value: 5000000 + has_or_had_measurement_unit: + unit_label: "GBP" + range_description: "National Lottery Heritage Fund grants" + range_currency: "GBP" + range_notes: "Maximum 90% of total costs for projects over £1M" + description: UK National Lottery Heritage Fund grant range diff --git a/schemas/20251121/linkml/modules/slots/typical_grant_range.yaml b/schemas/20251121/linkml/modules/slots/archive/typical_grant_range_archived_20260114.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/typical_grant_range.yaml rename to schemas/20251121/linkml/modules/slots/archive/typical_grant_range_archived_20260114.yaml diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index a0875d6444..e2b9d12e02 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -2181,6 +2181,16 @@ fixes: - label: Quantity type: class link_branch: 2 + processed: + status: true + date: "2026-01-14" + notes: | + Migration completed for typical_grant_range slot. + Created: GrantRange class, has_or_had_range slot, minimal_of_minimal slot, maximal_of_maximal slot + Branch 1: minimal_of_minimal → Quantity (reused existing) + Branch 2: maximal_of_maximal → Quantity (reused existing) + Consuming classes updated: CallForApplication.yaml + Archived slot: modules/slots/archive/typical_grant_range_archived_20260114.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/typical_domain revision: - label: has_or_had_domain