glam/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml
2025-12-03 17:38:46 +01:00

525 lines
22 KiB
YAML

# FundingRequirement Class
# Models individual requirements/criteria for funding calls with provenance tracking
#
# Created November 2025 to support:
# - Structured representation of eligibility criteria from CallForApplication
# - Provenance chain: FundingRequirement → WebObservation → SourceDocument
# - Machine-readable requirements for filtering and matching heritage custodians
#
# Key relationships:
# CallForApplication --requirements--> FundingRequirement[]
# FundingRequirement --observed_in--> WebObservation (provenance)
# FundingRequirement --requirement_type--> FundingRequirementTypeEnum
#
# Design pattern:
# Each requirement is a separate entity with its own provenance, allowing:
# - Different requirements from different sources (call page vs. guidelines PDF)
# - Temporal tracking when requirements change
# - Fine-grained confidence scores per requirement
#
# Examples:
# - "Minimum 3 partners from 3 EU Member States" (PARTNERSHIP_MINIMUM_PARTNERS)
# - "Co-funding of 25% required" (FINANCIAL_COFUNDING)
# - "Open access publication mandatory" (TECHNICAL_OPEN_ACCESS)
id: https://nde.nl/ontology/hc/class/FundingRequirement
name: FundingRequirement
title: FundingRequirement Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
pav: http://purl.org/pav/
skos: http://www.w3.org/2004/02/skos/core#
imports:
- linkml:types
- ../enums/FundingRequirementTypeEnum
# Import global slots
- ../slots/valid_from
- ../slots/valid_to
- ../slots/supersedes
- ../slots/extraction_confidence
- ../slots/extraction_notes
default_prefix: hc
slots:
requirement_id:
identifier: true
range: uriorcurie
description: Unique identifier for this funding requirement
requirement_type:
range: FundingRequirementTypeEnum
description: Category of requirement (eligibility, financial, partnership, etc.)
requirement_text:
range: string
description: Human-readable text of the requirement as stated in source
requirement_value:
range: string
description: Machine-readable value extracted from requirement (e.g., "3" for minimum partners)
requirement_unit:
range: string
description: Unit of measurement for requirement_value (e.g., "partners", "EUR", "months")
is_mandatory:
range: boolean
description: Whether this requirement is mandatory (true) or preferred/optional (false)
applies_to_call:
range: uriorcurie
description: CallForApplication this requirement belongs to
observed_in:
range: uriorcurie
description: WebObservation documenting where this requirement was found
source_section:
range: string
description: Section of the source document where requirement was found
# NOTE: valid_from imported from global slot ../slots/valid_from.yaml
# NOTE: valid_to imported from global slot ../slots/valid_to.yaml
# NOTE: supersedes imported from global slot ../slots/supersedes.yaml
# NOTE: extraction_confidence imported from global slot ../slots/extraction_confidence.yaml
# NOTE: extraction_notes imported from global slot ../slots/extraction_notes.yaml
classes:
FundingRequirement:
class_uri: dcterms:Standard
description: |
A requirement or criterion that applicants must meet to be eligible for
a funding call. Each requirement is tracked with provenance linking to
the source document where it was stated.
**PURPOSE**:
FundingRequirement provides structured, machine-readable representation
of funding call eligibility criteria. Instead of storing requirements as
free-text lists in CallForApplication, each requirement becomes a
trackable entity with:
- **Classification**: Categorized by FundingRequirementTypeEnum
- **Provenance**: Linked to WebObservation documenting source
- **Values**: Machine-readable value + human-readable text
- **Temporality**: Valid date range for time-scoped requirements
**PROVENANCE CHAIN**:
```
CallForApplication
├── requirements ──→ FundingRequirement[]
│ │
│ ├── requirement_type: PARTNERSHIP_MINIMUM_PARTNERS
│ ├── requirement_text: "At least 3 partners from 3 EU countries"
│ ├── requirement_value: "3"
│ ├── requirement_unit: "partners"
│ │
│ └── observed_in ──→ WebObservation
│ │
│ ├── source_url: https://ec.europa.eu/...
│ ├── retrieved_on: 2025-11-29T10:30:00Z
│ └── extraction_confidence: 0.95
└── web_observations ──→ WebObservation[] (general call provenance)
```
**ONTOLOGY ALIGNMENT**:
- **Dublin Core**: `dcterms:Standard` - "A reference point against which
other things can be evaluated" (requirements are standards for eligibility)
- **Dublin Core**: `dcterms:requires` - Relates call to requirement
- **Dublin Core**: `dcterms:conformsTo` - Applicants must conform to requirements
- **Schema.org**: `schema:eligibleRegion` - For geographic requirements
- **Schema.org**: `schema:eligibleQuantity` - For numeric constraints
- **PROV-O**: `prov:wasDerivedFrom` - Links requirement to observation
**REQUIREMENT CATEGORIES**:
Requirements are classified into six main categories via FundingRequirementTypeEnum:
1. **Eligibility** (ELIGIBILITY_*): Who can apply
- Geographic: EU Member States, Associated Countries
- Organizational: Non-profit, public body, SME
- Heritage type: Museums, archives, libraries
- Experience: Track record, previous projects
2. **Financial** (FINANCIAL_*): Budget and funding
- Co-funding: Match funding percentages
- Budget limits: Minimum/maximum grant size
- Funding rate: Percentage of eligible costs
- Eligible costs: What can be funded
3. **Partnership** (PARTNERSHIP_*): Consortium requirements
- Minimum partners: Number required
- Country diversity: Geographic spread
- Sector mix: Organisation types needed
- Coordinator: Lead partner constraints
4. **Thematic** (THEMATIC_*): Topic and scope
- Focus area: Required research/action themes
- Heritage scope: Types of heritage addressed
- Geographic scope: Where activities occur
5. **Technical** (TECHNICAL_*): Outputs and approach
- Deliverables: Required outputs
- Open access: Publication requirements
- Duration: Project length constraints
- Methodology: Required approaches
6. **Administrative** (ADMINISTRATIVE_*): Process requirements
- Registration: Portal accounts needed
- Documentation: Supporting documents
- Language: Submission language
- Format: Templates and page limits
**TEMPORAL TRACKING**:
Requirements can change between call publications. The `supersedes` field
links to previous versions, and `valid_from`/`valid_to` scope applicability:
```
FundingRequirement (current)
├── valid_from: 2025-01-15
├── requirement_value: "3" (minimum partners)
└── supersedes ──→ FundingRequirement (previous)
├── valid_from: 2024-01-15
├── valid_to: 2025-01-14
└── requirement_value: "4" (was 4 partners)
```
**EXTRACTION PATTERN**:
When extracting requirements from web sources:
1. Create WebObservation for the source page
2. For each requirement found:
- Create FundingRequirement with observed_in → WebObservation
- Classify using FundingRequirementTypeEnum
- Extract machine-readable value and unit
- Record source_section for traceability
- Assign extraction_confidence based on clarity
**EXAMPLES**:
1. **Partnership Requirement**
- requirement_type: PARTNERSHIP_MINIMUM_PARTNERS
- requirement_text: "Minimum 3 independent legal entities from 3 different EU Member States"
- requirement_value: "3"
- requirement_unit: "partners"
- is_mandatory: true
2. **Financial Requirement**
- requirement_type: FINANCIAL_COFUNDING
- requirement_text: "Co-funding of minimum 25% from non-EU sources required"
- requirement_value: "25"
- requirement_unit: "percent"
- is_mandatory: true
3. **Open Access Requirement**
- requirement_type: TECHNICAL_OPEN_ACCESS
- requirement_text: "All peer-reviewed publications must be open access (Plan S compliant)"
- requirement_value: "immediate"
- is_mandatory: true
exact_mappings:
- dcterms:Standard
close_mappings:
- schema:QuantitativeValue
- skos:Concept
related_mappings:
- dcterms:requires
- dcterms:conformsTo
- schema:eligibleRegion
- schema:eligibleQuantity
- prov:wasDerivedFrom
slots:
- requirement_id
- requirement_type
- requirement_text
- requirement_value
- requirement_unit
- is_mandatory
- applies_to_call
- observed_in
- source_section
- valid_from
- valid_to
- supersedes
- extraction_confidence
- extraction_notes
slot_usage:
requirement_id:
identifier: true
required: true
range: uriorcurie
description: |
Unique identifier for this funding requirement.
Format: https://nde.nl/ontology/hc/requirement/{call-slug}/{requirement-slug}
pattern: "^https://nde\\.nl/ontology/hc/requirement/[a-z0-9-]+/[a-z0-9-]+$"
examples:
- value: "https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/min-partners-3"
description: "Minimum partners requirement for Horizon Europe call"
- value: "https://nde.nl/ontology/hc/requirement/nlhf-medium-2025/cofunding-25pct"
description: "Co-funding requirement for NLHF grants"
requirement_type:
slot_uri: dcterms:type
required: true
range: FundingRequirementTypeEnum
description: |
Category of requirement from FundingRequirementTypeEnum.
Enables filtering and matching of requirements across calls.
See enum documentation for full category list.
examples:
- value: "PARTNERSHIP_MINIMUM_PARTNERS"
description: "Consortium size requirement"
- value: "FINANCIAL_COFUNDING"
description: "Match funding requirement"
- value: "ELIGIBILITY_GEOGRAPHIC"
description: "Country eligibility requirement"
requirement_text:
slot_uri: skos:definition
required: true
range: string
description: |
Human-readable text of the requirement as stated in the source.
Should preserve original wording for accuracy and citation.
examples:
- value: "Minimum 3 independent legal entities from 3 different EU Member States or Horizon Europe Associated Countries"
description: "Partnership requirement from Horizon Europe"
- value: "Applications must demonstrate at least 25% co-funding from non-EU sources"
description: "Co-funding requirement from call guidelines"
requirement_value:
slot_uri: schema:value
range: string
description: |
Machine-readable value extracted from requirement.
Used with requirement_unit for structured queries.
Format depends on requirement type:
- Numeric: "3", "25", "500000"
- Boolean: "true", "false"
- Coded: "eu-member-states", "open-access"
examples:
- value: "3"
description: "Minimum 3 partners"
- value: "25"
description: "25% co-funding"
- value: "eu-member-states"
description: "Geographic eligibility"
- value: "immediate"
description: "Immediate open access"
requirement_unit:
slot_uri: schema:unitText
range: string
description: |
Unit of measurement for requirement_value.
Enables interpretation of numeric values.
examples:
- value: "partners"
description: "Number of consortium partners"
- value: "percent"
description: "Percentage (co-funding, funding rate)"
- value: "EUR"
description: "Currency for budget amounts"
- value: "months"
description: "Project duration"
- value: "countries"
description: "Geographic diversity"
is_mandatory:
range: boolean
ifabsent: "true"
description: |
Whether this requirement is mandatory for eligibility (true)
or preferred/optional (false).
Defaults to true - most requirements are mandatory.
examples:
- value: true
description: "Mandatory: must meet to be eligible"
- value: false
description: "Optional: preferred but not required"
observed_in:
slot_uri: prov:wasDerivedFrom
required: true
range: uriorcurie
description: |
WebObservation documenting where this requirement was found.
Links requirement to its provenance:
- Source URL
- Retrieval timestamp
- Extraction method
- Original content
PROV-O: prov:wasDerivedFrom links Entity to Activity
examples:
- value: "https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage"
description: "Observation of Horizon Europe call page"
source_section:
range: string
description: |
Section heading or location in source document where requirement was found.
Aids verification and citation.
examples:
- value: "Section 2.1 - Eligibility Criteria"
description: "Location in call document"
- value: "FAQ #7 - Consortium composition"
description: "Location in FAQ document"
- value: "Work Programme page 45"
description: "Location in programme document"
supersedes:
slot_uri: dcterms:replaces
range: uriorcurie
description: |
Previous version of this requirement (for change tracking).
Creates version chain when requirements are updated between
call publications or corrigenda.
examples:
- value: "https://nde.nl/ontology/hc/requirement/ec-cl2-2024-heritage-01/min-partners-4"
description: "Previous version required 4 partners"
extraction_confidence:
range: float
minimum_value: 0.0
maximum_value: 1.0
description: |
Confidence score for this specific requirement extraction (0.0-1.0).
May differ from WebObservation.extraction_confidence if some
requirements on a page are clearer than others.
Interpretation:
- 0.9-1.0: Clear, explicit statement
- 0.7-0.9: Reasonably clear, minor ambiguity
- 0.5-0.7: Inferred or implicit
- <0.5: Uncertain, needs verification
examples:
- value: 0.95
description: "Explicit statement in eligibility section"
- value: 0.75
description: "Inferred from multiple sentences"
- value: 0.60
description: "Implicit, verification recommended"
comments:
- "Each requirement links to WebObservation for full provenance chain"
- "requirement_value + requirement_unit enable structured queries"
- "is_mandatory defaults to true; explicitly set false for optional requirements"
- "supersedes creates version chain for requirement changes"
- "extraction_confidence can differ from observation confidence"
see_also:
- "https://dublincore.org/specifications/dublin-core/dcmi-terms/#Standard"
- "https://schema.org/QuantitativeValue"
- "https://www.w3.org/TR/prov-o/#Entity"
- "http://purl.org/pav/"
examples:
- value:
requirement_id: "https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/min-partners-3-countries"
requirement_type: "PARTNERSHIP_MINIMUM_PARTNERS"
requirement_text: >-
Proposals must be submitted by a consortium of at least 3 independent
legal entities established in 3 different EU Member States or Horizon
Europe Associated Countries.
requirement_value: "3"
requirement_unit: "partners"
is_mandatory: true
applies_to_call: "https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01"
observed_in: "https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage"
source_section: "Section 2 - Eligibility Conditions"
extraction_confidence: 0.98
extraction_notes: "Clear statement in eligibility section. Standard Horizon Europe RIA requirement."
description: "Minimum partners requirement for Horizon Europe heritage call"
- value:
requirement_id: "https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/cofunding-for-profit"
requirement_type: "FINANCIAL_COFUNDING"
requirement_text: >-
For-profit entities receive 70% funding rate. The remaining 30% must
be covered by co-funding or own resources.
requirement_value: "30"
requirement_unit: "percent"
is_mandatory: true
applies_to_call: "https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01"
observed_in: "https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage"
source_section: "Section 3 - Financial Conditions"
extraction_confidence: 0.95
extraction_notes: "Applies only to for-profit partners. Non-profits receive 100% funding."
description: "Co-funding requirement for for-profit entities"
- value:
requirement_id: "https://nde.nl/ontology/hc/requirement/ec-cl2-2025-heritage-01/open-access"
requirement_type: "TECHNICAL_OPEN_ACCESS"
requirement_text: >-
Beneficiaries must ensure open access to peer-reviewed scientific
publications under the conditions required by the Grant Agreement.
Immediate open access is mandatory (no embargo period).
requirement_value: "immediate"
requirement_unit: null
is_mandatory: true
applies_to_call: "https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01"
observed_in: "https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage"
source_section: "Section 4.2 - Open Science"
extraction_confidence: 0.99
extraction_notes: "Standard Horizon Europe open access requirement. Plan S compliant."
description: "Open access publication requirement"
- value:
requirement_id: "https://nde.nl/ontology/hc/requirement/nlhf-medium-2025/uk-based"
requirement_type: "ELIGIBILITY_GEOGRAPHIC"
requirement_text: >-
Your organisation must be based in the UK (England, Northern Ireland,
Scotland or Wales). Projects must take place in the UK.
requirement_value: "UK"
requirement_unit: "country"
is_mandatory: true
applies_to_call: "https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4"
observed_in: "https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants"
source_section: "Eligibility"
extraction_confidence: 0.99
extraction_notes: "Clear UK-only restriction. Devolved nations explicitly included."
description: "UK geographic eligibility for National Lottery Heritage Fund"
- value:
requirement_id: "https://nde.nl/ontology/hc/requirement/nlhf-medium-2025/non-profit"
requirement_type: "ELIGIBILITY_ORGANIZATIONAL"
requirement_text: >-
We can fund not-for-profit organisations, including charities,
community groups, local authorities, and social enterprises.
Private individuals and for-profit companies are not eligible.
requirement_value: "non-profit"
requirement_unit: "organization-type"
is_mandatory: true
applies_to_call: "https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4"
observed_in: "https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants"
source_section: "Who can apply"
extraction_confidence: 0.95
extraction_notes: "Explicitly excludes for-profit. Social enterprises may need verification."
description: "Non-profit eligibility for National Lottery Heritage Fund"