Bioinformatics is a field where ontologies are especially important as a way to structure and annotate biological data. Unfortunately, most of them contains only an abstract semantical information and usually require a development of parallel structural definitions in some format (i.e. BioXSD). OWL2 may contain such structural information in a form of XML Schema datatypes, so here we present an example of a simple OWL2-based ontology that along with the developed tool allows a creation of SOAP-based web services, by generating the corresponding XML schema.
The ontology consists of 30 biological classes, 13 properties and 23 datatypes. An example XML schema has been generated from this ontology. Note, that we didn't use attributes for the generated schema, because they may give problems with holding long text data (i.e. a blast report). Then, java classes were generated using the standard java binding compiler tool (xjc). Note that while xjc tool generates structurally correct binding, it can't compete with manual binding. So the generated ontology classes was manually customized to simplify their usage. A blastp template service (service endpoint interface) is based on these ontology classes. And, finally, here is a complete example of NCBI-Blastp web service. The service runs a local blastp executable. It is assumed that a path to the blastp executable, and a BLASTDB variable pointing to the appropriate database are already set. It is possible to configure these paths through service context variable in the web.xml file.
The example blastp web service follows JEE6 specification and was tested with JBoss 7.1 application server. For those servers that are not completely JEE6 compatible (for example Tomcat 7) an additional configuration may be needed. A sample configuration for "METRO" JAX-WS is also included into the example.
Note that for the example, "java first" approach has been chosen. This means that the service is created from previously generated java classes and the resulted WSDL file is generated by a server. In this way, the generated WSDL file contains automatically generated XML Schema without any semantic annotations. Alternatively, a semantically annoted SA-WSDL service description file can be created, and then generate a service or just ask the application server to use this file (using wsdlLocation parameter), instead of generating one.
The demo service is deployed on INB/BSC server http://inb.bsc.es/service/NCBIBlastp?wsdl.
Download example files: