<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>3D Visualization of Application Ontology Class Hierarchies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Damion DOOLEY</string-name>
          <email>damion.dooley@bccdc.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>William HSIAO</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>BCCDC Public Health Laboratory</institution>
          ,
          <addr-line>Vancouver</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Damion Dooley, Department of Pathology and Laboratory Medicine, University of British Columbia</institution>
          ,
          <addr-line>BCCDC Site, 655 West 12th Avenue, Vancouver, BC</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Department of Molecular Biology and Biochemistry</institution>
          ,
          <addr-line>SFU, Burnaby</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Department of Pathology and Laboratory Medicine</institution>
          ,
          <addr-line>UBC, Vancouver</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>An application ontology often reuses terms from other related, compatible, upper-level or domain-specific ontologies. The extent of this interconnectedness is not readily apparent when browsing through larger textual presentations of term class hierarchies, be it Manchester text format OWL files or as presented in an ontology editor like Stanford Protégé, where one either mentally notes the location or frequency of ontology prefixes in term identifiers as the encompassing ontology is browsed, or one selects an ontology import file to view individually, out of context of the whole. Interconnectedness may be easier to perceive in two-dimensional hierarchical graphs that visually code ontology term origins, but canvass size and multiple inheritance links that break tree layouts become challenging at scale. We present OntoTrek, a visualization tool that explores the benefits of interactive threedimensional class hierarchy presentation. Our aim is to develop features, such as a consistent visual shape for ontologies based on the upper level ontology they subscribe to, that enable data project stakeholders to more quickly learn and appreciate the content domains of imported terms, ultimately illustrating how projects can describe knowledge through a vocabulary of interwoven communitysupported ontology resources.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>visualization</kwd>
        <kwd>ontology dependency</kwd>
        <kwd>hierarchic navigation</kwd>
        <kwd>education</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Data project stakeholders –software developers, curation teams, and funders – have been
attracted to aspects of ontology-driven data modelling that would appear to solve data
interoperability issues. The reuse of expert-curated domain-specific vocabularies, the
validation of term use within an upper level framework, and global access to ontology
terms via lookup services all encourage data harmonization. Visualization tools that
enable exploring domains of interest along these lines should help in investigating the
structure of current upper-level-ontology-compatible application and reference
ontologies. There are a vast number of visualization approaches for hierarchic
information as indicated in the https://treevis.net/ catalogue, and a lesser number of
efforts dedicated to ontology visualization[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], of which the authors state only two
projects, OntoSphere[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and OntoSELF[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] are 3D visualizers, and which are earlier
efforts that appear not to be supported or in development. OntoSphere provides network,
tree, neighborhood, and hyperbolic views, each of which places more or less emphasis
on highlighting class-subclass hierarchy, or object and data property axiomatization
within a local or broader context. OntoSELF provides a desktop application relying on
the Visualization Toolkit (https://vtk.org/) conical graph layout display to render a three
dimensional graph with automatically placed nodes, and subsequent OntoSELF+TQ[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
which uses the same framework to display a custom TQ query language’s results. Two
and three-dimensional efforts (for example, WebVOWL[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and OntoSphere) use links,
symbols and colour codes to represent nodes, object properties, data properties and
axiomatic expressions in order to capture the full semantics of interrelated ontology
terms. Such presentations could potentially be visually filtered and augmented to
highlight ontology term origin by colour coding.
      </p>
      <p>
        Our main criticism, also noted by Dudáš et al [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], is that existing approaches lack
a consistent layout, either relying on each user to place nodes, or in the case of
forcedirected-graph node placement, yielding shifting layouts over time or on each view. A
more resilient approach is called the 3D “Botanical
Tree” algorithm[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], illustrated in Figure 1. It builds
branch width according to a size metric of branch
content, and concludes with “phiballs”, spheres that
are decorated with either a conical cap, representing
a single graph leaf element, or polka dots
representing several leaf elements emanating from a
final branch juncture. Such trees, guided by the
class structure of an upper-level ontology, could
provide a consistent layout steered by branch
bifurcation and leaf volume. Our work is a variation Figure 1: Botanical Tree algorithm
on this approach, in which the leaf and node structure display of hierarchic graph structure
is exposed in order to provide labelling, and other
functionality described below.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Approach</title>
      <p>Hsiao Lab, associated with the University of British Columbia Department of Pathology
and Laboratory Medicine, and with the British Columbia Centre for Disease Control
Public Health Laboratory, has created OntoTrek (https://genepio.org/ontotrek), a
lightweight javascript-based open source web browser application that visualizes the
scope of ontology integration to stakeholders. It explores the idea that humans benefit
from data representations that maintain spatial consistency across successive
presentations and incremental content changes. This translates to enabling users to
virtually fly around and through the OntoTrek three-dimensional viewport’s
representation of a given ontology, which often resembles a jellyfish with tentacle
structures dangling downward.</p>
      <p>OntoTrek takes input from a user-selected JSON-LD file containing a given
ontology’s term class hierarchy, description and synonyms which are encoded using the
Gene Ontology hasSynonym, hasExactSynonym, hasBroadSynonym and
hasNarrowSynonym annotations. The ontofetch.py script generates the JSON-LD file
by fetching an ontology from a local file or via URL. OntoTrek uses WebGL 3D graph
rendering software (https://github.com/vasturiano/3d-force-graph/), which provides a
suite of graph node and edge rendering features, along with user interface interactivity,
to enable a 100% browser driven display of this content.</p>
      <p>
        OntoTrek displays all class-subclass relations starting from user-defined root
entities such as owl:Thing or the Basic Formal Ontology[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] (BFO) root “entity”.
Upperlevel BFO terms are assigned fixed (pinned) locations, and underlying nodes are
iteratively positioned by depth, leading the force directed graph to consistently place
them in the same region relative to each other on each fresh generation of the
visualization. The algorithm builds mountains of terms from the top-down, with
lowertier nodes pulling away from each other to help reduce density.
      </p>
      <p>All ontology term nodes – imported or native to a given ontology - are colour-coded
using a lookup table so their colouration is constant regardless of the umbrella ontology
they are being included in. On the Settings tab, a “Colour edges by” setting allows a
user to select from two edge color schemes. Figure 2 shows the “BFO branch” scheme
at work, generating edge colours representative of their parent nodes, obtained from an
upper level ontology lookup table, and which all descendent edges inherit. Figure 3
shows this scheme applied to the Evidence and Conclusion Ontology (ECO). The
alternative “source term” scheme shown in Figure 4 colours each edge according to its
source node, thus re-enforcing the visual presence of that ontology. Both colour schemes
are detailed on the application’s Legend tab.</p>
      <p>The OntoTrek viewport enables full mouse/trackpad pan/zoom/roll fly-through
navigation of this hierarchy. Nodes of a given depth are provided in a correspondingly
deep horizontal plane. Upper level ontology terms are given a larger size, enabling them
to be discerned while substantially zoomed-out from the graph. The 3d landscape also
allows structure to be “stored” in plain view at scale, which is a kind of data compression
as long as content areas are semantically summarized, which currently is achieved by
mouseover identification of distant nodes/terms within those areas.</p>
      <p>Clicking on a node will rotate and move the viewport camera towards that item and
highlight it in red. As well, on the Search tab shown in Figure 2, a “Term search …”
pull-down menu lists all class terms available in the ontology with an added usability
feature that as one types, both term label and synonyms can be searched, so that ‘dog’,
though not present in the label, will return term ‘Cannis lupus familiaris’. This enables
people to use colloquial vocabulary to access information a formal ontology can provide.
Selecting a search result locates and travels to the term node of interest. The Search tab
also includes the Information Architecture Ontology (IAO) definition, rdfs:label and
synonyms of any focused term.</p>
      <p>
        By default each node/term only has one parent link displayed, but the “Experimental”
setting shown in Figure 5 triggers the display of multiple parent links in orange. The
Trace tab contains a new feature under development for visualizing a disjoint
axiomrelated unsatisfiability error about a particular term in a given ontology that one has
encountered. One must invoke the command line robot tool[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] directly on the
unsatisfiable ontology to get the error
explanation report (in Markdown format) which
can then be entered into OntoTrek to visualize a
contradictory path.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Discussion</title>
      <p>
        To explore the presence of term reuse, selected
OBO Foundry family ontologies[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] are listed
in the OntoTrek menu. Some choices such as
AGRO, ECO and ECOCORE demonstrate
substantial reuse of upper level BFO classes,
with remaining items, if any, are located under a
top-level owl:Thing node. The Human Disease
Ontology illustrates a tighter domain, drawing
only on phenotype and anatomy components.
      </p>
      <p>Others lack any reference to the BFO context.</p>
      <p>This exposes the difference between application
ontologies involving models that draw on many
domains, and reference ontologies that are
domain specific or yet to take on upper level
schemas.
OntoTrek enhancements are envisioned both in content display and navigation. A few
problems exist in the interface, namely that the animation that takes one to a node of
interest involves pitch and roll that can be disorienting. Motion controls should have an
option to restrict movement so that top is always top, i.e. pitch and roll never occur, only
yawl and z axis elevation. A visual indication of where the centre of rotation is would
be useful too. An option to specify an ontology directly by URL would be useful. Adding
axiomatic details of nodes - related object properties and data properties that would only
be rendered temporarily on demand so as not to visually overwhelm the interface. A step
towards making this a tool for building reusable components would involve the ability
to select nodes and branches for hiding, deleting, moving, exporting or mapping, and the
ability to visualize the results of Sparql queries on a given ontology.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Software Availability</title>
      <p>OntoTrek can be explored at https://genepio.org/ontotrek . The latest code for OntoTrek
is at https://github.com/GenEpiO/ontotrek . The OntoFetch python script for obtaining
term hierarchies is available at https://github.com/GenEpiO/ontofetch .</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Dudáš</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lohmann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svátek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Pavlov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Ontology visualization methods and tools: A survey of the state of the art</article-title>
          .
          <source>In The Knowledge Engineering Review</source>
          ,
          <volume>33</volume>
          , e10 (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2] Web resource: http://voila2018.visualdataweb.org/slides/voila2018_introduction_survey_slides.pdf .
          <source>Visited August 15</source>
          ,
          <year>2019</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Bosca</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bonino</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Pellegrino</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <article-title>OntoSphere: more than a 3D ontology visualization tool</article-title>
          .
          <source>Swap</source>
          (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Somasundaram</surname>
          </string-name>
          , Ramanathan. “
          <article-title>OntoSelf: A 3D Ontology Visualization Tool</article-title>
          .” (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Pei</surname>
          </string-name>
          , Zhisong. “
          <article-title>OntoSELF+TQ: A Topology Query System for OntoSELF</article-title>
          .” (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Wiens</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lohmann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Auer</surname>
          </string-name>
          , S. WebVOWL Editor:
          <string-name>
            <surname>Device-Independent Visual</surname>
          </string-name>
          Ontology Modeling.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Kleiberg</surname>
            , E., van De Wetering,
            <given-names>H. &amp; Van</given-names>
          </string-name>
          <string-name>
            <surname>Wijk</surname>
            ,
            <given-names>J. J.</given-names>
          </string-name>
          <article-title>Botanical visualization of huge hierarchies</article-title>
          .
          <source>in IEEE Symposium on Information Visualization</source>
          ,
          <year>2001</year>
          .
          <source>INFOVIS</source>
          <year>2001</year>
          .
          <volume>87</volume>
          -
          <fpage>94</fpage>
          (
          <issue>IEEE</issue>
          ,
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Arp</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Spear</surname>
            ,
            <given-names>A. D.</given-names>
          </string-name>
          <article-title>Building Ontologies with Basic Formal Ontology</article-title>
          . (MIT Press,
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.C</given-names>
            .
            <surname>Jackson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.P.</given-names>
            <surname>Balhoff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Douglass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.L.</given-names>
            <surname>Harris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.J.</given-names>
            <surname>Mungall</surname>
          </string-name>
          ,
          <string-name>
            <given-names>&amp; J.A.</given-names>
            <surname>Overton. ROBOT</surname>
          </string-name>
          :
          <article-title>A tool for automating ontology workflows</article-title>
          .
          <source>BMC Bioinformatics</source>
          , vol.
          <volume>20</volume>
          ,
          <string-name>
            <surname>July</surname>
          </string-name>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          et al.
          <article-title>The OBO Foundry: coordinated evolution of ontologies to support biomedical data integration</article-title>
          .
          <source>Nat. Biotechnol</source>
          .
          <volume>25</volume>
          ,
          <fpage>1251</fpage>
          -
          <lpage>1255</lpage>
          (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>