<!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>Facets, Tiers and Gems: Ontology Patterns for Hypernormalisation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Phillip Lord</string-name>
          <email>phillip.lord@newcastle.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Robert Stevens</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computer Science, University of Manchester</institution>
          ,
          <addr-line>Manchester</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computing Science, Newcastle University</institution>
          ,
          <addr-line>Newcastle-upon-Tyne</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>There are many methodologies and techniques for easing the task of ontology building. Here we describe the intersection of two of these: ontology normalisation and fully programmatic ontology development. The first of these describes a standardized organisation for an ontology, with singly inherited self-standing entities, and a number of small taxonomies of refining entities. The former are described and defined in terms of the latter and used to manage the polyhierarchy of the self-standing entities. Fully programmatic development is a technique where an ontology is developed using a domain-specific language within a programming language, meaning that as well defining ontological entities, it is possible to add arbitrary patterns or new syntax within the same environment. We describe how new patterns can be used to enable a new style of ontology development that we call hypernormalisation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 INTRODUCTION</title>
      <p>Building ontologies is a difficult and time-consuming business for a
number of reasons: from an abstract point-of-view knowledge about
the domain can be difficult to gather, to understand and to represent
ontologically; more, immediately, ontologies, especially those with
a complex representation, can be taxing to describe and define
consistently, to update, expand or change when that representation
needs to change.</p>
      <p>
        There have been numerous attempts to simplify and clarify
this process including: the development of methodologies such as
OntoClean that defines a set of meta-properties that can inform
ontological modelling
        <xref ref-type="bibr" rid="ref4">(Guarino and Welty, 2002)</xref>
        ; upper ontologies
such as DOLCE or BFO
        <xref ref-type="bibr" rid="ref3">(Grenon et al., 2004)</xref>
        that provide a
pre-made upper classification.
      </p>
      <p>
        Another approach that can leverage both of these techniques is
ontology normalisation
        <xref ref-type="bibr" rid="ref11">(Rector, 2002)</xref>
        . Originally intended as a
mechanism for “untangling” existing hierarchies or classifications
being reused as the basis for an ontology, it also has significant use
as a pattern for building ontologies de novo.
      </p>
      <p>
        Broadly, a normalised ontology is defined using a skeleton that is
a strict tree (i.e. not a acyclic graph) of concepts differentiated using
an inheritance (i.e. not a partonomy) relationship. These are further
split into: a set of self-standing entities in which children are disjoint
from each other, but do not cover the parent, and partitioning or
should
addressed:
refining concepts that form closed, covering and disjoint hierarchies.
Building an ontology in this way, allows the ontology developer to
exploit the reasoner to build a polyhierarchy by using classes that
define the self-standing entity in terms of the refining partitions.
Polyhierarchies are difficult to build manually, as human ontology
developers, no matter how good their domain knowledge, find it
hard to ensure all possible parents of an entity are taken into account.
The normalisation approach uses defined classes and reasoning to
remove this chore. Creating the tree of self-standing entities still,
however, remains as a task for the developer. The normalisation
approach can significantly increase the robustness and reduce the
work of manual maintenance
        <xref ref-type="bibr" rid="ref17">(Wroe et al., 2003)</xref>
        . In this latter form,
ontological normalisation has been widely, if implicitly, used.
      </p>
      <p>
        While the term “ontology normalisation” has been borrowed,
somewhat metaphorically, from database engineering, the process
of building ontologies using a set of standard design patterns
has a rather more direct relationship to the software engineering
equivalent. By reusing a standard set of patterns, it is possible to
build an ontology both rapidly, and consistently. This has manifested
itself in a number of different ways, with a number of different tools,
such as TermGenie
        <xref ref-type="bibr" rid="ref1">(Dietze et al., 2014)</xref>
        , or Populus
        <xref ref-type="bibr" rid="ref6">(Jupp et al.,
2011)</xref>
        which can generate ontologies according to a pattern.
      </p>
      <p>
        We have previously described a fully programmatic methodology
for ontology development
        <xref ref-type="bibr" rid="ref14 ref15 ref7">(Lord, 2013)</xref>
        , using the Tawny-OWL
environment. This is built around the programming language
Clojure and enables the ontology to take advantage of all the features
of a programming language and its environment, including unit
testing
        <xref ref-type="bibr" rid="ref13 ref16">(Warrender and Lord, 2015)</xref>
        , build, evaluation and, of course,
pattern-driven development by simple use of functions
        <xref ref-type="bibr" rid="ref14 ref15 ref7">(Warrender
and Lord, 2013)</xref>
        . With respect to patterns, this environment has
several advantages. First, and unlike tools such as Populous and
OPPL
        <xref ref-type="bibr" rid="ref2">(Egana Aranguren et al., 2009)</xref>
        , patterns are developed in
the same environment and syntax as simple ontology concepts; it
is, therefore, as easy to define a pattern as it is to define a class.
Second, being based on Clojure, a language which is homoiconic
and has very little syntax of its own, it is possible to build arbitrary
syntactic constructions to represent patterns in a way that is both
convenient and attractive to the developer.
      </p>
      <p>
        In this paper, we describe an extension of the normalisation
technique that we call hypernormalisation. This technique is
typified by the (near or complete) absence of asserted hierarchy
among the self-standing entities. We describe how this allows
construction of an exemplar ontology of amino-acids
        <xref ref-type="bibr" rid="ref12">(Stevens and
Lord, 2012)</xref>
        . We then move on to describe recent developments
      </p>
      <p>Top Level
SelfS-tanding Entities</p>
      <p>Refining Type
Body Substance</p>
      <p>Person</p>
      <p>Role</p>
      <p>Value Types
in the Tawny-OWL environment, including the definition of two
new design patterns, the tier and the facet, and one syntactic
abstraction, the gem, can be used to enable hypernormalised
ontology development. Finally, we discuss the application of this
approach to other ontologies.
2</p>
    </sec>
    <sec id="sec-2">
      <title>HYPERNORMALISATION AND AMINO ACIDS</title>
      <p>Normalisation is a methodology that aims to disentangle an
ontological structure, in the process managing its maintainability,
utility and expressivity of the ontology generated. To achieve
this, the ontology is split into two main hierarchies: self-standing
entities and refining types, see Figure 2 for an example. The
self-standing hierarchy contains entities with a central hierarchy
or skeleton. In this part of the ontology, we would expect that
hierarchy contains levels that are not-exhaustive – that is the
children do not cover the parents, and parents are not closed to new
children. This is contrasted by the refining hierarchy that consists of
classes that are exhaustive; in many cases, children will be
nonoverlapping and, therefore, disjoint. This is not to say that the
refining types hierarchy are necessarily complete: in Figure 2, for
example, the representation of Sex is too simple for many medical
uses, but might be sufficient for a customer relations system. In
general, the self-standing entities will be defined in terms of the
refining types, while polyhierarchical relationships between the
self-standing entities will be determined through use of a reasoner.</p>
      <p>
        This form of ontology development is quite different from an
upper ontology and agnostic to the choice of upper ontology or
none. While
        <xref ref-type="bibr" rid="ref11">Rector (2002)</xref>
        suggests only that self-standing entities
and refining types should be “made clear by some mechanism”; in
OWL, it could be an upper ontological term, or an annotation.
      </p>
      <p>We next introduce the amino-acid, used here as an exemplar,
which defines the biological amino-acids in terms of the
physiochemical properties most relevant to their biological role.
It is a structurally interesting ontology because it is normalised,
with a clear and clean separation between the self-standing entities
and the five refining concepts. It is rather more than this, though;
the self-standing entities are split into only three sets: the
aminoacids themselves (e.g. Alanine); a (very large) set of defined
classes describing the refined types of amino-acid (e.g. Small
Neutral Amino Acid); and, finally, the single class Amino Acid.
Or, stated alternatively, it contains no skeleton hierarchy at
all, and all relationships between the self-standing classes are
arrived at through reasoning. This is particularly relevant for
the amino acid ontology as it contains over 500 defined classes,
with subsumption relationships to the amino acids and between
themselves. Maintaining this form of ontology by hand would be
impractical.</p>
      <p>
        We call this style of ontology development hypernormalised.
We believe that it is a natural extension of normalisation. Rector
notes, for example, that the choice of aspect to form the skeleton
is “to some degree arbitrary”, but that they should be rigid (after
OntoClean
        <xref ref-type="bibr" rid="ref4">(Guarino and Welty, 2002)</xref>
        ) and pragmatically stable
(i.e. unlikely to change during the evolution of the ontology). Both
of these are, however, true for all the refining concepts in the
aminoacids. In short, not only is the choice of skeleton arbitrary it is
actually unnecessary and brings no further utility to the ontology
than that which can be achieved by use of reasoning.
      </p>
      <p>We note that the distinction between normalisation and
hypernormalisation is not absolute, but one of degree; we are simply
describing the tendency toward an ontology with an flat asserted
hierarchy.</p>
      <p>Having introduced the notions of a hypernormalised ontology, we
next consider a set of new patterns in Tawny-OWL that enable this
style of ontology development.
3</p>
    </sec>
    <sec id="sec-3">
      <title>PATTERNISING AND TAWNY-OWL</title>
      <p>
        The Tawny-OWL environment
        <xref ref-type="bibr" rid="ref14 ref15 ref7">(Lord, 2013)</xref>
        and its ability to
support patterns
        <xref ref-type="bibr" rid="ref14 ref15 ref7">(Warrender and Lord, 2013)</xref>
        has been described
elsewhere in detail; here, we provide a quick overview, so that the
rest of the paper is clear. Tawny-OWL is implemented as a DSL
(domain-specific language) in Clojure, which is a Lisp-like language
implemented in Java, and running on the Java virtual machine.
      </p>
      <p>Top Level
SelfS-tanding Entities
Refining Type
Defined Class</p>
      <p>Amino Acid</p>
      <p>Alanine</p>
      <p>Arginine
18 more</p>
      <p>Size</p>
      <p>Charge</p>
      <p>Hydro.</p>
      <p>Polarity</p>
      <p>SideChain
Small AA</p>
      <p>S. Neutral AA</p>
      <p>S. N. Aliphatic AA
500 more</p>
      <p>Tiny</p>
      <p>Small</p>
      <p>
        Large
Tawny-OWL itself wraps the OWL API
        <xref ref-type="bibr" rid="ref5 ref6">(Horridge and Bechhofer,
2011)</xref>
        ; this is the same library that underpins Protg, and from it,
Tawny-OWL gains much of its functionality. Simple sections of the
ontology can be generated using a syntax based on a “lispified”
version of Manchester OWL Notation; for example, the following
code:
(defclass A
      </p>
      <p>:super B)</p>
      <sec id="sec-3-1">
        <title>Class: o:A</title>
      </sec>
      <sec id="sec-3-2">
        <title>SubClassOf: o:B</title>
        <p>This declares a new class A that has the pre-existing class B
as a superclass 1 which in Manchester OWL notation would be
expressed as:</p>
        <p>This code is entirely valid Clojure and can be evaluated in any
Clojure environment, such as CIDER/Emacs or Cursive/IntelliJ. It
is also possible to define new patterns: for example the following
pattern definition:
(defn some-only [property &amp; clazzes]
(list (some property clazzes)</p>
        <p>
          (only property (or clazzes))))
defines the some-only pattern which generates a set of
existential restrictions and one universal with the union of the
existential fillers as its filler, which implements the ontological
closure pattern. This is a function definition in Clojure terms: defn
introduces the function, property &amp; clazzes is the argument
list, some, only and or are functions provided by Tawny-OWL
and list returns, prosaically, a list2. Critically, it is possible to
1 See
          <xref ref-type="bibr" rid="ref8">Lord (2014)</xref>
          an explanation of why :super is used rather than
:subclass.
2 The function shown here is a slightly simplified version of one provided
in Tawny-OWL.
define this pattern in the same environment, or side-by-side in the
same file as a simple class definition; with Tawny-OWL it is as easy
to define a class, as to define and use a new pattern. Ontologies
such as the Karyotype ontology make extensive use of this facility
moving freely between ontology and pattern definitions, as well as
literal data structures, utility functions and unit tests
          <xref ref-type="bibr" rid="ref14 ref15 ref7">(Warrender and
Lord, 2013)</xref>
          .
        </p>
        <p>Tawny-OWL is now a mature and used software product; the first
alpha release of Tawny-OWL was in Nov 2012, first full release,
Nov 2013, followed by four point releases to 2016. This paper
describes mostly the upcoming v2.0 release, although some of the
features described were available in earlier versions.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>THE VALUE PARTITION</title>
      <p>
        A common pattern for building a normalised ontology is called the
value partition. This pattern
        <xref ref-type="bibr" rid="ref10">(Rector, 2005)</xref>
        addresses the problem
of the ontological modelling of a continuous range. For example, in
modelling the amino-acids, we can consider the concept of Size;
this could be described directly using the molecular weight of the
amino-acid. However, for the purpose of the amino-acids, it is both
easy and general practice to split size into three categories: tiny,
small and large. In Tawny-OWL, this can be achieved
straightforwardly using the defpartition function3.
(defpartition Size
[Tiny Small Large]
:domain AminoAcid
:super PhysioChemicalProperty)
      </p>
      <p>Axiomatically, this expands into: a class Size; three subclasses,
Tiny, Small and Large; and, a property hasSize. The
3 For those with knowledge of Lisp, this is actually a macro; the main
implementation is in the value-partition function. Tawny-OWL
provides support for implementing syntactic macros whose function is
simply to allow the use of bare symbols. For those without knowledge of
Lisp, the distinction is not important!
property is functional, has range of Size and domain of
AminoAcid. Expanded, this would be expressed as follows4:</p>
      <sec id="sec-4-1">
        <title>Class: o:Size</title>
      </sec>
      <sec id="sec-4-2">
        <title>EquivalentTo: o:Large or o:Small or o:Tiny</title>
      </sec>
      <sec id="sec-4-3">
        <title>SubClassOf: o:PhysioChemicalProperty</title>
      </sec>
      <sec id="sec-4-4">
        <title>Class: o:Large</title>
      </sec>
      <sec id="sec-4-5">
        <title>SubClassOf: o:Size</title>
      </sec>
      <sec id="sec-4-6">
        <title>Class: o:Small</title>
      </sec>
      <sec id="sec-4-7">
        <title>SubClassOf: o:Size</title>
      </sec>
      <sec id="sec-4-8">
        <title>Class: o:Tiny</title>
      </sec>
      <sec id="sec-4-9">
        <title>SubClassOf: o:Size</title>
      </sec>
      <sec id="sec-4-10">
        <title>DisjointClasses: o:Large,o:Small,o:Tiny</title>
        <p>
          The subclasses are disjoint and cover the parent. Following the
terminology from
          <xref ref-type="bibr" rid="ref11">Rector (2002)</xref>
          , the value partition is useful for
defining partitioning or refining concepts.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>THE TIER</title>
      <p>The value partition is a pattern aimed at a specific purpose –
segmenting a continuous range. In practice, though, we have found
that the axiomatization of this pattern is more generally useful. For
example, considering the amino-acid ontology, it is natural to model
the chemistry of the side-chain as such:
(defpartition SideChainStructure
[Aromatic Aliphatic]
:domain AminoAcid
:super PhysicoChemicalProperty)</p>
      <p>
        While this is intuitive, ontologically, SideChainStructure
is actually of a very different form from Size, as it does not reflect
a spectrum. Either the side-chain contains a benzene ring, making
it aromatic, or it does not. This form of partition was also noted
in
        <xref ref-type="bibr" rid="ref11">Rector (2002)</xref>
        which includes the classes Male and Female
which is not a spectrum, at least in this simplified representation.
We introduce here, therefore, the more general notion of the tier:
a small set of concepts in a one-deep hierarchy. The tier function
supports a range of options:
(deftier Charge
[Positive Neutral Negative]
:domain AminoAcid
:super PhysioChemicalProperty
:suffix true)
4 Tawny-OWL also adds annotations which have been elided
      </p>
      <p>The use of :suffix true causes a simple change to the
naming of the entities: Positive will become PositiveCharge
which would be expanded as follows:</p>
      <sec id="sec-5-1">
        <title>Class: o:PositiveCharge</title>
      </sec>
      <sec id="sec-5-2">
        <title>SubClassOf: o:Charge</title>
        <p>Other names are modified equivalently. By default, this will
manifest both when referring to the class in the Tawny-OWL
environment, in the IRI of the concept when serialized as OWL, and
in the value of an annotation on the concepts5. In addition to naming,
it is also possible to optionalise: whether or not the subclasses are
disjoint, covering, whether the property is functional or whether it
is created at all.</p>
        <p>The tier is a more general pattern than the value-partition; in fact,
in the current version of Tawny-OWL, the latter is defined in terms
of the former.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>THE FACET</title>
      <p>
        Both the value partition and tier introduce a new object property
named after the tier, and with a range limited to the classes defined
within the tier. The converse is also true; where we use one of the
tier classes, such as PositiveCharge it is most likely that we
wish to use it with the hasCharge property defined as part. Taken
together, we describe the combination of classes and a property as a
facet. Facets are a well known technique, first proposed in a library
classification (the Colon Classification
        <xref ref-type="bibr" rid="ref9">(Ranganathan, 1933)</xref>
        , named
after the use of “:” as a separator). They are now common-place as
seen with facetted browsers used by many websites for navigation
of complex product catalogues.
      </p>
      <p>Tawny-OWL provides explicit support for facets, allowing the
association of a property and a set of classes, as demonstrated by
the following code:
(as-facet
hasCharge</p>
      <sec id="sec-6-1">
        <title>Positive Neutral Negative)</title>
        <p>The practical implication of this is that we can now use the
facet function to return an existential restriction providing just a
class. We can express this programmatically; for example, we might
use the assert function provided by Clojure’s unit test framework.
(assert
(= (some hasCharge Positive)</p>
        <p>(facet Positive)))</p>
        <p>By itself, this ability is only slightly more succinct. However,
when used with multiple facetted classes, the advantages become
considerably clearer, as can be shown by the following assertion.
(assert</p>
        <p>(= (list (some hasCharge
5 The duplication between the annotation and the IRI fragment is there
because IRI schemes such as numeric style OBO IDs; annotations have been
elided for brevity</p>
        <p>In addition to succinctness, this pattern also reduces the risk of
errors; a class such as Tiny will always be used with its correct
property. Without the use of facets, the ontology developer must
achieve this by hand. It would also be possible to detect the error
using reasoning, although this will only succeed if appropriate range
and disjoint restrictions are in the ontology. The defpartition
and deftier functions, of course, both add these range and
disjoint restrictions and declare their classes as facets of their
properties.
7</p>
        <p>
          THE GEM
Finally, we define the gem that provides a syntactic abstraction for
a class composed entirely or mainly from facets. Following the
terminology from
          <xref ref-type="bibr" rid="ref11">Rector (2002)</xref>
          , this abstraction would be useful
mostly for self-standing concepts. For example, we could define the
amino acid alanine using the following defgem statement.
(defgem Alanine
        </p>
        <p>:comment "An amino acid with a single
methyl group as a side-chain."
:facet Neutral Hydrophobic NonPolar</p>
      </sec>
      <sec id="sec-6-2">
        <title>Aliphatic Tiny)</title>
        <p>
          The other amino-acids can be likewise defined as a series of
gems. In fact, the amino acids are so regular, all having the same
five facets, that we use a further syntactic abstract specific to
the amino-acid ontology – a form of pattern that we describe as
localized
          <xref ref-type="bibr" rid="ref13 ref16">(Warrender, 2015)</xref>
          . The gem represents generalised syntax
useful for developing any ontology.
8
        </p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>ON ANNOTATION</title>
      <p>We have previously discussed the relationship between a design
methodology such as normalisation and the use of an upper
ontology. The Tawny-OWL patterns described here are all
orthogonal and agnostic to the choice of an upper ontology or to
none. They do not place their entities in any particular part of the
class hierarchy nor define classes outside of those required for the
domain ontology, although they could be easily extended to do so
should the ontology developer require.</p>
      <p>
        However, we agree with
        <xref ref-type="bibr" rid="ref11">Rector (2002)</xref>
        that the use of patterns
should “made clear” and be explicit within the ontology. For
this reason, all of the patterns described here also make use of
annotations, using annotation properties defined using its own
internal annotation ontology. For example, all entities generated
as a result of a pattern such as deftier are explicitly annotated
as such. This means that the use of these patterns is (informally)
explicit in the OWL serialization. Tawny-OWL actually uses
these annotations internally, for example, to enable the facet
functionality by providing a relationship between the classes and
the appropriate object property. This is a strictly an implementation
detail and could have been achieved without annotations; however,
we believe that it shows the value of having this knowledge explicit
in OWL.
9
      </p>
    </sec>
    <sec id="sec-8">
      <title>DISCUSSION</title>
      <p>In this paper, we describe how we have used Tawny-OWL to provide
higher-level patterns which can be applied to ontology development.
The patterns provide both functionality and syntactic abstraction
over the underlying OWL implementation. In the process, they
enable the easy and accurate construction of ontologies.</p>
      <p>More specifically, we demonstrate two new patterns: the tier and
the facet. The tier is an extension of the existing value partition
pattern and can be used for the generation of many small hierarchies
that can be used as refining properties. The facet borrows from the
library sciences notion of a facetted classification, and is used to
associate a set of classes with a specific set of values. This form of
classification is very common in the web; the majority of web stores,
for example, offer facetted browsing, often with the facets changing
for different subsections of the catalogue.</p>
      <p>Taken together, these two patterns enable a new form of ontology
development, hypernormalisation, which is an extreme form of
normalisation. In this form of normalisation, we do away with
the creation of a tree of self-standing entities and instead rely
on the reasoner to build all the hierarchy. As well as making
the ontologist’s task easier, it makes the characteristic that would
have been used to create the tree of self-standing entities explicit
in the form of a refining characteristic. Here, we have described
the application of this methodology to the exemplar amino-acid
ontology. Of course, it is dangerous to extrapolate to generality from
an exemplar, but we have also started to apply hypernormalisation
to ontologies of other, more real, domains including clouds (in
the meterological sense), cell lines and a reworking of the Gene
Ontology. The tier has been made generic; it does not require, for
example, that all refining types are closed (i.e. all possibilities are
known in advance) nor disjoint.</p>
      <p>
        Clearly, not all forms of ontology will naturally be represented
in a hypernormalised form. For example, the Karyotype
ontology
        <xref ref-type="bibr" rid="ref14 ref15 ref7">(Warrender and Lord, 2013)</xref>
        is far from this form; here, we
define the self-standing concepts and then use reasoning over a set of
defined classes which effectively operate as facets
        <xref ref-type="bibr" rid="ref13 ref16">(Warrender and
Lord, 2015)</xref>
        . However, the popularity of the facetted browsers shows
that is possible to use this form of classification in many areas. We
believe that the introduction of the concept of hypernormalisation
and the implementation of it in Tawny-OWL could have significant
implications for the future development of ontologies.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Dietze</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berardini</surname>
            ,
            <given-names>T. Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Foulger</surname>
            ,
            <given-names>R. E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hill</surname>
            ,
            <given-names>D. P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lomax</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>OsumiSutherland</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roncaglia</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mungall</surname>
            ,
            <given-names>C. J.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>Termgenie - a web application for pattern-based ontology class generation</article-title>
          .
          <source>Journal of Biomedical Semantics</source>
          ,
          <volume>5</volume>
          (
          <issue>1</issue>
          ),
          <fpage>48</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>Egana</given-names>
            <surname>Aranguren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Stevens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            , and
            <surname>Antezana</surname>
          </string-name>
          ,
          <string-name>
            <surname>E.</surname>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>Transforming the axiomisation of ontologies: The ontology pre-processor language</article-title>
          .
          <source>Nature Precedings.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Grenon</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Goldberg</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>Biodynamic ontology: applying BFO in the biomedical domain</article-title>
          .
          <source>Stud Health Technol Inform</source>
          ,
          <volume>102</volume>
          ,
          <fpage>20</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Guarino</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Welty</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2002</year>
          ).
          <article-title>Evaluating ontological decisions with ontoclean</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>45</volume>
          (
          <issue>2</issue>
          ),
          <fpage>61</fpage>
          -
          <lpage>65</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Bechhofer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>The OWL API: A Java API for OWL Ontologies</article-title>
          .
          <source>Semantic Web Journal</source>
          ,
          <volume>2</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Jupp</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iannone</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Owen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schanstra</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolstencroft</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Populous: a tool for building owl ontologies from templates</article-title>
          .
          <source>BMC Bioinformatics</source>
          ,
          <volume>13</volume>
          (
          <issue>Suppl 1</issue>
          ),
          <fpage>S5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Lord</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>The Semantic Web takes Wing: Programming Ontologies with TawnyOWL</article-title>
          .
          <source>OWLED</source>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Lord</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>Manchester syntax is a bit backward</article-title>
          . http://www.russet.org. uk/blog/2985.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Ranganathan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>1933</year>
          ). Colon Classification.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Rector</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2005</year>
          ).
          <article-title>Representing specified values in owl: “value partitions” and “value sets”</article-title>
          . W3C Working Group Note.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Rector</surname>
            ,
            <given-names>A. L.</given-names>
          </string-name>
          (
          <year>2002</year>
          ).
          <article-title>Normalisation of ontology implementations: Towards modularity, re-use, and maintainability</article-title>
          .
          <source>Proceedings Workshop on Ontologies for Multiagent Systems</source>
          (
          <article-title>OMAS) in conjunction with European Knowledge Acquisition Workshops</article-title>
          . Siguenza, Spain.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          and Lord,
          <string-name>
            <surname>P.</surname>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Semantic publishing of knowledge about amino acids</article-title>
          . http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>903</volume>
          /paper-06.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Warrender</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2015</year>
          ).
          <article-title>The Consistent Representation of Scientific Knowledge: Investigations into the Ontology of Karyotypes and Mitochondria</article-title>
          .
          <source>Ph.D. thesis</source>
          , School of Computing Science, Newcastle University.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Warrender</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Lord</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>A pattern-driven approach to biomedical ontology engineering</article-title>
          .
          <source>SWAT4LS</source>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <string-name>
            <surname>Warrender</surname>
            ,
            <given-names>J. D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Lord</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>The Karyotype Ontology: a computational representation for human cytogenetic patterns</article-title>
          .
          <source>Bio-Ontologies</source>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <surname>Warrender</surname>
            ,
            <given-names>J. D.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Lord</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2015</year>
          ).
          <article-title>How, What and Why to test an ontology</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <surname>Wroe</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goble</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Ashburner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2003</year>
          ).
          <article-title>A methodology to migrate the gene ontology to a description logic environment using daml+oil</article-title>
          .
          <source>Pacific Symposium on Biocomputing.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>