glam/schemas/20251121/linkml/modules/classes/Project.yaml
2025-12-01 23:55:55 +01:00

671 lines
27 KiB
YAML

# Project Class
# Models projects and initiatives run by EncompassingBody organizations
#
# Created November 2025 to link:
# - EncompassingBody.projects → Project[] (network runs projects)
# - Custodian.participated_in_projects → Project[] (custodians participate)
#
# Key relationships:
# EncompassingBody (NetworkOrganisation) --runs--> Project
# Custodian --participated_in--> Project
# Project --has_participating_custodians--> Custodian[]
#
# Example: NDE (NetworkOrganisation) runs "Versnellen 2024" project
# in which Amsterdam Museum (Custodian) participates
id: https://nde.nl/ontology/hc/class/Project
name: Project
title: Project Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
foaf: http://xmlns.com/foaf/0.1/
doap: http://usefulinc.com/ns/doap#
prov: http://www.w3.org/ns/prov#
org: http://www.w3.org/ns/org#
skos: http://www.w3.org/2004/02/skos/core#
imports:
- linkml:types
- ../enums/ProjectStatusEnum
- ../slots/funding_source
- ../slots/contact_email
- ../slots/keywords
- ../slots/documentation_url
default_prefix: hc
slots:
project_id:
identifier: true
range: uriorcurie
description: Unique identifier for this project
project_name:
range: string
description: Human-readable project name
project_short_name:
range: string
description: Short name or acronym for the project
project_description:
range: string
description: Detailed description of the project
project_status:
range: ProjectStatusEnum
description: Current lifecycle status of the project
project_url:
range: uri
description: Official project website or landing page
start_date:
range: date
description: Date project started or is scheduled to start
end_date:
range: date
description: Date project ended or is scheduled to end
# NOTE: funding_source imported from global slot ../slots/funding_source.yaml
funding_amount:
range: string
description: Total funding amount (with currency)
objectives:
range: string
multivalued: true
description: List of project objectives
deliverables:
range: string
multivalued: true
description: Expected or achieved deliverables
organizing_body:
range: uriorcurie
description: EncompassingBody running this project
participating_custodians:
range: uriorcurie
multivalued: true
description: Custodians participating in this project
related_projects:
range: uriorcurie
multivalued: true
description: Related or predecessor/successor projects
# NOTE: documentation_url imported from global slot ../slots/documentation_url.yaml
# NOTE: contact_email imported from global slot ../slots/contact_email.yaml
# NOTE: keywords imported from global slot ../slots/keywords.yaml
project_identifiers:
range: uriorcurie
multivalued: true
description: External identifiers (Wikidata, DOI, etc.)
funding_call:
range: uriorcurie
description: >-
CallForApplication that funded this project.
Inverse of CallForApplication.funded_projects.
classes:
Project:
class_uri: org:OrganizationalCollaboration
description: >-
A time-limited initiative or program run by an EncompassingBody organization
(typically a NetworkOrganisation) in which heritage Custodians participate.
**PURPOSE**:
Projects bridge the gap between:
- **EncompassingBody** (organizations that coordinate heritage custodians)
- **Custodian** (individual heritage institutions)
A NetworkOrganisation like NDE (Netwerk Digitaal Erfgoed) runs multiple projects
over time. Each project involves participation from member Custodians who
contribute resources, expertise, or collections.
**KEY RELATIONSHIPS**:
```
EncompassingBody (e.g., NDE)
├── projects ──→ Project (e.g., "Versnellen 2024")
│ │
│ ├── participating_custodians ──→ Custodian[]
│ │
│ └── funding_call ──→ CallForApplication
│ │
│ └── funded_projects (inverse)
└── member_custodians ──→ Custodian[]
└── participated_in_projects ──→ Project[]
```
**BIDIRECTIONAL NAVIGATION**:
- From EncompassingBody: `encompassing_body.projects` → all projects run by network
- From Project: `project.participating_custodians` → all custodians in project
- From Custodian: `custodian.participated_in_projects` → all projects custodian joined
**PROJECT vs ORGANIZATIONAL CHANGE EVENT**:
- **Project**: Time-limited initiative with defined goals, deliverables, funding
- **OrganizationalChangeEvent**: Structural change in organization (merger, split, etc.)
Projects may TRIGGER organizational change events but are distinct concepts:
- "Digitization Partnership 2023" (Project) → restructuring of digitization teams (OrganizationalChangeEvent)
**EXAMPLES**:
1. **NDE Versnellen 2024**
- organizing_body: NDE (NetworkOrganisation)
- participating_custodians: Amsterdam Museum, KB, Nationaal Archief, etc.
- objectives: Accelerate digital heritage infrastructure adoption
- project_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/
2. **Europeana Aggregation Project**
- organizing_body: Europeana Foundation (NetworkOrganisation)
- participating_custodians: National museums across EU
- objectives: Aggregate and standardize metadata for discovery
3. **OCLC Linked Data Initiative**
- organizing_body: OCLC (Cooperative)
- participating_custodians: Member libraries contributing authority data
- objectives: Expand linked data resources for libraries
**ONTOLOGY ALIGNMENT**:
- **Schema.org**: `schema:Project` - "An enterprise (potentially combinding people,
organizations, software, and physical resources) to accomplish a particular goal"
- **DOAP**: `doap:Project` - Description of a Project (software-focused but extensible)
- **PROV-O**: `prov:Activity` - Can model project as activity with agents
- **Dublin Core**: `dcterms:relation` for project relationships
**TEMPORAL DYNAMICS**:
Projects have defined lifecycles tracked via `project_status`:
- PROPOSED → APPROVED → IN_PROGRESS → COMPLETED
- May be ON_HOLD (temporarily paused) or DISCONTINUED (terminated)
- May be EXTENDED (continued beyond original end date)
**PARTICIPATION PATTERNS**:
Custodians participate in projects through various roles:
- **Lead partner**: Primary responsibility, often receives main funding
- **Consortium member**: Equal partnership with shared responsibilities
- **Subcontractor**: Specific deliverables under contract
- **Advisory role**: Guidance without direct deliverables
- **Pilot site**: Testing/validation of project outputs
These roles can be modeled via a ProjectParticipation class if needed (future extension).
exact_mappings:
- org:OrganizationalCollaboration
- schema:Project
- doap:Project
close_mappings:
- prov:Activity
- schema:ResearchProject
- schema:FundingScheme
related_mappings:
- org:Organization # Projects often have organizational structure
- schema:Grant # Projects often funded by grants
slots:
- project_id
- project_name
- project_short_name
- project_description
- project_status
- project_url
- start_date
- end_date
- funding_source
- funding_amount
- objectives
- deliverables
- organizing_body
- participating_custodians
- related_projects
- documentation_url
- contact_email
- keywords
- project_identifiers
- funding_call
slot_usage:
project_id:
identifier: true
required: true
range: uriorcurie
description: >-
Unique identifier for this project.
Format: https://nde.nl/ontology/hc/project/{organizing-body-slug}/{project-slug}
pattern: "^https://nde\\.nl/ontology/hc/project/[a-z0-9-]+/[a-z0-9-]+$"
examples:
- value: "https://nde.nl/ontology/hc/project/nde/versnellen-2024"
description: "NDE Versnellen 2024 project"
- value: "https://nde.nl/ontology/hc/project/europeana/aggregation-2023"
description: "Europeana aggregation project"
project_name:
slot_uri: skos:prefLabel
required: true
range: string
description: >-
Official name of the project.
Should be human-readable and descriptive.
examples:
- value: "Versnellen 2024"
description: "NDE acceleration program 2024"
- value: "Digital Collections Integration Project"
description: "Descriptive project name"
project_short_name:
slot_uri: skos:altLabel
range: string
description: >-
Short name or acronym for the project.
Used in internal communications or brief references.
examples:
- value: "V2024"
description: "Versnellen 2024 abbreviation"
- value: "DCIP"
description: "Digital Collections Integration Project acronym"
project_description:
slot_uri: dcterms:description
required: true
range: string
description: >-
Detailed description of the project including:
- Background and motivation
- Approach and methodology
- Expected impact and outcomes
- Target audience or beneficiaries
examples:
- value: >-
Versnellen 2024 is NDE's annual acceleration program supporting
heritage institutions in adopting digital infrastructure. The
program provides funding, technical support, and training to
help museums, archives, and libraries implement sustainable
digital preservation and access solutions. Participants receive
customized guidance based on their digital maturity assessment.
project_status:
required: true
range: ProjectStatusEnum
description: >-
Current lifecycle status of the project.
See ProjectStatusEnum for status values and transitions:
- PROPOSED: Concept submitted, awaiting approval
- APPROVED: Approved and funded, not yet started
- IN_PROGRESS: Active work underway
- ON_HOLD: Temporarily suspended
- COMPLETED: Successfully finished
- DISCONTINUED: Terminated before completion
- EXTENDED: Continued beyond original timeline
examples:
- value: "IN_PROGRESS"
description: "Project actively underway"
- value: "COMPLETED"
description: "Project finished successfully"
project_url:
slot_uri: foaf:homepage
range: uri
description: >-
Official project website or landing page.
Should link to public project information.
examples:
- value: "https://netwerkdigitaalerfgoed.nl/versnellen-2024/"
description: "NDE Versnellen project page"
start_date:
slot_uri: schema:startDate
range: date
description: >-
Date when the project started or is scheduled to start.
For PROPOSED/APPROVED projects, this is the planned start date.
examples:
- value: "2024-01-01"
description: "Project started January 2024"
end_date:
slot_uri: schema:endDate
range: date
description: >-
Date when the project ended or is scheduled to end.
For EXTENDED projects, this is the revised end date.
May be NULL for ongoing/multi-year programs.
examples:
- value: "2024-12-31"
description: "Project ends December 2024"
funding_source:
range: string
multivalued: true
inlined_as_list: true
description: >-
Sources of funding for the project.
May include multiple funders for co-funded projects.
examples:
- value: "Ministry of OCW (Netherlands)"
description: "Dutch ministry funding"
- value: "Horizon Europe"
description: "EU framework program funding"
- value: "Member contributions"
description: "Self-funded by participating institutions"
funding_amount:
range: string
description: >-
Total funding amount including currency.
Format: "{amount} {currency}" e.g., "500000 EUR"
examples:
- value: "2.5M EUR"
description: "2.5 million euros"
- value: "500000 USD"
description: "Half million US dollars"
objectives:
slot_uri: dcterms:abstract
range: string
multivalued: true
inlined_as_list: true
description: >-
Specific, measurable objectives of the project.
Should be concrete goals that can be evaluated at project end.
**Ontology Note**: Uses `dcterms:abstract` as Schema.org does not have
a `schema:goal` property. Alternative: could use custom `hc:objective`
or PROV-O plan concepts.
examples:
- value: "Onboard 50 heritage institutions to NDE infrastructure"
- value: "Create standardized metadata mappings for 10M records"
- value: "Develop open source tools for digital preservation"
deliverables:
range: string
multivalued: true
inlined_as_list: true
description: >-
Expected or achieved deliverables of the project.
Tangible outputs that demonstrate project completion.
examples:
- value: "Technical implementation guide (published)"
- value: "Training curriculum for digital preservation"
- value: "Aggregated dataset of 5M heritage objects"
- value: "Open source metadata normalization tool"
organizing_body:
slot_uri: schema:sponsor
required: true
range: uriorcurie
description: >-
The EncompassingBody organization that runs this project.
URI reference to EncompassingBody entity (avoids circular dependency).
Format: https://nde.nl/ontology/hc/encompassing-body/{type}/{slug}
**Inverse of EncompassingBody.projects**:
- EncompassingBody → projects → Project[]
- Project → organizing_body → EncompassingBody
Typically a NetworkOrganisation or Consortium, but can be any
EncompassingBody subclass.
**Ontology Note**: Uses `schema:sponsor` - "A person or organization
that supports a thing through a pledge, promise, or financial contribution."
Domain includes Organization. `schema:organizer` was considered but
its domain is restricted to Event, not Project.
examples:
- value: "https://nde.nl/ontology/hc/encompassing-body/network/nde"
description: "NDE (Netwerk Digitaal Erfgoed)"
- value: "https://nde.nl/ontology/hc/encompassing-body/cooperative/oclc"
description: "OCLC cooperative"
participating_custodians:
slot_uri: org:hasMember
range: uriorcurie
multivalued: true
inlined_as_list: true
description: >-
Heritage custodians participating in this project.
URI references to Custodian entities (avoids circular dependency).
Format: https://nde.nl/ontology/hc/{abstracted-ghcid}
**Inverse of Custodian.participated_in_projects**:
- Project → participating_custodians → Custodian[]
- Custodian → participated_in_projects → Project[]
**Navigation Pattern**:
From project, find all participating institutions.
From custodian, find all projects they participated in.
**Ontology Note**: Uses W3C ORG `org:hasMember` - "Indicates a person
who is a member of the subject Organization." Since Project is modeled
as an org:OrganizationalCollaboration (which is an Organization), this
property is valid. Alternative was `schema:participant` but its domain
is schema:Action, not Organization/Project.
examples:
- value: "https://nde.nl/ontology/hc/nl-nh-ams-m-am"
description: "Amsterdam Museum"
- value: "https://nde.nl/ontology/hc/nl-zh-haa-l-kb"
description: "Koninklijke Bibliotheek"
related_projects:
slot_uri: dcterms:relation
range: uriorcurie
multivalued: true
inlined_as_list: true
description: >-
Related projects (predecessors, successors, or parallel initiatives).
Use for:
- Predecessor: Previous year's version (Versnellen 2023 → Versnellen 2024)
- Successor: Next phase of multi-year program
- Parallel: Related but independent initiatives
URI references to other Project entities.
examples:
- value: "https://nde.nl/ontology/hc/project/nde/versnellen-2023"
description: "Previous year's acceleration program"
documentation_url:
slot_uri: foaf:page
range: uri
description: >-
URL to project documentation (final reports, deliverables, lessons learned).
May differ from project_url (public site vs documentation repository).
examples:
- value: "https://zenodo.org/record/12345678"
description: "Final report on Zenodo"
- value: "https://github.com/nde-project/versnellen-2024"
description: "GitHub repository with deliverables"
contact_email:
slot_uri: schema:email
range: string
description: >-
Contact email for project inquiries.
Should be functional mailbox, not personal email.
examples:
- value: "versnellen@netwerkdigitaalerfgoed.nl"
keywords:
slot_uri: schema:keywords
range: string
multivalued: true
inlined_as_list: true
description: >-
Keywords describing the project scope and topics.
Used for discovery and classification.
examples:
- value: "digital preservation"
- value: "metadata standardization"
- value: "linked open data"
- value: "IIIF"
- value: "sustainable infrastructure"
project_identifiers:
slot_uri: dcterms:identifier
range: uriorcurie
multivalued: true
inlined_as_list: true
description: >-
External identifiers for this project.
URI format:
- Wikidata: http://www.wikidata.org/entity/Q12345
- DOI: https://doi.org/10.5281/zenodo.12345
- Grant number: urn:grant:horizon:123456
examples:
- value: "http://www.wikidata.org/entity/Q123456789"
description: "Wikidata entity for project"
- value: "https://doi.org/10.5281/zenodo.12345678"
description: "DOI for project deliverables"
funding_call:
slot_uri: schema:funding
range: uriorcurie
description: >-
The CallForApplication that funded this project.
URI reference to CallForApplication entity.
Format: https://nde.nl/ontology/hc/call/{issuing-org-slug}/{call-code}
**Inverse of CallForApplication.funded_projects**:
- Project → funding_call → CallForApplication
- CallForApplication → funded_projects → Project[]
**Schema.org Alignment**:
Uses `schema:funding` - "A Grant that directly or indirectly provide
funding or sponsorship for this item." This is the inverse of
`schema:fundedItem` used by CallForApplication.funded_projects.
**RELATIONSHIP MODEL**:
```
Project (e.g., "Heritage Digitization 2025")
└── funding_call ──→ CallForApplication
└── funded_projects ──→ Project[] (inverse)
```
**DISTINCTION FROM funding_source**:
- `funding_source`: String description of funding sources (may include
multiple funders, non-call sources like "member contributions")
- `funding_call`: URI reference to specific CallForApplication
Use both for comprehensive funding documentation:
- `funding_call` for semantic, machine-navigable link
- `funding_source` for human-readable description including all funders
examples:
- value: "https://nde.nl/ontology/hc/call/ec/horizon-cl2-2025-heritage-01"
description: "Horizon Europe CL2 heritage call"
- value: "https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025"
description: "National Lottery Heritage Fund call"
comments:
- "Project links EncompassingBody (organizer) to Custodian (participants)"
- "Bidirectional navigation: organizing_body ↔ projects, participating_custodians ↔ participated_in_projects"
- "Bidirectional link to CallForApplication via funding_call ↔ funded_projects"
- "Distinct from OrganizationalChangeEvent (initiatives vs structural changes)"
- "Lifecycle tracked via ProjectStatusEnum (PROPOSED through COMPLETED)"
- "Example: NDE Versnellen program links NDE network to participating heritage institutions"
see_also:
- "https://schema.org/Project"
- "http://usefulinc.com/ns/doap#Project"
- "https://netwerkdigitaalerfgoed.nl/versnellen-2024/"
examples:
- value:
project_id: "https://nde.nl/ontology/hc/project/nde/versnellen-2024"
project_name: "Versnellen 2024"
project_short_name: "V2024"
project_description: >-
Versnellen 2024 is NDE's annual acceleration program supporting
heritage institutions in adopting sustainable digital infrastructure.
The program provides funding, technical expertise, and training to
help museums, archives, and libraries implement digital preservation
and access solutions aligned with NDE's infrastructure requirements.
In 2024, the program focuses on:
- Linked Data publication and consumption
- IIIF implementation for image interoperability
- Sustainable API development
- Metadata quality improvement
project_status: "IN_PROGRESS"
project_url: "https://netwerkdigitaalerfgoed.nl/versnellen-2024/"
start_date: "2024-01-15"
end_date: "2024-12-31"
funding_source:
- "Ministry of OCW (Netherlands)"
- "NDE member contributions"
funding_amount: "1.2M EUR"
objectives:
- "Support 40 heritage institutions in digital infrastructure adoption"
- "Achieve IIIF compliance for 15 participating organizations"
- "Publish 2M heritage objects as Linked Open Data"
- "Train 200 heritage professionals in digital preservation"
deliverables:
- "Individual implementation roadmaps for each participant"
- "Technical documentation and best practices guide"
- "Training curriculum and workshop materials"
- "Case study reports from participating institutions"
organizing_body: "https://nde.nl/ontology/hc/encompassing-body/network/nde"
participating_custodians:
- "https://nde.nl/ontology/hc/nl-nh-ams-m-am" # Amsterdam Museum
- "https://nde.nl/ontology/hc/nl-zh-haa-l-kb" # KB
- "https://nde.nl/ontology/hc/nl-zh-haa-a-na" # Nationaal Archief
- "https://nde.nl/ontology/hc/nl-nh-ams-m-rm" # Rijksmuseum
related_projects:
- "https://nde.nl/ontology/hc/project/nde/versnellen-2023"
contact_email: "versnellen@netwerkdigitaalerfgoed.nl"
keywords:
- "digital heritage"
- "infrastructure"
- "linked data"
- "IIIF"
- "metadata"
- "digital preservation"
description: "NDE Versnellen 2024 - Dutch digital heritage acceleration program"
- value:
project_id: "https://nde.nl/ontology/hc/project/europeana/common-culture-2024"
project_name: "Europeana Common Culture"
project_short_name: "ECC"
project_description: >-
Europeana Common Culture aggregates and standardizes heritage
metadata from national aggregators across Europe, making cultural
heritage collections discoverable through the Europeana platform.
The project works with national aggregators to improve metadata
quality and implement the Europeana Data Model (EDM).
project_status: "IN_PROGRESS"
project_url: "https://pro.europeana.eu/project/europeana-common-culture"
start_date: "2023-06-01"
end_date: "2025-05-31"
funding_source:
- "Horizon Europe (European Commission)"
funding_amount: "4.2M EUR"
funding_call: "https://nde.nl/ontology/hc/call/ec/horizon-cl2-2023-heritage-01"
objectives:
- "Aggregate 15M new heritage objects to Europeana"
- "Improve metadata quality scores for existing records"
- "Implement EDM 5.2.x across all contributing aggregators"
organizing_body: "https://nde.nl/ontology/hc/encompassing-body/network/europeana"
participating_custodians:
- "https://nde.nl/ontology/hc/at-vienna-a-ona" # Austrian National Archives
- "https://nde.nl/ontology/hc/be-brussels-l-kbr" # KBR Belgium
keywords:
- "aggregation"
- "metadata"
- "Europeana Data Model"
- "cultural heritage discovery"
description: "Europeana cross-border heritage aggregation project"