<!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>Using Ontologies in the Domain Analysis of Domain-Specific Languages</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Robert Tairas</string-name>
          <email>tairasr@cis.uab.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marjan Mernik</string-name>
          <email>marjan.mernik@uni-mb.si</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jeff Gray</string-name>
          <email>gray@cis.uab.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Alabama at Birmingham</institution>
          ,
          <addr-line>Birmingham, Alabama</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Maribor</institution>
          ,
          <addr-line>Maribor</addr-line>
          ,
          <country country="SI">Slovenia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The design stage of domain-specific language development, which includes domain analysis, has not received as much attention compared to the subsequent stage of language implementation. This paper investigates the use of ontology in domain analysis for the development of a domain-specific language. The standard process of ontology development is investigated as an aid to determine the pertinent information regarding the domain (e.g., the conceptualization of the domain and the common and variable elements of the domain) that should be modeled in a language for the domain. Our observations suggest that ontology assists in the initial phase of domain understanding and can be combined with further formal domain analysis methods during the development of a domain-specific language.</p>
      </abstract>
      <kwd-group>
        <kwd>Domain Analysis</kwd>
        <kwd>Domain-Specific Languages</kwd>
        <kwd>Ontology</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The development of a Domain-Specific Language (DSL) requires detailed knowledge
of the domain in which the language is being targeted. Paradigms such as Generative
Programming [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and Domain Engineering [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] also require an understanding of the
target domain, which is done through a process called domain analysis that produces a
domain model. An important theme in the domain analysis used by both paradigms is
the need to determine elements that can be reused. The reusable components or
software artifacts form the building blocks for developing new software systems. In
DSL development, in addition to the overall knowledge of the domain, the domain
model can reveal important properties that will influence the way the language is
shaped. In particular, the search for reusability in domain analysis can be translated
into realizing the commonalities and variabilities of a domain. This information can
assist in pointing out elements in the domain that can be fixed in the language and
those that must provide for variabilities; hence, domain analysis has the potential to
be beneficial if used during DSL development. However, clear guidelines for the use
of established domain analysis techniques in the process of DSL development are still
lacking [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        Ontology development is one approach that has contributed to the early stages of
domain analysis [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. This paper investigates the use of ontology during domain
analysis in DSL development and how it contributes to the design of the language.
The rest of the paper is organized as follows: Section 2 describes the potential
connection between ontology and DSL development. Section 3 provides a case study
on the use of ontology in the development of a DSL for air traffic communication and
Section 4 provides some observations on ontology in DSL development based on the
case study. Related work, a conclusion, and future work are described in Sections 5
and 6.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 Early Stage DSL Development</title>
      <p>
        Chandrasekaran et al. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] propose two properties related to ontologies: the first is a
representation vocabulary of some specialized domain. This vocabulary represents the
objects, concepts, and other entities concerning the domain. The second is the body of
knowledge of the domain using this representative vocabulary. This knowledge can
be obtained from the relationships of the entities that have been represented by the
vocabulary. Ontologies seek to represent the elements of a domain through a
vocabulary and relationships between these elements in order to provide some type of
knowledge of the domain.
      </p>
      <p>
        An interesting connection can be observed between ontology and DSL design. As
it relates to DSL development [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], a domain model is defined as consisting of:
•
•
•
•
a domain definition defining the scope of the domain,
the domain terminology (vocabulary, ontology),
descriptions of domain concepts, and
feature models describing the commonalities and variabilities of domain concepts
and their interdependencies.
      </p>
      <p>
        Not only is an ontology useful in the obvious property of domain terminology, but the
concepts of the domain and their interdependencies or relationships are also part of
the properties of an ontology [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The knowledge of the commonalities and
variabilities of the domain concepts can further provide crucial information needed to
determine the fixed and variable parts of the language. This part is a more open
question as to the potential of finding commonalities and variabilities through
information obtained from the ontology.
      </p>
      <p>
        As it relates to the DSL development process as a whole, the insertion of ontology
development in the early stages of DSL development can potentially provide a
structured mechanism in the part of DSL development that is still lacking attention.
The early stages of DSL development (i.e., domain analysis) have not received as
much attention compared to the latter stages of development (i.e., language
implementation). Various DSL implementation techniques have been identified in
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], including interpreter or compiler development and embedding in a
GeneralPurpose Language (GPL). In contrast, only four out of 39 DSLs evaluated in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
utilized a more formal domain analysis, such as FAST [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and FODA [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. These
formal approaches have shown to result in good language design, but their use is still
limited and it has yet to be seen how well they will be adopted by the community. The
question is whether other less formal approaches, such as Object-Oriented Analysis
(OOA) or ontology, can be reused in the early stages of DSL development. In order to
promote interest in the domain analysis stage of DSL development, this paper
advocates the use of ontology in DSL development, which is observed through a case
study of a DSL for air traffic communication.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Case Study</title>
      <p>Ontology development to assist in the design of a DSL is described through a case
study in this section. Section 3.1 provides a summary of the air traffic communication
problem domain. The ontology and its related competency questions are given in
Sections 3.2 and 3.3. The development of a class diagram, object diagram,
contextfree grammar, and sample program related to the DSL and obtained from the ontology
is given in Section 3.4.</p>
      <sec id="sec-3-1">
        <title>3.1 Air Traffic Communication</title>
        <p>A case study was selected to apply the ontology development process and observe its
usefulness in domain analysis related to DSL development. The case study selected
focuses on the communication that occurs between the air traffic control (ATC) at an
airport and the pilot of an aircraft. More specifically, the communication is between
the ground controller that is responsible for the traffic between the runways and the
ramps containing gates in an airport, and the pilots of an aircraft that has just arrived
or is in the process of departure. The purpose is to develop a DSL that can standardize
the language for the communication between the two individuals. English is the
standard language in this domain, but more often the controllers or pilots of
nonEnglish speaking countries may experience problems communicating in English. A
DSL that standardizes the communication can be translated into the native tongue of
the controller or pilot for better comprehension. A separate functionality could check
and verify the path that is given to a pilot by a ground controller. An example
communication sequence that highlights the potential communication problem is
given in Listing 1. The controller is asking the captain to hold short of taxiway
“MikeAlpha,” but the pilot continually assumes it is taxiway “November.”
Listing 1. Example of air traffic communication</p>
        <p>ATC:</p>
        <sec id="sec-3-1-1">
          <title>Pilot: ATC:</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Pilot: ATC:</title>
        </sec>
        <sec id="sec-3-1-3">
          <title>Pilot:</title>
        </sec>
        <sec id="sec-3-1-4">
          <title>Make the right turn here at Juliette. Join Alpha. Hold short</title>
        </sec>
        <sec id="sec-3-1-5">
          <title>MikeAlpha.</title>
        </sec>
        <sec id="sec-3-1-6">
          <title>Right on Juliette hold sh ... Taxi Alpha. Hold November [...] Can we taxi now?</title>
        </sec>
        <sec id="sec-3-1-7">
          <title>Make the right turn here at Juliette. Join Alpha. Hold short of</title>
        </sec>
        <sec id="sec-3-1-8">
          <title>MikeAlpha.</title>
        </sec>
        <sec id="sec-3-1-9">
          <title>Roger, join right Juliette. Join Alpha. Hold short November.</title>
        </sec>
        <sec id="sec-3-1-10">
          <title>OK, I'll say it again. Hold short of Mike Alpha "M" - "A"</title>
        </sec>
        <sec id="sec-3-1-11">
          <title>MikeAlpha, not November.</title>
        </sec>
        <sec id="sec-3-1-12">
          <title>OK, hold short of MikeAlpha.</title>
          <p>GroundControl Controller in charge of
airport ground traffic
Class</p>
        </sec>
        <sec id="sec-3-1-13">
          <title>Aircraft</title>
        </sec>
        <sec id="sec-3-1-14">
          <title>Tower</title>
        </sec>
        <sec id="sec-3-1-15">
          <title>Runway</title>
        </sec>
        <sec id="sec-3-1-16">
          <title>Taxiway</title>
        </sec>
        <sec id="sec-3-1-17">
          <title>Ramp</title>
        </sec>
        <sec id="sec-3-1-18">
          <title>Gate</title>
        </sec>
        <sec id="sec-3-1-19">
          <title>Turn</title>
        </sec>
        <sec id="sec-3-1-20">
          <title>HoldShort</title>
        </sec>
        <sec id="sec-3-1-21">
          <title>Contact</title>
        </sec>
        <sec id="sec-3-1-22">
          <title>Follow</title>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Ontology Development</title>
        <p>
          Following the ontology development process outlined by Noy and McGuinness [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ],
competency questions are selected that serve as the purpose of the ontology. In order
to obtain a domain model as defined in Section 2, two competency questions were
selected: “What are the concepts of the domain and the interdependencies of these
concepts?” and “What are the commonalities and variabilities of the domain?”
        </p>
        <p>Both the Ontolingua1 and DAML2 ontology libraries were searched for existing
ontologies related to the domain in this case study, but no related instances contained
the vocabulary necessary for the domain. Although a new ontology is needed for this
case study, the availability of an existing ontology in other cases provides a head start
to the development of a domain model as the important terms and relationships have
been determined already for the domain and can be used toward the subsequent steps
of DSL development.
1 Ontolingua Ontology Library, http://www-ksl.stanford.edu/knowledge-sharing/ontologies/html
2 DAML Ontology Library, http://www.daml.org/ontologies</p>
        <p>Description
Arriving or departing
aircraft
Controller in charge of
take-offs and landings
Available take-off and
landing locations
Paths connecting
runways to ramps
Aircraft parking area
Passenger embarkation
and disembarkation
Command to turn
Command to hold short
of a runway or taxiway
Command to contact a
separate controller
Command to follow
behind another aircraft</p>
        <p>Slots
Name</p>
        <sec id="sec-3-2-1">
          <title>Airline ID</title>
          <p>Description</p>
          <p>Name of the airline
Flight Number Flight Identification
Values
Two letters
Integer
Runway Number Runway Identification 1 – 36 (i.e., runway
heading 10° – 360°)
Taxiway Name Taxiway Identification One or two letters
(digits)</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Runway</title>
        </sec>
        <sec id="sec-3-2-3">
          <title>Orientation</title>
        </sec>
        <sec id="sec-3-2-4">
          <title>Ramp Name</title>
        </sec>
        <sec id="sec-3-2-5">
          <title>Gate Letter</title>
        </sec>
        <sec id="sec-3-2-6">
          <title>Gate Number</title>
        </sec>
        <sec id="sec-3-2-7">
          <title>Direction</title>
        </sec>
        <sec id="sec-3-2-8">
          <title>Taxiway</title>
        </sec>
        <sec id="sec-3-2-9">
          <title>Runway</title>
        </sec>
        <sec id="sec-3-2-10">
          <title>Taxiway ATC</title>
        </sec>
        <sec id="sec-3-2-11">
          <title>Aircraft</title>
          <p>To distinguish parallel Class Left or Right
runways
Ramp Identification
Gate Identification
Gate Identification
Turning direction
String
One letter
Integer</p>
        </sec>
        <sec id="sec-3-2-12">
          <title>Class Left or Right</title>
          <p>Taxiway Identification Class Taxiway
Runway Identification Class Runway
Taxiway Identification Class Taxiway
Controller to contact
Class Tower or</p>
        </sec>
        <sec id="sec-3-2-13">
          <title>GroundControl</title>
          <p>
            Aircraft Identification Class Aircraft
Utilizing the tool introduced by Noy and McGuinness [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ] called Protégé 20003, the
ontology for the case study was developed. The terms in Protégé 2000 are stored as
classes. This allows for terms to be considered subclasses of other terms. In addition
to classes, Protégé 2000 also contains slots and instances. Slots are the properties and
constraints of the classes. Slots define the properties of classes and also determine the
values that can be set for each property. Instances are actual instances of the classes in
the ontology. These can be used to determine how well the ontology is representing a
domain.
          </p>
          <p>Table 1 contains a selection of classes and slots of the ontology that was
developed in Protégé 2000 for the case study. In addition to the classes and slots in
Table 1, instances of these classes were also determined. These instances are based on
the information from a simplified diagram of the Birmingham International Airport
(BHM) as shown in Figure 1. For example, instances of the Runway class are 6, 24, 18,
and 36. Instances of the Taxiway class are A, B, F, G, H, M, A1, A2, A3, A4, B1, G1,
H2, and H4. The Ramp class consists of Cargo and Terminal.</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 Competency Questions Revisited</title>
        <p>The usefulness of the ontology in Table 1 can be measured by how well the ontology
assists in answering the previously specified competency questions from Section 3.2.
Regarding the first question, the ontology provides the concepts of the domain
through the classes. The interdependencies between the concepts can be derived from
the constraints of the slots of the classes. For example, the HoldShort class is
dependent on either the Runway or Taxiway classes, as this command is always
followed by the location in which the pilot is to hold short.</p>
        <p>6</p>
        <p>A1</p>
        <p>H</p>
        <p>A
Cargo</p>
        <p>H2
A2</p>
        <p>A</p>
        <p>H4
H
A3 A4 Gates</p>
        <p>C1-C5</p>
        <p>F
Terminal</p>
        <p>Gates
B1-B3 B</p>
        <p>M</p>
        <p>M</p>
        <p>A
G</p>
        <p>G
18
B
B
A
F F
B1 G1
B G
36</p>
        <p>A
24
Answering the second question related to commonalities and variabilities is less
evident if observing only the ontology’s structure of classes and slots. Information
regarding the variabilities can be extracted by including the instances of classes, such
3 Protégé 2000, http://protege.stanford.edu
as the instances from BHM. Classes Runway and Taxiway consist of many instances,
which could mean these classes have the variabilities property. Moreover, instances
that represent airports other than BHM will also contain different values for these
classes, which could also be interpreted as containing variabilities. The classes not
containing instances, such as most of the commands (i.e., Turn, HoldShort, and
Contact), could be interpreted as common concepts in all instances. These commands
are common in the ATC domain and represent standard commands that are used in all
airports. However, the specific airport elements (i.e., collection of instances of
runways and taxiways) may change depending on the airport.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4 Conceptual Class Diagram</title>
        <p>
          The ontology process is similar to the process of object-oriented analysis [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
However, one distinction is that ontology design is mainly concerned with the
structural properties of a class, whereas object-oriented analysis is primarily
concerned with the operational properties of a class [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The focus here is a
methodology that can assist in determining the domain concepts for DSL
development by reusing an approach from general software engineering.
        </p>
        <p>Figure 2 presents a conceptual class diagram that was manually generated from the
structural information of the classes in the ontology from Table 1. In this case, the
development of the class diagram has been assisted by the information obtained from
the ontology. In Figure 2, similar classes are grouped together. For example, classes
Gate, Ramp, Runway, and Taxiway represent physical structures in the airport. Such
groupings identified the need for a generalized class for each group. A generalized
class was included in the diagram for Runway and Taxiway, because from the slot
properties of class HoldShort, two possible values can be used (i.e., Runway and
Taxiway). In the diagram, this is represented by abstract class Way. The classes at the
bottom of the diagram represent communication commands. These are associated
with other classes through their respective slot properties. Generalizations such as
Command and Way were not part of the original ontology and were only introduced
during the development of the class diagram. These classes in turn can be used to
update the ontology to further improve the structure of the ontology. This can be seen
as part of the process of iteratively refining the ontology to better represent the
domain.</p>
        <p>
          From the class diagram in Figure 2, an initial context-free grammar (CFG) for the
DSL can be generated, as shown in Listing 2. This CFG was manually obtained from
the conceptual class diagram to CFG transformation properties defined in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
Relationships such as generalization and aggregation in the class diagram are
transformed into specific types of production rules in the CFG. For example, a
generalization where classes Runway and Taxiway are based on class Way is
transformed into the production rule WAY ::= RUNWAY | TAXIWAY. An aggregation
where class Gate is part of class Ramp is transformed into the production rule RAMP
::= GATES. In this case the non-terminal GATES is used, because the cardinality of this
aggregation is zero or more gates on a ramp (i.e., 0..*). An additional production rule
is generated to represent this cardinality (i.e., GATES ::= GATES GATE | ε).
        </p>
        <p>Runway
-number : int
-orientation : Direction
0..1</p>
        <p>Direction</p>
        <p>Airport
-Code : string
1..*
Way</p>
        <p>Taxiway
-name : string
1..*
0..*</p>
        <p>Ramp
-name : string</p>
        <p>Gate
-letter : char
-number : int</p>
        <p>1</p>
        <p>Air Traffic Control
GroundControl</p>
        <p>Tower
1..*</p>
        <p>Command
1</p>
        <p>Turn
0..1 -direction : Direction 1</p>
        <p>-taxiway : Taxiway
Left</p>
        <p>Right</p>
        <p>HoldShort
-way : Way</p>
        <p>
          Contact
-atc : Air Traffic Control
The transformation of the class diagram into the CFG above, albeit manual, followed
a predefined collection of transformation rules. The manual transformation of the
ontology into the class diagram is less formal, but was done by connecting the
properties of the classes in the ontology with the graphical representation of the class
diagram. In order to provide a more automated transformation between the ontology
and the class diagram, developing a transformation between an Web Ontology
Language (OWL) instance for the ontology and a textual representation of the class
diagram could be considered. Related to this, UML-based ontology development has
been proposed [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Specifically for this case, the transformation between an
XMLbased OWL file into a class diagram represented in XMI could assist in the
automation of the ontology to class diagram step. After the transformation to a CFG,
some keywords have been added to the CFG for easier human parsing, as shown in
Listing 3.
        </p>
        <p>Listing 3. Addition of keywords and production refactoring
AIRPORT ::= WAYS RAMPS ATC
WAYS ::= WAYS WAY | WAY
WAY ::= runway RUNWAY | taxiway TAXIWAY
RUNWAY ::= number DIRECTION
TAXIWAY ::= name
RAMPS ::= RAMPS RAMP | RAMP
RAMP ::= ramp name GATES
GATES ::= GATES GATE | ε
GATE ::= gate letter number
ATC ::= GROUNDCONTROL | TOWER
GROUNDCONTROL ::= COMMANDS
COMMANDS ::= COMMANDS COMMAND | COMMAND
COMMAND ::= CONTACT | FOLLOW | HOLDSHORT | TURN
CONTACT ::= contact ATC
FOLLOW ::= follow AIRCRAFT
HOLDSHORT ::= hold short WAY
TURN ::= turn DIRECTION on TAXIWAY
DIRECTION ::= left | right | ε
AIRCRAFT ::= airlineID flightNumber</p>
        <p>TOWER ::= tower
An example of a program written in this DSL is shown in Listing 4 and is based on
the CFG of Listing 3. Even from this simple DSL for ground control, it can be seen
that some simple verification of aircraft path control can be checked. The
development of the DSL has been aided by the ontology that was initially produced,
which in turn assisted in the generation of a class diagram. This provided a means to
understand the domain in the early stages of DSL development, which provided input
to the subsequent structure of the DSL, as seen in the grammar in Listing 2.
Listing 4. An example program
// description of BHM airport
runway 6 runway 24 runway 18 runway 36
taxiway A taxiway A1 taxiway A2 taxiway A3 taxiway A4 taxiway B taxiway B1
taxiway F taxiway G taxiway G1 taxiway H taxiway H2 taxiway H4
ramp Cargo
ramp Terminal gate B1 gate B2 gate B3 gate C1 gate C2 gate C3 gate C4 gate C5
// commands from Ground Control
turn right on A
turn left on M
hold short runway 18
contact tower
An object diagram of the example program in Listing 4 is illustrated in Figure 3.
Airport-related structures such as gates, ramps, runways, and taxiways are represented
by multiple objects that will differ among various airports. However, the types of
commands issued by the ground control remain the same. The specific attributes of
the command objects are based on the objects of the structures of a particular airport,
e.g., taxiway A and M, and runway 18. As described in Section 3.3, evaluating the
instances of the classes provides information regarding the elements of the domain
that are common (or fixed) and those that are variable.</p>
        <p>runway1 : Runway
number : int = 6
orientation : Direction
runway2 : Runway
number : int = 24
orientation : Direction
runway3 : Runway
number : int = 18
orientation : Direction
runway4 : Runway
number : int = 36
orientation : Direction</p>
        <p>airport : Airport
Code : string = BHM
taxiway1 : Taxiway
name : string = A
taxiway2 : Taxiway
name : string = A1
taxiway3 : Taxiway
name : string = A2
taxiway13 : Taxiway
name : string = M
groundControl : GroundControl</p>
        <p>ramp1 : Ramp
name : string = Cargo</p>
        <p>ramp2 : Ramp
name : string = Terminal
gate1 : Gate
letter : char = B
number : int = 1</p>
        <p>gate2 : Gate
letter : char = B
number : int = 2</p>
        <p>gate3 : Gate
letter : char = B
number : int = 3
gate4 : Gate
letter : char = C
number : int = 1
gate8 : Gate
letter : char = C
number : int = 5
tower : Tower
command1 : Turn
direction : Direction = right
taxiway : Taxiway = A</p>
        <p>command2 : Turn
direction : Direction = left
taxiway : Taxiway = M
command3 : HoldShort
way : Way = 18</p>
        <p>command4 : Contact
atc : Air Traffic Control = tower
Section 3 summarized the development of a preliminary ontology using the standard
development process as seen in literature using a well-known tool called Protégé
2000. The usefulness of the ontology was measured by answering several competency
questions that were selected to match the goals of domain analysis. Domain concepts
and their interdependencies were determined. In addition, commonalities and
variabilities as they relate to the DSL can be determined by observing the instances of
the classes in the ontology. It should be noted that the ontology and class diagram
went through several iterations before reaching the state described in Section 3.
However, further refinements may help to provide more satisfactory answers to the
competency questions. The ontology was then used to manually generate a conceptual
class diagram, which in turn produced an initial context-free grammar for the
proposed DSL.</p>
        <p>
          The case study has shown the potential usefulness of ontology in the development
of a DSL specifically during the early stages of development. An ontology can
provide a well-defined and structured process to determine the concepts of a domain
and the commonalities and variabilities for a DSL, which can result in the generation
of a class diagram and subsequently a CFG from the information. Two further
observations highlight the benefits of an ontology-based approach. First, if an
ontology is already available for a domain, then this existing ontology can be used to
initiate the development of a DSL without the need to start from scratch. This was not
the case for the air traffic communication domain described in Section 3, but
ontologies for other domains could already exist and be utilized in the DSL
development for those domains. Second, the entire process outlined in Section 3 could
be used as an alternative to a more formal domain analysis technique such as FODA.
In a separate direction, the ontology alone can be combined with formal domain
analysis techniques (e.g., proposed by Mauw et al. in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]) and be used as a supplier
of a well-defined input of domain concepts and relationships for further analysis.
5
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        De Almeida Falbo et al. describe the use of ontology in domain engineering that has
the purpose of developing software artifacts for reuse [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A more recent publication
demonstrates the use of ontology in engineering design requirements capture [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Both cases propose methodologies of utilizing ontology in terms of providing the
knowledge about a specific domain, albeit more in a general case of engineering.
However, the utilization of ontology in domain analysis in these works translates well
to the similar effort in DSL development. Guizzardi et al. associate ontology with the
development of Domain-Specific Visual Languages (DSVL) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The ontology is used
to assist in developing a representative language for a specific domain that is correct
and appropriate. Similarly, our initial investigation described in this paper utilizes
ontology as part of the main goal of developing a representative language for a
domain such as air traffic communication. However, in addition to this, the common
and variable elements of the domain are also considered through the ontology in order
to determine the structure of the domain-specific textual language (i.e., fixed and
variable language constructs).
      </p>
      <p>
        Gašević et al. describe efforts to associate the two technical spaces of
ModelDriven Architecture (MDA) and ontology, which include the utilization of
MDAbased UML in ontology development [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We follow a similar approach where a
connection is made between the ontology in Table 1 and the UML class diagram in
Figure 1. However, in addition to this association, we perform manual
transformations on the class diagram to obtain a context-free grammar for the DSL.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>An initial investigation of the usefulness of ontology in domain analysis in DSL
development was described in this paper. A case study demonstrated the insertion of
ontology development in the DSL development process, where a class diagram was
obtained from the ontology and subsequently a CFG was produced. The ontology
assisted in answering questions related to the domain, such as the main concepts and
their interdepencies, and the common and variable parts related to the DSL. The
ontology also provided a structured input to the subsequent stages of DSL
development. Continued exploration of ontology-driven domain analysis may provide
further proof of effectiveness in the analysis of domains for DSL development.</p>
      <p>
        The class diagram in Figure 2 that was generated from the ontology can also serve
as the basis for creating a metamodel. Slight adaptations of this diagram could
represent the metamodel for a tool like the Generic Modeling Environment (GME)
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], which provides a domain-specific modeling language that has a concrete syntax
that resembles concepts from the domain. Thus, the results of the domain analysis and
the observed ontology can inform technologies of both grammarware and modelware.
This direction will be explored as future work. In addition, the transformations that
were performed were done manually based on predefined transformation properties.
A possibility for a more automated step is the transformation of the Web Ontology
Language (OWL) representation into a Backus-Naur Form (BNF) representation for
the DSL. Such a transformation may map similar elements and perform some
alterations between the representations. This direction will also be considered in
future work.
      </p>
      <p>Acknowledgments. This project is supported in part by NSF grant CPA-0702764.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Booch</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Object-Oriented Development</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>12</volume>
          ,
          <fpage>211</fpage>
          --
          <lpage>221</lpage>
          (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Chandrasekaran</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Josephson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benjamins</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <source>What Are Ontologies, and Why Do We Need Them? IEEE Intelligent Systems</source>
          <volume>14</volume>
          ,
          <fpage>20</fpage>
          --
          <lpage>26</lpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eisenecker</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Generative Programming: Methods, Tools, and Applications</article-title>
          . Addison-Wesley, Boston (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Darlington</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Culley</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Investigating Ontology Development for Engineering Design Support</article-title>
          .
          <source>Advanced Engineering Informatics</source>
          <volume>22</volume>
          ,
          <fpage>112</fpage>
          --
          <lpage>134</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>De</given-names>
            <surname>Almeida Falbo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Guizzardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Duarte</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.</surname>
          </string-name>
          :
          <article-title>An Ontological Approach to Domain Engineering</article-title>
          . In: International Conference on Software Engineering and Knowledge Engineering (SEKE), pp.
          <fpage>351</fpage>
          --
          <lpage>358</lpage>
          , Ischia, Italy (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Gašević</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djurić</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devedžić</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <source>Model Driven Architecture and Ontology Development</source>
          . Springer, Berlin (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Guizzardi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferreira</surname>
            <given-names>Pires</given-names>
          </string-name>
          , L.,
          <string-name>
            <surname>van Sinderen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Ontology-Based Evaluation and Design of Domain-Specific Visual Modeling Languages</article-title>
          .
          <source>In: International Conference on Information Systems Development</source>
          , Karlstad, Sweden (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hess</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Novak</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterson</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report</surname>
            <given-names>CMU</given-names>
          </string-name>
          /SEI-90
          <string-name>
            <surname>-</surname>
          </string-name>
          TR-
          <volume>21</volume>
          , Software Engineering Institute, Carnegie Mellon University (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Lédeczi</surname>
            ,
            <given-names>Á.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bakay</surname>
          </string-name>
          , Á.,
          <string-name>
            <surname>Maróti</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Völgyesi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nordstrom</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sprinkle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karsai</surname>
          </string-name>
          , G.:
          <article-title>Composing Domain-Specific Design Environments</article-title>
          .
          <source>IEEE Computer 34</source>
          ,
          <fpage>44</fpage>
          --
          <lpage>51</lpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Mauw</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wiersma</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Willemse</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Language-Driven System Design</article-title>
          .
          <source>International Journal of Software Engineering and Knowledge Engineering</source>
          <volume>14</volume>
          ,
          <fpage>625</fpage>
          --
          <lpage>664</lpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Mernik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heering</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sloane</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>When and How to Develop Domain-Specific Languages</article-title>
          .
          <source>ACM Computing Surveys</source>
          <volume>37</volume>
          ,
          <fpage>316</fpage>
          --
          <lpage>344</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Mernik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Črepinšek</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kosar</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rebernak</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Žumer</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Grammar-Based Systems: Definition and Examples</article-title>
          .
          <source>Informatica</source>
          <volume>28</volume>
          ,
          <fpage>245</fpage>
          --
          <lpage>255</lpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Noy</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Ontology Development 101: A Guide to Creating Your First Ontology</article-title>
          . http://www-ksl.stanford.edu/people/dlm/papers/ontology-tutorial-noymcguinness.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lay</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Software Product Line Engineering.</surname>
          </string-name>
          Addison-Wesley, Boston (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>