The project/ subdirectory is dual licensed under the MIT
license
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.
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 testingPlease 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 --syncThis 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.