An Operational Approach for Capturing and Tracing the Ontology Development Process Marcela Vegetti1, Luciana Roldán1, Silvio Gonnet1, Gabriela Henning2 and Horacio Leone1 1 Ingar (CONICET/UTN) Avellaneda 3657 – S3002GJC – Santa Fe – Santa Fe – Argentina 2 Intec (CONICET/UNL) Güemes 3450 – S3000GLN– Santa Fe – Santa Fe – Argentina {mvegetti,lroldan,sgonnet,hleone}@santafe-conicet.gov.ar, ghenning@intec.unl.edu.ar Abstract. The history of an ontology development project, including its intermediate products, together with the executed activities, and the decisions made, might be of great importance in other future ontology developments. However, current tools supporting this kind of projects do not capture such information; thus, the process trace is lost, and any new ontology development project would start from scratch. This paper presents a framework meant to do overcome these deficiencies, allowing the capture and trace of such projects. 1. Introduction Until the mid-90s, ontologies were developed without addressing systematic procedures. Therefore, the ontology development process was an art rather than an engineering activity [Fernández-López et al., 1999]. In the last decade, many ontology development processes have changed from the traditional ones, performed by isolated knowledge engineers or domain experts, into collaborative processes executed by mixed teams [Bernaras et al. 1996]. In such teams, experts in knowledge acquisition and modeling, domain specialists, and experts in implementation languages collaborate to build ontologies, according to well-established methodologies. The expertise of each team member, as well as the executed activities, and the decisions made during the development process might be of great importance in future projects. However, current tools supporting ontology development processes do not capture such information; thus, the process trace is lost, and any new project would start from scratch. In fact, once a given ontology development process is finished, the things that remain are mainly isolated design products (e.g., requirement specifications, competency questions, class diagrams, specific language implementations, etc.), without an explicit representation of how these products were obtained, and with no capture of the rationale behind the process. In addition, ontology building is turning into a more professional engineering activity that needs to be managed and measured in order to obtain high quality results; and such management requires an explicit representation of the development process. The issues pointed out before constitute essential challenges that need to be addressed. In order to tackle them, this contribution proposes ONTOTracED, a framework to represent, capture and trace ontology development processes. This paper is organized 36 as follows: after discussing some issues about ontology development processes in Section 2, the framework components are presented in detail in Section 3. Finally, Section 4 concludes the paper and offers paths to future work. 2. Ontology development processes Ontology Engineering (OE) is a relatively new field concerning ontology development processes, the ontology life cycle, the methods and methodologies for building ontologies, and the tool suites and languages that support them. A series of methodologies have been reported in the literature in the last two decades. An extensive state-of-the-art overview of these methodologies can be found in Gómez-Pérez et al. (2004). In addition, Cristani and Cuel (2005) have proposed a framework to compare ontology engineering methodologies and evaluated the established ones accordingly. The first contributions in the field, which are due to several authors [Gruber 1993], [Grüninger and Fox 1995], [Uschold et al. 1998], [Uschold and Gruninger 1996], set the grounds for many subsequent proposals. Gruber’s work [Gruber 1993] discussed some basic ontology design criteria associated with the quality of the developed ontology, as well as related to the methodology used to build it. Gruninger and Fox (1995) provided a building methodology based on Competency Questions. Methontology [Fernández- López et al. 1999] which is an ontology development process, proposed an ontology lifecycle based on evolving prototypes and specific techniques to address each activity of the approach. With emphasis on knowledge management, Staab et al. (2001) proposed On-To-Knowledge. Other approaches, related to industry or research projects, include the methods used for building CyC, SENSUS [Swartout et al. 1997] and Neon [Suárez- Figueroa et al. 2012]. These works report different principles, design criteria, and stages of the development process. However, no one is yet emerging as a clear reference [De Nicola et al. 2009]. Despite recent advances, there are few computational tools supporting the above mentioned methodologies. Neon Toolkit supports the Neon methodology and allows scheduling the stages that will be included in the design of a specific ontology. However, such tool neither captures the operations actually executed when adding a concept, a relation among concepts, etc., nor the rationale behind such operations. Consequently, there is still room for improvement in the OE field. 3. A framework to capture and trace the ontology development process Generally, at the end of an ontology development process the things that remain are mainly unconnected design products (e.g. the requirements specification, competency questions, ontology class diagrams, the ontology implementation in a specific language, etc.), without an explicit representation of how they were obtained, and with no capture of the history and rationale behind the project. More specifically, there is no trace of the activities that have led to any of the products, the requirements imposed at each stage of the process, the actors that have performed each of the activities, and the underlying rationale behind each decision that was made. To overcome these weaknesses, this work proposes a comprehensive framework to represent, capture and trace the ontology development process, along with its associated products and their evolution. Fig. 1 shows the main components of the proposed framework, that includes: (i) a Conceptual Model, which is able to represent generic design processes; (ii) an Ontological Engineering Domain Model (OEDM) that specifies the concepts that are 37 required to describe ontology development processes, and (iii) a support computational environment, named TracOED (Tracking Ontology Engineering Designs), that implements both the conceptual model and the OEDM to enable the capture of specific ontology design processes, along with their associated products. ONTOTracED framework Conceptual Model Ontology Development TracOED Process Representation Space Process captures and Version Manager implements Activity traces Domain Editor Product Representation Space Version Repository specifiedBy Specification Space By OEDM Domain Operation Figure 1. Components of the proposed framework. The supporting Conceptual Model is based on an operational-oriented approach that envisions the ontology development project as a sequence of activities that operates on the products of the development process. The proposal defines two representation spaces to model generic design process concepts: the Process and Product spaces. In addition, a third component (the Specification Space in Fig. 1) is included to fully specify a flexible model that is able to represent and capture design processes pertaining to specific engineering fields. The Ontological Engineering Domain Model component can represent and capture particular ontology development projects, based on building-blocks that define the products obtained, as well as the activities carried out during this type of processes. This representation includes those modeling elements that are most commonly used in the methodologies that nowadays guide ontology development processes. Among these modeling elements are: the competency question, concept, and relation concepts, etc. In order to show how this proposal may be applied when ontologists want to stick to specific methodologies and/or approaches, the ontological categories proposed by the Unified Foundational Ontology (UFO) [Guizzardi 2005] have been added to the Ontological Engineering Domain Model. UFO is a language to build domain ontologies that preserves the ontological commitment of the domain being modeled. It distinguishes between conceptual entities called universals and individuals. In particular, due to space limitations, this work focuses on the subsumption hierarchy of sortal universals. TracOED is the computational environment that implements the conceptual model and incorporates the OEDM. It is based on TracED [Roldán et al. 2010], which was conceived for capturing and tracing engineering designs. The major components of TracOED are the Domain Editor and Versions Manager. By using the Domain Editor, the OEDM has been specified in TracOED. Furthermore, the editor allows this model to be further specialized, if required. On the other hand, the Versions Manager keeps track of the execution of a design project, as will be shown in the following sections. 3.1 Conceptual Model The Conceptual Model component provides the framework foundations. This component is organized in Process Representation, Product Representation and Specification spaces, which are explained in this section. The Process representation 38 space models the activities being performed during an ontology development process and it is specified by the Activity package (Fig. 2). In particular, when tackling the development of an ontology, typical tasks are: adding concepts and relations into the ontology, defining constraints on a specific concept, analyzing whether a group of concepts, relationships and constraints satisfies a formal competency question, evaluating the ontology, deciding on alternative concepts and relations, etc. As Fig. 2 shows, such activities are represented in the model with the BasicActivity or CompositeActivity classes, depending on whether the task is atomic or it can be decomposed into a set of subactivities. Activity Package Operation Package Execution 1..* {ordered} Requirement 1..* * {ordered} * Variable Argument Command * * Member - argument Activity 1..* 1..* Actor GuidedBy - type SubActivity Skill DataType * Primitive Auxiliary Macro BasicActivity CompositeActivity * Individual Team Function Command * Primitive - argument DataType * Operation Materialize Add Modify Delete - instance* - result Collection Domain Package OperatesOn - type OperationType DomainRelationhip DesignObjectType OperationType (from Domain) (from Domain) (from Domain) - container Version Package * 0..1 - part* DesignObjectType - generalization * - successor ModelHistory DomainRelationhip - specialization ModelVersion 0..1 - type - objectType Version 1..* - predecesor Property - type Belong Repository Package History ObjectVersion * - instance * - object 1..* PropValue * 1..* - version BasciActivity Association - end VersionableObject Version - instance (from Activity) * * *- origin Figure 2. Conceptual Model. In the proposed model, the execution of an activity is guided by one or more requirements, which specify the functional and non-functional characteristics that a development product must satisfy (e.g., in the ontology development domain, the concepts have to preserve the ontological commitment of the domain being modeled). Therefore, the ontology development process is interpreted as a series of activities led by requirements that are performed by Actors. An Actor may be either an Individual (a human being or a computational program) or a Team. Teams allow representing composite skills that are needed for carrying out activities. Each basic activity performed by an actor during an ontology development process is represented by the execution of a sequence of operations, which transforms the design objects. The operations that can be applied are domain dependent. So, it is necessary to define the allowed types of operations, as well as the modeling elements, for each specific domain. As it was previously introduced, activities operate on the outcomes or products of the ontology design process, called design objects (Fig. 2). Design objects represent the various products of the development activities. Typical design objects are models of the artifact being conceived (e.g., in the ontology development domain: class diagrams, implementations in specific ontology languages, etc.), specifications to be met (i.e. competency questions, quality attributes, etc.). Design Objects may relate among themselves by domain specific relationships (DomainRelationship association class in Fig. 2), and can be organized in generalization-specialization hierarchies. Design objects types are described by a set of properties. Moreover, each design object type is related to a set of operation types that may be used to transform such design object. 39 In this proposal, the execution of an activity (materialized through a sequence of operations) transforms a design object, which thus may evolve into multiple versions. In order to represent this evolution, each design object is specified at two levels: the Repository and the Version packages (Fig. 2), which constitute the Product Representation Space. The Repository keeps a unique entity for each design object that has been created and/or modified due to the natural progress that takes place during a development project. Any entity kept in the repository is regarded as a versionable object. Furthermore, relationships among the different versionable objects are also maintained in the repository (Association class in Fig. 2). On the other hand, the Version level keeps the different versions resulting from the evolution of each design object, which are called object versions. The relationship between a versionable object and any of its object versions is captured by the Version association. Therefore, for a given design object, a unique instance is kept in the repository, and all the versions it assumes along the design process belong to the versions level. Fig. 2 also includes the Design object type class, which allows representing the various kinds of modeling elements pertaining to particular domains. The versions package also includes the ModelVersion concept, which represents a set of design objects within the context in which a given design activity is carried out. Its aim is to provide a snapshot description of the state of a certain design process at a given moment. According to the proposed representation, a new model version mn is generated when a basic activity is executed. Since each basic activity is materialized by a sequence of operations, named φ, the new model version mn is the result of applying such sequence to the components of the previous model version mp. This predecessor model version mp corresponds to the context where the activity was performed and the successor one (mn) represents the resulting context. The Specification Space is defined by the Domain and Operation packages (see Fig. 2), which allow specifying the building blocks and operations of particular engineering design domains. In the context of the OntoTracED framework, this space has allowed specifying the ontological engineering domain model. The Operation package enables the specification of operation types and their implementations in a computational environment (TracOED in this case). This package defines the primitive operations add, delete and modify and also enables the specification of other operations that are applicable into the specific design domains (the ontology development domain in this work). When an operation is specified, it is necessary to define both its arguments and body. The body is comprised by some already defined commands that are available for being used in other operation specifications. They can be primitive (such as add, delete, or modify), auxiliary function commands, or previously defined operations. 3.2 Ontological Engineering Domain Model As it was mentioned in section 3.1, the Domain and Operation packages (Specification space) of the underlying conceptual model let specify modeling elements and operations that are suitable for particular domains. This section presents the use of these packages in the specification of the Ontological Engineering Domain Model. Figure 3 (part a) presents a partial view of the resulting model. 40 Formalizes <> <> <> Ontology 1 Requirement <> <> <> * BelongsTo FormalCQ Axiom * 1 <><> Refines CompetencyQuestion * ExtractedFrom <> < Rule * > <> <> 1..* <> <> Terminology RefersTo FormalExpresion ComplexCQ AtomicCQ * (a) <> * <> <> <> <> <> Individual Concept Relation Constraint Assumption *<> 1 1 1 <> InstanceOf FormalizedAs <> <> <> Type Universal <> Sortal Type <><> <> RigidSortal <> AntiRigidSortal Mediates RelationalDependency (b) <> Mediates <> <> <> <> Role Phase Kind Subkind <> <> <> Subtype Subtype Subtype <> <> <> RolePattern PhasePartition Type SubKindPartition Figure 3. a) A Domain Model specification for ontology development processes. b) Design objects proposed for the development of ontologies using UFO. There are several methodologies for building ontologies and no one is yet emerging as a clear reference. In spite of their diversity, most methodologies share structural similarities and have comparable modeling elements. In this proposal, the following components are considered to be part of the proposed domain model: • Competency questions play the role of a type of requirement specification against which a given ontology can be evaluated [Gómez-Pérez et al. 2004]. They can be split off into more specific ones (AtomicCQ in Fig. 3), and complex competency questions (ComplexCQ in Fig. 3), which can be expressed in terms of simpler ones. Competency questions participate in most methodologies and they are the starting point in the identification of the ontology terminology. • Concepts represent a collection of entities that share a common set of characteristics. Certain languages call them classes or frames. Concepts can be hierarchically organized by means of subsumption relationships. • Relations symbolize interrelations between classes. Different languages call them properties, slots, roles, or associations. • Individuals are entities that belong to a particular class. They are also called instances or members of such class. • Assumption and Constraints represent natural language expressions that restrict the interpretation of concepts and relationships. It is possible to distinguish between ontologies that are mainly taxonomies from the ones that model the domain in a deeper and formal way and provide more restrictions on the domain semantics. In order to represent this type of formalization it is necessary to incorporate additional design objects and operations. Therefore, the following elements have been added into the domain model: 41 • Formal Competency Questions are specification in a formal language of informal competency questions that were initially identified. • Axioms and rules represent formal expressions that allow ontologists to (i) explicitly define the semantics of an ontological concept by imposing constraints on its value and/or its interactions with other concepts; (ii) verify the consistency of the knowledge represented in the ontology, and/or (iii) infer new knowledge from the explicitly stated facts. Fig. 4 presents the functional specifications of some of the operations included in the OEDM. They give an outline of how these operations can be stated in the computational environment. From an implementation point of view, these specifications are instances of the entities defined in Operation Package (Fig. 2). addConcept(o,cname) cversion:= add(cname,Concept) deriveConcept(o, cqversion,lcon) addRelationship(o,cversion, BelongsTo) for each cname in lcon end cversion:= addConcept(o,cname) addRelationship(cqversion,cversion, addInformalCQ(o,ICQname,exp) ExtractedFrom) icqversion:= add(ICQname,AtomicCQ) end for modify(icqversion,exp) end addRelationship(o,icqversion,BelongsTo) end formalizeCQ(ICQversion, fexp) o:= get(ICQversion,Ontology) addFormalCQ(o,exp) f:= addFormalCQ(o, fexp) CQversion:= add(exp, FormalCQ) addRelationship(ICQversion,f, Formalizes) addRelationship(o,CQversion,BelongsTo) end end toKind(o,cversion) n:= getname(cversion) applyRolePattern(o,pname,c,rname,rel,sv) kversion:=addKind(n) rpversion:= add(pname,RolePatern) addRelationship(o,kversion,BelongsTo) addRelationship(o,rpversion,BelongsTo) delete(cversion) tversion:= type?(c) end addRelationship(rpversion,tversion,Type) rversion:= addRole(o, rname,rel,sv) addRole(o,rname,relDep,aSortal) addRelationship(rpversion,rversion,Subtype) rversion:= add(rname,Role) end addRelationship(o, rversion,BelongsTo) rdvers:= add(relDep,RelationalDependecy) applyPhasePartition(o,pname, kversion, lcon) addRelationship(o,rdvers,BelongsTo) ppversion:= add(pName,PhasePartition) addRelationship(rversion,rdvers,Mediates) addRelationship(o,ppversion,BelongsTo) addRelationship(rdvers,aSortal,Mediates) addRelationship(ppversion,kversion,Type) end for each cname in lcon phversion:= addPhase(cname) addSubKind(o,skname) addRelationship(phversion,ppversion,Subtype) skversion:=add(skname,SubKind) end for addRelationship(o,skversion,BelongsTo) end end Figure 4. Specification of some operations belonging to the proposed model. Fig. 4 shows some simple operations (addConcept, addInformalCQ, addFormalCQ) that allow adding design objects while developing a given ontology. It also shows that more complex ontological operations can as well be implemented. This is the case of the operation formalizeCQ, which allows formalizing a competency question, and the deriveConcept one. In particular, the deriveConcept operation allows adding into an ontology a list of new concepts that are identified from an informal competency question. The competency question object version (cqversion) and the list of concepts to be added (lcon), are the input parameters of this operation. As seen, all the proposed operations are defined in terms of primitive ones (add, modify, delete), auxiliary functions (getDescription, getOntology, attachAffectedTerm, among others), and/or operations (addFormalCQ, addRelationship). As it was previously mentioned, the proposed OEDM defines design objects and operations to be able to handle the UFO ontological categories during the development of an ontology. Fig. 3 (part b) introduces a partial view of the resulting domain model 42 showing these new design objects. Table 1 presents the meanings of the concrete object types Kind, SubKind, Phase and Role and the list of applicable operations. UFO is considered as a Pattern Language; i.e., in this language the choice of a particular design object type causes a whole pattern to be manifested [Guizzardi et al. 2011]. For example, a phase is always defined as part of a partition; a role is always played in relation to another sortal. Therefore, the adopted domain model also includes the following design patterns proposed by UFO: SubKindPartition, PhasePartition and RolePattern [Guizzardi et al. 2011]. Table 1. UFO Sortal Universals. Adapted from Guizzardi (2005) UFO Ontological Categories A Kind represents rigid, relationally independent object universals that supply a Kind principle of identity for their instances. Examples include instances of Natural Kinds (such as Person, Dog, Tree) and of artifacts (Chair, Car, Television). A SubKind is a rigid, relationally independent restriction of a substance sortal that SubKind carries the principle of identity supplied by it. An example could be the SubKind MalePerson of the Kind Person. A Phase represents anti-rigid and relationally independent universals defined as part Phase of a partition of a sortal. For instance, [Child, Teenager, Adult] is a partition of the kind Person. A Phase is always defined as part of a partition. A Role represents an anti-rigid and relationally dependent universal. For instance, the Role role student is played by an instance of the kind Person. Proposed Operations Basic Pattern related addKind toRole addPhasePartition addPhase2Partition addSubKind toPhase addRolePattern addSubkind2Partition addPhase remKind addSubkindPartition remPhaseFromPartition addRole remSubKind remPhasePartition remRoleFromPartition toKind remPhase remRolePattern remSubkindFromPartition toSubKind remRole remSubkindPartition Table 1 also presents the operations required to capture and manage the UFO- related design objects (Fig. 3 part b). It includes two groups of operations: basic ones, which comprise operations to add, delete or modify simple design objects, and pattern- related ones. These last operations are associated with the addition of the new set of design objects that follows the application of a given UFO pattern. Fig. 4 also presents the functional specification of some of these operations. As seen, the toKind(o, cversion) operation adds into a given ontology (o) a Kind design object (kversion), which is a refinement of a previously included concept (cversion). This operation also deletes the cversion concept from the current model version. Similarly, the addRole and addSubKind operations allow adding the Role and SubKind design objects to a given ontology o. Fig. 4 also presents the applyRolePattern and apply PhasePartition operations, which add a Role pattern and a Phase partition into a certain ontology, respectively. The rest of the operations are defined in a similar way by means of primitive operations (Primitive in Fig. 2), such as add(skname,SubKind), and non-primitive ones, like addPhase(cname). 3.3. TracOED TracOED is the computational environment that implements the conceptual model and incorporates the OEDM, thus materializing the ONTOTracED framework. In order to 43 illustrate its features a case study is presented in this section. It is based on the development of the well known travel ontology. As already mentioned, the Versions Manager enables the execution of each ontology development project, and captures its evolution based on operations that are accomplished and the instantiation of those design object types that have been specified in the Ontological Engineering Domain Model by means of the Domain Editor tool. The development of the ontology starts with the definition of competency questions from which the requirements of the ontology and some initial concepts are identified. For instance, from the CQ1 competency question, which is shown below, one of the ontologists recognized the concepts Person, Traveler and Destination, among others. CQ1: Given the preferences of a traveler, the age and some constraints (economical or about the travel itself), which destinations are the most suitable? The identification of all the concepts from suitable competency questions marks the end of the first stage of the ontology development process. In the following stage the ontologist has to assign UFO ontological categories to the identified concepts, as well as he/she has to define new concepts falling into these categories. In this case study, the ontologist working on this part of the project considered that each of the Person and Destination concepts should be represented as a Kind. This decision caused the creation of a new ontology version where the Person and Destination concepts were replaced by their corresponding kinds. In addition, during this stage the ontologist gathered more domain knowledge, which allowed him/her to specify the ontology in more detail. In particular, he/she identified that a person plays the role of Traveler related to a Travel Agency. Moreover, considering the age of travelers, the involved ontologist distinguished among young, adults and old travelers. Therefore, he/she applied a phase pattern to represent this situation. Fig. 5 presents a schema that exemplifies how the development process is captured by the Version Manager. The upper part of Fig. 5 shows the two ontology versions that were described above and that are inferred from the captured knowledge. In fact, the project evolves from a Root Model Version, which is empty, to Model Version1 by applying the φ1 sequence of operations, which in turn is captured by the tool from the operations that were performed by the ontologist during the first stage of the process (definition of competency questions and derivation of concepts from them). Then, the evolution from ModelVersion1 to ModelVersion2 is caused by the operations included in φ2. These operations capture the activities carried out by the ontology developer when he/she applied the role and phase partition UFO patterns. The first operations sequence, φ1, includes the addOntoloy, addInformalCQ and deriveConcept operations that are responsible for creating the CQ1, cPerson and cDestination versionable objects at the repository level, and their first corresponding object versions (CQ1v1, cPersonv1 and cDestinationv1) at the version level. In turn, φ2 comprises the tokind, addSubKind, applyRolePattern and applyPhase Partition operations. The execution of these operations has the following impact in ModelVersion2: (i) the addition of kPerson (Kind), (ii) the incorporation of a RolePattern, which comprises kPerson, TravelAgency (SubKind), rTraveler (Role) and 44 the clientOf (RelationalDependency), (iii) the inclusion of the byAgePh phase partition having the YoungTraveler, AdultTraveler and OldTraveler phases, and (iv) the removal of the cPerson and cTraveler concepts from the current model version. <> TravelOnto <> TravelOnto <> <> Person <> <> Destination clientOf <> <> <> <> Person Traveler <> Traveler <> Travel Agency <> <> <> Root Model CQ1 Inferred <> <> <> Inferred version Model 1 YoungTraveler AdultTraveler OldTraveler Model 2 φ1 ={addOntology(“ontoTravel”)addInformalCQ(ont φ 2={tokind(Person); addSubKind(“Travel Agency”) ; oTravel,CQ1,” Given the preferences…”), applyRolePattern(rp1,traveler,”clientOf”, TravelAgency); applyPhasePartition(“byAgesPhpat”,Traveler, Inferred deriveCocept,(CQ1,[Person,Traveler, Destinarion] } [YoungTraveler,AdultTraveler,OldTraveler])} models level kPersonv1 ModelVersion1 ModelVersion2 Root kTravelerv1 Model cPersonv1 Destinationv1 clientOfv1 OldTravelerv1 Version cTravelerv1 TravelAgencyv1 YoungTravelerv1 CQ v1 AdultTravelerv1 Version level byAgesPhPatv OntoTravel v1 cPersonvo OntoTravelvo kPersonvo TravelAgencyvo Travelervo Destinationvo YoungTravelervo clientOfvo OldTravelervo Repository level Travelervo CQ1vo byAgesPhpat vo AdultTravelervo rp1vo PhasePartition RolePattern Destination Ontology Phase Role Concept Domain level Kind RelationaDependecy CompetencyQuestion Figure 5. Specification of some operations belonging to the proposed model. For each executed operation a version history link is created. For clarity reasons Fig. 5 only shows the version history links that relate cTraveler (ObjectVersion) in ModelVersion1 with kTraveler, OldTraveler, AdultTraveler, YoungTraveler and byAgesPhPart (ObjectVersion) in ModelVersion2. By means of the history links it is possible to reconstruct the history of a given model version starting from the root one. The Version Manager presents such information in the so called History Window, which is illustrated in Fig. 6. In this pane it can be seen that TracOED allows keeping information about the development evolution of the ontoTravel ontology. From this knowledge it is possible to identify which are: (i) the predecessor and successors of ModelVersion1; (ii) the history links saving traces of the applied operation sequences, φ1 and φ2, which originated ModelVersion1 and ModelVersion2, respectively; (iii) the set of object versions (byAgePh, YoungTraveler, AdultTraveler and OldTraveler) that appeared as a result of a given operation execution (applyPhasePartition). Moreover, on the Version Manager History Window (Fig. 6) it is possible to see detailed data about each applied operation. For instance, this pane presents information about the time point at which a given operation was applied, who the involved actor was, and the identification of the successor object versions. In this example, the history window shows that an applyRolePattern operation was executed at ModelVersion2 by mvegetti at time 11:40 -14/03/2012. It is possible to see that the execution of this operation also implied the addition of both, the Traveler role and the clientOf relational dependency. 45 It is important to remark that TracOED was developed with the aim of proving the proposed ideas and materializing the ONTOTracED framework. Therefore, this tool is not meant to replace traditional support environments. On the contrary, in the future TracOED should be integrated with existing ontology development tools, such as the OntoUML editor. In this way, TracOED would perform the capture of all the applied operations by working in a background mode, without being noticed by ontologists. TracOED - Version Manager Figure 6. TracOED history window. 4. Conclusions This contribution presents ONTOTracED, which is a framework aimed at capturing and tracing ontology development processes. The framework is based on a conceptual model of generic engineering design projects, an Ontological Engineering Domain Model, which specifies design objects and operations that are specific to ontology development processes, and a computational environment, named TracOED, which implements these models. The capabilities of TracOED have been presented and afterwards illustrated by means of a case study. The example shows that it is possible to keep track of the ontology development process along with its associated products, to store its history, allowing for the future retrieval of knowledge and experience. The proposal is flexible enough to be used in the development of ontologies that rely on particular methodologies and/or approaches, or that address particular fields. If needed, the TracOED domain editor can be used to extend the proposed Ontological Engineering Domain Model or to create a new one. To further validate the proposal, future work will be oriented to integrate TracOED with existing ontology development tools, like Protégé, the Neon Toolkit or the ontoUML editor, in such a way that its execution would take place in a background mode. Acknowledgments The authors wish to acknowledge the financial support received from ANPCyT (PAE- PICT-2315 and PAE-PICT-51), CONICET (PIP2754), UTN(PID 25-O117 and PID 25- 0118), and UNL (CAI+D R4 N12). 46 References Bernaras, A., Laresgoiti, I., Corera, J. (1996). “Building and Reusing Ontologies for Electrical Network Applications”. In: the European Conference on Artificial Intelligence (ECAI’96), p. 298-302. Cristani, M., Cuel, R. (2005). “A Survey on Ontology Creation Methodologies”, International Journal on Semantic Web and Information System, 1, p. 49-69. De Nicola, A., Missikoff, M., Navigli R. (2009). “A Software Engineering Approach to Ontology Building”, Information Systems. 34, p. 258-275. Fernández-López, M., Gómez-Pérez, A., Sierra, J. P. Sierra, A. P. (1999). Building a Chemical Ontology Using Methontology and the Ontology Design Environment, Intelligent Systems, 14, p. 37-46. Gómez-Pérez, A., Fernandez-López, M., Corcho, O.: (2004). Ontological Engineering: With Examples from the Areas of Knowledge Management, E-Commerce and the Semantic Web, Springer, 2nd edition. Guizzardi, G. (2005). Ontological Foundations for Structural Conceptual Models. PhD with Cum Laude, Telematica Instituut Fundamental Research Series, 015, Enschede, The Netherlands. Guizzardi, G., Pinheiro das Graça, A., Guizzardi, R. (2011). “Design Patterns and Inductive Modelling Rules to Support the Construction of Ontologically Well- Founded Conceptual Models in OntoUML”. In: 3rd International Workshop on Ontology-Driven Information Systems (ODISE 2011). Gruber, T.R. (1993). “A Translation Approach to Portable Ontology Specification”, Knowledge Acquisition. 5, p. 199-220. Grüninger, M, Fox, M. (1995). “Methodology for the Design and Evaluation of Ontologies.” In: Skuce D (ed). IJCAI95 Workshop on Basic Ontological Issues in Knowledge Sharing, p. 258-269. Roldán M. L, Gonnet S, Leone H. (2010). “TracED: A Tool for Capturing and Tracing Engineering Design Processes”, Advances in Engineering Software, 41, p. 1087- 1109. Staab, S., Schnurr, H. P., Studer, R., Sure, Y. (2001).” Knowledge Process and Ontologies”, IEEE Intelligent Systems. 16, p. 26-34. Suárez-Figueroa, M. C., Gómez-Pérez, A., Motta, E., Gangemi, A. (2012). Ontology Engineering in a Networked World, Springer, First Edition. Swartout, B., Ramesh, P., Knight, K., Russ, T. (1997). “Toward Distributed Use of Large Scale Ontologies”. In: Symposium on Ontological Engineering of AAAI . Uschold, M., Gruninger, M. (1996). “Ontologies: Principles, Methods and Applications”, Knowledge Engineering Review, 11, p- 93–155. Uschold, M., King, M., Moralee, S., Zorgios, Y. (1998). “The Enterprise Ontology”, Knowledge Engineering Review, 13, p. 31–89. 47