All Projects → INCATools → dead_simple_owl_design_patterns

INCATools / dead_simple_owl_design_patterns

Licence: GPL-3.0 license
A simple system for specifying OWL class design patterns for OBO-ish ontologies.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to dead simple owl design patterns

pronto
A Python frontend to (Open Biomedical) Ontologies.
Stars: ✭ 202 (+494.12%)
Mutual labels:  ontology, obofoundry
MAxO
Medical action ontology
Stars: ✭ 26 (-23.53%)
Mutual labels:  ontology, obofoundry
foodon
The core repository for the FOODON food ontology project. This holds the key classes of the ontology; larger files and the results of text-mining projects will be stored in other repos.
Stars: ✭ 137 (+302.94%)
Mutual labels:  ontology, obofoundry
knowledge-graph-change-language
Tools for working with KGCL
Stars: ✭ 14 (-58.82%)
Mutual labels:  ontology, obofoundry
HPO-translations
Internationalisation of the HPO content
Stars: ✭ 19 (-44.12%)
Mutual labels:  ontology, obofoundry
envo
A community-driven ontology for the representation of environments
Stars: ✭ 106 (+211.76%)
Mutual labels:  ontology, obofoundry
fastobo-py
Faultless AST for Open Biomedical Ontologies in Python.
Stars: ✭ 21 (-38.24%)
Mutual labels:  ontology, obofoundry
mondo
Mondo Disease Ontology
Stars: ✭ 156 (+358.82%)
Mutual labels:  ontology, obofoundry
environmental-exposure-ontology
Modular environmental exposures ontology
Stars: ✭ 20 (-41.18%)
Mutual labels:  ontology, obofoundry
evidenceontology
Evidence & Conclusion Ontology development site: Use ISSUES to request terms. See WIKI for how to request terms. See README for how to cite ECO. Visit our website for more project info.
Stars: ✭ 35 (+2.94%)
Mutual labels:  ontology, obofoundry
ontobio
python library for working with ontologies and ontology associations
Stars: ✭ 104 (+205.88%)
Mutual labels:  ontology, obofoundry
cell-ontology
An ontology of cell types
Stars: ✭ 75 (+120.59%)
Mutual labels:  ontology, obofoundry
uberon
An ontology of gross anatomy covering metazoa. Works in concert with https://github.com/obophenotype/cell-ontology
Stars: ✭ 104 (+205.88%)
Mutual labels:  ontology, obofoundry
koza
Data transformation framework for LinkML data models
Stars: ✭ 21 (-38.24%)
Mutual labels:  ontology, obofoundry
obi
The Ontology for Biomedical Investigations
Stars: ✭ 49 (+44.12%)
Mutual labels:  ontology, obofoundry
Github Issue Templates
🔣 A collection of GitHub issue and pull request templates
Stars: ✭ 3,074 (+8941.18%)
Mutual labels:  templates
Django
The Web framework for perfectionists with deadlines.
Stars: ✭ 61,277 (+180126.47%)
Mutual labels:  templates
Go Html Boilerplate
Starter pack for doing web development in Go
Stars: ✭ 229 (+573.53%)
Mutual labels:  templates
Sublimetmpl
Create File From Templates for SublimeText 2 / SublimeText 3
Stars: ✭ 222 (+552.94%)
Mutual labels:  templates
lazy-kit
A new design system for developing with less effort. See how it looks:
Stars: ✭ 68 (+100%)
Mutual labels:  templates

Build Status

Dead simple owl design pattern (DOS-DP) exchange format

For details please see:

Dead Simple OWL Design Patterns David Osumi-Sutherland, Melanie Courtot, James P. Balhoff and Christopher Mungall Journal of Biomedical Semantics 2017 8:18 DOI:10.1186/s13326-017-0126-0

Motivation

The 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.

Human readability and editability requires that Manchester syntax be written using labels, but sustainability and consistency checking requires that the pattern record IDs.

Approach

  • Patterns are specified in the subset of YAML that can be converted to JSON.

    • 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.
    • 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
  • 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.

  • Variable interpolation into Manchester syntax and text is specified using printf format strings. Variable names are stored in associated lists.

  • Variables are specified in a dictionary with variable name as key and value as range specified as a Manchester syntax expresssion.

DOSDP Specification:

JSON schema specification in YAML.

The same specification rendered in mardown, with references resolved. This is generated from the original spec using the dosdp document command (see below for details).

Setup

pip install dosdp

See https://pypi.org/project/dosdp/

Validator spec

See validator documentation

Documentation generation spec

See documentation_generation

Implementation

The aim of this project is to specify a simple design pattern system that can easily be consumed, whatever your code base. This repository includes a simple Python validator (src/simple_pattern_tester.py).

For implementation, we recommend dosdp-tools.

Uses

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].