{"id":19388896,"url":"https://github.com/linkml/linkml-tutorial-2024","last_synced_at":"2025-10-17T17:32:12.186Z","repository":{"id":246249656,"uuid":"819637928","full_name":"linkml/linkml-tutorial-2024","owner":"linkml","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-09T17:02:05.000Z","size":6456,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-12T13:33:22.783Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://linkml.github.io/linkml-tutorial-2024","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linkml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-24T23:13:56.000Z","updated_at":"2024-07-09T17:01:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"951ef8c1-379e-4eed-935f-7b358c90b5ac","html_url":"https://github.com/linkml/linkml-tutorial-2024","commit_stats":null,"previous_names":["linkml/linkml-tutorial-2024"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkml%2Flinkml-tutorial-2024","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkml%2Flinkml-tutorial-2024/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkml%2Flinkml-tutorial-2024/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkml%2Flinkml-tutorial-2024/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linkml","download_url":"https://codeload.github.com/linkml/linkml-tutorial-2024/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241444006,"owners_count":19963749,"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","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":[],"created_at":"2024-11-10T10:13:59.741Z","updated_at":"2025-10-17T17:32:12.084Z","avatar_url":"https://github.com/linkml.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## linkml-tutorial-2024\n\nThis repository contains the source code for the LinkML tutorial for the 2024 Intelligent Systems for Molecular Biology\nConference ([ISMB 2024](https://ismb.landing.showcare.io/2024-conference/?utm_source=google-ad-grant\u0026utm_medium=showcare\u0026gad_source=1\u0026gclid=Cj0KCQjwv7O0BhDwARIsAC0sjWPB_OFEy4AkvGpiiHw10O9iSNap3JZ-8p9EsPFRL1RFobgt9YZAxE4aAgohEALw_wcB))\n\nIn this tutorial, we discuss best practices for data modeling; introduce LinkML as a modeling framework \nand tool suite; work together to set up a LinkML project from scratch; develop a model and validate it with \ntest data; and auto-generate model documentation.\n\nThe slides that accompany this repository can be viewed at [https://linkml.io/linkml-tutorial-2024/LinkML_tutorial_for_ISMB 2024_ slides.pdf](https://linkml.io/linkml-tutorial-2024/LinkML_tutorial_for_ISMB 2024_ slides.pdf).\n\nTo follow along, please use the slides and the tags in this repo to see how we build up a linkml project from scratch using\nthe LinkML Project Cookiecutter (https://gituhub.com/linkml/linkml-project-cookiecutter).\n\n### Step 0: Executing the LinkML Project Cookiecutter\n\nAt the end of Step 0, you will have a new LinkML project that is ready to be developed.  Check out the tag\n`step_0_basic_project_creation` to see the project at this stage.\n\nThis step begins at slide 29.\n\n### Step 1: Explore some LinkML modeling elements.  \nThe example schema generated here follows the use case introduced in the slides.\n\nAt the end of Step 1, you will have a LinkML schema that models the use case introduced in the slides.  Check out the tag\n`step_1_modeling` to see the project at this stage.\n\nThis step begins at slide 48.\n\n### Step 2: Lint the schema\n\nUnderstand how the LinkML linter works, how to customize it to ignore or enforce linting rules\nand fix the sample schema appropriately.\n\nAt the end of Step 2, you will have a LinkML schema that passes linting.  Check out the tag\n`step_2_linting` to see the project at this stage.\n\nThis step begins at slide 70.\n\n### Step 3: Generate Documentation from the schema and deploy it to GitHub Pages.\n\nAt the end of Step 3, you will have a LinkML schema that has been documented and deployed to GitHub Pages.  \nCheck out the tag `step_3_documentation` to see the project at this stage.\n\nThis step begins at slide 92.\n\n### Step 4: Generate a Python data model from the schema\n\nAt the end of Step 4, you will have a Python data model that has been tested. \nCheck out the tag `step_4_code_generation` to see the project at this stage.\n\nThis step begins at slide 105.\n\n### Step 5: Validate example data\n\nAt the end of Step 5, you will have validated example data with the LinkML Validator.\nCheck out the tag `step_5_validation` to see the project at this stage.\n\nThis step begins at slide 115.\n\nThe resulting datamodel, tutorial schema documentation, and schema diagrams can be viewed at:\n[https://linkml.github.io/linkml-tutorial-2024](https://linkml.github.io/linkml-tutorial-2024)\n\n## Credits\n\nThis project was made with\n[linkml-project-cookiecutter](https://github.com/linkml/linkml-project-cookiecutter).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinkml%2Flinkml-tutorial-2024","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinkml%2Flinkml-tutorial-2024","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinkml%2Flinkml-tutorial-2024/lists"}