Ontology-Based Conceptual Models: A Proposal. J. Valaski, S. ... software requirements is obtained. ... In the context of software development, Requirements.
Environment for Requirements Elicitation Supported by Ontology-Based Conceptual Models: A Proposal J. Valaski, S. Reinehr, and A. Malucelli PPGIa, Pontifícia Universidade Católica do Paraná, Curitiba, Paraná, Brazil
Abstract - Requirements Elicitation is a Requirements Engineering activity that aids understanding of the customer’s needs. The lack of understanding of the problem domain, the poor communications among stakeholders and a lack of consensus regarding the use of terms, are some of the main challenges of this activity. Ontologies are a type of formalism that can be applied to aid understanding and reach a consensus in a knowledge domain. In this context, the goal of this study is to present a proposal for an environment that supports requirements elicitation from the early stages, when communications are more informal, to the point where a list of software requirements is obtained. This environment will be supported by natural language processing techniques and ontology-based conceptual model represented in OntoUML. An experiment is described with the objective to discuss the opportunities and difficulties that arise on the way to achieve the desired results. Keywords: Requirements Elicitation; Ontology; Natural Language Processing; OntoUML.
1 Introduction In the context of software development, Requirements Engineering is the field that supplies the appropriate mechanisms to understand customer’s needs [1]. Requirements Engineering can be characterized as an iterative process of discovery and analysis to produce for producing a clear, complete and consistent set of requirements of software [2] that can be represented in different forms. The initial result of the Requirements Engineering process is the production of several personal and not very clear visions of a system represented by informal languages, while the final result is a complete specification of the system represented formally, which all those involved have achieved and accepted. At the beginning of the process, it is common to see languages that are more informal, while at the end the specification is normally represented in formal languages [3]. Poor understanding of the business on the part of the requirements engineers and poor communication between the business specialists and computing specialists can compromise the quality of information [4]. Therefore, during software development, especially in its early stages, it is necessary to use a common language that enables shared understanding among stakeholders to aid the smooth flow of information that is obtained from different sources [5]. Broader understanding of
the problem domain is also fundamental in terms of communication and quality. The conceptual model is an instrument that enables the use of a common vocabulary and facilitates the comprehension and discussion of elements that may appear in the system. One of the most known conceptual metamodel is the EntityRelationship (ER). Nevertheless, the reason of the ER popularity is also its main weakness: the metamodel is simple and this feature helps the conceptual modelers, however, the metamodel does not present high expressivity. The UML is also a well-known language to build conceptual models, but it presents the same problem of expressivity. Ontologies have been an important element to support the construction of more expressive conceptual models. The main objectives of ontologies in this context include enabling a common shared language [6], aiding understanding of the problem domain [7], supporting the analysis of the expressivity of the language [8] and providing a language that represents a domain that is as close as possible to the real world [9]. Guided by these matters, Guizzardi [10] proposed OntoUML, a language used to represent ontology-based conceptual models. As the language is ontology-based, the assumption is that the conceptual models constructed in OntoUML are more expressive and represent the real world of the domain more faithfully than other languages of conceptual representation. The constructs proposed in OntoUML prevent the overload and redundancy found in other languages, such as, UML. Therefore, the problem of understanding the domain for correct requirements elicitation could be minimized if these models represented in OntoUML were used to derive the requirements. However, as OntoUML is a more expressive language, it proposes a larger set of constructs that are not easily identified, especially by novice modelers [11]. In this context, the present study aims to propose an environment that supports the construction of conceptual models by processing texts to derive initial requirements from a system to be developed. The presentation of this proposal is organized as follows: in Section 2, the basic concepts of the proposal are outlined; in Section 3 the works related to this proposal are presented; Section 4 presents the architecture of the proposed environment; an experiment is conducted and described in Section 5 to demonstrate and discuss the viability of the proposal; and in Section 6 the final considerations and recommendations for future works related to the proposal are presented.
2 Theoretical framework 2.1 Ontology in Requirements Engineering With their origins in philosophy, ontologies were employed to categorize knowledge and represent it through taxonomies. The current definition of an ontology has been improved and adapted according to the field in which it will be applied. In computer science, one of the most well-known definitions is given by Gruber [12]: “An ontology is a specification of a conceptualization”. In the field of Requirements Engineering, ontologies have been applied for different purposes: a common shared vocabulary [6]; the reuse and restructuring of knowledge [13]; understanding the problem domain [7]; analyzing language expressivity [8]; representation of the domain that is more faithful to the real world [9], and improvement of communications among specialists in different domains [14]. According to the objectives of the application of ontologies, the approach can be conceptual or computational. On this subject, Guizzardi [15] suggests a need for two classes of representation language in ontology engineering. The first class, referred to in this work as “conceptual” has to do with languages that are philosophically well founded, focusing on expressivity and conceptual clarity. The second class, referred to in the present study as “computational”, are languages that focus on computing matters such as decidability and automated reasoning. The class of language used in this work is conceptual.
things or beings and are said to be functional complexes. These can be natural (dog, person) or artifacts (television, house). A Subkind is also a rigid type that provides the identity principle and has some restrictions established and related to the Kind construct. Every object in a conceptual model must be an instance of only one Kind; Subkinds of one Kind must appear in the form of a disjoint partition, e.g., the “Person” concept is a Kind and the concepts of “Man” and “Woman” are Subkind. There are two sub-categories of Anti-Rigid Sortal: Phases and Roles. In both cases, the instances can change their types without affecting their identity. Whereas during the Phase construct the changes can take place as a result of changes of intrinsic properties, e.g., “Child”, “Adolescent”, “Adult,” which are concepts phases related to the “Person”. The alteration of intrinsic property age of a person causes a change in phase. In Role construct, the changes take place because of relational properties, e.g., “Student”, “Husband” and “Wife” which are concept roles related to “Person”. In the case of student, the relationship with a learning institution determines the role. The same applies to Husband and Wife. Type
ObjectType
Sortal Type
Non-Sortal Type
Anti-Rigid Sortal Type
Rigid Sortal Type
2.2 OntoUML The OntoUML language proposed by Guizzardi [10] was motivated by the need for an ontology-based language that would provide the necessary semantics to construct conceptual models with concepts that were faithful to reality. The classes proposed in OntoUML are specializations of the abstract classes of the Unified Foundational Ontology (UFO) and extend the original metamodel of UML. Although OntoUML represents several types of categories, due to space limitations, in this paper only the main constructs that make up the object type category will be presented [11]. In this category, constructs are more closely related to the static conceptual modeling of a domain. The hierarchical structure of these models is described in Fig.1. The Object Type constructs can be Sortal and Non-Sortal. The sortal provides identity and individualization principles to their instances, while the non-sortal does not supply any clear identification principles. The Sortal constructs are classified as Rigid Sortal and AntiRigid Sortal. A Sortal is said to be rigid if it is necessarily applied to all its instances in all possible worlds. A Sortal is said to be anti-rigid if it is not necessarily applied to all its instances. To demonstrate this difference, the “Person” concept can be used as a Rigid Sortal and the “Student” concept as an AntiRigid sortal. The Rigid Sortal includes the Kind and Subkind categories. A Kind is a Rigid Sortal, and therefore has intrinsic material properties that provide clear identity and individualization principles. It determines existentially independent classes of
Kind
subKind
Phase
Role
Figure 1 Fragment of metamodel (Guizzardi, 2005)
In comparison with UML, OntoUML has a larger set of constructs, enabling greater expressivity of conceptual models and avoiding overload and redundancy [10]. Nevertheless, it is more complex to use it than using traditional languages such as UML, especially for novice modelers [11]. One of the difficulties of constructing a model represented in OntoUML is identifying the correct construct for a given concept to be represented. In this sense, it is important to develop automatic or semi-automatic mechanisms that help the domain modeler to identify this concept and its correct construct. A linguistic approach with a semantic focus can be applied to aid comprehension of the concepts to be modeled [16].
2.3 Semantic types and disambiguation Dixon [17] proposes a semantic organization for words in classes of meaning known as semantic types. In this proposal, semantic types handle nouns, adjectives and verbs. Generally, in conceptual modeling, nouns are the semantic types that indicate important concepts in a conceptual modeling. That being the case, due to space limitation, only some categories of semantic types related to nouns will be given as example. For the semantic noun, five main categories are proposed: Abstract Reference, Activities, Concrete Reference, States and Speech Acts. Each of these categories may have sub-categories. Concrete Reference, has the following categories, for instance:
Animate: living animal beings, but not human beings; Human: living human animals; Parts: nouns whose referents are components parts of an individual; and Inanimate: nouns referring to inactive, non-living things. The semantic types can be mapped to the constructs of OntoUML [16] and thereby enable semi-automatic support for their identification using Natural Language Processing (NLP). However, one of the challenges of automatic identification of the semantic type is the disambiguation of the term [16][18]. A word can have several meanings and the correct identification of its meaning may depend on the context in which it is used. The task of computationally identifying the meaning of words based on their context is known as Word Sense Disambiguation (WSD) [19]. There are techniques and algorithms for disambiguation, such as TargetWord, which is applied only in the case of a target word in a sentence, and the AllWord, which is applied to all words in a sentence. An example of a disambiguation technique is Wordnet::SenseRelated [19]. Wordnet:SenseRelate is based on Wordnet, which is a lexical base for the English language. This tool performs the disambiguation of a term found in the base and also identifies the corresponding semantic type.
3 Related work One of the first works found in literature proposing the use of ontologies for constructing conceptual models is presented by [20]. In this work, a methodology was proposed for knowledge acquisition based on the use of natural language and mental models. The methodology is composed of an interview, diagrams and a conceptual analysis. The conceptual analysis was conducted through the construction of an ontology in which what constitutes the discourse domain is defined. The ontology was applied to limit the vocabulary that the computer would have to understand. In [21] proposed domain ontologies and task ontologies to be used in a domain-oriented software development environment. The domain and task ontologies were built in the fields of cardiology, acoustic propagation and entomology (the study of insects). The ontology was represented using Prolog. In this proposal the role of the ontologies was to aid understanding of the domain and its tasks, contributing with elicitation and specification, such as what is written in use cases. In [22] texts and use cases were processed to extract relevant terms from the problem domain. An ontology was then created that would later be used to identify the system object model. The ontology was generated in XML and RDF. The objective of the ontology was to provide metadata that would offer controlled vocabulary from the domain and transform the textual requirements into an object model. In [23] a methodology was proposed for the development process of multi-agent software. The methodology considers d. The use of OntoUML helps on understanding of the discourse universe, i.e., the domain, without concern over the software to be developed. The ontology-based conceptual model support the understanding of the domain as it is organized. Fig. 2 shows the
aspects from the requirements analysis up to the implementation of the system. In the requirements stage, the use of the Problem Ontology Domain (POD) was proposed to obtain a general view of the problem domain. The ontology helps to identify concepts during the requirements phase through class diagrams. The role of the ontology was to provide an associated vocabulary to the problem domain and reuse knowledge. The creation of a domain ontology derived automatically from texts described in Controlled Natural Languages (CNL) was proposed in [24]. The domain ontology model was later transformed into a UML class model. The ontology was generated using the Protégé tool and represented in OWL. The objective of the ontology was to support the creation and validation of artifacts generated from descriptions in CNL up to the class diagram. A linguistic approach with a semantic focus on comprehending the concepts to be modeled adopting OntoUML was proposed in [16]. As an extension of this proposal, a semi-automatic method was proposed for the learning of well-founded ontologies through disambiguation of terms [18]. Out of the works that were analyzed, those most closely related to this proposal are [24], [16] and [18]. In proposal [24] the modeling language is UML, which limits the building of ontology-based conceptual models. In proposals [16] and [18], OntoUML is used for conceptual modeling, but the method that is proposed has no environment that provides computational support from the building of the conceptual model to the derivation of requirements.
4 Proposed environment As shown in the previous section, works can be found in literature that have already proposed and applied ontologies to support activities related to Requirements Elicitation using conceptual modeling as a base. However, no proposals were found for the derivation of requirements from ontology-based conceptual models. Neither was any proposal found for an environment that provides computational support to all tasks involved in the elicitation process up to the derivation of requirements using the ontology-based conceptual model. Therefore, this study is motivated by the proposition of this environment. The proposed environment should support the identification of important terms pertaining to a domain, the disambiguation of relevant terms, the building of the conceptual domain model and the derivation of requirements in this domain. Identification of important terms can be done through electronic messages or the processing of documents exchanged by project stakeholders. NLP tools could be used to identify the relevant terms and identify the semantic types. The initial lexical base could be the WordNet. To build the ontological conceptual model the language could be OntoUML as it is ontology-base
architecture and flow of tasks to be semi-automated by the proposed environment.
Figure 2 Architecture of the proposed environment
Part of the flow is based on the model proposed by [18]. The text to be processed could be originated from dialogues among stakeholders or documents (laws, internal documents, e-mails, etc.) that describe the domain in question. Using this text, the following tasks will be executed by the environment: i) Identify important terms: when a text is received in order to be used by NLP, the relevant texts will be extracted automatically; ii) Build XML tagged file: with the important terms identified and the original text, an automatic routine will be executed to create an XML file with the tagged terms; iii) Disambiguation and supersense extraction: with the XML file generated, algorithms will be executed for the disambiguation of the tagged terms using WordNet as a lexical database; iv) Semantic type and OntoUML mapping: with the terms disambiguated the constructs will be identified automatically using mapping of the semantic types and the OntoUML constructs; v) Build model semi-automatically: with the main constructs identified, routines will be developed to support the semi-automatic building of the model. The process will not be totally automated because the algorithms available cannot identify the correct semantic type in every situation. The identification of the relationships should also be a task that is performed semiautomatically. Here the guide based on Design Patterns proposed in [11] could be used; and vi) Derive list requirements: from the conceptual model a list of the possible requirements deduced from the relationships established among the concepts will be generated automatically.
5 Experiment To demonstrate and discuss the viability of the proposed environment, an experiment was conducted. The method used for its execution and the results obtained are presented below, followed by a discussion of the findings.
5.1 Method The experiment was conducted based on the stages of the method proposed in [18]: i) Identifying important terms: in this stage, a text was selected to describe a knowledge domain and from this the conceptual model could be built. The text was extracted from [25] in which the domain of a bus route is described. In this work, there is also an entity relationship (ER) model that corresponds with the text. In this way, the elements proposed in the ER model were used to compare some results. The text used in the experiment is shown in Table I; ii) Determining the meaning of important terms: to select the important terms, the topia.termextract version 1.1.0, developed by Python (https://pypi.python.org/pypi/topia.termextract/) was used. This tool was chosen because it is easy to use, it gives satisfactory results and its use is free; iii) Identifying the semantic types of each term: following the identification of the relevant terms, an XML file was prepared with the original text tagged with the important terms
that had been identified. To process the file, the algorithm for disambiguation TargetWord [26] was used with the help of Wordnet::SenseRelate. After the test with the metrics (lch, hso, wup, res, lin, jcn and lesk), the lesk was the metric that was used to execute it as it had the most satisfying results. A previous test was made using the example illustrated in [18]; and iv) Choosing the OntoUML for each semantic type: after the semantic type of each term had been identified, the Supersense indicated by the WordNet base was obtained, using the mapping proposed in [16]. In the original method [18] another stage is proposed: Building the OntoUML model”. This stage was not executed as no available mechanisms were located to enable the automatic building from the constructs that were identified. TABLE 1. SELECTED TEXT Text There are two ways for people to travel with Voyager. Either passengers can make a reservation on a trip, or passengers can show up at the boarding gate without a reservation and purchase a ticket for an unreserved seat. Passengers with a reservation are assigned a reservation date, whereas, passengers without reservations are assigned a boarding date. The name and addresses of all passengers are collected. Telephone numbers are collected where possible. All bus trips are organized into daily route segments. All daily route segments have both a start time and an end time. Each daily route segment. Voyager organizes is classified as a route segment with a segment number, start town, and finish town. Voyager offers a range of trips, and each trip is made up of one or more route segments. For every trip there is a trip number, start town, and finish town. If the trip is organized around a special event, the event name is also associated with the trip. Each daily route segment that Voyager offers is part of a dally trip. A daily trip is undertaken by one or more bus drivers. The name, address, and employee number of all drivers is collected. Voyager also records information about absent drivers. When a driver is absent. Voyager records the absence start date and the details about the absence. The absent driver provides one or more reasons for being absent and each reason is assigned a detail number and a short description. Voyager also collects information about the buses used for daily trips. Buses have a make, model, and registration number. For buses in use, the average daily kilometers is collected. If a bus requires maintenance, Voyager notes the date on which the bus entered maintenance and records the one or more problems with the bus. Voyager assigns a problem number and a short description for every maintenance problem. Finally, the average cost to repair all problems with a bus in maintenance is also recorded.
5.2 Results and discussion i) Important terms: the algorithm was executed using topia.termextract and returned 33 important terms, as shown in Table II. TABLE II. IMPORTANT TERMS Terms bus; bus drivers; bus trips; date; detail number; driver; employee number; end time; event name; maintenance; maintenance problem; name; number; passenger; problem; problem number; record; records information; registration number; reservation; reservation date; route; route segment; segment; segment number; telephone numbers; town; trip; trip number; unreserved seat; voyager records; Voyager; Voyager notes.
To check the accuracy of the results, the elements proposed in the ER model [25] and the terms obtained automatically were
mapped. Table III shows the elements in the ER model and the relationship with the automatically identified important terms. TABLE III. MAPPING BETWEEN ELEMENTS OF THE ER MODEL AND THE RELEVANT TERMS
Element type
Concept (ER model) Passengers Name Address Telephone Reservation Date Boarding Date Daily Route Segment Start Time Finish Time
Entity Attribute Attribute Attribute Attribute Attribute Entity Attribute Attribute
Relevant term mapped Passenger Name Telephone number; number Reservation date; date Date Route segment; route End time
Aver. No. Of Passengers
Attribute
-
Aver. No. Of Reservations Attribute
-
Daily Trips Finish Time (duplicate) Start Time (duplicate) Route Segment Segment# Start Town Finish Town Bus
Entity Attribute Attribute Entity Attribute Attribute Attribute Entity
Bus trips End time Route segment; route; segment Segment number; number Town Town Bus
Aver. Daily Kilometers
Attribute
-
Reg. Make Model
Attribute Attribute Attribute
Registration number -
Date Entered Maintenance Attribute
Date
Trip Trip# Start Town (duplicate) Finish Town (duplicate) Special Event Driver Employee# Name (duplicate) Address (duplicate) Absence Start Date Maintenance Problems Problem# Description#
Entity Attribute Attribute Attribute Attribute Entity Attribute Attribute Attribute Attribute Entity Attribute Attribute
Trip Trip number Town Town Event Name Driver; bus Driver Employee number; number Name Maintenance Problems; maintenance; problem Problem number; number
Average Cost to Repair#
Attribute
-
Absence Details Details# Description# (duplicate)
Entity Attribute Attribute
Detail number -
-
Only the elements of the entity and attribute type are shown. The mapping was done just to compare if the automatic extraction process was accurate. Of the 34 different concepts presented in the ER model (9 entities and 25 distinct attributes), only 11 distinct concepts (32.5%) had no mapping with an important term. While 23 distinct concepts had mapping (67.5%). It is important to emphasize that some terms found in
the ER model were not found in the text (Aver.No.Of Reservations and Aver.No.Of Reservations). On the other hand, of the 33 automatically identified important terms, only 7 (21.2%) terms (record, records information, unreserved seat, voyager records, Voyager and Voyager notes) had been mapped with the concepts presented in the ER model. Of these 7 terms, 3 were related to the name of the tourist company (Voyager), which is conceptually not relevant. While 26 (78.8%) terms had been mapped. These results proved to be satisfactory, enabling the experiment to proceed to the next stages. ii) Important terms: sense, semantic type and the OntoUML construct. Of the 33 important terms, the terms that involved the name of the tourist company (voyager records, Voyager, Voyager notes) were excluded because they were not interesting terms for disambiguation. The simple terms with composite correspondents and which were not used in the text separately (route, segment, number) were also excluded. In the end, disambiguation was performed on 27 terms. Fig. 3 shows a
sample of the XML file with the important terms tagged in the text.
Figure 3 XML file with tagged text
The meanings identified by the TargetWord algorithm are shown in Table IV.
TABLE IV. IMPORTANT TERMS AND MAPPING WITH ONTOUML Important Term Bus Bus drivers Bus trips Date
WordNet Sense #1: a vehicle carrying many passengers; used for public transport #1: someone who drives a bus #6: a particular day specified as the time something happens
Supersense artifact person time
Semantic Type artifact rank time
OntoUML Construct kind role datatype
Detail Number Driver Employee Number End time Event name Maintenance
#1: the operator of a motor vehicle #1: activity involved in maintaining something in good working order
person act
rank activity
role kind
Maintenance Problem
-
-
-
-
Name Passenger
communication person
activity rank
kind role
Problem Problem Number Record
#1: a language unit by which a person or thing is known #1: a traveler riding in a vehicle (a boat or bus or car or plane or train, etc.) who is not operating it #3: a source of difficulty #7: a document that can serve as legal evidence of a transaction
cognition possession
activity
manual kind
Records Information
-
-
-
-
Registration Number Reservation
#1: the number on the license plate that identifies the car that bears it #2: a statement that limits or restricts some claim
communication communication
activity activity
kind kind
Reservation Date Route Segment Segment Number
-
-
-
-
Telephone Number
-
-
-
-
Town
#1: an urban area with a fixed boundary that is smaller than a city
location
place
datatype
Trip
#1: a journey for some purpose
act
activity
kind
Trip number Unreserved Seat
-
-
-
-
The disambiguation of terms related to entities, was more accurate than the disambiguation of terms related to attributes. Of 8 important terms related to entities, 5 (62.5%) (bus, bus drivers/driver, maintenance, passenger and trip) were disambiguated and the mapping was done between the
important terms and the OntoUML constructs. On the other hand, of 19 important terms related to attributes, only 7 (36.8%) terms were disambiguated. It also was observed that sense identification for composite terms are less efficient.
From this viewpoint, it can be concluded that the method and tools are more efficient for identifying simple terms and terms related to entities. For complete identification of all the concepts, human intervention is required. It is also important to observe that the WordNet is a database of generic terms. In specific domains, disambiguation performance may not be possible due to the lack of record of all senses related to the terms to be disambiguated. Thus, there is a need to develop mechanisms in order to support the establishment of a semantic database for specific domains, which terms will not be found in the WordNet database. In addition to aiding the disambiguation of the terms in specific domains, additional information can be recorded in order to support the development of the ontology-based conceptual model.
[4]
6 Final considerations
[10]
Up to now, software requirements elicitation remains based on informal communications. For this reason, this stage is characterized by problems such as deficient communication, lack of consensus concerning the use of terms and lack of knowledge of the domain. To resolve part of these problems, studies are proposing the use of ontologies, a formalism with the purpose of facilitating communications by way of a common vocabulary and sharing knowledge of a knowledge domain. However, in these proposals there is no environment to support requirement elicitation based on ontological conceptual models. The use of an ontological conceptual model would enable a closer view of the domain to be represented. However, the building of an ontological conceptual model is not an easy task, especially for novice modelers. OntoUML is a language for building ontology-based conceptual model, but it is considered more complex than other languages such as UML. Therefore, it is necessary to create mechanisms to aid people in the building of this model. The use of NLP techniques is proposed to identify these constructs in the communications among those involved and thus support the semi-automatic construction of this model. It is assumed that from the conceptual model it is possible to automatically generate a list of requirements, since the ontology-based model reflects a domain more faithfully. The future works related to this proposal are: i) Improving the environment proposed integrating techniques to support the process; ii) testing with NLP algorithms for comparing results; iii) to propose a method in order to update a semantic database in a specific domain; iv) development of semi-automated support for building the conceptual model; v) and to propose a method for the derivation of requirements from the conceptual model;
[5] [6]
[7] [8]
[9]
[11]
[12]
[13] [14] [15]
[16]
[17] [18]
[19]
[20]
[21]
[22]
[23]
[24]
REFERENCES [1] [2]
[3]
R.H., Thayer, and M. Dorfman, “Software Requirements Engineering”, 2d Ed. IEEE Computer Society Press, 1997. W., Robinson, and S. Pawlowski, “Managing requirements inconsistency with development goal monitors”, IEEE Transactions on Software Engineering, 25, 1999. K. Pohl, “Requirements engineering: An overview”, In Encyclopedia of Computer Science and Technology. A. Kent, and J. Williams, Eds.Marcel Dekker, New York, NY, vol. 36, suppl. 21, 1997.
[25]
[26]
J. Luis, D. Vara, and J. Sánchez, “Improving Requirements Analysis through Business Process Modelling : a Participative Approach”, 1, pp 165–176, 2008. S.W. Lee, and R. Gandhi, “Ontology-based active requirements engineering framework”, in Engineering Conference, APSEC, 2005. G.N. Aranda, A. Vizcaíno, A. Cechich, and M. Piattini, “A Methodology for Reducing Geographical Dispersion Problems during Global Requirements Elicitation”, in WER, pp 117–127, 2008. L. Li, “Ontological modeling for software application development”, Advances in Engineering Software, 36, pp 147–157, 2005. M. Harzallah, G. Berio, and A.L. Opdahl, “New perspectives in ontological analysis: Guidelines and rules for incorporating modelling languages into UEML”, Information Systems, 37, pp 484–507, 2012. H. Zhang, R. Kishore, R. Sharman, and R. Ramesh, “Agile Integration Modeling Language (AIML): A conceptual modeling grammar for agile integrative business information systems”, Decision Support Systems, 44, pp 266-284, 2007. G. Guizzardi, “Ontological Foundations for Structural Conceptual Models”, Telematica Instituut Fundamental Research Series 15, Universal Press, 2005. G. Guizzardi, A. Graças, and R.S.S. Guizzardi, “Design Patterns and Inductive Modeling Rules to Support the Construction of Ontologically Well-Founded Conceptual Models in OntoUML”, 3rd Workshop on Ontology Driven Inf. Systems (ODISE 2011), London. T.R. Gruber, “Toward Principles for the Design of Ontologies Used for Knowledge Sharing”, International Journal of Human and Computer Studies, 43(5-6), pp 907-928, 1995. R. Girardi, and A. Leite, “ A knowledge-based tool for multi-agent domain engineering”, Knowledge-Based Systems, 21, pp 604–611, 2008. H. Kilov, and I. Sack, “Mechanisms for communication between business and IT experts” Computer Standards & Interfaces, 31, pp 98–109, 2009. G. Guizzardi, “On ontology, ontologies, conceptualizations, modeling languages, and (meta) models”, Frontiers in artificial intelligence and applications, pp 18–28, 2007. L. Castro, “Abordagem Linguística para Modelagem Conceitual de Dados com Foco Semântico”, Msc Dissertation, Universidade Federal do Estado do Rio de Janeiro, Rio de Janeiro, Brazil, 2010. R.M. Dixon, “A Semantic Approach to English Grammar”, 2nd ed. Oxford University Press, USA, 2005. F. Leão, K. Revoredo, and F. Baião, “Learning Well-Founded Ontologies through Word Sense Disambiguation”, in proceeding of: 2nd Brazilian Conference on Intelligent Systems (BRACIS-13), 2013. T. Pedersen, and V. Kolhatkar, “WordNet:: SenseRelate:: AllWords: a broad coverage word sense tagger that maximizes semantic relatedness”, Human Language Technologies, 2009. S. Regoczei, and E.P.O Plantinga, “Creating the domain of discourse: ontology and inventory”, International Journal of Man-Machine Studies, 27, pp 235–250, 1987. K.M. Oliveira, F. Zlot, A.R. Rocha, G.H. Travassos, C. Galotta, and C.S. Menezes, “Domain-oriented software development environment”, Journal of Systems and Software, 72, pp 145–161, 2004. W. Vongdoiwang, and D.N Batanov, “An ontology-based procedure for generating object model from text description”, Knowledge and Information Systems, 10(1), pp 93–108, 2006. M. Cossentino, N. Gaud, V. Hilaire, S. Galland, and A. Koukam, “ASPECS: an agent-oriented software process for engineering complex systems’, Autonomous Agents and Multi-Agent Systems, 20(2), pp 260– 304, 2009. P.F. Pires, F.C. Delicato, R. Cóbe, T. Batista, J.G. Davis, and J.H Song, “Integrating ontologies, model driven, and CNL in a multi-viewed approach for requirements engineering”, Requirements Engineering, 16(2), 2011. A. Gemino, and Y. Wand, “Complexity and clarity in conceptual modeling: Comparison of mandatory and optional properties”, Data & Knowledge Engineering, 55(3), pp 301–326, 2005. TargetWord, accessed: http://search.cpan.org/~sid/WordNetSenseRelate-TargetWord-0.09/lib/WordNet/SenseRelate/Target Word.pm, date: 2014 January 3