Link Search Menu Expand Document
View this file on Github Download as Schema.org

{{PROJECT_NAME}}

This file exposes the INFINITY Ecosystem annotations for this component. It is consumed as-is by the INFINITY Ecosystem website (built on REECO/Jekyll), so keep the YAML header both REECO-valid and up to date at every release.

Notes for editing this file

  • type must be one of REECO’s component subtypes, computed from the type hierarchy in reeco-python/src/reeco/schema/schema.yml (walked recursively from Component) – not just the rulebook’s illustrative “main categories” list. The main categories (Data, Application, Software, Report, Dataset, Ontology, KnowledgeGraph) are valid, but so are their more specific subtypes: Repository, Registry, Corpus, Lexicon, KnowledgeGraph, WebSite, WebApplication, WebService, SPARQLEndpoint, MobileApp, CLITool, Workflow, API, UserInterface, DockerImageContainer, SoftwareLibrary, Notebook, Script, RequirementsCollection, Story, Persona, Mockup, Survey, InPresenceSurvey, FocusGroup, Documentation, Tutorial, EvaluationReport. Avoid EcosystemWebsite and Deliverable: both are documented but currently unreachable due to a supertype-id mismatch bug in upstream schema.yml (case/whitespace), so they fail validation despite looking valid.
  • licence must be a list of codes from REECO’s own vocabulary (reeco-python/src/reeco/schema/licences.yml, ~340 entries derived from DALICC), not SPDX identifiers. MIT and Apache-2.0 happen to match SPDX; most others don’t (e.g. GPLv3 is GNU_GPL_v3, not GPL-3.0). As of this writing REECO has no EUPL code at all – even though EUPL-1.2 is the EC-recommended licence for EU-funded software and is this template’s actual LICENSE. The default above (GNU_GPL_v3) is used as the closest stand-in because GPLv3 is one of the few REECO codes that is also EUPL-compatible per the rulebook’s licence-compatibility Appendix – it is a metadata substitution for the ecosystem site only, not a change to this repository’s actual licence. Replace it if/when EUPL-1.2 is added upstream, or with the real code for whatever OSI-approved licence this repository actually uses.
  • related-components must be present (an empty list is valid) – REECO treats a missing key as an error, not a missing-but-optional field.
  • Every {{PLACEHOLDER}} value in this file is double-quoted on purpose: an unquoted scalar starting with {{ is invalid YAML ({ opens flow-mapping syntax), so key: {{TOKEN}} fails to parse while key: "{{TOKEN}}" doesn’t. scripts/bootstrap.sh substitutes inside the quotes and leaves them in place – keep that pattern for any new placeholder field you add.
  • Validate locally before pushing: pip install reeco && python -c "import frontmatter, reeco, sys; a,_ = frontmatter.parse(open('component.md').read()); v = reeco.Validator(); r = (v.asComponent(a) if 'component-id' in a else v.asContainer(a)); print(r)"
  • A repository may contain multiple annotated component files (any filename); duplicate this structure per component if so.
  • Component types: https://github.com/reeco-framework/reeco-annotation-schema/blob/main/schema/README.md