{"id":25843054,"url":"https://github.com/incatools/dead_simple_owl_design_patterns","last_synced_at":"2025-06-19T08:08:55.072Z","repository":{"id":19507162,"uuid":"22753775","full_name":"INCATools/dead_simple_owl_design_patterns","owner":"INCATools","description":"A simple system for specifying OWL class design patterns for OBO-ish ontologies.","archived":false,"fork":false,"pushed_at":"2022-02-25T17:22:50.000Z","size":5777,"stargazers_count":44,"open_issues_count":27,"forks_count":5,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-30T11:57:15.367Z","etag":null,"topics":["obofoundry","odp","ontology","templates"],"latest_commit_sha":null,"homepage":"http://incatools.github.io/dead_simple_owl_design_patterns/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/INCATools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-08T10:03:11.000Z","updated_at":"2025-02-04T18:40:33.000Z","dependencies_parsed_at":"2022-08-21T09:11:02.008Z","dependency_job_id":null,"html_url":"https://github.com/INCATools/dead_simple_owl_design_patterns","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/INCATools/dead_simple_owl_design_patterns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fdead_simple_owl_design_patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fdead_simple_owl_design_patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fdead_simple_owl_design_patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fdead_simple_owl_design_patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/INCATools","download_url":"https://codeload.github.com/INCATools/dead_simple_owl_design_patterns/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fdead_simple_owl_design_patterns/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260713324,"owners_count":23050824,"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":["obofoundry","odp","ontology","templates"],"created_at":"2025-03-01T06:37:46.391Z","updated_at":"2025-06-19T08:08:50.028Z","avatar_url":"https://github.com/INCATools.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/INCATools/dead_simple_owl_design_patterns.svg?branch=master)](https://travis-ci.org/INCATools/dead_simple_owl_design_patterns)\n\n# Dead simple owl design pattern (DOS-DP) exchange format\n\n## For details please see:\n\n[Dead Simple OWL Design Patterns](https://jbiomedsem.biomedcentral.com/articles/10.1186/s13326-017-0126-0)\nDavid Osumi-Sutherland, Melanie Courtot, James P. Balhoff and Christopher Mungall\nJournal of Biomedical Semantics 2017 8:18 DOI:10.1186/s13326-017-0126-0\n\n\n## Motivation\n\nThe job of editing the GO and many other OBOish OWL ontologies increasingly involves specifying OWL design patterns.  We need a simple, light-weight standard for specifying these design patterns that can then be used for generating documentation, generating new terms and retrofitting old ones. The solution must be readable and editable by anyone with a basic knowledge of OWL and the ability to read manchester syntax.  It must also be easy to use programatically without the need for custom parsers - i.e. it should follow some existing data exchange standard.\n\nHuman readability and editability requires that Manchester syntax be written using labels, but sustainability and consistency checking requires that the pattern record IDs. \n\n## Approach\n\n* Patterns are specified in the subset of YAML that can be converted to JSON.\n  * JSON format is the ideal exchange format for programatic consumption: It is already javascript; Standard libraries are available to convert it into datastructures in many languages;Developers are typically experienced at consuming it. \n  * *But* YAML is much easier than JSON for humans to edit (it can be difficult for human editors to keep curly braces and quotes balanced and to add commas correctly in JSON). YAML also has the great advantage over JSON of allowing comments to be embedded. [Conversion between YAML and JSON is trivial](http://yamltojson.com/)\n\n* All patterns contain dictionaries (hash lookups) that can be used to lookup up OWL shortform IDs from labels.  OWL ShortFormIDs are assumed to be sufficient for entity resolution during usage of the pattern.  Labels are assumed to be sufficient for entity resolution _within_ a pattern.\n\n* Variable interpolation into Manchester syntax and text is specified using [printf format strings](https://en.wikipedia.org/wiki/Printf_format_string).  Variable names are stored in associated lists.\n\n* Variables are specified in a dictionary with variable name as key and value as range specified as a Manchester syntax expresssion.\n\n## DOSDP Specification:\n\n[JSON schema specification in YAML](https://github.com/INCATools/dead_simple_owl_design_patterns/blob/master/src/schema/dosdp_schema.yaml).\n\nThe same specification [rendered in mardown](docs/dosdp_schema.md), with references resolved. This is generated from the original spec using the `dosdp document` command (see below for details). \n\n## Setup\n\n```\npip install dosdp\n```\n\nSee https://pypi.org/project/dosdp/\n\n## Validator spec\n\nSee [validator documentation](docs/validator.md)\n\n## Documentation generation spec\n\nSee [documentation_generation](docs/document.md)\n\n## Implementation\n\nThe aim of this project is to specify a simple design pattern system that can easily be consumed, whatever your code base.\nThis repository includes a simple Python validator (src/simple_pattern_tester.py).\n\nFor implementation, we recommend [dosdp-tools](https://github.com/INCATools/dosdp-tools).\n\n## Uses\n\n * [ENVO](http://obofoundry.org/ontology/envo.html): envo [patterns/](https://github.com/EnvironmentOntology/envo/tree/master/src/envo/patterns)\n * [OBA](http://obofoundry.org/ontology/oba.html): oba [patterns/](https://github.com/obophenotype/bio-attribute-ontology/tree/master/src/ontology/patterns)\n * draft environmental conditions ontology: ecto [patterns/](https://github.com/cmungall/environmental-conditions/tree/master/src/patterns)\n * [Uberon](http://obofoundry.org/ontology/uberon.html): uberon [patterns/](https://github.com/obophenotype/uberon/tree/master/patterns)\n * [uPheno](https://github.com/obophenotype/upheno)\n * [Mondo](http://www.obofoundry.org/ontology/mondo.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fdead_simple_owl_design_patterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fincatools%2Fdead_simple_owl_design_patterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fdead_simple_owl_design_patterns/lists"}