Pattern for Re-engineering a Classification Scheme, Which Follows the Adjacency List Data Model, to a Taxonomy http://ontologydesignpatterns.org/wiki/Submissions:Classification scheme - adjacency list model - to Taxonomy Boris Villazón-Terrazas1 , Mari Carmen Suárez-Figueroa1 , and Asunción Gómez-Pérez1 Ontology Engineering Group, Departamento de Inteligencia Artificial, Facultad de Informática, Universidad Politécnica de Madrid, Spain {bvillazon,mcsuarez,asun}@fi.upm.es, WWW home page: http://www.oeg-upm.net/ 1 Introduction This pattern for re-engineering non-ontological resources (PR-NOR) fits in the Schema Re-engineering Category proposed by [3]. The pattern defines a proce- dure that transforms the classification scheme components into ontology repre- sentational primitives. This pattern comes from the experience of ontology en- gineers in developing ontologies using classification schemes in several projects (SEEMP1 , NeOn2 , and Knowledge Web3 ). The pattern is included in a pool of patterns, which is a key element of our method for re-engineering non-ontological resources into ontologies [2]. The patterns generate the ontologies at a concep- tualization level, independent of the ontology implementation language. 2 Pattern Problem Re-engineering a classification scheme, which follows the adjacency list model, to design a taxonomy. Non-Ontological Resource A non-ontological resource holds a classification scheme which follows the adjacency list model. A classification scheme is a rooted tree of concepts, in which each concept groups entities by some par- ticular degree of similarity. The semantics of the hierarchical relation between parents and children concepts may vary depending of the context. The adjacency list data model [1] for hierarchical classifications proposes to create an entity which holds a list of items with a linking column associated to their parent items. 1 http://www.seemp.org 2 http://www.neon-project.org 3 http://knowledgeweb.semanticweb.org 116 Applicability The semantics of the relation between parent and children items are subClassOf. There is not multi-inheritance nor cyclic relations. Ontology Generated The ontology generated will be based on the tax- onomy architectural pattern (AP-TX-01) [4]. Each category in the classification scheme is mapped to a class, and the semantics of the re- lationship between children and parent categories are mapped to subClassOf relations. Process - Solution 1. Identify the classification scheme items which do not have a parent key value, i.e. classifica- tion scheme items without parents. 2. For each one of the above identified classifi- cation scheme items cei : 2.1. Create the corresponding ontology class, Ci class. 2.2. Identify the classification scheme items, cej , which are children of cei , by using the parent key values. 2.3. For each one of the above identified clas- sification scheme items cej : 2.3.1. Create the corresponding ontology class, Cj class. 2.3.2. Set up the subClassOf relation be- tween Cj and Ci . 2.3.3. Repeat from step 2.2 for cej as a new cei . 3. If there are more than one classification scheme items without parent cei 3.1. Create an ad-hoc class as the root class of the ontology. 3.2. Set up the subClassOf relation between Ci class and the root class. Example Suppose that someone wants to build an ontology based on the water areas classification published by FAO. This classification scheme follows the adjacency list data model. Non-Ontological Resource The FAO classification for water areas groups them according to some different criteria as envi- ronment, statistics, and jurisdiction, among oth- ers. This classification scheme is available at http://www.fao.org/figis/servlet/RefServlet 117 Ontology Generated The ontology generated will be based on the tax- onomy architectural pattern (AP-TX-01) [4]. Each category in the classification scheme is mapped to a class, and the semantics of the re- lationship between children and parent categories are mapped to subClassOf relations. Process - Solution 1. Create the Water area class. 2. Create the Environmental area class, and set up the subClassOf relation between the Environmental area class and the Water area class. 2.1. Create the Inland/marine class, and set up the subClassOf relation be- tween the Inland/marine class and the Environmental area class. 2.2. Create the Ocean class, and set up the subClassOf relation between the Ocean class and the Environmental area class. 2.3. Create the North/South/Equatorial class, and set up the sub- ClassOf relation between the North/South/Equatorial class and the Environmental area class. 3. Create the Fishing Statistical area class, and set up the subClassOf relation between the Fishing Statistical area class and the Water area class. 3.1. Create the FAO statistical area class, and set up the subClassOf relation between the FAO statistical area class and the Fishing Statistical area class. 3.2. Create the Areal grid system class, and set up the subClassOf relation be- tween the Areal grid system class and the Fishing Statistical area class. 4. Create the Jurisdiction area class, and set up the subClassOf relation between the Jurisdiction area class and the Water area class. Related Resources This pattern is related to the architectural pattern TX-AP-01 [4] for modelling a taxonomy. 3 Pattern Usage This pattern was applied to re-engineer the ISTAT4 , geography italian stan- dard, into a Geography Ontology5 , within the context of the SEEMP project. This standard is a classification scheme which consists of 4 divisions, 20 regions and 106 provinces. ISTAT is modelled following the adjacency list data model. Because of the number of divisions, regions and provinces of the ISTAT standard, it was not practical to create the ontology manually. Therefore, we created an 4 http://www.istat.it/ 5 The ontology is available at http://droz.dia.fi.upm.es/hrmontology/ 118 ad-hoc wrapper, implemented in Java, that reads the data from the resource im- plementation and automatically creates the corresponding elements of the new ontology following the suggestion given by the pattern. 4 Summary and Future Work We have presented a pattern for transforming a classification scheme, which is modelled following the adjacency list data model, into a taxonomy. The pattern is included in a pool of patterns, which is a key element of our method for re-engineering non-ontological resources into ontologies [2]. We plan to develop software libraries within a framework that implement the transformation process suggested by the pattern. Moreover, we will include exter- nal resources to improve the quality of the resultant ontologies. Finally, we need to calculate how much effort do we save re-engineering classification schemes us- ing patterns compared with re-engineering classification schemes without them. Acknowledgments. This work has been partially supported by the European Comission projects NeOn(FP6-027595) and SEEMP(FP6-027347), as well as by an R+D grant from the UPM. References 1. D. Brandon. Recursive database structures. Journal of Computing Sciences in Colleges, 2005. 2. A. Garcı́a, A. Gómez-Pérez, M. C. Suárez-Figueroa, and B. Villazón-Terrazas. A Pattern Based Approach for Re-engineering Non-Ontological Resources into On- tologies. In Proceedings of the 3rd Asian Semantic Web Conference (ASWC2008). Springer-Verlag, 2008. 3. V. Presutti, A. Gangemi, S. David, G. Aguado de Cea, M. C. Surez-Figueroa, E. Montiel-Ponsoda, and M. Poveda. NeOn Deliverable D2.5.1. A Library of On- tology Design Patterns: reusable solutions for collaborative design of networked ontologies. In NeOn Project. http://www.neon-project.org, 2008. 4. M. C. Suárez-Figueroa, S. Brockmans, A. Gangemi, A. Gómez-Pérez, J. Lehmann, H. Lewen, V. Presutti, and M. Sabou. Neon modelling components. Technical report, NeOn project deliverable D5.1.1, 2007. 119