Discontinued web services: Java library

Those services will soon be discontinued! Please consider using the new web services and associated library.

A programmatic access to the content of the Systems Biology Ontology is provided by SOAP based Web Services.

All the services provided are listed in detail here.

Alternatively, you can access to the WSDL file here.

List of available services

The WSDL was generated using Axis tools to fulfill the following interface contract:

  public interface SBOProvider  {
      public java.lang.String sayHi(java.lang.String in0);
      public uk.ac.ebi.sbo.castorExport.Term getTermById(int in0);
      public uk.ac.ebi.sbo.castorExport.Term[] searchPossibleCompletions(java.lang.String in0);
      public uk.ac.ebi.sbo.castorExport.Term[] getTree(int in0);
      public uk.ac.ebi.sbo.castorExport.Term[] searchTermSynonyms(java.lang.String in0);
      public uk.ac.ebi.sbo.castorExport.Term[] searchTermDetails(java.lang.String in0);
      public uk.ac.ebi.sbo.castorExport.Term[] searchTermMath(java.lang.String in0);
      public uk.ac.ebi.sbo.castorExport.Term[] searchTermName(java.lang.String in0);
      public uk.ac.ebi.sbo.castorExport.Term[] getTermsByIds(int[] in0);
      public java.lang.String getTermByIdOWL(int in0);
      public java.lang.String searchPossibleCompletionsOWL(java.lang.String in0);
      public java.lang.String getTreeOWL(int in0);
      public java.lang.String searchTermSynonymsOWL(java.lang.String in0);
      public java.lang.String searchTermDetailsOWL(java.lang.String in0);
      public java.lang.String searchTermMathOWL(java.lang.String in0);
      public java.lang.String searchTermNameOWL(java.lang.String in0);
      public java.lang.String getTermsByIdsOWL(int[] in0);
      public java.lang.String searchOWL(java.lang.String in0);
      public java.lang.String getStringTermById(int in0);
      public java.lang.String[] searchStringPossibleCompletions(java.lang.String in0);
      public java.lang.String[] getStringTree(int in0);
      public java.lang.String[] searchStringTermSynonyms(java.lang.String in0);
      public java.lang.String[] searchStringTermDetails(java.lang.String in0);
      public java.lang.String[] searchStringTermMath(java.lang.String in0);
      public java.lang.String[] searchStringTermName(java.lang.String in0);
      public java.lang.String[] getStringTermsByIds(int[] in0);
      public java.lang.String[] searchString(java.lang.String in0);
      public boolean isDirectChildOf(int in0, int in1);
      public boolean isChildOf(int in0, int in1);
      public boolean isObsolete(int in0);
      public uk.ac.ebi.sbo.castorExport.Term[] search(java.lang.String in0);
      public boolean isRoot(int in0);

Access using Java

In order to communicate with these Web Services within a Java program, you can use the library below (distributed under the terms of the GNU General Public License). Two versions are provided from SourceForge project (discontinued version: 1.9.1)

Here are the dependencies (for the basic version):

Note: you can find the latest version of each of these packages on their official web site.

The Javadoc API for the Java library methods can be found here.


Here are samples programs showing how to use the SBOWSLib:

Access using Python

You can use Suds for querying the Web Services using Python. A snippet example is provided below:

  from suds.client import Client
  # loads WSDL file
  client = Client("http://www.ebi.ac.uk/sbo/main/services/SBOQuery")
  # checks if term SBO:0000015 is a child of SBO:0000010
  print client.service.isChildOf(10, 15)   # this should print 'True'