Giter VIP home page Giter VIP logo

ols's Introduction

We are currently developing a new version of OLS. This repository is no longer maintained.

Check out https://github.com/EBISPOT/ols4 for updates on the new version!


Legacy Ontology Lookup Service from SPOT at EBI.

Overview

OLS Architecture

This is the entire codebase for the EBI OLS. OLS has been developed around two key ontology indexes that can be built and used independently from the core website. We provide services to build a Solr index and a Neo4j index. The Solr index is used to provide text-based queries over the ontologies while the Neo4j index is used to query the ontology structure and is the primary driver of the OLS REST API.

OLS has been developed with the Spring Data and Spring Boot framework. You can build this project with Maven and the following Spring Boot applications will be available to run.

All of the apps are available under the ols-apps module.

  • ols-apps/ols-solr-app - Spring Boot application for building a Solr index for one or more ontologies. Requires access to a Solr server.
  • ols-apps/ols-neo4j-app - Spring Boot application for building a Neo4j index for one or more ontologies. Builds an embedded Neo4j database. You can run a Neo4j server that uses the generated Neo4j database.

To run a complete local OLS installation you will need a MongoDB database. This is a lightweight database that is used to store all the ontology configuration and application state information. See here for more information http://www.ebi.ac.uk/ols/docs/installation-guide

Deploying with Docker

The preferred method of deployment for OLS is using Docker. If you would like to deploy the entire OntoTools stack (OLS, OxO, and ZOOMA), check out the OntoTools Docker Config repository. If you would like to deploy OLS only, read on.

First, create the necessary volumes:

docker volume create --name=ols-neo4j-data
docker volume create --name=ols-mongo-data
docker volume create --name=ols-solr-data
docker volume create --name=ols-downloads

Then, start solr and mongodb only:

docker-compose up -d solr mongo

Then, adjust the configuration YAML files in the config directory as required, and load the configuration into the Mongo database using the config loader:

docker run --net=host -v $(pwd)/config:/config ebispot/ols-config-importer:stable

Then, run the indexer:

docker run --net=host -v ols-neo4j-data:/mnt/neo4j -v ols-downloads:/mnt/downloads ebispot/ols-indexer:stable

Finally, start the OLS webserver:

docker-compose up -d ols-web

You should now be able to access a populated OLS instance at http://localhost:8080.

Building the Docker images manually

Rather than using the images from Docker Hub, the Docker images can also be built using the Dockerfiles in this repository.

docker build -f ols-apps/ols-config-importer/Dockerfile -t ols-config-importer .
docker build -f ols-apps/ols-indexer/Dockerfile -t ols-indexer .

Building OLS manually

To build OLS you will need to use Java 8 and Maven 3.x.

To build OLS, in the root directory of OLS, run: mvn clean package. Currently this will fail with the following error:

[ERROR] Failed to execute goal on project ols-neo4j: Could not resolve dependencies for project uk.ac.ebi.spot:ols-neo4j:jar:3.2.1-SNAPSHOT: Failed to collect dependencies at org.springframework.data:spring-data-neo4j:jar:3.4.5.RELEASE -> org.neo4j:neo4j-cypher-dsl:jar:2.0.1: Failed to read artifact descriptor for org.neo4j:neo4j-cypher-dsl:jar:2.0.1: Could not transfer artifact org.neo4j:neo4j-cypher-dsl:pom:2.0.1 from/to maven-neo4j (https://m2.neo4j.org/content/repositories/releases/): Failed to transfer file https://m2.neo4j.org/content/repositories/releases/org/neo4j/neo4j-cypher-dsl/2.0.1/neo4j-cypher-dsl-2.0.1.pom with status code 502 -> [Help 1]

To correct this, copy the contents of the build-fix directory into your Maven repository under ~/.m2/repository.

Run mvn clean package again. OLS should now build successfully.

Other build errors

Other build errors you may come across are the following:

  1. Wrong version of Java used:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project ols-solr: Compilation failure: Compilation failure: [ERROR] /Users/james/OLS/ols-solr/src/main/java/uk/ac/ebi/spot/ols/config/SolrContext.java:[15,24] package javax.annotation does not exist [ERROR] /Users/james/OLS/ols-solr/src/main/java/uk/ac/ebi/spot/ols/config/SolrContext.java:[25,4] cannot find symbol [ERROR] symbol: class Resource [ERROR] location: class uk.ac.ebi.spot.ols.config.SolrContext [ERROR] -> [Help 1]

This is the error you get when you compile OLS with Java 11. The fix for this build error is to ensure your Maven installation is indeed using Java 8 for compilation.

Customisation

It is possible to customise several branding options in ols-web/src/main/resources/application.properties:

  • ols.customisation.debrand — If set to true, removes header and footer, documentation, and about page
  • ols.customisation.ebiInfo — If set to true, EBI specific banners are enabled
  • ols.customisation.title — A custom title for your instance, e.g. "My OLS Instance"
  • ols.customisation.short-title — A shorter version of the custom title, e.g. "MYOLS"
  • ols.customisation.description — A description of the instance
  • ols.customisation.org — The organisation hosting your instance
  • ols.customisation.hideGraphView — Set to true to hide the graph view
  • ols.customisation.errorMessage — Message to show on error pages
  • ols.customisation.ontologyAlias — A custom word or phrase to use instead of "Ontology", e.g. "Data Dictionary"
  • ols.customisation.ontologyAliasPlural — As ontologyAlias but plural, e.g. "Data Dictionaries"
  • ols.customisation.oxoUrl — The URL of an OxO instance to link to with a trailing slash e.g. https://www.ebi.ac.uk/spot/oxo/

ols's People

Contributors

catherineleroy avatar daniwelter avatar giraygi avatar henrietteharmse avatar jamesamcl avatar jmcmurry avatar johannes-darms avatar lltommy avatar matentzn avatar olgavrou avatar robbie1977 avatar serjoshua avatar simonjupp avatar tburdett avatar warrenread avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ols's Issues

Siblings view shows obsolete classes

e.g. navigate to 'acetamide enriched soil' in ENVO

show siblings

Shows 'Bailey biome' - which is obsolete

When you click on Bailey biome it gives no indication this is obsolete even in metadata view - even though it's tagged owl:deprecated in the owl

Will OLSVis still be supported?

OLSVis is very popular, and I believe it is dependent on OLS1 - don't recall if it mirrors the postgresql db or makes REST calls.

I don't think it would be hard to adapt OLSVis, but not sure it's open. It would be possible to simulate the old REST API, but that might be awkward. There are probably lots of OBO-Basic ( http://owlcollab.github.io/oboformat/doc/obo-syntax.html#6.2 ) assumptions in there too.

Not sure what to recommend, just that it would be a shame to lose OLSVis

Make OLS a relation/OP browser as well as class browser

  • The landing page for RO says 'number of terms 77' but that's a less relevant statistic
  • There is no easy way to get to the list of relations from the ro landing page (you can navigate down to classes and then get into the relation hierarchy via usage)
  • Logical characteristics aren't shown. Some of these can be geeky, but at least transitivity, domain range are broadly useful and informative

Support for searches over narrowSynonym e.g. in "Advanced search"

Hi Simon

EDAM makes heavy use of "narrow" synonyms and these are also used a lot for annotation in bio.tools. Neither OLS or BioPortal supports searches over them - and this is causing us a major headache! Any chance of providing an option (small toggle or whatever) to support searches over "narrow" synonyms? This would be a massive usability improvement for us. I'll gladly refactor EDAM if we can define these in a more convenient way to support this feature (currently we just use oboInOwl:hasNarrowSynonym).

I can also find a developer to help implement this - in case that would be useful ??

Rendering multiple parentage in tree

Here abnormality of the ear inherits from two parents, and each of those inherits from two parents. Ignore for a moment that this example isn't great as there are artefactual issues with the ontology itself. Nevertheless the challenge is a real one.

screen shot 2015-12-10 at 11 35 34 am

This is good information to have but cumbersome to digest visually. Have you considered anything more ... succinct? I don't have any brilliant ideas, but perhaps something like the below is enough to get a conversation started. @cmungall @helenp @mellybelly is this a (more) useful view?

image

To generate this, I started with the basic sankey d3 library, but I don't know if it is sufficiently configurable to do what we'd need it to; I edited the svg manually in illustrator. The advantage of sankey over say, fdg/hairball, is that hierarchy is maintained and consequently sibling relationships are easier to see.

@DoctorBud @emepyc Thoughts? If there is a better way of visualizing this more simply, it would certainly be great if we EBI and Monarch could collaborate on spec and or development. Just a thought...

cc: @harryhoch

OLS3 status code for ontologies cryptic

What are the differentia between failed. vs. not loaded
In case of failed or not loaded could queries revert to an older version?
For the owner of the ontology also good to show a link where the ontology is loaded from here.

Some ID spaces should not be in all caps

E.g. WBbt, FBbt, WBPhenotype

In general, if the ontology follows OBO Foundry id policy, the ontology id must be all lowercase, and the ID space should be all uppercase. However, there are some mixed case entries there.

(Note that althought CHEBI is sometimes written ChEBI, their published IDs are all uppercase, so no change required there).

xrefs should link out to external sources

xrefs are a relic of the OBO world, but they are common. The expectation is that they should link out to something.

E.g. mappings tab in:
http://amigo.geneontology.org/amigo/term/GO:0000104#display-xref-tab

There are various registries of prefixes. Most OBO ontologies are consistent with the GO one:
https://github.com/geneontology/go-site/blob/master/metadata/db-xrefs.yaml

Alternatively, it would be valid to simply not support this, and to have the policy that complete URIs be used, in conjunction with annotation properties that are more meaningful. This won't happen overnight though...

Consider changing 'subclass of' to 'relationships'

Nomenclature is a bit inconsistent:

#Parents
trunk mesenchyme
mesenchyme derived from neural crest
cardiac mesenchyme
#Subclass of:
part_of some embryo
part_of some endocardium
develops_from some neural crest
part_of some heart

#Related from
develops_from

sinoatrial valve , atrioventricular septum , atrioventricular valve , ventriculo bulbo valve , ventricular septum intermedium , cardial valve

Parents is not part of OWL nomenclature informally it often includes existential parents.

SubclassOf is technically correct for existential parents but seems odd to use this here but not for named superclasses

In the reciprocal direction 'related' is used. The reciprocal view doesn't seem completely symmetric as there is no 'children'

Add go-plus to OLS

OLS currently loads go.owl rather than go-plus.owl. The latter has extended axiomatisation including axiomatisation that links GO classes to classes from other widely used ontologies such as CL, Uberon and ChEBI. I can see why you might want to keep the simpler version of GO on the site, but it would be great if you could add go-plus.owl too so that a wider community can explore and be made aware of inter-ontology links.

CC: @cmungall @mcourtot

Individuals

I struggle a bit with individuals. They seem to be images, as in the ceph ontolgy

http://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Nautilus_pompilius_%28head%29.jpg/240px-Nautilus_pompilius_%28head%29.jpg

or comments/annotations about terms, as in the ncro ontology (these are the labels)

 [1] "failed exploratory term"                   
 [2] "pending final vetting"                     
 [3] "core"                                      
 [4] "to be replaced with external ontology term"
 [5] "placeholder removed"                       
 [6] "terms merged"                              
 [7] "organizational term"                       
 [8] "ready for release"                         
 [9] "defined class"                             
[10] "metadata incomplete"                       
[11] "example to be eventually removed"          
[12] "named class expression"                    
[13] "universal"                                 
[14] "uncurated"                                 
[15] "metadata complete"                         
[16] "term imported"                             
[17] "term split"                                
[18] "requires discussion"        

I can find the number of individuals in an ontology, I can download all the individual in an ontology, but I can't link any of these individual to a term.

Could somebody explain what an individual is and how to a terms individual?

Provide ontology information in search results

There should be information about the ontologies in the search results.
Provide a tooltip in the search results to the name of the ontolgy. I.e. on mouse-over over the blue box with the ontology id, like BTO, the full name of the ontology should be displayed, i.e. Brenda Tissue Ontology.
Right now one has to click on the result just to find out it is not a ontology of interest.

See http://www.ebi.ac.uk/ols/beta/index for list of names.

For instance
http://www.ebi.ac.uk/ols/beta/search?q=liver
I have no idea, what EHDAA2, UBERON, ... are --> Make the names for the ontologies available

Add PRIDE, PSI-MS & PSI-MOD

Why is the URI for a term used to search graph relations as opposed to the ID?

I've managed to setup Solr and import the example HP Ontology OK. After looking at the resulting schema, I can see that I can search for parents, children, ancestors, and decendants, but only by using the URI as the search term, and not the ID (which is the URI plus a prefix of the ontology name in lower case form). Why is this the case? Surely it would make sense to do relational searches based on the ID?

On another note, I can get the decendants for a term, but I have no idea on the distance of those terms from the searched term. Having that data included would save on the number of required queries I need to make.

Add support for storing axiom annotations

OBOish OWL ontologies store important information in axiom annotations. The majority of these are annotations on annotation axioms: Definitions are typically annotated with multiple xrefs to papers (mixed with references to the editors who have contributed edits). This is also frequently the case for synonyms.

VFB use of OLS/SOLR absolutely requires these annotation axoim annotations to be indexed. Where these use a standard reference ID (e.g. PMID), they also provide very useful information for users of OLS.

There is also increasing use of annotations on logical axioms in OBOish OWL ontologies (e.g. GO uses this to record whether a classification asserted in a pre-reasoned version of the ontology is supported by inference). VFB intends to use these in future for adding references and evidence codes to logical axioms. So, longer term, support for indexing annotation of logical axioms will be important.

illegal character in attribute names

cypher queries fail when filtering on properties (attributes) with '-' in the name.

e.g. MATCH (n:Class:GO) where n.label = 'synaptic transmission' and n.annotation-in_subset = 'goslim_synapse' RETURN n

=> error: in_subset not defined (line 1, column 77 (offset: 76))

This is a problem for generic translation of all OBO annotation properties -> node properties as these follow the pattern
fu -> annotation-fu

Issue with fbbt loading ref fbbt:http://flybase.org/reports/FBtp0058497

Getting an error when loading fbbt with the latest version:

2015-07-22 17:24:56.252  INFO 18487 --- [           main] .b.l.ClasspathLoggingApplicationListener : Application failed to start with classpath: [jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/ols-solr-3.0.0-SNAPSHOT.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-boot-starter-data-solr-1.3.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-boot-starter-1.3.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-boot-1.3.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-boot-autoconfigure-1.3.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-boot-starter-logging-1.3.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/logback-classic-1.1.3.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/logback-core-1.1.3.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/jul-to-slf4j-1.7.12.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/log4j-over-slf4j-1.7.12.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-core-4.2.0.RC1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/snakeyaml-1.15.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/solr-solrj-4.10.4.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/commons-io-2.3.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/httpclient-4.5.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/httpcore-4.4.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/zookeeper-3.4.6.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/wstx-asl-3.2.7.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/noggit-0.5.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/slf4j-api-1.7.12.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-data-solr-1.5.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-context-4.2.0.RC1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-aop-4.2.0.RC1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/aopalliance-1.0.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-beans-4.2.0.RC1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-expression-4.2.0.RC1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-tx-4.2.0.RC1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-data-commons-1.11.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/commons-lang3-3.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/commons-collections-3.2.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/httpclient-cache-4.2.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/jackson-databind-2.5.4.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/jackson-annotations-2.5.4.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/jcl-over-slf4j-1.7.12.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/httpmime-4.5.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/ols-core-3.0.0-SNAPSHOT.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-boot-starter-data-mongodb-1.3.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/mongo-java-driver-2.13.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/spring-data-mongodb-1.8.0.M1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/ontology-tools-3.0.0-SNAPSHOT.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-distribution-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-apibinding-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/org.osgi.core-1.4.0.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-api-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-tools-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-impl-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-parsers-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/owlapi-oboformat-3.5.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/trove4j-3.0.3.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/guava-18.0.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/org.semanticweb.hermit-1.3.8.4.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/commons-logging-1.1.3.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/axiom-api-1.2.14.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/geronimo-activation_1.1_spec-1.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/geronimo-javamail_1.4_spec-1.7.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/jaxen-1.1.6.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/geronimo-stax-api_1.0_spec-1.0.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/apache-mime4j-core-0.7.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/axiom-c14n-1.2.14.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/axiom-impl-1.2.14.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/woodstox-core-asl-4.1.4.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/stax2-api-3.1.1.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/axiom-dom-1.2.14.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/automaton-1.11-8.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-owlapi-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-owl-model-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-owl-implementation-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-util-hashing-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-reasoner-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-util-collections-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-util-concurrent-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-util-common-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-util-io-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/elk-util-logging-0.4.2.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/log4j-1.2.17.jar!/, jar:file:/amd/nfs/bocian/disk/data/ols/ols-apps/ols-solr-app/target/ols-solr-app.jar!/lib/jackson-core-2.5.4.jar!/]
2015-07-22 17:24:56.260 ERROR 18487 --- [           main] o.s.boot.SpringApplication               : Application startup failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:667)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:682)
    at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:340)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:274)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:931)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:920)
    at uk.ac.ebi.spot.ols.OntologySolrApplication.main(OntologySolrApplication.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.data.solr.UncategorizedSolrException: [doc=fbbt:http://flybase.org/reports/FBtp0058497] missing required field: bbop_sibling_graph_json; nested exception is org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: [doc=fbbt:http://flybase.org/reports/FBtp0058497] missing required field: bbop_sibling_graph_json
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:145)
    at org.springframework.data.solr.core.SolrTemplate.saveBeans(SolrTemplate.java:199)
    at org.springframework.data.solr.core.SolrTemplate.saveBeans(SolrTemplate.java:194)
    at org.springframework.data.solr.repository.support.SimpleSolrRepository.save(SimpleSolrRepository.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:452)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:437)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:409)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:61)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
    at com.sun.proxy.$Proxy35.save(Unknown Source)
    at uk.ac.ebi.spot.ols.indexer.SolrIndexer.index(SolrIndexer.java:116)
    at uk.ac.ebi.spot.ols.indexer.SolrIndexer.createIndex(SolrIndexer.java:65)
    at uk.ac.ebi.spot.ols.indexer.SolrIndexer.createIndex(SolrIndexer.java:127)
    at uk.ac.ebi.spot.ols.OntologySolrApplication.run(OntologySolrApplication.java:35)
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:664)
    ... 12 common frames omitted
Caused by: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: [doc=fbbt:http://flybase.org/reports/FBtp0058497] missing required field: bbop_sibling_graph_json
    at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:552)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:206)
    at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:124)
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:68)
    at org.springframework.data.solr.core.SolrTemplate$5.doInSolr(SolrTemplate.java:202)
    at org.springframework.data.solr.core.SolrTemplate$5.doInSolr(SolrTemplate.java:199)
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:141)
    ... 38 common frames omitted

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:667)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:682)
    at org.springframework.boot.SpringApplication.doRun(SpringApplication.java:340)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:274)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:931)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:920)
    at uk.ac.ebi.spot.ols.OntologySolrApplication.main(OntologySolrApplication.java:39)
    ... 6 more
Caused by: org.springframework.data.solr.UncategorizedSolrException: [doc=fbbt:http://flybase.org/reports/FBtp0058497] missing required field: bbop_sibling_graph_json; nested exception is org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: [doc=fbbt:http://flybase.org/reports/FBtp0058497] missing required field: bbop_sibling_graph_json
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:145)
    at org.springframework.data.solr.core.SolrTemplate.saveBeans(SolrTemplate.java:199)
    at org.springframework.data.solr.core.SolrTemplate.saveBeans(SolrTemplate.java:194)
    at org.springframework.data.solr.repository.support.SimpleSolrRepository.save(SimpleSolrRepository.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:452)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:437)
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:409)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:61)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
    at com.sun.proxy.$Proxy35.save(Unknown Source)
    at uk.ac.ebi.spot.ols.indexer.SolrIndexer.index(SolrIndexer.java:116)
    at uk.ac.ebi.spot.ols.indexer.SolrIndexer.createIndex(SolrIndexer.java:65)
    at uk.ac.ebi.spot.ols.indexer.SolrIndexer.createIndex(SolrIndexer.java:127)
    at uk.ac.ebi.spot.ols.OntologySolrApplication.run(OntologySolrApplication.java:35)
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:664)
    ... 12 more
Caused by: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: [doc=fbbt:http://flybase.org/reports/FBtp0058497] missing required field: bbop_sibling_graph_json
    at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:552)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:206)
    at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:124)
    at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:68)
    at org.springframework.data.solr.core.SolrTemplate$5.doInSolr(SolrTemplate.java:202)
    at org.springframework.data.solr.core.SolrTemplate$5.doInSolr(SolrTemplate.java:199)
    at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:141)
    ... 38 more
2015-07-22 17:24:56.265  INFO 18487 --- [       Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@48b3d203: startup date [Wed Jul 22 17:23:11 BST 2015]; root of context hierarchy

Handling additional relations in graphs/trees

Given that you are experimenting with displaying part_of 'relationships' in the OLS tree for anatomy ontologies (as discussed in #11), I asume that the latest neo4J loader can now be used to extend the neo4J graph to include edges representing relationships (in the OBO sense). Can this be made configurable per ontology, so that a set of relation types useful for graph generation and queries can be specified?

Term query

I construct the URL to query a term as follow:

http://www.ebi.ac.uk/ols/beta/api/ontologies/{ontology_prefix}

and add the iri of the term, replacing the : by a _

http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252F{term_id}

For example, for GO:0098791 from GO, I get

http://www.ebi.ac.uk/ols/beta/api/ontologies/GO/terms/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FGO_0098791

which works as expected.

If I do the same for Orphanet:168347 from ORDO, I get

http://www.ebi.ac.uk/ols/beta/api/ontologies/ORDO/terms/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FOrphanet_168347

which fails

2016-01-03-115713_786x349_scrot

Any idea why this is?

Duplicated ontology

It seems that the FBcv ontology is duplicated:

curl 'http://www.ebi.ac.uk/ols/beta/api/ontologies?page=0&size=143' -i -s | grep preferredPrefix  | grep FBcv
        "preferredPrefix" : "FBcv",
        "preferredPrefix" : "FBcv",

Also, is the order with which the responses are returned (for example the order of the ontologies above) always the same?

Documentation of responses

Where can I read more about the different fields of the responses. For example, what's the version of an ontology, and how does it differ from the config/version.

OLS does not handle non-isa-complete ontologies well

E.g. try 'ileum mucosa' in MA

Not necessarily OLS' fault. Just a clash of implicit assumptions, between obo-edit developed ontologies and Protege developed ontologies.

This may be subsumed into a general ticket about displaying partonomies. For many AOs the partonomy is more important than the subclass hierarchy (for an extreme example, see EMAP)

Remove redundant relationships

In OLS uberon, 'phalanx' is show with a direct child 'manual digit 1 phalanx'.

In fact in the (pre-reasoned) released version of uberon, there are two SubClassOf axioms for 'manual digit 1 phalanx' with a named superclass:

SubClassOf: 'phalanx of manus'
SubClassOf: 'manual digit 1 phalanx endochondral element'

(ie there is an intermediate class)

And an equivalence axiom to

'phalanx' and part_of some 'manual digit 1'

I believe that OLS may be showing 'relaxed' superclass axioms from the equivalence axiom (see ontodev/robot#7). This is a safe thing to do, because some ontology release pipelines do not perform a relaxation step (or they may relax and then remove trivial inferences, or indeed they may omit any kind of pre-reasoning).

However, if relaxing is performed, then redundancy removals should be performed after the fact, or the algorithm should be only to relax if it does not produce a redundancy.

It turns out that the specification of the right kind of behavior for an ontology release tool to produce optimal behavior in all browsers is a bit verbose. Some discussion here, comments welcome: ontodev/robot#16

I understand for OLS you don't do any reasoning, so there are certain expectations about ontology structure? Are these stated?

Search on OLS

I'm trying to search OLS for "pharynx". From the home page, I get a few suggestions, but I was hoping for the Wormbase (WBbt) term which doesn't show up. If I go to http://www.ebi.ac.uk/ols/beta/ontologies/wbbt and search for "pharynx" it does show up.

Is there a limit on the number of results from the home page? If yes, maybe consider having an indication along the lines of "5 more results" as an hyperlink to display the rest of the results?

Add mouseover showing IRI of terms

It would be great to be able to see the IRI of related classes on mouseover - for example in this case I'd like to know whether "striated muscle" is coming in from UBERON or elsewhere.

screen shot 2016-01-15 at 09 15 52

Page size

Is there a limit to the page size? Would there be any drawbacks in using relatively large page sizes (say 1e3, 1e4 or larger)?

Search ontologies

I would like to search the MS ontology for electrospray ionization to exactly match MS:1000073. What query should I use to perform this search with

GET /api/search?q={query}

Clearer representation of imported terms

One of the recommended searches for terms is GO:0098743; however this gets you to a page with 108,611 hits the basis of which is fuzzy. The top hit is the native GO one, followed by a bunch of imports (HP, MP etc).

This ranking is as it should be, but not optimally clear. May I suggest...

This Rather than this
screen shot 2016-02-11 at 11 49 33 am screen shot 2016-02-11 at 11 41 02 am

Tree browser shows existential parents in lineage but opening node only shows named subclasses

E.g. navigating to 'manual digit' shows 'forelimb' as a "parent" (in the combined superclass and existential graph sense) [aside: would be useful to see indication of relationship type]

However, expanding this node only shows subclasses. So for example, if I start on the 'forelimb' page, I can't get back to 'manual digit' via tree browsing. This asymmetricality of behavior could be confusing

Simple type assertions in graph?

OLS Neo4J representation of OWL currenly handles type assertions linking individuals to named classes (via instanceOf). Would it be possible to have type expressions of the form "I type: R some C" translated as relationships [I -R- C] in the Neo4J graph? Presumably an identical pattern is used to convert SubClassOf axioms to part_of etc relationships in OLS Neo4J.

Current OWL translation:

Class: C1
SubClassOf: R some C2

Class: C2
SubClassOf: C3

Individual: I1
Type: C1

=>

(:Class { label : 'C1'} ) -[:Related {label : 'R'}]->(:Class { label 'C2' } )
(:Class { label : 'C2'} ) -[:SUBCLASSOF]->(:Class { label 'C3' } )
(:Individual { label : 'I1'} ) -[:INSTANCEOF]->:(Class { label 'C1' } )

Proposed extension:

Individual: I1
Type: R some C1
Fact: R I2

Class: C4
SubClassOf R value I3

=>

(:Individual { label : 'I1'} ) -[Related {label : 'R'}]->(:Class { label 'C1' } ) # This feels slightly hacky, but so does using INSTANCEOF with a variety of edge labels as for Related.

(:Individual { label : 'I1'} ) -[:Related {label : 'R'}]->(:Individual { label 'I2' } )
(:Class { label : 'C4'} ) -[:SUBCLASSOF]->(:Individual { label 'I3' } )

Any more complex axioms are not stored in the graph.

Categories OLS entries (ontologies) using EDAM Topics

Dear OLSians

I think it would be really nice to tag OLS entries with EDAM Topics (http://edamontology.org/topic_0003). We're making big efforts to make this branch simpler and more usable, and OLS would be a perfect application. For our part, we'll gladly tweak the Topics branch to suit your needs - and also help with the tagging. Then OLS can join a growing number of resources which are using EDAM Topics in this way.

What do you think?

Show versionIRI of ontology

On the ontology landing page it shows 'last updated', but this appears to be 'last loaded into OLS'. If the versionIRI is there, it should be accessible.

Search options: Restrict to MIRIAM registry missing & id/description search

[1]
I am only interested in ontologies which are registered in MIRIAM registry.
http://www.ebi.ac.uk/miriam/main/collections

There is a search option missing to restrict the results to only ontologies from MIRIAM registry.

[2]
It should be possible to only search the ids or/and the descriptions of the ontologies, i.e. to use something like
"liver[id]" -> only searches the ids of the terms
"liver[description]" -> only searches the descriptions of the terms
Or some field one can select in the search options.

Properties and individuals

I am struggling with the properties and individual queries. If I use the example to query a term, that works fine

GET /api/ontologies/{ontology}/terms/{iri}

and

curl 'http://www.ebi.ac.uk/ols/beta/api/ontologies/go/terms/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FGO_0043226' -i -H 'Accept: application/json'

and try to adapt it to properties or individuals, I get errors

% curl 'http://www.ebi.ac.uk/ols/beta/api/ontologies/go/properties/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FGO_0043226' -i -H 'Accept: application/json' 
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Date: Sun, 03 Jan 2016 16:55:07 GMT
Transfer-Encoding: chunked
Connection: close

{"timestamp":1451840107864,"status":500,"error":"Internal Server Error","exception":"java.lang.IllegalArgumentException","message":"Request processing failed; nested exception is java.lang.IllegalArgumentException: Content must not be null!"}
curl 'http://www.ebi.ac.uk/ols/beta/api/ontologies/go/individuals/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FGO_0043226' -i -H 'Accept: application/json'
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: application/json;charset=UTF-8
Date: Sun, 03 Jan 2016 16:55:26 GMT
Transfer-Encoding: chunked
Connection: close

{"timestamp":1451840126852,"status":500,"error":"Internal Server Error","exception":"java.lang.IllegalArgumentException","message":"Request processing failed; nested exception is java.lang.IllegalArgumentException: Content must not be null!"}

Any help would be very much appreciated.

Support for OBO subsets

subsets are widely used in the OBO world, e.g.

[Term]
id: GO:0000156
name: phosphorelay response regulator activity
namespace: molecular_function
def: "Responds to a phosphorelay sensor to initiate a change in cell state or activity. The activity of the response regulator is regulated by transfer of a phosphate from a histidine residue in the sensor, to an aspartate residue in the response regulator. Many but not all response regulators act as transcriptional regulators to elicit a response." [GOC:bf, PMID:10966457, PMID:11842140]
subset: goslim_metagenomics
subset: gosubset_prok
synonym: "two-component response regulator activity" NARROW []
is_a: GO:0004871 ! signal transducer activity
is_a: GO:0005057 {is_inferred="true"} ! receptor signaling protein activity
relationship: part_of GO:0000160 ! phosphorelay signal transduction system
relationship: part_of GO:0035556 ! intracellular signal transduction

http://www.ebi.ac.uk/ols/beta/ontologies/go/terms?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2FGO_0000156

in_subset: goslim_metagenomics,gosubset_prok

However, these aren't linked

conversely
http://www.ebi.ac.uk/ols/beta/ontologies/go
property view
click on goslim_metagenomics

takes you here:

http://www.ebi.ac.uk/ols/beta/ontologies/go/properties?iri=http%3A%2F%2Fpurl.obolibrary.org%2Fobo%2Fgo%23goslim_metagenomics

which is uninteresting deadend

The OBO spec for subsets is a little unusual in its OWL translation:

http://owlcollab.github.io/oboformat/doc/obo-syntax.html#5.6

OLS needn't be aware of this, it could just handle these are generic URIs that are linked; or it could have built in support for subsets

MIRIAM conform ids missing in search results

Dear OLS team,
great work on the redesign.

I am currently annotating a computational model (SBML) and using the OLS to find suitable terms.
Unfortunately, in the results list there are not the necessary ids for the Miriam annotation.

For instance:
Searching for liver
http://www.ebi.ac.uk/ols/beta/search?q=liver

In the results I want to use the BTO for annotation, which has the id rules
^BTO:\d{7}$
http://www.ebi.ac.uk/miriam/main/collections/MIR:00000111

In the results I only see

liver  
BTO
http://purl.obolibrary.org/obo/BTO_0000759
1: A large very vascular glandular organ of vertebrates that secretes bile and causes important changes in many of the substances cont

So I have to know/lookup the miriam id rules instead of just using the search result.
The result should look like this:

liver  
BTO:0000759
http://purl.obolibrary.org/obo/BTO_0000759

So one can copy and paste it in the annotations.

The best
Matthias

local location file in annotation-<resource>.properties in OLS/ols-apps/ols-neo4j-app/src/main/resources/

Minor Error

for example in application-uberon.properties
at line 4:
location file:///Users/jupp/Dropbox/dev/uberon/release/uberon.owl

causes the following error for local installs:

: Spring Boot :: (v1.3.0.M1)

2015-10-18 11:30:44,286 INFO main GraphLoaderApplication.logStarting - Starting GraphLoaderApplication v3.0.0-SNAPSHOT on Philippes-MBP.default with PID 80243 (/Users/Philippe/Documents/git/OLS/ols-apps/ols-neo4j-app/target/ols-neo4j-app.jar started by Philippe in /Users/Philippe/Documents/git/OLS)
2015-10-18 11:30:44,292 DEBUG main GraphLoaderApplication.logStarting - Running with Spring Boot v1.3.0.M1, Spring v4.2.0.RC1
2015-10-18 11:30:48,053 INFO main OLSEnv.getOLSHome - *** $OLS_HOME not set - defaulting to: /Users/Philippe/.ols ***
2015-10-18 11:30:59,930 INFO main PropertyBasedLoadingService.getLoader - Starting up loader with http://purl.obolibrary.org/obo/uberon.owl - Uber Anatomy Ontology
2015-10-18 11:31:00,407 DEBUG main OLSEnv.getOLSHome - *** ols.home: /Users/Philippe/.ols ***
2015-10-18 11:31:00,874 DEBUG main BatchNeo4JIndexer.getNodeCount - executing count: match (n:UBERON)-[r]->() return count(r) as count
2015-10-18 11:31:01,342 DEBUG main BatchNeo4JIndexer.getNodeCount - query count 0
2015-10-18 11:31:01,343 DEBUG main BatchNeo4JIndexer.getNodeCount - executing count: match (n:UBERON) return count(n) as count
2015-10-18 11:31:01,363 DEBUG main BatchNeo4JIndexer.getNodeCount - query count 0
2015-10-18 11:31:01,419 DEBUG main OLSEnv.getOLSHome - *** ols.home: /Users/Philippe/.ols ***
2015-10-18 11:31:01,558 DEBUG main ELKOWLOntologyLoader.waitUntilReady - Waiting until ELKOWLOntologyLoader is ready...
2015-10-18 11:31:01,558 DEBUG Thread-6 ELKOWLOntologyLoader.run - Initializing ELKOWLOntologyLoader...
2015-10-18 11:31:01,808 INFO Thread-6 ELKOWLOntologyLoader.doInitialization - Mapping ontology IRI from http://purl.obolibrary.org/obo/uberon.owl to file:///Users/jupp/dev/ontologies/uberon/uberon.owl

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.