glam/schemas/20251121/linkml/modules/classes/Project.yaml
kempersc 174a420c08
All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 3m57s
refactor(schema): centralize 1515 inline slot definitions per Rule 48
- Remove inline slot definitions from 144 class files
- Create 7 new centralized slot files in modules/slots/:
  - custodian_type_broader.yaml
  - custodian_type_narrower.yaml
  - custodian_type_related.yaml
  - definition.yaml
  - finding_aid_access_restriction.yaml
  - finding_aid_description.yaml
  - finding_aid_temporal_coverage.yaml
- Add centralize_inline_slots.py automation script
- Update manifest with new timestamp

Rule 48: Class files must NOT define inline slots - all slots
must be imported from modules/slots/ directory.

Note: Pre-existing IdentifierFormat duplicate class definition
(in Standard.yaml and IdentifierFormat.yaml) not addressed in
this commit - requires separate schema refactor.
2026-01-11 22:02:14 +01:00

575 lines
24 KiB
YAML

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/keyword
- ../slots/documentation_url
- ../slots/start_date
- ../slots/end_date
- ../slots/deliverable
- ../slots/funding_amount
- ../slots/funding_call
- ../slots/objective
- ../slots/organizing_body
- ../slots/participating_custodian
- ../slots/project_description
- ../slots/project_id
- ../slots/project_identifier
- ../slots/project_name
- ../slots/project_short_name
- ../slots/project_status
- ../slots/project_url
- ../slots/related_project
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
default_prefix: hc
classes:
Project:
class_uri: org:OrganizationalCollaboration
description: "A time-limited initiative or program run by an EncompassingBody organization\n(typically a NetworkOrganisation)\
\ in which heritage Custodians participate.\n\n**PURPOSE**:\n\nProjects bridge the gap between:\n- **EncompassingBody**\
\ (organizations that coordinate heritage custodians)\n- **Custodian** (individual heritage institutions)\n\nA NetworkOrganisation\
\ like NDE (Netwerk Digitaal Erfgoed) runs multiple projects\nover time. Each project involves participation from member\
\ Custodians who\ncontribute resources, expertise, or collections.\n\n**KEY RELATIONSHIPS**:\n\n```\nEncompassingBody\
\ (e.g., NDE)\n │\n ├── projects ──→ Project (e.g., \"Versnellen 2024\")\n │ │\n\
\ │ ├── participating_custodians ──→ Custodian[]\n │ │\n │ \
\ └── funding_call ──→ CallForApplication\n │ │\n\
\ │ └── funded_projects (inverse)\n │\n └── member_custodians\
\ ──→ Custodian[]\n │\n └── participated_in_projects\
\ ──→ Project[]\n```\n\n**BIDIRECTIONAL NAVIGATION**:\n\n- From EncompassingBody: `encompassing_body.projects` → all\
\ projects run by network\n- From Project: `project.participating_custodians` → all custodians in project\n- From Custodian:\
\ `custodian.participated_in_projects` → all projects custodian joined\n\n**PROJECT vs ORGANIZATIONAL CHANGE EVENT**:\n\
\n- **Project**: Time-limited initiative with defined goals, deliverables, funding\n- **OrganizationalChangeEvent**:\
\ Structural change in organization (merger, split, etc.)\n\nProjects may TRIGGER organizational change events but are\
\ distinct concepts:\n- \"Digitization Partnership 2023\" (Project) → restructuring of digitization teams (OrganizationalChangeEvent)\n\
\n**EXAMPLES**:\n\n1. **NDE Versnellen 2024**\n - organizing_body: NDE (NetworkOrganisation)\n - participating_custodians:\
\ Amsterdam Museum, KB, Nationaal Archief, etc.\n - objectives: Accelerate digital heritage infrastructure adoption\n\
\ - project_url: https://netwerkdigitaalerfgoed.nl/versnellen-2024/\n \n2. **Europeana Aggregation Project**\n \
\ - organizing_body: Europeana Foundation (NetworkOrganisation)\n - participating_custodians: National museums across\
\ EU\n - objectives: Aggregate and standardize metadata for discovery\n \n3. **OCLC Linked Data Initiative**\n \
\ - organizing_body: OCLC (Cooperative)\n - participating_custodians: Member libraries contributing authority data\n\
\ - objectives: Expand linked data resources for libraries\n\n**ONTOLOGY ALIGNMENT**:\n\n- **Schema.org**: `schema:Project`\
\ - \"An enterprise (potentially combinding people,\n organizations, software, and physical resources) to accomplish\
\ a particular goal\"\n- **DOAP**: `doap:Project` - Description of a Project (software-focused but extensible)\n- **PROV-O**:\
\ `prov:Activity` - Can model project as activity with agents\n- **Dublin Core**: `dcterms:relation` for project relationships\n\
\n**TEMPORAL DYNAMICS**:\n\nProjects have defined lifecycles tracked via `project_status`:\n- PROPOSED → APPROVED →\
\ IN_PROGRESS → COMPLETED\n- May be ON_HOLD (temporarily paused) or DISCONTINUED (terminated)\n- May be EXTENDED (continued\
\ beyond original end date)\n\n**PARTICIPATION PATTERNS**:\n\nCustodians participate in projects through various roles:\n\
- **Lead partner**: Primary responsibility, often receives main funding\n- **Consortium member**: Equal partnership\
\ with shared responsibilities\n- **Subcontractor**: Specific deliverables under contract\n- **Advisory role**: Guidance\
\ without direct deliverables\n- **Pilot site**: Testing/validation of project outputs\n\nThese roles can be modeled\
\ via a ProjectParticipation class if needed (future extension).\n"
exact_mappings:
- org:OrganizationalCollaboration
- schema:Project
- doap:Project
close_mappings:
- prov:Activity
- schema:ResearchProject
- schema:FundingScheme
related_mappings:
- org:Organization
- schema:Grant
slots:
- contact_email
- deliverable
- documentation_url
- end_date
- funding_amount
- funding_call
- funding_source
- keyword
- objective
- organizing_body
- participating_custodian
- project_description
- project_id
- project_identifier
- project_name
- project_short_name
- project_status
- project_url
- related_project
- specificity_annotation
- start_date
- template_specificity
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 has_or_had_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
objective:
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
deliverable:
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_custodian:
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_project:
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
keyword:
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_identifier:
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.\n\nURI reference to CallForApplication entity.\nFormat:\
\ https://nde.nl/ontology/hc/call/{issuing-org-slug}/{call-code}\n\n**Inverse of CallForApplication.funded_projects**:\n\
- Project → funding_call → CallForApplication\n- CallForApplication → funded_projects → Project[]\n\n**Schema.org\
\ Alignment**:\nUses `schema:funding` - \"A Grant that directly or indirectly provide \nfunding or sponsorship for\
\ this item.\" This is the inverse of \n`schema:fundedItem` used by CallForApplication.funded_projects.\n\n**RELATIONSHIP\
\ MODEL**:\n\n```\nProject (e.g., \"Heritage Digitization 2025\")\n │\n └── funding_call ──→ CallForApplication\n\
\ │\n └── funded_projects ──→ Project[] (inverse)\n\
```\n\n**DISTINCTION FROM funding_source**:\n\n- `funding_source`: String description of funding sources (may include\
\ \n multiple funders, non-call sources like \"member contributions\")\n- `funding_call`: URI reference to specific\
\ CallForApplication\n\nUse both for comprehensive funding documentation:\n- `funding_call` for semantic, machine-navigable\
\ link\n- `funding_source` for human-readable description including all funders\n"
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
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
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 \nheritage institutions in adopting\
\ sustainable digital infrastructure. \nThe program provides funding, technical expertise, and training to \nhelp\
\ museums, archives, and libraries implement digital preservation \nand access solutions aligned with NDE's infrastructure\
\ requirements.\n\nIn 2024, the program focuses on:\n- Linked Data publication and consumption\n- IIIF implementation\
\ for image interoperability\n- Sustainable API development\n- Metadata quality improvement\n"
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
objective:
- 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
deliverable:
- 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_custodian:
- https://nde.nl/ontology/hc/nl-nh-ams-m-am
- https://nde.nl/ontology/hc/nl-zh-haa-l-kb
- https://nde.nl/ontology/hc/nl-zh-haa-a-na
- https://nde.nl/ontology/hc/nl-nh-ams-m-rm
related_project:
- https://nde.nl/ontology/hc/project/nde/versnellen-2023
contact_email: versnellen@netwerkdigitaalerfgoed.nl
keyword:
- 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 \nmetadata from national aggregators\
\ across Europe, making cultural \nheritage collections discoverable through the Europeana platform.\nThe project\
\ works with national aggregators to improve metadata \nquality and implement the Europeana Data Model (EDM).\n"
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
objective:
- 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_custodian:
- https://nde.nl/ontology/hc/at-vienna-a-ona
- https://nde.nl/ontology/hc/be-brussels-l-kbr
keyword:
- aggregation
- metadata
- Europeana Data Model
- cultural heritage discovery
description: Europeana cross-border heritage aggregation project