AbstractIn library, information and computer science, an ontology is a network of relationships. A well- known subset of an ontology is a "taxonomy," which is an ontology consisting of "is a" relationships. Biological taxonomies such as "a human is a primate is a mammal is an animal" provide a concrete example. While taxonomies have often been used by software developers as a basis for categorizing a set of items, more general ontologies can provide a richer description of relationships within a set.
Background: ontologies and faceted search
Taxonomies are constrained ontologiesImagine one were to enumerate a set of animal species. One could classify the species according to their types, e.g.:
This is an example of a taxonomy, a network of "is a" relationships.
This is indeed useful, yet one could imagine many other sorts of relationships among species than type. One could describe "lion preys upon gazelle" or "hyena competes with lion". This more thorough network of relationships is an example of an ontology.
Faceted search is implemented by Internet merchantsIt is common for Internet merchants to categorize their merchandise in an ontology, so that a faceted search may be implemented. Whereas traditional type classification encouraged hierarchal browsing according to a single relationship ("is a"), faceted search is a way of browsing through an ontology in lateral ways, and using many different relationships.
HelioinformaticsWith increasingly cheap computer storage and processing, more massive amounts of data are generated by scientific studies. In solar physics, the field known as "helioinformatics" uses various tools of informations technology, including ontologies, to better get a handle on data.
Ontology of solar dataDuring the summer of 2009, I interned at the Lockheed Martin Solar & Astrophysics Laboratory (LMSAL). LMSAL has a database of solar data which is accessible via a web API (application programming interface). My task over that summer and into this school year has been to implement a faceted search for their solar data using that API.
Implementation challenges and achievements
Initial approachThe initial idea was to have the search be structured in a tree-like fashion, with a description of the currently searched set at the root, and, for leaf nodes, a description that was describable by the more limited web API. To mediate between the leaves and the root, various intermediary nodes would be used.
Changing approachI think that I did not fully understand how faceted searching worked when I decided on the initial approach. Fortunately, I decided on a better approach; unfortunately, it was not until mid-way through my project. With my new approach, the user would be presented with every event and observation within a timespan. The user could then narrow down by selecting for specific features.
A challenge came up by way of the fact that the API only allows 200 events to be returned per query. My way around this was to have each of the about twenty different event types do a query involving just themselves; so, e.g., the "solar flare" type would only search for solar flares within a time span, the sunspot only sunspots, and so on. Once returned, the various events would be stored together so that events with different types but same properties (spots and flares both have grid locations, for example) could be found in the appropriate search.
CodaSadly, this project is not near completion as of writing time for this paper. It was, however, a valuable learning experience. My plan is to continue working on this project even after the end of the school quarter with the hope that a modicum of extra effort, I can complete this.
ThanksI would like to thank the many people whose insight, assistance and understanding brought this project along, including:
EJ Zita (The Evergreen State College) for providing the opportunity and preparation for the solar physics internship
Neal Hurlburt (Lockheed Martin Solar Astrophysics Lab) for his guidance on the direction of this project
Neal Nelson, Sherri Shulman and Richard Weiss (The Evergreen State College), my professors, for helping me mature as a programmer and student of computer science.