{"id":25843106,"url":"https://github.com/incatools/ontology-development-kit","last_synced_at":"2025-07-22T05:04:35.442Z","repository":{"id":37405718,"uuid":"48047921","full_name":"INCATools/ontology-development-kit","owner":"INCATools","description":"Ontology lifecycle management","archived":false,"fork":false,"pushed_at":"2025-07-14T13:31:15.000Z","size":5847,"stargazers_count":261,"open_issues_count":86,"forks_count":56,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-07-14T17:31:32.782Z","etag":null,"topics":["continuous-integration","monarchinitiative","obo","obofoundry","ontology","owl","protege","robot","travis"],"latest_commit_sha":null,"homepage":"http://incatools.github.io/ontology-development-kit/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/INCATools.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-12-15T14:28:35.000Z","updated_at":"2025-07-13T00:11:44.000Z","dependencies_parsed_at":"2023-09-22T02:32:24.547Z","dependency_job_id":"4205a4f7-34c8-461e-b150-57ecaa8b4aae","html_url":"https://github.com/INCATools/ontology-development-kit","commit_stats":{"total_commits":1282,"total_committers":40,"mean_commits":32.05,"dds":"0.40093603744149764","last_synced_commit":"eb1614322e28bbb9d5cae0d8028914bb114d9f91"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/INCATools/ontology-development-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fontology-development-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fontology-development-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fontology-development-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fontology-development-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/INCATools","download_url":"https://codeload.github.com/INCATools/ontology-development-kit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fontology-development-kit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266430672,"owners_count":23927167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continuous-integration","monarchinitiative","obo","obofoundry","ontology","owl","protege","robot","travis"],"created_at":"2025-03-01T06:38:57.694Z","updated_at":"2025-07-22T05:04:35.418Z","avatar_url":"https://github.com/INCATools.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build the ODK images and run the tests](https://github.com/INCATools/ontology-development-kit/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/INCATools/ontology-development-kit/actions/workflows/build-and-test.yml)\n[![DOI](https://zenodo.org/badge/48047921.svg)](https://zenodo.org/badge/latestdoi/48047921)\n[![DOI](https://img.shields.io/docker/pulls/obolibrary/odkfull.svg)](https://hub.docker.com/r/obolibrary/odkfull)\n\n\nhttps://www.wikidata.org/wiki/Q112336713\n\n# The Ontology Development Kit (ODK)\n\n\u003cimg src=\"https://github.com/jmcmurry/closed-illustrations/raw/master/logos/odk-logos/odk-logo_black-banner.png\" /\u003e\n\nManage your ontology's life cycle with the Ontology Development Kit (ODK)! The ODK is\n- a toolbox of various ontology related tools such as ROBOT, owltools, dosdp-tools and many more, bundled as a docker image\n- a set of executable workflows for managing your ontology's continuous integration, quality control, releases and dynamic imports\n\nFor more details, see\n\n * [2022 Paper](https://doi.org/10.1093/database/baac087)\n * [2018 Article](https://douroucouli.wordpress.com/2018/08/06/new-version-of-ontology-development-kit-now-with-docker-support/)\n * [ICBO Workshop Slides 2018](https://docs.google.com/presentation/d/1nIybviEEJiRKHO2rkBMZsQ0QjtsHyU01_-9beZqD_Z4/edit?usp=sharing)\n * [ICBO Workshop Slides 2017](https://docs.google.com/presentation/d/1JPAaDl6Nitxet9NVqWI30eIygcerYAjdMIGmxbRtIn0/edit?usp=sharing)\n\n# Where to get help\n\n- _How-to guides_:\n  - How to [create your first repository](https://oboacademy.github.io/obook/howto/odk-create-repo/) with the ODK\n  - How to [add license, title and description to your ontology](https://oboacademy.github.io/obook/reference/formatting-license/)\n  - How to [import large ontologies efficiently](https://oboacademy.github.io/obook/howto/deal-with-large-ontologies/)\n- Reference:\n  - Learn about the [different kinds of release artefacts](https://oboacademy.github.io/obook/reference/release-artefacts/)\n  - Learn about the [ODK Project Configuration Schema](https://github.com/INCATools/ontology-development-kit/blob/master/docs/project-schema.md) for allowed parameters in your `[project]-odk.yaml`\n- Community:\n  -  If you have issues, file them here: https://github.com/INCATools/ontology-development-kit/issues\n  -  We also have an active community on Slack; you can request access by making a ticket [here](https://github.com/INCATools/ontology-development-kit/issues) as well\n\n# Steering Committee\n\n* @gouttegd Damien Goutte-Gattat (ODK Lead, FlyBase)\n* @matentzn Nicolas Matentzoglu (ODK Deputy, Semanticly)\n* @cmungall Chris Mungall (ODK Founder, LBNL)\n\n# Core team\n\n* @anitacaron Anita Caron (Novo Nordisk)\n* @balhoff Jim Balhoff (RENCI)\n* @dosumis David Osumi-Sutherland (Sanger)\n* @ehartley Emily Hartley (Critical Path Institute)\n* @hkir-dev Huseyin Kir (EMBL-EBI)\n* @shawntanzk Shawn Tan (Novo Nordisk)\n* @ubyndr Ismail Ugur Bayindir (EMBL-EBI)\n\nFull list of contributors:\nhttps://github.com/INCATools/ontology-development-kit/graphs/contributors\n\n# Cite\n\nhttps://doi.org/10.1093/database/baac087\n\n# Outstanding contributions\nOutstanding contributors are groups and institutions that have helped with organising the ODK development, providing funding,\nadvice and infrastructure. We are very grateful for all your contributions - the project would not exist without you!\n\n## Monarch Initiative\n\u003cimg src=\"https://user-images.githubusercontent.com/7070631/121600493-72ee4b00-ca3c-11eb-87c3-57742fca7af5.png\" data-canonical-src=\"https://user-images.githubusercontent.com/7070631/121600493-72ee4b00-ca3c-11eb-87c3-57742fca7af5.png\" width=\"300\" /\u003e\n\nThe Monarch Initiative is a consortium of medical, biological and computational experts that provide major ontology services such as the Human Phenotype Ontology, [Mondo](https://mondo.monarchinitiative.org/) and an integrative data and [analytic platform](https://monarchinitiative.org/) connecting phenotypes to genotypes across species, bridging basic and applied research with semantics-based analysis.\n\nhttps://monarchinitiative.org/\n\n## European Bioinformatics Institute\n\u003cimg src=\"https://user-images.githubusercontent.com/7070631/121600529-813c6700-ca3c-11eb-8590-871a963a3cfd.png\" data-canonical-src=\"https://user-images.githubusercontent.com/7070631/121600529-813c6700-ca3c-11eb-8590-871a963a3cfd.png\" width=\"300\" /\u003e\n\nThe Samples, Phenotypes and Ontologies (SPOT) team, led by Helen Parkinson, is concerned with high throughput mammalian phenotyping, Semantics as a Service and human genetics resources. Members of the SPOT team including David Osumi-Sutherland have made major contributions to ODK, and provided advice, use cases and funding.\n\nhttps://www.ebi.ac.uk/spot/\n\n## University of Florida Biomedical Informatics Program\n\u003cimg src=\"https://user-images.githubusercontent.com/7070631/121600373-46d2ca00-ca3c-11eb-8899-c814c4041d54.png\" data-canonical-src=\"https://user-images.githubusercontent.com/7070631/121600373-46d2ca00-ca3c-11eb-8899-c814c4041d54.png\" width=\"300\" /\u003e\n\nhttps://hobi.med.ufl.edu/research-2/biomedical-informatics-3/\n\n## Knocean Inc.\n\u003cimg src=\"https://user-images.githubusercontent.com/7070631/121600426-56eaa980-ca3c-11eb-9315-b03234bb6b06.png\" data-canonical-src=\"https://user-images.githubusercontent.com/7070631/121600426-56eaa980-ca3c-11eb-9315-b03234bb6b06.png\" width=\"300\" /\u003e\n\nKnocean Inc. offers consulting and development services for science informatics, in particular in the area of biomedical ontologies and ontology tooling.\n\nhttp://knocean.com/\n\n## Critical Path Institute\n\u003cimg src=\"https://user-images.githubusercontent.com/7070631/122019745-049ee500-cdbc-11eb-9ed0-3ac3ca717d9b.png\" data-canonical-src=\"https://user-images.githubusercontent.com/7070631/122019745-049ee500-cdbc-11eb-9ed0-3ac3ca717d9b.png\" width=\"300\" /\u003e\n\nThe Critical Path For Alzheimer’s Disease (CPAD) is a public-private partnership aimed at creating new tools and methods that can be applied to increase the efficiency of the development process of new treatments for Alzheimer disease (AD) and related neurodegenerative disorders with impaired cognition and function.\n\nhttps://c-path.org/\n\n# Requirements\n\n## Docker\n\nUsing the ODK docker image requires Docker Engine version 20.10.8 or greater for v1.3.1.\n\n# Tips and Tricks\n\n## Customizing your ODK installation\n\nYou will likely want to customize the build process, and of course to edit the ontology.\n\nWe recommend that you do not edit the main Makefile, but instead the supplemental one (e.g. myont.Makefile) is src/ontology\n\nAn example of how you can customise your imports for example is documented [here](http://pato-ontology.github.io/pato/odk-workflows/RepoManagement/)\n\n## Migrating an existing ontology repo to the ODK\n\nThe ODK is designed for creating a new repo for a new ontology. It can also be used to help figure out how to migrate an existing git repository to the ODK structure. There are different ways to do this.\n\n * Manually compare your ontology against the [template](https://github.com/INCATools/ontology-development-kit/tree/master/template) folder and make necessary adjustments\n * Run the seed script as if creating a new repo. Manually compare this with your existing repo and use `git mv` to rearrange, and adding any missing files by copying them across and doing a `git add`\n * Create a new repo de novo and abandon your existing one, using, for example, github issue mover to move tickets across.\n\nObviously the second method is not ideal as you lose your git history. Note even with `git mv` history tracking becomes harder.\n\nIf you have built your ontology using a previous version of ODK,\nmigration of your setup is unfortunately a manual process. In general\nyou do not absolutely *need* to upgrade your setup, but doing so will\nbring advantages in terms of aligning with emerging standards ways of\ndoing things. The less customization you do on your repo the easier it\nshould be to migrate.\n\nConsult the [CHANGELOG.md](CHANGELOG.md) file for changes made between\nreleases to assist in upgrading.\n\n## More documentation\n\nYou will find additional documentation in the src/ontology/README-editors.md file in your repo.\n\nThe ODK also comes with built in options to generate your own shiny documentation; see for example the [PATO documentation here](http://pato-ontology.github.io/pato/) which is almost entirely autogenerated from the ODK.\n\n## Alternative to Docker\n\nYou can run the seed script without docker using Python3.6 or\nhigher and Java. See requirements.txt for python requirements.\n\n*This is, however, not recommended.*\n\n# Running OBO dashboard with ODK\n\n*Note: this is an _highly experimental_ feature as of ODK version 1.2.24. Note that the display and the scores are under active development and will change considerably in the near future.*\n\nExample implementation:\n- https://github.com/obophenotype/obophenotype.github.io ([web](https://obophenotype.github.io/dashboard/index.html))\nYou need two files to run the ODK dashboard generator:\n\n1. An ODK container wrapper (called `odk.sh` in the following), similar to the `run.sh` file in your typical repos `src/ontology` directory.\n2. A dashboard config YAML file (called `dashboard-config.yml` in the following)\n\nWith both files, you can then create a dashboard using the following command:\n\n```\nsh odk.sh obodash -C dashboard-config.yml\n```\n\nThe wrapper (`odk.sh`) should contain something like the following:\n\n```\n#!/bin/sh\n# Wrapper script for ODK docker container.\n#\ndocker run -e ROBOT_JAVA_ARGS='-Xmx4G' -e JAVA_OPTS='-Xmx4G' \\\n  -v $PWD/dashboard:/tools/OBO-Dashboard/dashboard \\\n  -v $PWD/dashboard-config.yml:/tools/OBO-Dashboard/dashboard-config.yml \\\n  -v $PWD/ontologies:/tools/OBO-Dashboard/build/ontologies \\\n  -v $PWD/sparql:/tools/OBO-Dashboard/sparql \\\n  -w /work --rm -ti obolibrary/odkfull \"$@\"\n```\n\nNote that this essentially binds a few local directories to the running ODK container. The directories serve the following purposes:\n\n1. `dashboard`: this is where the dashboard is deposited. Look at index.html in your browser.\n2. `ontologies`: this is where ontologies are downloaded to and synced up\n3. `sparql`: an optional directory that allows you to add custom checks on top of the usual OBO profile.\n\nThis is a minimal example dashboard config for a potential phenotype dashboard:\n\n```\ntitle: OBO Phenotype Dashboard\ndescription: Quality control for OBO phenotype ontologies. Under construction.\nontologies:\n  custom:\n    - id: wbphenotype\n    - id: dpo\n      base_ns:\n        - http://purl.obolibrary.org/obo/FBcv\nenvironment:\n  ROBOT_JAR: /tools/robot.jar\n  ROBOT: robot\n```\n\nThe ontologies will, if they exist, be retrieved from their OBO purls and evaluated. There are more options potentially of interest:\n\n```\ntitle: OBO Phenotype Dashboard\ndescription: Quality control for OBO phenotype ontologies. Under construction.\nontologies:\n  custom:\n    - id: myont\n      mirror_from: https://raw.githubusercontent.com/obophenotype/c-elegans-phenotype-ontology/master/wbphenotype-base.owl\n    - id: dpo\n      base_ns:\n        - http://purl.obolibrary.org/obo/FBcv\nprefer_base: True\nprofile:\n  baseprofile: \"https://raw.githubusercontent.com/ontodev/robot/master/robot-core/src/main/resources/report_profile.txt\"\n  custom:\n    - \"WARN\\tfile:./sparql/missing_xrefs.sparql\"\nreport_truncation_limit: 300\nredownload_after_hours: 2\nenvironment:\n  ROBOT_JAR: /tools/robot.jar\n  ROBOT: robot\n```\n\n- `mirror_from` allows specifying a download URL other than the default OBO purl\n- `base_ns` allows specifying the set of namespaces considered to be _owned_ by the ontology (only terms in these namespaces will be evaluated for this ontology. Default is http://purl.obolibrary.org/obo/CAPTIALISEDONTOLOGYID).\n- `report_truncation_limit` allows truncating long (sometimes HUGE ontology reports) to make them go easier on GITHUB version control.\n- `redownload_after_hours`: this allows to specify how long to wait before trying to download an ontology (which could be a time consuming process!) again.\n- `environment`: is currently a necessary parameter but will be made optional in future versions. It allows adding environment variables directly to the config, rather than passing them in as -e parameters to the docker container (both are equivalent though.)\n- `profile` is an optional parameter that allows specifying your own profile for the quality control (ROBOT) report. By default, this is using the ROBOT report default profile. You can either specify your own profile from scratch, or extend the current default with additional test by using the `baseprofile` parameter. Find out more about ROBOT profiles [here](http://robot.obolibrary.org/report#profiles).\n\nA fully working example can be found [here](https://github.com/obophenotype/obophenotype.github.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fontology-development-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fincatools%2Fontology-development-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fontology-development-kit/lists"}