Developing the SchemaΒΆ

The project metadata schema is maintained with a combination of JSON Schema files that are referenced by the classes and methods of the datacatalog package which implement linkage and management workflow. Many nodes in the schema are defined by static files, but some are built dynamically using web service queries or other external sources of truth. Furthermore, the rendered schema documents are stamped with date and current git commit and validated against all versions of the JSON schema specification.

Consequently, extending the project schema requires a bit of Python development experience in order to safely contribute to this shared and project-critical resource. It is advisable to become familiar with the Python package architecture overview and guidance on how to contribute to it.

The major classes in the Python package that are extensible via editing their JSON schema are listed here in order of increasing technical complexity.