Skip to content

AV-EFI/av-efi-schema

Repository files navigation

License: CC BY 4.0 License: CC BY 4.0

The project/ subdirectory is dual licensed under the MIT license License: MIT

Schema for Audio-Visual Material

This repository has been created in order to track the development of schemas and controlled vocabularies as part of the AVefi project. Some documentation and examples are provided too. Validation against this schema is enforced during PID registration. For this purpose, the schema is deployed to the Data Type Registry and there available as the AVefi Kernel Information Profile.

Developer notes

The schema is developed using the LinkML framework. The src subdirectory contains the schema source in YAML and some additional documentation in markdown. The project subdirectory contains derivatives auto-generated using the tools provided by LinkML and others. In particular, derived JSONSchemas describing the PIDs for a film work, manifestation and item can be found in the project/jsonschema/epic/ subdirectory. Additionally, the project/python/avefi_schema/ subdirectory contains python bindings capable of generating schema compliant moving image metadata records.

In this repository, housekeeping tasks are managed by the doit task runner, i.e. a central file dodo.py in the root directory. In order to get things up and running, you should install the uv Python package manager as explained and recommended on their website first or just use pip uv in a virtualenv. Then, you can proceed as follows:

$ uv --version                 # just make sure that uv is properly instaled
uv 0.8.11
$ uv sync                      # pull in dependencies on initial setup and occasionally after git pull
[Lots of messages about required packages]
$ uv run doit                  # update derivatives in project/ after changes have been made in src/
$ uv run doit docs             # generate documentation in docs/ directory
$ uv run doit serve_site       # serve static site of docs locally for testing

Please note that uv run doit docs is automatically executed as part of the docs workflow, hence no need to run it locally in order to update the online documentation.

In order to push the latest changes to the Kernel Information Profile in the Data Type REgistry, use the following commands:

$ uv run doit check_dtr --sync

This relies on a custom LinkML generator for the Data Type Registry which is part of this repository. Please note that updates to the Type Registry may result in changes to the schema source files in order to record newly generated PIDs for non-existent infoTypes. Make sure to commit those changes right away so as not to lose the relation between LinkML classes or types and infoTypes in the Type Registry.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6