-
Notifications
You must be signed in to change notification settings - Fork 2
Language Ontology Development, Build, and Release Processes
The Language Ontology development process is evolving. Here's what it might look like:
- Developers and the public open issues in this repository.
- Developers fork this repository.
- Developers make improvements to the hand-edited files (green in Figure 1 below) using an editor of their choice -- protégé or other.
- Changes can be tested by developers by running
src/ontology/build.sh
on their forked repository. - Developers should correct any validation errors found during the build process.
- Developers develop pull requests based on their edits.
- Pull requests are discussed and merged by the maintainers.
The figure below shows the files and processes that are used to create lang.owl
.
Figure 1. Build processes for lang.owl
Hand-edited files (green) are merged with temporary files (grey) resulting from the processing of registry authority and non-project files (yellow). Executables (blue) use these files as inputs and outputs, resulting in lang.owl
(purple)
The python elements of the build process must be run by hand for now. These elements create temporary files which are used in the build process.
A build incorporating hand edits and the temporary files as shown in Figure 1 can be created using src/ontology/build.sh
which merges the elements together and creates lang.owl
. Validations are run by the build process.
There are four files in the build process that can be hand-edited:
-
src/ontology/lang-edit.owl
. This is the key file containing all terms no generated by templates, imports, and internationalization. This file does not contain these other elements. -
src/ontology/i18n/iso-639-i18n-CEFR-definitions.nt
The definitions of the CEFR capabilities are translated by hand in this file. -
src/ontology/imports/bfo_terms_complete.txt
is a simple text file of the IRIs of the terms from BFO that are to be included inlang.owl
. Arobot extract
is run manually to preparesrc/ontology/imports/bfo_import.owl
which is used bysrc/ontology/build.sh
-
src/ontology/templates/iso-639-header.tsv
is a template header file. If this is edited, corresponding changes would be needed insrc/ontology/templates/iso-639-template-generator.py
so that the resulting template file can be processed byrobot template
.
There are three files in the build process that should not be edited:
-
mirror/bfo.owl
The BFO ontology. This is used as a source to extract the terms needed bylang.owl
-
src/ontology/templates/iso-639-3.tab
This file is downloaded from the ISO 639-3 registry authority. It contains the raw data for each Part 1, 2 and 3 language. -
src/ontology/i18n/vocabularyiso639-2.ttl
This file is downloaded from the [ISO 639-2 registry authority] and contains translations of the labels of the Part 1 and Part 2 languages to French and German.
There are four temporary files in the build process. These are the outputs of utilities (python and robot) used to created files suitable for merge to lang.owl
as part of the build process. The build process for the Language Ontology is under development. These files are useful to remain in the repository for now, as the make
processes are not fully automated.
-
bfo_import.owl
manually created using arobot extract
command -
iso-639-template.tsv
created by the Makefile insrc/ontology/templates
, the result of running the python programsrc/ontology/templates/iso-639-template-generator.py
A tsv file suitable for input torobot template
-
src/ontology/templates/terms.owl
The result of a robot template command. This file contains all the language terms and their attributes and annotations. -
src/ontology/i18n/iso-639-i18n.nt
A set of triples resulting from the python programsrc/ontology/i18n/iso-639-i18n-generator.py
containing assertions of the labels of the Part 1 and Part 2 languages in French and German.
Note: We haven't had a release yet
Language ontology releases are denoted by the date of their release, as per OBO standards. The Language Ontology does not use version numbers.
When the maintainers decide to create a new release, they will:
- Run
src/ontology/prepare-release.sh
to create the artifacts, including lang.owl, variants, and reports. - This Github repository is updated and the release tagged with the release date.
- Release notes are prepared in this wiki.
- The release is communicated.
VIVO Project (2020) Language Ontology. License CC0