New UMBEL Web Site Released


Structured Dynamics today released a new UMBEL Web site and set of eight Web services. UMBEL (Upper Mapping and Binding Exchange Layer) is a general reference structure of 28,000 concepts, which provides a scaffolding to link and interoperate with other datasets and domain vocabularies. This project is now six years old.

The first release of the UMBEL site occurred in 2007 when UMBEL was still under development. That release was followed in 2008 by the addition of UMBEL's first Web services. The Web services were well-received, which caused Structured Dynamics to develop the more general structWSF Web services framework (most recently updated as the OSF Web Services). The earlier UMBEL Web services were subsequently migrated to this more general framework, which also included Drupal as the standard content management component for OSF. Unfortunately, that version of the UMBEL site witnessed both performance and stability problems. These problems did not limit the use of UMBEL for general browsing purposes, but did limit its usefulness as a working API.

The new UMBEL site uses Bootstrap and plain ol' HTML. The Web services for UMBEL's 28,000 concept graph are now written in Clojure. They have been created to help developers quickly start using the reference structure without having to download and deploy the entire structure on their own infrastructure. The 8 web services are:

  1. Search concept — the primary tool for finding available concepts in the reference structure. It supports the Lucene query syntax and search queries can be constrained on different fields
  2. Get concept — is used to get the full description of an UMBEL reference concept, including its preferred label, all the alternative labels (namely, the items in the semset), the sub/super classes of the concept, the broader/narrower concepts, and the description of that concept. This is the primary workhorse service.
  3. Get super type — is used to get the full description of an UMBEL SuperType, including its preferred label, all alternative labels, description, and the disjoint super types of a target super type
  4. Get narrower concepts — is used to get the list of all the narrower concepts of a given reference concept, determined by inference
  5. Get broader concepts — is used to get the list of all the broader concepts of a given reference concept, determined by inference. The broader reference concepts do not include the super type as their top concept
  6. Get sub classes — is used to get the list of all the sub classes of a given reference concept, determined by inference
  7. Get super classes — is used to get the list of all the super classes of a given reference concept, determined by inference
  8. Distance — is used to get the distance between two UMBEL reference concepts by following the path of stated transitive property.

Each web service endpoint is comprised of simple functions, none of which exceed more than 30 lines of code, which greatly simplifies their creation, debugging, maintenance and optimization. The system uses the libraries of Ring and Compojure to manage the creation of the Web service endpoints, and Clucy/Lucene for the search engine.

All Web services calculate their results at runtime. The average query time is about 60 milliseconds for any of the Web service queries. This speed means that a Web page is fully loaded within 300 to 500 milliseconds, with most of that time spent downloading the Web files (the JavaScript, CSS, HTML and image files) and not querying the Web service endpoints. This performance is even more impressive considering the site currently runs on a small server with a single core and 1.8G of RAM.

The Web services can easily scale horizontally since everything is self contained in a single WAR file that can be deployed on new servers in a few clicks. Another advantage of this design is that the UMBEL programming API may be used in any Clojure or Java applications by including the JAR file. UMBEL thus becomes portable and it can be used as a library in any JVM application without requiring it to send queries to external Web services.

With the new release, SD also provides fully accessible APIs for free to all and without limits or restrictions.

Copyright © 2008-2018. Structured Dynamics LLC. All content available via Creative Commons Attribution 3.0