Skip to content

Commit

Permalink
initial commit of ontology sources of efo using ontology-starter-kit
Browse files Browse the repository at this point in the history
  • Loading branch information
simonjupp committed Sep 26, 2017
0 parents commit 15e6578
Show file tree
Hide file tree
Showing 30 changed files with 699 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
*.tmp
src/ontology/mirror
src/ontology/mirror/*
src/ontology/efo.obo
src/ontology/efo.owl
semantic.cache
34 changes: 34 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## REMEMBER TO SET UP YOUR GITHUB REPO FOR TRAVIS
## Go to: https://travis-ci.org/EBISPOT for details
language: java
jdk:
- oraclejdk8

before_script:
- mkdir -p bin
- export PATH=$PATH:$PWD/bin
- wget http://build.berkeleybop.org/userContent/owltools/owltools -O bin/owltools
- wget http://build.berkeleybop.org/userContent/owltools/ontology-release-runner -O bin/ontology-release-runner
- wget http://build.berkeleybop.org/userContent/owltools/owltools-runner-all.jar -O bin/owltools-runner-all.jar
- wget http://build.berkeleybop.org/userContent/owltools/owltools-oort-all.jar -O bin/owltools-oort-all.jar
- wget http://build.berkeleybop.org/job/robot/lastSuccessfulBuild/artifact/bin/robot -O bin/robot
- wget http://build.berkeleybop.org/job/robot/lastSuccessfulBuild/artifact/bin/robot.jar -O bin/robot.jar
- wget --no-check-certificate https://raw.githubusercontent.com/cmungall/pattern2owl/master/apply-pattern.py -O bin/apply-pattern.py
- chmod +x bin/*

# command to run tests
script: cd src/ontology && make test

#after_success:
# coveralls

# whitelist
branches:
only:
- master
- test-travis

### UNCOMMENT THIS AND ADD YOUR DETAILS:
#notifications:
# email:
# - [email protected]
15 changes: 15 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## Before you write a new request, please consider the following:

- **Does the term already exist?** Before submitting suggestions for new ontology terms, check whether the term exist, either as a primary term or a synonym term. You can search using [OLS](http://www.ebi.ac.uk/ols/ontologies/efo)

## Guidelines for creating GitHub tickets with contributions to the ontology:

1. **Write a detailed request:** Please be specific and include as many details as necessary, providing background information, and if possible, suggesting a solution. GOC editors will be better equipped to address your suggestions if you offer details regarding *'what is wrong'*, *'why'*, and *'how to fix it'*.

2. **Provide examples and references:** Please include PMIDs for new term requests, and include also screenshots, or URLs illustrating the current ontology structure for other types of requests.

3. **For new term request:** Be sure to provide suggestions for label (name), definition, references, position in hierarchy, etc.

4. **For updates to relationships:** Provide details of the current axioms, why you think they are wrong or not sufficient, and what exactly should be added or removed.

On behalf of the efo editorial team, Thanks!
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[![Build Status](https://travis-ci.org/EBISPOT/efo.svg?branch=master)](https://travis-ci.org/EBISPOT/efo)
[![DOI](https://zenodo.org/badge/13996/EBISPOT/efo.svg)](https://zenodo.org/badge/latestdoi/13996/EBISPOT/efo)

# efo

This ontology... YOUR DESCRIPTION HERE

## Versions

### Stable release versions

The latest version of the ontology can always be found at:

http://purl.obolibrary.org/obo/efo.owl

(note this will not show up until the request has been approved by obofoundry.org)

### Editors' version

Editors of this ontology should use the edit version, [src/ontology/efo-edit.owl](src/ontology/efo-edit.owl)

## Contact

Please use this GitHub repository's [Issue tracker](https://github.com/EBISPOT/efo/issues) to request new terms/classes or report errors or specific concerns related to the ontology.

## Acknowledgements

This ontology repository was created using the [ontology starter kit](https://github.com/INCATools/ontology-starter-kit)
21 changes: 21 additions & 0 deletions issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
For new term requests, please provide the following information:

## Preferred term label

(e.g., Asplenia)

## Synonyms

(e.g., Absent spleen)

## Textual definition

the definition should be understandable even for non-specialists. Include a PubMed ID to refer to any relevant article that provides additional information about the suggested term.

## Suggested parent term

Please look in the hierarchy in a browser such as [OLS](http://www.ebi.ac.uk/ols/ontologies/efo)

## Attribution

If you would like a nanoattribution, please indicate your ORCID id
23 changes: 23 additions & 0 deletions src/metadata/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Metadata files for the OBO Library

* [efo.yml](efo.yml)
* Determines how your purl.obolibrary.org/obo/efo/ redirects will be handled
* Go here: https://github.com/OBOFoundry/purl.obolibrary.org/tree/master/config
* Click [New File](https://github.com/OBOFoundry/purl.obolibrary.org/new/master/config)
* Paste in the contents of [efo.yml](efo.yml)
* Click "Commit new file"
* IMPORTANT: remember to make a pull request
* An OBO admin will merge your Pull Request *providing it meets the requirements of the OBO library*
* [efo.md](efo.md)
* Determines how your metadata is shown on OBO Library, OLS and AberOWL
* Go here: https://github.com/OBOFoundry/OBOFoundry.github.io/tree/master/ontology
* Click [New File](https://github.com/OBOFoundry/OBOFoundry.github.io/new/master/ontology)
* Paste in the contents of [efo.md](efo.md)
* Click "Commit new file"
* IMPORTANT: remember to make a pull request
* An OBO admin will merge your Pull Request *providing it meets the requirements of the OBO library*

For more background see:

* http://obofoundry.org/
* http://obofoundry.org/faq/how-do-i-edit-metadata.html
28 changes: 28 additions & 0 deletions src/metadata/efo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: ontology_detail
id: efo
title: efo
jobs:
- id: https://travis-ci.org/EBISPOT/efo
type: travis-ci
build:
checkout: git clone https://github.com/EBISPOT/efo.git
system: git
path: "."
contact:
email: [email protected]
label: Chris Mungall
description: efo is an ontology...
domain: stuff
homepage: https://github.com/EBISPOT/efo
products:
- id: efo.owl
- id: efo.obo
dependencies:
tracker: https://github.com/EBISPOT/efo/issues
license:
url: http://creativecommons.org/licenses/by/3.0/
label: CC-BY
---

Enter a detailed description of your ontology here
27 changes: 27 additions & 0 deletions src/metadata/efo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# PURL configuration for http://purl.obolibrary.org/obo/efo

idspace: EFO
base_url: /obo/efo

products:
- efo.owl: https://raw.githubusercontent.com/EBISPOT/efo/master/efo.owl
- efo.obo: https://raw.githubusercontent.com/EBISPOT/efo/master/efo.obo

term_browser: ontobee
example_terms:
- EFO_0000000

entries:

- prefix: /releases/
replacement: https://raw.githubusercontent.com/EBISPOT/efo/v

- prefix: /tracker/
replacement: https://github.com/EBISPOT/efo/issues

- prefix: /about/
replacement: http://www.ontobee.org/ontology/EFO?iri=http://purl.obolibrary.org/obo/

## generic fall-through, serve direct from github by default
- prefix: /
replacement: https://raw.githubusercontent.com/EBISPOT/efo/master/
95 changes: 95 additions & 0 deletions src/ontology/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# ----------------------------------------
# Standard Constants
# ----------------------------------------
# these can be overwritten on the command line

OBO=http://purl.obolibrary.org/obo
ONT=efo
BASE=$(OBO)/$(ONT)
SRC=$(ONT)-edit.owl
RELEASEDIR=../..
ROBOT= robot
OWLTOOLS= owltools
USECAT= --use-catalog
SPARQLDIR = ../sparql

# ----------------------------------------
# Top-level targets
# ----------------------------------------

all: sparql_test all_imports $(ONT).owl $(ONT).obo
test: sparql_test all
prepare_release: all
cp $(ONT).owl $(ONT).obo $(RELEASEDIR) &&\
mkdir -p $(RELEASEDIR)/imports &&\
cp imports/*{owl,obo} $(RELEASEDIR)/imports &&\
git add $(RELEASEDIR)/imports/*{obo,owl} &&\
(test -f subsets/*owl && cp subsets/*{owl,obo} $(RELEASEDIR)/subsets && git add $(RELEASEDIR)/subsets/* || echo "no subsets") &&\
echo "Release files are now in $(RELEASEDIR) - now you should commit, push and make a release on github"

# ----------------------------------------
# Main release targets
# ----------------------------------------

# by default we use Elk to perform a reason-relax-reduce chain
# after that we annotate the ontology with the release versionInfo
$(ONT).owl: $(SRC)
$(ROBOT) reason -i $< -r ELK relax reduce -r ELK annotate -V $(BASE)/releases/`date +%Y-%m-%d`/$(ONT).owl -o $@
$(ONT).obo: $(ONT).owl
$(ROBOT) convert -i $< -f obo -o $(ONT).obo.tmp && mv $(ONT).obo.tmp $@

# ----------------------------------------
# Import modules
# ----------------------------------------
# Most ontologies are modularly constructed using portions of other ontologies
# These live in the imports/ folder
# These can be regenerated with make all_imports

IMPORTS =
IMPORTS_OWL = $(patsubst %, imports/%_import.owl,$(IMPORTS)) $(patsubst %, imports/%_import.obo,$(IMPORTS))

# Make this target to regenerate ALL
all_imports: $(IMPORTS_OWL)

# Use ROBOT, driven entirely by terms lists NOT from source ontology
imports/%_import.owl: mirror/%.owl imports/%_terms.txt
$(ROBOT) extract -i $< -T imports/$*_terms.txt --method BOT -O $(BASE)/$@ -o $@
.PRECIOUS: imports/%_import.owl

# we use owltools for making the obo file until: https://github.com/ontodev/robot/issues/64
imports/%_import.obo: imports/%_import.owl
$(OWLTOOLS) $(USECAT) $< -o -f obo $@

# clone remote ontology locally, perfoming some excision of relations and annotations
mirror/%.owl: $(SRC)
$(OWLTOOLS) $(OBO)/$*.owl --remove-annotation-assertions -l -s -d --remove-dangling-annotations -o $@
.PRECIOUS: mirror/%.owl

# ----------------------------------------
# Release
# ----------------------------------------
# copy from staging area (this directory) to top-level
release: $(ONT).owl $(ONT).obo
cp $^ $(RELEASEDIR) && cp imports/* $(RELEASEDIR)/imports

# ----------------------------------------
# Sparql queries: Q/C
# ----------------------------------------

# these live in the ../sparql directory, and have suffix -violation.sparql
# adding the name here will make the violation check live
VCHECKS = equivalent-classes trailing-whitespace owldef-self-reference xref-syntax nolabels

# run all violation checks
VQUERIES = $(foreach V,$(VCHECKS),$(SPARQLDIR)/$V-violation.sparql)
sparql_test: $(SRC)
robot verify -i $< --queries $(VQUERIES) -O reports/

# ----------------------------------------
# Sparql queries: Reports
# ----------------------------------------

REPORTS = basic-report class-count-by-prefix edges xrefs obsoletes synonyms
REPORT_ARGS = $(foreach V,$(REPORTS),-s $(SPARQLDIR)/$V.sparql reports/$V.tsv)
all_reports: $(SRC)
robot query -f tsv -i $< $(REPORT_ARGS)
102 changes: 102 additions & 0 deletions src/ontology/README-editors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
These notes are for the EDITORS of efo

This project was created using the [ontology starter kit](https://github.com/cmungall/ontology-starter-kit). See the site for details.

For more details on ontology management, please see the [OBO tutorial](https://github.com/jamesaoverton/obo-tutorial) or the [Gene Ontology Editors Tutorial](go-protege-tutorial.readthedocs.io)

## Editors Version

Make sure you have an ID range in the [idranges file](efo-idranges.owl)

If you do not have one, get one from the head curator.

The editors version is [efo-edit.owl](efo-edit.owl)

** DO NOT EDIT efo.obo OR efo.owl in the top level directory **

[../../efo.owl](../../efo.owl) is the release version

To edit, open the file in Protege. First make sure you have the repository cloned, see [the GitHub project](https://github.com/EBISPOT/efo) for details.

## ID Ranges

These are stored in the file

* [efo-idranges.owl](efo-idranges.owl)

** ONLY USE IDs WITHIN YOUR RANGE!! **

If you have only just set up this repository, modify the idranges file
and add yourself or other editors. Note Protege does not read the file
- it is up to you to ensure correct Protege configuration.


### Setting ID ranges in Protege

We aim to put this up on the technical docs for OBO on http://obofoundry.org/

For now, consult the [GO Tutorial on configuring Protege](http://go-protege-tutorial.readthedocs.io/en/latest/Entities.html#new-entities)


## Release Manager notes

You should only attempt to make a release AFTER the edit version is
committed and pushed, and the travis build passes.

to release:

cd src/ontology
make

If this looks goo
d type:

make prepare_release

This generates derived files such as efo.owl and efo.obo and places
them in the top level (../..). The versionIRI will be added.

Commit and push these files.

git commit -a

And type a brief description of the release in the editor window

Finally type

git push origin master

IMMEDIATELY AFTERWARDS (do *not* make further modifications) go here:

* https://github.com/EBISPOT/efo/releases
* https://github.com/EBISPOT/efo/releases/new

The value of the "Tag version" field MUST be

vYYYY-MM-DD

The initial lowercase "v" is REQUIRED. The YYYY-MM-DD *must* match
what is in the versionIRI of the derived efo.owl (data-version in
efo.obo).

Release title should be YYYY-MM-DD, optionally followed by a title (e.g. "january release")

Then click "publish release"

__IMPORTANT__: NO MORE THAN ONE RELEASE PER DAY.

The PURLs are already configured to pull from github. This means that
BOTH ontology purls and versioned ontology purls will resolve to the
correct ontologies. Try it!

* http://purl.obolibrary.org/obo/efo.owl <-- current ontology PURL
* http://purl.obolibrary.org/obo/efo/releases/YYYY-MM-DD.owl <-- change to the release you just made

For questions on this contact Chris Mungall or email obo-admin AT obofoundry.org

# Travis Continuous Integration System

Check the build status here: [![Build Status](https://travis-ci.org/EBISPOT/efo.svg?branch=master)](https://travis-ci.org/EBISPOT/efo)

Note: if you have only just created this project you will need to authorize travis for this repo. Go to [https://travis-ci.org/profile/EBISPOT](https://travis-ci.org/profile/EBISPOT) for details

4 changes: 4 additions & 0 deletions src/ontology/catalog-v001.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog prefer="public" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<group id="Folder Repository, directory=, recursive=false, Auto-Update=false, version=2" prefer="public" xml:base=""/>
</catalog>
Loading

0 comments on commit 15e6578

Please sign in to comment.