Skip to content

ODK 1.4 (February 2023)

Compare
Choose a tag to compare
@matentzn matentzn released this 17 Feb 13:13
· 525 commits to master since this release

Update instructions

https://oboacademy.github.io/obook/howto/odk-update/

Changes from ODK 1.3.1 to 1.4

A full record of all changes can be seen here.

New and updated tooling

  • New ROBOT Version 1.9.3
  • A lot of updated python tools, including OAK (0.1.71), SSSOM tools (0.3.22), LinkML (1.4.4) and curies (0.4.2).
  • gh is now installed in ODK, which means that GitHub workflows can be run directly through ODK. For example, try out the new public_release workflow which automatically creates a GitHub release for you.
  • A full list of all available python tools and there vesions is available here

New configuration options

  • Making the uribase configurable. You can now set the URI base in your myont-odk.yaml file to something different from http://purl.obolibrary.org/obo/, which enables developers from outside OBO to use ODK. Note that there is no guarantee that you can export your ontology to the OBO file format of you customise your baseuri this way!
  • import_component_format: You can now configure the format in which your imports and components are serialised. For example, rather than owl (RDFXML), which used to be the default, you can set this option to ofn. For a complete reference see https://robot.obolibrary.org/convert.
  • mirror_type: You can define the type of the mirror for each import. Supported: base, custom, no_mirror.
  • release_use_reasoner: If false, no reasoning is performed for generating release files. This is only relevant for building application ontologies, where all components are already fully classified.
  • sparql_test_on: You can define the list of input files to run the custom SPARQL queries. Supported: edit, and any release artefact, e.g myont-base.owl (example).
  • use_edit_file_imports: If TRUE, use whatever imports you have in the edit file to create the release (default). If FALSE, components (and imports) are merged into the release independent of whether they are mentioned in the edit file or not. This can help for example in cases where import modules are so large, they cannot be checked into version control.
  • The ci option now takes gitlab-ci as a value, which sets your repo up with basic Continuous Integration Testing for GitLab.

Makefile workflows

  • Adding new make reason_test command (pull, issue)
  • Adding intermediate artefact $(TMPDIR)/$(ONT)-preprocess.owl to the release workflow which enable the centralisation of preprocessing in a single make step. Basically, rather than creating release artefacts directly from the editors file (e.g. bfo-edit.owl), we add intermediate step from which all releases are derived. This intermediate can then be customised by the user (pull, issue)
  • Introduces an experimental new release called "base-plus", which includes the inferred and non-redundant classification of the ontology. This is highly experimental and may be removed in a future release of ODK. The new goal is much more rigorous in removing axioms from other ontologies as well. The old base file can now be exported as an "editors release" instead (pull, issue).
  • Introduces the option of skipping the use of reasoner during the release process (important for application ontologies), (pull, issue)
  • Introduces a new mode that enable the use of ODK entirely without owl:imports in the edit file (this is great in case we want to use the ODK workflows but not check in any files, imports or components, into version control, like huge application ontologies), (pull, issue).
  • Adds a feature to directly support ROBOT templates in components (example). Templates need to be activates with the project-level use_templates: TRUE option, and can then be used to define components, like in the example.
  • Adds an option to do a public_release on Github which creates a GitHub release, tags it, and uploads release artefacts.
  • Adds a release_diff workflow which creates a simple markdown report between the latest release and the current one.
  • Adds a feature to directly support SSSOM mapping files, both in components and as standalone (example). This allows to curate, for example, SSSOM mapping files in tables and them release them as part of the general release process. It also allows extracting mappings from inside the Ontology automatically using the SSSOM toolkit.
  • Changes in the src/ontology/run.sh wrapper script:
    • It is now possible to execute the Docker image through Singularity.
    • The IMAGE variable, which can used to specify an alternative ODK image, has been renamed to ODK_IMAGE.
    • A new variable ODK_TAG has been introduced, allowing to specify an alternative tag (default is latest). A tag may also be specified directly as part of the ODK_IMAGE variable (as in ODK_IMAGE=odkfull:v1.3.1).
    • A new variable ODK_BINDS has been introduced, allowing to specify extra bindings between a directory on the host computer and a directory inside the Docker container.
    • Variables used by the run.sh script can now be set in a src/ontology/run.sh.conf file, which will be sourced by the wrapper script.
    • With the config file option use_env_file_docker, if true, you can pass your local environment to the docker container. It is strongly advised to add run.sh.env to .gitignore before using this feature. Committing your environment to git may reveal passcodes and other private information!

The GitHub issues dealt with as part of this release

  • Fix redundant filter in sparql queries by @anitacaron in #633
  • Add docker requirement to top-level README by @kltm in #635
  • Update to latest relation-graph by @balhoff in #634
  • Make run.sh Java Option handling a bit nicer by @matentzn in #616
  • Enable use of singularity as an option by @pcm32 in #640
  • Allow to only push dev-tagged images to Docker Hub. by @gouttegd in #653
  • Schema config documentation by @hkir-dev in #656
  • Rename dosdp-tools directory. by @gouttegd in #652
  • Rename IMAGE to ODK_IMAGE in the run.sh script. by @gouttegd in #655
  • Build odkfull:dev from odklite:dev. by @gouttegd in #661
  • Update constraints from within the odkbuild image by @gouttegd in #663
  • Add constraints.txt make goal by @matentzn in #662
  • Adding a preprocessing intermediate file to the ODK build process by @matentzn in #639
  • Make sure the Python package six is present in odklite. by @gouttegd in #666
  • Make Base IRI configurable by @matentzn in #617
  • Update constraints.txt by @github-actions in #664
  • Update catalog-v001.xml.jinja2 to reflect base IRI changes (bugfix) by @matentzn in #668
  • Fix wrong config for recreating components by @matentzn in #670
  • fixed parentheses in inject queries by @ehartley in #672
  • Update constraints.txt by @github-actions in #667
  • Update constraints.txt by @github-actions in #673
  • Allow extra volume bindings and custom wrapper config file by @gouttegd in #678
  • Update constraints.txt by @github-actions in #681
  • Add documentation about custom sparql checks by @anitacaron in #680
  • Install GitHub-CLI from the Ubuntu repository. by @gouttegd in #683
  • Update constraints.txt by @github-actions in #685
  • Install latest version of NodeJS and update oaklib by @hrshdhgd in #687
  • Run commands inside the container as the current user. by @gouttegd in #684
  • Update constraints.txt by @github-actions in #688
  • Make it possible to make basis when using components by @matentzn in #690
  • Update seed via docker script by @matentzn in #693
  • Create seed-via-docker-131.sh by @matentzn in #694
  • Update constraints.txt by @github-actions in #698
  • Add rdfxml validation by @gouttegd in #702
  • Update constraints.txt by @github-actions in #704
  • Suggested textual updates for clarity by @allysonlister in #705
  • Update Readme to point to ODK paper by @shawntanzk in #706
  • Update constraints.txt by @github-actions in #713
  • Add path constraints to the QC workflow. by @gouttegd in #714
  • Updating actions/checkout to v3 by @shawntanzk in #720
  • Fix typos and wrong achors in dynamic files.jinja2 by @StroemPhi in #722
  • fix wrong target-rule for recreating components in comment/help section by @StroemPhi in #721
  • Do not run Docker in interactive mode when testing programs. by @gouttegd in #718
  • Cleaning up the top-level directory by @gouttegd in #711
  • Add replaced by to QC as default by @anitacaron in #710
  • New relation-graph release by @balhoff in #723
  • Update constraints.txt by @github-actions in #719
  • Update to latest Jena tools by @balhoff in #717
  • List all custom sparql checks available by @anitacaron in #724
  • Update constraints.txt by @github-actions in #726
  • Add QC to term_tracker_item type by @anitacaron in #709
  • Upgrade ROBOT to version 1.9.1. by @gouttegd in #725
  • Add optional date check by @shawntanzk in #727
  • Update constraints.txt by @github-actions in #729
  • Emergency docs to prevent confusion by @matentzn in #731
  • Add make command sequence for a local cronjob for dev image by @matentzn in #734
  • Update constraints.txt by @github-actions in #735
  • Pass a GitHub token to the container by @gouttegd in #736
  • Fix comment in robot validate-profile by @anitacaron in #740
  • Disable the LightRDF-based RDF/XML validation check. by @gouttegd in #745
  • Update constraints.txt by @github-actions in #746
  • Add make_diff config option by @anitacaron in #744
  • Add conditional to copy only if dosdp-patterns/external.txt exists by @anitacaron in #739
  • Update constraints.txt by @github-actions in #747
  • Add basic GitLab CI by @ehartley in #732
  • Remove JQ from ODK by @matentzn in #748
  • Add target dir to clean by @matentzn in #749
  • Apply measure to import in case large file by @anitacaron in #738
  • Update constraints.txt by @github-actions in #753
  • Add functionality to run a GH CLI release by @matentzn in #618
  • Make sure run.sh.env is always deleted. by @gouttegd in #755
  • Update run.sh.jinja2 (source run.sh.conf) by @matentzn in #756
  • Update constraints.txt by @github-actions in #757
  • Update constraints.txt by @github-actions in #758
  • Update constraints.txt by @github-actions in #760
  • Update constraints.txt by @github-actions in #762
  • Fix broke anchor links by @anitacaron in #766
  • Update constraints.txt by @github-actions in #767
  • Update constraints.txt by @github-actions in #773
  • Avoid using source in run.sh. by @gouttegd in #774
  • Update constraints.txt by @github-actions in #781
  • Update requirements.txt.full by @joeflack4 in #782
  • Update constraints.txt by @github-actions in #783
  • Update constraints.txt by @github-actions in #787
  • New parameter mirror_type by @anitacaron in #786
  • Fix memory issue when import is large and uses module type mirror by @anitacaron in #788
  • New parameter: sparql_test_on by @anitacaron in #789
  • Apply sssom_options by @anitacaron in #790
  • Update constraints.txt by @github-actions in #792
  • ODK 1.4 by @matentzn in #657
  • Use a pre-built Konclude binary on arm64. by @gouttegd in #793
  • Add ROBOT 1.9.3 by @matentzn in #795

New Contributors

Full Changelog: v1.3.1...v1.4