Difference between revisions of "Software"

From phenoscape
(Ontology tools)
 
(53 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page provides a broad overview of our software development activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as [http://github.com/phenoscape Github] and [http://sourceforge.net/projects/phenoscape/ Sourceforge], and we work with existing open-source projects whenever possible.
+
This page provides a overview of our software development activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as [http://github.com/phenoscape Github] and [http://sourceforge.net/projects/phenoscape/ Sourceforge], and we work with existing open-source projects whenever possible.
  
 
==Phenoscape Knowledgebase==
 
==Phenoscape Knowledgebase==
One of the chief objectives of the Phenoscape project is to present a centralized repository to store evolutionary phenotype annotations entered by curators and also integrate relevant data imported from partner projects. The Knowledgebase consists of a back-end semantic data store, a web service application which provides a query API for the data, a web application user interface allowing exploration of the Knowledgebase, and accessory tools for loading data.
+
One of the chief objectives of the Phenoscape project is to present a centralized repository to store evolutionary phenotype annotations entered by curators and also integrate relevant data imported from partner projects. The Knowledgebase consists of a back-end semantic data store, web services  which provide a query API for the data, a web application user interface allowing exploration of the Knowledgebase, and accessory tools for loading data. To meet requirements for scalability, reasoning expressivity, and support for linked data standards, we are developing a our Knowledgebase infrastructure using the RDF and OWL semantic web standards.
===Production version===
+
 
The live Phenoscape Knowledgebase is available at http://kb.phenoscape.org/. It makes use of the following software projects:
+
The live KB can be accessed at http://kb.phenoscape.org/. For more information on the Phenoscape Knowledgebase see these wiki pages:
* [http://berkeleybop.org/obd/ OBD] - an ontology-driven datastore developed by the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group. It provides a generic schema for storing ontologies and semantic data expressed with those ontologies. It also includes an automated reasoner used to materialize inferred knowledge into the datastore. The master build script for loading the Phenoscape Knowledgebase is included within the [http://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk OBD source code].
+
* [[Phenoscape KB]]
* [http://github.com/phenoscape/PhenoscapeOBD-WS Phenoscape OBD data services] - a suite of web services on top of OBD to serve as a data access API and foundation for our user-oriented Phenoscape web application. These web services present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using the [http://www.restlet.org/ Restlet] Java API. The specifications of these services are detailed in [[Data Services]].
+
* [[KB build process]]
* [http://github.com/phenoscape/PhenoscapeWeb Phenoscape web UI] - a web application providing user-friendly interfaces for browsing and querying data and ontologies within the Knowledgebase.
+
 
* [http://github.com/phenoscape/PhenoscapeDataLoader Phenoscape data loader] - a Java library providing translations of various data inputs into the OBD model, used within the OBD build script.
+
Software components:
 +
* [http://github.com/phenoscape/phenoscape-owl-tools phenoscape-owl-tools]—build application for generating the RDF content for the Phenoscape KB, including utilities for converting datasets to OWL and running reasoning tasks. Written in Scala using the OWL API.
 +
* [http://github.com/phenoscape/phenoscape-kb-services phenoscape-kb-services]—updated web services API for the Knowledgebase. Written in Scala using [http://spray.io Spray] web services.
 +
* [http://github.com/phenoscape/phenoscape-kb-ui phenoscape-kb-ui]—Phenoscape KB web user interface. A client-side web application using AngularJS.
 +
* [http://github.com/phenoscape/phenoscape-data phenoscape-data]—document store for semantically annotated character matrix files. This is the evolutionary data content for the Phenoscape KB. NeXML.
 +
* [http://github.com/phenoscape/owlet owlet]—integration of OWL reasoner queries within SPARQL. It parses embedded OWL class expressions and uses an OWL reasoner to either generate a new query by injecting FILTER statements containing the reasoner results, or instead return the reasoner results in SPARQL results format (for use in [http://www.w3.org/TR/sparql11-federated-query/ SPARQL federated queries]). Written in Scala using OWL API and Jena.
 +
* [http://github.com/phenoscape/owlery owlery]—web service interface for OWL API reasoner queries. In addition to direct DL queries, Owlery provides a SPARQL endpoint powered by Owlet. Written in Scala using Spray web services.
 +
* [http://github.com/phenoscape/scowl scowl]—a Scala library allowing a declarative approach to composing OWL expressions and axioms using the [http://owlapi.sourceforge.net/ OWL API]. Written in Scala.
 +
 
 +
==Software tools to access and analyze KB data==
 +
* [http://rphenoscape.phenoscape.org/ RPhenoscape]— R package that facilitates interfacing with the Phenoscape Knowledgebase for searching ontology terms, querying data matrices, obtaining dependency matrices, and computing semantic similarity metrics.
 +
 
 +
* [http://beta.phenoscape.org/#/ontotrace OntoTrace] — tool used to query the KB for a synthetic character matrix of asserted and inferred presence/absence characters for anatomical structures. OntoTrace is also accessible by using [http://rphenoscape.phenoscape.org/ RPhenoscape] to query the web services API.
 +
 
 +
==Data curation tools==
 +
* [http://github.com/phenoscape/Phenex Phenex]—ontology annotation software tailored for phenotype annotation of evolutionary character matrices. It saves ontology annotations alongside traditional character matrix data using the [http://www.nexml.org/ NeXML] format standard for evolutionary data. Also see the [[Phenex|Phenex homepage]].
 +
* [http://github.com/phenoscape/phenoscape-nlp phenoscape-nlp]—Phenoscape version of the [[CharaParser]] natural-language processing tool, which analyzes the text of character-state descriptions to produce a structured output used to generate proposals for ontological phenotype annotations. We are working to enhance the performance of CharaParser and also to integrate it with Phenex, so that data curators can take advantage of natural-language processing to accelerate their workflow. Developed and maintained by [http://hongcui.faculty.arizona.edu Hong Cui].
 +
* [http://github.com/phenoscape/charaparser-unsupervised charaparser-unsupervised]—implementation of the CharaParser unsupervised learning algorithm in Java, to be incorporated into the main CharaParser code.
 +
 
 +
==Other active projects==
 +
* [http://github.com/phenoscape/presence-absence-matrix presence-absence-matrix]—tool for querying a local copy of the Phenoscape KB and generating a synthetic presence/absence character matrix using anatomical reasoning.
 +
* [http://github.com/phenoscape/kb-sparql-queries kb-sparql-queries]—miscellaneous queries for use with the Phenoscape KB SPARQL endpoint. Used for reports and may also aid in navigating the KB RDF datamodel.
 +
* [http://github.com/phenoscape/phenoscape.github.com phenoscape.github.com]—source for Phenoscape public website
 +
* [http://github.com/phenoscape/phenoscape-ontologies phenoscape-ontologies]—ontologies developed internally for the Phenoscape project. Currently contains only a demonstration ontology for presence/absence reasoning.
 +
* [http://github.com/NESCent/Taxonomy-Ontology-Tool Taxonomy-Ontology-Tool]—tool used to assemble the VTO by starting from an initial taxonomy (NCBI) and deleting and splicing in group specific taxonomies (e.g., TTO, ATO).
 +
* [http://github.com/phenoscape/phenoday-reasoning-paper phenoday-reasoning-paper]—Demonstration code for [http://phenoday2014.bio-lark.org/pdf/11.pdf paper submission] to the Bio-ontologies SIG [http://phenoday2014.bio-lark.org Phenotype Day] at ISMB 2014.
  
===RDF-OWL version (in development)===
+
==Exploratory projects==
To meet new requirements for scalability, reasoning expressivity, and support for linked data standards, we are developing a new Knowledgebase infrastructure based on RDF and OWL reasoning. Some in-progress components:
+
These are in a state of preliminary development or just for exploration/testing.
* [http://github.com/phenoscape/phenoscape-kb Phenoscape content in RDF] (rapidly evolving)
+
* [http://github.com/phenoscape/vue2owl vue2owl]—Convert a VUE document to an OWL ontology. Scala.
* [[KB-OWL|Reasoning strategy overview]]
 
  
==Phenex==
+
==Repositories no longer being used/maintained==
[[Phenex]] is ontology annotation software tailored for phenotype annotation of evolutionary character matrices. It saves ontology annotations alongside traditional character matrix data using the new [http://www.nexml.org/ NeXML] format standard for evolutionary data.
+
===Classic Phenoscape KB===
 +
The first edition of the Phenoscape Knowledgebase is still live at http://fish.phenoscape.org/. It makes use of the following software projects:
 +
* [http://berkeleybop.org/obd/ OBD] - an ontology-driven datastore developed by the [http://www.berkeleybop.org/ Berkeley Bioinformatics Open-source Projects] group. It provides a generic schema for storing ontologies and semantic data expressed with those ontologies. It also includes an automated reasoner used to materialize inferred knowledge into the datastore. The master build script for loading the Phenoscape Knowledgebase is included within the [http://obo.svn.sourceforge.net/svnroot/obo/OBDAPI/trunk OBD source code].
 +
* [http://github.com/phenoscape/PhenoscapeOBD-WS PhenoscapeOBD-WS] - a suite of web services on top of OBD to serve as a data access API and foundation for our user-oriented Phenoscape web application.  These web services present a [http://en.wikipedia.org/wiki/Representational_State_Transfer RESTful] service interface using the [http://www.restlet.org/ Restlet] Java API. The specifications of these services are detailed in [[Data Services]].
 +
* [http://github.com/phenoscape/PhenoscapeWeb PhenoscapeWeb] - a web application providing user-friendly interfaces for browsing and querying data and ontologies within the Knowledgebase, written using Ruby on Rails.
 +
* [http://github.com/phenoscape/PhenoscapeDataLoader PhenoscapeDataLoader] - a Java library providing translations of various data inputs into the OBD model, used within the OBD build script.
  
==Ontology tools==
+
===Others===
===Synchronization Tool===
+
* [http://github.com/phenoscape/phenoscape-builder phenoscape-builder]—early Ant-based tool for building the RDF-based KB. Replaced by Scala script within [http://github.com/phenoscape/phenoscape-owl-tools phenoscape-owl-tools].
The [[Synchronization Tool]] is a plug-in for [http://oboedit.org/ OBO-Edit] which aids in keeping the Teleost Anatomy Ontology and the Zebrafish Anatomy Ontology consistent with each other.
+
* [http://github.com/phenoscape/skeleton-image-annotation skeleton-image-annotation]—reference images for the vertebrate skeleton annotated with Uberon terms, using Phenote.
 +
* [http://github.com/phenoscape/phenoscape-kb-rdf-data phenoscape-kb-rdf-data]—some obsolete full dumps of the RDF knowledgebase. We are exploring making current data dumps available elsewhere, such as at http://datahub.io.
 +
* [http://github.com/phenoscape/Phenotype-Matching-Queries Phenotype-Matching-Queries]
 +
* [http://github.com/phenoscape/CMAPOBO CMAPOBO]
 +
* [http://github.com/phenoscape/synctool-oboedit synctool-oboedit]
 +
* [http://github.com/phenoscape/ontophenotype-eol ontophenotype-eol]
 +
* TTOTool...

Latest revision as of 00:04, 10 December 2019

This page provides a overview of our software development activities. Phenoscape supports open development processes and collaboration. All source code we create is available from open source repositories such as Github and Sourceforge, and we work with existing open-source projects whenever possible.

Phenoscape Knowledgebase

One of the chief objectives of the Phenoscape project is to present a centralized repository to store evolutionary phenotype annotations entered by curators and also integrate relevant data imported from partner projects. The Knowledgebase consists of a back-end semantic data store, web services which provide a query API for the data, a web application user interface allowing exploration of the Knowledgebase, and accessory tools for loading data. To meet requirements for scalability, reasoning expressivity, and support for linked data standards, we are developing a our Knowledgebase infrastructure using the RDF and OWL semantic web standards.

The live KB can be accessed at http://kb.phenoscape.org/. For more information on the Phenoscape Knowledgebase see these wiki pages:

Software components:

  • phenoscape-owl-tools—build application for generating the RDF content for the Phenoscape KB, including utilities for converting datasets to OWL and running reasoning tasks. Written in Scala using the OWL API.
  • phenoscape-kb-services—updated web services API for the Knowledgebase. Written in Scala using Spray web services.
  • phenoscape-kb-ui—Phenoscape KB web user interface. A client-side web application using AngularJS.
  • phenoscape-data—document store for semantically annotated character matrix files. This is the evolutionary data content for the Phenoscape KB. NeXML.
  • owlet—integration of OWL reasoner queries within SPARQL. It parses embedded OWL class expressions and uses an OWL reasoner to either generate a new query by injecting FILTER statements containing the reasoner results, or instead return the reasoner results in SPARQL results format (for use in SPARQL federated queries). Written in Scala using OWL API and Jena.
  • owlery—web service interface for OWL API reasoner queries. In addition to direct DL queries, Owlery provides a SPARQL endpoint powered by Owlet. Written in Scala using Spray web services.
  • scowl—a Scala library allowing a declarative approach to composing OWL expressions and axioms using the OWL API. Written in Scala.

Software tools to access and analyze KB data

  • RPhenoscape— R package that facilitates interfacing with the Phenoscape Knowledgebase for searching ontology terms, querying data matrices, obtaining dependency matrices, and computing semantic similarity metrics.
  • OntoTrace — tool used to query the KB for a synthetic character matrix of asserted and inferred presence/absence characters for anatomical structures. OntoTrace is also accessible by using RPhenoscape to query the web services API.

Data curation tools

  • Phenex—ontology annotation software tailored for phenotype annotation of evolutionary character matrices. It saves ontology annotations alongside traditional character matrix data using the NeXML format standard for evolutionary data. Also see the Phenex homepage.
  • phenoscape-nlp—Phenoscape version of the CharaParser natural-language processing tool, which analyzes the text of character-state descriptions to produce a structured output used to generate proposals for ontological phenotype annotations. We are working to enhance the performance of CharaParser and also to integrate it with Phenex, so that data curators can take advantage of natural-language processing to accelerate their workflow. Developed and maintained by Hong Cui.
  • charaparser-unsupervised—implementation of the CharaParser unsupervised learning algorithm in Java, to be incorporated into the main CharaParser code.

Other active projects

  • presence-absence-matrix—tool for querying a local copy of the Phenoscape KB and generating a synthetic presence/absence character matrix using anatomical reasoning.
  • kb-sparql-queries—miscellaneous queries for use with the Phenoscape KB SPARQL endpoint. Used for reports and may also aid in navigating the KB RDF datamodel.
  • phenoscape.github.com—source for Phenoscape public website
  • phenoscape-ontologies—ontologies developed internally for the Phenoscape project. Currently contains only a demonstration ontology for presence/absence reasoning.
  • Taxonomy-Ontology-Tool—tool used to assemble the VTO by starting from an initial taxonomy (NCBI) and deleting and splicing in group specific taxonomies (e.g., TTO, ATO).
  • phenoday-reasoning-paper—Demonstration code for paper submission to the Bio-ontologies SIG Phenotype Day at ISMB 2014.

Exploratory projects

These are in a state of preliminary development or just for exploration/testing.

  • vue2owl—Convert a VUE document to an OWL ontology. Scala.

Repositories no longer being used/maintained

Classic Phenoscape KB

The first edition of the Phenoscape Knowledgebase is still live at http://fish.phenoscape.org/. It makes use of the following software projects:

  • OBD - an ontology-driven datastore developed by the Berkeley Bioinformatics Open-source Projects group. It provides a generic schema for storing ontologies and semantic data expressed with those ontologies. It also includes an automated reasoner used to materialize inferred knowledge into the datastore. The master build script for loading the Phenoscape Knowledgebase is included within the OBD source code.
  • PhenoscapeOBD-WS - a suite of web services on top of OBD to serve as a data access API and foundation for our user-oriented Phenoscape web application. These web services present a RESTful service interface using the Restlet Java API. The specifications of these services are detailed in Data Services.
  • PhenoscapeWeb - a web application providing user-friendly interfaces for browsing and querying data and ontologies within the Knowledgebase, written using Ruby on Rails.
  • PhenoscapeDataLoader - a Java library providing translations of various data inputs into the OBD model, used within the OBD build script.

Others