<?xml version='1.0'?>
<!DOCTYPE art SYSTEM 'http://www.biomedcentral.com/xml/article.dtd'>
<art>
   <ui>1471-2105-8-57</ui>
   <ji>1471-2105</ji>
   <fm>
      <dochead>Commentary</dochead>
      <bibl>
         <title>
            <p>Understanding and using the meaning of statements in a bio-ontology: recasting the Gene Ontology in OWL</p>
         </title>
         <aug>
            <au id="A1">
               <snm>Aranguren</snm>
               <mnm>Ega&#241;a</mnm>
               <fnm>Mikel</fnm>
               <insr iid="I1"/>
               <email>mikel.eganaaranguren@cs.man.ac.uk</email>
            </au>
            <au id="A2">
               <snm>Bechhofer</snm>
               <fnm>Sean</fnm>
               <insr iid="I1"/>
               <email>sean.bechhofer@manchester.ac.uk</email>
            </au>
            <au id="A3">
               <snm>Lord</snm>
               <fnm>Phillip</fnm>
               <insr iid="I2"/>
               <email>phillip.lord@newcastle.ac.uk</email>
            </au>
            <au id="A4">
               <snm>Sattler</snm>
               <fnm>Ulrike</fnm>
               <insr iid="I1"/>
               <email>sattler@cs.man.ac.uk</email>
            </au>
            <au id="A5" ca="yes">
               <snm>Stevens</snm>
               <fnm>Robert</fnm>
               <insr iid="I1"/>
               <email>robert.stevens@manchester.ac.uk</email>
            </au>
         </aug>
         <insg>
            <ins id="I1">
               <p>School of Computer Science, University of Manchester, Manchester, UK</p>
            </ins>
            <ins id="I2">
               <p>School of Computing Science, University of Newcastle, Newcastle, UK</p>
            </ins>
         </insg>
         <source>BMC Bioinformatics</source>
         <issn>1471-2105</issn>
         <pubdate>2007</pubdate>
         <volume>8</volume>
         <issue>1</issue>
         <fpage>57</fpage>
         <url>http://www.biomedcentral.com/1471-2105/8/57</url>
         <xrefbib>
            <pubidlist>
               <pubid idtype="pmpid">17311682</pubid>
               <pubid idtype="doi">10.1186/1471-2105-8-57</pubid>
            </pubidlist>
         </xrefbib>
      </bibl>
      <history>
         <rec>
            <date>
               <day>17</day>
               <month>10</month>
               <year>2006</year>
            </date>
         </rec>
         <acc>
            <date>
               <day>20</day>
               <month>2</month>
               <year>2007</year>
            </date>
         </acc>
         <pub>
            <date>
               <day>20</day>
               <month>2</month>
               <year>2007</year>
            </date>
         </pub>
      </history>
      <cpyrt>
         <year>2007</year>
         <collab>Aranguren et al; licensee BioMed Central Ltd.</collab>
         <note>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<url>http://creativecommons.org/licenses/by/2.0</url>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</note>
      </cpyrt>
      <abs>
         <sec>
            <st>
               <p>Abstract</p>
            </st>
            <sec>
               <st>
                  <p/>
               </st>
               <p>The bio-ontology community falls into two camps: first we have biology domain experts, who actually hold the knowledge we wish to capture in ontologies; second, we have ontology specialists, who hold knowledge about techniques and best practice on ontology development. In the bio-ontology domain, these two camps have often come into conflict, especially where pragmatism comes into conflict with perceived best practice. One of these areas is the insistence of computer scientists on a well-defined semantic basis for the Knowledge Representation language being used. In this article, we will first describe why this community is so insistent. Second, we will illustrate this by examining the semantics of the Web   Ontology Language and the semantics placed on the Directed Acyclic Graph   as used by the Gene Ontology. Finally we will reconcile the two representations, including the broader Open Biomedical Ontologies format. The ability to exchange between the two representations means that we can capitalise on the features of both languages. Such utility can only arise by the understanding of the semantics of the languages being used. By this illustration of the usefulness of a clear, well-defined language semantics, we wish to promote a wider understanding of the computer science perspective amongst potential users within the biological community.</p>
            </sec>
         </sec>
      </abs>
   </fm>
   <bdy>
      <sec>
         <st>
            <p>1 Background</p>
         </st>
         <p>In this paper, we explain the role of a Knowledge Representation (KR) language's semantics. To illustrate the utility of language semantics we will use it to explore the reconciliation of the representations used for the Gene Ontology (GO) <abbrgrp><abbr bid="B1">1</abbr></abbrgrp> and that used for the ontologies represented in the W3C recommendation Web Ontology Language (OWL <abbrgrp><abbr bid="B2">2</abbr></abbrgrp>). A language's semantics is often a great concern to computer scientists, a concern that is sometimes lost on biologists. The goal of this paper is, therefore, to explain the role of language semantics to a community outside computer science (this albeit anecdotal evidence is built up over many years of teaching and tutorials in this domain between the two disciplines). In the text of this document <b>Boldface</b> font is used to refer to objects and logical keywords within an ontology and <b><it>Italics Boldface </it></b>font for terms that have a definition available in the glossary (see Additional file <supplr sid="S1">1</supplr>).</p>
         <suppl id="S1">
            <title>
               <p>Additional File 1</p>
            </title>
            <text>
               <p>"Glossary". list of computer science terms used in this article, with their definitions.</p>
            </text>
            <file name="1471-2105-8-57-S1.pdf">
               <p>Click here for file</p>
            </file>
         </suppl>
         <p>Different <b><it>knowledge representation languages </it></b>provide different means to make statements about the knowledge to be captured in different ways. The semantics of these languages tell both humans and computers how to interpret statements made in those languages. Different languages have varying expressivity and computational properties, hence the corresponding tools can offer different querying and <b><it>reasoning </it></b>mechanisms; consequently there is often a need to exchange between languages to take advantage of their characteristics. For example, the Web Ontology Language OWL-DL <abbrgrp><abbr bid="B3">3</abbr></abbrgrp> comes with rather high expressivity and some powerful reasoning services. As a consequence, we can annotate data using terms (and expressions built from these terms) whose meaning is defined in some OWL-DL <b><it>knowledge base</it></b>, usually called an "ontology", and then use a software application called a reasoner to query that data. The reasoner will take into account the definitions of the terms when answering queries, thereby providing flexible access to that data. When translating a knowledge base from one language to another, we have to make sure that the knowledge captured in statements in one language is changed as little as possible when transforming them into statements in another language. Hence, the semantics of one language needs to be reconciled with the semantics of the other.</p>
         <p>The GO has become the <it>de facto </it>standard for describing the principal attributes (the molecular function, biological process, and cellular component) of knowledge about gene products across many databases <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B4">4</abbr></abbrgrp>. It succeeds in the major aim of an ontology in providing a common, shared understanding of the concepts used to describe those attributes&#8211;for humans. It does this by providing terms used to label those concepts as well as natural language definitions of those terms.</p>
         <p>GO is part of an umbrella project that encompasses many other bio-ontologies called Open Biomedical Ontologies (OBO <abbrgrp><abbr bid="B5">5</abbr></abbrgrp>). GO uses a knowledge representation language developed in-house&#8211;based on the Directed Acyclic Graph (DAG) <abbrgrp><abbr bid="B4">4</abbr></abbrgrp>. The DAG is a common-place representation across computer science and other disciplines. What the edges and nodes in the DAG mean, their semantics, is determined by the specific user community. In some graphs, for example, a node represents a railway station, an atom, <it>etc</it>. As we will see in Section 4 there is a particular meaning to the edges and nodes used in representing GO, which have been determined by the GO Consortium. The GO's DAG is encoded using a syntax also developed by this group. The DAG has the tremendous advantage of simplicity and this has been a factor in enabling the Gene Ontology to develop to its current pre-dominant status <abbrgrp><abbr bid="B6">6</abbr></abbrgrp>.</p>
         <p>GO's DAG is available in different formats, including MySQL tables, XML and OWL <abbrgrp><abbr bid="B7">7</abbr></abbrgrp>. The most commonly used format is, however, the OBO file format, which is shared by most of the other OBO bio-ontologies <abbrgrp><abbr bid="B8">8</abbr></abbrgrp>.</p>
         <p>The OBO file format not only enforces the syntax the OBO files should have, it also provides a set of elements that can be used to define semantics such as <b>domain</b>, <b>range</b>, <b>is_symmetric</b>, <b>is_cyclic</b>, <b>is_transitive</b>, <it>etc</it>. GO's DAG can be represented in the OBO file format, making use of a subset from all the possible elements available. Other bio-ontologies make use of other elements, and all those bio-ontologies (GO and other OBO bio-ontologies) are compliant with the OBO file format.</p>
         <p>The OBO site states that submitted ontologies can be presented in the OBO file format (including GO's DAG) or in OWL. Being a collection of bio-ontologies, it would be useful to be able to translate ontologies between the two formats. Indeed, this has already been attempted in both the current version of DAG-Edit <abbrgrp><abbr bid="B9">9</abbr></abbrgrp> and its successor, OBO-Edit <abbrgrp><abbr bid="B10">10</abbr></abbrgrp>, the COBrA ontology editor <abbrgrp><abbr bid="B11">11</abbr></abbrgrp> and as an initial step in the Gene Ontology Next Generation (GONG) project <abbrgrp><abbr bid="B12">12</abbr><abbr bid="B13">13</abbr></abbrgrp>.</p>
         <p>The primary purpose in this paper is not to present a translation of the DAG and OBO formats into OWL, but to show how such a translation is achieved. Such translation has already been done by the Gene Ontology consortium themselves <abbrgrp><abbr bid="B14">14</abbr></abbrgrp>. We use the case study here as an illustration of the use of a language's semantics to achieve the translation and in doing so show how a strict semantics is very important. In doing this, in Section 2 we explain why computer scientists, in particular, like to have a well-defined semantics in their knowledge representation languages. In Sections 3 and 4 we outline the semantics of GO's DAG representation and that of OWL. In Section 5, we attempt to reconcile the two representations. Section 7 describes the implementation of this translation.</p>
      </sec>
      <sec>
         <st>
            <p>2 Why do computer scientists care so much about semantics?</p>
         </st>
         <p>The knowledge representation community within computer science has the aim of representing knowledge in a form both understandable by humans and one that is computationally amenable. Computers, of course, do not have the same facility to "understand" knowledge captured in an ontology as do the human users of that ontology. To a computer, the term labeling a concept is not comprehensible. For illustration (see Figure <figr fid="F1">1</figr>) we will use a deliberately simplistic ontology that is by no means biological. For this article a toy example is able to convey the point of semantics more easily than a "true" biological example that would obscure the message. Taking the example in Figure <figr fid="F1">1</figr>, a human might read the information in this representation as saying that "an instance of <b>Person</b> is either a <b>Man</b> or a <b>Woman</b>, but not both at the same time"(at least not in this view of the world!). In contrast, a computer might not have such an understanding. A human brings their world experience and their understanding of terms such as "man" and "woman" to understanding the representation&#8211;something a computer does not do.</p>
         <fig id="F1">
            <title>
               <p>Figure 1</p>
            </title>
            <caption>
               <p>An example toy ontology of Person</p>
            </caption>
            <text>
               <p>An example toy ontology of Person. The ontology takes a very simplified view of biological reproduction, for the sake of clarity.</p>
            </text>
            <graphic file="1471-2105-8-57-1"/>
         </fig>
         <p>The need to capture knowledge with high-fidelity and interpret it unambiguously is enabled by having a representation language with well-defined semantics. In the same way that a C programming language compiler must unambiguously "understand" what each of the language components means in terms of constructing a programme that runs on a particular machine, so must a computer understand what each of the statements in the description of some knowledge represents. This is not the <it>deeper meaning </it>of the software (such as typesetting this document according to standard publishing principles) or what, for instance, an ontology is stating about biology. What is unambiguously interpreted is the relationship between the symbols being used. The (computer's) "understanding" is determined by the semantics of the language&#8211;be it a programming language or a knowledge representation language. As we will see below, just as a compiler needs to know exactly what a particular programming construct means, though not the intention of the programmer, a computer needs to be able to interpret what the "circles and arrows" mean in Figure <figr fid="F1">1</figr>.</p>
         <p>Figure <figr fid="F1">1</figr> shows, on its right hand side, a simple ontology of <b>Person</b>, with two child classes of <b>Man</b> and <b>Woman</b>. As human users we understand, or believe we understand, what is being represented in such an ontology; "there are two kinds of <b>Person</b>, namely <b>Man</b> and <b>Woman</b>". We can, however, ask several supplementary questions about this ontology:</p>
         <p>&#8226; Are all instances of <b>Man</b> also instances of <b>Person</b>?</p>
         <p>&#8226; Are <b>Man</b> and <b>Woman</b> the only kinds of <b>Person</b> that exist?</p>
         <p>&#8226; Is it possible for an instance of <b>Person</b> to be both a <b>Man</b> and a <b>Woman</b>?</p>
         <p>Now consider the left part of Figure <figr fid="F1">1</figr> where we say that a <b>Person</b> has <b>Gonads</b> and that a <b>Man</b> has <b>Testis</b>. Again, we might ask ourselves several additional questions:</p>
         <p>&#8226; How many <b>Testis</b> does a <b>Man</b> have?</p>
         <p>&#8226; Can a <b>Man</b> only have <b>Testis</b> or may he have other parts?</p>
         <p>&#8226; Does having a <b>Testis</b> make an instance of <b>Person</b> a <b>Man</b>?</p>
         <p>&#8226; Are <b>Testis</b> the only gonads a <b>Man</b> can have?</p>
         <p>&#8226; Do all <b>Man</b> have <b>Testis</b>?</p>
         <p>&#8226; Are all <b>Testis</b> parts of <b>Man</b>?</p>
         <p>&#8226; May I say anything more about the parts that a <b>Man</b> has?</p>
         <p>Again, as human users of the ontology shown in Figure <figr fid="F1">1</figr>, we may understand, deduce, guess, or know the answers to these questions, or we may not; it is certain, however, that the computer will not do so. It is in the semantics of the knowledge representation language that the answers to such questions can be couched. It is part of the semantics of a language that says whether two children of a concept are overlapping, that is, is it possible for an instance of <b>Person</b> to be both a <b>Man</b> and a <b>Woman</b>. For a computer to know both the answer to this and that the only possible kinds of <b>Person</b> are <b>Man</b> and <b>Woman</b>, this has to either follow from the semantics of "<b>is-a</b> arrows" of our formalism, or it would have to be explicitly stated. Remember that the labels are just symbols; the computer does not understand those symbols, but the semantics of the language specifies, for instance, that we have symbols for class names (such as <b>Man</b> and <b>Testis</b>), that we have symbols for property names (such as <b>has-part</b>), and that the <b>has-part</b>-labelled arrow from <b>Man</b> to <b>Testis</b> means that each instance of the class called <b>Man</b> is <b>has-part</b>-related to at least one instance of the class called <b>Testis</b>.</p>
         <p>Returning to human users, the semantics of a programming language tells us how a computer will interpret our software, and thus enables us to write software that does what we want it to do. Similarly, the semantics of a knowledge representation language tells us how a computer, a reasoner, or another human should understand the statements in our knowledge base&#8211;and a precise semantics tells us this in an unambiguous way.</p>
         <p>The semantics might enable a human to interpret a statement as "each and every <b>Man</b> has at least one <b>Testis</b>", as there is no other interpretation possible; he or she can also bring their world knowledge to decide whether this is true. A user might believe they understand what is represented in the ontology shown in Figure <figr fid="F1">1</figr>, but dangerous assumptions might be made when doing so and this is where ambiguity can occur. If the knowledge representation language has a precise semantics, then the knowledge captured in the ontology expressed in that language can be decoded with precision; that is, we can interpret exactly what each statement in a language means. Precision is vital for humans since it enables them to agree on the meaning of a statement, and for the design of software to take into account a knowledge base since it enables the comparison of what the software actually does with what it is supposed to do <it>according to the semantics </it>of the underlying knowledge representation language. For example, a precise semantics allows us to make statements about the <b><it>soundness </it></b>and <b><it>completeness </it></b>of a query answering tool: does it retrieve all and only those answers that <it>should </it>be retrieved according to the semantics? This can mean, however, that we need to make an effort to understand the semantics <abbrgrp><abbr bid="B15">15</abbr></abbrgrp>.</p>
      </sec>
      <sec>
         <st>
            <p>3 OWL</p>
         </st>
         <p>OWL-DL <abbrgrp><abbr bid="B3">3</abbr></abbrgrp> is an ontology language based on <b><it>description logics </it></b>(DLs), which are a family of logic-based knowledge representation formalisms describing "objects", "classes" and the "relationships" between them <abbrgrp><abbr bid="B16">16</abbr></abbrgrp>. Most DLs are fragments of standard <b><it>first order logic</it></b>. Originally, they were designed to give a unified logical basis to various well-known traditions of knowledge representation like frame-based systems and semantic networks <abbrgrp><abbr bid="B17">17</abbr></abbrgrp>; they have found various applications in conceptual modelling and as a logical underpinning of ontology languages <abbrgrp><abbr bid="B16">16</abbr></abbrgrp>. OWL-DL is based on an expressive DL, <it>i. e., </it>it provides a wealth of constructors to describe complex class expressions from atomic classes and relationships. In this section, we will only use a small portion of OWL-DL's expressiveness to highlight its core features.</p>
         <p>The semantics of OWL-DL is best understood when talking about "objects" that are "instances" of "classes", and that are related to other objects <it>via </it>"relations".</p>
         <p>An object can be an instance of a class, and a class can be a sub-class of another class. For example, the object <b>Robert</b> is an instance of the class <b>Man</b> which, in turn, is a sub-class of <b>Person</b>. The meaning of the sub-class relationship is that all instances of the sub-class, <b>Man</b>, are also instances of its super class(es), <b>Person</b>. In OWL-DL, to describe a class, we can describe it in terms of other classes (<it>e.g., </it>saying that <b>Man</b> are "<b>Person</b> and not <b>Woman</b>") and of properties of its instances.</p>
         <p>In Section 2, we have informally described an ontology with classes <b>Man</b>, <b>Woman</b>, <b>Person</b>, and others. In this section, we will formalize some of these classes in OWL-DL. We start by fixing the relationship between these three classes. First, we declare that <b>Man</b> and <b>Woman</b> are "disjoint"; that is, it is not possible for an object to be an instance of both classes; this is expressed in the first statement of Figure <figr fid="F2">2</figr>. Similarly, we have to decide whether it is possible for an instance of <b>Person</b> to be neither an instance of <b>Woman</b> nor of <b>Man</b>. Assuming that this is not the case, we add the second statement of Figure <figr fid="F2">2</figr>. Together, these four statements imply that every person is either a man or a woman, but not both.</p>
         <fig id="F2">
            <title>
               <p>Figure 2</p>
            </title>
            <caption>
               <p>Man and Woman in OWL</p>
            </caption>
            <text>
               <p>Man and Woman in OWL. Description and paraphrase provided.</p>
            </text>
            <graphic file="1471-2105-8-57-2"/>
         </fig>
         <p>Next, we make use of OWL-DL's ability to describe a class by describing its superclasses and how its instances are related to other objects. For example, the definition of the class <b>Man</b> in Figure <figr fid="F2">2</figr> states that an instance of <b>Man</b> is a (instance of) <b>Person</b> which has an instance of <b>Testis</b> related to it <it>via </it>the <b>has-part</b> property. As this statement only says something about the existence of a relationship to another object, it is called an "existential" restriction&#8211;which is expressed in OWL-DL using the <b>someValuesFrom</b> keyword. This asserts only that an instance of <b>Man</b> might have several parts that are testis, and other parts, as well&#8211;which is why we use the <it>"amongst other things" </it>in the paraphrase. For example, we have left it open in our description of <b>Man</b> whether a <b>Man</b> has ovaries, and so, with respect to the above definition of <b>Man</b>, a <b>Man</b> may or may not have ovaries. Additionally, to make this more precise, OWL-DL also allows "universal" restrictions to be made: <it>e.g., </it>in the definition of <b>Woman</b>, we say that an instance of <b>Woman</b> is related <it>via </it>the relation <b>has-part</b><it> only </it>to instances of the complement of <b>Testis</b>, <it>i.e., </it>no part of a woman can be an instance of <b>Testis</b>. This is expressed using the <b>allValuesFrom</b> keyword and <b>complementOf</b>, another expressive means which corresponds to logical negation.</p>
         <p>In the definitions of the classes <b>Man</b> and <b>Woman</b>, we have used the keyword <b>complete</b> to indicate that the following expressions provide necessary and sufficient conditions for an object to be an instance of this class. That is, if we know that <b>Robert</b> is a <b>Man</b>, we also know that he has a part that is a testis and, if we find a person that has a part which is a testis, then this person is an instance of <b>Man</b>. This gives rise to the use of the <it>"any" </it>in the paraphrasing used in Figure <figr fid="F2">2</figr>. Replacing <b>complete</b> with <b>partial</b> means that only the first conclusion can be drawn. For example, Figure <figr fid="F3">3</figr> contains a partial definition of <b>Eunuch</b> as those Persons that do <it>not </it>have <b>Testis</b>; so every <b>Eunuch</b> has no parts which are <b>Testis</b>, but not everyone with no <b>Testis</b> is a <b>Eunuch</b>.</p>
         <fig id="F3">
            <title>
               <p>Figure 3</p>
            </title>
            <caption>
               <p>Eunuch in OWL</p>
            </caption>
            <text>
               <p>Eunuch in OWL. Description and paraphrase provided.</p>
            </text>
            <graphic file="1471-2105-8-57-3"/>
         </fig>
         <p>In all of these examples, we have only stated restrictions concerning <b>Man</b> and <b>Woman</b> and the objects to which they are related by the <b>has-part</b> relation. We have not restricted any other relationships we might choose to describe, such as <b>has-mother</b>, nor have we said anything about instances of <b>Testis</b> apart from the fact that they can be parts of a <b>Man</b>. After all, other species' male instances also have <b>Testis</b>, <it>i.e., </it>according to our ontology so far, an instance of <b>Testis</b> can be part of other objects or of nothing at all.</p>
         <p>In order to avoid such "homeless" testis, we can add a restriction which states that an instance of <b>Testis</b> is a part of a male animal. For this to have the desired effect, we also need to state that <b>has-part</b> is indeed the inverse of the relation <b>part-of</b>. Both statements are found in Figure <figr fid="F4">4</figr>.</p>
         <fig id="F4">
            <title>
               <p>Figure 4</p>
            </title>
            <caption>
               <p>Testis in OWL</p>
            </caption>
            <text>
               <p>Testis in OWL. Description and paraphrase provided.</p>
            </text>
            <graphic file="1471-2105-8-57-4"/>
         </fig>
         <p>Due to its description logic underpinning, OWL-DL ontologies can be submitted to a DL reasoner which provides reasoning services. Most importantly, a reasoner can decide the consistency of each class defined in the ontology and it can compute the implicit class hierarchy. For example, given the statements made so far, the reasoner infers that a <b>Eunuch</b> is, in fact, a subclass of <b>Woman</b>. This seems a little counter-intuitive, so we might also assert that a <b>Eunuch</b> is a subclass of <b>Man</b>. The reasoner will then tell us that <b>Eunuch</b> is inconsistent: there can be no instances of it. In this case, it is probably our definition of <b>Man</b> that is a poor model of reality. The inconsistency of the <b>Eunuch</b> forces us to re-examine this model. The precise and explicit nature of models in OWL-DL allows us to check the knowledge we have captured as OWL-DL statements and have them to be interpreted correctly.</p>
         <p>For a complete description of OWL-DL, we refer the reader elsewhere <abbrgrp><abbr bid="B3">3</abbr></abbrgrp>. Here, we have only used a small part of OWL-DL's expressiveness. In addition to using a relation in both directions (<it>e.g., </it>we have used the inverse direction of <b>has-part</b><it> via </it><b>part-of</b>), OWL-DL also enables us to state that a relation such as <b>part-of</b> is transitive (<it>e.g., </it>making a <b>SemiNiferousTubule</b> part of a <b>Testis</b> also makes it part of a <b>Man</b>) and to restrict the number of objects to which an instance of a class is related by a specific relationship (<it>e.g., </it>restricting the number of gonads a <b>Person</b> has to 2). It should be enough, however, to indicate that the well-defined semantics of OWL-DL enables both the author and a computer to "understand" precisely what has been stated, and enable software such as a reasoner to deduce implicit knowledge from such representations <abbrgrp><abbr bid="B18">18</abbr><abbr bid="B19">19</abbr></abbrgrp>.</p>
      </sec>
      <sec>
         <st>
            <p>4 GO and DAG</p>
         </st>
         <p>The aim of this section is to elucidate the semantics of GO's encoding and not to examine the correctness of the biology captured in that encoding, which has been done elsewhere <abbrgrp><abbr bid="B20">20</abbr></abbrgrp>. There is need, however, to sometimes look at the biology in order to understand the encoding. In contrast to OWL, the semantics of the representation used by the GO is not based on a logical formalism. Our understanding of the GO DAG's semantics comes from its description in English <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>, from consultation with members of the Gene Ontology Consortium, and from inferences made from the ontology itself.</p>
         <p>The GO is formalised as a Directed Acyclic Graph (DAG); see Figure <figr fid="F5">5</figr> for an example of a DAG. More precisely, a "directed graph" is a structure with "nodes" and "edges", the latter being ordered pairs of nodes. In our case, both nodes and edges are "labelled": nodes with the term denoting the class they stand for, and edges with the kind of relationship that relates the corresponding classes. In GO's DAG, edge labels are restricted to <b>is-a</b> and <b>part-of</b>. Such a graph is acyclic, <it>i.e., </it>a DAG, if there is no path <it>via </it>edges that relates a node with itself&#8211;regardless of the edge's label, but using them only in a "forward" way. The graph in Figure <figr fid="F5">5</figr> is a DAG, for example. In GO, the term labelling a node refers to this node and all of its children <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>.</p>
         <fig id="F5">
            <title>
               <p>Figure 5</p>
            </title>
            <caption>
               <p>A Gene Ontology Directed Acyclic Graph (DAG)</p>
            </caption>
            <text>
               <p>A Gene Ontology Directed Acyclic Graph (DAG). The DAG has both is-a and part-of relationships.</p>
            </text>
            <graphic file="1471-2105-8-57-5"/>
         </fig>
         <p>In addition to this structured knowledge, the GO DAG contains additional information within nodes: a specific GO identifier for each node, as well as "exact", "broad", "narrow" and "related" synonyms for the term labelling a node, and possibly a definition of the meaning of the term. The latter are given in natural language, <it>i.e., </it>they are free text descriptions that "define" what a term means. As a consequence, they may come with all the ambiguities of natural language, and we can sometimes not distinguish, for example, between a necessary condition and one that is necessary and sufficient. GO definitions are used by annotators and GO curators alike when using GO, and are not intended to be used by an automated reasoning tool to draw new inferences. The format for the GO DAG also allows for some provenance information, such as author, source, <it>etc. </it>but this detail is beyond the scope of this article, where the emphasis is on the main ontological components of the representation.</p>
         <p>Next, we discuss what kind of statements can be made in GO's DAG representation. Firstly, GO uses two relationships, <b>is-a</b> and <b>part-of</b>. Figure <figr fid="F5">5</figr> shows an example of a GO DAG with both kinds of relationships. The <b>is-a</b> relationship points from a child (more specialised) to a parent (more generalised) term <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>. We note that, if a parent has more than one child, there is no way to distinguish between possibly overlapping (<it>e.g., </it><b>Carnivores</b> and <b>Mammal</b>) and disjoint (<it>e.g., </it><b>Man</b> and <b>Woman</b>) classes <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>. When interpreting the GO documentation, care should be taken because the <b>part-of</b> relationship, in GO's usage, talks about parts and parents, not <it>parts </it>and <it>wholes</it>, as is ontologically conventional <abbrgrp><abbr bid="B22">22</abbr></abbrgrp>. In Figure <figr fid="F5">5</figr>, we can see what some <abbrgrp><abbr bid="B13">13</abbr><abbr bid="B23">23</abbr></abbrgrp> have called "orphan" nodes, <it>i.e., </it>a node that is <b>part-of</b> another node, but is not a kind of any node. Conventionally, this would be a child with no parent, <it>i.e., </it>an orphan, and the GO curators are undertaking an effort to remove such orphans since they indicate an imprecise modeling (personal communication with Amelia Ireland from the Gene Ontology Consortium).</p>
         <p>There are (at least) four readings of a <b>part-of</b> relationship in GO's DAG <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>. Considering the <b>part-of</b> edge from a node labelled <b>P</b> to a node labelled <b>W</b>, we have the following possibilities:</p>
         <p>1. The <b>part-of</b> relationship makes no assumption of the existence of the relationship between the nodes in either direction. Any <b>P</b> may or may not be part of a <b>W</b> and any <b>W</b> may or may not have a part that is a <b>P</b>. An example is <b>Person</b> and <b>Testis</b>. Note that this need not contradict the directed nature of the arcs. The <b>part-of</b> is directed, but these semantics tell us how it is to be interpreted, particularly with respect to whether such a relationship exists or not.</p>
         <p>2. Wherever a <b>P</b> exists, it is as part of a <b>W</b>, <it>e.g., </it><b>Nucleus</b> and <b>Cell</b>.</p>
         <p>3. Wherever a <b>W</b> exists, it has a part that is a <b>P</b>, <it>e.g., </it><b>AvianRedBloodCell</b> and <b>Nucleus</b>.</p>
         <p>4. Wherever a <b>P</b> exists, it is a part of a <b>W</b> and wherever a <b>W</b> exists, it has a part that is a <b>P</b>. This reading is simply the conjunction of readings 2 and 3. An example of this is <b>NuclearMembrane</b> and <b>Nucleus</b>.</p>
         <p>In the GO documentation <abbrgrp><abbr bid="B21">21</abbr></abbrgrp> the "true path rule" states that "the pathway from a child term all the way up to its top-level parent(s) must always be true". This should be true for both kinds of relationship in GO. For the <b>is-a</b> relationship, this means that an individual labelled as <b>Man</b> could also legitimately be labelled as <b>Person</b> or <b>Animal</b>. So, a gene product labelled as a <b>photoreceptor activity</b> is also a kind of <b>signal transducer activity</b> and finally, a <b>molecular function</b>. Thus, the "true path rule", when working along <b>is-a</b> relationships implies that we read these relationships in a <b><it>monotonic </it></b>way, <it>i.e., </it>every instance of a class is also an instance of its superclasses, without exceptions.</p>
         <p>For the <b>part-of</b> relationship, this has several implications. Firstly, it means that this relation is assumed to be transitive, <it>e.g., </it>if a gene is part of a nucleus which, in turn, is part of a cell, then this gene is part of this cell. This assumption is widely accepted <abbrgrp><abbr bid="B24">24</abbr></abbrgrp>. Secondly, this means that we have to choose one of the readings 2 or 4 mentioned above. The GO editing style guide mentions that the majority of <b>part-of</b> links in GO conform to reading 2; readings 1 and 3 are not used as they would violate the true path rule in GO <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>.</p>
         <p>If we restrict our attention to reading 2, then it is not difficult to verify that the true path rule is even correct when we combine both kinds of relationship in one path: a path using both <b>is-a</b> and <b>part-of</b> becomes indeed <b>part-of</b>. The GO DAG editing style guide warns explicitly against employing a reading different from the second one since such an "abuse" might yield unwanted consequences <it>via </it>the true path rule, and suggests that the best strategy is to re-structure GO with new nodes and relationships so that only reading 2 is employed and the true path rule can be employed correctly. As a consequence, while we might have stated that a <b>Testis</b> is part of <b>Man</b>, we cannot say anything about a <b>Man</b> having part <b>Testis</b> since this would involve reading 3.</p>
      </sec>
      <sec>
         <st>
            <p>5 Reconciling the two representations</p>
         </st>
         <p>In this section we reconcile the semantics of OWL-DL and GO's DAG: we analyse how one can be translated to the other and where, in that process, there could be problems. To perform such a translation it is necessary to understand the semantics of source and target languages and the aim is, of course, to say the same in each representation.</p>
         <p>We start by assessing a technical issue that does not affect the semantics, but is important: naming conventions. OWL-DL has got its own naming conventions: non alpha-numeric characters or white spaces are not allowed in the names of the classes, only underscores and alpha-numeric characters. This presents a problem since many GO term names include non-alphanumeric characters. A solution to this problem is to translate any non-alphanumeric character into a string that spells out the disallowed: for example <b>(-)</b>-<b>borneol dehydrogenase activity</b> in GO would become <b>PAR_MINUS_PAR_MINUS_borneol_dehydrogenase_activity</b> in OWL. There is a choice to be made as to whether the term or GO identifier become the class label. The id is the primary identifier (GO:0047503), but the term is the more readable. Whatever the decision, one can be represented using the class label and one using an assertion on an "annotation property": in OWL-DL, we can declare a property to be an annotation property, and then use such a property to attach information to classes&#8211;without them being taken into account by an OWL-DL reasoner. That is, assertions on annotation properties act as <b><it>comments </it></b>from a DL point of view, yet they can be displayed to the biologist as a piece of information on this class&#8211;just as in GO. The most suitable annotation property for labelling a term with its id is <b>rdfs:label</b>, which is already included in OWL.</p>
         <p>We cannot translate the natural language definitions associated with a term into OWL-DL axioms. These definitions might be expressible in OWL, yet we cannot automatically generate the correct OWL-DL expressions from a piece of English text. We can, however, capture them using another assertion on an annotation property.</p>
         <p>We can capture the synonyms and other alternative labels given for a term in a variety of ways:</p>
         <p>1. As assertions on an annotation property;</p>
         <p>2. Using equivalence, subclass and superclass axioms;</p>
         <p>3. A mixture of approaches one and two.</p>
         <p>In the first approach, we can use a series of annotation properties such as exact synonym, broad synonym, narrow synonym and related synonym.</p>
         <p>In the second approach, if <it>S</it><sub>1</sub>,...,<it>S</it><sub><it>n </it></sub>are the exact synonyms given for a term <it>T</it>, then we translate this into an equivalence axiom EquivalentClasses(<it>T S</it><sub>1</sub>...<it>S</it><sub><it>n</it></sub>). Thus, each instance of <it>S</it><sub><it>i </it></sub>is also an instance of <it>T </it>and each <it>S</it><sub><it>j </it></sub>and, <it>vice versa</it>, each instance of <it>T </it>is also an instance of each <it>S</it><sub><it>i</it></sub>.</p>
         <p>In OWL-DL, an equivalence axiom <monospace>EquivalentClasses</monospace>(<it>T S</it>) means that the classes <it>T</it>, <it>S </it>involved have the same extent of instances. It can further be argued that they are therefore the same class. If the synonyms are exact, this is logically correct, though the ontologist might be presented with a plethora of classes in the user interface. It can be argued, however, that for the user this is simply a presentational issue, and that the user interface should collapse equivalent classes. Some methodologies, such as <abbrgrp><abbr bid="B25">25</abbr></abbrgrp>, suggest that a minimal number of classes should be used in an ontology. Use of equivalent classes does not break such an edict if we interpret classes with the same extent of objects as the same class (which is, after all, what is being said). It should be remembered, as is the message all through this article, that the reader should be wary of conflating presentation and the real semantics of a statement. Just as assumptions can be made about the presentation in Figure <figr fid="F1">1</figr>, so can assumptions be made about syntax showing "multiple" classes in an OWL-DL file.</p>
         <p>A more significant argument is that this solution conflates a class level argument with a lexical argument. It should be remembered that labels on classes can change, while the class itself is unaltered. One only has to think, for instance, of the different French, German and English words for <b>Leg</b> that all refer to the same class of instances. Also, the equivalence axiom approach breaks when the synonyms are not exact synonyms. It could then be argued that the synonym labels should not be used, but one of narrow, broad or related. Hence the equivalence axiom solution is slightly sub-optimal since we would have preferred to have only a single class and more than one name for it, yet this would have required some expressiveness not (yet) available in OWL-DL, and the second approach has largely the same effect. In a similar manner to the equivalence axiom, if we have an alternative name <it>S </it>that is "broader than" a term <it>T</it>, then we add a statement <monospace>SubclassOf</monospace>(<it>T S</it>), and if we have an alternative name <it>S </it>that is "narrower than" a term <it>T</it>, then we add a statement <monospace>SubclassOf</monospace>(<it>S T</it>).</p>
         <p>Please note that the second approach does not take into account related class labels which are not either exact, narrow nor broad, like <b>virulence</b> and <b>pathogenesis</b>. In this case, we can only suggest to use the first approach. In approach two, we cannot completely translate all class labels in an OWL-DL form, because the <b>related-to</b> tag has no reasonable representation as either subclass axiom or restriction upon a class, so we would have to use approach three, with a mixture of logical axioms and one assertion on an annotation property.</p>
         <p>The use of the extra equivalence and subclass axioms has a logical argument and can be useful. When a reasoner is applied to such a translation, inconsistencies can be found. If the translator, however, feels that this approach mixes lexical and logical issues then only approach 1, using only assertions on annotation properties is the most valid approach.</p>
         <p>Next, the DAG <b>is-a</b> relationship translates directly into OWL's sub-class relationship since they have the same semantics, <it>i.e., </it>every instance of a class is also an instance of each of its superclasses.</p>
         <p>We can assume that subclasses in the DAG representation, like OWL subclasses, overlap by default, <it>i.e., </it>if <it>C</it><sub>1 </sub>and <it>C</it><sub>2 </sub>are subclasses of the same superclass, then we cannot exclude that there exists an object that is an instance of both <it>C</it><sub>1 </sub>and <it>C</it><sub>2</sub>. This will capture most of the biology in GO correctly. However, we might want to examine the GO and check, for each pair of subclasses, whether we cannot provide more information. For example, we should ask ourselves whether it is possible for an individual molecular function to be both function-x and function-y at the same time. If this is not the case, then we should make this knowledge explicit in the OWL ontology through the axiom <monospace>DisjointClasses</monospace>(<b>function-x function-y</b>).</p>
         <p>In a similar manual step, we should add covering constraints where appropriate. A covering axiom means that, if an object is a member of a class, then it must be a member of one of the classes that it is asserted to "cover". That is, if <b>Person</b> covers <b>Man</b> and <b>Woman</b>, then any object that is a <b>Person</b> must be either a member of <b>Man</b> or a member of <b>Woman</b>, but it is possible not to have enough information to know to which of these classes that object belongs. For a biological example, if <b>Enzyme activity</b> covers all the enzyme functions, then an enzyme activity must be one of those activities; a new enzyme activity would be inconsistent with the ontology. The GO DAG representation does not allow such axioms and we believe that biologists would not use them widely even if it were possible because such axioms would require more knowledge than is usually available. An assumption of no covering is, therefore, not unreasonable.</p>
         <p>Since the GO DAG does not capture disjointness or covering constraints, its inclusion is a matter of capturing biological knowledge, and there is no way of simply automating knowledge of disjointness. An automatic translation is possible if it is assumed that there is no "covering" and all sibling classes can possibly overlap.</p>
         <sec>
            <st>
               <p>5.1 Capturing the GO DAG part-of in OWL</p>
            </st>
            <p>OWL-DL provides a language that allows us to use as many properties as we want, and we can constrain their interpretation in a number of ways using existential, universal, or cardinality restrictions, and we can make statements about them such as one property being implied by another one or that a property is transitive. In Section 4, we have discussed four possible readings of the GO DAG's <b>part-of</b> links, and we show here how these different interpretations can be captured <it>via </it>translations to OWL-DL axioms. The advantage here is that, rather than using a single construct which may be read in a number of different ways, OWL-DL allows us to distinguish between these different readings. We can then use different readings of the <b>part-of</b> relationship (<it>e.g., </it>those discussed in Section 4), without any danger of confusion. In the following examples, we consider how we capture the particular semantics of the assertion <b>P part-of W</b>.</p>
            <p><b><ul>Reading 1 </ul></b>does not impose any restrictions on an instance of <b>P</b> or <b>W</b> as they only deal with the <it>potential </it>for the relationship. If one insists, one can translate this reading into an OWL-DL axiom</p>
            <p><monospace>SubClassOf</monospace> (P<monospace> UnionOf ((restriction</monospace>(part-of<monospace> someValuesFrom </monospace>W))</p>
            <p><monospace>ComplementOf </monospace>(<monospace>restriction</monospace>(part-of<monospace> someValuesFrom </monospace>W))),</p>
            <p>yet this statement does not impose any constraints: indeed, it is equivalent to saying that <b>P</b> is a subclass of <monospace>OWL:thing</monospace> or saying nothing. In contrast, impossibilities do impose constraints, and we can express them in OWL-DL: to express that a <b>P</b> can never be part of a <b>W</b>, we can add the OWL-DL axiom</p>
            <p><monospace>SubClassOf</monospace> (P<monospace> ComplementOf</monospace> (<monospace>restriction</monospace>(part-ofallValuesFromW)))</p>
            <p><ul>Reading 2 </ul>Whenever a P exists, it is part of a W. This can be represented through the following axiom:</p>
            <p><monospace>SubClassOf</monospace>(P<monospace> restriction</monospace>(part-of<monospace> someValuesFrom </monospace>W)),</p>
            <p>stating that, for each and every instance of <b>P</b>, there <it>must </it>be an instance of <b>W</b> of which it is a part. For example, every instance of <b>SemiNiferousTubule</b> is a part of an instance of <b>Testis</b>.</p>
            <p><b><ul>Reading 3 </ul></b>Whenever a <b>W</b> exists, it has some <b>P</b> as a part. This can be represented through the following axiom:</p>
            <p><monospace>SubClassOf</monospace> (W<monospace> restriction</monospace>(has-part<monospace> someValuesFrom </monospace>P)),</p>
            <p>provided that we have declared that the property <b>has-part</b> is the inverse of <b>part-of</b>, as in Figure <figr fid="F4">4</figr> (many description logics allow the definition and use of inverse relationships; in OWL there is no inverse property <it>operator </it>for use in expressions, but we can introduce and define properties as inverses). Inverse properties are interpreted as one would expect: two individuals <it>a </it>and <it>b </it>are related <it>via </it>a property <it>P </it>if and only if <it>b </it>and <it>a </it>are related <it>via </it>the inverse of <it>P</it>. For example, we can use such an axiom to state that every instance of <b>Testis</b> has a part that is an instance of <b>SemiNiferousTubule</b>. Please note that this statement and the one given as an example for the third reading are independent in the sense that they do not imply each other.</p>
            <p><b><ul>Reading 4</ul></b> This is simply a conjunction of 2 and 3, and we can thus encode it by including both axioms introduced above.</p>
            <p>As mentioned before, GO employs reading 2 for <b>part-of</b> links. Hence we translate each such link into the corresponding OWL statement. Additionally, we can then manually add more statements, <it>e.g., </it>in cases where our biology tells us that reading 4 would be more precise. These various semantics for the <b>part-of</b> relationship used in the GO DAG pre-date the OBO relationships described below in Section 6. In the OBO relationships, as we shall see, the semantics are more strictly defined and the translation to an existential property on a class, as in interpretation above, is clear.</p>
            <p>Recall that, in GO, orphan nodes are those that do not have any outgoing <b>is-a</b> link. In OWL-DL, the corresponding classes do not cause any problems since they will be automatically placed in the class hierarchy under the most general class called <b>OWL:thing</b>. There are, therefore, no orphan nodes in an OWL-DL ontology and any modelling that makes any biological assertions to overcome placing subclass axioms to <b>OWL:thing</b> must be part of a process independent of the translation of representation.</p>
            <p>That completes our discussion of the translation of GO's DAG into OWL-DL. We can see, therefore, that it is possible to represent what is captured in the GO in OWL-DL with making only two assumptions, both of which are reasonable. The OWL-DL representation will capture the same knowledge as the GO DAG. In addition, we can even distinguish between the uses of readings two and four in the <b>part-of</b> relationship in GO.</p>
         </sec>
         <sec>
            <st>
               <p>5.2 Translating OWL-DL back into DAG</p>
            </st>
            <p>As we have observed above, the DAG's <b>is-a</b> relationship and the subclass relationship in an OWL-DL ontology have the same reading. Hence we can take an OWL-DL representation of a DAG ontology, ask a reasoner such as FaCT++, Pellet or Racer <abbrgrp><abbr bid="B26">26</abbr><abbr bid="B27">27</abbr><abbr bid="B28">28</abbr></abbrgrp> to infer all subclass relationships, and then translate the resulting class hierarchy back into DAG format. To be more precise, for each class name <it>A</it>, we first ask the reasoner to return all classes that are equivalent (if we have used the translation of synonyms using equivalence axioms described above) with <it>A</it>. Then we choose a "main" node label <it>A' </it>from <it>A </it>and the reasoner's answer, and create a node labelled <it>A' </it>whose exact synonyms are set to <it>A </it>(in case that <it>A' </it>is different from <it>A</it>) and the reasoner's answer (possibly minus <it>A</it>'). As a result of this step, we obtain a set of nodes labelled with terms and exact synonyms. Next, for each pair of node labels <it>A</it>, <it>B</it>, we ask the reasoner whether <it>A </it>is a subclass of <it>B</it>. If this is the case, we add an <b>is-a</b> link from <it>A </it>to <it>B</it>, otherwise we do not do anything. Similarly, for each pair of node labels <it>A</it>, <it>B</it>, we ask the reasoner whether <it>A </it>is a subclass of <monospace>restriction</monospace>(<b>part-of</b><monospace> someValuesFrom B</monospace>). If this is the case, we add a <b>part-of</b> link from <it>A </it>to <it>B</it>, otherwise we do not do anything. Narrow and broad synonyms can be obtained by looking for subclasses and superclasses, respectively, yet this would be exactly the same information as represented in the <b>is-a</b> structure and thus redundant. Finally, those features of the GO DAG that we have translated to assertions on annotation properties can be retrieved and back-translated appropriately.</p>
            <p>As a result, we obtain a graph whose nodes are labelled with names and sets of synonyms, and whose edges are labelled with <b>is-a</b> and <b>part-of</b>. If any axioms have been added to the GO in OWL, such as disjointness or covering axioms, these are retrieved through calls to the reasoner. Disjointness can be represented in the OBO format (see Section 6 below), but covering cannot. So, the back-translation of an augmented GO in OWL might well be lossy; <it>i.e., </it>they are lost in translation. This would also be true of all those features of OWL-DL that cannot be expressed in the OBO format. In general, this graph might not necessarily be acyclic, <it>i.e., </it>it may contain cycles. Since the GO DAG only allows <b>part-of</b> and not <b>has-part</b> relationships, however, common sense tells us that we should obtain an acyclic graph: a cycle would need to involve a <b>part-of</b> link since pure <b>is-a</b> cycles have been collapsed into a single node by construction. Now a cycle involving a <b>part-of</b> link, say from a node labelled A, would mean that, in every world conforming to our ontology, we have an infinite chain of instances <it>a</it><sub><it>i </it></sub>of <it>A </it>with <it>a</it><sub>1</sub><b> part-of </b><it>a</it><sub>2 </sub><b>part-of </b><it>a</it><sub>3 </sub><b>part-of</b>..., which clearly clashes with our intuition. However, if other relationships are used in the DAG, such as <b>has-location</b> or <b>interacts-with</b>, a cycle could easily arise (<it>e.g. </it>a protein that interacts with itself). As we will see below (Section 6) the wider OBO language allows cycles.</p>
         </sec>
      </sec>
      <sec>
         <st>
            <p>6 Representing other OBO relationships in OWL</p>
         </st>
         <p>Open biomedical Ontologies (OBO <abbrgrp><abbr bid="B5">5</abbr></abbrgrp>) is a collection of bio-ontologies, and they come with a core set of biological properties for use within OBO ontologies <abbrgrp><abbr bid="B29">29</abbr><abbr bid="B30">30</abbr></abbrgrp>. The aim is to have consistent interpretation and use of properties representing biological relationships. Here we describe what aspects of the OBO relationships can be represented in OWL. The OBO relationships talk about properties at three levels, and we can easily distinguish these relationships in OWL:</p>
         <p>1. Stating that an individual a is an instance of a class <it>C</it>: this is expressed by</p>
         <p><monospace>Individual</monospace>(<it>a </it><monospace>type</monospace><it> C</it>)</p>
         <p>2. Stating that an individual <it>a </it>is related <it>via </it>a certain property <it>P </it>with an individual <it>b</it>: this is expressed by</p>
         <p><monospace>Individual</monospace>(<it>a </it><b>P </b><it>b</it>)</p>
         <p>3. Stating that each instance of a class <it>C </it>is related <it>via </it>a property <it>P </it>to some instance of a class <it>D</it>.</p>
         <p><monospace>SubClassOf(C restriction</monospace>(<b>P </b><monospace>someValuesFrom</monospace><b> D</b>))</p>
         <p>In our experience, the third of the above relationships is the most commonly used in building ontologies based on classes, where the (all &#8211; some) form of definition used in the OBO relationships fits perfectly with the DL style of relationships <abbrgrp><abbr bid="B31">31</abbr></abbrgrp>. The OBO relationships, so far at least, are therefore readily mapped to a restriction with existential quantification. The OBO relationships are of the third kind, but built upon a series of primitive relationships between instances such as <b>part-of</b> holding between two continuants; <b>located-in</b> holding between a continuant and a region; <b>derives-from</b> holding between two continuants; <it>etc</it>.</p>
         <p>As mentioned, these basic OBO relationships can be expressed in OWL. In OBO, they are extended, however, to take into account both temporal and spatial aspects, none of which can be expressed in OWL: for example, OWL allows us to state that every instance of <it>C </it>must be <b>located-in</b> an instance of <it>D</it>, yet we can not express that an instance of <it>C</it>' must <it>eventually </it>be <b>located-in</b> an instance of <it>D </it>or that an instance of <it>E </it>will <it>eventually </it>be an instance of a class <it>F</it>. For example, we might want to express that <b>Adult</b><monospace> is &#8211;a&#8211;cont</monospace><b> child</b> because an instance of the class <b>Adult</b> has <it>at some previous time point </it>been a <b>Child</b>. Since OWL-DL takes an entirely static view of the world, such a statement cannot be made in OWL. There are extensions of (the DL underlying) OWL-DL that can deal with these temporal aspects <abbrgrp><abbr bid="B32">32</abbr></abbrgrp>, but the reasoners used for OWL-DL do not handle these logics nor does the OWL-DL syntax or semantics accommodate these temporal aspects.</p>
         <p>The OBO file format includes several aspects that should be translated into OWL; some of them are required aspects, others are optional, see Table <tblr tid="T1">1</tblr>. Some of these aspects have already been analysed in this paper for the GO's DAG: the synonyms (<b>related_synonym</b>, <b>exact_synonym</b>, <b>broad_synonym</b> and <b>narrow_synonym</b>), is_a (sub-class relationship in OWL), <b>relationship</b> (existential restrictions in OWL, as already described in the case of <b>part-of</b>) and <b>is_transitive</b> (transitive properties in OWL). For the rest, the translation is provided in Table <tblr tid="T1">1</tblr>. It is intended that the OBO language has the same semantics as OWL (personal communication with Chris Mungall from the Gene Ontology Consortium) and this is the approach we have adopted, though the documentation was at times unclear.</p>
         <tbl id="T1">
            <title>
               <p>Table 1</p>
            </title>
            <caption>
               <p>Translation of OBO aspects into OWL.</p>
            </caption>
            <tblbdy cols="3">
               <r>
                  <c ca="left">
                     <p>
                        <b>OBO stanza</b>
                     </p>
                  </c>
                  <c ca="left">
                     <p>
                        <b>OWL</b>
                     </p>
                  </c>
                  <c ca="left">
                     <p>Required/Optional</p>
                  </c>
               </r>
               <r>
                  <c cspan="3">
                     <hr/>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>name</p>
                  </c>
                  <c ca="left">
                     <p>OWL-DL class name</p>
                  </c>
                  <c ca="left">
                     <p>required</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>id</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>required</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>alt_id</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>namespace</p>
                  </c>
                  <c ca="left">
                     <p>OWL namespace</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>definition</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>comment</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>subset</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>related_synonym</p>
                  </c>
                  <c ca="left">
                     <p>"Some values from" restriction on related_synonym</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>exact_synonym</p>
                  </c>
                  <c ca="left">
                     <p>Equivalent class</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>broad_synonym</p>
                  </c>
                  <c ca="left">
                     <p>Superclass</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>narrow_synonym</p>
                  </c>
                  <c ca="left">
                     <p>Subclass</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>xref_analog</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>xref_unknown</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>is_a</p>
                  </c>
                  <c ca="left">
                     <p>Subclass</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>relationship</p>
                  </c>
                  <c ca="left">
                     <p>"Some values from" restriction on object property</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>is_obsolete</p>
                  </c>
                  <c ca="left">
                     <p>Extra-logical</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>use_term</p>
                  </c>
                  <c ca="left">
                     <p>Object property</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>domain</p>
                  </c>
                  <c ca="left">
                     <p>domain</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>range</p>
                  </c>
                  <c ca="left">
                     <p>range</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>is_cyclic</p>
                  </c>
                  <c ca="left">
                     <p>(see Section 6)</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>is_transitive</p>
                  </c>
                  <c ca="left">
                     <p>transitive</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
               <r>
                  <c ca="left">
                     <p>is_symmetric</p>
                  </c>
                  <c ca="left">
                     <p>symmetric</p>
                  </c>
                  <c ca="left">
                     <p>optional</p>
                  </c>
               </r>
            </tblbdy>
         </tbl>
         <p>In Table <tblr tid="T1">1</tblr>, many of the OBO entries are described as being "extra-logical" in OWL-DL. This means that they are not part of the descriptions of the objects in a class. For instance, a GO id is a description of the class, not a description of the instances or objects of that class. OWL-DL can currently only represent these extra-logical aspects with the annotation properties mentioned earlier in Section 5.</p>
         <p>The OBO optional tag <b>is_cyclic</b> is intended to convey that a relationship can be used to form cycles (such as, <b>interacts-with</b> forming cycles of interacting proteins). Properties in OWL-DL are inherently free to do this and so <b>is_cyclic</b> could only be preserved as another annotation property.</p>
         <p>The OBO file format allows for property hierarchies (for example in the Sequence Ontology <abbrgrp><abbr bid="B33">33</abbr></abbrgrp>), but the DAG does not use them. For the wider OBO representation, it is perfectly possible to translate property hierarchies.</p>
      </sec>
      <sec>
         <st>
            <p>7 Implementation</p>
         </st>
         <p>This translation has been implemented as a Java (1.5) programme <abbrgrp><abbr bid="B34">34</abbr></abbrgrp>. It takes a GO ontology expressed in the OBO 1.0 format <abbrgrp><abbr bid="B8">8</abbr></abbrgrp> and produces the same ontology expressed in OWL DL in the RDF/XML syntax <abbrgrp><abbr bid="B35">35</abbr></abbrgrp>.</p>
         <p>The OBO flat file is read and the WonderWeb OWL API <abbrgrp><abbr bid="B36">36</abbr></abbrgrp> is used to create the OWL-DL ontology. The OBO flat file is parsed and loaded into memory as an intermediate representation that is later explored by the programme and each OBO element is used, as appropriate, to supply parameters to operations on the WonderWeb API. For example, two class identifiers are supplied to the subclass operation to create an OWL subclass axiom; the id of the OBO term is supplied as a value for <b>rdfs:label</b> property; the second half of the OBO <b>part-of</b> relationship is supplied as a filler for an existential restriction on the <b>part-of</b> object property; and so forth. Finally a new OWL file in RDF/XML syntax is created on the hard disk.</p>
         <p>The translation uses the approach 2 to deal with synonyms: exact synonyms, narrow synonyms and broad synonyms are translated as new equivalent classes, subclasses and superclasses, respectively.</p>
      </sec>
      <sec>
         <st>
            <p>8 Discussion</p>
         </st>
         <p>In this paper we have attempted to convey why computer scientists seem to care so much about a representation language's semantics. In essence, it is in order to prevent ambiguity of interpretation (at a far simpler level than intention) of statements in the language. We only have to think back to our toy informal ontology for <b>Man</b> and <b>Woman</b> to see the trouble that imprecision can give. One only has to substitute genes, proteins, processes, etc. into these types of informal statement to realise the wide variety of interpretations that can be placed on ill-defined statements. "P53 activates transcription"&#8211;is all transcription activated by P53? do all P53 activate transcription? In this sense formality is very useful. OWL is, of course, not the only formal language. Our point here is, however, to exemplify the benefits of such formality in communicating to humans and computers.</p>
         <p>By examining the semantics of OWL-DL and GO's DAG, we have seen that converting from GO DAG to OWL-DL presents no real problem, as long as we are willing to make assumptions on disjointness and covering. We can even translate our OWL-DL ontology back into DAG. There are various benefits of having an OWL-DL version of a DAG ontology. Firstly, we can say things in OWL-DL that we cannot say in DAG, and we can thus make properties and relations explicit. For example, we can express covering between classes, we can use properties in both directions, and we can formulate necessary and sufficient definitions of classes. Secondly, these statements are amenable to machine interpretation: that is, we can have an OWL-DL reasoner classify our ontology and detect inconsistent classes. This can help us find modeling errors in our ontology, <it>e.g., </it>when the reasoner comes back with un-intended inferred <b>is-a</b> links or inconsistent classes, and thus supports the design of a <it>good </it>ontology. Thirdly, we can annotate documents with complex OWL-DL class descriptions and have the reasoner take these into account when answering queries. That is, we are no longer restricted to the classes present in the ontology, but we can make them up on-the-fly <it>and </it>have these descriptions taken into account for query answering. In DL style ontologies, it is common for classes defined in an ontology to be the building blocks of other classes, rather than enumerating all the possible classes. Obviously, converting an ontology that comes with such expressiveness and inference services to one that lacks them might lead to an impoverished ontology. Fourthly, we can extend our translations in a straightforward way to other OBO relations.</p>
         <p>In summary, we have described the role of a language's semantics. We have also described the role and benefits of a representation language with well-defined semantics and reasoning support. The core of the argument is that, if ontologies are to fulfill their role of providing a common, shared understanding of a knowledge domain, then the statements within that ontology have to be able to be interpreted unambiguously. We then examined the semantics of GO's DAG and compared it with OWL-DL. Our results of examining the expressive means provided by both formalisms and their semantics is that conversions between the OBO representation and the GO DAG subset is possible (within some constraints) and leads to interesting new possibilities.</p>
      </sec>
      <sec>
         <st>
            <p>9 Authors' contributions</p>
         </st>
         <p>All authors contributed both writing and thought to this paper. MEA led this effort. RS, SB, PL and US produced an early draft and MEA brought it to conclusion, including the implementation. US and SB provided expertise on OWL and description logics. All authors read and approved the final manuscript.</p>
      </sec>
   </bdy>
   <bm>
      <ack>
         <sec>
            <st>
               <p>10 Acknowledgements</p>
            </st>
            <p>MEA is funded by Manchester University and EPSRC. The authors would like to thank Chris Mungall and Amelia Ireland for their help with GO, the GO DAG and the OBO file format.</p>
         </sec>
      </ack>
      <refgrp>
         <bibl id="B1">
            <title>
               <p>Gene Ontology: Tool for the Unification of Biology</p>
            </title>
            <aug>
               <au>
                  <cnm>Gene Ontology Consortium</cnm>
               </au>
            </aug>
            <source>Nature Genetics</source>
            <pubdate>2000</pubdate>
            <volume>25</volume>
            <fpage>25</fpage>
            <lpage>29</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1038/75556</pubid>
                  <pubid idtype="pmpid" link="fulltext">10802651</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B2">
            <title>
               <p>OWL Web Ontology Language Guide</p>
            </title>
            <url>http://www.w3.org/TR/owl-guide</url>
         </bibl>
         <bibl id="B3">
            <title>
               <p>From SHIQ and RDF to OWL: The Making of a Web Ontology Language</p>
            </title>
            <aug>
               <au>
                  <snm>Horrocks</snm>
                  <fnm>I</fnm>
               </au>
               <au>
                  <snm>Patel-Schneider</snm>
                  <fnm>PF</fnm>
               </au>
               <au>
                  <snm>van Harmelen</snm>
                  <fnm>F</fnm>
               </au>
            </aug>
            <source>Journal of Web Semantics</source>
            <pubdate>2003</pubdate>
            <volume>1</volume>
            <fpage>7</fpage>
            <lpage>26</lpage>
         </bibl>
         <bibl id="B4">
            <title>
               <p>Creating the Gene Ontology resource: Design and Implementation</p>
            </title>
            <aug>
               <au>
                  <cnm>Gene Ontology Consortium</cnm>
               </au>
            </aug>
            <source>Genome Research</source>
            <pubdate>2001</pubdate>
            <volume>11</volume>
            <fpage>1425</fpage>
            <lpage>1433</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="pmcid">311077</pubid>
                  <pubid idtype="pmpid" link="fulltext">11483584</pubid>
                  <pubid idtype="doi">10.1101/gr.180801</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B5">
            <title>
               <p>Open Biomedical Ontology</p>
            </title>
            <url>http://obo.sourceforge.net</url>
         </bibl>
         <bibl id="B6">
            <title>
               <p>A Short Study on the Success of the Gene Ontology</p>
            </title>
            <aug>
               <au>
                  <snm>Bada</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Stevens</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Goble</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Gil</snm>
                  <fnm>Y</fnm>
               </au>
               <au>
                  <snm>Ashburner</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Blake</snm>
                  <fnm>JA</fnm>
               </au>
               <au>
                  <snm>Cherry</snm>
                  <fnm>JM</fnm>
               </au>
               <au>
                  <snm>Harris</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Lewis</snm>
                  <fnm>S</fnm>
               </au>
            </aug>
            <source>Journal of Web Semantics</source>
            <pubdate>2004</pubdate>
            <volume>1</volume>
         </bibl>
         <bibl id="B7">
            <title>
               <p>GO downloads</p>
            </title>
            <url>http://geneontology.org/GO.downloads.shtml</url>
         </bibl>
         <bibl id="B8">
            <title>
               <p>File format guide</p>
            </title>
            <url>http://www.geneontology.org/GO.format.shtml</url>
         </bibl>
         <bibl id="B9">
            <title>
               <p>DAG-Edit user guide</p>
            </title>
            <url>http://www.godatabase.org/dev/java/dagedit/docs/index.html</url>
         </bibl>
         <bibl id="B10">
            <title>
               <p>OBO-Edit user's guide</p>
            </title>
            <url>http://www.godatabase.org/dev/java/oboedit/docs/index.html</url>
         </bibl>
         <bibl id="B11">
            <title>
               <p>COBrA: a bio-ontology editor</p>
            </title>
            <aug>
               <au>
                  <snm>Aitken</snm>
                  <fnm>S</fnm>
               </au>
               <au>
                  <snm>Korf</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Webber</snm>
                  <fnm>B</fnm>
               </au>
               <au>
                  <snm>Bard</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>Bioinformatics</source>
            <pubdate>2005</pubdate>
            <volume>21</volume>
            <issue>6</issue>
            <fpage>825</fpage>
            <lpage>826</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1093/bioinformatics/bti097</pubid>
                  <pubid idtype="pmpid" link="fulltext">15513995</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B12">
            <title>
               <p>Gene Ontology Next Generation</p>
            </title>
            <url>http://www.gong.manchester.ac.uk/</url>
         </bibl>
         <bibl id="B13">
            <title>
               <p>A Methodology to Migrate the Gene Ontology to a Description Logic Environment Using DAML+OIL</p>
            </title>
            <aug>
               <au>
                  <snm>Wroe</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Stevens</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Goble</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Ashburner</snm>
                  <fnm>M</fnm>
               </au>
            </aug>
            <source>8th Pacific Symposium on biocomputing (PSB)</source>
            <pubdate>2003</pubdate>
            <fpage>624</fpage>
            <lpage>636</lpage>
         </bibl>
         <bibl id="B14">
            <title>
               <p>MAPPING OBO TO OWL</p>
            </title>
            <url>http://www.godatabase.org/dev/doc/mapping-obo-to-owl.html</url>
         </bibl>
         <bibl id="B15">
            <title>
               <p>Experiences of using OWL at the Ordenance Survey</p>
            </title>
            <aug>
               <au>
                  <snm>Goodwin</snm>
                  <fnm>J</fnm>
               </au>
            </aug>
            <source>Proc of OWL Experiences and Directions</source>
            <pubdate>2005</pubdate>
         </bibl>
         <bibl id="B16">
            <aug>
               <au>
                  <snm>Baader</snm>
                  <fnm>F</fnm>
               </au>
               <au>
                  <snm>Calvanese</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>McGuinness</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Nardi</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Patel-Schneider</snm>
                  <fnm>P</fnm>
               </au>
               <au>
                  <cnm>(Eds)</cnm>
               </au>
            </aug>
            <source>The Description Logic Handbook Theory, Implementation and Applications</source>
            <publisher>Cambridge University Press</publisher>
            <pubdate>2003</pubdate>
         </bibl>
         <bibl id="B17">
            <title>
               <p>Background and Introduction</p>
            </title>
            <aug>
               <au>
                  <snm>Duce</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Ringland</snm>
                  <fnm>G</fnm>
               </au>
            </aug>
            <source>Approaches to Knowledge Representation: An Introduction</source>
            <publisher>New York: Wiley</publisher>
            <editor>Ringland GA, Duce DA</editor>
            <pubdate>1988</pubdate>
            <fpage>1</fpage>
            <lpage>12</lpage>
         </bibl>
         <bibl id="B18">
            <title>
               <p>Building a Bioinformatics Ontology Using OIL</p>
            </title>
            <aug>
               <au>
                  <snm>Stevens</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Goble</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Horrocks</snm>
                  <fnm>I</fnm>
               </au>
               <au>
                  <snm>Bechhofer</snm>
                  <fnm>S</fnm>
               </au>
            </aug>
            <source>IEEE Transactions on Information Technology and Biomedicine</source>
            <pubdate>2002</pubdate>
            <volume>6</volume>
            <issue>2</issue>
            <fpage>135</fpage>
            <lpage>41</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1109/TITB.2002.1006301</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B19">
            <title>
               <p>OILing the Way to Machine Understandable Bioinformatics Resources</p>
            </title>
            <aug>
               <au>
                  <snm>Stevens</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Goble</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Horrocks</snm>
                  <fnm>I</fnm>
               </au>
               <au>
                  <snm>Bechhofer</snm>
                  <fnm>S</fnm>
               </au>
            </aug>
            <source>IEEE Transactions on Information Technology and Biomedicine</source>
            <pubdate>2002</pubdate>
            <volume>6</volume>
            <fpage>129</fpage>
            <lpage>34</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1109/TITB.2002.1006300</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B20">
            <title>
               <p>The Ontology of the Gene Ontology</p>
            </title>
            <aug>
               <au>
                  <snm>Smith</snm>
                  <fnm>B</fnm>
               </au>
               <au>
                  <snm>Williams</snm>
                  <fnm>J</fnm>
               </au>
               <au>
                  <snm>Schulze-Kremer</snm>
                  <fnm>S</fnm>
               </au>
            </aug>
            <source>Annual symposium of American Medical Informatics Association (AMIA)</source>
            <pubdate>2003</pubdate>
         </bibl>
         <bibl id="B21">
            <title>
               <p>The GO Editorial Style Guide</p>
            </title>
            <url>http://www.geneontology.org/GO.usage.shtml</url>
         </bibl>
         <bibl id="B22">
            <title>
               <p>A Taxonomy of Part-Whole Relations</p>
            </title>
            <aug>
               <au>
                  <snm>Winston</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Chaffin</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Herrmann</snm>
                  <fnm>D</fnm>
               </au>
            </aug>
            <source>Cognitive Science</source>
            <pubdate>1987</pubdate>
            <volume>11</volume>
            <fpage>417</fpage>
            <lpage>444</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1016/S0364-0213(87)80015-0</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B23">
            <title>
               <p>Knowledge acquisition, consistency checking and concurrency control for Gene Ontology (GO)</p>
            </title>
            <aug>
               <au>
                  <snm>Yeh</snm>
                  <fnm>I</fnm>
               </au>
               <au>
                  <snm>Karp</snm>
                  <fnm>PD</fnm>
               </au>
               <au>
                  <snm>Fridman Noy</snm>
                  <fnm>N</fnm>
               </au>
               <au>
                  <snm>Altman</snm>
                  <fnm>RB</fnm>
               </au>
            </aug>
            <source>Bioinformatics</source>
            <pubdate>2003</pubdate>
            <volume>19</volume>
            <issue>2</issue>
            <fpage>241</fpage>
            <lpage>248</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1093/bioinformatics/19.2.241</pubid>
                  <pubid idtype="pmpid" link="fulltext">12538245</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B24">
            <aug>
               <au>
                  <snm>Simons</snm>
                  <fnm>PM</fnm>
               </au>
            </aug>
            <source>Parts. A study in Ontology</source>
            <publisher>Oxford: Clarendon</publisher>
            <pubdate>1987</pubdate>
         </bibl>
         <bibl id="B25">
            <title>
               <p>METHONTOLOGY: From Ontological Art Towards Ontological Engineering</p>
            </title>
            <aug>
               <au>
                  <snm>Gomez-Perez</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Juristo</snm>
                  <fnm>N</fnm>
               </au>
            </aug>
            <source>Engineering Workshop on Ontological Engineering (AAAI97)</source>
            <pubdate>1997</pubdate>
         </bibl>
         <bibl id="B26">
            <title>
               <p>Optimised Classification for Taxonomic Knowledge Bases</p>
            </title>
            <aug>
               <au>
                  <snm>Tsarkov</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Horrocks</snm>
                  <fnm>I</fnm>
               </au>
            </aug>
            <source>Proc of the 2005 Description Logic Workshop (DL 2005)</source>
            <pubdate>2005</pubdate>
         </bibl>
         <bibl id="B27">
            <title>
               <p>Pellet: A Practical OWL-DL Reasoner</p>
            </title>
            <aug>
               <au>
                  <snm>Sirin</snm>
                  <fnm>E</fnm>
               </au>
               <au>
                  <snm>Parsia</snm>
                  <fnm>B</fnm>
               </au>
               <au>
                  <snm>Cuenca Grau</snm>
                  <fnm>B</fnm>
               </au>
               <au>
                  <snm>Kalyanpur</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Katz</snm>
                  <fnm>Y</fnm>
               </au>
            </aug>
            <url>http://www.mindswap.org/papers/PelletJWS.pdf</url>
            <note>[Submitted for publication to the Journal of Web Semantics].</note>
         </bibl>
         <bibl id="B28">
            <title>
               <p>RACER System Description</p>
            </title>
            <aug>
               <au>
                  <snm>Haarslev</snm>
                  <fnm>V</fnm>
               </au>
               <au>
                  <snm>M&#246;ller</snm>
                  <fnm>R</fnm>
               </au>
            </aug>
            <source>IJCAR-01, Volume 2083 of LNAI, SV</source>
            <pubdate>2001</pubdate>
         </bibl>
         <bibl id="B29">
            <title>
               <p>Relations in biomedical ontologies</p>
            </title>
            <aug>
               <au>
                  <snm>Smith</snm>
                  <fnm>B</fnm>
               </au>
               <au>
                  <snm>Ceusters</snm>
                  <fnm>W</fnm>
               </au>
               <au>
                  <snm>Klagges</snm>
                  <fnm>B</fnm>
               </au>
               <au>
                  <snm>Kohler</snm>
                  <fnm>J</fnm>
               </au>
               <au>
                  <snm>Kumar</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Lomax</snm>
                  <fnm>J</fnm>
               </au>
               <au>
                  <snm>Mungall</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Neuhaus</snm>
                  <fnm>F</fnm>
               </au>
               <au>
                  <snm>Rector</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Rosse</snm>
                  <fnm>C</fnm>
               </au>
            </aug>
            <source>Genome Biology</source>
            <pubdate>2005</pubdate>
            <volume>6</volume>
            <issue>5</issue>
            <fpage>R46</fpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="pmcid">1175958</pubid>
                  <pubid idtype="pmpid" link="fulltext">15892874</pubid>
                  <pubid idtype="doi">10.1186/gb-2005-6-5-r46</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B30">
            <title>
               <p>OBO relation ontology</p>
            </title>
            <url>http://obofoundry.org/ro/</url>
         </bibl>
         <bibl id="B31">
            <aug>
               <au>
                  <snm>Levesque</snm>
                  <fnm>H</fnm>
               </au>
               <au>
                  <snm>Brachman</snm>
                  <fnm>R</fnm>
               </au>
            </aug>
            <source>A fundamental tradeoff in knowledge representation and reasoning</source>
            <publisher>Morgan Kaufman. Readings in Knowledge Representation</publisher>
            <pubdate>1985</pubdate>
            <fpage>41</fpage>
            <lpage>70</lpage>
         </bibl>
         <bibl id="B32">
            <title>
               <p>Temporalising Description Logics</p>
            </title>
            <aug>
               <au>
                  <snm>Wolter</snm>
                  <fnm>F</fnm>
               </au>
               <au>
                  <snm>Zakharyaschev</snm>
                  <fnm>M</fnm>
               </au>
            </aug>
            <source>Frontiers of Combining Systems</source>
            <publisher>Studis Press/Wiley</publisher>
            <editor>Gabbay D, de Rijke M</editor>
            <pubdate>2000</pubdate>
            <volume>2</volume>
         </bibl>
         <bibl id="B33">
            <title>
               <p>The Sequence Ontology: a tool for the unification of genome annotations</p>
            </title>
            <aug>
               <au>
                  <snm>Eilbeck</snm>
                  <fnm>K</fnm>
               </au>
               <au>
                  <snm>Lewis</snm>
                  <fnm>S</fnm>
               </au>
               <au>
                  <snm>Mungall</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Yandell</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Stein</snm>
                  <fnm>L</fnm>
               </au>
               <au>
                  <snm>Durbin</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Ashburner</snm>
                  <fnm>M</fnm>
               </au>
            </aug>
            <source>Genome Biology</source>
            <pubdate>2005</pubdate>
            <volume>6</volume>
            <issue>5</issue>
            <fpage>R44</fpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="pmcid">1175956</pubid>
                  <pubid idtype="pmpid" link="fulltext">15892872</pubid>
                  <pubid idtype="doi">10.1186/gb-2005-6-5-r44</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B34">
            <title>
               <p>GO to OWL converter</p>
            </title>
            <url>http://www.gong.manchester.ac.uk/downloads/</url>
         </bibl>
         <bibl id="B35">
            <title>
               <p>OWL Web Ontology Language Reference</p>
            </title>
            <url>http://www.w3.org/TR/owl-ref/</url>
         </bibl>
         <bibl id="B36">
            <title>
               <p>OWL API</p>
            </title>
            <url>http://sourceforge.net/projects/owlapi</url>
         </bibl>
      </refgrp>
   </bm>
</art>
