<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Web-Prote´ g e´: A Lightweight OWL Ontology Editor for the Web</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tania Tudorache</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jennifer Vendetti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Natalya F. Noy</string-name>
          <email>noyg@stanford.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Stanford Center for Biomedical Informatics Research, Stanford University</institution>
          ,
          <addr-line>CA</addr-line>
          ,
          <country country="US">US</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper, we present Web-Prote´ge´-a web-based lightweight ontology editor. Web-Prote´ge´ is open source, uses the Google Web Toolkit (GWT) for the user interface, and Prote´ge´ for supporting ontology services. We used components of Collaborative Prote´ge´ to augment the ontology-editing environment with facilities for discussions and annotations. In this paper, we describe both the server and the client components of the system. We built the user interface using the portal metaphor, which allows easy customization of the user interface for individual users. The plug-in architecture allows easy extension of the user interface with custom components. The server component is implemented in Java and provides methods for accessing the ontology content and manages the changes the users make in different clients. A demo version is available at http://bmir-protege-dev1.stanford.edu/webprotege/.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>With the advent of Web 2.0 technologies and applications, the web has become the
primary environment where people communicate, exchange content, and collaborate on
projects. Meanwhile, ontologies are becoming so large in their coverage that no single
person or a small group of people can develop them effectively and ontology
development becomes a community-based enterprise. In this situation, the Web becomes
the natural platform of choice for developing ontologies collaboratively. For example,
the National Cancer Institute (NCI) that develops the NCI Thesaurus—an OWL
ontology with more than 80.000 concepts—“outsource” some of their ontology development
to the scientific community at large using a wiki as a collaborative platform. Other
biomedical projects use a combination of available tools (e.g., sourceforge, mailing
lists, etc.) due to the lack of proper support for web-based ontology development.</p>
      <p>
        We interviewed several groups of domain experts and ontology engineers who are
building ontologies collaboratively and extracted some of the main requirements for
a web-based collaborative ontology environment. First, users need a simple way of
making their ontology available on the web, so that other people can browse it without
the need to install software. Second, users want to comment on or discuss certain aspects
of the ontology—with such discussion as an integral part of the development process.
Third, users want to make changes to the ontology in a web browser, and still get the
same sorts of editing help available in desktop-client editors (e.g., validation of user
input). Several groups expressed the need for a simplified view of the ontology that is
published on the web, so that they don’t “scare off” users who are not ontology experts.
Therefore, being able to customize the appearance of the web interface based on the
level of expertise of the user becomes a crucial feature. In the following sections, we
describe how Web-Prote´ge´ addresses some of these requirements.
Our laboratory has developed Prote´ge´1—a widely used open-source ontology and
knowledge base editor. Collaborative Prote´ge´ [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is a Prote´ge´ extension that enables users who
develop an ontology collaboratively to hold discussions, chat, annotate ontology
components and changes—all as an integral part of the ontology-development process.
      </p>
      <p>
        We are currently developing Web-Prote´ge´—an open source lightweight ontology
editor for the Web that uses Prote´ge´ as its backend. Our main goal in developing
WebProte´ge´ is to better support the collaborative development process in a web
environment. In this work, we leverage the existing components that we have already developed
for Collaborative Prote´ge´ [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and which already provide support for simultaneous
editing (a change made by an user is immediately seen by the other users). In this context,
Web-Prote´ge´ is a Web front-end for the Collaborative Prote´ge´ server. This means, that
different users may edit the same ontology either in Web-Prote´ge´ or in a Collaborative
Prote´ge´ desktop client and they will see each others changes right away.
      </p>
      <p>Our plan is to provide a collaboration platform that is easily customizable for
different users and projects’ settings. For example, a novice user may use Web-Prote´ge´ to
browse and do lightweight editing of an ontology (e.g., move or rename classes); a more
advanced user may connect to the same ontology with a Collaborative Prote´ge´ desktop
client to perform more complex changes (e.g., creating restrictions, refactorings, etc.).
Because the two users are working with a shared ontology, they will see each others’
changes immediately.</p>
      <sec id="sec-1-1">
        <title>1 http://protege.stanford.edu</title>
        <p>types (e.g., Comment, Proposal) and classes for describing different types of changes
that a user can do in an editing session (e.g., Class Created). Instances of the annotation
types will represent actual annotations that users are making on ontology components
or changes. We associate each domain ontology stored in the server repository with a
CHAO knowledge base that contains the instances of annotations and changes
corresponding to the domain ontology.</p>
        <p>An important server task is to keep track of the changes in the ontology and to
manage conflicts when different clients make changes to the same ontology. The
WebProte´ge´ server makes calls to the Collaborative Prote´ge´ server that already provides
support for simultaneous editing, transactions, and operation atomicity. The task of the
Web-Prote´ge´ server is to manage the Web-Prote´ge´ clients. For each ontology, the server
maintains a current version number. Whenever a change is made to the ontology, the
ontology version number is incremented by one. Each client has its own version number,
which might differ from the server’s version number. At a set time interval (default 5
seconds), the clients poll the server for new changes. The client will send the server
its own ontology version number, and, in turn, the server will send the client the diff
of changes between the client and server versions. When the client receives the diff of
changes, it will update its internal model and its ontology version number.</p>
        <p>The client side contains the user interface, a model of the ontology on the client
and the Remote Procedure Calls (RPC) module to communicate with the server. We
used the Google Web Toolkit2 (GWT) to implement the user interface. GWT allows a
developer to write a web front end in Java and then compile the source code into highly
optimized JavaScript.</p>
        <p>The client has an internal model of the ontology that represents the ontology view
of the client. The content of the client model is filled by user interface requests (e.g.,
get all subclasses of a class), and it also serves as a client-side cache. The user interface
components use a listener pattern to register for changes in the client model so that they
can refresh when the model changes. In the current implementation, the communication
between the client and the server is made via GWT RPC calls.
2.2</p>
        <p>User Interface
We have presented Web-Prote´ge´—a lightweight ontology editor for the Web with
support for collaboration. Two groups developing biomedical ontologies have used
WebProte´ge´ and have found it useful. However, we are in the early stages of development
and much remains to be done. The current version uses Prote´ge´ 3 as its backend and</p>
      </sec>
      <sec id="sec-1-2">
        <title>2 http://code.google.com/webtoolkit/</title>
        <p>
          only supports OWL 1.0. In the near future, we will also support OWL 2.0 by
implementing a backend using Prote´ge´ 4 and the OWL-API. 3 We plan to use a more
flexible architecture for managing ontology changes that will provide a pluggable way of
solving conflicts during edit time. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] We will extend the support for a wider range
of collaboration features by exposing change tracking information in the UI,
enforcing access policies for browsing and editing ontologies, and supporting different types
of collaborative workflows. Scalability is also an issue for large ontologies due to some
limitations in the use of JavaScript. We plan to develop widgets with pagination support
that would better handle large ontologies.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Acknowledgments References</title>
      <p>We are indebted to Dilvan Moreira for suggesting the use of GWT. Prote´ge´ is a national resource
supported by grant LM007885 from the U.S. National Library of Medicine.</p>
      <sec id="sec-2-1">
        <title>3 http://owlapi.sourceforge.net/</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>N. F.</given-names>
            <surname>Noy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chugh</surname>
          </string-name>
          , W. Liu, and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Musen</surname>
          </string-name>
          .
          <article-title>A framework for ontology evolution in collaborative environments</article-title>
          .
          <source>In 5th Intl. Semantic Web Conference, ISWC, volume LNCS 4273</source>
          , Athens, GA,
          <year>2006</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Redmond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Drummond</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Tudorache</surname>
          </string-name>
          .
          <article-title>Managing change: An ontology version control system</article-title>
          .
          <source>In OWL: Experiences and Directions, 5th Intl. Workshop</source>
          , OWLED 2008, Karlsruhe, Germany,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>T.</given-names>
            <surname>Tudorache</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. F.</given-names>
            <surname>Noy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Musen</surname>
          </string-name>
          .
          <article-title>Supporting collaborative ontology development in Prote´ge´</article-title>
          .
          <source>In 7th Intl. Semantic Web Conference, ISWC</source>
          <year>2008</year>
          , Karlsruhe, Germany,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>