<!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>A Method to Develop Description Logic Ontologies Iteratively with Automatic Requirement Traceability</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yuri Malheiros</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fred Freitas</string-name>
          <email>fredg@cin.ufpe.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidade Federal da Para ba (UFPB)</institution>
          ,
          <addr-line>Rio Tinto - PB</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universidade Federal de Pernambuco (UFPE)</institution>
          ,
          <addr-line>Recife - PE</addr-line>
          ,
          <country country="BR">Brazil</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Competency Questions (CQs) play an important role in the ontology development life-cycle, as they represent the ontology requirements. Although the main methodologies use them, there is room for improvement in the current practice of ontology engineering. One of the main problems is the lack of tools to check if CQs de ned in OWL, are being ful lled by an ontology, preferably in an automated way. Moreover, requirement (or CQ) traceability is rarely explored. Recently, there has been a trend on checking CQs against ontologies using RDF and SPARQL. Naturally, this language, being created for Semantic Networks, is inadequate to check the ful llment of OWL CQs. In this paper, we introduce a semi-automatic, full- edged method to develop ontologies iteratively, using CQs as requirements. It presents many novelties: a tracker to monitor the relations among CQs and the OWL code; an NLP component that translates CQs in natural language into OWL queries; a logic checker that con rms whether CQs are satis ed or not; a generator of new CQs, which comes into play when the CQ being dealt is not satis ed yet; and an axiom generator that suggests to the user new axioms to be included in the ontology.</p>
      </abstract>
      <kwd-group>
        <kwd>ontology engineering</kwd>
        <kwd>competency questions</kwd>
        <kwd>requirement traceability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        For years, ontology development was more like a craft or arcane art form than
engineering, because there are no patterns or methodologies to guide the
engineers. Thus, each development team followed its own rules [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        In a clear sign of progress, systematic methodologies and tools have been
proposed to support ontology development. These methodologies address the
tasks of creating and maintaining an ontology; thus, they specify an ontology
life-cycle, de ne how to describe the ontology scope and requirements (this latter
consisting of the competency questions (CQs) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]), how to create the ontology
speci cation, how to conduct its evolution, etc. Some well-known methodologies
to ontology development are: Methontology [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], On-To-Knowledge [21], Ontology
101 [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], and NeOn [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        A noteworthy fact is that these methodologies are slightly di erent, but share
many common features. Two important ones consist of the iterative way of
development, and the use of CQs to de ne requirements. There are also many
tools to assist ontology development. Protege [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], OntoStudio3, NeOn Toolkit
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], OntoEdit [22] and WebODE [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] are among the most employed tools that
facilitate the process of creating an ontology.
      </p>
      <p>Despite the advances in ontology engineering, there are many areas to
improve. The CQs are widely used to de ne requirements, however most of works
use the CQs to check manually the ontology. This way could create a bottleneck,
because it is slow to check a huge quantity of questions, and error-prone.</p>
      <p>Traceability is other area that could be explored further. DL ontologies have
a formal logic foundation that o ers possibilities to trace changes in an
automatic way that is very hard to replicate in software engineering. For example, it
could be possible to check which requirements are associated with which axioms,
and vice-versa. It could be possible to check if all requirements are satis ed or
not. And, it could be possible to check if some changes in the ontology code
break some requirement. Thus, we are missing an opportunity to build powerful
traceability tools to improve the ontology development process.</p>
      <p>In this paper, we propose a method and introduce a system to improve some
areas of ontology engineering. Using the system an engineer can build or evolve
ontologies iteratively using CQs and their respective answers. The CQs are used
as requirements and, with the system, every relation among them and axioms
are traceable without extra e ort from the engineer.</p>
      <p>The system uses CQs written in English to check OWL DL ontologies
automatically using reasoning. This is di erent from many works that usually check
the ontologies manually or at most use SPARQL queries. The user does not
need to know DL syntax or other complex language to use the system, because
all the interaction is made by natural language, thus there are not barriers to
people without DL expertise. Furthermore, an ontology engineer can retrieve the
axioms for every requirement or, for a given axiom, the system can show the
requirement. Finally, the iterative nature of the system ts in many methodologies,
then it can improve well-known development processes.</p>
      <p>The basic usage can be described as follows: the user asks a CQ for the
system, and it tries to answer the question with the knowledge encoded in an
ontology. If it cannot answer correctly, the system asks for the user for more
axioms, and generates other auxiliary CQs that the user can answer; then the
process restarts, until it can answer all the generated CQs, including the rst.</p>
      <p>The remainder of this paper is organized as follows: Section 2 provides a
background about description logic ontologies, ontology engineering, competency
questions, and requirement traceability; Section 3 presents our proposal of the
system to build ontologies iteratively using competency question with automatic
tracing; Section 4 details the implementation of the system; In section 5 we</p>
    </sec>
    <sec id="sec-2">
      <title>3 http://www.semafora-systems.com/en/products/ontostudio/</title>
      <p>show the results of tests using the system; Section 6 discusses related work; and,
Section 7 concludes the paper and presents some ideas for future works.
2</p>
      <sec id="sec-2-1">
        <title>Background</title>
        <p>To set the scene of the rest of this paper, the next three sections elucidate
concepts related to description logic ontologies, ontology engineering and
competency questions. These concepts serve as foundation of this work.
2.1</p>
        <sec id="sec-2-1-1">
          <title>Description Logic Ontologies</title>
          <p>
            Description Logics (DLs) are a family of knowledge representation formalisms
that have been gaining growing interest in the last two decades, particularly
after OWL (Ontology Web Language) [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ], was approved as the W3C standard
for representing the most expressive layer of the Semantic Web.
          </p>
          <p>One of the most used DL languages is ALC, due to its good trade-o between
expressivity and reasoning costs. We will describe in the following since this
language is used in the paper.</p>
          <p>
            An ontology or knowledge base in ALC is a set of axioms ai de ned over the
triple (NC ; NR; NO) [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ], where NC is the set of concept names or atomic
concepts (unary predicate symbols), NR is the set of role or property names (binary
predicate symbols); NO the set of individual names (constants), instances of NC
and NR: NCO is the set of classes' instances and NRO the set or role instances,
with NCO [ NRO = NO. NC contains concepts (for example, Bird, Animal,
etc) as well as other concept de nitions as follows. If r is a role (r 2 NR) and
C and D are concepts (C; D 2 NC ) then the following de nitions belong to the
set of ALC concepts: (i) C u D (intersection of two concepts); (ii) C t D (union
of two concepts); (iii) :C (complement of a concept); (iv) 8r:C (universal
restriction of a concept by a role); (v) 9r:C (existential restriction of a concept by
a role); (vi) &gt;, the universal concept that subsumes all concepts, and (vii) ?,
the bottom concept that is subsumed by all concepts. Note that, in the de
nitions above, C and D can be inductively replaced by other complex concept
expressions.
          </p>
          <p>There are two axiom types allowed in ALC: (i) Assertional axioms, which are
concept assertions C(a), or role assertions r(a; b), where C 2 NC , r 2 NR, a; b 2
NO and (ii) Terminological axioms, composed of any nite set of GCIs (general
concept inclusion) in one of the forms C v D or C D, the latter meaning
C v D and D v C, C and D being concepts. An ontology or knowledge base
(KB) is referred to as a pair (T ; A), where T is the terminological box (or TBox)
which stores terminological axioms, and A is the assertional box (ABox) which
stores assertional axioms. T may contain cycles, in case at least in an axiom of
the form C v D, D can be expanded to an expression that contains C.</p>
          <p>
            ALC semantics is formally de ned in terms of interpretations, model,
xpoints, interpretation functions, etc, over a domain or discourse universe [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ].
2.2
          </p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Ontology engineering</title>
          <p>
            According to Gomez-Perez and colleagues, ontology engineering refers to the
activities related to the process, life-cycle, methods, methodologies, tools, and
languages to support the ontology development [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]. Devedzic de nes that
ontology engineering covers the set of activities done during the conceptualization,
design, implementation, and deployment [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. Mizoguchi and Ikeda de ne the
ontology engineering purpose regarding provide a basis of building models of all
things in which computer science is interested, and that it should cover subjects
as philosophy, knowledge representation, ontology design, standardization, reuse
and sharing of knowledge, media integration, etc [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ].
          </p>
          <p>In some ways, the methodologies to develop ontologies are analogous to the
ones for software engineering. They provide guidance to developers and are
divided in phases, for example, speci cation, execution, and evaluation. Besides,
the process is usually iterative, and the ontology can evolve during its lifetime
in a very similar way of a software, in the sense that it requires maintenance,
versioning, etc.
2.3</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>Competency questions</title>
          <p>
            Competency questions [
            <xref ref-type="bibr" rid="ref12">12</xref>
            ] are a set of questions that the ontology must be
capable to answer using its axioms. The questions can be used to specify the
problems an ontology or a set of ontologies must solve. Thus, they work as
requirements' speci cation of one or more ontologies. With a set of CQs at hand,
it is possible to know whether an ontology was created correctly, if it contains
all the necessary and su cient axioms that correctly answer the CQs.
          </p>
          <p>Many works propose the use of CQs for ontology engineering, but they usually
used them to check ontologies manually, or, at most, express them as SPARQL
queries. For answers that arise from more complex DL reasoning, in which the
answers are not present in the ontology but can be entailed by it, no other
option is yet o ered, but to check CQs manually, what constitutes a slow and
expensive process that could be impracticable with very large ontologies or when
the quantity of CQs is huge.
2.4</p>
        </sec>
        <sec id="sec-2-1-4">
          <title>Requirement traceability</title>
          <p>
            Requirement traceability is a problem studied by many software engineer
researches. But, for ontology engineers this area is almost absent. Requirement
traceability links the requirement speci cation and the code. It brings to the
engineer the capability of verify the completeness of an implementation with
respect to stated requirements [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ].
          </p>
          <p>
            There are two fundamental types of requirements traceability [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]:
{ Pre-requirements speci cation traceability: it is concerned with those aspects
of a requirement's life prior to its inclusion in the requirement speci cation;
{ Post-requirements speci cation traceability: it is concerned with those
aspects of a requirement's life that result from its inclusion in the requirement
speci cation.
          </p>
          <p>In our approach, we focus on post-requirements speci cation traceability.
3</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Proposal</title>
        <p>We developed a method and a system implementation to build ontologies
iteratively using CQs and their respective answers with an automatic requirement
tracker. It is based on the idea of Uschold [24], which was never tried in the
Semantic Web context. Yet, all the questions and answers are written in English.</p>
        <p>Considering an ontology with the following axioms: Herbivorous Animalu
8eats::meat and Cow Animal u 8eats:grass. Then, a CQ states \Are cows
herbivorous?", where the expected answer is \true". A system implementing the
method tries to answer the question, but fails, because the ontology lacks the
necessary axioms to infer that Cows v Herbivorous. Next, the system generates
a new CQ for the user, for instance, \are grass and meat disjoint?". If the user
answers \yes" the system includes in the ontology an axiom stating that the
classes Grass and Meat are disjoint (Grass v :M eat). Now, the ontology has
the necessary axioms to answer the initial question correctly.</p>
        <p>Using this iterative process, a user can evaluate if an ontology has the
necessary axioms to answer questions, and can add new knowledge, \teaching" it
through the answers to the CQ made by the method/system. In the current
version, our system can answer many types of questions using natural language,
can add new axioms to an ontology according to the answers to questions, and
it traces all changes. The question generation by the system is still being studied
since it indeed represents a new DL problem, which requires additional speci c
research to determine for which DL languages the problem is decidable, and in
case they are, the problem's computability. Currently, we are assuming an oracle
for that problem exists, in this implementation, the user provides the questions.</p>
        <p>In the next section, we describe an implementation of the method with its four
components: the natural language checker, the question generator, the ontology
builder, and the tracker.
4</p>
      </sec>
      <sec id="sec-2-3">
        <title>Implementation</title>
        <p>The current implementation includes four components:
{ Natural language checker: this component parses questions in English, uses
the knowledge speci ed in an ontology, and returns an answer;
{ Question generator: when the system cannot answer a question correctly
using the natural language checker, it generates questions for the user, to
gather more knowledge to answer the initial question;
{ Ontology builder: all the new knowledge learned through the questions
generated by the previous component are added to the ontology. This component
is responsible for transforming the information of the previous component
into an ontology speci cation language.
{ Tracker: all changes using the system are traceable. This component creates
relations among all axioms added to an ontology and their correspondent
competency question.</p>
        <p>Next, each component is detailed, except the question generator, because in
the current implementation the user needs to create the question manually.
4.1</p>
        <sec id="sec-2-3-1">
          <title>Natural language checker</title>
          <p>The rst step of the process to build or evolve an ontology with the proposed
system is to write a CQ in natural language. We choose this approach to
compose a CQ, because it is easier for the engineer to use natural language than
description logics.</p>
          <p>In the system, there are prede ned types of questions that it understands.
The types are de ned by rules, and each rule is de ned using grammatical tags
(nouns, adjectives, verbs, etc.) and regular expression operators (*, +, ?, and j).
Each word of a question is labeled using the NLP Stanford POS Tagger [23]. The
labels are the grammatical category of the word. Then, the component veri es
if the words and its POS tags match with some question rule. If it satis es some
rule, the component will perform the operations to retrieve information of the
ontology according to the question type. Otherwise, the system returns that it
does not understand what the user asked.</p>
          <p>There are three main question types: is-a, property value, and existence.
They are detailed by table 1. Each table shows a usage example, the regular
expression rules and the type of answers the question support. In the tables,
Noun means all POS tags related do nouns, Adj means all POS tags related to
adjectives, and Num means all POS tags related to numbers.</p>
          <p>The component can nd names de ned in the ontology even though they
are written in the question in plural, or separated by spaces, or with di erent
capitalizations. For example, \red wine" can be matched with a class \RedWine"
in the ontology, or the word \cows" in a question can be matched with a class
\Cow". The component tests many variations of names in the question to nd
the correct match in the ontology. Thus, the user can make questions in a very
natural way regardless the speci c notation used to specify the ontology.</p>
          <p>
            This component uses OWL API [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ] and HermiT OWL reasoner [20] to search
for answers. Thus, it can infer information that is not explicitly de ned in an
ontology to give the correct answer.
4.2
          </p>
        </sec>
        <sec id="sec-2-3-2">
          <title>Ontology builder</title>
          <p>The goal of the ontology builder component is to add new knowledge to an
ontology. Answering questions generated by the system, the user acts as a teacher
Examples Does bancroft chardonnay have color white?</p>
          <p>Do birds eat animals?
Rules (doesjdo) (NounjAdjjNum)+ have Noun (NounjAdjjNum)</p>
          <p>(doesjdo) (NounjAdjjNum)+ Verb (NounjAdjjNum)+
Answer Yes, no, true or false
Existence question type
Examples Which wines exist?</p>
          <p>Which wines have sugar dry?
Rules which (NounjAdjjNum)+</p>
          <p>which (NounjAdjjNum)+ have (NounjVerb) (somejonly)? (NounjAdjjNum)+
Answer Classes separated by commas or the word \and"
to the system that stores what it learns in the ontology. The system has
prede ned types of questions it can generate. These questions are called system's
questions (SQ), in other words, a competency question generated by the system.
In this case, there are not rules for each SQ, because the system knows exactly
the format of the question it will generate. To add knowledge to an ontology,
the user only needs to answer the question properly.</p>
          <p>There are three main system's question types: is-a, property value, and
existence. They are detailed by table 2. Each table shows an example, the type of
answers, and examples of axioms created.
4.3</p>
        </sec>
        <sec id="sec-2-3-3">
          <title>Tracker</title>
          <p>All changes made using the system are traceable. When a user creates a CQ the
system store this CQ, and it stores, if necessary, the SQs associated with the
CQ. When a user answers a SQ the system stores the answer, create a relation
between the answer and the SQ, and it also stores the OWL code added (a
patch) to the ontology speci cation. This way, every step is monitored for later
analysis. The Figure 1 shows the tracker data structure. Where CQi represents
competency questions and i is the CQ index, for example, CQ1 is the rst CQ,
CQ2 the second, etc. SQij are the system's questions, where i is the CQ index
and j is the SQ index, for example, SQ12 is the second system's question related
to the rst CQ, or SQ31 is the rst system's question related to the third CQ.
Finally, Aij are the answers of the SQs, and Pij represents the code patch related
to the answers.</p>
          <p>Using the relations stored in the data structure, this component provides a
series of useful operations:
{ Log: this command shows every CQ and every SQ and their answers in a
hierarchy. Thus, an engineer has a manner to see the SQs generated for each
CQ. Using the log command the user has an overview of how the ontology
is being built through the change history. To do this, the system only needs
to iterate over the nodes of the data structure and presents the information
to the user.
{ Di : using this command the user speci es a SQ using the indexes and
the system shows the OWL code included or removed. It is a good way to
know exactly the axioms added for each SQ. This is possible, because the
system saves the code patch, in other words, only the code added and the
information where it was added in the ontology le. Thus, the system has
all the information to presents the di to the user.
{ Rollback: if some change is not desirable, the user can undo what he did. The
rollback returns the system to a speci ed point according to a CQ and SQ
in the change history provided by the log command. Again, this is possible
because the code patches saved in the data structure. In this operation, the
system unapply every patch since the current state of the ontology until, but
no including, the patch of the choosen SQ.
{ Code to question: this command is in some way the opposite of the di .</p>
          <p>Using this command the user speci es an axiom in the OWL code, and the
system returns, if there is one, a SQ. To do this, the system searches for the
axiom selected in the added code.
To test our implementation we perform some operations to check requirements,
add code and use the tracker in the wine ontology. This ontology is available in
the Protege website4.</p>
          <p>First, we loaded the wine ontology and de ned the CQ \is red wine a wine?"
with the expected answer \true". Because, we expected that the ontology has
the necessary axioms to answer this question with this answer. For this case, the
system returns \ok", in other words, the requirement is satis ed by the ontology.</p>
          <p>Further, we asked other CQ, but now about a type of wine that does not exist
in the ontology. The CQ is \is foo wine a red wine?" and the expected answer is
\true". Since the ontology did not have this knowledge the system returned an
error, because the requirement was not satis ed.</p>
          <p>Now, the system should create SQs to question the user. This process was
made manually. Two SQs was creates, the rst \is foo wine a wine?" and the
second \does foo wine have color red?". Both question was answered with \yes",
then the axioms F ooW ine v W ine and F ooW ine v 8hasColor:Red were added
to the ontology. After, if the CQ \is foo wine a red wine?" is asked again the
system can answer \ok". It is interesting to notice that we did not explicitly
create the subclass relation between FooWine and RedWine, but, the reasoner
can infer it after the addition of the new axioms.</p>
          <p>To check the change history, the tracker provides the log command. For now,
we had:</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>4 http://protege.stanford.edu/download/ontologies.html</title>
      <p>C l a s s : FooWine</p>
      <p>SubClassOf :</p>
      <p>v i n : Wine
And the code added for SQ 1.b was:
v i n : h a s C o l o r o n l y ( f v i n : Red g )</p>
      <p>Other useful command is the rollback. For example, if we do not want the
change made by the SQ 1.b, we can rewind to the state of SQ 1.a. After the
command, the code line added by the answer of SQ 1.b does not exist anymore.</p>
      <p>We can continue asking CQs, generating SQs and answering them, and use
the tracker commands to analyze all the process until all the requirements were
satis ed. Further, if more requirements appear, the engineer can use the system
again to ask for new questions and he can continue the process every time he
needs.
6</p>
      <sec id="sec-3-1">
        <title>Related Work</title>
        <p>This work was inspired by the iterative way of develop ontologies proposed by
many methodologies, and by the use of CQs to evaluate and de ne requirements.</p>
        <p>
          Methontology [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] de nes activities to perform during the ontology
development, and it de nes the ontology life cycle too. During its life, an ontology moves
through the following states: speci cation, conceptualization, formalization,
integration, implementation, and maintenance. This life cycle seems analogous to
the waterfall life cycle in software engineering [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], however the authors make
it clear that it is not an adequate path to develop an ontology. Then, it is
proposed an evolving life cycle that allows the engineer to go back from any state to
other if it is necessary. The Ontology 101 methodology [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] de nes an iterative
process. The engineer starts with a simple model and re nes it during the
development. The steps of this process are: determine the domain and scope (using
CQs), reuse ontologies, enumerate important terms, de ne the classes and the
class hierarchy, de ne the properties, de ne the facets of the slots, and create
instances.
        </p>
        <p>
          Other methodologies emerged since 1990. Lenat and Guha presented the
steps of Cyc development in one of the rst works in this area [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Uschold and
Gruninger contribute in many papers to evolve the ontology engineering eld,
proposing and re ning guidelines [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] [26] [25]. In 2001, the On-To-Knowledge
methodology appeared, it was a result of the project with the same name [21].
        </p>
        <p>
          During the emergence of the methodologies, many tools to support the
ontology development process are proposed. The rst was the OntolinguaServer in
the beginning of 1990. It started only with a simple editor, and later other
components were added, such an equation solver and an ontology merge tool [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. The
WebOnto tool was developed in 1997, its main innovation was the collaborative
edition of ontologies [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Protege, an ontology editor with extensible
architecture, is one of the most popular ontology tools nowadays. This tool supports the
creation of ontologies in multiple formats [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. In the rst years of 2000, WebODE
[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and OntoEdit [22] appeared. The WebODE supports multiple formats of
ontology, it has an editor, and components to evaluate and merge ontologies. Also,
WebODE supports most of the activities and steps of Methontology. Last, the
OntoEdit has similar characteristic of the previous tools, for example, extensible
architecture, ontology editor, etc.
        </p>
        <p>All these works presented tried to improve the way of develop ontologies. In
this paper, we are not proposing a new full featured ontology editor, neither a
new methodology, but we are presenting a method and creating a system to
support some phases of iterative methodologies and to improve some characteristics
in ontology development overlooked in previous works.
7</p>
      </sec>
      <sec id="sec-3-2">
        <title>Conclusions and Future Work</title>
        <p>In this paper, we presented a method, and an implementation of a system to
support the process of building a DL ontology. Further, we presented a novel
approach to trace requirements automatically, thus engineers can analyze the
relations among requirements (CQs) and axioms. We also de ned the process to
build or evolve an ontology iteratively using the system implemented.</p>
        <p>In the current implementation, we can already see some useful features that
can be used during and ontology development. For example, the natural language
checker to con rm if an ontology satis es some requirements and the traceability
tools provided by the tracker to analyze and navigate for all development history.</p>
        <p>There are still limitations in the work. Each component needs to evolve. The
natural language query component must support more types of question and
treat more intrinsic details of the written language. The ontology builder needs
to support more SQs too. Finally, we need to study the problem and develop the
automatic question generation when some knowledge is missing in the ontology
and the system cannot answer a question correctly. For now, this process is made
manually. With the improvements of the previous components, the tracker will
be even more powerful, providing a useful tool for ontology engineers.</p>
        <p>Besides evolving the system's components, we can also integrate the whole
system or some parts with popular ontology environments like Protege and
NeOn.
20. Shearer, R., Motik, B., Horrocks, I.: HermiT: A Highly-E cient OWL Reasoner.</p>
        <p>In: Ruttenberg, A., Sattler, U., Dolbear, C. (eds.) Proc. of the 5th Int. Workshop
on OWL: Experiences and Directions (OWLED 2008 EU). Karlsruhe, Germany
(October 26{27 2008)
21. Staab, S., Studer, R., Schnurr, H.P., Sure, Y.: Knowledge processes
and ontologies. IEEE Intelligent Systems 16(1), 26{34 (Jan 2001),
http://dx.doi.org/10.1109/5254.912382
22. Sure, Y., Erdmann, M., Angele, J., Staab, S., Studer, R., Wenke, D.:
Ontoedit: Collaborative ontology development for the semantic web. In:
Proceedings of the First International Semantic Web Conference on The
Semantic Web. pp. 221{235. ISWC '02, Springer-Verlag, London, UK, UK (2002),
http://dl.acm.org/citation.cfm?id=646996.711413
23. Toutanova, K., Klein, D., Manning, C.D., Singer, Y.: Feature-rich part-of-speech
tagging with a cyclic dependency network. In: Proceedings of the 2003
Conference of the North American Chapter of the Association for Computational
Linguistics on Human Language Technology - Volume 1. pp. 173{180. NAACL
'03, Association for Computational Linguistics, Stroudsburg, PA, USA (2003),
http://dx.doi.org/10.3115/1073445.1073478
24. Uschold, M.: Building ontologies: Towards a uni ed methodology. In: In 16th
Annual Conf. of the British Computer Society Specialist Group on Expert Systems.
pp. 16{18 (1996)
25. Uschold, M., Gruninger, M., Uschold, M., Gruninger, M.: Ontologies: Principles,
methods and applications. Knowledge Engineering Review 11, 93{136 (1996)
26. Uschold, M., King, M.: Towards a methodology for building ontologies. In: In
Workshop on Basic Ontological Issues in Knowledge Sharing, held in conjunction
with IJCAI-95 (1995)</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Antoniol</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Canfora</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casazza</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Lucia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merlo</surname>
          </string-name>
          , E.:
          <article-title>Recovering traceability links between code and documentation</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>28</volume>
          (
          <issue>10</issue>
          ),
          <volume>970</volume>
          {983 (Oct
          <year>2002</year>
          ), http://dx.doi.org/10.1109/TSE.
          <year>2002</year>
          .1041053
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Arp</surname>
            <given-names>rez</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.C.</given-names>
            ,
            <surname>Corcho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            ,
            <surname>Fernandez-Lopez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Gomez-Perez</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Webode: a scalable workbench for ontological engineering</article-title>
          .
          <source>In: Proceedings of the 1st international conference on Knowledge capture</source>
          . pp.
          <volume>6</volume>
          {
          <fpage>13</fpage>
          .
          <string-name>
            <surname>K-CAP</surname>
          </string-name>
          '
          <fpage>01</fpage>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2001</year>
          ), http://doi.acm.
          <source>org/10</source>
          .1145/500737.500743
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F</given-names>
          </string-name>
          . (eds.):
          <article-title>The description logic handbook: theory, implementation, and applications</article-title>
          . Cambridge University Press, New York, NY, USA (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>del Carmen</surname>
            Suarez-Figueroa,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Cea</surname>
            ,
            <given-names>G.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buil</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dellschaft</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>FernandezLopez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garc</surname>
            <given-names>a</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Gomez-Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Herrero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Montiel-Ponsoda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Sabou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Villazon-Terrazas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Yufei</surname>
          </string-name>
          ,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          :
          <source>D5</source>
          .
          <article-title>4.1 neon methodology for building contextualized ontology networks</article-title>
          (
          <year>Feb 2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Devedzic</surname>
          </string-name>
          , V.:
          <article-title>Understanding ontological engineering</article-title>
          .
          <source>Commun. ACM</source>
          <volume>45</volume>
          (
          <issue>4</issue>
          ),
          <volume>136</volume>
          { 144 (Apr
          <year>2002</year>
          ), http://doi.acm.
          <source>org/10</source>
          .1145/505248.506002
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Domingue</surname>
          </string-name>
          , J.:
          <article-title>Tadzebao and webonto: Discussing, browsing, and editing ontologies on the web</article-title>
          .
          <source>In: In Proceedings of the 11th Knowledge Acquisition for KnowledgeBased Systems Workshop</source>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Farquhar</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fikes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rice</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>The ontolingua server: a tool for collaborative ontology construction</article-title>
          .
          <source>Int. J. Hum.-Comput. Stud</source>
          .
          <volume>46</volume>
          (
          <issue>6</issue>
          ),
          <volume>707</volume>
          {727 (Jun
          <year>1997</year>
          ), http://dx.doi.org/10.1006/ijhc.
          <year>1996</year>
          .0121
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fernandez-Lopez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomez-Perez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juristo</surname>
          </string-name>
          , N.:
          <article-title>Methontology: from ontological art towards ontological engineering</article-title>
          .
          <source>In: Proceedings of the AAAI97 Spring Symposium</source>
          . pp.
          <volume>33</volume>
          {
          <fpage>40</fpage>
          .
          <string-name>
            <surname>Stanford</surname>
          </string-name>
          , USA (March
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Gennari</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Musen</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fergerson</surname>
            ,
            <given-names>R.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grosso</surname>
            ,
            <given-names>W.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crubezy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eriksson</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Noy</surname>
            ,
            <given-names>N.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tu</surname>
            ,
            <given-names>S.W.:</given-names>
          </string-name>
          <article-title>The evolution of protege: an environment for knowledge-based systems development</article-title>
          .
          <source>Int. J. Hum.-Comput. Stud</source>
          .
          <volume>58</volume>
          (
          <issue>1</issue>
          ),
          <volume>89</volume>
          {123 (Jan
          <year>2003</year>
          ), http://dx.doi.org/10.1016/S1071-
          <volume>5819</volume>
          (
          <issue>02</issue>
          )
          <fpage>00127</fpage>
          -
          <lpage>1</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Gomez-Perez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fernandez-Lopez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Ontological Engineering: With Examples from the Areas of Knowledge Management, E-Commerce and the Semantic Web</article-title>
          .
          <source>Advanced Information and Knowledge Processing</source>
          , Springer (
          <year>2004</year>
          ), http://books.google.com.br/books?id=UjS0N1W7GSEC
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gotel</surname>
            ,
            <given-names>O.C.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkelstein</surname>
            ,
            <given-names>A.C.W.:</given-names>
          </string-name>
          <article-title>An analysis of the requirements traceability problem</article-title>
          . pp.
          <volume>94</volume>
          {
          <issue>101</issue>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Gruninger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fox</surname>
            ,
            <given-names>M.S.</given-names>
          </string-name>
          :
          <article-title>Methodology for the design and evaluation of ontologies (</article-title>
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Guarino</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Welty</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Evaluating ontological decisions with ontoclean (</article-title>
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bechhofer</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The owl api: A java api for owl ontologies</article-title>
          .
          <source>Semant. web 2</source>
          (
          <issue>1</issue>
          ),
          <volume>11</volume>
          {21 (Jan
          <year>2011</year>
          ), http://dl.acm.org/citation.cfm?id=
          <volume>2019470</volume>
          .
          <fpage>2019471</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Lenat</surname>
            ,
            <given-names>D.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guha</surname>
            ,
            <given-names>R.V.</given-names>
          </string-name>
          :
          <article-title>Building Large Knowledge-Based Systems; Representation and Inference in the Cyc Project</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc., Boston, MA, USA, 1st edn. (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Mizoguchi</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A step towards ontological engineering</article-title>
          .
          <source>In: 12th National Conference on AI of JSAI</source>
          . pp.
          <volume>24</volume>
          {
          <issue>31</issue>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Noy</surname>
            ,
            <given-names>N.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>Ontology development 101: A guide to creating your rst ontology</article-title>
          (
          <year>November 2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>OWL web ontology language semantics and abstract syntax</article-title>
          .
          <source>W3C recommendation</source>
          ,
          <source>W3C (February</source>
          <year>2004</year>
          ), http://www.w3.org/TR/2004/REC-owl-semantics-
          <volume>20040210</volume>
          /, published online on
          <source>February 10th</source>
          ,
          <year>2004</year>
          at http://www.w3.org/TR/2004/REC-owlsemantics-
          <volume>20040210</volume>
          /
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Royce</surname>
          </string-name>
          , W.W.:
          <article-title>Managing the development of large software systems: concepts and techniques</article-title>
          .
          <source>In: Proceedings of the 9th international conference on Software Engineering</source>
          . pp.
          <volume>328</volume>
          {
          <fpage>338</fpage>
          . ICSE '87, IEEE Computer Society Press, Los Alamitos, CA, USA (
          <year>1987</year>
          ), http://dl.acm.org/citation.cfm?id=
          <volume>41765</volume>
          .
          <fpage>41801</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>