27th BRAZILIAN SYMPOSIUM ON DATABASES

Tamanho: px
Começar a partir da página:

Download "27th BRAZILIAN SYMPOSIUM ON DATABASES"

Transcrição

1 27th BRAZILIAN SYMPOSIUM ON DATABASES PROCEEDINGS October 15 th -18 th, 2012 São Paulo, São Paulo, Brazil Promotion Brazilian Computer Society - SBC SBC Special Interest Group on Databases Organization Realization Universidade de São Paulo - USP Instituto de Matemática e Estatística - USP Chair Renata Galante (UFRGS)

2 Editorial SBBD is the official database event of the Brazilian Computer Society (SBC). It is the largest venue in Latin America for presentation and discussion of research results in the database domain. In its 27th edition, papers submissions were organized into two independent tracks: full and short papers. Short papers should present interesting and exciting recent results or novel thought-provoking ideas that are not quite ready in any subject on databases and related areas. A total of 76 short papers were submitted, written in Portuguese or English, out of which 33 were accepted. Each paper was evaluated by three members of the Program Committee, according to the criteria of originality, presentation and technical contribution. The Program Committee was composed by several distinguished researchers working actively in the database area. All accepted short papers will be presented as posters in an interactive setting and will be published electronically and indexed by BDBComp (http://www.lbd.dcc.ufmg.br/bdbcomp). Selected short papers accepted for presentation at SBBD 2012 will be invited to be re-submitted in an extended English version for a fast-track revision and will be published in a special section of the February 2013 issue of JIDM. The success of SBBD 2012 short papers track was only possible because of the dedication and enthusiasm of many people. First of all, we would like to thank the authors for submitting their papers. We would also like to express our gratitude to the following people: the Program Committee members and external reviewers, for their dedication and great work when reviewing the submitted papers; the Local Organization Committee, in particular João Eduardo Ferreira, for taking care of the logistics behind SBBD 2012; and Vanessa Braganholo for her invaluable support with Easy Chair system. We hope you enjoy this short paper edition and look forward to meeting you in São Paulo at SBBD Renata Galante, UFRGS Chair ii

3 27th BRAZILIAN SYMPOSIUM ON DATABASES October 15 th 18 th, 2012 Promotion São Paulo, São Paulo, Brazil Brazilian Computer Society - SBC SBC Special Interest Group on Databases Organization Realization Universidade de São Paulo - USP Instituto de Matemática e Estatística - USP SBBD Steering Committee José Palazzo Moreira de Oliveira (UFRGS) Chair Angelo Brayner (UNIFOR) Alberto Laender (UFMG) Cláudia Bauzer Medeiros (UNICAMP) Cristina Dutra de Aguiar Ciferri (ICMC-USP) Marco A. Casanova (PUC-Rio) SBBD 2012 Committee Steering Committee Chair José Palazzo Moreira de Oliveira (UFRGS) Local Organization Chair João Eduardo Ferreira (IME-USP) Program Committee Chair Marco A. Casanova (PUC-Rio) Chair Renata Galante (UFRGS) Demos and Applications Chairs José Maria da Silva Monteiro Filho (UFC) Javam de Castro Machado (UFC) Thesis and Dissertation Workshop Chairs Fabio Porto (LNCC) Ana Maria de C. Moura (LNCC) Tutorials Chair Cristina Dutra de Aguiar Ciferri (ICMC-USP) Lectures Chair Marcio K. Oikawa (UFABC) Local Organization Committee João Eduardo Ferreira (IME-USP) Chair Isabel Italiano (EACH-USP) Kelly R. Braghetto (UFABC) Luciano V. Araújo (EACH-USP) Marcio K. Oikawa (UFABC) iii

4 Program Committee Alexandre de Assis Bento Lima (UFRJ) Altigran Silva (UFAM) André Carvalho (ICMC-USP) Angelo Brayner (UNIFOR) Carina Dorneles (UFSC) Clodoveu Davis (UFMG) Daniel Lichtnow (UCPel) Deise de Brum Saccol (UFSM) Edleno de Moura (UFAM) Eduardo Ogasawara (CEFET/RJ) Fabio Porto (LNCC) Fabricio Benevenuto (UFOP) Geraldo Zimbrão (UFRJ) Giseli Lopes (UFRGS) Helena Graziottin Ribeiro (UCS) João Eduardo Ferreira (IME-USP) Jonice Oliveira (UFRJ) José Maria Monteiro (UFC) José Viterbo Filho (UFF) Jussara Almeida (UFMG) Karin Becker (UFRGS) Leandro Krug Wives (UFRGS) Luiz André Portes Paes Leme (UFF) Luiz Merschmann (UFOP) Marco Cristo (UFAM) Marcos André Gonçalves (UFMG) Maria Claudia Cavalcanti (IME-RJ) Mario Nascimento (University of Alberta) Mirella Moro (UFMG) Rebeca Schroeder (UFPR) Renata Galante (UFRGS) Renata S.S. Guizzardi (UFES) Renato Fileto (UFSC) Robson Cordeiro (ICMC-USP) Ronaldo dos Santos Mello (UFSC) Sandra de Amo (UFU) Sergio Manuel Serra da Cruz (UFRJ) Solange Rezende (ICMC-USP) Vanessa Braganholo (UFF) Vania Bogorny (UFSC) Vânia Vidal (UFC) Vasco Furtado (UNIFOR) Viviane Moreira (UFRGS) Wagner Meira (UFMG) External Reviewers Daniel Luis Notari, Eduardo Nunes Borges, Eulanda Santos, Igo Brilhante, José de Aguiar Moraes Filho, Kele Belloze, Luís Otávio Alvares, Marcio Bigolin, Mariano Roberval, Mônica Ribeiro Porto Ferreira. iv

5 27th BRAZILIAN SYMPOSIUM ON DATABASES Table of Contents Using Provenance Analyzers to Improve the Performance of Scientific Workflows in Cloud Environments...1 João Carlos de A. R. Gonçalves, Daniel de Oliveira, Kary A. C. S. Ocaña, Eduardo Ogasawara, Jonas Dias, Marta Mattoso Reprodução de Experimentos Científicos Usando Nuvens...9 Ary Henrique M. de Oliveira, Murilo de Souza Martins, Igor Modesto, Daniel de Oliveira, Marta Mattoso Contextual Preference Repositories for Personalized Query Answering...17 Sandra de Amo, Tiago F. Mansueli, Renan G. Cattelan, Vinicius V. S. Dias, Hiran N. M. Ferreira Processamento de Consultas XPath em GPU...25 Dilson A. Guimarães, Filipe de L. Arcanjo, Laura R. Antuña, Mirella M. Moro, Renato C. Ferreira Querying Trajectories through Model Checking based on Timed Automata...33 Diego V. Simões S., Henrique Viana, Nicolas Markey, Jose Antônio F. de Macedo Approaches to Model Query Interactions...41 Manoel Siqueira, José Maria Monteiro, José Macedo, Javam de Castro Machado Modeling an Ontology for Amazonian Biodiversity...49 Andréa Corrêa Flôres Albuquerque, José Laurindo Campos dos Santos, Alberto Nogueira de Castro Júnior An Instance-based Learning Approach for Ontology Matching...57 Pedro H. R. de Assis, Alberto H. F. Laender Uso de Inferência na Compreensão das Modificações em Documentos Semiestruturados...65 Alessandreia Marta de Oliveira, Leonardo Murta, Vanessa Braganholo v

6 Recomendação de Colaboração em Redes Sociais Acadêmicas baseada na Afiliação dos Pesquisadores...73 Michele A. Brandão, Mirella M. Moro Observatório do Trânsito: sistema para detecção e localização de eventos de trânsito no Twitter...81 Silvio S. Ribeiro Jr., Diogo Rennó, Tatiana S. Gonçalves, Clodoveu A. Davis Jr., Wagner Meira Jr., Gisele L. Pappa Ranqueamento Supervisionado de Autores em Redes de Colaboração Científica...89 Paulo J. L. Alvarenga, Marcos A. Gonçalves, Daniel R. Figueiredo Novas políticas de divisão de nós para a Slim-tree...97 Jéssica A. de Souza, Humberto L. Razente, Maria Camila N. Barioni Adição de termos semânticos a consultas OLAP Robson do N. Fidalgo, Samuel de França Arcoverde Análise Experimental de Bases de Dados Relacionais e NoSQL no Processamento de Consultas sobre Data Warehouse Anderson Chaves Carniel, Aried de Aguiar Sá, Marcela Xavier Ribeiro, Renato Bueno, Cristina Dutra de Aguiar Ciferri, Ricardo Rodrigues Ciferri Junções Adaptativas em Consultas Federadas sobre Linked Data Macedo Sousa Maia, João Carlos Pinheiro, Regis Pires Magalhães, José Maria da Silva Monteiro Filho, Vânia Maria Ponte Vidal Processamento de Consultas XML usando Máquinas de Inferência Fábio G. Santos, Rafael de Araújo M. Pinheiro, Vanessa Braganholo Construção de Mapa de Tópicos Semânticos Baseado na Integração de Fontes Heterogêneas José Gildo de Araújo Jr., Ulrich Schiel, Leandro Balby Marinho Recomendações para fragmentação horizontal de bases de dados XML Tatiane Lima da Silva, Fernanda Baião, Jonice de Oliveira Sampaio, Marta Mattoso, Vanessa Braganholo Uma abordagem ad hoc para o tratamento de exceções em processos transacionais Pedro Paulo S. B. Silva, Kelly R. Braghetto, João E. Ferreira Analisando o Desempenho de Banco de Dados Multi-Inquilino em Nuvem Leonardo O. Moreira, Flávio R. C. Sousa, Javam C. Machado vi

7 Extrator de fatos relacionados ao tráfego Fabio da Costa Albuquerque, Felipe Coimbra Bacelar, Ximena Alexandra Cabrera Tapia, Marcelo Tílio Monteiro de Carvalho Mining User Contextual Preferences Sandra de Amo, Marcos L. P. Bueno, Guilherme Alves, Nádia F. Silva Early Classification: A New Heuristic to Improve the Classification Step of K-Means Joaquín Pérez, Carlos Eduardo Pires, Leandro Balby, Adriana Mexicano, Miguel Hidalgo Is Learning to Rank Worth it? A Statistical Analysis of Learning to Rank Methods Guilherme de Castro Mendes Gomes, Vitor Campos de Oliveira, Jussara Marques de Almeida, Marcos André Gonçalves Uma Metodologia para Descoberta de Relacionamentos Frequentes Entre Dados Espaciais de Desmatamento Usando Mineração de Grafos Adeline M. Maciel, Marcelino Pereira S. Silva, Maria Isabel S. Escada, Fernando S. França Seleção de Atributos Utilizando Algoritmos Genéticos para Detecção do Vandalismo na Wikipedia Maria I. Sumbana, Allan J. C. Silva, Marcos A. Gonçalves, Jussara Almeida, Gisele Pappa Desenvolvimento de Linked Data Mashups com o uso de LIDMS Regis P. Magalhães, Macedo S. Maia, Vânia M. P. Vidal, José A. F. de Macedo, José Maria Monteiro, Fábio A. M. Porto Um sistema de alarme para vigilância epidemiológica de rumores utilizando redes sociais Denise Brito, Janaina Gomide, Walter Santos, Wagner Meira Jr., Adriano Veloso, Virgilio Almeida Uma Abordagem para Detecção e Extração de Rótulos em Formulários Web Leonardo Bres dos Santos, Carina F. Dorneles, Ronaldo dos Santos Mello Estudo comparativo entre Proposicionalização e Mineração de Dados Multidimensional sobre um Banco de Dados Relacional Rosalvo Neto, Paulo Jorge Adeodato, Ana Carolina Salgado, Murilo Boratto Descoberta de n-conjuntos Fechados Eficiente e Restrita a Grupos de Interesse Israel Guerra, Loïc Cerf, João Foscarini, Michel Boaventura, Wagner Meira Jr. Extraindo e Integrando Semanticamente Dados de Múltiplas Planilhas Eletrônicas a Partir do Reconhecimento de Sua Natureza Ivelize Rocha Bernardo, Matheus Silva Mota, André Santanchè vii

8 Using Provenance Analyzers to Improve the Performance of Scientific Workflows in Cloud Environments João Carlos de A. R. Gonçalves 1, Daniel de Oliveira 1, Kary A.C.S. Ocaña 1, Eduardo Ogasawara 2, Jonas Dias 1, Marta Mattoso 1 1 COPPE/Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brasil 2 CEFET/RJ, Rio de Janeiro, Brasil {jcg, danielc, kary, ogasawara, jonasdias, Abstract. A major issue during scientific workflow execution is how to manage the large volume of data to be processed. This issue is even more complex in cloud computing where all resources are configurable in a pay per use model. A possible solution is to take advantage of the exploratory nature of the experiment and adopt filters to reduce data flow between activities. During a data exploration evaluation, the scientist may discard superfluous data (which is producing results that do not comply with a given quality criteria) produced during the workflow execution, avoiding unnecessary computations in the future. These quality criteria can be evaluated based on provenance and domain-specific data. We claim that the final decision on whether to discard superfluous data may become feasible only when workflows can be steered by scientists at runtime using provenance data enriched with domain-specific data. In this paper, we introduce Provenance Analyzer (PA), which is an approach that allows for examining the quality of data during the workflow execution by querying provenance. PA removes superfluous data, improving execution time that typically lasts for days or weeks. Our approach introduces a component that enables sophisticated provenance analysis that allows for deciding at runtime if data have to be propagated or not for the subsequent activities of the workflow. This is possible as PA relies on data centric workflow algebra. In this context, PA plays the role of filter operator in the algebra. Scientists are able to change filter criteria during workflow execution according to the behavior of the execution. Our experiments use a real phylogenetic analysis workflow on top of SciCumulus parallel workflow cloud execution engine. Results show data reduction of 23%, which led to performance improvements of up to 36.2% when compared to a workflow without PA. Categories and Subject Descriptors: H.4.1 [Information Systems Applications]: Workflow management. 1. INTRODUCTION In today s scientific scenario, many experiments are based on the use of complex scientific apparatus and computational simulations that consume and produce large volumes of data. To aid the management of this type of experiments, scientific workflows [Deelman et al., 2009] play a fundamental role in many application domains [Hey et al., 2009]. Scientific Workflow Management Systems (SWfMS) [Deelman et al., 2009] are complex systems that provide ways for modeling and executing workflows. There are many SWfMS available [Callahan et al., 2006; Hull et al., 2006; Wilde et al., 2011]. Each of them focused on different aspects such as semantics, provenance and performance. Due to the growth of data production, many of these scientific workflows require data parallelism and High Performance Computing (HPC) environments, such as clusters grids or clouds. Cloud computing [Vaquero et al., 2009] is a paradigm that offer ways for running scientific workflows in parallel based on a pay per use model. Scientific workflows benefit from the elasticity and availability of virtual computing resources. In a scenario where workflows produce large volume of data flow, it may last for days or weeks even in HPC environments. Due to that, it is fundamental to improve the performance of parallel workflow execution as well as reducing total execution time. In clouds, there is also the need of reducing the financial cost. Since scientists pay in accordance to the usage of resources when they run workflows in clouds, a long-term execution can become financially unviable. One way of improving workflow execution time is to reduce data to be processed during the course of the workflow execution. Currently, scientists manage the design of the data-flow manually, defining quality or filtering criteria to be used as part of pre-selection of the data-flow at each phase of the workflow. However, due to the 1

9 vast amount of data involved in data-intensive experiments, this filtering becomes difficult to predict or can only be done based on runtime data. During a workflow execution, some produced data, which do not comply with quality criteria, may be discarded, avoiding unnecessary computations in the future. However, predicting the execution course of the workflow and when irrelevant data is produced is a complex task. There are several parameters that have to be examined, and this choice depends on the behavior of the workflow execution. This data reduction may be obtained by scientists if they can analyze data generated during workflow execution, also known as workflow steering [Gil et al., 2007]. Scientists have to be able to verify data quality of partial results, filter this data and avoid further activities to consume low quality data. We claim that final decision on whether to filter and reduce data volume to be explored has to be taken by scientists using domain-specific data based on the execution behavior. This would reduce the time that is spent on processing low quality (or even irrelevant) data and minimize total execution time. Provenance information [Freire et al., 2008] has valuable data to allow for this quality analysis. However, in most SWfMS scientists only have access to provenance data, i.e. the behavior of the workflow, after the complete execution of the workflow. In addition, a mechanism for interfering in the workflow execution plan during workflow execution, allowing scientists to inform filtering criteria during workflow execution, is needed. In this scenario, the goal is to establish events that can determine if produced data is valid or not to be consumed by the next activity in the workflow. We call this event as reducing the set of data to be processed. Let us illustrate the need of allowing runtime filtering with a data-intensive parallel workflow in the phylogenetic bioinformatics domain. We are going to use this example consistently in the rest of the paper. Phylogenetic experiments aim at producing phylogenetic trees to represent existing evolutionary relationships. SciPhy [Ocaña et al., 2011] represents a phylogenetic analysis as a scientific workflow. SciPhy executes in parallel in Amazon EC2 using a specific cloud workflow engine named SciCumulus [Oliveira et al., 2010], which manages parallel workflow execution in a set of virtual machines (VMs) that form a virtual cluster in the cloud. A phylogenetic analysis requires a complex workflow composed by several data-intensive activities that may take considerable time, weeks, to produce the desired result. A typical phylogenetic analysis workflow (Fig. 1) consumes several input data files containing a set of DNA, RNA, or amino acid sequences, and produces phylogenetic trees to be further analyzed by scientists. In Fig. 1, each rectangle indicates an activity, solid lines represent input and output parameters that are transferred between activities, and dashed lines represent input and output parameters shared through data files. For a single exploratory phylogenetic analysis, SciPhy may consume 2,000 input multi-fasta files and may produce more than 14,000 (about 8.5GB) phylogenetic trees. Since SciPhy is a typical exploratory workflow, all of its activities, are repeatedly executed for many different input multi-fasta files, and depending on the amount of biological sequences, their length and the number of hits (i.e. similarity degree) found in each one of the multi-fasta files, each single activity execution may take hours to produce results, even when input data present low quality. As workflows scale to 10,000 and perhaps 100,000 or more parallel executions of a specific activity, if we do not avoid processing irrelevant data, the performance is affected since we spend more time and money than actually necessary. Scientists could improve workflow execution if they could analyze provenance data at runtime and change quality criteria (filter) during workflow execution. For example, let us consider that an execution of SciPhy is consuming more time than expected. In this case, scientists could change filter criteria at run time, for example, the e-value (a random variable with respect to its probability measure). By doing this, a higher degree of quality will be presented on the activities output results. At Fig.1, this action would prevent Activity 4 from processing irrelevant data. In this paper, we address the problem of improving the performance of parallel execution of scientific workflows by reducing the set of data to be processed. We propose a way for scientists to eliminate intermediate data that do not comply with quality criteria by analyzing provenance data at runtime. These performance improvements are possible using Provenance Analyzer (PA), which is a component that is deployed in SWfMS. PA allows for querying provenance data and intermediate files and filter these data based on specific informed criteria at runtime. This approach is possible since SciCumulus 2

10 uses data-centric workflow algebra [Ogasawara et al., 2011], and provenance is based on the relational model. PA plays the role of a filter operator in the workflow algebra. As a result, PA is independent of the application domain data structures, i.e. scientists can configure PA at runtime according to their needs (using domain specific filters). The main contributions of this paper are: (i) the Provenance Analyzer component, which allows provenance queries and the automatic reduction of the set of data to be processed and (ii) a thorough experimental evaluation based on the implementation of PA in SciCumulus workflow engine. We executed the phylogenetic analysis workflow on a 128-core virtual cluster on Amazon EC2 and obtained a performance improvement of up to 36% while using PA in SciCumulus. This paper is organized as follows. In Section 2, we discuss related work. We describe in Section 3 the workflow algebra and the SciCumulus parallel workflow engine used in the experiments. In Section 4, we present the proposed approach while in Section 5 we discuss experimental results. Next, Section 6 presents final remarks. Multi-fasta set (MFS) (chains of biological sequences) 1. Run Sequence Alignment For each mf in MFS set call {mafft, probcons, kalign, muscle, clustalw}(mf) Alignment (MSA) files MSA files 2. Run Phylip Conversion For each ms in MSA Set call readseq(ms) Shared disk Tree files 4. Run Phylogenetic Tree Generation For each em in EM Set, ph in phylip files, call RAxML(em,ph) EM files, phylip files Elected model files (EM) 3. Run Model Election For each md in Model files, ph in PH set call modelgenerator(md,ph) Phylip files (PH) Phylip files, Model files Fig. 1 SciPhy scientific workflow 2. RELATED WORK There are few approaches in the literature that improve parallel workflow execution performance by avoiding the unnecessary use of resources through provenance analysis. [Missier et al., 2011] propose an adaptive control of a scientific workflow execution, using provenance information, demonstrating that provenance can be used for workflow control. Two other proposals are closely related to data quality issues, emphasizing the quality of data used during the workflow execution and the filtering using threshold (defined specifically by the scientists). The first one is related to a Quality of Data (QoD) measurement framework for scientific workflows [Reiter et al., 2011], focusing on the validation of data in two phases: (i) the Analysis phase, where the desired characteristics of data is computed and (ii) the Evaluation phase that uses the pre-computed characteristics to evaluate the quality of data. The second proposal [Na im et al., 2010] concerns the Data Quality Monitor for the Kepler SWfMS, enabling users to inform the quality threshold value during the workflow execution, as well as, providing visualization support for the quality evaluation of the results. [Dias et al., 2011] highlighted the importance of provenance queries at runtime to improve workflow execution by reducing slices of parameter space in parameter sweep workflows. [Dias et al., 2011] propose control structures as user-steering points and adjustment knobs for running workflow on large clusters. This paper is a step forward as it uses PA to address data reduction in cloud environments by allowing scientists to inform domain-specific filtering criteria at runtime. Our approach complements these related proposals by proposing a new type of execution control and data quality analysis, comprising: (i) the possibility of reducing the set of 3

11 intermediate data to be processed during parallel workflow execution; (ii) the usage of a workflow algebra and its operators, which enable a uniform internal provenance data representation and analysis and; (iii) the application of software engineering methods, using design patterns, thus enabling scientists to specify their own provenance quality evaluation criteria. 3. SCICUMULUS CLOUD WORKFLOW ENGINE SciCumulus is a cloud workflow engine that aims at scheduling, monitoring, and load balancing the parallel execution of scientific workflow activities in clouds [Oliveira et al., 2010]. SciCumulus orchestrates workflow activities execution on a virtual cluster that is composed by a set of VMs that exchange communication messages (Fig. 3). All virtual cluster configurations are also performed by SciCumulus accessing the cloud provider API. SciCumulus is based on four tiers that are also distributed. The client tier starts the parallel execution of activities by staging data in and out the cloud and then dispatches the parallel execution of the activity. This tier is deployed in SWfMS, such as VisTrails [Callahan et al., 2006]. The distribution tier manages the parallel execution of the activities in computing clouds by creating cloud activities (activity execution) that contain the program to be executed, parameter values and input data to be consumed. The execution tier invokes executable codes in several VMs of the virtual cluster. The SciCumulus execution model follows the workflow algebra proposed by [Ogasawara et al., 2011] that encapsulates workflow activities and provide for basic operators to be manipulated by the workflow execution engine. This algebra is inspired on the concepts of relational algebra of databases. Algebraic operators rule workflow activities, according to how activities consume and produce data. In addition, this algebra defines relations as one of its operands. The parameter values for the workflow activities are represented as attribute values in a tuple, whereas the set of tuples composes the relation to be consumed by an activity. A scientific workflow definition is then mapped to a set of algebraic expressions placed in a coherent flow. Fig. 2 presents one example of the activity RAxML of SciPhy ruled by a Map operator. Note that all parameters of this activity (presented in the command line) are mapped to relation attributes. Each tuple in this case can be processed in parallel in different VM. Scientific Workflow Specification T Map ( A, R ) Client Tier Distribution Tier k file model bootstrap 1 ENZYME1311.phylip BLOSUM n ENZYME6547.phylip RtREV 100 Command line: Amazon EC2 API Internet connection./raxml --file ENZYME1311.phylip - model BLOSUM62 - bootstrap 100 VM#1 VM#4 VM#2 VM#3 VM#n Execution Tier Data Tier Fig. 2 Activity RAxML ruled by Map operator Fig. 3 SciCumulus conceptual architecture The execution tier is also responsible for capturing provenance data and to send it to a provenance repository (fundamental for the approach proposed in this paper). This provenance repository is also located in the cloud. The data tier is responsible for storing input data and provenance data. This data tier has information about the environment characteristics collected by an autonomous agent. 4

12 4. PROPOSED APPROACH: PROVENANCE ANALYZERS Aiming at providing a solution for the problem of reducing the set of data to be processed, and, consequently, reducing workflow execution time, we propose the effective use of PA for analysis and validation of the data that flows along the workflow. In addition to data reduction, this analysis can help improving data quality in the workflow since scientists are able to analyze corresponding provenance information at runtime. A PA is an artificial activity, which encapsulates a data extractor (DE - that can be coded by scientists) and a Filter operation. A PA can be included at any position of the workflow, placed at the beginning of the flow of activities, or its end or even placed between two activities of the workflow according to scientists analysis need. A PA is used to extract important data from the data produced by the incoming activity. This data is commonly domain-specific data, which can enrich provenance data. The provenance data enriched with domain-specific data is used to evaluate if data quality is acceptable for assessing. If so, data can be transferred to the outcoming activity. The execution of a PA follows a 2-phase procedure: provenance extraction and filtering. The extraction phase is already provided by the workflow algebra execution model during the activation process [Ogasawara et al., 2011]. It focuses on analyzing data produced by the workflow activities (including data files used as an activity s input or output data) and extracting domain-specific data from these files [Goncalves et al., 2012]. Although the OPM/PROV [Moreau and Missier, 2011] recommendations consider as provenance only the sources of information, we extend this view by considering the relationship of these provenance data to all intermediate data files and their content. This domain information, extracted from the contents of files, is used for analyzing quality of data. Each PA invokes a third party DE that is responsible for reading an input tuple (which contains a pointer to a file), opening this file for analysis. Based on the result it inserts new attributes in the tuple for representing domain data to be further used. In the second phase, i.e. after invoking the DE, a Filter operation is performed [Ogasawara et al., 2011]. This Filter is based on a criteria informed at runtime by scientists. It copies the input tuple to the output of the PA if and only if scientists quality criteria are fit. Moreover, each filter follows specific quality criteria defined by scientists which are based on the previously extracted domain-specific data. One example of the extraction process is presented in Fig. 4 where the execution of this PA is placed between the Data Conversion and Model Election activities of SciPhy. In this case, the ENZYME1311.fasta file is produced by Data Conversion activity and is given as input for the PA, which extracts information from the file pointed in the input relation, and validates the data file according to scientists criteria. For each extracted data, a new attribute is added to the output relation. At the example, the scientist s criteria was defined as the specific file format for the simulation (IS_VALID), the origin of the data (FASTA_ORIGIN_ID) and the correct format of the protein sequence (FASTA_SEQ), all of them part of the data to be validated before its usage as input for an activity. The attributes in this example may be generated in different forms, depending on the filter criteria informed by scientists at runtime. The PA approach is implemented as a component, called SciCumulusPA (Fig. 5), for SciCumulus engine. An instance of SciCumulusPA can be inserted at any position of the workflow, making the approach pervasive and user steered. The current version of the PA component is implemented using Python version 2.7, and the dynamic choice of DE and filter criteria is based on the Strategy design pattern [Gamma et al., 1994]. The Strategy design pattern enables the selection of a specific DE and filter criteria at runtime. Each DE code is also classified by its context, according to information about specific activities in which the algorithm can be applied (e.g. compatible formats of input data). The component also performs necessary operations, such as provenance database access, separating these operations from the specific DE code, created by the scientists. The SciCumulus workflow XML definition file has to be instrumented to insert the necessary PAs along the flow. Scientists initially specify the workflow (XML file) with activities and dependencies. In the beginning of the workflow 5

13 execution, SciCumulus instruments the workflow, including all PA in the workflow to analyze and validate the data products generated by activities reducing the set of data to be processed (if possible). Workflow Activity n k file 1 ENZYME1311.fasta Provenance Analyzer Provenance Extractor Filter ENZYME1311.phylip Extractor #1 Extractor #n k file fasta_origin_id fasta_seq is_valid 1 ENZYME1311.fasta 3lcl MVKPTVSKAIVKK RTKFTRHRYELFFP QLSSSWRKPRGED SPVRRRYKGQKAM TRUE Workflow Activity (n+1) Fig. 4 Provenance Analyzer execution Fig. 5 SciCumulusPA implementation 5. EXPERIMENTAL RESULTS In this section we present an evaluation of the proposed approach by measuring performance improvements obtained by reducing the set of data to be processed during workflow execution. We executed SciPhy workflow in parallel in Amazon EC2 environment using SciCumulus workflow engine. The main idea is to measure and analyze the performance gains with PA. In the experiments presented in this paper we have instantiated Amazon s micro types (EC2 ID: t1.micro 613 MB RAM, 30 GB of EBS storage only, 1 core). Each instantiated VM uses Linux Cent OS 5 (64-bit), and it was configured with the necessary software, libraries, and the bioinformatics applications. All instances are based on the same image (ami-7d865614) and it was used to execute SciCumulus. To execute SciPhy in parallel, our simulations use as input a dataset of multi-fasta files of protein sequences extracted from RefSeq release 48 (Pruitt et al., 2009). This dataset is formed by 200 multi-fasta files and each multi-fasta file is constituted by an average of 10 biological sequences. To perform phylogenetic analysis, once downloaded, each input multi-fasta file is processed using the following versions of the programs: ClustalW 2.1, Kalign 1.04, MAFFT 6.857, Muscle , ProbCons 1.12, ModelGenerator 0.85, and RAxML alpha. Specific filtering requirements for each PA in SciPhy are defined by scientists that have experience with the workflow and also with the program involved. For each activity, specialists analyze provenance data and the validation code. In this experiment a provenance query Q1 is used for determining if the total number of phylogenetic trees expected was reached (i.e. if correspond to the number of multi-fasta files). Q1 offers information about the total execution time (TET) of the experiment. This can be done without PA, by browsing intermediate files. However, if the total number of trees was not reached, Q1 does not offer information about which trees or why these trees could not be generated. With PA, queries can be refined and further detailed going to specific steps of the execution, by querying parameters shown in Fig 4. For example, with further queries, the cause for no generating trees could be found, such as: empty files, incorrect format of files, insufficient number of sequences in files, or some specific problems of the execution environment. This data represents thousands of files, parameters and activities in the workflow execution that can last for weeks. There is no way to get information from these data in an ad-doc way. By using current solutions, the analysis would be done only after the execution leaving no room for performance improvements. Actually, in several cases the whole execution would be interrupted and resubmitted with different inputs/parameters. 6

14 In this performance evaluation, we first measured the performance of bioinformatics programs on a single VM to analyze the local optimization. Then we measured the performance and scalability using up to 128 VMs. Two separate executions of SciPhy were performed: (i) the first was started running SciPhy without inserting PA in the workflow (i.e. conventional). This way, even when elements in the set of data are irrelevant, they are processed; and (ii) the second one was using SciPhy with PA, which reduces the set of data to be processed (i.e. improved). The measurements of execution time (in hours) are summarized in Fig. 6 and Table I. The performance gains presented in Table I refer to the improvements achieved with the reduction of the set of data to be processed in each execution. The filter criteria informed was the e-value superior to 1e-5 (cut-off value). Fig. 6 Total execution time of SciPhy Number of cores Conventional Improved Performance gain % % % % % % % % Table I Execution time of the SciPhy workflow In each execution of SciPhy 23% of produced data was discarded. By analyzing the results we can state that the use of PA in SciPhy introduced performance gains for each one of the executions. The smallest performance gain obtained was of 20.5%, which represents an absolute difference of hours of total processing between the conventional and improved version of SciPhy running using 16 VMs. The overhead imposed by the insertion of PA can be considered negligible in this experiment since each PA execution (considering extraction and Filter phases) took about 10 seconds to finish in average. We can also state that the total execution time decreases, as expected, when SciCumulus provided more VMs for executing SciPhy. For example, the total execution time was reduced from hours (using one core) to hours (using only 16 cores). This led to a speedup of 9.31, which is still a very significant improvement for cloud computing. This behavior can be explained since this experiment is embarrassingly parallel, which is one of the most scalable patterns for clouds, yet very frequent in bioinformatics workflows. 6. FINAL REMARKS Large scientific experiments have long duration when many executions explore different parameters and input data. These executions are compute-intensive thus requiring techniques to improve performance especially in clouds where financial costs are involved and directly dependent of the total execution time. A phylogenetic analysis is one of several scientific workflows that need parallel mechanisms. In this paper we introduce Provenance Analyzer (PA) to extract provenance from produced data and to use this information in runtime queries to reduce the set of data to be processed along the flow. The main advantage of using PA is that they are generic in representing scientists quality criteria since scientists define the extraction and filter phases of PA according to the experiment execution behavior. Querying provenance at runtime is important since it allows for quality-based execution adjustments that otherwise would be impossible or too complex to be pre-programmed. In our experiments, SciPhy has been 7

15 executed on top of the Amazon EC2 using SciCumulus engine. Performance results show benefits of up to 36.2% when using PA when filtering about 23% of the produced data. Although the proposed approach is an ongoing work, this paper contributes by using PA to show the potential of analyzing provenance data during execution time to improve the overall performance of the workflow when it involves thousands of activity executions and data products. Future work includes the integration of the validation data framework with SciCumulus engine and its adaptive workflow execution model. REFERENCES Callahan, S.P., Freire, J., Santos, E., Scheidegger, C.E., Silva, C.T., Vo, H.T., VisTrails: visualization meets data management, in: SIGMOD International Conference on Management of Data. ACM, Chicago, Illinois, USA, pp Deelman, E., Gannon, D., Shields, M., Taylor, I., Workflows and e-science: An overview of workflow system features and capabilities. Future Generation Computer Systems 25, Dias, J., Ogasawara, E., Oliveira, D., Porto, F., Coutinho, A., Mattoso, M., Supporting Dynamic Parameter Sweep in Adaptive and User-Steered Workflow, in: 6th Workshop on Workflows in Support of Large-Scale Science, WORKS 11. Presented at the WORKS 11, ACM, Seattle, WA, USA, pp Freire, J., Koop, D., Santos, E., Silva, C.T., Provenance for Computational Tasks: A Survey. Computing in Science and Engineering 10, Gamma, E., Helm, R., Johnson, R., Vlissides, J.M., Design Patterns: Elements of Reusable Object-Oriented Software. Addison- Wesley Professional. Gil, Y., Deelman, E., Ellisman, M., Fahringer, T., Fox, G., Gannon, D., Goble, C., Livny, M., Moreau, L., Myers, J., Examining the Challenges of Scientific Workflows. Computer 40, Goncalves, J., Oliveira, D., Ocaña, K.A.C.S., Ogasawara, E., Mattoso, M., Using Domain-Specific Data to Enhance Scientific Workflow Steering Queries, in: Proc. IPAW Presented at the IPAW, Springer, Santa Barbara, CA. Hey, T., Tansley, S., Tolle, K., The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research. Hull, D., Wolstencroft, K., Stevens, R., Goble, C., Pocock, M.R., Li, P., Oinn, T., Taverna: a tool for building and running workflows of services. Nucleic Acids Research 34, Missier, P., Incremental workflow improvement through analysis of its data provenance, in: 3rd USENIX Workshop on the Theory and Practice of Provenance (TaPP 11). Heraklion, Crete, Greece. Moreau, L., Missier, P., The PROV Data Model and Abstract Syntax Notation [WWW Document]. W3C Working Draft. (Work in progress.). URL Na im, A., Crawl, D., Indrawan, M., Altintas, I., Sun, S., Monitoring data quality in Kepler, in: Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing, HPDC 10. ACM, New York, NY, USA, pp Ocaña, K.A.C.S., Oliveira, D., Ogasawara, E., Dávila, A.M.R., Lima, A.A.B., Mattoso, M., SciPhy: A Cloud-Based Workflow for Phylogenetic Analysis of Drug Targets in Protozoan Genomes, in: Norberto de Souza, O., Telles, G.P., Palakal, M. (Eds.), Advances in Bioinformatics and Computational Biology. Springer Berlin Heidelberg, Berlin, Heidelberg, pp Ogasawara, E., Dias, J., Oliveira, D., Porto, F., Valduriez, P., Mattoso, M., An Algebraic Approach for Data-Centric Scientific Workflows. Proc. of VLDB Endowment 4, Oliveira, D., Ogasawara, E., Baião, F., Mattoso, M., SciCumulus: A Lightweight Cloud Middleware to Explore Many Task Computing Paradigm in Scientific Workflows, in: 3rd International Conference on Cloud Computing, CLOUD 10. IEEE Computer Society, Washington, DC, USA, pp Pruitt, K.D., Tatusova, T., Klimke, W., Maglott, D.R., NCBI Reference Sequences: current status, policy and new initiatives. Nucleic Acids Res 37, D32 D36. Reiter, M., Breitenbuecher, U., Dustdar, S., Karastoyanova, D., Leyman, F., Truong, H.-L., A Novel Framework for Monitoring and Analyzing Quality of Data in Simulation Workflows, in: Proceedings of the 7th IEEE International Conference on e-science. Vaquero, L.M., Rodero-Merino, L., Caceres, J., Lindner, M., A break in the clouds: towards a cloud definition. SIGCOMM Comput. Commun. Rev. 39, Wilde, M., Hategan, M., Wozniak, J.M., Clifford, B., Katz, D.S., Foster, I., Swift: A language for distributed parallel scripting. Parallel Computing

16 Reprodução de Experimentos Científicos Usando Nuvens 1 Ary Henrique M. de Oliveira 1,2, Murilo de Souza Martins 1, Igor Modesto 1, Daniel de Oliveira 2, Marta Mattoso 2 1 Universidade Federal do Tocantins, Palmas- TO, Brasil 2 COPPE, Universidade Federal do Rio de Janeiro, Rio de Janeiro- RJ, Brasil {aryhenrique, murilosm, {danielc, Resumo. Workflows científicos são utilizados para modelar experimentos computacionais. Os resultados desses experimentos são publicados e compartilhados na forma de artigos publicados em veículos científicos. Entretanto, para que tais resultados sejam cientificamente válidos eles devem ser passíveis de reprodução. Pesquisadores da área de e- Science têm a necessidade de compartilhar os artefatos utilizados para a geração dos resultados, dentre eles, os dados de entrada do workflow e os parâmetros utilizados no experimento. Entretanto, reproduzir um experimento baseado nestes artefatos não é uma tarefa trivial. Apesar de o workflow especificar o protocolo de execução, com dados e parâmetros de entrada disponíveis, nem sempre o ambiente de execução está acessível. Programas que foram originalmente utilizados podem estar obsoletos, versões de bibliotecas podem não ser mais compatíveis além de ambientes que podem não estar mais disponíveis para o cientista. Esse cenário se torna ainda mais complexo quando tratamos de reproduções de longo prazo, como por exemplo, diversos anos após a execução que levou aos resultados publicados. Diante deste problema, este artigo propõe uma abordagem desenvolvida na forma de um componente de software chamada ReproeScience para reprodução do ambiente onde o experimento computacional foi originalmente executado, de forma que o mesmo possa ser instanciado sob demanda e reproduzido em iguais condições. Para isto é proposta a utilização da tecnologia de máquinas virtuais de nuvens de computadores como arcabouço básico. Categories and Subject Descriptors: H. Information Systems [H.m. Miscellaneous]: Databases 1. INTRODUÇÃO Durante as últimas décadas, a computação se estabeleceu como o quarto pilar da ciência para apoiar a formulação de teorias, uma vez que muitos experimentos podem se beneficiar de simulações executadas em ambientes computacionais (Taylor et al. 2007). Alguns dos problemas teóricos, que são analiticamente complexos de serem solucionados, podem ser resolvidos por meio de simulações e da utilização de recursos computacionais. Cada simulação desta categoria é caracterizada pelo encadeamento de programas em um fluxo coerente de atividades. A execução de experimentos baseados em simulação é apoiada por diversas técnicas e abordagens, como os workflows científicos. Um workflow científico é uma abstração que define as etapas de execução de um experimento e a sequência em que tais etapas ocorrem, de forma a corroborar ou refutar uma hipótese científica (Jarrard 2001). Cada etapa (i.e. atividade do workflow) envolve a execução de um determinado programa, que é responsável pela transformação dos dados de entrada e a produção de dados de saída. Os workflows científicos são modelados, executados e monitorados pelos chamados Sistemas de Gerência de Workflows Científicos (SGWfC). A maioria desses workflows é computacionalmente intensiva e demanda ambientes de alto desempenho (Mattoso et al. 2010) em sua execução. Desta forma, é uma necessidade real a utilização de ambientes distribuídos, de grande capacidade de processamento e muitas vezes heterogêneos, aliados à aplicação de técnicas de paralelismo. Como exemplo destes ambientes, podemos citar os clusters, as grades, e mais recentemente as nuvens de computadores (Vaquero et al. 2009). Para que um experimento seja válido sob o ponto de vista científico, o seu resultado deve ser passível de reprodução por terceiros. No cenário científico, se um cientista publica seus resultados de * Este artigo foi parcialmente financiado pelo CNPq, CAPES e FAPERJ 9

17 uma forma que somente ele possa reproduzi-los, a comunidade pode considerar sua pesquisa inválida. Para atingir tal nível de reprodução, necessita-se possuir dados descritores tanto do ambiente de execução quanto dos experimentos ou workflows propriamente ditos. Estes dados podem ser obtidos a partir de dados de proveniência (Freire et al. 2008). Dados de proveniência são automaticamente coletados por SGWfC ao longo da execução do workflow e são fundamentais para reproduzir e validar uma determinada execução do workflow. Apesar de já existirem diversas abordagens para a captura dos dados de proveniência, seja em ambientes sequenciais ou distribuídos (Altintas et al. 2006, Paulino et al. 2011) eles não fazem com que o experimento seja de fato passível de reprodução. Com os dados de proveniência, o cientista tem acesso, por exemplo, aos valores de parâmetros utilizados, porém, somente isso não é suficiente para reproduzir um workflow. Isso porque o ambiente no qual o workflow foi originalmente executado pode não existir mais, o mesmo vale para as versões dos programas e configurações dos mesmos. Uma das principais preocupações em termos de reprodução de experimentos é a questão da rápida evolução da infraestrutura dos sistemas de computação. Dada esta evolução, ainda será possível reexecutar o experimento concebido em uma tecnologia obsoleta? Esse cenário ainda se torna mais complexo quando tratamos de uma reprodução de longo prazo. Tomemos por exemplo a execução de um workflow que precisa ser reproduzido daqui a 15 anos. As plataformas computacionais poderão ser outras, fazendo com que os programas hoje utilizados sejam incompatíveis com as futuras arquiteturas, além disso, muitos dos programas utilizados têm seus projetos descontinuados. Assim, preservar o ambiente original de execução ainda é um problema em aberto. Este é um problema ressaltado por Gil et al. (2007) e tratado em eventos tradicionais de banco de dados como o ACM SIGMOD (www.sigmod.org) que mantém uma trilha específica chamada Repeatability section of the ACM SIGMOD que tem como objetivo prover soluções que garantam a reprodução (ou repetição) dos experimentos submetidos a este congresso. Já existem algumas soluções que têm como objetivo final o compartilhamento de resultados de experimentos, mas, na maioria dos casos, não garantem a sua reprodução. Exemplos são o myexperiment (Goble et al. 2010) e o CrowdLabs (Mates et al. 2011), que possibilitam o compartilhamento de workflows científicos e anotações dos cientistas. Mas tanto o myexperiment quanto o CrowdLabs não permitem que o experimento seja reproduzido, apenas possibilitam o compartilhamento dos resultados, sendo responsabilidade dos cientistas montarem o ambiente (caso possível) para executar o workflow. A computação em nuvem traz uma nova perspectiva para a reprodução de workflows. Ela é baseada na tecnologia de máquinas virtuais (VM) e fornece recursos teoricamente ilimitados (elasticidade). Uma VM pode ser definida como uma cópia isolada de um sistema físico, sendo ideal para possibilitar a reprodução de um experimento. A grande vantagem da virtualização é conseguir emular uma arquitetura e um sistema operacional em uma máquina física que nem sempre possui as mesmas características arquiteturais da máquina emulada. A abordagem apresentada nesse artigo é baseada na hipótese de que é possível reproduzir o ambiente de execução do experimento, e consequentemente dos resultados obtidos, utilizando a tecnologia de VM para atingir a reprodução de cada um dos ambientes envolvidos na execução do workflow. Portanto, o ambiente do experimento original é transformado em Imagens de Máquinas Virtuais (VMI) que podem ser disponibilizadas juntamente com a publicação de um artigo, fazendo com que os resultados sejam passíveis de reprodução por terceiros. Assim, uma VM é gerada de forma a manter as características de software originalmente definidos, e também é utilizada como base da infraestrutura de computação em nuvem. Um dos desafios se concentra em capturar as configurações dos mais diversos tipos de ambientes de forma a empacotá-las em uma VMI que possa ser instanciada e utilizada a posteriori, para a reprodução do experimento. Este artigo apresenta o ReproeScience (i.e. Reproductible e-science), uma abordagem de reprodução de experimentos a ser agregada a um SGWfC, como o VisTrails (Callahan et al. 2006), ou a um SGWfC em nuvens, como o SciCumulus (Oliveira et al. 2010). A Seção 2 apresenta os trabalhos relacionados à reprodução/repetição e a nuvens de computadores. A Seção 3 descreve o ReproeScience, enfatizando os módulos de clonagem e reprodução do experimento. A Seção 4 destaca as conclusões parciais obtidas. 10

18 2. REPRODUÇÃO DE EXPERIMENTOS E NUVENS DE COMPUTADORES Nos últimos anos, a computação em nuvem se tornou uma realidade no âmbito acadêmico. A idéia da computação em nuvem evoluiu do conceito de computação em grade aliada aos conceitos de escalabilidade e disponibilidade. Uma das vantagens da nuvem para os workflows é prover aos cientistas o acesso a uma variedade de recursos computacionais sem a necessidade de adquirir uma cara infraestrutura computacional. O ponto chave da nuvem é a sua divisão em camadas de abstração separadas por interfaces bem definidas através de VMs. Uma VM é definida como uma camada de software em um sistema de computação físico com o objetivo de se obter uma ou mais arquiteturas de VMs desejadas (Vaquero et al. 2009). Esta camada de software, denominada de sistema convidado, é executada sob o sistema operacional hospedeiro que possui um hypervisor, responsável por gerenciar esta camada de software. Utilizando as VMs oferecemos um ambiente independente e altamente configurável por cientista. São exemplos de workflows científicos executados em nuvem, análises filogenéticas (Ocaña et al. 2011) e de dados de astronomia (Hey et al. 2009). Consequentemente, é necessário assegurar a reprodução desses workflows. Workflows apoiam não somente a pesquisa em ciência da computação, mas também pesquisas em ciências naturais, ciências sociais e humanas. Por esse motivo, os workflows devem atender aos mesmos padrões de reprodutibilidade de experimentos de ciências naturais (Koop et al. 2011). Tal reprodução pode ser assistida por meio da captura de dados de proveniência. Dados de proveniência estão relacionados ao histórico do experimento, seja em relação à sua estrutura, sua execução ou ao ambiente no qual foi executado. Sendo este último tipo o objeto de estudo deste artigo. Algumas soluções já oferecem a captura de proveniência para validação dos experimentos como o PASS (Muniswamy-Reddy et al. 2009) e o SciCumulus (Oliveira et al. 2010) e poderiam ser utilizadas como base para uma abordagem que ofereça recursos de reprodução do experimento. Esta necessidade de reprodução é um problema em aberto, porém algumas soluções já foram propostas nesse sentido, conforme apresentado a seguir. Na proposta de Macko et al. (2011) é apresentada uma extensão do PASS para coleta de proveniência de experimentos por meio do sistema operacional, utilizando um hypervisor Xen. Nessa abordagem, os autores coletam dados de proveniência por meio de sinais do sistema operacionais (SO), tais como interrupções e system calls e tem como objetivo recriar o ambiente utilizando estes dados de proveniência coletados. Entretanto, ao se capturar proveniência por meio do SO, informações como arquivos produzidos, configurações utilizadas, não podem ser capturadas. A abordagem Paper Mâché (Brammer et al. 2011) e a abordagem proposta por Koop et al. (2011), ambos apresentados no Grande Desafio de Artigos Executáveis da Elsevier (Gabriel e Capone 2011), propõem soluções para artigos com reprodução de experimentos garantida. Enquanto que o Paper Mâché utiliza VMs, o que permite que os leitores e avaliadores facilmente visualizem e interajam com um artigo, a abordagem de Koop et al. foca em associar um workflow no VisTrails a cada artigo. Estas abordagens viabilizam a reprodução do experimento, mas o cientista deve configurar todo o ambiente, pois tais abordagens apenas tem como objetivo disponibilizar as informações de reprodução do workflow como parâmetros e dados. Esta configuração manual do experimento pode ser complicada e suscetível a erros. Além disso, por meio destas abordagens, não podemos executar workflows em paralelo, somente em modo sequencial. 3. REPROESCIENCE Para a reprodução efetiva de experimentos científicos, modelados como workflows e executados pelos SGWfC, se torna fundamental possuir o mesmo ambiente computacional da execução original. Assim, é necessário reconstruir o ambiente a partir dos dados de proveniência e, conforme proposto neste artigo, por meio de VMI. Para tal, é proposto o middleware ReproeScience. A Figura 1 apresenta a arquitetura do ReproeScience, que é utilizada por meio de uma interface que possui três métodos principais, responsáveis por obter os dados de proveniência, clonar o ambiente no qual o experimento 11

19 foi executado e reconstruir os sistemas de computação envolvidos na execução do workflow. O ReproeScience é invocado pelos SGWfC através de funções definidas pelo usuário (do inglês User Defined Functions ou UDF). O ReproeScience fornece apoio para as UDF como uma forma de especificar o processamento personalizado. Além disso, o ReproeScience armazena os dados necessários para autenticação com provedores de nuvem. A execução do ReproeScience inicia-se juntamente com a execução do workflow científico. À medida que o workflow é executado, dados de proveniência são gerados e os mesmos são utilizados para a recuperação das configurações do ambiente pelo ReproeScience. Após o término da execução do workflow, a abordagem solicita ao cientista a opção de clonagem do ambiente, e uma vez que ele opte por iniciar este processo (muitas vezes demorado), as VMI são geradas, tornando assim possível a reprodução do experimento, sob iguais condições, ao executado originalmente. Figura 1 Arquitetura do ReproeScience O módulo de clonagem do sistema é utilizado para capturar as informações do ambiente original e gerar as VMIs. Para clonar o ambiente é necessário utilizar uma ferramenta de clonagem, tal como o Clonezilla (http://clonezilla.org/). Além disso, é necessário ter um Monitor de Máquinas Virtuais (VMM) para criar as VMIs e ambos componentes devem estar instalados na máquina que executa o SGWfC. Atualmente, o ReproeScience trabalha com VMs nos padrão do VMM Xen. O diagrama de atividades da Figura 2 apresenta as atividades executadas pelo módulo de clonagem. A coleta de proveniência é realizada pela máquina de execução de workflows a qual o ReproeScience está acoplado, e é obtida por meio da interface de comunicação. Cabe a máquina de execução escolhida obter os metadados do ambiente para a geração das imagens das máquinas virtuais. Ao término da execução do workflow, a atividade de finalização obtém os dados de proveniência do ambiente do experimento e define um objeto chamado experimento no ReproeScience. Neste momento são finalizados os registros de proveniência e demais características da execução do workflow. Após a atividade de finalização fica sob a responsabilidade de o cientista informar se deseja ou não criar as VMI dos sistemas de computação envolvidos na execução do workflow. É importante frisar que um dado workflow pode executar em mais de um ambiente, como um desktop e um cluster e o VMM deve registrar os dados de todos estes ambientes para a criação da VMI. Caso o cientista não deseje registrar a VMI para a reprodução, o objeto experimento é destruído e o ReproeScience é finalizado. Caso o cientista opte pela geração das VMs, o ReproeSience executa uma atividade de clonagem do ambiente original, utilizando os dados de proveniência armazenados no objeto experimento, por meio do VMM para gerar as VMI (por este motivo é preciso ter o VMM instalado). Após a solicitação da clonagem, o ReproeScience fica aguardado a resposta do VMM. Caso o processo de geração das imagens falhe, uma atividade de informação de erro é executada e o processo de clonagem é finalizado. Caso a geração das imagens seja bem sucedida um objeto chamado virtualmachineimage é criado e o mesmo é agregado ao experimento. Este objeto ao final da execução do workflow contém todos os dados de proveniência necessários para a clonagem do ambiente computacional no qual o workflow foi executado. É importante ressaltar que o ReproeScience objetiva clonar ambientes com muitos processadores, como um cluster, por exemplo. Desta forma, ele garante que as imagens que são produzidas sejam consistentes entre as diversas maquinas que compõem o ambiente. 12

20 No caso das informações sobre o hardware, os dados são coletados pelo VMM, tais como: as características de unidade de processamento (CPU), a descrição da memória e disco rígido (capacidade), a arquitetura do sistema (centralizada, cliente-servidor, cluster e etc.), e informações sobre a rede de computadores. Apesar de uma VMI não conter informações referentes ao hardware (isso somente é definido no momento da instanciação das máquinas virtuais) o objeto virtualmachineimage contém os metadados associados ao hardware ideal para que a máquina virtual a ser criada a posteriori seja equivalente ao ambiente originalmente executado. Em termos de software, é necessário obter informações sobre o sistema operacional, com sua base operacional (ex. 32 ou 64 bits), os programas e bibliotecas invocadas durante a execução do workflow. Deve-se atentar ao uso de serviços Web, pois determinadas atividades do workflow científico podem executar processamento em tais serviços. Figura 2 Atividades do Módulo de Clonagem Uma vez que as imagens de máquinas virtuais estão prontas, o processo de reconstrução pode ser executado através do módulo de reconstrução. O ambiente original pode ser reconstruído de duas formas diferentes: (i) reproduzido em uma estação de trabalho ou (ii) reproduzido na nuvem. Atividades computacionalmente menos custosas podem ser executadas localmente enquanto as mais custosas podem ser executadas na nuvem. Com a utilização de VMs, o ambiente pode ser instanciado em qualquer uma das arquiteturas de forma transparente. Logicamente, se o cientista necessitar de alto poder de processamento a nuvem se torna a única opção, uma vez que oferece recursos de forma elástica. No contexto de computação em nuvem é necessário possuir acesso por meio do sistema de autenticação do provedor de nuvem, por exemplo possuir um par de chaves para autenticação que são expressos no SLA (Service Level Agreement). Tais informações estão presentes na base de proveniência e são disponibilizadas para o cientista no momento da reconstrução da máquina virtual. Outra característica que é explorada no desenvolvimento é a capacidade de incorporar múltiplos provedores de nuvem na reprodução do workflow. O objetivo é utilizar instâncias de VMs em diferentes provedores de nuvem para a execução do workflow científico. Tal característica reforça o conceito de recursos ilimitados, pois se a demanda de recursos ultrapassar a capacidade de recursos de um provedor, o middleware pode passar parte da carga para outros provedores de nuvem. Na Figura 3, podemos verificar que o ReproeScience inicia-se juntamente com o SGWfC. Para solicitar a reprodução do experimento, o cientista seleciona o workflow que deseja reproduzir e em seguida os dados de proveniência de reprodução são recuperados. Existe uma diferença entre os dados de 13

21 proveniência do workflow original e dos ambientes clonados. Para o módulo de reconstrução, os dados importantes são os relacionados às VMs e VMI criadas (proveniência de reprodução). Baseado nestes dados são selecionadas a(s) VMI que podem ser instanciadas para esta execução. As VMI que possibilita a execução do workflow são carregadas e instanciadas. Após o carregamento das VMI existe um ponto de decisão onde o cientista pode selecionar em que ambiente o workflow será reproduzido (localmente ou na nuvem). Figura 3 Atividades do Módulo de Reconstrução Para garantir que as informações de proveniência coletadas nos diferentes SGWfC pudessem ser armazenadas e utilizadas pelo ReproeScience foi desenvolvido um modelo de dados baseado no Open Provenance Model (OPM) (Moreau et al. 2008). Todavia, foram observadas características para adequar o Modelo de dados do ReproeScience ao PROV do grupo de trabalho de proveniência do W3C, uma vez que o PROV é uma evolução do OPM. Os protocolos de adequação ao padrão são definidos e executados pelo objeto experimento. O módulo de proveniência do ReproeScience executa atividades de captura de dados da base de proveniência dos SGWfC e ainda obtém dados necessários para a reprodução com VMs. A Figura 4 apresenta o modelo de proveniência do ReproeScience representado como um diagrama de classes da UML. Este modelo contém informações tanto do workflow quanto do ambiente clonado. Inicialmente, pode se verificar que a classe Workflow é parte integrante de um Experimento e possui dados como data de geração, nome e versão, todos obtidos da base de proveniência do SGWfC. As características da classe Autor também são obtidas através de informações do SGWfC. Em seguida, pode-se observar as classes AutenticacaoNuvem e FornecedorNuvem, as quais possuem os dados para executar a gerência do ambiente de reprodução em um ou vários fornecedores de nuvem. Nestas classes são identificadas as chaves de acesso e as informações (porta e IP) para a conexão com o provedor de nuvem. Seguindo o modelo da Figura 4, pode-se observar que um workflow é composto por uma lista de Atividades que representam os processos executados nas etapas do workflow. Pode-se verificar que as atividades possuem objetos de pesquisa artefatos ligados a si, os quais são representados pela classe ObjetoPesquisa. Esta classe é uma generalização que se desmembra em diversos outros objetos especializados, tais como os arquivos de entrada de dados, os resultados intermediários entre as etapas do workflow, os programas e bibliotecas invocados em tempo de execução, enfim, todos os elementos que compõem um experimento modelado como um workflow. Porém, o diagrama foca os dados para a reconstrução das VM, que são representadas pelo objeto ImagemMaquinaVirtual. Neste objeto é identificado o hypervisor, ou seja, o VMM, os dados de identificação, tais como o nome e o caminho contido no PATH, a senha de root e o endereço IP, este último obtido do SGWfC e 14

22 necessário para se verificar a necessidade de clonar uma determinada quantidade de diferentes ambientes. Figura 4 Classes do Modelo de Proveniência do ReproeScience Vale destacar que o cientista deve ter privilégios de administrador para conseguir clonar os ambientes. Ainda na Figura 4, o objeto ImagemMaquinaVirtual possui as classes ItensHardware e ItensSoftware como classes integrantes, as quais identificam as características do ambiente operacional de execução do workflow. No caso de ItensHardware são identificadas o tamanho da memória, HD, CPU e Swap da arquitetura do sistema de computação. Já no caso do objeto ItensSoftware é identificada uma lista de softwares invocados para o processamento do workflow, bem como suas características e a dependência existente entre os softwares, identificada através de chamadas em tempo de execução. 4. CONCLUSÕES Nos últimos anos a comunidade tem empreendido uma série de esforços para alcançar a reprodução de experimentos em diversas comunidades científicas. Todo esse esforço provavelmente levará à criação de grandes repositórios de experimentos reproduzíveis. Entretanto, reproduzir um experimento científico em sua plenitude ainda é um desafio em aberto, especialmente no que se refere às características do ambiente em que o experimento foi originalmente executado. Neste artigo apresentamos o ReproeScience, uma abordagem que visa à reprodução de um experimento científico modelado como um workflow por meio de máquinas virtuais e computação em nuvem como arcabouço básico para a reprodução do ambiente original em que o experimento foi executado. A utilização da nuvem computacional traz como vantagem o acesso a recursos elásticos e com alta disponibilidade. O ReproeScience está em fase de desenvolvimento e existe um protótipo implementado na linguagem Java que utiliza o sistema operacional Ubuntu para realizar a clonagem e a geração da VM utilizando o hypervisor Xen. Atualmente, o código da clonagem do ambiente está sendo depurado e estabilizado. O provedor de nuvem utilizado neste protótipo é o da Amazon EC2, todavia, estamos executando testes com o GoGrid de forma a estender o número de provedores de nuvem e até mesmo incluir processamento de uma atividade com dois provedores cooperando um com o outro. Apesar de ser um trabalho em andamento, essa primeira proposta abre um vasto campo de pesquisas futuras, porém testes ainda devem ser realizados com a abordagem proposta. Para realização de testes dessa natureza, está planejada a execução do workflow SciPhy (Ocaña et al. 2011) como estudo de 15

23 caso na máquina de workflows SciCumulus. O SciPhy tem como objetivo analisar a relação evolutiva entre uma série de organismos que são informados pelos cientistas. Este workflow necessita de um ambiente de processamento de alto desempenho, uma vez que é composto de atividades paralelas que demandam processamento paralelo. O objetivo final do ReproeScience é prover toda a infraestrutura necessária para a reprodução dos experimentos a longo prazo. Por meio da utilização desta infraestrutura, estaremos aptos a criar um repositório de experimentos reproduzíveis que possam ser instanciados pelos cientistas de forma simples, sem necessidade de realizar complexas configurações de ambiente. As técnicas de banco de dados nos fornecem subsídios para a modelagem dos dados de proveniência, criação dos repositórios de experimentos e para a exploração das informações que eles detêm. 5. REFERÊNCIAS Altintas, I., Barney, O., Jaeger-Frank, E., (2006), "Provenance Collection Support in the Kepler Scientific Workflow System", Provenance and Annotation of Data,, chapter 4145, Springer Berlin, p Brammer, G. R., Crosby, R. W., Matthews, S., Williams, T. L., (2011), "Paper Mâché: Creating Dynamic Reproducible Science.", Procedia CS, v. 4, p Callahan, S. P., Freire, J., Santos, E., Scheidegger, C. E., Silva, C. T., Vo, H. T., (2006), "VisTrails: visualization meets data management". In: SIGMOD International Conference on Management of Data, p , Chicago, Illinois, USA. Freire, J., Koop, D., Santos, E., Silva, C. T., (2008), "Provenance for Computational Tasks: A Survey", Computing in Science and Engineering, v.10, n. 3, p Gabriel, A., Capone, R., (2011), "Executable Paper Grand Challenge Workshop", Procedia Computer Science, v. 4, p Gil, Y., Deelman, E., Ellisman, M., Fahringer, T., Fox, G., Gannon, D., Goble, C., Livny, M., Moreau, L., et al., (2007), "Examining the Challenges of Scientific Workflows", Computer, v. 40, n. 12, p Goble, C. A., Bhagat, J., Aleksejevs, S., Cruickshank, D., Michaelides, D., Newman, D., Borkum, M., Bechhofer, S., Roos, M., et al., (2010), "myexperiment: a repository and social network for the sharing of bioinformatics workflows", Nucleic Acids Research, v. 38, n. Web Server Issue (jul.), p Hey, T., Tansley, S., Tolle, K., (2009), The Fourth Paradigm: Data-Intensive Scientific Discovery. Microsoft Research. Jarrard, R. D., (2001), Scientific Methods. Online book, Url.: Koop, D., Santos, E., Mates, P., Vo, H. T., Bonnet, P., Bauer, B., Surer, B., Troyer, M., Williams, D. N., et al., (2011), "A Provenance-Based Infrastructure to Support the Life Cycle of Executable Papers", Procedia Computer Science, v. 4, p Macko, P., Chiarini, M., Seltzer, M., (2011), "Collecting Provenance via the Xen Hypervisor". In: Proc. of TaPP 11TaPP 11, Boston, United States. Mates, P., Santos, E., Freire, J., Silva, C. T., (2011), "CrowdLabs: Social Analysis and Visualization for the Sciences". In: 23rd Scientific and Statistical Database Management Conference23rd Scientific and Statistical Database Management Conference, Portland, Oregon, USA. Mattoso, M., Werner, C., Travassos, G. H., Braganholo, V., Murta, L., Ogasawara, E., Oliveira, D., Cruz, S. M. S. da, Martinho, W., (2010), "Towards Supporting the Life Cycle of Large-scale Scientific Experiments", International Journal of Business Process Integration and Management, v. 5, n. 1, p Moreau, L., Freire, J., Futrelle, J., McGrath, R., Myers, J., Paulson, P., (2008), "The Open Provenance Model: An Overview", Provenance and Annotation of Data and Processes,, p Muniswamy-Reddy, K.-K., Macko, P., Seltzer, M., (2009), "Making a cloud provenance-aware". In: First workshop on on Theory and practice of provenance, p. 1-10, San Francisco, CA. Ocaña, K. A. C. S., Oliveira, D., Ogasawara, E., Dávila, A. M. R., Lima, A. A. B., Mattoso, M., (2011), "SciPhy: A Cloud-Based Workflow for Phylogenetic Analysis of Drug Targets in Protozoan Genomes", In: Norberto de Souza, O., Telles, G. P., Palakal, M. [orgs.] (eds), Advances in Bioinformatics and Computational Biology,, chapter 6832, Berlin, Heidelberg: Springer Berlin Heidelberg, p Oliveira, D., Ogasawara, E., Baião, F., Mattoso, M., (2010), "SciCumulus: A Lightweight Cloud Middleware to Explore Many Task Computing Paradigm in Scientific Workflows". In: 3rd International Conference on Cloud Computing, p , Washington, DC, USA. Paulino, C. E., Cruz, S. M. S., Oliveira, D., Campos, M. L. M., Mattoso, M., (2011), "Capturing Distributed Provenance Metadata from Cloud-Based Scientific Workflows", Journal of Information and Data Management, v. 2, n. 1, p Taylor, I. J., Deelman, E., Gannon, D. B., Shields, M., (2007), Workflows for e-science: Scientific Workflows for Grids. 1 ed. Springer. Vaquero, L. M., Rodero-Merino, L., Caceres, J., Lindner, M., (2009), "A break in the clouds: towards a cloud definition", SIGCOMM Comput. Commun. Rev., v. 39, n. 1, p

24 Contextual Preference Repositories for Personalized Query Answering Sandra de Amo, Tiago F. Mansueli, Renan G. Cattelan, Vinicius V.S. Dias, Hiran N. M. Ferreira Universidade Federal de Uberlândia - Faculdade de Computação Abstract. The emerging of ubiquitous computing technologies in recent years has given rise to numerous personalized applications where user preferences and contexts are key features in providing suitable individual product recommendation as well as in personalizing query results according to user profile. Following this trend, it is noticeable the increasing interest of database researchers in developing efficient methods for incorporating context-aware preference querying facilities in database systems. In this work we develop a Preference Repository for storing and managing contextual preferences for each user through time. The evolution of the contexts of a specific user is handled by means of a contextual graph which plays an important role in the operations of storing, updating and retrieving preferences from the repository that match best to a given user context. Categories and Subject Descriptors: H.Information Systems [H.m. Miscellaneous]: Databases Keywords: preference awareness, content personalization, query answering personalization 1. INTRODUCTION With the emerging of ubiquitous computing technologies [Abowd and Mynatt 2000; Cattelan et al. 2008; Yu and Nakamura 2010], the interest of researchers has been focusing mainly on the notion of context-dependent preferences. Indeed, in this new scenario users access to databases will not occur at a unique context, and consequently their expectation when querying data will vary according to a multitude of contexts including location, time and surrounding influences. The CPrefSQL query language introduced in [de Amo and Pereira 2010] is an extension of the standard SQL providing new context-dependent preference operators allowing to rank the answers according to the user s preferences and context. In CPrefSQL, in order to get a personalized answer a user has to previously inform his preferences to the system by means of a command (CREATE PREFERENCES). Let us suppose a situation where a user u asks a query Q to the SGBD without informing his/her preferences. In this case, the CPrefSQL language would act like SQL and would not provide a personalized answer. It would be interesting to enhance the system with a Preference Repository which would store context-dependent preferences provided by u in the past. Then, when u asks his query Q without informing his current preferences, the system would automatically capture the user s context c and query the repository in order to locate the most recent preferences of user u matching the given context c. In this paper we focus on the problem of modeling and developing a Context-Dependent Preference Repository allowing easy access to user s long-term preferences. We assume that preferences are entered by the user sometime when he/she accesses the system. However, the Preference Repository Manager can be adapted to handle preferences that are automatically extracted by employing some Preference Mining algorithm [de Amo et al. 2012]. Contexts are either automatically collected from the user environment (e.g., device type, network bandwidth and calendar information) or explicitly We thank the Brazilian Research Agencies CNPq, CAPES and FAPEMIG for supporting this work. 17

25 given by the user (e.g., time availability). Each time some set of preference rules R is informed by a previously identified user in a current context c, this information is stored into the Preference Repository. Operations for storing, retrieving and updating the Preference Repository are implemented in the Preference Manager. Besides, we show how the Preference Repository and Preference Manager can be coupled with the CPrefSQL language, constituting the main modules of the Context Access System (CAS) introduced in this paper. In Figure 1 the main architecture of the Context Access System (CAS) is illustrated. The CAS provides important context-aware search capabilities including personalized query-answering as well as tools allowing to adapt the format of the query answers according to the user s context. The following example aims at illustrating our proposal in a learning application. It is adapted from the application proposed in [Kärger et al. 2008] 1. Fig. 1. CAS architecture and main modules Motivating Example. Andy is a college student attending a few courses in Computer Science this term. In a particular day, Andy is worried about an upcoming test and decides to access the CAS during his lunch break in the university cafeteria. His test is in a couple of hours and his tablet computer is connected to the university wireless network. Andy enters his current context: he is at the university using a tablet device, with short available time and his access is due to an upcoming test. However, he does not enter any preference. The CAS uses Andy s context information in order to extract from the Preference Repository some set of preferences (he entered in some past access) whose context is most compatible with Andy s current context. In this context, Andy prefers lessons tagged as easy and important. Such tags are metadata about captured content which has been informed by the instructor or classified by students. Next, the CAS uses the extracted preferences in order to return a set of lessons which most fulfill Andy s expectation at the moment. Since Andy is in a public space and his tablet has no earphones, a presentation ignoring audio content will be returned by the CAS. The fact that Andy s tablet is not equipped with earphones is part of his context automatically captured by the system. The main contributions of this paper are: (1) Introduction of the Context Access System (CAS) architecture; (2) Implementation of the Preference Repository and Preference Manager, two modules of the CAS and (3) Incorporation of the CPrefSQL query language [de Amo and Pereira 2010] in the CAS. The remaining of this paper is organized as follows. In Section 2, we discuss some related work. In Section 3 we present some necessary background. In Section 4 we present the details of the Preference Repository Model and the Preference Manager. In Section 5, we briefly describe the CAS. Finally, in Section 6, we conclude the paper. 2. RELATED WORK Context-aware applications. One pioneer work in context-aware applications is [Dey 2001] where the author provides an operational definition of the notion of context and presents a general architec- 1 [Kärger et al. 2008] uses an extension of the RDF query language SPARQL proposed in [Siberski et al. 2006] allowing to specify soft constraints in the form of preferences. However, the problem of how contexts influence the user s preferences and how to find the best way to answer a user query even when he/she does not explicitly provide his/her preferences is not tackled in this work. 18

26 ture for building context-aware applications. In [Suryanarayana and Hjelm. 2002] the authors discuss the role of profiles within the Web architecture concerning situated (or contextualized) web services. In [Chen and Kotz. 2000] a survey on context-aware mobile computing is presented as well as a paradigm in which applications are provided with functionalities for discovering and taking advantage of contextual information (such as user location, time, nearby people and devices, user activities, etc). Several important topics are highlighted in this survey, such as types of contexts, models for context information and applications that adapt themselves to the changing context. Preference Repositories. In [Holland and Kießling 2004] a general meta model for contexts (situations) is proposed, which can be used as a foundation for context models specification in a wide range of applications. In this approach, contextual preferences are qualitative (expressed by means of rules) and are stored in a XML repository. This repository can be queried in order to find the best-matching preferences to a given context. Differently from the approach presented in this paper, [Holland and Kießling 2004] does not tackle the problem of query answering with preference support. Besides, the preference model adopted in [Holland and Kießling 2004] is less expressive than ours. 3. PRELIMINAIRES In this section we briefly present the main features of the CPrefSQL query language. The CPrefSQL language has been implemented in the core (and alternatively on-top) of the PostGreSQL 8.4 query processor. For more details and a more rigorous presentation see [de Amo and Pereira 2010]. 3.1 The Preference Model The preference model underlying the CPrefSQL language distinguishes data attributes (denoted by A 1, A 2,...) from context attributes (denoted by C 1, C 2,...). Users can specify their preferences on data values and their personal contexts may have influence on their respective choices. Context values are inherent to a situation outside the database and in general cannot be affected by user preferences. Common examples of context attributes include user location, time, temperature, bandwidth, nearby resources [Chen and Kotz. 2000]. We adopt a general framework for context specification. For a detailed presentation see [de Amo and Pereira 2010]. A Context Schema is a set of context attributes C = {C 1,..., C n }. A context over C is a tuple c = (c 1,..., c n ) where each c i is a value for the context attribute C i or the symbol. For instance, C = {Place, Bandwith} is a context schema and c = (home,1gb) and c = (*, 1Gb) are contexts over C. The latter context (c ) represents a situation where the user bandwidth internet connection is 1Gb. So, in this context he may prefer to download videos than text. The former context (c) is more specific, representing a situation where the user is at home and his internet bandwidth is 1Gb. User preferences are expressed by preference rules of the form IF (a context c and some data condition are given) THEN the values for data attribute X satisfying a condition S are preferable than the values not satisfying this condition. In this paper, we introduce the concept of preference rules informally through an example. For a more rigorous presentation please see [de Amo and Pereira 2010]. Example 3.1. Let us consider the context attributes P (Place) and R (Reason) and the relation Lessons with the data attributes T (Title), Di(Discipline), D (Difficulty), I (Importance) and Du (Duration). The student Andy specifies the following preferences concerning his studies: when he is at the university and aims at a quick review he prefers to review the more important and easier lessons (those with importance status 4 and difficulty status 3). Moreover, since he is very busy when he is at the university, he prefers to be given lessons whose overall duration is under 60 minutes. On the other hand, if his location and interest changes his preferences change accordingly: when he is at home preparing himself for a coming test on Databases, he prefers to be given more detailed lessons, with at least two hours duration. The preference rules corresponding to the first and fourth statements are the following: 19

27 rule 1: IF context = (university,quick review) THEN (I 4) (I < 4) [T, Di] rule 2: IF context = (university,quick review) THEN (D 3) (D > 3) [T, Di] rule 3: IF context = (university,quick review) THEN (Du < 60) (Du 60) [T, Di] rule 4: IF context = (home, test) AND Di=Databases THEN (Du 120) (Du < 120) [T, I, D] The symbol stands for is more preferred than. The meaning of the attributes between brackets will be clear next (see Example 3.2). A set of preference rules induces a preference ordering over the objects stored in the database as shown in the following example: Example 3.2. Let us consider the preference rules given in Example 3.1 and the following tuples over the attributes {T, Di, D, I, Du}: Title (T) Discipline (Di) Difficulty (D) Importance (I) Duration (Du) t 1 Introduction Compilers t 2 Assembler Computer Architecture t 3 ER Model Databases Let us suppose that currently Andy is at the university and is interested in a quick review. In this case, only rules 1, 2 and 3 can be used to compare the three lessons t 1, t 2 and t 3. Let us see why. We have that t 1 is preferred to t 2 according to rule 1, since the value for I in t 1 is 4 and in t 2 is < 4. Notice that in rule 1 one has two attributes between brackets, T and Di. This indicates that the values of these attributes are completely irrelevant in the comparison. On the other hand, the values for the other attributes (Du and D) must be the same in both tuples being compared. Notice that this is the case for tuples t 1 and t 2 : they coincide on Du and D respectively. This restriction on the order semantics is called the ceteris paribus condition 2. In the same way, we can affirm that t 2 is preferred to t 3 according to rule 3. Then, by transitivity we can infer that t 1 is more preferred than t 3. Consistency Issues. The preference order is obtained by taking the transitive closure of the union of the preference orders specified by each rule individually. The result may be inconsistent, that is, it can be inferred that I prefer X better than Y and also prefer Y better than X. So, consistency issues have to be carefully taken into account when dealing with preference rules, since symmetry of the preference ordering is not a desirable situation in a database context. A set of preference rules Γ is said to be consistent if for each context c appearing in Γ, the preference order induced by Γ c (the rules in Γ referring to c) is a strict partial order (irreflexive and transitive) 3. In [de Amo and Pereira 2010] it was presented and implemented an algorithm for testing the consistency of a set of contextual preference rules. This test will be used as a subroutine in the algorithms for inserting, retrieving and updating preferences in the Preference Repository (Section 4). 3.2 The CPrefSQL Query Language The CPrefSQL query language is an extension of the standard SQL with two preference operators: Select-Best and SelectK-Best. The Select-Best operator selects from a given relation the set of the more preferred tuples according to a given set of contextual preference rules. The SelectK-Best returns the set of the first K preferred objects in the database following the preference hierarchy. The basic CPrefSQL block is presented in Figure 1. The essential difference between the SQL and the CPrefSQL query languages is the following: (1) in SQL user wishes can be either entirely fulfilled or not at all. User choices are specified as hard constraints, and the results delivered are exactly as requested. If there are objects satisfying these hard constraints they are all returned. Otherwise, a 2 In the Preference Repository Model introduced in Section 4 we call the attributes between brackets the ceteris paribus attributes. 3 Notice that if a preference relation satisfies both the irreflexivity and transitive properties then one cannot have X preferred to Y and vice-versa, since by transitivity this would entail that X is preferred to X, contradicting the irreflexity property. 20

28 SELECT <attribute-list > FROM <tables > WHERE <where-conditions > (% hard constraints) ACCORDING TO PREFERENCES [K] <list-of-preference-cprules > (% soft constraints) GROUP BY <attribute-list > ORDER BY <attribute-list > Fig. 2. The basic CPrefSQL block disappointing empty answer is returned; (2) CPrefSQL incorporates soft constraints in the form of user preferences besides the usual SQL hard constraints allowing best possible answers and not only exact answers. 4. THE CONTEXTUAL PREFERENCE REPOSITORY The Preference Repository is used to store the contextual preferences of users wishing to access the main database. In order to have access to the main database, the user must identify himself and optionally inform his context and his preferences. Contextual preferences provided by the user are stored in the Preference Repository together with a timestamp informing the moment the preference was valid for the user. 4.1 The Repository Data Model The Preference Repository is organized as a XML document. The underlying tree model of the XML document as well its DTD schema are described in Figure 3. user users user userid name preference preference... name tables context att... contid conditions time rule... condition condition antecedent consequent val oper... context contid conditions time rule ceterisparibus... condition condition att valpos valneg att val oper (a) oper val oper val <?xml version="1.0" encoding="utf-8"?> <!ELEMENT users (user+)> <!ELEMENT user(preference+)> <!ATTLIST user userid CDATA #REQUIRED name CDATA> <!ELEMENT preference(context+)> <!ATTLIST preference name CDATA #REQUIRED tables CDATA #REQUIRED> <!ELEMENT context(rule+ conditions)> <!ATTLIST context contid CDATA #REQUIRED time CDATA #REQUIRED> <!ELEMENT conditions (condition+)> <!ELEMENT condition EMPTY/> <!ATTLIST condition att CDATA #REQUIRED val CDATA #REQUIRED oper CDATA #REQUIRED> <!ELEMENT rule (antecedent consequent)> <!ATTLIST rule ceterisparibus CDATA #REQUIRED > <!ELEMENT antecedent(condition+) <!ELEMENT consequent (valpos valneg)> <!ATTLIST consequent att CDATA #REQUIRED> <!ELEMENT valpos EMPTY> <!ATTLIST valpos val CDATA #REQUIRED oper CDATA #REQUIRED > <!ELEMENT valneg EMPTY> <!ATTLIST valneg val CDATA #REQUIRED oper CDATA #REQUIRED> (b) <user userid="1052" name="andy"> <preference name="andyprefs" tables="lessons"> <context contid="4" time= > <conditions> <condition att="place" oper= "=" val= "university"/> <condition att="reason" oper= "=" val= "quick review"/> </conditions> <rule> <antecedent/> <consequent att="importance"> <valpos val = 4 oper=">=" /> <valneg val = "4" oper= "<" /> </consequent> <ceterisparibus="title Discipline"/>... </context> </preference> </user> (c) Fig. 3. (a) The Repository Tree Model, (b) The DTD Schema and (c) An except from Andy s preferences The contexts of each user are organized into a separated structure, the Contextual Graph (a graph for each specific user). The Contextual Graph plays an important role in the tasks related to the repository management (insertion, retrieval and update). Definition 4.1 Context Compatibility and Contextual Graph. Let c = (c 1,..., c k ) and c = (c 1,..., c k ) be contexts over the context schema C = {C 1,..., C k }. We say that c is more or equally general than c (denoted by c c) if and only if for all i {1,..., k} c i = c i or c i =. The symbol * stands for not provided or don t care. We say that c and c are compatible if and only if (1) for each i = 1,..., k c i = or c i = or c i = c i. The Contextual Graph is a graph G = (V, A) satisfying: (1) each node v V is a pair v= (ContId,c), where ContId is a context identifier and c is a context; (2) A V V and e = ((Id1, c 1 ), (Id2, c 2 )) A if and only if c 1 c 2. Figure 3(c) illustrates an excerpt of the preference rules presented in Example 3.1. One supposes that Andy entered the first 3 preference rules as he accessed the system on 19th October At this moment, he was at the university and intended to make a quick review (that was his context). For lack 21

29 of space, only rule 1 is presented in Figure 3(c). Figure 4(a) describes an excerpt of the contextual graph highlighting the context [4,(university,quick review,*)] entered by Andy when he accessed the system on 19 October In this example we are supposing that we have only 3 context attributes (Place, Reason, Available Time) and that Andy did not inform his time availability (represented by the * symbol). Notice that contexts 2 and 3 are compatible but 1 and 2 are not. [0,( *, *, * )] [1,(university, *, * )] [2,(home, *, * )] [3,( *, quick review, * )] c1=(*,*) c1=(*,*) c2=(*,test) c3=(home,*) c2=(*,test) c3=(home,*) [4,(university,quick review, * )] [5,(home,quick review, * )] c4=(university,test) c4=(university,test) c5=(home,test) (a) A Contextual Graph Fig. 4. (b) non-saturated (left) ; saturated (right) Contextual Graphs Next, the operations related to the Repository Management are presented. In order to understand how the repository manager works, some additional definitions are needed. Definition 4.2 Context Saturation. Let C = {c 1,...,c m } be a set of contexts. D i (C) denotes the set of values for the context attribute C i appearing in the contexts of C. C is said to be saturated if the following condition holds: for all c i, c j C and all contexts c (D 1 (C) { })... (D k (C) { }), if c i c and c j c then c C. Example 4.1. Let us consider the set of context attributes C = {P (Place), R (Reason)}. The following tuples are contexts over C: c 1 = (*,*), c 2 = (*,test), c 3 = (home,*), c 4 = (university, test). Let C = {c 1, c 2, c 3, c 4 }. D 1 (C) = {home, university} and D 2 (C) = {test}. C is not saturated, since the context c 5 = (home, test) is more specific than c 2 and c 3, but c 5 does not figure in C. On the other hand, the set C = C {c 5 } is saturated. In Figure 4(b) we show the hierarchical structure of the context sets C (at the left side) and C (at the right side). The Contextual Graph is always kept saturated by the Repository Manager. An important property satisfied by saturated Contextual Graphs is the following: Proposition 4.3. Let c be a context over C and G a saturated Contextual Graph. Let S be the set of contexts in G which are compatible with c. If S then there is a unique context c in S such that c is more specific than all the other contexts c in S such that c c. The proof is straightforward and is not given for lack of space. This property will be very important in the algorithms for inserting, updating and querying the Preference Repository. 4.2 The Algorithms for Preference Management Algorithm 1 describes the main lines of the procedure Insert(c,R) for inserting in the Preference Repository the preference rules R associated with the context c. For lack of space we will present only the RETRIEVE operation, responsible for extracting preference rules from the Repository. The operations for updating the repository are similar. The RETRIEVE operation (see Algorithm 2) is automatically launched by the Repository Manager when the user wants to query the main database and does not explicitly inform his preferences. In this case the Repository will be searched and the most recent preference rules (those with the most recent time value) which best conforms to the user current context will be retrieved. 5. THE CONTEXT ACCESS SYSTEM (CAS) In this section we describe the overall architecture of the Contextual Access System (CAS), a system supporting content personalization, a highly desirable feature in ubiquitous computing. Figure 1 describes an overview of the CAS architecture. User context is handled by a Preference Selector (or Preference Manager), which chooses the most appropriate preference according to the context of 22

30 Algorithm 1: Insert(c,R,T ) Data: A set of preference rules R, a context c, the Preference Repository T NewCont ContGraph Contextual Graph(T ) ; /* gets the contextual graph associated to T */ (N,c ) MostSpecCompt(ContGraph,c) ; /* scan ContGraph and gets the most specific context compatible with c */ R MostRecentRules(N,c ) ; /* scan T and gets the most recent rules associated to context (N,c ) */ if R R is consistent and c c then /* see remark on Section 3 about consistent rules */ newid CreateNewId(); InsertRep(newId,c,R R,currentTime,T ) InsertContGraph(newId,c,ContGraph); ContGraph Saturate(ContGraph,NewContexts) NewCont NewCont NewContexts ; /* gets the new contexts resulting from the saturation operation */ if R R is consistent and c = c then InsertRep(N,c,R R,currentTime,T ) if R R is inconsistent and c c then newid CreateNewId(); InsertRep(newId,c,R,currentTime,T ) InsertContGraph(newId,c,ContGraph); ContGraph Saturate(ContGraph) NewCont NewCont NewContexts if R R is inconsistent and c = c then InsertRep(N,c,R,currentTime,T ) foreach (N,c ) NewCont do /* Update the repository by inserting the preference rules compatible with the new contexts resulting from saturation */ P arent(n,c ):= set of contexts in ContGraph that produced (N,c ) by saturation foreach (N i,c i ) P arent(n,c ) do R i MostRecentRules(N i,c i ) InsertRep(N,c, i R i,currenttime,t ) Algorithm 2: Retrieve(c,T ) Input: context c, preference repository T Output: set of contextual preference rules R ContGraph Contextual Graph(T ) ; /* gets the contextual graph associated to T */ (N,c ) MostSpecCompt(ContGraph,c) ; /* scan ContGraph and gets the most specific context compatible with c */ R MostRecentRules(N,c ) ; /* scan T and gets the most recent rules associated to context (N,c ) */ return R access. Customized preferences are stored for each user. In the next module, Query Rewriting Module, an ordinary SQL query is combined with the selected preference and rewritten as a CPrefSQL query. The CPrefSQL Query Processor then queries the Content Repository (the main database) and returns all contents matching the query. The Constraint Selector module filters such contents according to user restrictions. The Content Formatting Tool finally converts the filtered contents to a presentation format (e.g., HTML). For lack of space, we only present the two first modules (the Preference Manager and the Query Engine). 5.1 The Preference Selector (Manager) The tasks performed by the Preference Selector can be summarized as follows: (1) If the user explicitly inform his preferences, the Preference Selector queries the Preference Repository to locate a context matching the current user context. If such context is found, the INSERT operation is invoked (as detailed in the Section 4) and the current preferences with the current given context is entered in the Preference Repository. (2) If the user does not explicitly inform his preferences, the Preference Selector invokes the RETRIEVE operation in order to extract from the Preference Repository the most recent preference rules which best conforms to the user current context. For instance, let us suppose that Andy access the system and does not inform his preferences at that moment. He enters a complete information about his current context c curr : Place = university, Reason 23

31 = quick review, available time = 1 hour and device = tablet. The Preference Repository is searched and it turns out that the context which best conforms to Andy s current context is (university,quick review.*,*). So, the Preference Selector extracts the set of preference rules associated to this context. 5.2 The Query Engine After the Preference Selector returned the XML file containing the user most recent preference rules, these preferences together with a user (SQL) query Q are delivered as input to the CPrefSQL Query Processor. The Query Rewriting Module is responsible for building a CPrefSQL block Q out of the SQL query Q and the XML file containing the preference rules. In our running example, let us suppose Andy wants to be given the four lessons which most fulfill his preferences. The Preference Selector extracted from the Preference Repository an XML file AndyPref.xml containing the most recent Andy s preference conforming to his current context. This XML file is processed by the Query Rewriting Module which first transforms its contents into a list of rules (stored in a file AndyPrefs), as illustrated in Example 3.1. The following CPrefSQL is delivered to the CPrefSQL Query Processor afterwards: SELECT title FROM Lessons ACCORDING TO PREFERENCES 4, AndyPrefs; 6. CONCLUSION AND FUTURE WORK In this paper we developed a Context-Dependent Preference Repository allowing easy access to user s long-term preferences. We also presented the main modules of the Context Access System (CAS) incorporating the Preference Repository and CPrefSQL language. Our current research is focused on coupling the CAS system with the open source capture platform iclass ([Pimentel et al. 2007]) to provide support to C&A applications where contexts and user preferences are relevant to produce personalized multimedia artifacts. REFERENCES Abowd, G. D. and Mynatt, E. D. Charting past, present, and future research in ubiquitous computing. ACM Transactions on Computer-Human Interaction 7 (1): 29 58, Cattelan, R. G., Teixeira, C., Goularte, R., and Pimentel, M. D. G. C. Watch-and-comment as a paradigm toward ubiquitous interactive video editing. ACM Trans. Multimedia Comput. Commun. Appl. vol. 4, pp. 28:1 28:24, November, Chen, G. and Kotz., D. A survey of context-aware mobile computing research. Technical report tr , Dept. of Computer Science, Dartmouth College, Hanover, New Hampshire, USA, de Amo, S., Diallo, M., Diop, C., Giacometti, A., Li, H. D., and Soulet, A. Mining contextual preference rules for building user profiles. In 14th International Conference on Data Warehousing and Knowledge Discovery (DaWaK), Viena, de Amo, S. and Pereira, F. Evaluation of conditional preference queries. Journal of Information and Data Management (JIDM). vol. 1(3), pp , Dey, A. K. Understanding and using context. Personal and Ubiquitous Computing vol. 5(1), pp. 4 7, Holland, S. and Kießling, W. Situated preferences and preference repositories for personalized database applications. In ER. pp , Kärger, P., Olmedilla, D., Abel, F., Herder, E., and Siverski, W. What do you prefer? using preferences to enhance learning technology. IEEE Transactions on Learning Technologies vol. Vol. 1, (1), pp , Pimentel, M., Baldochi Jr., L. A., and Cattelan, R. G. Prototyping applications to document human experiences. IEEE Pervasive Computing vol. 6, pp , April, Siberski, W., Pan, J., and Thaden, U. Querying the semantic web with preferences. In Proceedings of the 5th International Semantic Web Conference (ISWC). pp , Suryanarayana, L. and Hjelm., J. Profiles for the situated web. In Proc. 11th International World Wide Web Conference (WWW 2002). pp , Yu, Z. and Nakamura, Y. Smart meeting systems: A survey of state-of-the-art and open issues. ACM Comput. Surv. vol. 42, pp. 8:1 8:20, March,

32 Processamento de Consultas XPath em GPU Dilson A. Guimarães, Filipe de L. Arcanjo, Laura R. Antuña, Mirella M. Moro, Renato C. Ferreira Universidade Federal de Minas Gerais, Brasil {dilsonag, filipe, laura.antuna, mirella, Abstract. Technologies such as CUDA and OpenCL have been have been making the usage of graphics cards (GPUs) for general purpose programming more popular, which provides impressive performance gains. However, using such cards for speeding up XML Databases is yet to be fully explored. XML databases offer much flexibility for Weboriented systems. Nonetheless, such flexibility comes at a considerable computational cost. This work shows how graphics cards can be leveraged to reduce the computational cost of processing some of those queries. It presents an algorithm designed to consider the cost model of GPUs and to perform queries efficiently. An experimental study reveals that this algorithm is more efficient than implementations of a similar strategy on a CPU for all the datasets tested. The speedups with respect to exist-db, a popular XML database system, are as high as two orders of magnitude. Resumo. Tecnologias como CUDA e OpenCL tem popularizado o uso de placas gráficas (GPUs) em aplicações de propósito geral, com ganhos de desempenho surpreendentes. No entanto, o uso dessas placas para melhorar o desempenho de Bancos de Dados XML ainda é pouco explorado. Esses Bancos de Dados oferecem grande flexibilidade para sistemas Web. Tal flexibilidade, entretanto, vem acompanhada de considerável custo computacional. Esse trabalho mostra como as placas gráficas podem ser utilizadas para reduzir o custo de algumas consultas feitas a esses sistemas. Ele apresenta um algoritmo que considera o modelo de custos das GPUs para processar consultas nessas placas eficientemente. Uma análise experimental revela que esse algoritmo é mais eficiente que implementações da mesma estratégia em CPUs em todas as bases de dados avaliadas. Os ganhos de performance com relação ao exist-db, popular sistema de bancos de dados, chegam a cerca de duas ordens de magnitude. Categories and Subject Descriptors: I.3 Computer Graphics [I.3.1 Hardware Architecture]: Graphics processors; H.2 Database Management [H.2.4 Systems]: Query Processing Keywords: Consultas XPath, XML, GPU 1. INTRODUÇÃO O desenvolvimento de tecnologias como CUDA e OpenCL deu início a uma nova era na Computação. Graças a elas, o poder de processamento massivamente paralelo das placas gráficas (GPUs), antes restrito a domínios como renderização de imagens tridimensionais e jogos, foi disponibilizado aos programadores para uso em aplicações de propósito geral. Em consequência dessa abertura, centenas de problemas de diversos domínios ganharam soluções que, frequentemente, superam em muito o desempenho das implementações tradicionais, que não foram aceleradas por essas placas. Programar as GPUs ainda é difícil e exige dos programadores uma ampla gama de conhecimentos. Essas placas possuem, tipicamente, até seis tipos diferentes de memória [Bakkum and Skadron 2010] e um modelo de custos bastante complexo. Esse modelo inclui características incomuns, tais como a ausência de chamadas recursivas e a presença de um fenômeno conhecido como divergência, que pode fazer com que parte do paralelismo seja perdida [Coutinho et al. 2011]. Face a essas dificuldades, os ganhos obtidos em áreas tais como Bioinformática, Simulações Científicas e Modelagem Estatística são, de fato, impressionantes. Muitas áreas, no entanto, permanecem pouco exploradas. Este trabalho foi parcialmente financiado por CNPq, Fapemig e InWeb, Brasil. 25

33 É o caso dos Sistemas de Bancos de Dados e, especificamente, dos Bancos de Dados XML. Esses sistemas são populares em consequência do modelo de dados flexível, portável e hierárquico fornecido pela linguagem XML, que é especialmente adequado para aplicações web 1. Porém, uma consequência indesejada desse modelo de dados rico é o fato de que, frequentemente, as consultas são computacionalmente caras. Essas consultas são especificadas por meio de uma linguagem própria, como por exemplo a XPath 2. XPath modela os documentos XML como árvores de nós. Uma consulta XPath é uma forma de especificar um ou mais caminhos nessa árvore por meio de uma sintaxe compacta. Muitas consultas em XPath requerem que toda a árvore seja percorrida, o que eleva o seu custo computacional. Esse trabalho mostra que o grande poder de processamento das GPUs pode ser a chave para reduzir os tempos de processamento das consultas a bases de dados em XML. Ele apresenta um processador de consultas projetado para executar no complexo hardware da placa gráfica e capaz de lidar com um subconjunto de XPath 3, explicitado na Seção 3. As contribuições são: Um algoritmo para consultas XML adequado ao modelo de custos das GPUs (Seção 3.1). Uma descrição de como esse algoritmo pode ser implementado nessas placas (Seção 3.2). Um estudo experimental desse algoritmo, que fornece indícios de que as GPUs são uma alternativa viável para as abordagens tradicionais de processamento de consultas XPath (Seção 4). O processador de consultas proposto, conforme revelam os nossos testes, supera em desempenho implementações sequenciais e paralelas em CPU, bem como o conhecido sistema exist-db [exist db 2012]. Os ganhos em relação à esse último chegam a duas ordens de magnitude (138 vezes). 2. CONCEITOS E TRABALHOS RELACIONADOS A principal utilização de GPUs na área de Bancos de Dados relaciona-se às operações mais comuns como junção, divisão e agregação. Abordagens de integração fornecidas pela Oracle foram analisadas para que a implementação paralela em GPU de operações espaciais fossem integradas em bancos de dados comerciais, como procedimento externo [Bandi et al. 2004]. Foi também proposta a implementação paralela em GPU de operações como predicados, combinações booleanas e agregações sobre bancos de dados [Govindaraju et al. 2005], assim como algoritmos de junção a partir de primitivas como divisão e ordenação [He et al. 2008]. Utilizando a nova geração de GPUs NVidia, em que GPU e CPU compartilham um espaço de memória, [Kaldewey et al. 2012] obtiveram melhoras na eficiência de operações de junção em bancos de dados, com resultados superiores ao de [Kim et al. 2009]. Algoritmos de pesquisa e ordenação em bancos de dados também constituem uma área explorada por meio do uso de GPUs. [He et al. 2009] propõem um sistema de processamento de consultas relacionais em GPU, por meio da alta paralelização de primitivas como divisão e ordenação. A pesquisa por índice, estruturada em árvore, também é paralelizada por [Kim et al. 2010], e [Govindaraju et al. 2006] apresentam o algoritmo GPUTeraSort, que utiliza em conjunto CPU e GPU para ordenar bancos de dados que apresentam chaves na ordem de bilhões. Implementações que lidam com um subconjunto de operações já conhecidas também são comuns. Tanto [Lin and Yuan 2011] quanto [Bakkum and Skadron 2010] propõem uma implementação direta na GPU de um subconjunto de comandos SQLite, com o foco na operação SELECT por parte do segundo. A interface genérica apresentada facilita a utilização dos usuários, que para manipular os bancos de dados de forma eficiente não precisam utilizar linguagens como CUDA ou modificar 1 XML: 2 XPath: 3 É importante notar que trabalhos relacionados ao processamento de consultas XML mostram que tal subconjunto é reponsável por grande parte do desempenho de avaliação das mesmas.[moro et.al 2009]. 26

34 programas para utilizar bibliotecas diferentes das já existentes. Essa característica também pode ser observada em nosso trabalho, que implementa um subconjuto de operações de uma linguagem existente, com interface flexível. Além disso, nosso trabalho avança o estado-da-arte de SGBDs em GPUs por considerar o processamento de dados XML. 3. XPATH EM GPU Antes de apresentar o algoritmo e sua implementação, esta seção discute alguns conceitos fundamentais para a compreensão dos mesmos. O subconjunto de XPath considerado foca em consultas estruturais, por essas terem grande influência no processamento geral das consulta XML [Moro et.al 2009]. Ele consiste nos operadores de filiação (/) e de descendência própria (//). Por simplicidade, esse subconjunto de XPath é nomeado EXPath. Assim como em XPath, consultas em EXPath são escritas como expressões de caminho, conforme a gramática a seguir, onde o não terminal < tag > é capaz de gerar qualquer tag XML válida: < consulta > / < tag >< consulta > // < tag >< consulta > / < tag > // < tag > A estrutura de um documento XML pode ser representada como uma árvore rotulada enraizada. Cada vértice da árvore representa um elemento do documento XML e é rotulado com a tag do elemento. O elemento raiz do documento XML corresponde ao vértice raiz da árvore. A hierarquia dos elementos é representada por meio da relação de descendência na árvore. Definição 3.1. Árvore estrutural: A árvore estrutural T (d) de um documento XML d é uma tupla formada por uma árvore G, um vértice raiz r V (G) e uma rotulação de G, f : V (G), em que é o conjunto de tags em d. O conjunto de vértices de G é o conjunto de elementos de d. Existe uma aresta (u, v) em G se e somente se v estiver dentro e um nível abaixo de u em d. Definição 3.2. Caminho na árvore estrutural: Um caminho para um vértice v na árvore estrutural T (d) de um documento XML d, P (T (d), v), é uma sequência de vértices (v 1, v 2,..., v n ) tal que v 1 = r (T (d)), v n = v e, para todo par (v i, v i+1 ), (v i, v i+1 ) E (G (T (d))). Define-se r (T (d)) como sendo a raiz da árvore estrutural de d e G (T (d)) como o grafo da arvore estrutural de d. Definição 3.3. Rotulação de caminho: Seja f a rotulação da árvore estrutural T (d) de um documento XML d, a rotulação R (p) de um caminho p = P (T (d), v) é a sequência obtida a partir do mapeamento de cada elemento de p em seu rótulo por meio de f: R (p) = (f (v 1 ), f (v 2 ),..., f (v n )) v i p Toda expressão de caminho pode ser traduzida para uma expressão regular. Para isso, basta substituir as ocorrências do operador // por. e eliminar as ocorrências do operador /. A expressão. denota a ocorrência de qualquer símbolo zero ou mais vezes. A expressão de caminho /a//b pode ser traduzida para a. b, por exemplo. A expressão regular e (q) obtida a partir de uma expressão de caminho q é chamada expressão regular induzida por q. Define-se L (e (q)) como o conjunto de todas as palavras reconhecidas por e (q). A resposta de uma consulta em EXPath para um documento XML pode ser definida como o conjunto de vértices finais dos caminhos da árvore estrutural do documento cuja a rotulação pode ser reconhecida pela expressão regular induzida pela consulta. Definição 3.4. Conjunto resposta: O conjunto resposta Q (d, q) de uma consulta q em um documento d é definido como o conjunto de vértices v tais que R (P (T (d), v)) L (e (q)). 27

35 a b c start s 1 s 2 s 3 s 4 Fig. 1. Autômato finito não determinístico induzido pela consulta /a//b/c. 3.1 Algoritmo É possível construir um autômato finito não determinístico (AFND) que reconheça a mesma linguagem que uma expressão regular induzida por uma consulta. Dada uma consulta com n operadores, é possível construir um AFND com n + 1 estados. Um AFND que reconhece a mesma linguagem que a expressão regular induzida por uma consulta é chamado de AFND induzido pela consulta. A consulta /a//b/c, por exemplo, induz a expressão regular a. bc e o AFND da Figura 1, onde denota todos os símbolos possíveis. Uma maneira de executar uma consulta em um documento é simular uma instância do AFND induzido pela consulta para cada vértice da árvore estrutural do documento, considerando como entrada de cada instância a rotulação do caminho para o respectivo vértice. Os vértices para os quais a rotulação do caminho for reconhecida formam o conjunto resposta. Caminhos na árvore estrutural apresentam sobreposição. Em outras palavras, os caminhos para quaisquer dois vértices compartilham um prefixo. Por exemplo, se o vértice u é descendente do vértice v, o caminho para v é prefixo do caminho para u. Da mesma forma, se o vértice a é pai dos vértices b e c, o caminho para a é prefixo dos caminhos para b e para c. Essa sobreposição é explorada no algoritmo elaborado para reduzir o custo de simular as várias instâncias do AFND induzido. O algoritmo desenvolvido para o processamento de consulta em um documento consiste em realizar uma busca em largura na árvore estrutural do documento simulando várias instâncias do AFND induzido pela consulta. Existe uma instância associada a cada vértice. Inicialmente, a instância associada à raiz se encontra no estado inicial. Quando um vértice é visitado, a instância do AFND associada a esse vértice tem seu conjunto de estados ativos alterado para que seja igual ao conjunto de estados ativos da instância associada ao vértice pai. Em seguida, o rótulo do vértice é fornecido como símbolo de entrada para instância do AFND associada ao vértice. Se o estado final é atingido, o vértice é adicionado ao conjunto resposta. O pseudocódigo desenvolvido é apresentado no Algoritmo 1. É mantido um conjunto de estados ativos S v do AFND induzido pela consulta para cada vértice v da árvore estrutural do documento. O predicado F im (S v ) é verdeiro se e somente se o estado final do AFND induzido estiver em S v. Transições são realizadas por Próximo(S v, a), que é o conjunto de estados ativos após o símbolo a ser fornecido como entrada para o AFND induzido com o conjunto de estados ativos S v. O vértice pai de um vértice v é dado por P ai (v). O nível de um vértice é definido como a sua distância da raiz em número de arestas. No Algoritmo 1, cada vértice é visitado uma única vez. As operações envolvendo o conjunto de estados ativos S v em um vértice podem ser realizadas em tempo linear em S v. Como o número de vértices é equivalente ao número de elementos no documento XML d, e número de estados no AFND induzido é uma unidade maior do que o tamanho da consulta em número de operadores q, a ordem de complexidade de tempo do Algoritmo 1 é O ( d q ). O laço interno do Algoritmo 1 pode ser executado de forma paralela. Para isso, é preciso que o acesso ao conjunto resposta seja sincronizado. Considerando um número polinomial de processadores, uma consulta q em um documento d pode ser processada em tempo O (h (T (d)) q + Q (d, q) ), onde h (T (d)) é a altura da árvore estrutural do documento d. 28

36 Entrada: Uma consulta q e um documento d Saída: Conjunto de elementos em d que satisfazem q Q ; S r(t (d)) Próximo (, f (r (T (d)))); se F im ( S r(t (d)) ) então Q Q {r (T (d))}; fim para cada nível i em T (d) exceto o nível da raiz faça para cada vértice v no nível i de T (d) faça S v Próximo ( S P ai(v), f (v) ) ; se F im (S v) então Q Q {v}; fim fim fim retorna Q Algoritmo 1: Algoritmo de processamento de consultas. 3.2 Implementação A estratégia descrita na seção anterior foi implementada para executar sobre uma representação da árvore estrutural do documento XML que é mantida na memória da placa gráfica. Essa representação é obtida à partir do documento por meio de duas etapas: análise e serialização. Essas etapas são mostradas na figura 2, que contém uma visão geral da arquitetura implementada. Fig. 2. Visão geral da arquitetura do processador de consultas A função da análise é converter o documento XML, inicialmente em formato texto, em uma árvore que é armazenada na memória principal do computador. A leitura do documento é feita por meio da biblioteca xerces 4. Diferentemente da árvore estrutural, definida na seção anterior, essa árvore contém informação o suficiente para reconstruir todo o XML. Isso é necessário para que as consultas possam ser respondidas de maneira legível uma vez que os resultados retornem da GPU. A etapa de serialização é responsável por converter a árvore obtida pela análise numa representação serializada, em que os vértice são armazenados de maneira contígua na memória. Essa representação é o equivalente em código à árvore estrutural apresentada na definição 3.1. Cada vértice na árvore serializada contém três inteiros que representam (i) a tag do vértice, (ii) a posição do vértice-pai na árvore serializada e (iii) o conjunto de estados ativos representados por bits do AFND após receber o rótulo do vértice como entrada. Essa representação compacta é possível porque o algoritmo 1 não requer nenhuma informação além desses três números para executar, e é interessante pois as placas gráficas disponíveis atualmente possuem pouca memória 5. Os vértice são armazenados na árvore serializada na mesma ordem em que apareceriam se a árvore estrutural fosse percorrida por meio de 4 Xerces: 5 A GeForce GTX 470 usada nos experimentos, por exemplo, tem apenas 1.25GB 29

37 uma busca em largura. Isso é feito porque essa representação aumenta a localidade espacial dos dados, aspecto importante a ser considerado já que as GPUs leem da memória em grandes blocos. O processador de consultas propriamente dito é implementado utilizado a plataforma CUDA, da nvidia, por meio de um único kernel. No vocabulário de CUDA, um kernel é um procedimento que executa diretamente no hardware da placa gráfica em paralelo. Esse kernel é chamado uma vez para cada nível da árvore estrutural. Cada uma dessas chamadas dispara uma thread para cada vértice no nível. Cada thread obtém o conjunto de estados que estavam ativos anteriormente a partir do identificador do vértice-pai e executa as transições apropriadas do AFND com base na tag do vértice. O comportamento é equivalente ao conteúdo do loop mais interno do algoritmo 1. A implementação desse kernel é cuidadosa para evitar divergências. Ela utiliza operações de bits para simular as transições do AFND, o que elimina muitos dos desvios condicionais que seriam necessários caso isso não fosse feito. Uma divergência ocorre quando uma das threads toma um caminho de execução diferente das demais ao encontrar um desvio. Nessa situação, o hardware da placa gráfica serializa parcialmente a execução. Ele executa todas as threads que tomaram um caminho no desvio antes de executar as que tomaram o outro. As threads reportam os resultados para uma região de memória centralizada, que armazena identificadores dos vértices nos quais houve reconhecimento. O acesso a essa região é sincronizado por meio de uma rotina de adição atômica fornecida pela plataforma CUDA 6. A presença dessa rotina e o teste de reconhecimento são, provavelmente, os dois maiores gargalos de performance da implementação. Isso ocorre porque o teste envolve um desvio condicional potencialmente divergente [Coutinho et al. 2011] e alguma sincronização para que a adição atômica funcione. Após o processamento da consulta, os identificadores de vértices encontrados são transportados de volta para a memória principal do computador. Esses identificadores são pareados com os respectivos vértices da árvore gerada pela análise para que os resultados possam ser apresentados para o usuário. 4. AVALIAÇÃO EXPERIMENTAL Para avaliar o desempenho do motor de consultas implementado foram realizadas consultas em bancos de dados utilizando diferentes implementações do algoritmo, de modo que comparações dos tempos de execução obtidos pudessem ser realizadas. Especificamente, duas versões do algoritmo de busca na árvore XML foram implementadas, de forma a serem comparadas com a implementação em CUDA. Na primeira o algoritmo é paralelizado em CPU, por meio da plataforma OpenMP 7, enquanto a segunda consiste em uma versão serial do processador de consultas. Também foi utilizado para comparação o exist 8, um SGBD popular XML nativo. A execução dos testes foi feita em um servidor com processador Intel Xeon E5620, 32GB de memória principal e placa gráfica nvidia GeForce GTX 470 com 1.25GB de memória. Como o exist é programado para utilizar a memória secundária, os testes realizados com ele foram executados diretamente de um ramdisk. 4.1 Bases de Dados Com objetivo de avaliar o processador de consultas nos mais variados ambientes, consultas foram feitas em quatro bases de dados de tamanhos diferentes, variando entre 24MB e 1GB. Informações sobre cada uma das bases podem ser encontradas na Tabela I 9. A coluna profundidade máxima indica a altura da árvore formada pelo documento XML, enquanto a profundidade média corresponde à profundidade média das folhas dessa árvore. Para cada base, foram realizadas 4 consultas diferentes, cada uma 6 atomicadd() 7 Plataforma OpenMP: 8 Banco de Dados exist: 9 XML Data Repository: 30

38 fazendo referência a nós encontrados em níveis e posições variadas da árvore XML, abrangendo assim a maioria dos casos de testes possíveis. Tabela I. Datasets utilizados para testes Dataset Tamanho Elementos Atributos Profundidade Máxima Profundidade Média dblp 1 1.1G , psd MB ,15147 dblp 2 128MB ,90228 treebank 83MB ,87279 nasa 24MB , Resultados A Tabela II mostra os tempos de execução resultantes das consultas realizadas, assim como o speedup obtido pela implementação em CUDA, comparada com as outras. Os resultados nos mostram que a implementação paralela em GPU é significativamente mais eficiente em todos os casos testados quando comparada com a versão em OpenMP, que por sua vez supera o desempenho da versão serial. Os testes realizados utilizando o exist também demonstraram menor eficiência do que a implementação em GPU, principalmente para arquivos grandes, em que o speedup atingiu o valor máximo de 138. A Figura 3 ilustra esses resultados. Ela contém o speedup médio obtido com cada implementação OpenMP Serial exist Fig. 3. Speedup Médio Também é importante destacar a relação entre o tamanho do dataset utilizado e o desempenho obtido. Na implementação em CUDA o aumento do tamanho do arquivo representou um crescimento pequeno no tempo de execução, enquanto nos testes com as outras versões esse fator foi impactante no desempenho da consulta, principalmente no caso do exist. É importante notar que, embora ganhos de performance tenham sido obtidos em todas as bases de dados avaliadas, a solução apresentada nesse trabalho é limitada pela quantidade de memória disponível na GPU. Isso inviabiliza o uso do algoritmo proposto em bases de dados muito grandes. Nesses casos, soluções projetadas para realizar consultas na memória principal da CPU, em disco rígido ou mesmo soluções híbridas entre GPU e CPU poderiam ser mais adequadas. 5. CONCLUSÃO Este trabalho mostrou como o poder de processamento das modernas placas gráficas pode amenizar um dos maiores gargalos dos SGBDs XML: o processamento de consultas estruturais. Nossa solução consiste em um algoritmo projetado especificamente para o modelo de custos dessas placas. Ele resolve as consultas decompondo-as em consultas menores que podem ser processadas em paralelo e adota uma representação compacta da base de dados, através de mapas de bits para maximizar a quantidade de informação que pode ser mantida na memória da placa e minimizar a quantidade de 31

39 Tabela II. Medidas de desempenho com base no tamanho do arquivo Tempo de Execução (seg) Speedup Base Consulta #Elems. CUDA OMP Serial exist OMP Serial exist //author ,114 0,377 0,354 8,298 3,3 3,1 75,3 dblp 1 //article/author ,047 0,193 0,390 6,525 4,1 8,3 138,8 /dblp//article ,027 0,119 0,300 0,515 4,4 11,1 19,1 /author 0 0,013 0,070 0,291 0,869 5,4 22,4 66,8 //authors ,017 0,082 0,268 0,148 4,8 15,8 8,7 psd7003 //accinfo/db ,031 0,124 0,354 0,415 4,0 11,4 13,4 //db ,036 0,133 0,269 1,376 3,7 7,5 38,2 /ProteinDatabase/ProteinEntry ,017 0,086 0,312 0,117 5,1 18,3 6,9 //title ,007 0,019 0,042 0,139 2,7 6,0 19,8 dblp 2 /dblp//volume ,004 0,013 0,047 0,062 3,3 11,8 15,5 //www/title 38 0,002 0,008 0,047 0,044 4,0 23,5 22,2 /dblp/www 38 0,002 0,008 0,046 0,003 4,0 23,0 1,3 //NN ,005 0,011 0,030 0,108 2,2 6,0 21,5 treebank //S//NP ,009 0,019 0,042 0,278 2,1 4,7 30,9 //S/NP ,004 0,008 0,039 0,185 2,0 9,8 46,3 /FILE/EMPTY ,003 0,007 0,034 0,026 2,3 11,3 8,6 //name ,002 0,003 0,006 0,033 1,5 3,0 16,8 nasa //other/name 286 0,001 0,001 0,007 0,016 1,0 7,0 15,7 //year ,001 0,001 0,006 0,006 1,0 6,0 5,8 /datasets/dataset ,001 0,001 0,007 0,004 1,0 7,0 4,3 desvios condicionais. Embora simples, nossa solução obteve performance superior ou equivalente a dos baselines em todas as cinco bases de dados consideradas, num total de vinte consultas XPath. O speedup obtido em comparação ao popular exist-db passou de duas ordens de magnitude (138 vezes). No futuro, pretende-se generalizar o algoritmo proposto para que consultas envolvendo predicados também possam ser realizadas nessas placas. REFERÊNCIAS Bakkum, P. and Skadron, K. Accelerating sql database operations on a gpu with cuda. In Procs. of GPGPU. Pittsburgh, Pennsylvania, pp , Bandi, N., Sun, C., Agrawal, D., and El Abbadi, A. Hardware acceleration in commercial databases: a case study of spatial operations. In Procs. of VLDB. Toronto, Canada, pp , Coutinho, B., Sampaio, D., Pereira, F. M. Q., and Meira Jr., W. Divergence analysis and optimizations. In Procs. of PACT. Washington, DC, USA, pp , exist db. exist-db open source native xml database Govindaraju, N., Gray, J., Kumar, R., and Manocha, D. Gputerasort: high performance graphics co-processor sorting for large database management. In Procs. of SIGMOD Conference. Chicago, IL, USA, pp , Govindaraju, N. K., Lloyd, B., Wang, W., Lin, M., and Manocha, D. Fast computation of database operations using graphics processors. In Procs. of SIGGRAPH. Los Angeles, CA, He, B., Lu, M., Yang, K., Fang, R., Govindaraju, N. K., Luo, Q., and Sander, P. V. Relational query coprocessing on graphics processors. ACM Trans. Database Syst. 34 (4): 21:1 21:39, Dec., He, B., Yang, K., Fang, R., Lu, M., Govindaraju, N., Luo, Q., and Sander, P. Relational joins on graphics processors. In Procs. of SIGMOD Conference. Vancouver, Canada, pp , Kaldewey, T., Lohman, G., Mueller, R., and Volk, P. Gpu join processing revisited. In Procs. of DaMoN. Scottsdale, Arizona, pp , Kim, C., Chhugani, J., Satish, N., Sedlar, E., Nguyen, A. D., Kaldewey, T., Lee, V. W., Brandt, S. A., and Dubey, P. Fast: fast architecture sensitive tree search on modern cpus and gpus. In Procs. of SIGMOD Conference. Indianapolis, Indiana, USA, pp , Kim, C., Kaldewey, T., Lee, V. W., Sedlar, E., Nguyen, A. D., Satish, N., Chhugani, J., Di Blas, A., and Dubey, P. Sort vs. hash revisited: fast join implementation on modern multi-core cpus. Proc. VLDB Endow. 2 (2): , Aug., Lin, C.-F. and Yuan, S.-M. The design and evaluation of gpu based memory database. In Procs. of ICGEC. pp , Moro et.al, M. M. XML: some papers in a haystack. SIGMOD Record 38 (2): 29 34,

40 Querying Trajectories through Model Checking based on Timed Automata Diego V. Simões S. 1,2, Henrique Viana 1, Nicolas Markey 3, Jose Antônio F. de Macedo 1 1 UFC - Universidade Federal do Ceará, Brazil {diegovss, henriqueviana, 2 UNILAB - Universidade da Integração Internacional da Lusofonia Afro-Brasileira, Brazil 3 LSV, CNRS & ENS Cachan, France Abstract. The popularization of geographical position devices (e.g. GPS) creates new opportunities for analyzing behavior of moving objects. However, such analysis are hindered by a lack of semantic information associated to the basic information provided by GPS. Previous works propose semantic enrichment of trajectories. Through the semantic enrichment, we could check which trajectories have a given moving sequence in an application. Often, this sequence is expressed according to the semantic application, using the approach of semantic trajectories proposed in the literature. This trajectory can be represented as a sequence of predicates that holds in some time interval. However, the solutions for querying moving sequence proposed by previous works have a high computational cost. In this paper, we propose an expressive query language to semantic trajectories that allows temporal constraints. To evaluate a query we will use model checking based on timed automata, that can be performed in polynomial time. As this model checking algorithm is not implemented yet, we propose to use UPPAAL tool, that can be more expensive theoretically, but we expected that will be ecient for our approach. In addition, we will present a query example that demonstrates the expressive power of our language. Although in this paper we will focus on semantic trajectories data, our approach is general enough for being applied to other purposes. Categories and Subject Descriptors: H.Information Systems [ H.m. Miscellaneous]: Core Database Foundations and Technology General Terms: Query Languages and User Interfaces Keywords: query language, semantic trajectory, temporal logic, model checking, timed automata, uppaal 1. INTRODUCTION The wide availability of geographical location data has been providing new kinds of trajectories analysis applications. Each trajectory, that has an identier, is performed by a moving object. It is represented by an ordered sequence of location points with a time instant (i.e. latitude, longitude, instant). However, this representation has a lack of semantic information about the places that the trajectory has visited or the activities that it has performed. Some works propose semantic enrichment of trajectories, representing them as a sequence of episodes (i.e. stops and moves) with a set of annotations [Yan et al. 2010; Yan et al. 2011]. An annotation denotes which activity, transportation or location is related with a given episode. Thus, given the representation as previously exposed, ecient techniques for query evaluation involving temporal constraints are needed. In this paper, we study the problem of query trajectories with semantic information, as the trajectories presented in [Yan et al. 2011], emphasizing how to evaluate a query language for this purpose and how hard this should be. In order to clarify our problem, consider the example showed below Este trabalho foi parcialmente nanciado pelo CNPq (473110/2008-3, /2008-3, /2009-9, /2009-7) e pela FUNCAP (GPF 2151/22). Agradecimentos à UFC e à UNILAB pelos recursos disponibilizados. 33

41 such that each tuple has the form (s, e, Ψ), where s represents the initial time, e represents the nal time and Ψ represents the set of predicates that holds during this time interval. The capital letters mean the following predicates: H - At Home, W - Working, U - At University and D - Dining. Trajectory 1: {(1, 3, [H]), (4, 6, [W, U]), (7, 8, [H])}; Trajectory 2: {(1, 5, [W ]), (6, 7, [H]), (8, 10, [H, D])}. Trajectory 3: {(1, 2, [W ]), (3, 5, [U]), (6, 7, [H]), (8, 10, [U, D])}; In this application scenario, there are some queries to do. These queries must allow checking which trajectories match a given moving pattern. A moving pattern is a sequence of predicates with temporal constraints. Temporal constraint species the duration of a predicate and duration between predicates. For instance, we can make the following query: Q 1 : Which trajectories perform a working activity during at least two time units, then, after at most four time units, stay at home and then have dinner? For Q 1 query, the trajectories where this property is true are 2 and 3. Note that the predicate At Home occurs after the predicate Working and At Home holds after, at most four time units, the predicate Working, in trajectories 2 and 3. To perform this query, is necessary a query language and an ecient evaluation procedure of the language that allows temporal constraints. Aiming to solve this problem, we propose a query language and an evaluation involving a temporal logic model checking based on timed automata that has polynomial complexity upper-bound. There are works in the literature that consider pattern matching techniques to evaluate queries, however either they do not allow the verication of a predicate set in a given time interval [Dindar 2008] or they do not allow temporal constraints [Cadonna et al. 2011]. Some approaches that consider trajectories, do not explain how the query will be evaluated [Bogorny et al. 2009], or do not aim semantic trajectories (e.g. our trajectory) with temporal constraints [Vieira et al. 2010] or they have a high complexity although they are automaton based [Gomez and Vaisman 2009]. Other work denes the query in an algebraic form and the query evaluation could be exponential in the worst case [Sakr and Güting 2011]. In addition, approaches that use temporal logics are not found. The contributions of this work can be summarized as follows: (i) we introduce and dene a query language that allows to express moving patterns with temporal constraints (Section 3); (ii) we propose a semantic model to trajectories (Section 3); (iii) we propose a query evaluation through Model Checking based on Timed Automata with polynomial complexity (Section 4); (iv) we show an evaluation example in UPPAAL model-checking tool-suite (Section 4.2). 2. PRELIMINARIES Aiming to understand the approach proposed by this paper, previous concepts involving timed automata and Timed-CTL logic are necessary to summarize. 2.1 Timed Automata A timed automaton extends classical automaton with a set of variables that represents time, called clock (X), which increases its value synchronously with time and includes constraints about these variables. Every transition of timed automata has a constraint over clock values represented by C(X), called guards, which indicates when the transition can be performed and are represented by the form x c with x X, {=, <,, >, } and c N. Another label in transitions is that represents a set of clocks (2 X ) to be reset [Bouyer and Laroussinie 2010]. In addition, every state q Q in the timed automaton can be constrained by an invariant, which restricts the possible values of a clock variable (i.e. Inv : Q C(X)). Finally, L : Q 2 AP labels every state with a subset of atomic propositions AP (i.e. the propositions that holds in a specic state). 34

42 A state q can have many congurations dened as a pair (q, v) where q Q and v N x is the clock valuation dened in natural set. The initial location has the conguration (q 0, v 0 ) with v 0 mapping all clocks from X to 0. These congurations of each state represent the semantics of a timed automaton, dened by a Timed Transition System (TTS) [Bouyer and Laroussinie 2010]. In order to show a timed automaton and how its semantics is, consider the Figure 1. Set of atomic propositions Guard: x>3 P1 P2, P3 Clocks reset: x:=0 A state Invariant: x<=3 Invariant: x<=2 Fig. 1: Overview of a timed automaton. Considering x the only clock variable, the rst state of the automaton of Figure 1 may have the following congurations: (q 0, x = 0), (q 0, x = 1), (q 0, x = 2), (q 0, x = 3). The transition to the second state only occurs when x > 3. For more details see [Bouyer and Laroussinie 2010]. 2.2 TCTL To represent reactive system properties, it is common to use temporal logics to qualify propositions according to the time. In classical logic the truth value of a proposition does not change along time and has no modalities. In temporal logics the propositions can be true in some time instants as in our trajectory, where predicates hold in some time intervals [Huth and Ryan 2004]. Some examples of common propositions expressed in temporal logics are: "I will drink water", "I am always thirsty". This approach allows verifying whether a nite state system satises a given property through model checking techniques. As we are dealing with elapsing time by an event, the temporal logics common used are called quantitative temporal logics. For our case we will use the extension of CTL (computation tree logic), called TCTL (Timed-CTL). The syntax is dened by the following grammar, where ϕ and ψ are formulae of TCTL [Laroussinie et al. 2002]: ϕ, ψ P ϕ ϕ ψ EϕU c ψ AϕU c ψ such that P AP (atomic propositions), {<,,, >} and c any natural number. For this paper, the constructions that will be used are EϕU c ψ and its abbreviation EF c ϕ (for E U c ϕ), as well as standard abbreviations,, ϕ ψ. When the modalities have no subscripts, it will be a shorthand for U 0 and F 0. In order to illustrate the TCTL semantics, we show the following examples EF (P 1 ), EF 10 P 1 and E(P 1 U 5 P 2 ). The rst formula means that exists a path where P 1 will occur; the second formula means that exists a path in the A where P 1 will occur in at most 10 steps and the last formula means that exists a path where P 1 will occur during at least 5 steps until P 2 occurs. The full denition of TCTL as well as its semantics can be seen in [Laroussinie et al. 2004]. 3. DATA MODEL We assume that our trajectory is a sequence of events evn = (s, e, Ψ), such that s and e are respectively the start and the end time of the event with s < e such that s, e T N, and Ψ is a subset of Atoms, a collection of atomic descriptions of predicates that holds in a time interval. More formally, a semantic trajectory is represented as s = {(s 1, e 1, Ψ 1 ), (s 2, e 2, Ψ 2 ),..., (s n, e n, Ψ n )}, where Ψ i is a subset of Atoms related to event i [1, n] and T is the time domain of the trajectory. This event sequence has a time constraint between its time values; for two consecutive events (s i, e i, Ψ i ) and (s i+1, e i+1, Ψ i+1 ) we have that s i+1 = e i + 1. In other words, the start time of the last event is the subsequent instant after the end time of the rst event. 35

43 Our query can be seen as a sequence of predicates that holds in some part of a semantic trajectory, as a regular expression based language isomorphic to the proposed model. In particular, a query is a moving pattern M expressed as a path expression where B is a basic moving pattern, P 1 and P 2 are atomic predicates and c 1 and c 2 are natural numbers: M B (B c 1 ) B; M (B c 1 ); M B; [ c 1 ]M (B c 1 ); [ c 2 ]M B P 1 (P 1 AND P 2 ) (P 1 OR P 2 ) A basic moving pattern B can be P 1, (P 1 AND P 2 ) or (P 1 OR P 2 ). The atomic predicate P 1 means that t N such that P 1 holds in the instant t. The conjunction (P 1 AND P 2 ) (resp. disjunction (P 1 OR P 2 )) means that t N such that P 1 and P 2 (resp. P 1 or P 2 ) holds in the instant t. A moving pattern M is dened by the complex constructors B, (B c 1 ), B; M, (B c 1 ); M, B; [ c 1 ]M or (B c 1 ); [ c 2 ]M. The semantic of the sequence operators vary according to each case. The constructor (B c 1 ) is a duration constraint of B and it is represented by a relational operator followed by a natural number c 1. The duration of a predicate can be at least equal (<=), at least (<), at most equal (>=) or at most (>) to a determined time unit. The semantics of the constructor (B c 1 ) is dened as t 1, t 2 T s.t. t 1 < t 2 and B holds in each instant t [t 1, t 2 ] such that t 2 t 1 c 1. The constructor B; M means that B holds in some instant of the trajectory and M holds in a future instant. Semantically B; M is dened as t 1 T s.t. B holds in the instant t 1 and t 2 T such that M holds in the instant t 2 and t 1 < t 2. On the other hand, the constructor (B c 1 ); M means that t 1, t 2 T s.t. t 1 < t 2 and B holds in each instant t [t 1, t 2 ] such that t 2 t 1 c 1 and t 3 T such that M holds in the instant t 3 and t 2 < t 3. The constructor B; [ c 1 ]M (resp. (B c 1 ); [ c 2 ]M) is dened similar to B; M (resp. (B c 1 ); M) with the additional constraint t 2 t 1 c (resp. t 3 t 2 c 2 ) in the instant times. As a way to show an application to the proposed language, consider the query Q 1 showed in Section 1, this query can be represented according our proposal as: (W >= 2); [<= 4]H; D (using acronyms previously presented). The expression (W 2) indicates that the trajectory has a working activity for at least two time units. The expression (W >= 2); [<= 4]H indicates that the trajectory stay at home (H) after at most four time units from the occurrence of the rst predicate (W >= 2). The expression H; D indicates that the trajectory have a dinner (D) after stay at home (H). 4. PROPOSED APPROACH 4.1 Query Evaluation based on Timed Automata In this paper, we propose the TCTL model checking based on timed automata to evaluate a query wrote in our language. Our approach consists in modeling each semantic trajectory as a timed automaton and translating a query expressed in our language as a TCTL formula. To discover which trajectories satisfy a given query, a model checking will be performed for each timed automaton that represents a given trajectory and the TCTL formula that represents the query. For each model checking process that it answers TRUE, the trajectory related to the timed automaton of the process will be included in the result set. In order to clarify our proposal, see Figure 2. This gure shows that a query wrote in our language is translated to a TCTL formula and that each trajectory from the database is translated to a timed automaton. Then, the trajectories (i.e. the timed automaton representation) which answers true for the model checking are returned. A trajectory dened by the model of Section 3 will be represented as a timed automaton A with just one clock x X where each event evn = (s, e, Ψ) will be a state q Q with Inv(q) = x e and L(q) = Ψ (i.e. the predicates holding to the respective event). The rst state q 0 will be the rst event of the semantic trajectory. The transitions E of the timed automaton will be related to the successor of events in the trajectory. Consider two events evn 1 = (s 1, e 1, Ψ 1 ) and evn 2 = (s 2, e 2, Ψ 2 ) such that 36

44 Fig. 2: Overview of the proposed solution. Query Constructor TCTL Formula B EF (E(B U )) (B 1 c) EF (E(B U c )) B; M EF (E(B U EF (M))) (B c 1 ); M EF (E(B U c1 EF (M))) B; [ c]m EF (E(B U EF c(m))) (B c 1 ); [ c 2 ]M EF (E(B U c1 EF c2 (M))) Table I: Query language constructors and the equivalent TCTL formula. evn 2 is the successor of evn 1. We will build a transition from the state of the rst event (i.e. evn 1 ) q env1 to the state of the second event (i.e. evn 2 ) q evn2 such that the guard constraint g is x = e 1. In a simple way, q env1 g qenv2. As a way to show the timed automaton modeling of the trajectories, consider the timed automata related to the trajectories showed in the Section 1, their automata are showed in the Figure 3. H x=3 W, U x=6 H W x=5 H x=7 H, D x<=3 x<=6 x<=8 x<=5 x<=7 x<=10 (a) Trajectory 1 (b) Trajectory 2 W x=2 U x=5 H x=7 U, D x<=2 x<=5 x<=7 x<=10 (c) Trajectory 3 Fig. 3: Trajectories modeled as a timed automaton Each constructor of the query language can be interpreted as a TCTL formula as showed in the Table I. Thus, the queries wrote in our language will be translated to TCTL formula aiming performs model checking to evaluate a query. Note that the translation of each query constructor to a TCTL formula is direct and that the expressiveness of our language is limited to TCTL formulae that represent each language constructor. Complexity Analysis: Considering a Database with m semantic trajectories, our approach performs one model checking process to each trajectory, which result a solution with O(m k), where k is the time complexity of the TCTL model checking based on timed automata. As our approach considering timed automata with just one clock variable and a TCTL formulas with constraints = {, <,, >}, theoretically according to [Laroussinie et al. 2004] the time complexity of this 37

45 model checking problem is polynomial, however the practical solutions in model checking were built for generals cases and can have exponential complexity in the worst case. Therefore, our approach is polynomial upper-bound. 4.2 Experiment in UPPAAL In this section, we use the UPPAAL model-checking tool-suite to implement the approach proposed in Section 4.1. UPPAAL consists of a graphical user interface and a model checker engine based on the theory of timed automata for modeling, simulation and verication of real-time systems. The tool handles with a small subset of TCTL, allowing the construction of large models by modeling a system as a network of several timed automata in parallel [Behramm et al. 2004]. The model checking in UPPAAL is based on the checking the reachability of a state in a timed automata [Larsen et al. 1997], due this the tool can performs a model checking in PSPACE-complete upper-bound [Bouyer and Laroussinie 2010]. Although the UPPAAL can be cost more than our proposal theoretically, we decide to model our approach in this tool because it is widely used and has many optimizations, resulting from 15 years of active development. In addition, there is no implementation of the model checking algorithm for our specic case. As our approach handle with a nite path performed by a semantic trajectory and use a small set of TCTL logic (i.e. EF c ϕ and E(ϕ U c ψ) operators), we expect that our approach will be ecient in practice. In UPPAAL, the transitions can have an action being represented through synchronization channels. Thus, when two automata are synchronized on a channel "a" meaning that a transition labeled with "a!" of one automaton occurs simultaneously with a transition "a?" of another automaton. A label with "!" represents the component that takes the "initiative", while with "?" represents the "passive" component. As UPPAAL cannot handle full TCTL, especially nesting of path formulas (i.e. EF c ϕ and E(ϕ U c ψ)), we have to change ours trajectories timed automata and have to model our queries expressed in TCTL formula into a timed automaton. A semantic trajectory will be represented by a timed automaton with just one clock x where each event evn = (s, e, Ψ) will be a state with an invariant x <= e. Each predicate P 1 Ψ will be a channel in UPPAAL and it is represented in the timed automaton as a self-transition to the correspondent state of the event with a synchronization label P 1!. The transition between states following the successor order between events, for two successor events evn 1 = (s 1, e 1, Ψ 1 ) and evn 2 = (s 2, e 2, Ψ 2 ) we will build a transition from the state of the rst event to the state of the second event such that the guard constraint g is x = e 1 and the clock variable x is reset to 0. The UPPAAL timed automata related to the trajectories showed in Section 1 are showed in Figure 4. H! U! W! H! W! H! H! D! W! U! H! D! U! x<=3 x==3 x:=0 x<=3 x==3 x:=0 x<=2 x<=5 x==5 x:=0 x<=2 x==2 x:=0 x<=3 x==2 x:=0 x<=2 x==3 x==2 x:=0 x:=0 x<=3 x<=2 x<=3 (a) Trajectory 1 (b) Trajectory 2 (c) Trajectory 3 Fig. 4: Trajectory modeling as a timed automata in UPPAAL. The node with double circle means the initial state. A query in UPPAAL will be a timed automaton where each basic moving pattern B can be translate into three dierent automata: i) when he have just a predicate P 1, we will build a transition from an initial state to a state labeled nal; ii) when we have P 1 OR P 2, we will build a transition from one state to another for each predicate; iii) when we have P 1 AND P 2, we will build a transition 38

46 from the initial state to a committed state with a synchronization label P 1? and a transition from the committed state to another state with a synchronization label P 2?. Committed states (C) in UPPAAL cannot delay and require the next action to involve a transition whose source state is the committed location, in other words, the incoming transition involves an action to the committed location and the outgoing transition involves an action from the committed location [Behrmann et al. 2006]. The timed automata related to a basic moving pattern are showed in Figure 5 P1? (a) P 1 final P1? final P2? (b) P 1 OR P 2 P1? final P2? (c) P 1 AND P 2 Fig. 5: Timed automata related to basic moving patterns For a basic moving pattern with a duration constraint (B c) we will build the respective timed automaton for B and will include a guard constraint x c to each transition. For the sequencer operators B; M and (B c); M we will concatenate the automata correspondent to each component of the operator ";". While for the sequencer operators B; [ c]m and (B c 1 ); [ c 2 ]M we will add a new clock t to the query timed automaton. This clock t will be reset in each transition of the automaton related to the rst component of operator "; [ c]" and guard constraint t c will be included in the rst transition of the timed automaton related to the second component. For instance, consider the timed automaton related to query Q 1 showed in Figure 6 W? x>=2 t:=0 H? t<=4 D? final Fig. 6: The query Q 1 as a timed automaton. To query the system represented in UPPAAL, we construct the following temporal formula that will be, jointly with the automatons, the input of a model checker process: E <> Q1.final (i.e. exists a trace where the nal state is reached in the query automaton ). To query all trajectories we must do the model checker to each trajectory (i.e. for each system: {T 1, Q 1 }, {T 2, Q 1 }, {T 3, Q 1 }) and return the name of each trajectory where the system satises the temporal formula. Thus, we propose to build a tool that uses UPPAAL for perform this process automatically. 5. RELATED WORK Aiming to verify the occurrence of certain movements in a trajectory set, it was considered the pattern matching area related with stored data. In [Dindar 2008] is implemented a subset of the SQL extension using a nite state automata. In this work, the pattern matching is performed in databases to catch a sequential pattern described by a regular expression and does not allow to check the occurrence of a predicate set in some time interval. In [Cadonna et al. 2011] they use a similar approach to our work, however they use an automaton-based approach without real-time constraints. In the approach from [Cadonna et al. 2011] the time constraints is not a crucial factor. In addition, the algorithm proposed by this work has exponential complexity instead of polynomial complexity veriers by our work approach. Works related with querying trajectories were veried. In [Vieira et al. 2010], the motion "pattern" queries are dened based on regular expressions. To evaluate the query, this work proposes two approaches with polynomial complexity in the worst case. However, this work does not handle semantic trajectories and does not allow expressing duration's thresholds as "at most X hours" or "at least X hours". RE-SPaM [Gomez and Vaisman 2009] is a language, based on regular expressions proposed 39

47 with the aim of pruning the candidate data obtained during a mining process. The query evaluation is made through an automaton, however this automaton does not check temporal constraints and has exponential time complexity. ST-DMQL in [Bogorny et al. 2009] is a data mining query language to spatial temporal data that aims to answer many queries about semantic trajectories, however is not showed in this work how this query is evaluated and how hard this process is. In [Sakr and Güting 2011] is dened a novel approach to express and evaluate spatiotemporal pattern queries. These patterns specify temporal order constraints and other temporal constraints between predicates. In this work, the evaluation of the patterns is seen as Constraint Satisfaction Problem (CSP), performed in exponential time. 6. CONCLUSION AND FUTURE WORK In this paper we have presented the problem of query a semantic trajectory involving temporal constraints. We propose a query language that allows temporal constraints and a TCTL model checking based on timed automata to evaluate this query language. In theoretical view, the approach proposed by this paper is polynomial. In practical view, we propose UPPAAL tool to evaluate our query language. This approach can be PSPACE-complete, however has been optimized for more than 10 years and we expect that UPPAAL tool can be ecient. Finally, we show an example of our solution conducted in UPPAAL model checker tool. The main negative aspect of solution is that our approach consider in memory evaluation, which is infeasible to large semantic trajectories data. While the main positive aspect is that the solution is based in a theoretical approach widely studied in the eld of Logics that is polynomial upper-bound. Future work: We are intend to build a tool to query semantic trajectories that uses UPPAAL and we will do some experiments aiming to prove its eciency. Other works can be done with the objective to improve the expressiveness of the query language and to use this solution in a DBMS. REFERENCES Behramm, G., David, A., and Larsen, K. A tutorial on uppaal. proceedings of the 4th International School on Formal Methods for the Design of Computer, Behrmann, G., David, A., and Larsen, K. A tutorial on uppaal 4.0, Bogorny, V., Kuijpers, B., and Alvares, L. St-dmql: A semantic trajectory data mining query language. International Journal of Geographical Information Science 23 (10): , Bouyer, P. and Laroussinie, F. Model checking timed automata. Modeling and Verication of Real-Time Systems, Cadonna, B., Gamper, J., and Böhlen, M. H. Sequenced Event Set Pattern Matching Categories and Subject Descriptors. In Proceedings of the 14th EDBT. pp , Dindar, N. Pattern Matching over Sequences of Rows in a Relational Database System. M.S. thesis, ETH Zurich, Switzerland, Gomez, L. I. and Vaisman, A. a. Ecient constraint evaluation in categorical sequential pattern mining for trajectory databases. In 12th EDBT '09. ACM Press, New York, NY, USA, pp , Huth, M. and Ryan, M. Logic in Computer Science: Modelling and reasoning about systems. Cambridge Univ Pr, Laroussinie, F., Markey, N., and Schnoebelen, P. On model checking durational kripke structures. In Foundations of Software Science and Computation Structures. Springer, pp , Laroussinie, F., Markey, N., and Schnoebelen, P. Model checking timed automata with one or two clocks. CONCUR 2004-Concurrency Theory, Larsen, K., Pettersson, P., and Yi, W. Uppaal in a nutshell. International Journal on Software Tools for Technology Transfer (STTT) 1 (1): , Sakr, M. and Güting, R. Spatiotemporal pattern queries. Geoinformatica 15 (3): , Vieira, M. R., Bakalov, P., and Tsotras, V. J. Querying Trajectories Using Flexible Patterns. In Proceedings of the 13th EDBT. pp , Yan, Z., Chakraborty, D., Parent, C., and Spaccapietra, S. SeMiTri: A Framework for Semantic Annotation of Heterogeneous Trajectories. In Proceedings of the 14th EDBT, Yan, Z., Parent, C., Spaccapietra, S., and Chakraborty, D. A Hybrid Model and Computing Platform for Spatio-semantic Trajectories. The Semantic Web: Research and Applications,

48 Approaches to Model Query Interactions Manoel Siqueira 1,2, José Maria Monteiro 1, José Macedo 1 and Javam de Castro Machado 1 1 Federal University of Ceará, Brazil 2 University of International Integration of Afro-Brazilian Lusophone, Brazil Abstract. A typical database workload consists of a mix of multiple query instances of dierent query types that run concurrently and interact with each other. That query interactions can have a signicant impact on database system performance. Hence, developing performance tuning algorithms for database systems requires taking these interactions into account. In this paper we propose three new approaches to model and measure query instances and query types interactions. Our approaches require no prior assumptions about the internal aspects of the database system or the reason of query interactions, making it non intrusive, namely, portable across systems. To demonstrate the prot of exploiting query interactions, we have developed a novel interaction-aware query scheduler for online workloads. We report an experimental evaluation of the proposed approaches using TPC-H workloads running on PostgreSQL. The evaluation shows that our approaches have potential to improve many database tuning algorithms. Categories and Subject Descriptors: H.2 [Database Management]: Miscellaneous Keywords: query interactions, query scheduling, database tuning 1. INTRODUCTION A typical database workload consists of a mix of multiple query instances of dierent query types that run concurrently and interact with each other. A query type can be dened as query template. A query template consists of SQL text along with possible parameter markers. So, when a template is instantiated with a set of parameter values we have a query instance. As an example, let us consider the popular TPC-H decision support benchmark [TPC 2012]. TPC-H denes 22 query templates where each template can generate hundreds of distinct query instances. We will consider each query template to be a query type, thus we have 22 query types. Figure 1a shows a TPC-H query type (template) Q j with one parameter marker that is represented by the symbol "?". Dierent value settings of the parameter marker give rise to dierent instances of this query template. Figure 1b illustrates a query instance q j1 of the query type Q j. Interactions among the dierent query instances in a workload can have a signicant impact on database performance, which can be positive or negative [Ahmad et al. 2009]. The papers presented in [Ahmad et al. 2009; Ahmad et al. 2011] show many interesting examples of the eect of query interactions on database performance. However, very little work in the database literature deals with the problems of modeling and measuring query interactions [Ahmad et al. 2009]. In this work, we propose three new approaches to model and measure query instances and query type interactions, denoted: intercalation strategy (IS), data retrieving rate (DRR) and greedy bidimentional array (GBA). Our approaches require no prior assumptions about the internal aspects of the database system or the reason of query interactions, making it non intrusive, namely, portable across systems. This work was partially funded by FUNCAP. Copyright c 2012 Permission to copy without fee all or part of the material printed in JIDM is granted provided that the copies are not made or distributed for commercial advantage, and that notice is given that copying is by permission of the Sociedade Brasileira de Computação. 41

49 1 SELECT * 2 FROM lineitem AS l, orders AS o, 3 supplier AS s, nation AS n 4 WHERE l.l_orderkey = o.o_orderkey AND 5 l.l_suppkey = s.s_suppkey AND 6 s.s_nationkey = n.n_nationkey AND 7 n.n_name =?; 1 SELECT * 2 FROM lineitem AS l, orders AS o, 3 supplier AS s, nation AS n 4 WHERE l.l_orderkey = o.o_orderkey AND 5 l.l_suppkey = s.s_suppkey AND 6 s.s_nationkey = n.n_nationkey AND 7 n.n_name = 'USA'; (a) Query type (template) Fig. 1: Query examples (b) Query instance The remainder of this paper is organized as follows: Section 2 describes some related works; Section 3 introduces the proposed approaches to model and measure query interactions; Section 4 presents a novel interaction-aware query scheduler for online workloads, which uses the proposed approaches to represent query interactions. Afterwards, Section 5 discusses the experimental results. Finally, Section 6 presents the nal comments and point out to future directions. 2. RELATED WORK There are few works discussing about query interaction. In this sense, [O'Gorman et al. 2005] describes a scheduling algorithm based on a bidimentional array that stores in each cell c i,j a rate that considers a pair of queries q i and q j running sequentially and concurrently, such that i and j represent each one a query type and i j. [Ahmad et al. 2008; 2011] describe an experiment-driven modeling for batch scheduling. Also, the authors propose an online scheduling algorithm based on a metric called NRO (Normalized Run time Overhead). All these approaches need a heavy preprocessing to be used and can be inappropriate when each query has a deadline. Some works are intrusive and use the concurrent query execution scenario to get performance improvements. [Roy et al. 2000] and [Tan and Lu 1995] are in this group. Each one makes changes in the DBMS query optimizer to explore some properties and reuse common data among queries that are stored in memory. Some works (e. g. [Niu et al. 2007] and [Niu et al. 2009]) are based on query optimizer estimations to support workload management decisions, including scheduling ones. However, this cost does not help so much when queries have a deadline to fulll. In fact, our solution is based on query plan, but it does not care about their estimations because this information is not good enough to indicate if a query can execute in an acceptable time. 3. APPROACHES TO MODEL QUERY INTERACTIONS This article presents three new approaches to model and measure query instance and query type interactions. These three strategies are denoted: intercalation strategy (IS), data retrieving rate (DRR) and greedy bidimentional array (GBA). Each one has a dierent preprocessing level. In this section we will discuss these approaches in detail. All algorithms that describe the proposed approaches return an interaction factor, which is a number between 0 and 1. The interaction factor tries to quantify the interaction between two query instances or between two query types. Values for interaction factor close to 1 indicate strong interaction and close to 0 weak interaction. The interaction factor can be used to improve the solutions to many administration and performance tuning problems in database systems. In Section 4 we present a novel interaction-aware query scheduler for online workloads, which uses the interaction factor to improve scheduling. 42

50 3.1 Table Relationships The IS (Subsection 3.2) and DRR (Subsection 3.3) approaches try to identify interaction between two query instances q j1 and q l2 (executing in this order) analyzing their query execution plans (denoted P qj1 and P ql2, respectively) based on table operations (table scan and index scan). Let t k P qik be a table and h tk,p qik be a function that returns the set of table operations of t k in P qik (denotated O k ), we dene two types of table relationships: possible intersection and disjunction. possible intersection: when table operations in t 1 and t 2 can access common data; disjunction: when table operations in t 1 and t 2 do not access common data. If t 1 t 2, we have a disjunction. Otherwise, possible intersection will occur when o 1 O 1 and o 2 O 2 such as: o 1 or o 2 is a table scan; or o 1 and o 2 are index scan using distinct columns; or o 1 and o 2 are index scan using the same columns, having intersection at the index lters; An additional case occurs when o 1 O 1 and o 2 O 2, o 1 and o 2 are index scan operations using the same columns and there is no intersection at the index lters. In this case we have a disjunction. 3.2 Intercalation Strategy (IS) The Intercalation Strategy is based only on the SQL statements and query execution plans. preprocessing is needed. Algorithm 1 describes the steps of this approach. Algorithm 1 has as input two query instances q j1 and q l2, where we suppose that q j1 starts its execution before q l2, and dbms, which is a driver that gets some database informations. The algorithm Algorithm 1: Intercalation strategy input output : q j1, q l2, dbms : interaction factor 1 begin 2 if isnull(q j1 ) or isnull(q l2 ) then 3 return 0; end endif T qj1 dbms.parsequery(q j1 ); T ql2 dbms.parsequery(q l2 ); totalsize gettotalsize(t qj1, T ql2 ); α 0; foreach t 1 in T qj1 do foreach t 2 in T ql2 do tablerelationship t 1.getRelationship(t 2); endfch endfch return α; if ispossibleintersection(tablerelationship) then if t 1.hasFullScan() and t 2.hasFullScan() then auxweight W 1; else if t 1.hasFullScan() and not t 2.hasFullScan() then auxweight W 2; else if not t 1.hasFullScan() and t 2.hasFullScan() then auxweight W 3; else endif auxweight W 4; α α + auxweight size(t1 totalsize ) ; endif No 43

51 output is the interaction factor between q j1 and q l2, denoted by f qj1,q l2. It's important to note that f qj1,q l2 can be dierent from f ql2,q j1. Following the notations from Subsection 3.1, let T qj1 be the set of tables from P qj1 and T ql2 be the set of tables from P ql2. Let size(t k ) be the size of the t k, the variable totalsize stores the sum of size(t k ) for each t 1 T qj1 and t 2 T ql2, not considering the occurrence of table repetitions. These informations are used to dene the weight of each table in interaction factor value. The tablerelationship variable represents table relationship, possible interaction or disjunction, between two tables. From line 8 to 25 the α variable is dened. Finally, in line 26, the interaction factor (α) is returned. During the tests W 1 and W 4 were set to 0.5, W 2 to 1 and W 3 to These values were chosen to benet occurences of table scan in t 1 and index scans in t Data Retrieving Rate (DRR) The DRR approach is based on: i) SQL statements, ii) query execution plans and iii) the data retrieving rate for each query type. Then, a preprocessing step is needed. This preprocessing consists on running, for each query type Q j, a set S j of n query instances. The average of the data retrieving rate for the instances in S j is the DRR for the query type Q j. In this paper we used n = 1, but future experiments with more query instances per type will be done in future works. We dene DRR as the amount of data retrieved (brought into the memory) from the disk per time unit (KB/s in our tests), when there is no data from DBMS in memory (cache free). This heuristic assumes that if a query type has a low DRR their query instances will access data in a low rate. Hence, these instances can present a performance gain greater than instances of other query types with greater DRR, if the required data is already been in cache. Algorithm 2 describes the steps of DRR approach. Algorithm 2 has as input: i) two query instances q j1 and q l2, where we suppose that q j1 starts its execution before q l2 ; ii) the query types of q j1 and q l2, denoted Q j and Q l, respectively; iii) an array R with the DRR for each query type; and iv) dbms, which is a driver that gets some database informations. The algorithm output is the interaction factor Algorithm 2: DRR approach input output : q j1, q l2, R, Q j, Q l, dbms : interaction factor 1 begin 2 if isnull(q j1 ) or isnull(q l2 ) then 3 return 0; end endif T qj1 dbms.parsequery(q j1 ); T ql2 dbms.parsequery(q l2 ); totalsize gettotalsize(t qj1, T ql2 ); α 0; foreach t 1 in T qj1 do foreach t 2 in T ql2 do tablerelationship t 1.getRelationship(t 2); if ispossibleintersection(tablerelationship) then endif endfch endfch return α; if t 1.hasFullScan() then auxweight W 1 getdrr(q l ); else auxweight W 2 getdrr(q l ); endif tablesize dbms.size(t 1.getTableName()); α α + auxweight size(t1 ) totalsize ; 44

52 between q j1 and q l2, denoted by f qj1,q l2. Related to R, max(r) is its highest value and R Qj is the DRR for Q j. Still related to the Algorithm 2, lines 2 to 7 do the same as lines 2 to 7 of Algorithm 1. After, between lines 8 and 22, the value of α variable is dened. This process starts with the initialization of this variable in line 8. Next, it is veried the relation (possible intersection or disjunction) between each pair of tables gotten by the chained loops from lines 9 to 22. In the cases where possible intersection is found, the value of α is modied based on the constants W 1 and W 2, O 1 (according to Subsection 3.1), DRR of t 2 and the analyzed table weight (from lines 12 to 20). It can be noticed that this algorithm has the same table relationship concept that IS and is based on the same supposition of this approach, i. e., queries that access tables by table scan put more data of them in memory, allowing more reuse of data. However, the α value is aected by DRR because of the assumption that queries with low DRR has higher chance to improve their performance. Lastly, in line 23, the interaction factor is returned. 3.4 Greedy with bidimentional array (GBA) The GBA approach is based on a bidimentional array obtained by a preprocessing step, which is described in the Algorithm 3. Each line i of this array represents a query type Q i and each column j represents a query type Q j. Then, the cell i, j, namely, line i and column j, stores the gain of running a query instance of the query type Q j after a query instance of the query type Q i. This gain, denoted by gain(q i, Q j ), can be calculated as following: responset ime(q i, Q j ) - responset ime(q j ), where responset ime(q i, Q j ) is the response time for an instance of Q j that starts its execution immediately after nishing an instance of Q i and responset ime(q j ) is the response time for an instance of Q j running with free memory. Algorithm 3: GBA preprocessing input output : D, typeqty, instanceqty, iterations, dbms : G 1 begin 2 T createarray(typeqty); // response time array related to query types running when cache free 3 G createarray(typeqty, instanceqty); end for t 1 1 to typeqty do querytime 1 0; endfor for t 2 1 to typeqty do querytime 2 0; endfor T t1 for i 1 1 to instanceqty do q j1 D t1,i 1 ; endfor for i 2 1 to instanceqty do q l2 D t2,i 2 ; endfor G t1,t 2 for k 1 to iterations do freememory(); querytime 1 querytime 1 + dbms.runquery(q j1 ); // it runs and gets the response time querytime 2 querytime 2 + dbms.runquery(q l2 ); // it runs and gets the response time endfor querytime 2 instanceqty 2 ; // average time for t2 when running after t1 iterations querytime 1 typeqty instanceqty 2 ; // average time for t1 when cache free iterations for t 1 1 to typeqty do endfor for t 2 1 to typeqty do G t1,t 2 T t1 G t1,t 2 ; endfor G normalize(g); return G; 45

53 Algorithm 4: GBA approach input : Q i, Q j, G output : interaction factor 1 begin 2 α 0; 3 if not isnull(q i) and not isnull(q j) then 4 α G Qi,Q j ; 5 endif 6 return α; 7 end Algorithm 3 has as input: i) D, a set of query instances used to calculate the gain(q j, Q l ); ii) typeqty, the number of query types; iii) instanceqty, variable that stores the number of query instances for each query type; iv) iterations, the total number of iterations for each pair of query instances to be run and v) dbms, that is the database driver. The rst steps of Algorithm 3 are creating and initializing with value 0 all cells in the array. Between lines 4 and 22, for each query type, it is calculated its execution time (the response time average of all query instances of the referred query type). Also, it is dened the execution time for each query type when run after query instances of a chosen type (between lines 7 and 19). From this two arrays the gain matrix is built (from lines 23 to 27). Next the gain matrix is normalized (line 28) and, nally, the output is returned (line 29). After all preprocessing the GBA heuristic is able to be used by the Algorithm 4. It has the following data as input: i) Q j and Q l ; and ii) G that is the bidimentional array of performance gain, which is created in the preprocessing step. According to the steps of Algorithm 4, in the same way as previous approaches, α is initialized with value 0, as it is showed in line 2. Next, in the condition described in line 3, it is veried if Q j and Q l are dened types (not null) and, in this case, in line 4, the performance gain is gotten by G Qj. Otherwise, no gain is returned. Finally, the interaction factor is returned in line AN INTERACTION-AWARE QUERY SCHEDULER In order to verify the prot of using the proposed approaches to model and measure query instances and query type interactions (IS, DRR and GBA), we have developed a novel interaction-aware query scheduler for online workloads. The scheduler is showed in Algorithm 5, which schedule query instances based on their interactions. This algorithm can uses any proposed approach to measure query Algorithm 5: Interaction-aware query scheduling input begin : S, q new, q last, dbms bestposition 1; factormax -1; previousquery q last ; for i 1 to S.getLength() do nextquery S i; factor getfactor(previousquery, q new, dbms) + getfactor(q new, nextquery, dbms) - getfactor(previousquery, nextquery, dbms); if factor factormax then bestposition i; factormax factor ; endif previousquery nextquery; endfor factor getfactor(previousquery, q new, dbms); if factor factormax then bestposition S.getLength() + 1; endif S.add(bestPosition, q new); end 46

54 interactions (IS, DRR or GBA). Then, the scheduler algorithm uses the interaction factor to dene the query execution order. The scheduler goal is to optimize workload query response time by choosing, for each query instance, the position in the scheduling queue providing highest interaction factor gain. This algorithm targets workloads where queries arrive continuously, and scheduling decisions have to be made online. Also, it is assumed that only workload throughput is important, not latency. The Algorithm 5 has as input the scheduling queue, represented by the variable S, q new, that is the query instance to be scheduled, q last, that is the last instance that left S and dbms, that is the database driver. The rst steps of this algorithm consist of the initialization of the following variables from lines 2 to 4: bestp osition, that stores the position in S where q new will be put, factormax, that stores the greatest interaction gain according to the approach used for q new be inserted into the position of S with the best estimated gain and previousquery, that represents the position in S of the previous query if q new was added in the current index. Also, in line 6, a variable is initialized. This variable is nextquery and it is similar to previousquery with the dierence that it refers to the instance with the lowest index in S that would be postponed in case of q new being added in the current index of S. Between lines 5 and 19, q new is tested in each position of S, where it will be gotten the q new position in S, that will be the position with the greatest global gain obtained from the formula in line 10. Finally, in line 20, q new is inserted in the best estimated position of the scheduling queue. 5. EVALUATION In order to evaluate the proposed three approaches (IS, DRR and GBA) to model and measure query interactions, we have applied these approaches to improve the solution of an important problem in database: the query scheduling. Then, we developed a novel interaction-aware query scheduler for online workloads. Our query scheduling algorithm leverages the proposed models to query interactions (IS, DRR or GBA). 5.1 Experimental Setup A 2 GHz Intel Core 2 Duo machine with 3 GB of RAM and 500 GB of HD, using Ubuntu of 64 bits as operating system, was used to making the experiments. The tests were run with the TPC-H benchmark with scale factor of 2 GB, using DBGEN/DBT-3 project. We have used the PostgreSQL database with all default parameters values. We used each TPC-H templates as query types and one instance per type. 5.2 Test Results In order to demonstrate that query interaction is an important issue, the three approaches of Section 3 were tested from a TPC-H workload composed of one instance of each query type with ten random dierent arrival orders, beginning with all memory free and cleaning memory after each of ten executions. Also, all arrival orders were run ve times for each approach due to consistence reasons. The experiments regarded some aspects. One of them was eectiveness, namely, the quantity of evaluated cases with better performance. As illustrated in Figure 2a the three approaches have a relevant eectiveness when compared with FIFO. Each arrival order of the TPC-H used in tests was counted as one case and in total ten cases were evaluated. IS and DRR got 90% of cases with improvement in performance and GBA was better than FIFO in all cases, meaning a representative result for these interaction-aware approaches. Another important aspect to be evaluated is the total performance gain after workload execution. So, it was gotten the total gain after the execution of all them (with ten arrival orders). As Figure 2b illustrates, IS was executed in 3.7 hours, saving 1 hour (22% of reduction). DRR had a better response time, during 3.5 hours (25% of reduction). But the most ecient strategy was GBA with 47

55 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Worse Draw Better Intercalation DRR GBA 5,0 4,5 4,0 3,5 3,0 2,5 2,0 1,5 1,0 0,5 0,0 FIFO Intercalation DRR GBA (a) Eectiveness (b) Eciency Fig. 2: comparative analysis between IS, DRR, G and FIFO Total Query Response Time (hours) reduction of 40%, saving 1.9 hours and hence being the only solution (among the all discussed in this section) with execution time less than 3 hours. It's important to note that the completion time of a workload W was dened as the time elapsed from the beginning execution of the rst query till all queries in W have nished their executions. 6. CONCLUSION AND FUTURE WORKS In this paper we propose three new approaches to model and measure query instance and query type interactions. Our approaches require no prior assumptions about the internal aspects of the database system or the reason of query interactions, making it non intrusive, namely, portable across systems. To demonstrate the prot of exploiting query interactions, we have developed a novel interaction-aware query scheduler for online workloads. The test results show that signicant speed-ups are achieved. Besides, the evaluation shows that our approaches have potential to improve many database tuning algorithms. It may be interisting to incorporate the proposed approaches into other database system components such as query optimizers, physical design advisors and buer manager, making them query interaction awareness. These possibilities represent interesting directions for future researches. REFERENCES Ahmad, M., Aboulnaga, A., and Babu, S. Query interactions in database workloads. In Proceedings of the Second International Workshop on Testing Database Systems. DBTest '09. ACM, New York, NY, USA, pp. 11:111:6, Ahmad, M., Aboulnaga, A., Babu, S., and Munagala, K. Modeling and exploiting query interactions in database systems. In Proceedings of the 17th ACM conference on Information and knowledge management. CIKM '08. ACM, New York, NY, USA, pp , Ahmad, M., Aboulnaga, A., Babu, S., and Munagala, K. Interaction-aware scheduling of report-generation workloads. VLDB J. 20 (4): , Niu, B., Martin, P., and Powley, W. Towards autonomic workload management in dbmss. J. Database Manag. 20 (3): 117, Niu, B., Martin, P., Powley, W., Bird, P., and Horman, R. Poster session: Adapting mixed workloads to meet slos in autonomic dbmss. In Proceedings of the 2007 IEEE 23rd International Conference on Data Engineering Workshop. ICDEW '07. IEEE Computer Society, Washington, DC, USA, pp , O'Gorman, K., El Abbadi, A., and Agrawal, D. Multiple query optimization in middleware using query teamwork. Softw. Pract. Exper. 35 (4): , Apr., Roy, P., Seshadri, S., Sudarshan, S., and Bhobe, S. Ecient and extensible algorithms for multi query optimization. SIGMOD Rec. 29 (2): , May, Tan, K.-L. and Lu, H. Workload scheduling for multiple query processing. Inf. Process. Lett. 55 (5): , Sept., TPC. Tpc-h benchmark,

56 Modeling an Ontology for Amazonian Biodiversity Andréa Corrêa Flôres Albuquerque 1,2, José Laurindo Campos dos Santos 1 and Alberto Nogueira de Castro Júnior 2 1 Laboratório de Interoperabilidade Semântica (LIS), Instituto Nacional de Pesquisas da Amazônia (INPA), Avenida André Araújo, 2936 Aleixo, CEP.: , Manaus-AM, Brasil 2 Instituto de Ciência da Computação (IComp), Universidade Federal do Amazonas (UFAM), Avenida Gen. Rodrigo Otávio Jordão Ramos, 3000 Coroado, CEP.: , Manaus-AM, Brasil Andreaa, Abstract. Biodiversity information is essential for supporting environmental studies leading to conservation and sustainable development. It presents a high degree of complexity which includes: spatiotemporal parameters, undefined structure, multidimensionality, a not well-known or agreed vocabulary, large volume and dynamic evolution. To produce results of positive impact for biodiversity, automatic tools and models must interoperate. Due to the variety of data format and predictive models available, to achieve effective interoperability is challenging. To cope with such demand, semantic web and ontology has proved to present the necessary resources for data integration and interoperability. Particularly, ontology can drive knowledge acquisition processes for the purpose of comprehensive, portable machine understanding and knowledge management. This work presents domain ontology technique, developed with INPA s biological data and information as object of study, which was adopted to support biodiversity monitoring systems in Amazonia. Categories and Subject Descriptors. Knowledge Management and Modeling: Ontologies. Keywords. Biodiversity, Ontology, Data Integration, Information Dissemination. 1. INTRODUCTION The Semantic Web (SW) aims to contribute to the next generation of Web technology by adding semantics to the Web (Berners-Lee et al., 2001; Albuquerque and Campos dos Santos, 2005). For this, it makes use of ontology to associate meaning to data. To develop ontology it is necessary engineering technology and domain experts. Regarding biology, ontologies have contributed to major advances in the area, enabling integration of various sources of data and consequently knowledge, a new approach to delineate experiments for transdiciplinary analysis and synthesis. Research in biology is characterized by an intrinsic heterogeneity, not only on data and conceptual models used, but also on the needs and profiles of specialists who collect and analyze data. Massive data sets and diversity of specimens act as factors that bring complexity to this scenario. Many branches of biology have their domain described by consensual ontologies (reflecting a consensual knowledge accepted by a group, community), such as Gene Ontology (Ashburner et al., 2000) (genetics) and Transparent Access to Multiple Bioinformatics Information Sources-TAMBIS Ontology (Baker et al., 1998) (molecular biology). In biodiversity and monitoring, however, there is no consensus, although there are several research groups involved in global initiatives (Albuquerque, 2011). This paper presents a domain ontology developed with real-world biological scenario as object of study, which has been adopted to support biodiversity monitoring systems at INPA. Section 2 provides information about the methods used to develop the ontology. Section 3 presents SABIO systematic approach, definition of competence questions and the biodiversity ontology. Section 4 presents the 49

57 tools adopted for the implementation and Section 5 concludes by presenting some remarks and what come next. 2. REQUIREMENTS ELICITATION: THE BIODIVERSITY DOMAIN To model a biodiversity domain, ontology designers need to produce the requirements elicitation, following two steps: i. Data Collect, which consisted of collecting documents/records from field collects and notes. Also, there were used data available on the Web from projects and institutes; and from a search at INPA and Museu Paraense Emílio Goeldi (MPEG), that resulted in electronic documents (mostly text files) and information about the conceptual schema CLOSi (Clustered Object Schema for INPA's Biodiversity Collections Data) described by Campos dos Santos (2003). ii. Requirements Elicitation, based on (i), where common aspects of most documents acquired for modeling the ontology were identified. At this stage, a generic document was defined to record field data collecting following a specific collect protocol. These two steps can provide the understanding of a domain application. 2.1 Collecting Protocol Biodiversity studies imply sampling as material witness for identification, or for collections and future studies. Through these activities it is possible to manipulate data that can be used for other analyzes such as biogeography, distribution patterns and potential ecological niches, description of new species, among others. Collecting aims to acquire and record any biological material. During collecting, in addition to biological material of interest, information on the site, physical characteristics of the local, as well as information regarding the material collected is essential. Data collected will generally contain information about morphometry, morphology and development stage. Records of the collect localities, geographical coordinates, ecosystem, abiotic aspects are important for guiding future analysis and comparisons made with other studies. In research sites, plants collected are indexed by a botanical assistant. After gathering, the pre-sorted material is then taxonomically identified by specialists. The same procedure is adopted for faun. 2.2 Analysis and Data Treatment Data collected during a field mission to record species, are divided into two types: (1) general, which are information important in all studies (e.g. day, hour, description of location) and; (2) specific, that correspond to the scientific interest of a study. Interviewing scientists working in different studies and areas, help to classify information that is common to all and those used only by a few scientists. The results of the interviews along with other data collected were separated by functions and grouped as type of objects (Campos dos Santos, 2003). The use of data schemas (e.g. CLOSi) to support ontology development becomes recommended, since the schema used had been already validated. 3. THE ONTOLOGICAL ENGINEERING APPROACH Despite various attempts to create methodologies for developing ontologies, practice shows that most research groups create their own method of development, according to their application characteristics. Based on various methods used for building ontologies, (Falbo et al., 1998) proposed a systematic approach to build domain ontologies, adopted within this research called Systematic Approach for Building Ontologies (SABIO). This approach comprises the following activities: (i) identification of the 50

58 ontology purpose by means of competence questions; (ii) capture of concepts of a domain as well as its relations and properties; (iii) ontology formalization, which is the definition of formal axioms by using First-Order Logic (FOL); (iv) search for ontologies with reuse and integration resources; (v) ontology evaluation by identifying inconsistency as well as verifying the truthfulness with its purpose; and (vi) ontology documentation. It is important to emphasize that competence questions play an essential role in this methodology by: (1) defining the scope and purpose of the domain conceptualization; and (2) serving as a testbed for ontology evaluation competence questions are those that the ontology is supposed to answer (Falbo et al., 1998). As presented in (Guizzardi, 2007), ontology engineering must include phases of conceptual modeling, design and codification. These phases will produce different artifacts and objectives and, as consequence, will require different types of modeling languages and methods with specific characteristics. In a conceptual modeling phase, ontology should strive for expressivity, clarity and truthfulness. In this context, Ontology Web Language (OWL and OWL2) and Resource Description Framework (RDF) are not suitable for ontology conceptual modeling. Once obtained formal ontology is often desirable to make it operational. To do so, two other activities should be completed: design and coding. In the design, the concepts, relations and axioms of formal ontology should be placed in a compatible format with the implementation language. To model OntoBio it was used an ontologically well-founded UML modeling profile named OntoUML. This profile comprises a number of stereotyped classes and relations representing a metamodel that reflects the structure and axiomatization of a foundational (and, thus, domain independent) ontology named UFO (Unified Foundation Ontology) (Guizzardi, 2005). Based on SABIO, OntoBio is composed by (i) structural conceptual models, (ii) FOL axioms and (iii) a terms dictionary. 3.1 Competence Questions (CQs) Whereas the main purpose of our ontology is to provide a clear and precise conceptualization of the issues raised in biodiversity data collect, independent of a specific application, CQs tend to reflect this purpose and the expected uses for it, that is, the ontology competence. The competence of a representation is about the coverage of issues that this representation can answer or tasks that it can support; it delimits the scope of the ontology developed. When establishing competence, is defined what is relevant to the ontology and what is not. It is also helpful to identify potential users and the scenarios that motivated the development of the ontology. CQs are answered using FOL, which validates the design of the ontology. Part of CQs defined by this ontology is listed in Table 1. A complete list can be found at Albuquerque (2011). CQ 1. Which institution is responsible for the collect? CQ 2. What is the type of collection: manual or instrumented? CQ 3. What are the species of the objects in a collect? CQ 4. Who is responsible for the collect? CQ 5. Who classifies the object of the collect? CQ n 3.2 Biodiversity Ontology - OntoBio Table 1: OntoBio s Competence Questions. The modeling phase had prioritized OntoBio into five sub-ontologies, integrated by relationships between the concepts and axioms. They are presented in Figure 1: Collect; Material Entity; Spatial Location; Ecosystem; and Environment. The axioms respond to CQs and allow: (i) a rich semantic 51

59 expressiveness that cannot be reached only by using the graphical model, (ii) the inferences (for encoding the ontology), (iii) an evaluation of the reliability of the presented with the purpose of the ontology, and (iv) identify inconsistencies. Environment Ecosystem Spatial Location Collect Material Entity Figure 1. OntoBio s sub-ontologies. The complete ontology is presented in details at (Albuquerque, 2011). The implementation is open to use and reuse on a global scale at SUB-ONTOLOGY COLLECT This sub-ontology captures the structure of a collect protocol in a high level of abstraction, as presented in Figure 2. Due to limited space on this paper, other sub-ontologies tables and figures were suppressed. A Collect must necessarily be associated to a CollectLocal (Sub-Ontology Spatial Location), to a CollectResponsibleInstitution, to a CollectParticipant (Sub-Ontology Biotic Entity), to a CollectResponsible (Sub-Ontology Biotic Entity) and to a CollectedObject (Sub-Ontology Biotic Entity), characterizing a formal relation of all roles mentioned above. The Collect is stereotyped as a relator (represents a type of property that mediates two or more sortals, and it is existentially dependent on them), that mediates the formal relation between the roles played by CollectLocal, CollectResponsibleInstitution, CollectParticipant, CollectResponsible, and CollectObject. Similarly, InstitutionalLink, as a relator, mediates the material relation (islinkedto) between ResearchInstitution and Researcher (Sub-Ontology Biotic Entity). Collect can be specialized according to the area, or to the instruments used. Collect also establishes a formal relation (isclassifiedas) with powertype CollectType. The classes of the supertype Collect are instances of the powertype CollectType. The kind Tool plays the role of CollectTool. This, in turn, maintains a formal relation of mediation with the relator InstrumentedCollect. Axiom 1 indicates that all collect will be associated with an institution responsible for collect and a researcher responsible for the collect. Axiom 1 x,y,z [CollectResponsible(x) Collect(y) media(y,x) z [CollectResponsibleInstitution(z) media(y,z)]] The Competence Questions are answered by the axioms A n (FOL). A 1, A 2 and A 3 are presented below. A 1 A 2 A 3 x [Collect(x) y [CollectResponsibleInstitution(y) media(y,x)]] x [Collect (x) y [TypeCollect(y) instanceof(x,y)]] x,y,z [Collect (x) CollectedObject(y) media(x,y) ClassifiedObject(y) Classification(z) media(z,y) w [Specie(w) media(z,w)]] 52

60 <<kind>> Research Institution -name {readonly} -acronym {readonly} 1 1 <<mediation>> 1 <<relator>> Institutional Link <<role>> CollectResponsible Institution AXIOM 1 <<mediation>> 1 <<relator>> Collect -datetimestart {readonly} -datetimeend {readonly} Figure 2. Sub-Ontology Collect. SUB-ONTOLOGY MATERIAL ENTITY SUB-ONTOLOGY ABIOTIC ENTITY This sub-ontology conceptualizes material entities that are part of a Collect. MaterialEntity is a category that generalizes two sub-ontologies: Abiotic Entity and Biotic Entity. MaterialEntity establishes two formal relations with sub-ontology Spatial Location: locatedat and localization with SpatialLocation and GeographicCoordinate respectively. AbioticEntity is a categorization from MaterialEntity that represents all non-living physical factors and is specialized in the quantities Water, Soil and Air. Water and Soil establish a formal relation (isclassifiedas) with the powertypes TypeWater and TypeSoil respectively. Classes Water and Soil will instantiate the powertypes TypeWater and TypeSoil. SUB-ONTOLOGY BIOTIC ENTITY BioticEntity is a categorization from MaterialEntity that represents all the physical and living factors and is represented by the categories Plant, Animal and MicroOrganism. They establish a whole-part relation (memberof) shareable with collectives Flora, Fauna and Microbiota since they can instantiate them more than once. The kind Vegetation establishes a formal relation (isconstitutedby) with the collective Flora. This kind is specialized in subkinds and establishes a formal relation (isclassifiedas) with the powertype TypeVegetation. The subkinds of kind Vegetation will instantiate the powertype TypeVegetation. Vegetation also establishes a formal relation (localizedat) with the category GeographicSpace. Kind Person specializes the category Animal. Person may play the roles Researcher, CollectParticipant and Classifier in an overlapped way since Classifier can optionally be both a Researcher and a CollectParticipant or not. CollectParticipant can play the roles ParticipantResearcher and CollectAssistant. Researcher also specializes in role ParticipantResearcher, which in turn specializes into CollectResponsible. Briefly, all CollectParticipant or is a ParticipantResearcher or CollectAssistant and the CollectAssistant will necessarily be a ParticipantResearcher. 53

61 The BioticEntity also establishes formal relations with the category Sex and the mixin StageOfLife that also specializes and enrichs the vocabulary of this ontology schema. Sex and StageOfLife establish a formal relation (isclassifiedas) with powertypes TypeSex and TypeStageOfLife respectively. The classes Sex and StageOfLife and their subclasses will instantiate the powertypes TypeSex and TypeStageOfLife. StageOfLife cannot be a category because it is not rigid, the stereotype used is mixin which has as specializations, phases, that is, a single BioticEntity can be sorted by different life stages during its life. The BioticEntity plays the role ObjectUnderStudy that is specialized in a superimposed and incomplete form in ClassfiedObject and CollectedObject. Classification is stereotyped as a relator, that mediates the formal relation between the roles played by ClassifiedObject, Classifier and the powertype Specie. Axiom 2 means that if a ClassifiedObject is associated to a ranked taxonomic classification and Specie is also associated with the same classification, then the ClassifiedObject is instance of Specie. The category BioticEntity establishes a formal relation (instanceof) with powertype Specie, that is, the subclasses of BioticEntity will instantiate Specie. At first it may be said that every BioticEntity instanciates a single Specie. However, in some situations (peculiar to the domain under consideration), a BioticEntity can be classified in more than one way, that is, a BioticEntity can instantiate more than one Specie (typical problem of taxonomic classification, sometimes associated with the local or beliefs of who ranks), which leads to a reflexive formal relation (identityofspecie). Axiom 3 tells us that if a BioticEntity is (instanceof) two differently classified Specie, then the two Specie are equal. Axiom 4, in turn, shows us that if two SPECIES maintains a formal relation (identityofspecie), both are instance of the same BioticEntity. The powertype Specie establishes a formal relation (subtypeof) with powertype Genus, which establishes a formal relation (subtypeof) with powertype Family. These formal relations, semantically, represent the taxonomic hierarchy between family, genus and species in a classification system. Family, Genus and Specie specialize powertype the Taxon. The category BioticEntity establishes a formal relation (instanceof) with powertype Taxon, the subclasses of BioticEntity instantiate Taxon. Nine competence questions (CQ 4 to CQ 12 and their answers A 4 to A 12 ) were defined for sub-ontology Material Entity. SUB-ONTOLOGY ECOSYSTEM This sub-ontology conceptualizes the relations of the ecosystem within the scope of a collect protocol for biodiversity data. An ecosystem is a natural unit consisting of all plants, animals and micro-organisms (biotic factors) in an area functioning together with the entire physical non-living (abiotic) environment. The kind Ecosystem establishes whole-part relation (componentof) shareable with Sub-Ontology Material Entity through categories BioticEntity and AbioticEntity. Another option would be to model the whole-part relation (componentof) shareable directly with category MaterialEntity. Ecosystem establishes a formal relation (isclassifiedas) with powertype TypeEcosystem. Classes MacroEcosystem, MesoEcosystem and MicroEcosystem will instantiate the powertype TypeEcosystem. Another formal relation (containedat) is established with category SpatialLocation. Ecosystem establishes a self-relationship through a whole-part relation (componentof) shareable, since Ecosystem is not applied to a particular geographic area, ie it is associated with various dimensions (it explains the specialization MacroEcosystem, MesoEcosyatem and MicroEcosystem) and each Ecosystem 54

62 can be composed of several Ecosystem. In this context, we observe a whole-part relation (componentof) between MicroEcosystem and MesoEcosystem, in which a MesoEcosystem may be composed of two or more MicroEcosystem. Likewise there is the whole-part relation (componentof) between MesoEcosystem and MacroEcosystem. One Competence Question (CQ 13 and its answer A 13 ) was defined for sub-ontology Ecosystem. SUB-ONTOLOGY SPATIAL LOCATION Category SpatialLocation (as reported by a GPS system) is specialized in GeographicSpace and GeographicPoint (latitude, longitude and altitude). GeographicSpace may be associated with geographical coordinates of various locations, but also different GeographicSpace may be associated with a particular set of coordinates in different circumstances. Thus, the formal relation (spatialycontainedat) indicates that a GeographicSpace may contain spatially another GeographicSpace (adapted from (Guizzardi, 2005)). GeographicCoordinate is a datatype that provides an array of three elements which represent altitude, latitude and longitude. GeographicCoordinate maintains formal relations (localization) with categories SpatialLocation, GeographicSpace and GeographicPoint. GeographicSpace is specialized according to social-political, climatic and phytophysiognomic aspects. The categories ClimaticRegion and PhitophisiognomicRegion maintain a formal relation (isclassifiedas) associated with a powertype. These powertypes are instantiated by the specialization of subclasses ClimaticRegion and PhitophisiognomicRegion. GeographicSpace also plays the role CollectLocal. The kind Locality establishes a formal relation (spatialycontainedat) with the kind County, which in turn establishes a formal relation (spatialycontainedat) with kind State, which establishes a formal relation (spatialycontainedat) with the kind Country. These formal relation, semantically, represent the hierarchy and relationships between localities and the federal units recognized in the political and social context of a country. Locality is specialized according to the property and the type of locality. The kind Locality establishes a formal relation (isclassifiedas) with powertype TypeLocality, ie, instances of Locality will instantiate TypeLocality. Four competence questions (CQ 14 to CQ 17 and their answers A 14 to A 17 ) were defined for sub-ontology Spatial Locality. SUB-ONTOLOGY ENVIRONMENT Environment is everything that directly affects the metabolism or behavior of a living being or species, including light, climate, water, moon phases, soil or other living beings that cohabit with it. Environment was stereotyped as mode which can be described as an intrinsic individual moment. By definition (OntoUML), must be connected in combination with at least one relationship type characterization. Environment is specialized in modes MacroEnvironment and MicroEnvironment. Both MacroEnvironment and MicroEnvironment establish a formal relation (isclassifiedas) with powertypes TypeMacroEnvironment and TypeMicroEnvironment. Subclasses of MacroEnvironment and MicroEnvironment will instantiate and the powertypes TypeMacroEnvironment and TypeMicroEnvironment respectively. Environment maintains relations of characterization with modes of the type ClimaticCondition, Luminosity, MoonPhase and is specialized in MacroEnvironment and MicroEnvironment. Environment, MacroEnvironment and MicroEnvironment maintain relations of characterization with categories SpatialLocation, GeographicSpace and GeographicPoint respectively from Sub- Ontology Spatial 55

63 Location. Two competence questions (CQ 18 to CQ 19 and their answers A 18 to A 19 ) were defined for subontology Environment. 4. TOOLS FOR DEVELOPMENT To implement OntoBio, it was used Protégé ontology editor with implementation and modeling based on Ontology Web Language (OWL). We have extended the functionality of Protégé through two plugins: Racer Pro for consistency checking, and Jess, for inference support with SWRL (Semantic Web Rule Language) to deals with competence questions. For supporting the creation of conceptual models and domain ontologies in a philosophically and cognitively well-founded modeling language named was adopted OntoUML and its graphical editor (Benevides and Guizzardi, 2009). 5. CONCLUDING REMARKS A main difficulty in developing ontologies resides in the process of defining the set of knowledge that it must contains. The difficulty level grows with the task of developing generic ontology covering rich and complex domains and requiring investigation of a large number of services, documents and different understandings of the various communities of a domain. When dealing with ontology engineering process, various structures/stereotypes found in languages, at the level of analysis, cannot be mapped to a language at the implementation level. OntoBio was modeled using OntoUML as its formal language for ontology conceptual modeling, allowing us to capture complex aspects of biodiversity domain. Despite all resources available (methods and tools), ontology development is expert dependent. OntoBio has succeeded due to high expert capacity available at INPA willing to contribute to the project. Although several issues still need to be tackled, for example reusability and integration of ontologies and the associated differences in semantic expressiveness being one of them, OntoBio has contributed to a better knowledge organization and has been used in real-world situations at INPA, specifically in the biological collection program with bird and fish collections. REFERENCES Albuquerque, A.C.F. (2011) Desenvolvimento de uma Ontologia de Domínio para Modelagem de Biodiversidade. Dissertação de Mestrado, UFAM. Albuquerque,A.C.F. and Campos dos Santos,J.L. (2005) Ontology Supported by CLOSi Data Schemas in the Semantic Web Context. In Proceedings of ITEE 2005, Second International ICSC Symposium on Information Technologies in Environmental Engineering, By Walter Leal Filho, Jorge Marx Gomez, Claus Rautenstrauch (Editors). September 25-27, 2005 Otto-von-Guericke-Universität Magdeburg, Germany. ISBN Ashburner,M. et al (2000) Gene ontology: tool for the unification of biology. The gene ontology consortium. Nature Genetics, 25(1): Baker,P.G. et al (1998) TAMBIS Transparent Access to Multiple Bioinformatics Information Sources. In International Conference on Intelligent Systems for Molecular Biology, volume 6, pages 25 34, Montreal, Canada. Benevides,A.B. and Guizzardi,G. (2009) A Model-Based Tool for Conceptual Modeling and Domain Ontology Engineering in OntoUML,11th Intl. Conf. on Enterprise Information Systems (ICEIS), Milan, LNBIP. Berners-Lee,T. et al. (2001) The Semantic Web. Scientific American 284 (5): Campos dos Santos,J.L. (2003) A Biodiversity Information System in an Open Data/Metadatabase Architecture Ph. D. Thesis. International Institute For Geo-Information Science and Earth Observation. Enschede, The Netherlands. ISBN Falbo et al. (1998) A Systematic Approach for Building Ontologies. In Progress in Artificial Intelligence - IBERAMIA'98 (Proceedings of the 6th Ibero-American Conference on AI), Coelho, H. (Ed.): LNCS 1484 (Lecture Notes in Artificial Intelligence), pp , Springer-Verlag Berlin Heidelberg, Lisbon, Portugal. Guizzardi,G. (2005) Ontological Foundations for Structural Conceptual Models. PhD Thesis (CUM LAUDE), University of Twente, The Netherlands. Published as the same name book in Telematica Institut Fundamental Research. Series No. 15, ISBN ISSN ; No. 015; CTIT PhD-thesis, ISSN ; No Guizzardi,G. (2007). On Ontology, ontologies, Conceptualizations, Modeling Languages, and (Meta)Models. In Frontiers in Artifical Intelligence and Applications, Databases and Information Systems IV, ISBN , IOS Press, Amsterdam. 56

64 An Instance-based Learning Approach for Ontology Matching Pedro H. R. de Assis 1, Alberto H. F. Laender 2 1 Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro 2 Departamento de Ciência da Computação Universidade Federal de Minas Gerais Abstract. This paper proposes an instance-based learning approach for the ontology matching problem. This approach is applicable to scenarios where instances of the ontologies to be matched are exchanged between sources. An initial population of instances is used as a training set of a non-supervised algorithm that constructs mappings between properties of classes from the ontologies. To demonstrate the eectiveness of our approach, we carried out a set of experiments in which we varied the size of the training set for two dierent ontologies. Our results showed that our approach achieves low false positive rates for sucient large datasets, although it is totally dependent on the heterogeneity of the domains of properties. Categories and Subject Descriptors: H.Information Systems [ H.m. Miscellaneous]: Databases General Terms: Semantic Web, Languages Keywords: ontology matching, learning methods, semantic web 1. INTRODUCTION The paradigm for publishing data on the Web has been changed from publishing isolated data to publishing information that is linked to other resources and data [Bizer et al. 2009]. By doing this, we share knowledge by publishing and accessing documents as part of a global information space. This vision is called the Semantic Web, in which all data published has a structure and semantics are described by ontologies [Berners-Lee et al. 2001; Breitman et al. 2006]. One of the challenges of the Semantic Web is to nd semantic mappings among ontologies. By the de-centralized nature of the Semantic Web, there is a considerable number of ontologies that describe similar domains using dierent terminologies. The problem of nding a semantic correspondence between elements characterizes the problem of ontology matching [Euzenat and Shvaiko 2010]. In this paper, we present a learning approach that analyzes instances of two ontologies in order to perform the matching task. Our algorithm evaluates the creation of new instances based on an example dataset composed of instances of two given ontologies. This is done by establishing mappings that can be either temporary or denitive, based on similarity of classes properties and thresholds. As long as new instances are created, the algorithm converges to denitive mappings. In our experiments, we demonstrate the eectiveness of our approach by assessing the impact of varying the size of the learning set in two dierent ontology datasets. We show that for suciently large datasets the false positive rates are low and that our method is more eective for matching properties with distinct domains. The rest of the paper is organized as follows. Section 2 provides a brief characterization of the ontology matching problem. Section 3 describes our proposed approach and Section 4 our experimental results. Section 5 addresses related work. Finally, Section 6 presents our conclusions and gives some 57

65 directions for future work. 2. THE ONTOLOGY MATCHING PROBLEM Ontologies have been used in several areas of computer science [Breitman et al. 2006]. Considering the divergences among all areas that employ the concept of ontology, a wide range of denitions have been proposed. Even though all of those denitions have divergences, they share certain common concepts. In this paper, we used the denition provided in [Mcguinness and van Harmelen 2004]. It states that ontologies should provide descriptions for the following elements: classes (things) in the various domains of interest, relationships among classes and properties that classes contain. Two dierent ontologies may contain classes that share the same concept. Applications that require an alignment between those classes need strategies to perform the ontology matching. This is a wellknown problem in the literature [Bernstein et al. 2000; Lenzerini 2002; Kalfoglou and Schorlemmer 2003; Bouquet et al. 2004; Euzenat and Shvaiko 2010]. An ontology matching solution nds an alignment A for a pair of ontologies O 1 and O 2 that makes references between classes and properties of O 1 and O 2. Most of the time, an external agent must specify parameters such as metrics, thresholds and external resources that are required by the matching solution. Among all the types of ontology matching solution, an instance-based matching technique evaluates instances of both ontologies using a given metric to nd an alignment. In general, this kind of approach is a sub-category of string-based techniques which classies our algorithm. 3. PROPOSED APPROACH In this section, we present the algorithm that implements our instance-based learning approach for ontology matching. Without loss of generalization, we focus on two given classes from each ontology. As we shall see, our algorithm performs comparisons on instances for each pair of properties of these classes. Formally, let C 1 and C 2 be two classes from ontologies O 1 and O 2, respectively. Each class will be represented by its set of properties P = {p 1,, p n }. We assume that every instance of a given class has at least one value assigned to a property. We, then, dene an operator φ that takes a class C i and a property p j and returns a list of strings S ij associated to the pair (i, j) for every instance: φ : (C i, p j ) S ij. Furthermore, in order to determine how similar two lists of strings are, we need a function m to compare them. Therefore m has to be dened as: m : (S ij, S kl ) r ijkl r ijkl R +. Although m is key to the eectiveness and performance of our algorithm, we take it as an input dened by the user. Next, we dene a weighted complete bipartite graph G = (P 1 + P 2, E), where nodes represent properties of unmatched classes. The weight between two properties p i P 1 and p j P 2 is dened by: w(p i, p j ) = m(φ(c i, p i ), φ(c j, p j )) in other words, the weight between two properties p i and p j is the distance given by the metric m, between the set of strings associated to values of p i and p j in instances of classes C i and C j respectively. 58

66 Algorithm 1: Machine learning algorithm for ontology matching Input: Source and target ontologies O 1 and O 2 with sets of instances S 1 and S 2 associated to properties P 1 = {p 11,, p 1n } and P 2 = {p 21,, p 2m }, respectively. A metric m and a threshold θ. Output: A set of mappings between properties of classes of ontologies O 1 and O 2. 1 M, the set of denitive matching 2 T, the set of temporary matching 3 foreach s S 2 do 4 build a complete bipartite graph G = (P 1 + P 2, E) 5 compute weights w(p i, p j ) m(φ(c i, p i ), φ({s}, p j )), for all p i, p j G 6 while G is not empty do 7 take the edge (p i, p j ) of highest weight w 8 if w θ then 9 M[p i ] p j 10 P 1 P 1 {p i } 11 P 2 P 2 {p j } 12 remove T [p i ] if it exists 13 else 14 T [p i ] p j 15 end 16 remove the nodes p i and p j from G 17 end 18 insert s in S 1 according to the maps M and T. 19 end 20 return M T The cost of building the graph G for every (p i, p j ) as stated above is high, since the φ function takes all the instances available for both ontologies. For this reason, we adopt a learning approach to reduce costs and provide a good match, since we apply a condition for which very high matching thresholds can be chosen. The idea behind our approach is to sequentially insert an instance from the target ontology into the source ontology. By doing that, the computation of w is reduced and, if this value is higher than a given threshold, the matching between two properties can be established and no longer computed again. The algorithm then performs, for each instance of the target ontology, the computation of w(p i, p j ), p i P 1, p j P 2. The list of all weights is sorted and then the largest value is taken. An edge (p i, p j ) represents a mapping (not necessarily denitive), and p i and p j can be removed from the graph. This procedure continues until the last two nodes of the graph remain. If one of those chosen weights are higher than a given threshold, the respective properties will not be part of future comparison graphs. As long as new instances of O 2 are inserted into O 1, respecting temporary mappings, there is a contribution to the increase of the value of w(p i, p j ) for the ideal mapping (p i, p j ). This continuously tends to increase this weight to a value higher than a given threshold and then converges to a denitive mapping. The complete technique is formalized in Algorithm 1. As an example, let O 1 be an ontology with a class C 1 conceptualizing person. Let the properties of this class be {p 11 = name, p 12 = age, p 13 = city}. Now, let O 2 be a target ontology with another class C 2 also conceptualizing person but with the following properties: {p 21 = full_name, p 22 = native_language, p 23 = registered_age, p 24 = origin_city}. Let S 1 and S 2, be sets of instances for the ontologies O 1 and O 2 as follows: 59

67 Table I. Similarity according to m for instances of S 1 and the rst instance of S 2 w(p i, p j ) full_name native_language registered_age origin_city name age city S 1 (name, age, city) = {(Peter Lane, 23, Rio de Janeiro), (Brian Jones, 30, New York), (Mark Mills, 18, San Francisco)}; S 2 (full_name, native_language, registered_age, origin_city) = {(Barbara Webber, english, 19, London), (Laurent Patel, french, 33, Paris)}. For those sets, we have to apply the operator φ for each class in O 1 : φ(c 1, name) = {Peter Lane, Brian Jones, Mark Mills} φ(c 1, age) = {23, 30, 18} φ(c 1, city) = {Rio de Janeiro, New York, San Francisco} The complete bipartite graph for the matching of the classes C 1 and C 2 as stated in line 4 of Algorithm 1 is depicted in Fig 1. Fig. 1. The complete bipartite graph G = (E 1 + E 2, V ) of properties of classes C 1 and C 2 Considering O 2 as the target ontology, the rst iteration of the algorithm takes the rst instance (Barbara Webber, english, 19, London) and calculates all values of w(p i, p j ) in line 5 of the Algorithm 1. For example, the calculation of w(name, full_name) for the rst instance of S 2 is: w(name, full_name) = m({p eter Lane, Brian Jones, Mark Mills}, {Barbara W ebber}) Suppose that, for a given metric m [0, 1], we have the weight values in Table I. The edge with the highest weight in the graph G is (age, registered_age) with value If we set a threshold θ = 0.90, we can establish a denitive mapping between the properties age and registered_age. The edge with the second highest weight in the graph is (city, origin_city) with a value of This value is not higher than the θ, so the algorithm does not establish a denitive mapping, although it will map city to origin_city and will insert this instance of S 2 into S 1 according to this mapping. The learning algorithm lies on the idea that as long as new instances of S 2 with property origin_city are mapped to city in S 1, the value of w(city, origin_city) tends to increase to a value higher than θ, establishing a denitive mapping between these two properties. If a mapping is set between two properties (p i, p j ), neither p i nor p j is evaluated again in the current algorithm iteration, regardless of the kind of the mapping. The iterations of the algorithm continues to process until at least all the properties are fully mapped. Then the instance of S 2 is inserted into S 1 according to the mappings. 60

68 The algorithm ends when either denitive mappings are set to all the classes of at least one ontology or all the instances of the target class is processed. 4. EXPERIMENTS In our experiments, we evaluated the eectiveness of our method. We built four ontologies: two of them conceptualizing books and the other ones conceptualizing movies. A total of 785 instances were extracted from Google Books 1 and over 10, 000 instances about movies were extracted from IMDB database 2. For the book ontology, we dened only one class with the following properties: { Title, Year, Country, Language, Director}. Analogously, the movie ontology received just one class with the following properties: {Title, Authors, Pages, Year}. Some of the instances may not have dened values for some properties, but at least one property has an associated value. Although we could have used existing ontologies for these experiments (e.g., The Bibliographic Ontology 3 and The Movie Ontology 4 ), we dened our own ontologies to t our datasets in order to perform faster experiments to fairly evaluate the eectiveness of our algorithm. We also created a general purpose ontology with only one class and general properties {p 1, p 2, p 3, p 4 } to play the role of the target ontology in the matching process. Part of the instances were randomly inserted in this general purpose ontology so that we could run our algorithm and analyze its results. We also explored the impact of the number of initial instances in the source ontology. For all the experiments, we used the cosine distance as our similarity metric. The metric was dened with n dimensions where n is the number of dierent characters (case insensitive) presented in the operands. The diversity of the values in the instances can be veried in Table II. The rst column in both tables indicate the number of instances in the source ontology. The values for the remaining columns show the similarity of a group of randomly chosen instances and the source ontology instances. The rst line of Table II (left), for example, indicates the distance mean value of 100 instances to a set of randomly chosen instances. As we can notice, in general, the similarity is proportional to the number of instances in the source ontology. # Title Year Pages Authors # Title Year Country Language Director 1, , , , , , , , , , Table II. Threshold impact on the number of instances in the book ontology (left) and movies ontology (right)

69 4.1 The book ontology In this set of experiments we randomly chose groups of 100 instances to insert on the general target ontology with a class with properties {p 1, p 2, p 3, p 4 }. The correct mapping is Title p 1, Year p 2, Pages p 3 e Authors p 4. Table III shows the average rate of correct matchings achieved by the algorithm for four sets of 100 random instances presented in the target ontology. The number of instances in the source ontology varies according to the rst column of Table III. The values for Title and Authors are symmetric, since their domains contain a high frequency of letters. Analogously, Year and Pages have the same domain (natural numbers). By this symmetry, if a mapping is incorrect, its corresponding property of same domain misses a mapping as well. The results expose a limitation in our method. The domain of class properties of ontologies is crucial to the eectiveness of the method. To be more eective, the domains must be as disparate as possible. Otherwise, a false denitive mapping may occur early in the learning process implying a high miss rate. # Title Year Pages Authors % 82.4% 82.4% 92.4% % 98.6% 98.6% 93% % 98% 98% 90.2% % 97.8% 97.8% 90% Table III. Correct mapping rate for dierent numbers of instances in the source book ontology Table IV shows denitive mappings occurred for each of the ve groups of 100 instances for each property. A line on the table, for example, in the property Title containing (p 1, 15), implies that after processing the 15 th instance of the target ontology, a denitive mapping between Title and p 1 was established. After this denition, neither Title nor p 1 was inserted into the graph G by the Algorithm 1. The results presented in Table IV are inuenced by the randomly chosen instances and the number of instances in the source ontology. # Title Year Pages Author 1 (p 1, 15) / (p 1, 15) (x, x) / (x, x) (p 3, 98) / (p 3, 98) (p 4, 3) / (p 4, 4) 2 (x, x) / (x, x) (x, x) / (x, x) (x, x) / (x, x) (x, x) / (x, x) 3 (p 1, 55) / (p 1, 55) (p 2, 8) / (p 2, 8) (p 3, 44) / (x, x) (p 4, 55) / (x, x) 4 (p 1, 99) / (p 1, 99) (x, x) / (x, x) (x, x) / (x, x) (x, x) / (x, x) 5 (x, x) / (x, x) (p 2, 9) / (p 2, 9) (p 3, 45) / (x,x) (x, x) / (x,x) Table IV. Denitive mappings (p i, n i ) / (p j, n j ) for 300 and 400 instances, respectively. (p, n) indicates that the property p was permanently aligned after analyzing the n-th instance. (x, x) indicates that no denitive alignment occurred. 4.2 The movie ontology The following set of experiments are the same applied for the book ontology. In this case, we used the movie ontology described at the beginning of this section. Here, the general target ontology has ve properties, {p 1, p 2, p 3, p 4, p 5 }, that must be mapped as: Title p 1, Year p 2, Country p 3, Language p 4 e Director p 5. Table V shows the average rate of correct mappings achieved by the algorithm for all ve sets of 1, 000 random instances presented in the target ontology. Due to the small dimension of the domains and the small number of dierent instances, the properties Year, Country and Language were easily 62

70 matched. On the other hand, the properties Title and Director, that are more diverse, shared misses symmetrically. These results reinforce the importance of heterogeneity of domains in the eectiveness of our method. # Title Year Country Language Director 1, % 100% 100% 100% 54.27% 2, % 100% 100% 100% 46.77% 3, % 100% 99.5% 100% 75.92% 4, % 100% 99.6% 100% 73.94% 5, % 100% 100% 100% 74.06% Table V. Correct mapping rate for dierent numbers of instances in the source movie ontology Table VI shows denitive mappings for each of the ve groups of 1, 000 instances for every property. The results, again, are inuenced by the randomly chosen instances and the number of instances in the source ontology. For movie instances, we can notice the impact on the domains of Title and Director in a small number of instances in the source ontology. Incorrect denitive mappings were calculated aecting negatively more than half of the matchings. Although these domains are similar, a big number of instances in the source ontology provided better results. # Title Year Country Language Director 1 (x, x) / (x, x) (p 2, 36) / (p 2, 36) (p 3, 389) / (p 3, 29) (p 4, 3) / (p 4, 4) (x, x) / (x, x) 2 (p 5, 848) / (p 1, 848) (p 2, 79) / (p 2, 79) (p 3, 4) / (p 3, 4) (p 4, 4) / (p 4, 4) (p 1, 848) / (p 5, 848) 3 (x, x) / (x, x) (p 2, 60) / (p 2, 334) (p 3, 3) / (p 3, 3) (p 4, 4) / (p 4, 3) (x, x) / (x, x) 4 (p 1, 140) / (p 1, 140) (x, x) / (x, x) (p 3, 56) / (p 3, 63) (p 4, 4) / (p 4, 4) (x, x) / (x, x) 5 (p 1, 803) / (p 1, 803) (p 2, 2) / (p 2, 2) (p 3, 5) / (p 3, 7) (p 4, 4) / (p 4, 4) (p 5, 803) / (p 5, 803) Table VI. Denitive mappings (p i, n i ) / (p j, n j ) for 4, 000 and 5, 000 instances, respectively. (p, n) indicates that the property p was permanently aligned after analyzing the n-th instance. (x, x) indicates that no denitive alignment occurred. 5. RELATED WORK In this section, we briey address related work that proposes strategies for ontology matching. For instance, [Euzenat and Shvaiko 2010] provide a good survey on the ontology matching problem. [Doan et al. 2004] applied a machine learning approach for several groups of information. They used a multi-strategy learning approach that might present high costs but achieved good results. [Parundekar et al. 2010] explored the space of hypothesis supported by the existing equivalence statements to create equivalence and subsumption relationships between classes of two dierent ontologies. Although interesting results were found, if there is a lack of logical statements dened in the ontologies, this method may not be ecient. The approach presented by [Jain et al. 2011] was based on a combination of the use of external resources and a proposed metric that exploit contextual information of the ontologies. Their method presented good matching results. However, the cost of using external resources in comparisons with the ontology sub-classes structures may invalidate its use in certain applications. The use of external resources to improve semantic analysis is also proposed by [Bouquet et al. 2003]. The matching of concept hierarchies is done in two steps: the building of semantic hierarchy models of concepts and the comparison problem which is encoded in a satisfatibility problem. Although the complexity and usage of resources are high, the main advantage of this method is that it performs fairly well when less data is available. 63

71 In general, the main contribution of our approach in comparison to state-of-the-art methods is that we can easily adapt the alignment if a new instance of the target ontology is produced. 6. CONCLUSION In this paper we proposed an instance-based learning approach for the problem of ontology matching. Our algorithm takes as input two classes of ontologies, a metric and a threshold and outputs an alignment for the classes. For assessing the eectiveness of our approach, we conduct a set of experiments to evaluate the inuence of the number of instances in the source ontology and the inuence of heterogeneity of domains. Our results showed that the algorithm proposed is intrinsically dependent on these aspects. As we can see from our results, the combination of a small number of instances in the source ontology and properties with similar domains can lead to erroneous denitive mappings compromising the complete matching process. On the other hand, if a combination of a sucient number of instances is provided, the algorithm presents high rates of correct mappings. As future work, we want to explore language-based methods to improve our results but maintaining its feasibility for general purpose applications. Using extrinsic methods such as the use of dictionaries, lexicons and terminologies we can vary the results of w(p i, p j ) enough to provide an extra semantic analysis over the simple use of a single string-based metric. We also want to integrates metadata analysis facilities such as data type property denitions, labels and domain constraints in order to improve the matching process. Also, we want to study how combining metrics can improve our results, especially, how a set of mappings for each metric can be managed to show better results. REFERENCES Berners-Lee, T., Hendler, J., and Lassila, O. The Semantic Web. Scientic American 284 (5): 3443, May, Bernstein, P. A., Halevy, A. Y., and Pottinger, R. A. A vision for management of complex models. SIGMOD Rec. 29 (4): 5563, Dec., Bizer, C., Heath, T., and Berners-Lee, T. Linked Data - The Story So Far. International Journal on Semantic Web and Information Systems 5 (3): 122, Bouquet, P., Ehrig, M., Euzenat, J., Franconi, E., Hitzler, P., Krötzsch, M., Serafini, L., Stamou, G., S ure, Y., and Tessaris, S. Specication of a common framework for characterizing alignment. Knowledge Web Deliverable 2.2.1v2, University of Karlsruhe. Dec., Bouquet, P., Serafini, L., and Zanobini, S. Semantic coordination: A new approach and an application. pp , Breitman, K., Casanova, and Ruszkowski, W. Semantic Web: Concepts, Technologies and Applications. Springer, Doan, A., Madhavan, J., Domingos, P., and Halevy, A. Y. Ontology matching: A machine learning approach. In Handbook on Ontologies. pp , Euzenat, J. and Shvaiko, P. Ontology Matching. Springer Publishing Company, Incorporated, Jain, P., Yeh, P. Z., Verma, K., Vasquez, R. G., Damova, M., Hitzler, P., and Sheth, A. P. Contextual ontology alignment of lod with an upper ontology: a case study with proton. In Proceedings of the 8th Extended Semantic Web Conference. ESWC'11. Springer-Verlag, Berlin, Heidelberg, pp. 8092, Kalfoglou, Y. and Schorlemmer, M. Ontology mapping: the state of the art. Knowl. Eng. Rev. 18 (1): 131, Jan., Lenzerini, M. Data integration: a theoretical perspective. In Proceedings of the Twenty-First ACM SIGMOD- SIGACT-SIGART Symposium on Principles of Database Systems. ACM, New York, NY, USA, pp , Mcguinness, D. L. and van Harmelen, F. OWL Web Ontology Language Overview. W3C Recommendation, Parundekar, R., Knoblock, C. A., and Ambite, J. L. Linking and building ontologies of linked data. In Proceedings of the 9th International Semantic Web Conference. ISWC'10. Springer-Verlag, Berlin, Heidelberg, pp ,

72 Uso de Inferência na Compreensão das Modificações em Documentos Semiestruturados Alessandreia Marta de Oliveira 1, 2, Leonardo Murta 1, Vanessa Braganholo 1 1 Universidade Federal Fluminense 2 Universidade Federal de Juiz de Fora {alessandreia, leomurta, Abstract. Applications nowadays are increasingly using XML to represent semistructured data and, consequently, a large amount of XML documents is available worldwide. As semistructured data evolve over time, due to, for example, some changes of technical nature, change control over XML documents becomes fundamental. Existing research on XML change control focuses on discovering syntactic changes. However, there are several applications where this syntactic information is not enough, ie, situations where it is necessary to detect the elements or attributes that have changed and it is also necessary to infer the changes reason. To solve this problem, this paper presents an inference-based XML evolution approach using Prolog that is able to detect semantic changes between two versions of an XML document. We also present an example considering an employee management system to illustrate the approach, showing the possibility of inferring the user's intent when creating the second version of a document. Resumo. As aplicações se apoiam cada vez mais na linguagem XML para representar dados semiestruturados e, consequentemente, uma grande quantidade de documentos XML é gerada. Um problema relacionado é que os dados semiestruturados evoluem ao longo do tempo, em função, por exemplo, de modificações de cunho técnico. Desta forma, a gerência das modificações em documentos XML é uma necessidade cada vez mais crescente. Abordagens existentes relacionadas ao controle de mudanças de documentos XML têm seu foco em mudanças sintáticas. No entanto, existem diversas aplicações onde essa informação sintática não é suficiente, ou seja, situações onde não basta detectar os elementos ou atributos que mudaram, mas também é necessário inferir a razão das modificações. Diante disso, este artigo apresenta uma abordagem para a compreensão da evolução de documentos XML baseada em inferência, utilizando a linguagem Prolog, que é capaz de detectar mudanças semânticas entre duas versões de um documento XML. Um cenário considerando um sistema de informações de funcionários exemplifica a proposta e mostra a possibilidade de inferir a intenção do usuário ao criar a segunda versão de um documento. Categories and Subject Descriptors: H. Information Systems [H.2. Database Management]: Textual Databases Palavras Chave: Controle de modificações, inferência, Prolog, XML 1. INTRODUÇÃO O volume e a diversidade de informações que circulam atualmente pela Web têm crescido muito. Muitas dessas informações encontram-se organizadas em documentos XML [Bray et al. 2008] e provêm de várias fontes. Um problema relacionado é que tais documentos evoluem ao longo do tempo, em função, por exemplo, de modificações de cunho técnico. Além disto, os usuários podem não se interessar somente pelos valores atuais dos documentos, mas também pelo monitoramento e controle das modificações entre as suas versões. O usuário pode querer monitorar modificações ou precisar de informações de versões antigas de um documento. Por exemplo, num cenário onde um documento XML representa o cadastro de funcionários de uma empresa, o usuário pode querer verificar quando determinados funcionários foram contratados ou demitidos, ou então verificar o cargo de um funcionário num dado momento no passado. Desta forma, percebe-se que o controle das modificações em documentos semiestruturados, em especial documentos XML, é uma necessidade cada vez mais crescente. Na literatura, estes problemas vêm sendo estudados já há algum tempo [Cobena et al. 2002; Wang et al. 2003; Zhao et al. 2004]. No 65

73 entanto, o foco destas abordagens está relacionado somente às modificações sintáticas nos documentos, ou seja, estes algoritmos realizam comparações entre os documentos baseadas nas suas estruturas, sem considerar a semântica associada. Sendo assim, no cenário do exemplo de cadastro de funcionários, essas abordagens conseguem detectar que o valor do salário de um funcionário mudou, mas somente com essa informação não é possível saber se ele teve um aumento anual ou se foi promovido, por exemplo. Diante disso, este artigo apresenta uma abordagem que visa apoiar a compreensão da evolução de documentos XML. Essa proposta faz uso de um mecanismo de inferência, baseado na linguagem Prolog, para prover semântica na comparação entre duas versões de um documento XML. O contexto esperado de aplicação da abordagem proposta não assume o uso de rótulos temporais, como proposto em Chien et al. [2001] e Rizzolo e Vaisman [2008], por exemplo. Desta forma, esta proposta atua em cenários mais críticos, onde são considerados como entrada somente duas versões de um documento XML, sem nenhum tipo de metadado relacionando essas versões. A abordagem consiste na compreensão das modificações entre versões de um documento XML, que são transformadas em fatos Prolog e que, a partir de um conjunto de regras de inferência, possibilita deduzir a intenção do usuário ao criar a segunda versão. Em suma, o propósito desse trabalho é viabilizar a identificação da razão real das modificações em documentos XML, tomando como base a análise das modificações sintáticas granulares em atributos e elementos. O restante do artigo está organizado em outras cinco seções. A Seção 2 apresenta um exemplo motivacional para fundamentar a abordagem proposta na Seção 3. A Seção 4 apresenta um exemplo de utilização e a Seção 5 descreve alguns trabalhos relacionados. Para finalizar, a Seção 6 conclui o artigo e descreve algumas propostas de trabalhos futuros. 2. EXEMPLO MOTIVACIONAL Esta seção apresenta o exemplo utilizado ao longo do artigo com o objetivo de ilustrar a abordagem proposta. Suponha um sistema que gerencia o cadastro de funcionários de uma empresa, lidando com informações tais como CPF, nome, salário, cargo, departamento ao qual está vinculado e filial onde está alocado. Essas informações foram descritas em um documento XML, versão 1 (v1), onde foram definidos alguns funcionários, como, por exemplo, João, que é analista de sistemas da empresa (Figura 1.a). Suponha ainda que, posteriormente, João teve seu salário e cargo alterados e o funcionário Pedro mudou de filial, como mostra o trecho em destaque na Figura 1.b. Tais modificações textuais são facilmente identificadas após uma análise das duas versões deste fragmento de documento XML. No caso de uma empresa com um número de funcionários considerável, esta tarefa já não seria trivial. Para tanto, existem algoritmos genéricos para detectar as modificações em arquivos texto, sem suporte para a sintaxe específica do arquivo, como, por exemplo, diff3 [MacKenzie et al. 2011]. O problema é que eles não consideram o formato específico dos arquivos XML, tratando-os como arquivos comuns de texto. Desta forma, caso uma modificação ocorra, por exemplo, na ordem de dois atributos, tais algoritmos acusariam que as duas versões do documento são diferentes. No entanto, em se tratando do modelo XML, a ordem dos atributos é irrelevante. Para controlar versões de documentos XML, é necessária uma forma de detectar exatamente quais são as diferenças entre duas versões do documento, ou seja, o que foi modificado de uma versão para a outra em termos das estruturas que compõem um documento XML (elementos e atributos). Existem alguns algoritmos dedicados à detecção de diferenças em documentos XML, tais como X-Diff [Wang et al. 2003] e XyDiff [Cobena et al. 2002]. No entanto, apesar destes algoritmos levarem em consideração a estrutura do documento, sendo assim mais adequados que os algoritmos genéricos, eles se prendem somente à sintaxe do documento XML, não possibilitando a identificação da semântica das modificações (i.e., razão por trás das ações de adição, remoção e alteração dos elementos e atributos do documento). Existem diversas aplicações onde essa informação sintática não é suficiente, ou seja, situações onde não 66

74 basta detectar os elementos ou atributos que mudaram, mas também é necessário inferir a razão das modificações. Neste caso, por exemplo, após uma análise do novo cenário (v2), é importante perceber que João recebeu um aumento de salário e, além disso, mudou de cargo, o que significa que ele foi promovido. Em outras palavras, um conjunto de modificações na estrutura do documento pode corresponder a uma modificação semântica, que deveria ser automaticamente identificada. Documento XML versão 1 <?xml version="1.0" encoding="utf-8"?> <empresa> <funcionario> <cpf> </cpf> <nome>joao</nome> <salario>1600</salario> <cargo>analista de Sistemas</cargo> <depto>tecnologia da Informacao</depto> <filial>juiz de Fora</filial> </funcionario> <funcionario> <cpf> </cpf> <nome>pedro</nome> <salario>1900</salario> <cargo>suporte Help Desk</cargo> <depto>tecnologia da Informacao</depto> <filial>juiz de Fora</filial> </funcionario>... </empresa> Documento XML versão 2 <?xml version="1.0" encoding="utf-8"?> <empresa> <funcionario> <cpf> </cpf> <nome>joao</nome> <salario>2500</salario> <cargo>analista de Sistemas Pleno</cargo> <depto>tecnologia da Informacao</depto> <filial>juiz de Fora</filial> </funcionario> <funcionario> <cpf> </cpf> <nome>pedro</nome> <salario>1900</salario> <cargo>suporte Help Desk</cargo> <depto>tecnologia da Informacao</depto> <filial>sao Paulo</filial> </funcionario>... </empresa> (a) versão 1 (b) versão 2 Figura 1: Fragmento de duas versões de um documento XML Em suma, em documentos XML grandes, que passaram por muitas modificações entre suas versões, pode haver uma redução significativa no número de modificações a serem apresentadas ao usuário ao migrar de modificações sintáticas para modificações semânticas. No exemplo desta seção, duas modificações sintáticas (aumento de salário e mudança de cargo) puderam ser sumarizadas em uma modificação semântica (promoção). Contudo, essa relação pode ser ainda maior, permitindo que centenas de modificações sintáticas sejam transformadas em dezenas de modificações semânticas. Essa característica tem potencial para contribuir com a facilidade de análise e compreensão sobre a evolução de documentos XML. 3. ABORDAGEM PROPOSTA A abordagem proposta neste trabalho processa os dados contidos em duas versões de um documento XML com o objetivo de compreender a razão das modificações, possibilitando a obtenção de conhecimento semântico a partir de informações explícitas nas versões do documento ou deduzidas automaticamente através de regras (informações implícitas). A Figura 2 apresenta a abordagem proposta, onde a entrada é composta por duas versões de um documento XML, que são pré-processadas (convertidas para fatos Prolog). Estes fatos são usados como entrada na máquina de inferência que, a partir das regras manuais (definidas a critério de um usuário especialista do domínio), resultam na razão das modificações do documento, retratando a sua evolução. Desta forma, a identificação da razão ou semântica de uma modificação é a principal contribuição deste trabalho. 67

75 Figura 2: Abordagem proposta Para viabilizar a realização das inferências é necessário traduzir os dados contidos no documento XML para uma linguagem que forneça esta capacidade, tal como Datalog [Huang et al. 2011], RuleML [Boley 2003] ou Prolog [Bratko 2001]. Datalog é uma linguagem de consulta não procedural baseada em Prolog que surgiu da combinação de programação em lógica com bancos de dados. O fato de Datalog não permitir termos complexos como argumento do predicado e possuir restrições no uso de negação e recursividade, tornou-a incompatível com a abordagem proposta. A linguagem RuleML é o resultado de um esforço para fornecer um padrão de definição de regras na Web e descreve tanto as informações como os seus relacionamentos, tornando possível a realização de inferência. O fato de a RuleML ser uma linguagem de marcação voltada para representar regras de inferência com foco na Web e suas implementações atuais utilizarem uma máquina Datalog como mecanismo de inferência, foram motivos para que seu uso fosse descartado nesta proposta. Consequentemente optou-se por Prolog para estabelecer relações a partir de documentos XML. De fato, a linguagem Prolog já foi utilizada com sucesso para realizar consultas com inferência a documentos XML [Lima et al. 2012]. Assim, o pré-processamento dos documentos XML de entrada (tradução) é efetuado pelo método proposto por Lima et al [2012], onde o processo de tradução gera vários fatos Prolog a partir de um documento XML, transformando os elementos em predicados e seus conteúdos em constantes. Uma adaptação deste método, utilizado apenas na fase de pré-processamento, foi proposta para gerar um único conjunto de fatos baseado em informações de duas versões de um documento XML, com uma identificação da raiz do documento XML associada à versão (v1 ou v2, por exemplo). Desta forma, é possível comparar as informações dos arquivos XML utilizando para tanto este único conjunto de fatos. Por exemplo, as duas versões do documento XML apresentadas na Seção 2, após serem convertidas para Prolog, geram os fatos apresentados na Figura 3. Para relacionar predicados distintos, um identificador (uma constante Prolog) é acrescentado como parâmetro, caracterizando que há correspondência entre esses dados no documento XML. Como exemplo, pode-se mencionar a relação de pai/filho existente entre a empresa (empresa (id1)) e um de seus funcionários (funcionário (id1, id2)) destacada na Figura 3.a. Analisando a definição dos predicados, um especialista (com conhecimento no domínio e em Prolog) pode criar regras manuais que permitam inferir informações relevantes. Um exemplo de regra manual é apresentado na Figura 4.a, onde pode ser verificado, no mesmo contexto do exemplo motivacional da Seção 2, se um determinado funcionário recebeu aumento. Isso é considerado verdade quando o conteúdo do elemento salário da versão 1 do documento XML é menor do que na versão 2 e a pessoa se manteve no mesmo cargo. Se o funcionário, além de ter recebido um aumento de salário, também mudou de cargo, isto implica em uma promoção (Figura 4.b). Para facilitar a escrita das regras manuais foram criadas algumas regras adicionais que garantem, por exemplo, que ao verificar se um funcionário recebeu aumento, a comparação seja feita realmente entre o mesmo funcionário nas duas versões do documento XML, usando para isso o atributo chave (cpf). A Figura 5 mostra a regra mesmo_func, que identifica os funcionários unicamente em v1 e v2. 68

76 Documento XML versão 1 convertido em fatos empresa(id1). funcionario(id1, id2). cpf(id2, ' '). nome(id2, 'joao'). salario(id2, 1600). cargo(id2, 'analista de sistemas'). depto(id2, 'tecnologia da informacao'). filial(id2, 'juiz de fora'). funcionario(id1, id3). cpf(id3, ' '). nome(id3, 'pedro'). salario(id3, 1900). cargo(id3, 'suporte help desk'). depto(id3, 'tecnologia da informacao'). filial(id3, 'juiz de fora').... Documento XML versão 2 convertido em fatos empresa(id8). funcionario(id8, id9). cpf(id9, ' '). nome(id9, 'joao'). salario(id9, 2500). cargo(id9, 'analista de sistemas pleno'). depto(id9, 'tecnologia da informacao'). filial(id9, 'juiz de fora'). funcionario(id8, id10). cpf(id10, ' '). nome(id10, 'pedro'). salario(id10, 1900). cargo(id10, 'suporte help desk'). depto(id10, 'tecnologia da informacao'). filial(id10, 'sao paulo').... (a) v1 fatos recebeu_aumento(nome) :- mesmo_func(fb,fm), salario(fb,sb),salario(fm,sm),sb<sm, cargo(fb,c),cargo(fm,c), nome(fm,nome). (a) Regra recebeu_aumento (b) v2 fatos Figura 3: Fragmentos convertidos em fatos Figura 4: Definição de regras manuais mesmo_func(fb,fm):- funcionario(v1,fb),funcionario(v2,fm), cpf(fb,cpf),cpf(fm,cpf). Figura 5: Definição da regra mesmo_func foi_promovido(nome) :- mesmo_func(fb,fm), salario(fb,sb),salario(fm,sm),sb<sm, cargo(fb,cb),cargo(fm,cm),cb\==cm, nome(fb,nome). (b) Regra foi_promovido Após o pré-processamento, a máquina de inferência atua sobre os fatos, considerando as regras manuais relativas ao domínio da aplicação. Com a aplicação do conjunto de regras, pode-se obter a razão da evolução do documento XML de v1 para v2. O ambiente proposto neste trabalho é genérico e pode ser utilizado em outros contextos, especificando-se apenas as regras manuais de acordo com o domínio. 4. EXEMPLO DE UTILIZAÇÃO Para avaliar a viabilidade da proposta, implementou-se um protótipo em Java para criar um ambiente conciso, onde o usuário pode acompanhar o processo participando das etapas descritas anteriormente. A biblioteca tuprolog [Denti et al. 2001], que possibilita o uso da máquina de inferência Prolog em uma aplicação desenvolvida em Java, também foi usada. Um subconjunto de instruções da máquina Prolog contendo as suas propriedades essenciais é fornecido pela biblioteca e proporciona um ambiente capaz de carregar bases de conhecimento, processar consultas Prolog e fornecer as respostas desejadas. Dando continuidade ao passo a passo descrito na Seção 3 e analisando novamente as duas versões do documento XML, cujos fragmentos são apresentados na Figura 1, é possível visualizar as modificações que foram efetuadas 1. As características alteradas sobre os funcionários da empresa são mostradas na Tabela 1. Um delta 2 pode ser gerado para identificar essas modificações, mas isso não significa que será possível saber a razão delas. 1 As versões completas do documento XML podem ser encontradas em 2 O termo delta (diferença) representa o que mudou entre duas versões consecutivas (LEON, 2000). 69

77 Tabela 1: Modificações no documento XML Funcionário Modificações (v1 para v2) João Salario e cargo Pedro Filial José Cargo Maria Departamento Ana Salario Tiago Salario, cargo e filial Lucas Admitido Joaquim, Jonas Demitido Com a máquina de inferência trabalhando com as regras manuais é possível verificar que, por exemplo, Tiago foi promovido e transferido, pois teve seu salário, cargo e filial alterados, e que João foi promovido, pois somente seu cargo e salário foram alterados. Ou seja, a versão 2 apresenta a evolução da empresa a partir da versão 1. A razão das modificações ocorridas em um documento XML pode ser obtida a partir da composição das regras manuais individuais. Desta forma, todas as modificações semânticas entre duas versões de um documento XML podem ser identificadas. Um exemplo disso é apresentado na Figura 6. Nesse caso foram consideradas informações inferidas para todos os funcionários que: receberam aumento, foram promovidos, mudaram de função, foram transferidos, mudaram de departamento e foram promovidos e transferidos. O resultado da consulta à regra descrita na Figura 6 pode ser visualizado na Figura 7. razao_mudancas :- findall(n1,recebeu_aumento(n1),n1lista),write('receberam aumento: '),write(n1lista), nl, findall(n2,foi_promovido(n2),n2lista),write('foram promovidos: '),write(n2lista), nl, findall(n3,nova_funcao(n3),n3lista),write('mudaram de funcao: '),write(n3lista), nl, findall(n4,foi_transferido(n4),n4lista),write('foram transferidos: '), write(n4lista),nl, findall(n5,novo_depto(n5),n5lista),write('mudaram de departamento: '),write(n5lista), nl, findall(n6,foi_promovido_e_transferido(n6),n6lista),write('foram Promovidos e Transferidos:'), write(n6lista), nl, findall(n7,foi_demitido(n7),n7lista),write('foram demitidos: '),write(n7lista), nl, findall(n7,foi_admitido(n8),n8lista),write('foram admitidos: '),write(n8lista), nl. Figura 6: Regra de evolução do documento XML Receberam aumento: [Ana] Foram promovidos: [Joao, Tiago, Paula] Mudaram de funcao: [Jose] Foram transferidos: [Pedro, Tiago] Mudaram de departamento: [Maria] Foram Promovidos e Transferidos: [Tiago] Foram demitidos: [Joaquim, Jonas] Foram admitidos: [Lucas] Figura 7: Resultado obtido a partir da regra de evolução 5. TRABALHOS RELACIONADOS Existem algumas iniciativas relacionadas à proposta deste artigo, que foram identificadas a partir de um mapeamento sistemático da literatura. O mapeamento sistemático da literatura é um meio de descobrir, avaliar e interpretar as pesquisas disponíveis e relevantes sobre uma questão de pesquisa, um tópico ou um fenômeno de interesse [Kitchenham 2004]. O procedimento de seleção dos artigos foi realizado em três etapas. Na primeira etapa do mapeamento sistemático foi realizada uma seleção e catalogação preliminar de artigos a partir da busca nas bibliotecas Compendex, IEEE Xplore e Scopus seguindo os critérios definidos no protocolo da revisão sistemática. Todas as 403 publicações retornadas foram analisadas com base em alguns critérios de exclusão e 67 publicações foram aceitas. Em uma terceira etapa, após nova análise, 9 publicações foram identificadas como relevantes no contexto da pesquisa e são descritas a seguir. Existem algumas ferramentas (ou trabalhos publicados) para detecção de modificações ou atualizações em uma página Web que é frequentemente acessada. WebVigiL [Chamakura et al. 2005] é um sistema 70

78 de monitoramento de modificações, notificação e de apresentação de páginas Web de propósito geral. Lim e Ng [2001] propõem um algoritmo heurístico para detectar automaticamente modificações entre dois documentos HTML. Uma extensão do trabalho, apresentada em Lim e Ng [2004], visa a descoberta de mudanças entre dois arquivos HTML ou XML, hierarquicamente estruturados e representados como uma árvore ordenada. Já os trabalhos apresentados por Zhao et al. [2004], [2006] atuam na identificação de estruturas que mudam frequentemente em documentos XML, usando uma abordagem denominada mineração de delta estrutural. O objetivo é extrair conhecimento a partir de sequências de modificações estruturais em documentos XML. O foco destas abordagens está relacionado às mudanças sintáticas enquanto a abordagem proposta neste artigo está interessada em alterações semânticas. Em Wang et al. [2003], Song et al. [2007], Cobena et al. [2002], o foco está relacionado às operações de transformação, ou seja, dada uma versão 1 de um documento XML, o objetivo é descobrir qual é a ordem correta das operações, para se obter a versão 2. Wang et al. [2003] propõem o algoritmo X-Diff que utiliza o conceito de árvores não ordenadas para verificar modificações entre versões de documentos XML e se preocupa em garantir a minimalidade das sequências de operações de transformação. Uma extensão deste algoritmo é o BIODIFF [Song et al. 2007], usado na Biologia Molecular Computacional para detectar diferenças exatas em dados que representam genomas, para fins de estudos das relações existentes entre diferentes espécies de seres vivos. Por fim, Cobena et al. [2002] propõem o algoritmo XyDiff, para verificar modificações entre versões de documentos XML para o projeto Xyleme [Abiteboul S. et al. 2002], que investigava data warehouses dinâmicos para armazenamento de grandes volumes de dados. Apesar da relevância dessas abordagens, o foco difere do trabalho proposto neste artigo, que vai além da ordem correta das operações de transformação, tentando identificar mudanças semânticas entre as versões do documento XML. 6. CONSIDERAÇÕES FINAIS Gerenciar as modificações em documentos XML é uma necessidade cada vez mais crescente. Diante disso, este artigo apresenta uma abordagem de evolução de documentos XML baseada em inferência, utilizando Prolog. Esta proposta optou por elaborar formas de compreender a evolução de documentos XML em alto nível. As versões de um documento XML foram transformadas em fatos Prolog e, a partir de um conjunto de regras, foi possível identificar a intenção do usuário ao criar a segunda versão. Embora as informações iniciais estejam representadas em documentos XML, os usuários especialistas elaboram as regras de inferência em Prolog, uma vez que os dados são traduzidos para esta linguagem. Uma sugestão de trabalho futuro é a adoção de uma interface gráfica que gere consultas Prolog a partir de uma seleção de opções em alto nível. Ainda que muitos dos usuários sejam de áreas tecnológicas, nem todos podem estar familiarizados com Prolog e esta interface facilitaria o processo de geração de consultas. Outros aspectos a serem explorados consistem no uso desta proposta não somente na análise de diferenças, como também no processo de combinação de versões, na evolução de esquemas [Moon et al. 2010] e no modo como a abordagem se comportará com uma base de dados reais. Visando complementar a pesquisa de trabalhos relacionados, uma busca manual está sendo realizada na DBLP (com foco nas publicações da conferência VLDB), já que a busca automática não é suficiente para um mapeamento completo [Randolph 2009]. Outra estratégia, já em execução, diz respeito ao mapeamento das publicações relevantes, feito por meio da análise das publicações que são citadas nos trabalhos já identificados, bem como das publicações que citam os trabalhos já identificados. Com esta busca manual, espera-se alcançar novos trabalhos que também poderiam contribuir com esta abordagem. Além disso, o protocolo da revisão sistemática está sendo reexecutado com o objetivo de encontrar novas publicações relevantes, principalmente do ano corrente. Uma limitação da abordagem atual que já está sendo resolvida em um trabalho em andamento, consiste em identificar automaticamente elementos correspondentes entre duas versões de um documento XML. Atualmente, o usuário especialista precisa cadastrar uma regra manual (que no 71

79 exemplo deste artigo é chamada de mesmo_func (Figura 5)), cuja função é identificar qual entidade na v1 corresponde a qual entidade na v2. Essa regra usa um atributo chave (no exemplo, o cpf). No entanto, dependendo de como os documentos XML estejam sendo gerenciados, não há garantias de que o valor permaneça o mesmo entre duas versões (por exemplo, se houver algum erro de digitação na v1 que foi corrigido na v2). A proposta é resolver esta limitação usando uma abordagem de cálculo de similaridade [Dorneles et al. 2009], evitando a necessidade de uso de atributos chave. AGRADECIMENTOS Os autores gostariam de agradecer ao CNPq (processos / e /2011-1) e à FAPERJ (processos E-26/ /2010 e E-26/ /2011) pelo apoio financeiro. REFERENCIAS ABITEBOUL S., CLUET S., FERRAN G., ROUSSET M.-C. THE XYLEME PROJECT. COMPUTER NETWORKS 39(3): , BOLEY H. THE RULE MARKUP LANGUAGE: RDF-XML DATA MODEL, XML SCHEMA HIERARCHY, AND XSL TRANSFORMATIONS. IN INTERNATIONAL CONFERENCE ON WEB KNOWLEDGE MANAGEMENT AND DECISION SUPPORT INAP 01., SPRINGER-VERLAG, BERLIN, HEIDELBERG, P. 5 22, BRATKO I. PROLOG PROGRAMMING FOR ARTIFICIAL INTELLIGENCE. ADDISON WESLEY, HARLOW, ENGLAND; NEW YORK, BRAY T., PAOLI J., SPERBERG-MCQUEEN C. M., MALER E., YERGEAU F. EXTENSIBLE MARKUP LANGUAGE (XML) 1.0 (FIFTH EDITION) CHAMAKURA S., SACHDE A., CHAKRAVARTHY S., ARORA A. WEBVIGIL: MONITORING MULTIPLE WEB PAGES AND PRESENTATION OF XML PAGES. IN DATA ENGINEERING WORKSHOPS, P. 1276, CHIEN S.-Y., TSOTRAS V. J., ZANIOLO C. EFFICIENT MANAGEMENT OF MULTIVERSION DOCUMENTS BY OBJECT REFERENCING., COBENA G., S. ABITEBOUL, MARIAN A. DETECTING CHANGES IN XML DOCUMENTS. IN INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE), SAN JOSE, CA, USA, P , DENTI E., OMICINI A., RICCI A. TUPROLOG: A LIGHT-WEIGHT PROLOG FOR INTERNET APPLICATIONS AND INFRASTRUCTURES. PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES: , DORNELES C. F., NUNES M. F., HEUSER C. A., MOREIRA V. P., SILVA A. S. DA, MOURA E. S. DE. A STRATEGY FOR ALLOWING MEANINGFUL AND COMPARABLE SCORES IN APPROXIMATE MATCHING. INF. SYST. 34(8): , HUANG S. S., GREEN T. J., LOO B. T. DATALOG AND EMERGING APPLICATIONS: AN INTERACTIVE TUTORIAL. IN INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA SIGMOD 11., ACM, NEW YORK, NY, USA, P , KITCHENHAM B. PROCEDURES FOR PERFORMING SYSTEMATIC REVIEWS. DEPARTMENT OF COMPUTER SCIENCE, KEELE UNIVERSITY AND NATIONAL ICT, AUSTRALIA, LIM S. J., NG Y.-K. AN AUTOMATED CHANGE DETECTION ALGORITHM FOR HTML DOCUMENTS BASED ON SEMANTIC HIERARCHIES. IN PROCEEDINGS OF THE 17TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING, IEEE COMPUTER SOCIETY, WASHINGTON, DC, USA, P , LIM S. J., NG Y.-K. CHANGE DISCOVERY OF HIERARCHICALLY STRUCTURED, ORDER-SENSITIVE DATA IN HTML/XML DOCUMENTS. IN APPLICATIONS AND THE INTERNET, IEEE COMPUTER SOCIETY, LOS ALAMITOS, CA, USA, P. 178, LIMA D., DELGADO C., MURTA L., BRAGANHOLO V. TOWARDS QUERYING IMPLICIT KNOWLEDGE IN XML DOCUMENTS. JOURNAL OF INFORMATION AND DATA MANAGEMENT 3(1): 51, MACKENZIE D., EGGERT P., STALLMAN R. COMPARING AND MERGING FILES - GNU DIFFUTILS MANUAL., MOON H. J., CURINO C. A., ZANIOLO C. SCALABLE ARCHITECTURE AND QUERY OPTIMIZATION FORTRANSACTION-TIME DBS WITH EVOLVING SCHEMAS. IN INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA SIGMOD 10., ACM, NEW YORK, NY, USA, P , RANDOLPH J. A GUIDE TO WRITING THE DISSERTATION LITERATURE REVIEW. PRACTICAL ASSESSMENT, RESEARCH & EVALUATION 14(13), RIZZOLO F., VAISMAN A. A. TEMPORAL XML: MODELING, INDEXING, AND QUERY PROCESSING. THE VLDB JOURNAL 17(5): , SONG Y., BHOWMICK S. S., DEWEY,JR. C. F. BIODIFF: AN EFFECTIVE FAST CHANGE DETECTION ALGORITHM FOR BIOLOGICAL ANNOTATIONS. IN INTERNATIONAL CONFERENCE ON DATABASE SYSTEMS FOR ADVANCED APPLICATIONS, SPRINGER-VERLAG, BERLIN, HEIDELBERG, P , WANG Y., WITT D. J. DE, CAI J. X-DIFF: AN EFFECTIVE CHANGE DETECTION ALGORITHM FOR XML DOCUMENTS. IN INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE), BANGALORE, INDIA, P , ZHAO Q., BHOWMICK S. S., MOHANIA M., KAMBAYASHI Y. DISCOVERING FREQUENTLY CHANGING STRUCTURES FROM HISTORICAL STRUCTURAL DELTAS OF UNORDERED XML. IN ACM INTERNATIONAL CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT CIKM 04., ACM PRESS, WASHINGTON D.C., U.S.A., P. 188, ZHAO Q., CHEN L., BHOWMICK S. S., MADRIA S. XML STRUCTURAL DELTA MINING: ISSUES AND CHALLENGES. DATA KNOWL. ENG. 59(3): ,

80 Recomendação de Colaboração em Redes Sociais Acadêmicas baseada na Afiliação dos Pesquisadores Michele A. Brandão, Mirella M. Moro Universidade Federal de Minas Gerais, Brasil {micheleabrandao, Abstract. Many studies have focused on Social Networks aiming to analyze the interactions between people or organizations, as well as to detect patterns in those interactions. Here, we propose a method based on researchers institution affiliation for recomending links in an academic social network. Moreover, we combine this metodology with the state-of-the-art. Our experimental evaluation consider the traditional metrics of accuracy. We also propose new metrics for evaluating novelty and diversity. The results show that the set of recommendations is more accurate, novel and diverse when the institution affiliation aspect is considered. Resumo. As redes sociais têm sido o foco de muitos estudos com o objetivo de analisar as interações entre pessoas ou organizações, bem como detectar padrões presentes nessas interações. Neste trabalho, propomos uma nova metodologia baseada na afiliação institucional dos pesquisadores para recomendar colaborações em uma rede social acadêmica. Além disso, combinamos essa metodologia com o estado-da-arte. Na avaliação experimental, definimos medidas para avaliar não somente a acurácia das recomendações, mas também a novidade e a diversidade. Os resultados mostram que as recomendações têm maior acurácia, novidade e diversidade quando o aspecto de afiliação institucional é considerado. Categories and Subject Descriptors: H.2 Database Management [H.2.m. Miscellaneous]: Social Networks Keywords: sistemas de recomendação, predição de links, redes sociais 1. INTRODUÇÃO Uma Rede Social (RS) é uma coleção de indivíduos (ou organizações) que têm relações em um determinado contexto, por exemplo, amizade e coautoria [Monclar et al. 2011]. Pesquisas em Análise de Redes Sociais (ARS) mostram padrões e princípios, os quais são aplicados a ligações de todos os tipos, incluindo casamento, amizade e trabalho. Por exemplo, alguns desses padrões mostram que as redes sociais de cada indivíduo são homogêneas considerando características sócio-demográficas, comportamentais e intrapessoais. Enfim, padrões, princípios e modelos definidos pela ARS podem auxiliar a explorar e predizer comportamentos. Nesse contexto, métodos com as mais diversas finalidades têm sido propostos para analisar diferentes aspectos de uma rede social. Predição de links é um desses métodos, que visa indicar novas conexões em uma RS. O problema de predição de links pode ser utilizado em diferentes contextos, como por exemplo, em sistemas de recomendação. Esses sistemas consistem em prover recomendações personalizadas de itens para usuários baseando-se em comportamentos prévios e nos perfis dos usuários. No caso de RS, a predição de links pode ser mapeada para recomendação de novas conexões. Neste trabalho, estudamos o problema de recomendação de links considerando o princípio de homofilia. O foco está nas redes sociais acadêmicas formadas por pesquisadores e suas conexões (definidas em coautoria). Recomendar links pode auxiliar um pesquisador a formar novos grupos, buscar por colaborações para uma proposta de projeto e investigar comunidades de pesquisa. Além disso, um trabalho recente mostra que grupos de pesquisa com uma rede social acadêmica bem conectada tendem a ser mais produtivos [Lopes et al. 2011]. Descobrir novos links nesse cenário não é uma tarefa trivial, pois a proximidade social tem diferentes interpretações em que as conexões entre as pessoas e o contexto acadêmico (por exemplo, afiliação e área de pesquisa) devem ser considerados. 73

81 Assim, as contribuições deste trabalho são resumidas da seguinte maneira: Análise de diferentes abordagens de predição e recomendação de links (Seção 2); Definição de uma nova metodologia Affin e uma função de recomendação que combina duas métricas (afiliação institucional e proximidade social) para recomendar novas colaborações. Esta função é também utilizada para recomendar intensificação de colaboração (Seção 3). Uma versão inicial com uma avaliação superficial foi resumidamente apresentada em [Brandão and Moro 2012]; Definição das métricas novidade e diversidade para analisar a qualidade das recomendações. Para cada uma delas, foi definido um novo algoritmo, visto que essa é a primeira vez que são utilizadas para avaliar recomendações de colaborações (Seção 4); Avaliação experimental com a Affin utilizando uma RS real. O estado-da-arte também é comparado e combinado com a Affin para aumentar a acurácia (Seção 5). 2. TRABALHOS RELACIONADOS As comunidades de pesquisa têm utilizado análises de redes sociais para realizar diferentes estudos (por exemplo, a comunidade de matemática [Barabasi 2002]) para entender suas próprias características e comportamentos [Ding 2011]. Especificamente, redes de coautoria são uma classe importante das redes sociais acadêmicas e têm sido analisadas com a finalidade de encontrar padrões de características e comportamentos em colaborações científicas [Liu et al. 2005; Procópio Jr. et al. 2011]. Dado um conjunto de pesquisadores organizados em uma rede, recomendar pessoas com quem um pesquisador pode colaborar é uma forma de predizer links. Em relação à predição de links, em [Liben-Nowell and Kleinberg 2003], os autores avaliam medidas topológicas (por exemplo, coeficiente de Jaccard) para classificar colaborações de coautoria. Em [Huang 2006], o autor usa uma medida topológica para descrever a ocorrência dos links. Por fim, em [Lopes et al. 2010], a recomendação de colaborações considera cada coautor como um link em uma rede social acadêmica. Trabalhos recentes mostram que o princípio de homofilia pode melhorar modelos de predição de links [Aiello et al. 2012; Wang et al. 2011]. O princípio da homofilia afirma que indivíduos tendem a formar laços com outros indivíduos que possuem características similares [McPherson et al. 2001]. Por exemplo, em [Aiello et al. 2012], os autores predizem a presença (ou ausência) de links utilizando informações provenientes dos perfis dos usuários. Em [Wang et al. 2011], várias medidas de homofilia móveis são exploradas na predição de links. Este trabalho objetiva recomendar colaborações pela predição de links entre pesquisadores e apresentar a metodologia Affin, utilizada para recomendar novos links em uma rede social acadêmica (especificamente, rede de coautoria) considerando o aspecto da afiliação dos pesquisadores. Na metodologia Affin, seguindo o princípio de homofilia, considera-se que pesquisadores tendem a colaborar com pesquisadores de instituições com as quais ele colaborou anteriormente. Sobre recomendar pessoas para pessoas, em [Cai et al. 2010] é apresentado um algoritmo de recomendação baseado em taste e attractiveness (as quais definem a similaridade entre as pessoas). Porém, essas formas de mensurar a similaridade não se aplicam ao cenário acadêmico, pois não há como inferir o quanto um pesquisador gosta (ou não) de outro. Ainda em relação à recomendação de pessoas, o trabalho mais relacionado ao nosso é a metodologia CORALS [Lopes et al. 2010] (que também usa uma rede de coautoria). Na CORALS, existe um peso para cada relação entre autores, que é definido por três diferentes métricas: cooperação (Cp), correlação (Cr) e proximidade social (Sc). Cr e Sc são combinadas para formar uma única métrica (média ponderada) com os pesos w Cr e w Sc que definem a importância de cada uma. Nas experimentações realizadas em [Lopes et al. 2010], foram utilizados dados extraídos da DBLP 1 e foram escolhidos dois intervalos de tempo. O primeiro representa as publicações dos autores até o ano de 2007 (incluindo este). Esse intervalo 1 DBLP Computer Science Bibliography, ley/db/ 74

82 foi utilizado para construir os perfis dos pesquisadores e a RS usada para gerar recomendações. O segundo consiste de todas as publicações dos autores até o ano de Esse segundo intervalo foi usado para construir uma RS utilizada para estabelecer um comparativo entre as colaborações até 2007 e a situação futura (até 2010) de colaborações entre pesquisadores. A nossa metodologia difere da CORALS, principalmente, por considerar o princípio de homofilia (dado pela afiliação institucional dos pesquisadores) na definição do peso das colaborações. Além disso, a avaliação experimental da CORALS considera apenas a acurácia das recomendações. Por outro lado, na avaliação experimental da Affin, foram definidas medidas para avaliar, não somente a acurácia, mas também a novidade e a diversidade das recomendações. 3. AFFIN - UMA NOVA METODOLOGIA PARA RECOMENDAR COLABORAÇÕES As redes sociais são formadas por atores e pelos laços relacionais (links) entre eles [Newman 2003]. A importância de uma relação entre esses atores pode ser definida por uma medida de peso. Cada peso é importante porque reflete a semântica do link, ao invés de apenas a característica topológica da rede. Em outras palavras, o peso representa rica informação da RS e das conexões presentes nela. Neste artigo, utilizamos uma rede social acadêmica, na qual dois pesquisadores (atores na rede) são conectados se possuem pelo menos coautoria de uma publicação [Newman 2003]. A inferência de novas conexões nessa rede é mapeada como um problema de predição de links em uma rede social. Seguindo o princípio de homofilia, a Affin considera pesos buscando entender como diferentes características afetam a relação entre pesquisadores. Determinar tais pesos é um grande desafio, pois está fortemente relacionado aos perfis construídos para os pesquisadores, aos tipos de dados e ao modelo da rede. Assim, esses pesos podem ser utilizados na função de recomendação a qual objetiva inferir novos links em uma rede (um tipo de problema de predição de links). Especificamente, a metodologia Affin visa identificar novas colaborações, bem como colaborações que podem ser intensificadas. Em particular, o aspecto de homofilia considerado é a afiliação institucional. Como consequência, um peso relacionado à instituição provê ainda mais informação para ARS, como por exemplo, permite auxiliar na busca por colaborações com diferentes instituições e analisar a influência das colaborações na cooperação com uma instituição. Assim, o índice de afiliação institucional Affin ij representa o novo peso para um dado par de pesquisadores i,j, conforme definido pela Equação 1. Affin i,j = NPI i,j NT i (1) onde NPI i,j é o número de artigos do pesquisador i em coautoria com pessoas da instituição do pesquisador j, e NT i é o número total de artigos publicados por i. A definição do Affin ij segue a intuição natural do princípio da homofilia considerando que uma instituição é mais importante para um pesquisador, se ele tem colaborado com alguém dessa instituição, e assim é mais provável ter contato com outros pesquisadores nessa mesma instituição. Dessa forma, a função de recomendação descrita em [Lopes et al. 2010] pode ser alterada pela adição do índice Affin ij. Para cada par de pesquisadores, o relacionamento entre Affin ij, Sc i,j, Cp i,j e Cr i,j estabelece a necessidade (ou não) de ter mais interações acadêmicas entre eles (a fim de melhorar a conexão total da rede social acadêmica). A combinação de Affin ij e Sc i,j para estabelecer uma única métrica Affin_Sc i,j é definida pela Equação 2. Affin_Sc i,j = w Affin.Affin i,j +w Sc.Sc i,j w Affin +w Sc (2) onde dada uma rede acadêmica com os autores i e j, Affin_Sc i,j é uma média ponderada: os pesos w Affin e w Sc determinam, respectivamente, a importância das métricas Affin ij e Sc i,j para o valor resultante. Assim, os pesos podem ser usados para enfatizar a afiliação ou a proximidade social, permitindo considerar o princípio de homofilia de maneiras diferentes. 75

83 Para igualmente considerar os índices Affin_Sc i,j, Cp i,j e Cr i,j, a Affin utiliza graus para representar intervalos de valores: baixo, médio e alto. O valor atual para tais intervalos pode seguir uma escala linear (por exemplo, baixo < 33% e alto > 66%). A Equação 3 apresenta a combinação dos índices e suas ações de recomendação: Iniciar_Colaboração e Intensificar_Colaboração. Iniciar_Colaboração, if (Cp i,j = 0) (Affin_Sc i,j > threshold); r i,j = Intensificar_Colaboração, if (Cp i,j {baixo,médio}) (Affin i,j {médio,alto}) (Cr i,j {médio,alto}); onde pares de pesquisadores com zerocp i,j e não zeroaffin_sc i,j (considerando o grau baixo como threshold) são recomendados a criar uma colaboração; e pares com baixo ou médio Cp i,j, médio ou alto Affin i,j, e médio ou alto Cr i,j são recomendados a intensificar suas colaborações. A metodologia Affin recomenda colaborações considerando os índices Affin i,j e Affin_Sc i,j. Esses índices seguem o princípio de homofilia o qual difere a Affin da CORALS. A descrição resumida da metodologia Affin foi apresentada em [Brandão and Moro 2012]. Porém, em [Brandão and Moro 2012] não é estabelecida uma associação da Affin com mecanismos de teorias sociais como o princípio de homofilia (importante para fundamentar a função de recomendação desenvolvida), não é realizada a combinação da CORALS com a Affin, e a avaliação experimental é superficial e completamente diferente da descrita na Seção MÉTRICAS DE AVALIAÇÃO Avaliar a qualidade das recomendações e suas metodologias é uma tarefa bastante difícil, principalmente, por duas razões [Fouss and Saerens 2008]: (i) diferentes metodologias podem ter um desempenho pior ou melhor em diferentes conjuntos de dados; e (ii) os objetivos para os quais a avaliação é realizada podem diferir. Muitos trabalhos focam em avaliar a acurácia das recomendações, por exemplo, [Lopes et al. 2010] e [Huang 2006]. Ter uma boa acurácia é importante, mas insuficiente para garantir que a recomendação seja boa [Fouss and Saerens 2008; Shani and Gunawardana 2011]. Assim, dentre as várias métricas de avaliação [Shani and Gunawardana 2011], foram escolhidas precisão, revocação, novidade e diversidade, por serem consideradas mais apropriadas para avaliar recomendação de colaboração. Métricas como confiança, trust e risco não são adequadas, pois é preciso que existam informações prévias sobre as preferências dos usuários. Neste artigo, como a recomendação é de colaboração, no banco de dados (BD) não há informações sobre as preferências de um pesquisador em relação a outro. Além disso, a métrica robustez também não é adequada, pois o BD utilizado não possui muito ruído. Em trabalhos futuros, pretende-se avaliar as métricas utilidade e serendipity. É importante notar que em [Lopes et al. 2010], a metodologia CORALS é avaliada experimentalmente apenas em relação à acurácia das recomendações, mas apenas isso não retrata a qualidade das mesmas; e esta é a primeira vez que as métricas novidade e diversidade são utilizadas para avaliar recomendação de colaborações acadêmicas. Esta seção segue com a definição dos algoritmos para essas métricas. Métricas de acurácia. Para avaliar a acurácia das recomendações da metodologia Affin, comparamos com a CORALS utilizando as métricas precisão e revocação (bastante utilizadas para avaliar diversos sistemas de recomendação [Shani and Gunawardana 2011]). Novidade. São consideradas novas recomendações a indicação de itens que o usuário ainda não conhece e não conheceria na ausência de um sistema de recomendação. A métrica novidade mede o novo ou original presentes em uma lista de recomendações [Fouss and Saerens 2008]. Para calcular essa métrica, adaptamos a ideia proposta em [Fouss and Saerens 2008] para o cenário de redes sociais acadêmicas. Assim, as linhas 4 e 5 do Algoritmo 1 definem o cálculo da frequência de cada pesquisador que representa o grau de popularidade dos pesquisadores, ou seja, pesquisadores com alta frequência são prováveis de serem conhecidos. Nesse caso, consideramos que quanto menos (3) 76

84 Algoritmo 1 Calcula-Novidade 1: {Entrada: Conjunto de pesquisadores recomendados P r, Número de pesquisadores n} 2: {Saída: Média da mediana das frequências µ fm } 3: for p P r do 4: f p := calcular_frequencia(p) 5: I := I f p {Conjunto das frequências de cada pesquisador recomendado} 6: end for 7: f m := calcular_mediana(i) 8: µ fm := calcular_media(f m, n) 9: return µ fm popular um pesquisador recomendado, mais fácil dele ser desconhecido para um pesquisador a qual ele foi recomendado. Na linha 7, escolhemos a mediana como medida de tendência central para representar o conjunto de frequências (seguindo a proposta de [Fouss and Saerens 2008]). Por fim, na linha 8, a mediana das frequências dos pesquisadores recomendados é dividida pelo número total de pesquisadores (que receberam sugestões de recomendação). Dessa forma, verifica-se como a mediana das frequências se distribui em relação aos pesquisadores (cálculo da média). O valor resultante representa a novidade na lista de recomendações. A métrica novidade varia no intervalo [0,1], valores próximos a zero representam maior novidade e o oposto quando se aproximam de um. Diversidade. Diversidade é geralmente descrita como o oposto de similaridade [Shani and Gunawardana 2011]. Em alguns casos sugerir um conjunto de itens similares pode não ser útil para os usuários. Considere por exemplo, uma recomendação de colaboração, onde um sistema deve recomendar pesquisadores. Apresentar uma lista com 10 pesquisadores de uma mesma instituição pode não ser tão útil quanto apresentar pesquisadores de diferentes instituições, visto que pesquisadores de uma mesma instituição podem já se conhecerem. Um dos métodos mais utilizados para medir a diversidade em uma lista de recomendações é a similaridade intra-lista (intra-list similarity) [Shani and Gunawardana 2011]. Nós utilizamos esse método baseando-se na abordagem apresentada em [Ziegler et al. 2005], a qual avalia sistemas de recomendação tradicionais. Além disso, fizemos algumas alterações nessa abordagem para adaptá-la ao contexto de recomendação de colaboração. Assim, definimos a similaridade intra-lista no Algoritmo 2. A linha 4 mostra que antes de computar a similaridade intra-lista, é preciso definir como medir a similaridade entre pesquisadores em uma lista de recomendação. Em geral, essa similaridade é definida pela correlação de Pearson ou distância de cosseno [Ziegler et al. 2005]. Entretanto, foi utilizada a correlação (definida em [Lopes et al. 2010]) entre os pesquisadores para calcular essa similaridade. Dessa forma, considera-se a semântica das relações na RS para calcular a similaridade intra-lista na linha 5. Com a linha 7, obtém-se o valor da métrica de diversidade, onde altos valores indicam baixa diversidade. Esse valor é normalizado por uma escala decimal na linha 8. Em relação à diversidade, um questionamento possível é: se a correlação entre pesquisadores é utilizada para computar a diversidade, então quanto menor a diversidade melhores são as colaborações recomendadas (visto que são pesquisadores de uma mesma área de pesquisa)? A resposta é não, pois é provável que esses pesquisadores já se conheçam (a recomendação seria óbvia) e não colaboram por falta de afinidade ou competição. Entretanto, é comum interações entre pesquisadores que atuam em áreas similares. Buscando-se um equilíbrio entre essas duas considerações, definimos que um valor bom para a diversidade é próximo aos 50%. 5. AVALIAÇÃO EXPERIMENTAL Para verificar experimentalmente a metodologia Affin, foram utilizadas métricas para avaliar a acurácia, novidade e diversidade das recomendações (Seção 4) e uma rede social acadêmica (Seção 5.1). Os resultados são apresentados e discutidos na Seção

85 Algoritmo 2 Calcula-Diversidade 1: {Entrada: Pesquisadores P, Pesquisadores recomendados P r, Número de pesquisadores n } 2: {Saída: Média da similaridade intra-lista µ Sin list } 3: for p P do 4: S Pr := calc_similaridade(p, P r ) {Entre pesquisadores recomendados ao pesquisador p}; 5: S in list := calc_similaridade_intralist(s Pr, P r ) {Como definido em [Ziegler et al. 2005]}; 6: end for 7: µ Sin list := calcular_media(s in list, n); 8: µ Sin list := normaliza_porescaladecimal(µ Sin list ) {O divisor é 10 3 para valor estar no [0,1]}; 9: return µ Sin list ; Tabela I. Informações sobre o conjunto de dados para cada divisão Split 1 Split 2 Split 3 Informação 75% 25% 80% 20% 90% 10% Período em anos até até até Total de publicações Média publicações por pesquisador 34,70 11,57 37,01 9,25 41,64 4,63 Número de relações de coautoria Conjunto de dados Os experimentos foram realizados utilizando uma RS real extraída do CiênciaBrasil 2. Os nós dessa RS representam 169 pesquisadores que são conectados pela relação de coautoria. Caso todos os pesquisadores colaborassem entre si, o número de pares de links entre dois pesquisadores na RS seria Ademais, as publicações dos pesquisadores são da área de Ciência da Computação e a data mais recente das publicações é 01 de janeiro de Para realizar a avaliação experimental, os dados foram divididos em duas partes, cada uma com uma porcentagem dos dados (semelhante à divisão, ou split [Baeza-Yates and Ribeiro-Neto 2011], em conjunto de dados de treino e teste para avaliar um classificador). A primeira parte, que possui a maior porcentagem dos dados, foi utilizada para criar os perfis dos pesquisadores e a RS usada para fazer as recomendações. A segunda parte tem a menor porcentagem e foi usada para construir uma RS utilizada para estabelecer um comparativo entre as colaborações. Além disso, foi considerado o ano das publicações na divisão, onde as publicações da primeira parte sempre possuem ano inferior ou igual ao menor ano das publicações da segunda parte. Essa divisão dos dados possibilita analisar o comportamento da Affin em diferentes porções dos dados e períodos. A Tabela I apresenta algumas informações referentes as duas redes construídas para cada divisão dos dados. As informações presentes na Tabela I mostram como a RS é esparsa (menos de 300 relações de coautoria de uma total de possíveis). Dessa forma, existem muitas possibilidades de relações que podem ser recomendadas para essa rede (aproximadamente = ). Um estudo comparativo entre as duas redes de cada split mostra que novas colaborações iniciaram na segunda RS no período considerado. Caso fosse utilizado um bom sistema de recomendação, essas colaborações poderiam já existir na primeira RS tornando-a mais bem conectada. 5.2 Resultados e Discussões Para realizar os experimentos, pares de autores considerados similares (com correlação maior que zero) são incorporados à RS. Isso foi proposto na CORALS e também utilizado na Affin. Além disso, na Affin foram inseridos pares de autores à RS, mesmo não similares, mas que tivessem o índice Affin ij 2 CiênciaBrasil: [Laender et al. 2011] 78

86 Tabela II. Novas colaborações - Revocação e precisão (%) Affin CORALS CORALS+Affin Split Revocação Precisão Revocação Precisão Revocação Precisão 75% e 25% 63,8 2,12 48,61 1,73 62,5 2,03 80% e 20% 64 1,8 47,2 1,4 62,4 1,7 90% e 10% 80,30 1,24 62,12 1,01 80,30 1,22 Tabela III. Novas colaborações - Novidade e diversidade Affin CORALS CORALS+Affin Split Novidade Diversidade Novidade Diversidade Novidade Diversidade 75% e 25% 0,58 0,624 0,61 0,664 0,59 0,659 80% e 20% 0,58 0,649 0,61 0,688 0,59 0,687 90% e 10% 0,67 0,679 0,72 0,712 0,70 0,707 Nota: quanto maior o valor, pior o resultado das métricas. Tabela IV. Intensificar colaborações - Revocação e precisão (%) Affin CORALS CORALS+Affin Split Revocação Precisão Revocação Precisão Revocação Precisão 75% e 25% 79,65 45,45 68,14 43,75 68,14 43,75 80% e 20% 80,53 42,72 67,25 40,64 67,25 40,64 90% e 10% 76,9 38,27 58,65 34,86 58,65 34,86 maior que zero. Dessa forma, propomos também avaliar a recomendação da CORALS sobre pares de pesquisadores similares e pares com relação de afiliação, que chamamos de CORALS+Affin. Recomendações de novas colaborações. Essa ação visa sugerir colaborações que ainda não ocorreram entre pesquisadores, mas que atendem a critérios definidos na metodologia de recomendação. A Tabela II apresenta a revocação e a precisão das recomendações de novas colaborações. A baixa precisão é justificada pelo grande número de recomendações relevantes, pequena quantidade de recomendações que ocorreram no período considerado para teste (como ilustrado na Tabela I) e possibilidade de links ausentes na RS. Ademais, os resultados mostram que a Affin gera recomendações com melhor acurácia e a CORALS+Affin com maior acurácia em relação a CORALS. Isso ocorre, pois pares de pesquisadores que se relacionam pela afiliação institucional também são considerados na CORALS+Affin. Na Tabela III, observa-se que as recomendações realizadas pela Affin apresentam maior novidade e melhor valor para a diversidade (mais próximo a 0,5 ou 50%). Nota-se também que a CORALS+Affin gera melhores resultados em relação a CORALS. Nas três divisões dos dados, a Affin faz recomendações com melhores resultados para a acurácia, a novidade e a diversidade. Finalmente, a comparação entre as Tabelas II e III mostra que a revocação aumenta, ao passo que a novidade e a diversidade diminuem. Isso ocorre, pois cada pesquisador é recomendado seguindo critérios de similaridade (p.ex., seguindo o princípio de homofilia) e à medida que o número de pesquisadores aumenta, maior é a similaridade entre eles na recomendação. Ademais, em [Fouss and Saerens 2008] também é apresentada essa relação de proporção inversa entre métricas de acurácia e a novidade. Recomendações para intensificar colaborações. Essa ação objetiva identificar colaborações que ocorreram poucas vezes entre pesquisadores e que são promissoras segundo os critérios especificados na metodologia de recomendação. A avaliação da novidade e da diversidade não são necessárias nesse contexto, pois as recomendações são de colaborações já ocorridas. Assim, a Tabela IV apresenta a revocação e a precisão das recomendações para intensificar colaborações. Observa-se que a Affin faz recomendações com maior acurácia. Além disso, a CORALS e a CORALS+Affin geram recomendações com a mesma acurácia, pois a função de recomendação de intensificação da CORALS+Affin (mesma da CORALS) não recomenda pares de pesquisadores que se relacionam pelo índice Affin ij. 79

87 6. CONCLUSÃO Este artigo apresentou uma nova metodologia Affin e uma função para recomendar colaborações em redes sociais acadêmicas. A novidade está em considerar o aspecto de afiliação institucional com as métricas de cooperação, correlação e proximidade social. Foram desenvolvidos dois novos algoritmos para aplicar as métricas novidade e diversidade no cenário de redes sociais acadêmicas. A avaliação experimental mostrou que a Affin gera recomendações com maior acurácia, novidade e diversidade quando comparada às do estado-da-arte. No futuro, pretende-se refinar a função de recomendação com outros aspectos para melhorar os resultados e utilizar outras métricas para avaliar as recomendações. Agradecimentos. Este trabalho foi financiado por: CAPES, CNPq, Fapemig e InWeb, Brasil. REFERÊNCIAS Aiello, L. M., Barrat, A., Toulon, S., Schifanella, R., Cattuto, C., Markines, B., and Menczer, F. Friendship prediction and homophily in social media. ACM Transactions on the Web 6 (2): 9:1 9:33, Baeza-Yates, R. A. and Ribeiro-Neto, B. A. Modern Information Retrieval - the concepts and technology behind search. Pearson Education Ltd., Harlow, England, Barabasi, A.-L. Linked: The New Science of Networks. Perseus Books Group, Brandão, M. A. and Moro, M. M. Affiliation Influence on Recommendation in Academic Social Networks. In AMW. Belo Horizonte, Brazil, pp , Cai, X., Bain, M., Krzywicki, A., Wobcke, W., Kim, Y. S., Compton, P., and Mahidadia:, A. Learning collaborative filtering and its application to people to people recommendation in social networks. In ICDM. Washington, USA, pp , Ding, Y. Scientific collaboration and endorsement: Network analysis of coauthorship and citation networks. Journal of Informetrics 5 (1): , Fouss, F. and Saerens, M. Evaluating Performance of Recommender Systems: An Experimental Comparison. In WI-IAT. Sydney, Australia, pp , Huang, Z. Link Prediction Based on Graph Topology: The Predictive Value of Generalized Clustering Coefficient. In LinkKDD. Philadelphia, USA, Laender, A., Moro, M., Silva, A., Davis Jr., C., Gonçalves, M., Galante, R., Bigonha, C., Dalip, D., Barbosa, E., Borges, E., Cortez, E., Procópio Jr., P., Alencar, R., Cardoso, T., and Salles, T. Ciênciabrasilthe brazilian portal of science and technology. In SEMISH. Natal, Brasil, Liben-Nowell, D. and Kleinberg, J. M. The link prediction problem for social networks. In CIKM. New Orleans, USA, pp , Liu, X., Bollen, J., Nelson, M. L., and Van de Sompel, H. Co-authorship networks in the digital library research community. Information Processing and Management 41 (6): , Lopes, G. R., Moro, M. M., da Silva, R., Barbosa, E. M., and de Oliveira, J. P. M. Ranking Strategy for Graduate Programs Evaluation. In ICITA. Sydney, Australia, Lopes, G. R., Moro, M. M., Wives, L. K., and de Oliveira, J. P. M. Collaboration Recommendation on Academic Social Networks. In ER Workshops. Vancouver, Canada, pp , McPherson, M., Smith-Lovin, L., and Cook, J. M. Birds of a Feather: Homophily in Social Networks. Annual Review of Sociology 27 (1): , Monclar, R. S., Oliveira, J., de Faria, F. F., Ventura, L., de Souza, J. M., and Campos, M. L. M. Using social networks analysis for collaboration and team formation identification. In CSCWD. pp , Newman, M. E. J. The structure and function of complex networks. SIAM Review 45 (2): , Procópio Jr., P. S., Laender, A. H. F., and Moro, M. M. Análise da rede de coautoria do simpósio brasileiro de bancos de dados. In SBBD. Florianópolis, Shani, G. and Gunawardana, A. Evaluating recommendation systems. In Recommender Systems Handbook. pp , Wang, D., Pedreschi, D., Song, C., Giannotti, F., and Barabasi, A.-L. Human mobility, social ties, and link prediction. In KDD. San Diego, USA, pp , Ziegler, C.-N., McNee, S. M., Konstan, J. A., and Lausen, G. Improving recommendation lists through topic diversification. In WWW. Chiba, Japan, pp ,

88 Observatório do Trânsito: sistema para detecção e localização de eventos de trânsito no Twitter Sílvio S. Ribeiro Jr., Diogo Rennó, Tatiana S. Gonçalves, Clodoveu A. Davis Jr., Wagner Meira Jr., Gisele L. Pappa Universidade Federal de Minas Gerais {silviojr, renno, tati.sg, clodoveu, meira, Resumo. O Twitter se consolidou como uma plataforma popular para fornecer conteúdo gerado por usuários, que varia de simples conversação a informação em tempo real sobre eventos recentes. Muitas pesquisas demostraram que o conteúdo produzido no Twitter possui alto grau de correlação com o que ocorre no mundo real, o que levou ao desenvolvimento de aplicações em diversas áreas, abrangendo desde epidemias até eleições. Nosso trabalho é baseado no fato de que existe muita informação sobre trânsito disponível no Twitter, principalmente de pers especializados, criados para coletar e divulgar notícias sobre eventos de trânsito em algumas grandes cidades. Neste artigo, propomos um método para, dado um evento, geolocalizá-lo a partir do conteúdo dos tweets assim que são coletados. Os resultados mostram que conseguimos localizar bairros e logradouros com um grau de acerto que varia de 50 a 90%, dependendo do número de lugares mencionados nos tweets. Categories and Subject Descriptors: H.3 [Information Systems]: Information Storage and Retrieval General Terms: Experimentation Keywords: Trânsito, twitter, localização, geocodicação 1. INTRODUÇÃO O Twitter se tornou uma plataforma popular para usuários que geram conteúdo, que varia desde assuntos corriqueiros até a distribuição de informações sobre eventos em tempo real. Muitas pesquisas já mostraram que o conteúdo produzido no Twitter possui um alto grau de correlação com o mundo real, o que levou ao desenvolvimento de aplicações que cobrem desde epidemias até eleições [Pappa et al. 2010]. Tweets a respeito do trânsito são comuns. Muitos usuários usam o Twitter para informar sobre diculdades de movimentação dentro da cidade, transmitindo dados sobre as condições do trânsito e reportando problemas como acidentes, obras, veículos com problemas mecânicos, passeatas e outros. Existem pers no Twitter criados especialmente para informar as condições do trânsito em grandes cidades, alguns inclusive operados por órgãos ociais de trânsito, constituindo fontes úteis de informação para motoristas que têm acesso às mensagens publicadas por essas contas. Há, portanto, uma grande quantidade de informação sobre trânsito disponível no Twitter, embora de forma desestruturada e espalhada. Nesse cenário, usuários que voluntariamente informam sobre as condições do trânsito estão atuando como sensores de um fenômeno que se desenvolve em tempo real. Existe, portanto, grande interesse no desenvolvimento de métodos, técnicas e ferramentas que consigam captar essas contribuições, organizá-las e publicá-las de forma integrada e consistente. A informação coletada pode ser usada tanto de forma complementar àquela gerada por câmeras e Trabalho conduzido durante o ano de

89 sensores físicos, orientando as ações dos agentes públicos a curto e longo prazo, quanto diretamente pelos motoristas, em tempo real ou quase-real, apoiando suas decisões quanto ao deslocamento pela cidade. A crescente popularidade desse tipo de canal de informação indica que, em pouco tempo, informações sensoriadas e transmitidas pelos próprios cidadãos podem se tornar a principal fonte de avaliação da situação do trânsito em tempo real. Neste artigo, descrevemos a fase inicial de estudo e implementação do Observatório do Trânsito. O Observatório do Trânsito é um sistema de mineração de texto que trabalha sobre o stream de tweets, procurando por padrões de texto relevantes que indiquem a situação do trânsito em lugares denidos. Além disso, criamos uma interface Web para reportar a informação coletada para usuários. Para testarmos nosso método, ele foi aplicado na cidade de Belo Horizonte. Os resultados alcançados até o momento mostraram-se promissores na detecção de situações relevantes no trânsito e suas respectivas localizações. O artigo está estruturado da seguinte forma, A Seção 2 lista trabalhos relacionados ao projeto desenvolvido. A Seção 3 descreve o método proposto. A Seção 4 apresenta os conjuntos de dados utilizados, incluindo as bases de tweets e o gazetteer utilizado. A Seção 5 relata os experimentos feitos e resultados obtidos e, nalmente, a Seção 6 apresenta as conclusões e lista trabalhos futuros. 2. TRABALHOS RELACIONADOS Geocodicação é o processo de transformação de dados descritivos sobre um local, tal como o nome do lugar, em uma referência geográca absoluta [Goldberg et al. 2007]. Os gazetteers são uma importante fonte de informação para a realização de geocodicação, pois têm o propósito de associar nomes de lugares à sua localização. Mesmo utilizando um gazetteer, no entanto, a geocodicação é uma tarefa desaadora, porque existem ambiguidades entre lugares (i.e., muitos lugares com o mesmo nome) ou entre lugares e coisas (i.e., nomes de lugares iguais aos nomes de outras entidades) [Daniel 2010]. Além disso, o uso de abreviações e simplicações, comuns em tweets devido às limitações de espaço para o texto, também complicam o reconhecimento dos nomes de lugares. Algumas técnicas foram propostas para reconhecer e interpretar nomes de localidades em textos. Em [Twaroch et al. 2008], nomes de lugares são detectados em pesquisas na Web através de frases relacionadas ao contexto de localidades e de um gazetteer de referência. [Amitay et al. 2004] propõem um método para resolver a ambiguidade entre o nome de um lugar e os nomes de outros lugares ou palavras comuns. A abordagem utiliza um gazetteer hierárquico mundial para determinar uma localidade única com uma certa conança, através de passos como encontrar possíveis nomes de lugares próximos a um nome já identicado ou procurar por um lugar comum (i.e., um país) relacionado a alguns dos nomes ambíguos (i.e., cidades). Uma abordagem baseada em scores também é proposta para identicar o foco de uma página da Web (o principal local sobre o qual ela trata). [Delboni et al. 2005] propõem reconhecer lugares relevantes em um texto encontrando expressões posicionais tais como próximo a ou a cinco minutos de e procurando ao redor delas na sentença. Visando melhorar a precisão da resposta para uma pesquisa contendo tal texto, a identicação de sinônimos para as expressões é proposta. [Cardoso et al. 2008] apresentam o protótipo de um sistema para recuperação de informações geográcas que busca capturar evidências geográcas implícitas, tais como nomes de empresas ou edifícios, e utilizá-las junto às evidências explícitas para melhorar os resultados do sistema. [Cheng et al. 2010] propõem uma abordagem para localizar usuários do Twitter baseada no conteúdo dos tweets. Utilizando somente o texto das mensagens, eles desenvolveram um framework probabilístico para estimar a localidade de um usuário do Twitter a nível de cidade. Um classicador é utilizado para automaticamente identicar palavras nos tweets que sejam fortemente relacionadas a um escopo geográco local, e a localidade dos usuários pode ser então estimada através de um modelo suavizador que busca as palavras identicadas nos tweets dos usuários. 82

90 Para o presente trabalho, a determinação da cidade de origem dos tweets é insuciente para resolver a geocodicação. É necessário obter informações que permitam localizar o ponto na cidade ao qual a mensagem se refere. Uma pequena parcela dos tweets é produzida por dipositivos móveis que, caso autorizado pelo usuário, associam coordenadas GPS à mensagem, dentro dos limites de precisão do equipamento. Em muitos casos, no entanto, é necessário obter a localização através da interpretação da mensagem, buscando nela referências a lugares intra-urbanos, como ruas, avenidas e pontos de referência. O uso de um gazetteer, nessa situação, só é possível se o mesmo contiver detalhamento nesse nível, o que não é o usual [Machado et al. 2011]. 3. LOCALIZAÇÃO DE EVENTOS DE TRÂNSITO O método proposto neste artigo para detecção e localização de eventos relacionados ao trânsito está dividido em quatro etapas: (i) pré-processamento do texto do tweet, (ii) identicação do evento, (iii) localização por casamento exato, (iv) enriquecimento da localização por casamento aproximado. O pré-processamento do texto do tweet inclui a remoção de acentos, links e citações a pers do Twitter Nessa fase, postagens referentes a outras cidades também são identicadas e excluídas do restante do processo. Isso é necessário porque um dos pers coletados (WayTaxi) aborda o trânsito em diversas capitais brasileiras, mas sempre fazendo referência explícita à capital em questão. A segunda etapa identica os eventos de interesse relacionados ao trânsito. Neste primeiro trabalho, especicamos os possíveis eventos e condições de trânsito manualmente. Até agora, utilizamos essa lista estática para assegurar o uso somente de tweets que dizem respeito ao trânsito. O conjunto de eventos utilizado atualmente é descrito na Tabela II. No futuro, propomos utilizar técnicas de aprendizado de máquina para detectar eventos automaticamente e de maneira dinâmica. Dividimos as condições de trânsito em duas categorias principais: condição e evento. A condição refere-se à situação do trânsito em certo local em um dado momento (i.e., lentidão), enquanto eventos dizem respeito a acontecimentos que podem alterar o trânsito, afetando-o direta ou indiretamente (i.e., acidente). Tentamos abranger os eventos e estados tão bem quanto possível, mas temos ciência de que a lista não é exaustiva. A terceira fase é o casamento exato, que utiliza um gazetteer para a geolocalização dos tweets, como descrito na Seção 3.1. Finalmente, a quarta etapa enriquece os dados da localização encontrada no passo anterior, como descrito na Seção Localização por casamento exato Detectar referências a ruas e bairros no texto de um tweet é uma das principais tarefas do nosso sistema, como etapa necessária para localizar os eventos de trânsito. É necessário relacionar as condições de trânsito reportadas com os nomes ociais de cada logradouro ou bairro para manter os relatórios consistentes para o usuário e possíveis análises futuras. Utilizamos um gazetteer que contém os nomes, geometria e geolocalização de logradouros, bairros, cruzamentos e trechos de vias de Belo Horizonte [Machado et al. 2011]. Esse gazetteer contém (1) o nome de logradouros, incluindo a localização de cada segmento de logradouro entre cruzamentos, (2) a localização de cruzamentos, associados aos nomes dos logradouros envolvidos, e (3) a posição do início e do m de cada trecho de logradouro em cada bairro, estando disponíveis trechos anotados. Encontrar citações de locais no conteúdo de tweets, no entanto, é uma tarefa extremamente difícil. Como os tweets são limitados a 140 caracteres, os usuários tentam encurtar suas mensagens abreviando nomes muito utilizados. Além disso, algumas palavras são escritas incorretamente e alguns logradouros e bairros possuem nomes populares diferentes dos seus nomes ociais. 83

91 Assim, além do gazeteer descrito acima, criamos um dicionário para nomes alternativos, em que cada nome ocial possui como sinônimos seus nomes populares. Criamos também um dicionário de formas abreviadas para os tipos de logradouros, como, por exemplo, Av e Av. para Avenida e Vdt para Viaduto. Esses dicionários foram usados em conjuntos com os nomes ociais encontrados no gazetteer. O conjunto nal de nomes será chamado de GEODIC. Tendo como base o GEODIC, o método proposto procura inicialmente por nomes de logradouros e bairros utilizando casamento exato. Nessa etapa, os nomes contidos no GECODIC são procurados como substrings no texto do tweet. Para isso, existem duas estratégias: utilizar o nome do logradouro/bairro acompanhado da sua denição (i.e., Bairro Prado) ou não (i.e., Prado). As duas estratégias foram testadas e seus resultados comparados. Enquanto a primeira aumenta precisão, a segunda aumenta a revocação. 3.2 Enriquecimento da Localização Essa etapa procura por nomes de logradouros e bairros relacionados aos locais identicados no passo anterior. Nesse caso, duas situações podem acontecer. Se o local previamente encontrado é um logradouro, buscamos um casamento aproximado com outras ruas com as quais ele possua um cruzamento em comum ou bairros por onde ele passa. Se o local é um bairro, tentamos encontrar um casamento aproximado com as ruas que passam pelo bairro. A motivação para essa estratégia vem do fato de o tweet ser limitado a 140 caracteres e os textos sobre trânsito serem, em geral, bastante concisos e citarem locais próximos. O casamento utilizado nessa fase é um casamento fuzzy aproximado [Navarro 2001]. Enquanto a primeira técnica encontra nos tweets substrings idênticas aos nomes dos locais listados em GEODIC, o casamento fuzzy retorna um score que varia de 0 (strings completamente diferentes) a 100 (strings completamente idênticas), de acordo com a semelhança das substrings dentro do tweet com os nomes dos locais. Se o score for maior que determinado limiar, consideramos o casamento aceitável. Note que, nessa fase, se duas ruas que se cruzam são citadas no mesmo tweet, a condição do trânsito é geocodicada correspondendo ao cruzamento. Se há mais de um cruzamento entre os mesmos logradouros, nenhuma geocodicação é feita. Note que, embora tenhamos outras informações sobre a latitude e longitude da rua, consideramos que só é seguro inferir sua localização precisa caso haja mais de uma referência. Caso nenhum local tenha sido identicado, nada é feito. Optamos por essa estratégia para privilegiarmos a precisão na identicação de logradouros e bairros ao diminuirmos o escopo dos locais pontencialmente citados. No futuro, trabalharemos formas de utilizar o casamento fuzzy aproximado de forma que a precisão não seja afetada. 4. BASE DE DADOS DO TWITTER A base de dados criada para testar o método proposto foi extraída do Twitter utilizando um processo controlado. Foram coletados tweets de dez pers cujo propósito principal é informar as condições do trânsito de Belo Horizonte e de outras cidades do país, Além disso, para ns de comparação, foram coletados os tweets postados pelo perl OcialBHTrans, que é o perl do órgão de trânsito de BH, e poderia ser considerado como um ground truth. No futuro, iremos contrastar essas informações com aquelas obtidas por coletas genéricas, mas que trazem outros problemas, tais como identicação de contexto, que teriam que ser considerados. A coleta foi realizada por um período de três meses, entre abril e junho de 2012, e foram coletados tweets dos pers selecionados. Desses, eram repostagens de mensagens de pers dentro do conjunto. Repostagens entre pers foram retiradas por conterem textos semelhantes, restando tweets únicos. 84

92 Fig. 1. Volume de tweets por hora A Tabela I apresenta uma comparação entre os comportamentos do perl ocial da BHTrans e dos outros 10 pers não ociais que também reportam as condições de trânsito da cidade. São apresentados, para o perl ocial e para os outros pers, o número total de tweets, o número de dias no qual houve pelo menos um tweet, o número médio de tweets no tempo total analisado e o número médio de tweets entre os dias ativos (dias com pelo menos um tweet). No total, 91 dias foram analisados. É possível notar que, embora o possua um número médio de tweets por dia signicativamente superior ao número médio de tweets produzidos por algum outro perl individual, esse perl atuou em somente 47 dos 91 dias analisados, enquanto os demais pers cobriram 88 dos 91 dias analisados. Tal fato vai ao encontro do nosso argumento de que existe informação sobre o trânsito espalhada em diversos pers, e que agrupá-la de forma coerente pode gerar informação de melhor qualidade. Table I. Pers Especializados em Trânsito Pers # de tweets # de dias ativos Tweets por dia (média) Tweets por dia ativo (média) OcialBHTRANS ,9 32,8 Outros pers ,7 (por perl) 8,0 (por perl) Total ,9 - Na Figura 1, são apresentados os volumes de tweets do período analisado, agrupados por hora. É possível observar que o volume de tweets a respeito do trânsito é maior no período da manhã, por volta das 9h, e à noite, por volta das 18h. Esse é um indicativo de correlação entre os tweets e os problemas de trânsito do mundo real, já que tais horários são conhecidos pela maior circulação de carros nas cidades. A Tabela II mostra a frequência com que os eventos pré-denidos aparecem nos tweets. Note que certos eventos e condições aparecem com grande frequência. Observamos, em outra análise, não descrita aqui por limitação de espaço, que existe grande correlação entre certos termos. Table II. Eventos e condições de trânsito mais frequentes no conjunto de Tweets Evento/Condição Número de Tweets Evento/Condição Número de Tweets lento 2000 parado 209 acidente 582 liberado 198 retido 499 congestionado 100 normal 373 manifestação 86 intenso 305 interditado 48 atenção 277 complicado 31 85

93 5. EXPERIMENTOS E RESULTADOS O método criado, associado aos tweets coletados, deu origem ao Observatório do Trânsito 1. Para avaliar sua ecácia na localização de eventos, foram anotados manualmente 505 tweets escolhidos aleatoriamente. As anotações incluem os nomes dos logradouros e bairros cuja situação do trânsito foi citada no texto do tweet. Aplicamos então o algoritmo sobre esse conjunto de dados e calculamos a taxa de concordância entre as ruas e bairros encontrados e as anotadas em cada tweet. Dois conjuntos de experimentos foram realizados. O primeiro envolve todos os 505 tweets rotulados (e aparece nas tabelas como Todos os Tweets), inclusive aqueles para os quais o nosso método não encontrou nenhum local. O segundo (Tweets Classicados) considera uma amostra de 3% dos tweets sobre os quais o método utilizado extraiu pelo menos um local, e a precisão é calculada sobre esse número, de modo a medir a precisão das informações que serão efetivamente mostradas para o usuário. Para cada um dos cenários, a precisão foi calculada de duas formas. Para Acerto Completo, um acerto só é contabilizado se o conjunto de locais encontrados é idêntico ao conjunto anotado pelos anotadores humanos, enquanto para Acerto Parcial, o acerto é contabilizado caso o conjunto de locais anotado contenha o conjunto de locais encontrados pelo nosso método. Na última abordagem, estamos interessados em saber se o nosso método consegue extrair, mesmo que de forma incompleta, informações do tweet. As avaliações são feitas considerando a identicação exclusiva de logradouros, a identicação exclusiva de bairros e as duas simultaneamente. A revocação do método é dada pela razão entre o número de tweets que citam pelo menos uma localidade e dos quais o nosso método conseguiu extrair pelo menos um local, mesmo que incorreto, e o número de tweets que citam algum local (de acordo com os anotadores humanos). Table III. Precisão Total (PT), Precisão por Rua (PR) e Precisão por Bairro (PB) pra cada método Baseline Todas as Denições Sem Def. de Bairro PT PR PB PT PR PB PT PR PB Acerto Completo, Todos os Tweets 0,29 0,32 0,73 0,57 0,79 0,73 0,74 0,79 0,90 Acerto Parcial, Todos Tweets 0,98 0,99 0,99 0,88 0,90 0,98 0,82 0,90 0,92 Acerto Completo, Tweets Classicados 0,50 0,52 0,93 0,50 0,80 0,66 0,69 0,75 0,87 Acerto Parcial, Tweets Classicados 0,83 0,87 0,96 0,81 0,84 0,87 0,76 0,87 0,89 Revocação 0,12 0,86 0,95 Na Tabela III, são apresentados os resultados de precisão total (logradouros e bairros) e por logradouro e bairro para cada método utilizado, além da revocação obtida. O método utilizado como baseline consiste em procurar por casamentos perfeitos nos textos com os nomes extraídos dos gazetteers, sem o processamento a partir do qual criamos GEODIC. Para o nosso método, utilizamos as duas estratégias citadas na Seção 3: utilizando a denição do logradouro/bairro (i.e., Avenida Afonso Pena) e não utilizando (i.e., Afonso Pena). Os resultados foram inferiores quando não utilizamos a denição dos logradouros e resolvemos não mostrá-la por falta de espaço. Na Tabela III, são mostrados os resultados do nosso método utilizando a denição de todos os logradouros e bairros (Todas as Denições) e utilizando a denição dos logradouros mas não dos bairros (Sem Def. de Bairro). Os resultados do baseline para acertos parciais apresentaram alta precisão, especialmente ao considerarmos bairros e logradouros individualmente, indicando alta conança na identicação de uma localidade a partir do casamento exato. A precisão no caso dos acertos completos, no entanto, é baixa, especialmente para os logradouros e considerando-se o conjunto completo de tweets analisados

94 Fig. 2. Informações extraídas Além disso, a revocação do baseline é muito pequena, indicando a inviabilidade da identicação das localidades simplesmente a partir do casamento exato. O crescimento da revocação é notável ao aplicarmos o método proposto na Seção 3. Enquanto a porcentagem de tweets para os quais foi possível extrair alguma localização cresceu de 12% para 86%, a maior perda de precisão no acerto parcial, para toda a base analisada, foi de somente 10%. Além disso, o ganho de precisão no acerto completo para ruas foi de 47% para a base completa. Um impacto negativo, no entanto, foi a redução da precisão para o acerto completo dos bairros nos Tweets classicados. O principal motivo desse efeito foi a identicação errônea de alguns bairros pelo cazamento fuzzy, que ocorreu devido a muitos deles terem o nome de palavras relativamente comuns (centro, serra, aeroporto). Finalmente, o relaxamento na exigência da denição para identicação dos bairros proporcionou um aumento de 9% na revocação sobre o método original, com um ganho de precisão de 27% no acerto completo para os bairros. Isso se deve ao fato de muitas referências a bairros serem feitas sem a denição bairro antecendo o nome correspondente. A precisão para o acerto completo para ruas e bairros passou de 57% para 74%. Utilizando o método sem a denição de bairros, analisamos todos os tweets da nossa base, visando quanticar os tipos de conteúdo dos tweets quanto aos tipos dos locais citados. Os resultados são mostrados na Figura 2, em que cada barra representa um grupo de tweets. O primeiro grupo apresenta um ou mais bairros, o segundo um ou mais logradouros, o terceiro exatamente um bairro, o quarto nenhuma localidade, o quinto exatamente um logradouro e o sexto exatamente um bairro e um logradouro. Note o signicativo número de tweets que citam mais do que apenas uma rua, o que favorece a identicação de cruzamentos ou trechos e a consequente geolocalização da mensagem. Na Tabela IV, são apresentadas as precisões para acertos totais e parciais de cada um dos grupos (barras) que aparecem no gráco 2. Foram anotados manualmente 3% de cada um dos grupos. Note que o método proposto tem maior acerto nos grupos em que são encontrados um logradouro e um bairro. Quando não consegue extrair nada, o método esteve certo em 61% dos casos anotados. Table IV. Acerto Total (%) Acerto Parcial (%) Nada Somente um bairro Somente logradouro Um logradouro + um bairro Pelo menos um bairro Pelo menos um logradouro

95 É possível observar, na Tabela IV, que pelo menos uma rua pôde ser identicada em 81% dos tweets analisados, e pelo menos um bairro em 72%. Pode-se notar, também, o ganho de precisão quando mais de uma localidade é identicada, pelo menos para o acerto parcial. Os melhores resultados foram aqueles em que um trecho de uma rua foi identicado, ou seja, em que foram encontrados uma rua e um bairro seccionado por ela. 6. CONCLUSÃO E TRABALHOS FUTUROS Os resultados encontrados apontam para um caminho promissor na identicação de eventos e condições no trânsito a partir de tweets, e ainda existem várias maneiras de melhorá-los. Neste primeiro trabalho, não procuramos identicar casos em que dois ou mais tweets se referem ao mesmo evento ou condição do trânsito, mas de formas diferentes. Um trabalho de caracterização de eventos e condições de trânsito deve ser feito visando agrupar eventos e condições semelhantes, além de permitir a identicação de causalidades. Os eventos e condições de trânsito foram analisados somente de forma pontual, sem levar em conta os padrões temporais que podem ser inferidos a partir dos dados coletados. No fututo, pretendemos estudar e implementar técnicas que possibilitem a identicação de padrões e outliers nos dados. Embora seja possível geocodicar várias ocorrências e condições de trânsito, muitas cam desconhecidas por não sabermos exatamente em qual posição de determinada rua ou bairro um dado evento aconteceu. Uma possível forma de aumentar o número de condições de trânsito geocodicadas é utilizar referências a lugares conhecidos feitas nos tweets, tais como shoppings, bares, praças etc. Por m, um estudo sobre as diferenças de informação obtidas considerando tweets postados por usuários em geral e aqueles postados por usuários especializados em trânsito deve ser feito. O quanto ganhamos tornando a coleta mais complexa? A resposta para essa pergunta virá em trabalhos futuros. REFERENCES Amitay, E., Har'El, N., Sivan, R., and Soffer, A. Web-a-where: geotagging web content. In Proceedings of the 27th annual international ACM SIGIR conference on Research and development in information retrieval. SIGIR '04. ACM, New York, NY, USA, pp , Cardoso, N., Silva, M. J., and Santos, D. Handling implicit geographic evidence for geographic ir. In Proceedings of the 17th ACM conference on Information and knowledge management. CIKM '08. ACM, New York, NY, USA, pp , Cheng, Z., Caverlee, J., and Lee, K. You are where you tweet: a content-based approach to geo-locating twitter users. In Proceedings of the 19th ACM international conference on Information and knowledge management. CIKM '10. ACM, New York, NY, USA, pp , Daniel, B. Handbook of Research on Methods and Techniques for Studying Virtual Communities: Paradigms and Phenomena. Number vol. 1. Igi Global, Delboni, T. M., Borges, K. A. V., and Laender, A. H. F. Geographic web search based on positioning expressions. In Proceedings of the 2005 workshop on Geographic information retrieval. GIR '05. ACM, New York, NY, USA, pp. 6164, Goldberg, D., Wilson, J., and Knoblock, C. From text to geographic coordinates: the current state of geocoding. URISA Journal 19 (1): 3347, Machado, I. M., de Alencar, R. O., de Oliveira Campos Junior, R., and Davis, C. A. An ontological gazetteer and its application for place name disambiguation in text. J. Braz. Comp. Soc. 17 (4): , Navarro, G. A guided tour to approximate string matching. ACM Comput. Surv. 33 (1): 3188, Mar., Pappa, G., Meira Jr., W., Almeida, V., Veloso, A., and da Silva, A. Observatório da web: Uma plataforma de monitoração, síntese e visualização de eventos massivos em tempo real. Anais do XXXVII Seminário Integrado de Software and Hardware, Twaroch, F. A., Smart, P. D., and Jones, C. B. Mining the web to detect place names. In Proceedings of the 2nd international workshop on Geographic information retrieval. GIR '08. ACM, New York, NY, USA, pp. 4344,

96 Ranqueamento Supervisionado de Autores em Redes de Colaboração Cientíca Paulo J. L. Alvarenga 1, Marcos A. Gonçalves 2, Daniel R. Figueiredo 3 1 Universidade Federal de Itajubá 2 Universidade Federal de Minas Gerais 3 Universidade Federal do Rio de Janeiro Abstract. The problem of ranking in collaboration networks consists in determining an ordering of researchers according to their inuence or prestige using network metrics. This paper proposes a supervised machine learning approach that combines four metrics to rank nodes. Experiments using a database of Brazilian researchers in Computer Science and taking as reference the Research Productivity scholarships from CNPq assigned to researchers show 11% gains on average precision in comparison with results obtained with state-of-the-art metrics used in isolation. Resumo. O problema de ranqueamento em redes de colaboração cientíca consiste em denir uma ordenação dos pesquisadores de acordo com sua inuência ou prestígio utilizando métricas da rede. Este artigo apresenta uma abordagem baseada em aprendizagem de máquina supervisionada que combina quatro métricas para produzir o ranqueamento. Experimentos realizados em uma base de dados com pesquisadores brasileiros da área da Ciência da Computação tendo como referência a bolsas de Produtividade em Pesquisa do CNPq alocadas aos pesquisadores, demonstraram ganhos de até 11% na precisão média em relação aos resultados obtidos com métricas do estado-da-arte quando utilizadas isoladamente. Categories and Subject Descriptors: H. Information Systems [ H.m. Miscellaneous]: Machine Learning General Terms: Machine Learning, Authors Ranking, Collaboration Network Keywords: Supervised Learning, Ranking, Collaboration Network 1. INTRODUÇÃO Redes de colaboração cientíca representam alguma relação de cooperação entre um conjunto de pesquisadores ou grupos de pesquisa. Uma destas redes mais estudadas é formada por vértices que representam indivíduos (pesquisadores) e arestas que representam publicações cientícas em co-autoria. Ou seja, dois indivíduos estão relacionados (possuem uma aresta) se eles são co-autores de ao menos um artigo cientíco. Arestas destas redes geralmente possuem pesos que reetem a intensidade da colaboração entre os indivíduos. O número de artigos publicados em conjunto normalizado pelo número de co-autores de cada artigo é um exemplo de peso para capturar a intensidade da colaboração [Newman 2004a]. Diferente nalidades levam ao estudo de redes de colaboração cientíca, tais como indenticação de grupos coesos, recomendação para colaborações, e ranqueamento de indivíduos ou grupos. Neste último, o objetivo é denir um ranqueamento que capture a infuência ou prestígio dos pesquisadores utilizando principalmente métricas obtidas da rede de colaboração cientíca, tais como o grau dos vértices, o peso em arestas incidentes, e distâncias entre vértices. De fato, este é um problema que vem sendo explorado na literatura [Freire and Figueiredo 2011; Newman 2004a; 2004b]. Um ranqueamento consistente de pesquisadores possui diversas aplicações, tais como ajudar nas decisões ligadas a processos de promoção, alocação de recursos nanceiros, e ranqueamento de artigos cientícos. 89

97 O ranqueamento de pesquisadores em redes de colaboração é geralmente realizado utilizando uma única métrica obtida da rede de colaboração [Freire and Figueiredo 2011; Newman 2004a]. Entretanto, métricas distintas quando comparadas diretamente normalmente levam a diferentes ranqueamentos [Freire and Figueiredo 2011], o que é natural uma vez que diferences métricas podem capturar diferentes aspectos da inuência dos pesquisadores. Desta forma, é interesssante considerar algoritmos de ranqueamento que considerem diferentes métricas obtidas da rede de colaboração cientíca e as combine de acordo com aspectos estruturais do problema. De fato, esta abordagem melhor reete o processo real de ranqueamento de pesquisadores, que geralmente combina diferentes critérios para estabelecer um ranqueamento. Neste trabalho propomos o uso de algoritmos de learning to rank (aprender a ranquear) para combinar diferentes métricas de forma automática para produzir melhores ranqueamentos de pesquisadores. Algoritmos de learning to rank são algoritmos de aprendizado de máquina supervisionado especialmente projetados para otimizar uma determinada métrica de ranqueamento (e.g., precisão média). Em particular, iremos aplicar um algoritmo tradicional e eciente conhecido por RankSVM [Joachims 2002; Tsochantaridis et al. 2006]. Para avaliação e comparação do método iremos considerar a base de dados de pesquisadores brasileiros da área de Ciência da Computação e as seguintes métricas:: (i) número de publicações com ao menos um co-autor; (ii) número de colaboradores; (iii) intensidade de colaboração fora do conjunto de brasileiros. Esta última métrica foi proposta em [Freire and Figueiredo 2011] e uma comparação entre as métricas (isoladamente) foi realizada no mesmo trabalho tendo como critério a alocação de bolsas de Produtividade de Pesquisa realizadas pelo CNPq. Nossos experimentos apresentam ganhos de até 11% na precisão média quando comparados com o ranqueamento obtido com as mesmas métricas consideradas isoladamente. Esse artigo está organizado da seguinte forma. Seção 2 cobre os trabalhos relacionados, incluindo as métricas de ranqueamento denidas que seram consideradas. Seção 3 apresenta o funcionamento do algoritmo de SVM-Rank. Seção 4 apresenta a avaliação experimental, incluindo as métricas para avaliação do ranqueamento e discussão dos resultados obtidos. Por m, Seção 5 apresenta conclusões e trabalhos futuros. 2. TRABALHOS RELACIONADOS O problema de ranqueamento em redes de colaboração cientíca vem sendo discutido na literatura [Freire and Figueiredo 2011; Newman 2004a; 2004b]. Em [Freire and Figueiredo 2011] os autores propõe uma nova métrica para ranqueamento baseada na intensidade de colaboração dos pesquisadores com o exterior de um determinado conjunto (ex. conjunto dos pesquisadores brasileiros dentro da rede de todos os pesquisadores). O artigo também realiza uma comparação entre três métricas distintas utilizando a base de dados do DBLP 1 tendo como referência pesquisadores com bolsa de Produtividade em Pesquisa do CNPq. A métrica proposta se mostra superior às outras quando comparando a precisão e abrangência na recuperação de pesquisadores 1A e 1B dentro do universo de pesquisadores brasileiros. Neste trabalho iremos combinar todas as métricas apresentadas e comparadas em [Freire and Figueiredo 2011] utilizando o algoritmo ranksvm (detalhes na seção 3) para produzir o ranqueamento dos pesquisadores. Nossa avaliação irá utilizar a mesma base de dados utilizada em [Freire and Figueiredo 2011] assim como o mesmo padrão de referência. Uma descrição sucinta das métricas e da base se encontra na Seção 4 e maiores detalhes estão disponíveis em [Freire and Figueiredo 2011]. Por m, iremos utilizar uma outra métrica para avaliação do ranqueamento dos pesquisadores, conhecida como ndcg (descrita sucintamente na Seção 4). 1 Disponível publicamente em ley/db/ 90

98 3. O MÉTODO DE LEARNING TO RANK Nessa Seção apresentamos o funcionamento básico dos Support Vector Machines (SVMs), um método de classicação do estado-da-arte, e da extensão proposta para esse dar suporte ao ranqueamento. 3.1 Funcionamento do SVM O SVM (Support Vector Machine), também conhecido como kernel machine, é um método de denição de um hiperplano de margem máxima (Maximum Margin hyperplan), que possibilita que o modelo seja escrito como a soma de inuências de um subconjunto das instâncias de treino. Essas inuências são dadas por núcleos de similaridade especicados pela aplicação, podendo ser lineares, radiais, entre outras [Alpaydin 2010]. O objetivo do SVM é a classicação de elementos, ou seja, identicar a classe dos elementos analisados, de acordo com a posição que o elemento se encontra no hiperplano. Como exemplo, para nosso caso de pesquisadores, poderíamos tentar descobrir se, de acordo com as entradas, um pesquisador pertence à classe 2 ou não. Sendo assim, o SVM com núcleo linear traça um hiperplano n-dimensional linear (onde n é o número de características informadas para cada indivíduo) para separar os pesquisadores de classe 2 dos demais pesquisadores. Dada a função do hiperplano para identicação da classe de cada autor, basta fornecer seus dados, e a função do SVM é posicionar o autor como antes do hiperplano abaixo da margem negativa como não pertencendo à classe, ou após o hiperplano acima da margem positiva na qual o elemento é caracterizado como pertencendo à classe analisada. A tarefa de identicar o hiperplano de corte pode ser formulada como um problema de otimização convexo, no qual existe um único ótimo que pode ser resolvido analiticamente [Alpaydin 2010]. Em alguns casos, ditos não linearmente separáveis, o hiperplano linear traz muitos erros. Para esses casos, é comum usar outros tipos de funções, como funções radiais, que é o caso deste trabalho, com o núcleo RBF (radius based function). A ideia é similar à do linear, porém agora o objetivo é circunscrever os elementos de determinada classe, mantendo os elementos que não pertencem à classe fora da circunscrição formulada. Neste trabalho foi usado o núcleo RBF, pois um teste preliminar usando o SVM linear (ou seja, sem uso de kernel) não obteve resultados satisfatórios. 3.2 Funcionamento do SVMRank Em [Joachims 2002] é proposta uma alteração ao SVM capaz de utilizá-lo para o ranqueamento de documentos, e não somente para a classicação. A proposta é dada da seguinte forma: ao analisar o SVM, é possível transformar o mapeamento no qual um elemento é alocado a uma classe em um vetor peso P, ortogonal ao hiperplano que separa as classes. Sendo assim, o ranqueamento dos elementos pode ser dado pela distância entre o mapeamento do elemento no plano e a margem que separa a classe. Desse modo, o peso P positivo favorece o elemento quanto maior for o peso que indica que ele pertence à classe, e negativo quanto maior a distância que indica que ele não pertence à classe (menor peso). Logo, o ranqueamento é dado diretamente pelo cálculo de P, o que permite seu uso nos diversos núcleos disponíveis para o SVM, como o RBF, que foi o escolhido para este trabalho. 4. AVALIAÇÃO EXPERIMENTAL Descrevemos inicialmente as características da base de dados utilizada, seguido pela descrição das métricas de avaliação, do procedimento experimental adotado, e nalmente dos resultados obtidos. 4.1 Descrição dos dados utilizados A base utilizada neste artigo é a mesma de [Freire and Figueiredo 2011], onde construiu-se uma rede de colaboração cientíca utilizando a base de dados do DBLP obtida em julho de A DBLP é uma 91

99 base de dados pública com informações bibliográcas de periódicos e conferências principalmente da área de Ciência da Computação, e contava na época com mais de 1,3 milhões de publicações e 750 mil pesquisadores. Apesar de ser uma referência mundial e usada pela comunidade acadêmica para busca de informação bibliográca, sua cobertura é limitada quando considerando conferências e periódicos brasileiros e algumas subáreas da Ciência da Computação. Um total de 2733 pesquisadores ligados ao Brasil foram identicados nesta rede (detalhes em [Freire and Figueiredo 2011]), entretanto, iremos considerar neste trabalho apenas 378 pesquisadores, que são os que recebiam bolsa de Produtividade em Pesquisa do CNPq em O CNPq divide seus pesquisadores associados em duas categorias, 1 e 2, sendo que a categoria 1 é subdividida em quatro níveis, A, B, C e D. As diferentes categorias são usadas para reetir senioridade, produtividade e impacto dos pesquisadores e é também relacionado ao valor monetário do associado. A categoria 2 serve em sua maioria jovens pesquisadores, enquanto a categoria 1 requer pelo menos oito anos desde a obtenção do título de doutorado. A categoria 1A é a mais prestigiosa, e é reservada para pesquisadores que mostraram excelência continuada em produção cientíca e treinamento de recursos humanos, e são membros de grupos de pesquisa consolidados. A lista dos bolsistas associados é disponibilizada publicamente e mantida pelo CNPq. Esta categorização será usada como identicador da importância de cada pesquisador a ser ranqueado, logo, será considerada a métrica alvo para o ranqueamento. 4.2 Métricas de avaliação Existem diferentes métricas que são comumente usadas para avaliar a qualidade de um ranqueamento. Neste trabalho, iremos utilizar o ndcg (Normalized Discounted Cumulative Gain ou ganho acumulado descontado normalizado), o qual é capaz de lidar com múltiplos níveis de relevância dos elementos do ranqueamento. Para obter-se o ndcg, primeiro obtemos o CG (ganho acumulado), distribuindo a cada elemento a ser recuperado um valor de ganho (o que chamaremos vetor G). O ganho acumulado em uma posição de ranqueamento i é computado pela soma de G nas posições 1 a i. Portanto, o CG pode ser obtido recursivamente como um vetor CG[i], denido como: { G[1], se i = 1; CG[i] = (1) CG[i 1] + G[i], caso contrrio. Para reduzir a pontuação do ranqueamento à medida que ele progride, porém com menores ganhos, é usada uma função de desconto, frequentemente usada na literatura como o log na base b da posição do ranqueamento, também recursivamente denida como: { CG[i], se i < b DCG[i] = (2) DCG[i 1] + G[i]/ b log(i) se i >= b. Por m, para deixar os valores relativos à medida ideal, calcula-se o ndcg de cada posição i dividindose o DCG[i] pelo DCG[i] ideal (ou seja, o DCG[i] que teria precisão 100% em todos os níveis de evocação, obtido a partir do ranqueamento a partir dos ganhos em ordem decrescente). Maiores detalhes e comparações entre o ndcg e outras medidas de avaliação podem ser obtidas em [Järvelin and Kekäläinen 2002]. 4.3 Procedimento Experimental O modelo de validação utilizado em nosso experimento foi o repeated 3-fold cross-validation. Em conformidade com o 3-fold cross-validation, esses dados foram divididos em três partições diferentes. Cada partição possui uma quantidade igual de autores para cada classe de bolsista CNPq 2. Apesar de 2 O objetivo é que cada um tivesse a mesma quantidade, nem todos os níveis de pesquisadores apresentavam quantidade múltipla de três. Em todos os casos houve resto 2, e escolhemos distribuir os restos sempre entre a primeira e a segunda 92

100 garantida a quota mínima de autores por classe de bolsista CNPq, cada partição possui um subconjunto aleatório e disjunto de autores de cada classe. Com a nalidade de garantir variedade no treino, foram criados 10 agrupamentos diferentes, cada um contendo três partições. Dessa forma é feito o repeated 3-fold cross-validation, no qual é repetido o processo do 3-fold cross-validation em cada um dos 10 grupos, e ao nal todo o conjunto é analisado. O processo de treinamento consiste em três fases: (1) Geração de um modelo, na qual o modelo é treinado a partir de uma da primeira partição; Este modelo é gerado pela ferramenta svm_rank_learn. 3 O Kernel usado foi o RBF, que precisa ser congurado a partir de dois parâmetros: -c (trade-o entre o erro de treinamento e margem); e -g (parâmetro gamma da função radial usada na RBF). Foram feitos experimentos variando tanto c quanto gamma calculados a partir de valores 2 i, sendo c de 2 5 a e gamma de 2 15 a 2 3, usando i com passo 2. (2) Validação do modelo com a segunda partição, a m de fazer a seleção de parâmetros, ou seja, identicar os parâmetros cuja conguração fornece o melhor resultado; Para cada modelo gerado na etapa 1, foi executado o ranqueamento da segunda partição, e, posteriormente, calculados os valores ndcg, para obter a precisão do ranqueamento dado. O teste foi feito com o algoritmo svm_rank_test[joachims 2006]. (3) Teste do modelo com a terceira partição, a m de vericar a eciência da conguração em um grupo de autores não analisado. Para os melhores parâmetros identicados no passo 2, são validados os resultados na terceira partição, fazendo novamente a vericação do ndcg, para obter a conabilidade do treinamento. Com a nalidade de garantir a equidade dos testes, os três passos descritos foram feitos para três combinações das partições. A primeira combinação usou a primeira, segunda e terceira partições para as três etapas descritas: treino, validação e teste, respectivamente. A segunda combinação usou a segunda, terceira e primeira partições, respectivamente, e a terceira combinação, da mesma forma, usou a terceira, primeira e segunda. Ao nal é contabilizada a média dos ndcgs em cada posição, que é o resultado do 3-fold cross-validation. 4.4 Modelagem adotada Como iremos utilizar um algoritmo de aprendizado de máquina supervisionado, é necessário conhecer o resultado (classicação) desejado no momento do treinamento. Dessa forma, somente os 378 pesquisadores bolsistas do CNPq serão utilizados neste artigo, tanto para treinar o modelo quanto para avaliá-lo posteriormente. Além disso, a categoria do bolsista será considerado um ranqueamento natural dos pesquisadores, representando a inuência ou prestígio de cada pesquisador. Ou seja, a ordenação ideal apresentaria os pesquisadores agrupados na ordem 1A, 1B, 1C, 1D, 2. As seguintes métricas da rede de colaboração foram utilizadas pelo algoritmo (ver detalhes em [Freire and Figueiredo 2011]): (1) número de artigos publicados (de acordo com a base da DBLP em junho de 2009); (2) número de co-autores (grau do vértice na rede de colaboração); (3) peso do vértice (métrica denida em [Newman 2004a]), que representa o número de publicações com ao menos um co-autor; (4) peso do vértice no corte (métrica denida em [Freire and Figueiredo 2011]), que representa a intensidade de colaboração entre o pesquisador (brasileiro) e pesquisadores fora do conjunto dos pesquisadores brasileiros. partições, deixando a terceira partição ligeiramente menor 3 O algoritmo, assim como explicação de uso, está disponível para download em: tj/svm_light/svm_rank.html 93

101 Para os testes, o conjunto de 378 pesquisadores foi dividido em três partições. As duas primeiras possuem 127 autores e a terceira partição possui 124 pesquisadores. A opção de deixar sempre a terceira partição menor tem como objetivo permitir a comparação entre todas as partições e melhor identicar se o uso de menor quantidade de autores causaria algum ruído. A seguir é mostrada a quantidade de cada classe, assim como quantos pesquisadores dessa classe foram aleatoriamente distribuídos em cada partição: 1A: 21 autores 7 para cada partição 1B: 23 8 para as duas primeiras, 7 para a última 1C: para as duas primeiras, 10 para a última 1D: para as duas primeiras, 19 para a última 2: para cada partição A categoria da bolsa do CNPq foi escolhida como a classe de cada pesquisador durante o treinamento. Neste raciocínio, autores 1A devem ocupar as primeiras posições do ranqueamento, seguidos por 1B, 1C, 1D, e nas últimas posições do ranqueamento estariam os pesquisadores de nível 2. Para o uso no SVM, foi distribuída a cada classe um peso decrescente, recebendo 1A, 1B, 1C, 1D e 2, respectivamente, os pesos 6, 5, 4, 3 e 2, pesos estes que foram usados no cálculo do ndcg. Além disso, de modo a fazer com que os atributos de entrada fossem comparáveis entre si, todos foram normalizados, para assumirem um valor proporcional entre 0 e 1, de acordo com a fórmula: max{x (i) k x (i) j min{x (i) k, k = 1,..., N (i) }, k = 1,..., N(i)} min{x(i) k, k = 1,..., N (i) } A fórmula tem como resultado o valor normalizado de cada atributo x (i) j, para um dos N atributos i do autor j. 4.5 Resultados A partir dos testes realizados foi calculado o ndcg médio de cada posição, proveniente das 10 experimentações obtidas pela validação cruzada, de acordo com os parâmetros escolhidos. Esta média foi comparada com os valores relativos ao uso das métricas geradas no experimento que usamos como base [Freire and Figueiredo 2011]. A título de comparabilidade com os resultados do artigo base, foi mantida a nomenclatura das métricas, sendo elas: Degree: número de colaboradores de cada autor; w(v) peso do vértice, de acordo com Newman, q(v) o peso de corte do vértice. O valor médio de cada ndcg calculado pela validação cruzada sobre o ranqueamento baseado em cada uma das métricas é apresentado no gráco 1. Ainda com base neste gráco, analisando os mínimos e máximos de ndcg em cada posição, temos: SVM-Rank: 67% e 90%; Degree: 56% e 88%; w(v): 61% e 89%;q(v): 53% e 87%. Considerando estes números isoladamente, houve uma leve melhoria no ndcg máximo, porém o ndcg mínimo é superior ao mínimo das demais métricas, garantindo uma qualidade mínima do resultado como um todo. Além disso, foi possível obter uma combinação capaz de trazer um ranqueamento predominantemente melhor para os primeiros 15 pesquisadores (num resultado perfeito, as 15 primeiras posições teriam apenas os pesquisadores 1A seguidos pelos pesquisadores 1B). Apesar disso, a métrica w(v) ainda foi, na média, melhor que o algoritmo proposto. Isso é devido ao ranqueamento de um pesquisador nível 2 que, de acordo com todas as métricas, exceto w(v), era ranqueado em primeiro lugar. Em quase todos os experimentos este pesquisador também foi ranqueado em primeiro lugar, o que trouxe um primeiro lugar inferior ao de w(v). Apesar de indesejável, tal problema é esperado, visto que o ranqueamento aprendido é afetado diretamente pelas bases usadas para aprendizagem. 94

102 Fig. 1. Comparativo entre o método proposto e as métricas isoladas Para validar se o uso da combinação das métricas a partir do SVM é realmente melhor, foi feita uma validação estatística usando o Wilcoxon Signed-Rank Test, que é um t-test para amostras correlacionadas. Foi usado o ndcg para cada uma das 124 posições, obtido pelo uso do SVM-Rank, e este foi pareado com o ndcg combinado das três métricas usadas no baseline, sendo que nesta combinação foi considerado apenas o melhor ndcg dentre os obtidos pelas métricas base para a posição especíca - no nosso experimento, foi usado predominantemente o ndcg de w(v). O teste pareado foi feito com todos os valores das 10 execuções, totalizando 1240 amostras de resultados de ranking. O resultado obtido foi valor W = , n ( s/r) = 1238, z = 16, 96, o que implica que o uso do SVM-Rank para ranquear baseado no uso das outras métricas com signicância maior que 99,9% que apenas a escolha manual de cada um dos melhores resultados, de cada métrica considerada isoladamente. A distribuição da média desses resultados pode ser percebido no gráco 2. Fig. 2. Percentual de melhoria do método proposto em relação à união dos melhores resultados de todas as métricas Neste caso, o primeiro valor do ndcg foi 2,94% pior do que as bases usadas. Mais uma vez, nota-se a inuência na primeiro pesquisador recuperado ser de nível 2. Uma das possibilidades dessa ocorrência é que um pesquisador não pode ser nível 1 se ele possui menos de 8 anos de conclusão de doutorado (regra usada pela classicação CNPq), porém o perl de publicações e colaboração em redes de pesquisa deste pesquisador seja a de um pesquisador de um nível mais alto, como 1A. Deste modo, torna-se necessário também vericar a inuência do tempo de conclusão do doutorado no ranqueamento do pesquisador. No entanto, em todos os outros resultados houve melhoria, chegando 95

103 ao ápice de melhoria no que se apresentou 11,55% superior à melhor entre as métricas comparadas. 5. CONCLUSÃO E TRABALHOS FUTUROS Em nosso modelo foi possível, a partir de dados de rede de colaboração de autores, aplicar a técnicas de learning to rank, mais especicamente, com uso do algoritmo SVM-Rank, de modo a obter melhoria em ranqueamento de autores. Foi usado o método repeated 3-fold cross validation, a partir do qual foi possível constatar a melhoria de até 11,55% no cálculo do ndcg, comparado com os resultados das bases comparadas. Portanto, o uso do algoritmo SVM-Rank para a tarefa mostrou-se promissor. Apesar dos resultados, é reconhecido o impacto de outros fatores na inuência do ranqueamento de autores. No caso da classicação do CNPq, todos os pesquisadores com menos de 8 anos de conclusão do doutorado não podem ser classicados como nível 1. Logo, vericar o impacto da idade nessa classicação se faz necessário e é uma próxima investigação natural a ser feita. Outro fator que inuencia na classicação do CNPq é a formação de prossionais (orientações de mestrado e doutorado), que poderá ser levantada para geração do modelo. Quanto ao algoritmo SVM-Rank, a necessidade de dados rotulados para treino limitou a quantidade de indivíduos disponível para a análise, e outro trabalho futuro é a vericação de outros métodos para obter rótulos de indivíduos automaticamente. Uma possibilidade é o uso de aprendizagem de máquina semi-supervisionada, como o uso do Expectation-Maximization, de modo a adicionar apenas autores rotulados articialmente enquanto se garante o ganho de informação. Finalmente, de modo a poder aplicar o modelo a pesquisadores de todo o mundo, e não somente aos pesquisadores brasileiros, é necessário investigar uma maneira de separar meritocraticamente os autores internacionalmente, ou, caso se verique uma similaridade de comportamento, vericar a compatibilidade com o modelo proposto. 6. RECONHECIMENTOS Este trabalho recebeu apoio do InWeb (MCT/CNPq subsídio /2008-6) e de subsídios individuais aos autores providos por CNPq, CAPES e FAPEMIG. REFERENCES Alpaydin, E. Introduction to machine learning. The MIT Press, Freire, V. and Figueiredo, D. Ranking in collaboration networks using a group based metric. Journal of the Brazilian Computer Society, Järvelin, K. and Kekäläinen, J. Cumulated gain-based evaluation of ir techniques. ACM Trans. Inf. Syst. 20 (4): , Oct., Joachims, T. Optimizing search engines using clickthrough data. In Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, pp , Joachims, T. Training linear svms in linear time. In Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, pp , Newman, M. Who is the best connected scientist? a study of scientic coauthorship networks. Complex networks, 2004a. Newman, M. E. J. Coauthorship networks and patterns of scientic collaboration. Proc. Natl. Acad. Sci. (PNAS) 101 (Suppl 1): , 2004b. Tsochantaridis, I., Joachims, T., Hofmann, T., and Altun, Y. Large margin methods for structured and interdependent output variables. Journal of Machine Learning Research 6 (2): 1453,

104 Novas políticas de divisão de nós para a Slim-tree Jéssica A. de Souza 1, Humberto L. Razente 1, Maria Camila N. Barioni 2 1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC (CMCC/UFABC) 2 Faculdade de Computação Universidade Federal de Uberlândia (FACOM/UFU) Abstract. This paper presents two new node split policies for the Slim-tree. When compared with the previously proposed policies they result in better distribution of elements on the tree nodes. This impacts positively on the performance of similarity queries such as nearest neighbors. The experimental results show that trees built with the proposed policies outperform those built with the above with regard to the number of disk accesses, the amount of distance calculations and time required for queries. Resumo. Este artigo apresenta duas novas políticas de divisão de nós para a construção da Slim-Tree que, quando comparadas com as políticas propostas anteriormente, resultam em uma melhor distribuição dos elementos nos nós da árvore, o que impacta positivamente no desempenho da realização de consultas por similaridade, como as consultas aos vizinhos mais próximos. Os resultados experimentais apresentados demonstram que as árvores construídas com as políticas propostas superam as construídas com as anteriores tanto em relação ao número de acessos a disco quanto em relação a quantidade de cálculos de distância e o tempo requeridos para a realização de consultas. Categories and Subject Descriptors: H.3 [Information Storage and Retrieval]: Miscellaneous Keywords: Métodos de Acesso Métricos, Slim-tree, Consultas por Similaridade 1. INTRODUÇÃO A manipulação eciente de dados complexos tem sido objeto de estudo de pesquisadores da área de Banco de Dados que têm contribuído com o estudo e a proposta de novas estruturas de indexação e operações de consulta especialmente desenvolvidas para atender as especicidades dos domínios desses dados. Para dados complexos como os dados multimídia (por exemplo: imagens, vídeo e áudio) a otimização de operações de consulta são normalmente consideradas dentro do escopo do espaço métrico com a utilização de estruturas de indexação conhecidas como Métodos de Acesso Métricos (MAMs). Os principais objetivos dos MAMs consistem em reduzir o número de cálculos de distância e o número de acessos a disco na execução de operações de consultas baseadas em distância, isto é, operações que envolvam cálculos de similaridade. Diversos trabalhos foram propostos para criação de estruturas ecientes com a intenção de atingir simultaneamente esses dois objetivos. A idéia básica dessas estruturas consiste na escolha de um elemento arbitrário central e na aplicação de uma função de distância para dividir os demais elementos em vários subconjuntos. Uma visão geral sobre os MAMs comumente citados na literatura pode ser encontrada em [Zezula et al. 2006; Samet 2006]. Um problema comum a todos os MAMs está relacionado à sobreposição dos nós. À medida que a sobreposição aumenta, a eciência das estruturas diminui, uma vez que todos os nós cobertos por uma região de consulta têm que ser processados durante uma operação de busca. O ideal seria que uma árvore considerada boa tivesse pouca sobreposição nas suas entradas indexadas. Uma das primeiras estruturas a ser desenvolvida com o objetivo de lidar com essa questão foi a Slim-Tree [Traina-Jr. Trabalho realizado com apoio nanceiro da FAPESP (Processo 2011/ ), CNPq (Universal /2011-2), CAPES e PROPP/UFU. 97

105 et al. 2002] que provê mecanismos para mensurar o grau de sobreposição entre os nós da árvore ( fatfactor), e para reorganizar a árvore (Slim-down). Estudos mais recentes apresentam o quão relevante e importante ainda é o tratamento dessa questão. Por exemplo, [Lim et al. 2006] apresenta uma nova política de divisão de nós para a M-Tree que se baseia na escolha de elementos centrais de regiões particionadas para eleger os representantes de cada nó e assim conseguir obter um menor grau de sobreposição entre os nós da árvore. O trabalho de [Skopal and Loko 2009] apresenta duas novas técnicas para a realização de inserções dinâmicas aplicadas a M-Tree. Elas utilizam a estratégia de reinserções forçadas para evitar que nós folhas, que estejam prestes a atingir sua capacidade máxima, sejam divididos. Dessa forma, tanto o número de cálculos de distância quanto o de acessos a disco serão reduzidos. Outra abordagem para o tratamento dessa questão que propõe uma operação de carga rápida com base em um conjunto de dados estático para a Slim-Tree é apresentada em [Vespa et al. 2010]. Com o objetivo de contribuir para o tratamento desta questão, este artigo apresenta duas novas políticas de divisão de nós para a Slim-Tree que foram propostas com base na identicação de situações desfavoráveis às políticas tradicionais existentes para esse MAM. Os resultados experimentais iniciais obtidos (com conjuntos de dados sintéticos e reais) ajudam a corroborar as hipóteses levantadas e a direcionar a realização de trabalhos futuros. O restante do artigo está organizado como descrito a seguir. A Seção 2 apresenta a descrição do problema abordado no artigo. As novas políticas de divisão propostas são descritas na Seção 3. A discussão a respeito dos resultados experimentais obtidos é apresentada na Seção 4. E, as conclusões e os trabalhos futuros são descritos na Seção DESCRIÇÃO DO PROBLEMA Uma das considerações básicas ao avaliar a eciência de estruturas de indexação baseadas em árvore, como para todas as estruturas de dados, é o tempo. No caso dos MAMs o tempo, tanto para a construção quanto para a realização de operações de busca na estrutura, é avaliado pelo número de cálculos de distância necessários. Assim, essa é uma questão importante a ser considerada no momento da denição de novas estratégias e algoritmos. Para a realização de buscas nessas estruturas um fator que inuencia diretamente na quantidade de cálculos de distância é a sobreposição existente entre os nós. Pois, nós sobrepostos não podem ser podados no momento da busca o que faz com que um maior número de elementos tenha que ser vericado. Dessa maneira, a busca por estratégias empregadas na construção de MAMs que minimizem a sobreposição entre nós é uma questão essencial para se atingir a escalabilidade de operações de busca realizadas a partir dessas estruturas. O principal procedimento empregado no processo de construção de MAMs é o responsável pela divisão dos nós que ocorre quando o nó no qual um novo elemento deveria ser inserido já se encontra completo. A Slim-Tree possui três políticas de divisão para a escolha de elementos representantes dos novos nós: a Random, a MinMax e a MST (Minimum Spanning Tree). As duas principais são a MinMax e a MST, apresentando respectivamente complexidades no número de cálculos de distândia de O(S 3 ) e O(S 2 log(s)), sendo S o número de elementos do nó. Dentre essas políticas a MinMax tem sido considerada a mais promissora no processamento de consultas em estruturas de indexação baseadas na M-Tree, como a Slim-Tree. Uma política de divisão ideal deve eleger dois elementos como representantes e particionar os demais elementos em duas regiões gerando árvores com o mínimo de sobreposição possível, possibilitando a realização de consultas mais ecientes. A política de divisão Random é rápida, pois executa um menor número de cálculos de distância, mas as árvores resultantes não apresentam bom desempenho na realização de consultas. A estratégia aleatória adotada no processo de escolha dos elementos representantes não garante que os dois elementos eleitos resultem em árvores pouco sobrepostas. A estratégia adotada pela política MinMax busca minimizar o raio de cobertura no momento da seleção dos representantes e para tanto necessita de um elevado número de cálculos distância (veja uma 98

106 ilustração dessa estratégia na Figura 1(a)). Entretanto, apesar de obter raios mínimos essa estratégia não garante que eles não estejam sobrepostos. A estratégia empregada pela política MST consiste em separar os elementos em dois agrupamentos por meio da remoção de uma das maiores arestas de uma MST gerada, seguido pela escolha do elemento mais central de cada agrupamento como representante do nó. A estratégia de remoção das maiores arestas de uma MST para a separação de agrupamentos foi proposta em [Zahn 1971]. Entretanto os MAMs são estruturas baseadas em páginas de disco de tamanho xo e construção bottom-up, e uma divisão desbalanceada poderá resultar em uma nova divisão após poucas inserções. A presença de outliers durante uma divisão de nó agrava esse comportamento. Uma ilustração dessa situação pode ser vista na Figura 1(b). r 1 s 2 r 2 s 1 maior aresta (a) (b) Fig. 1. Estratégias MinMax e MST. (a) processo de seleção de um par de elementos representantes e (b) divisão com base na MST e a identicação da maior aresta a ser removida. 3. POLÍTICAS DE DIVISÃO PROPOSTAS Esta seção apresenta as duas novas políticas de divisão para a Slim-Tree que consideram a questão de dividir um conjunto de elementos S de um nó em dois novos nós de maneira que a árvore resultante apresente um menor grau de sobreposição, objetivando a geração de árvores que resultem em melhor desempenho na realização de consultas e que tenham tempo de construção minimizado. Essas estratégias são baseadas em heurísticas conhecidas e também podem ser empregadas por outros MAMs, como a M-Tree e suas variações. 3.1 Dissimilaridade Máxima (DM) Essa política foi proposta partindo da suposição de que é possível obter uma menor sobreposição entre os nós distribuindo o conjunto de elementos S em relação aos dois elementos mais dissimilares desse conjunto. Assim, a estratégia inicia pela busca de um par de elementos cuja distância seja maximizada (s 1, s 2 ) S, como na heurística utilizada em [Faloutsos and Lin 1995], que evita a comparação entre todos os elementos por meio da seleção de elementos aleatórios e computação de distância para os elementos do conjunto. O conjunto de dados S, então, é dividido em dois grupos, i.e., os elementos mais próximos do elemento s 1 são atribuídos ao primeiro grupo e, os elementos mais próximos do elemento s 2 são atribuídos ao segundo grupo. Por m, o elemento central de cada um dos dois agrupamentos resultantes é selecionado como representante do nó. Essa estratégia equivale a criar um hiperplano equidistante de s 1 e s 2 que separa os elementos do nó em dois grupos. A Figura 2 (a) ilustra a estratégia adotada por essa política. 3.2 Soma das Distâncias do Caminho (SDC) Essa política tem como objetivo evitar o desbalanceamento que pode ocorrer na divisão dos nós com a política MST [Traina-Jr. et al. 2002]. Para tanto, a abordagem adotada para a distribuição dos 99

107 elementos entre os nós baseia-se no cálculo do somatório das distâncias dos elementos considerados na geração da MST baseando-se no algoritmo de Prim. A ideia é denir um valor limite (limiar) como sendo a metade desse somatório e então dividir os elementos em dois grupos de acordo com esse limiar. O objetivo é gerar dois agrupamentos cuja dissimilaridade intra-grupo seja minimizada, resultando em raios de cobertura menores, ao mesmo tempo em que a quantidade de elementos entre os dois grupos seja equilibrada. Em seguida, o elemento mais central de cada grupo é selecionado como representante. A Figura 2 (b) ilustra a ideia dessa política. s 1 s 2 s 1 s 2 (a) 0 Soma das distâncias= (b) > Limiar <= Limiar Fig. 2. Novas estratégias de divisão: (a) seleção de um par de elementos cuja distância seja máxima e divisão do nó e (b) apresenta a construção da MST com quatro elementos, em seguida a divisão pelo resultado do limiar adquirido pela soma das distâncias ao percorrer a árvore geradora EXPERIMENTOS Os experimentos foram executados em um Intel Core i5 de 3.2GHz, 4GB de RAM, disco rígido de 250 GB e sistema operacional GNU/Linux. As estratégias foram implementadas dentro da mesma plataforma usando a linguagem de programação C++ com o uso da Arboretum MAM library 1. Para a avaliação das políticas propostas foram empregados conjuntos de dados sintéticos e reais. Ao todo foram gerados 15 conjuntos de dados sintéticos com distribuição gaussiana, variando o número de elementos do conjunto de , , , a , e o número de dimensões de 16 a 64 (cada conjunto de dados gerado é referenciado no texto e nos grácos por um termo que indica tanto o número de elementos quanto o número de dimensões empregados na sua geração, por exemplo, Sint100E16D refere-se ao conjunto com elementos e 16 dimensões). Para a conguração das árvores empregadas nos experimentos considerou-se a política de escolha de subárvore padrão da Slim-Tree (a MinDist) e todas as distâncias foram calculadas com a métrica Euclidiana (L 2 ). Os tamanhos de página do nó das árvores foram escolhidos de acordo com o tamanho dos elementos de cada conjunto de dados. Para a análise do comportamento das políticas propostas na indexação de dados reais utilizou-se o conjunto COPhIR [Bolettieri et al. 2009], que contém características extraídas de 100 milhões de imagens. Nos experimentos foram empregados de vetores de características de 64 dimensões relativos ao extrator Scalable Colour, baseados em histogramas de cores. As seções 4.1 e 4.2 apresentam as discussões relativas à análise dos resultados do comportamento das políticas de divisão propostas considerando os conjuntos de dados mencionados anteriormente, com relação a dois aspectos. O primeiro conjunto de experimentos teve como objetivo avaliar a redução da sobreposição entre os nós de árvores geradas com as diferentes políticas de divisão propostas quando comparadas com as políticas existentes na literatura. No segundo conjunto de experimentos foi considerada a análise do impacto causado no desempenho da realização de consultas considerando árvores construídas com as diferentes políticas propostas. 1 Disponível em: 100

108 4.1 Análise do Grau de Sobreposição Nesta seção são apresentados os grácos dos resultados referentes a três parâmetros principais, o grau de sobreposição das árvores resultantes, o número de cálculos de distância e o tempo de construção das árvores. Para vericar a qualidade das árvores resultantes foram calculados os fatores de sobreposição absoluto e relativo (absolute fat-factor e relative fat-factor) das estratégias apresentadas seguindo a denição das medidas denidas em [Traina-Jr. et al. 2002]. O fator de sobreposição absoluto permite avaliar a quantidade de elementos que estão dentro de regiões interseccionadas denidas por nós no mesmo nível de um MAM. Quanto menor o valor do fator absoluto menor será o grau de sobreposição da árvore resultante e possivelmente melhor o desempenho de consultas. Segundo [Traina-Jr. et al. 2002], uma árvore métrica com um valor de fator absoluto entre 0 a 0.1, pode ser considerada uma árvore de boa qualidade, entre 0.1 a 0.4 uma árvore com qualidade aceitável e maior que 0.5 uma árvore com qualidade degradada. Para comparar duas árvores construídas com diferentes parâmetros para o mesmo conjunto de dados empregou-se o fator de sobreposição relativo. Quanto maior o valor obtido para essa medida pior é a sobreposição entre os nós no MAM. A Figura 3 apresenta os resultados obtidos com relação ao fator de sobreposição relativo e o número de cálculos de distância de todas as árvores resultantes de cada política de divisão. O tempo de construção pode ser avaliado na Figura a b c Fator Relativo Fator Relativo Fator Relativo Nº de Calculos de Distancia (escala log) 0 1e+009 1e+008 1e+007 1e+006 Sint100E16D Sint200E16D Sint300E16D Sint400E16D Sint500E16D d Sint100E16D Sint200E16D Sint300E16D Sint400E16D Sint500E16D Nº de Calculos de Distancia (escala log) 0 1e+009 1e+008 1e+007 1e+006 Sint100E32D Sint200E32D Sint300E32D Sint400E32D Sint500E32D Sint100E32D Sint200E32D Sint300E32D Sint400E32D Sint500E32D MinMax MST Random DM SDC e Nº de Calculos de Distancia (escala log) 0 1e+010 1e+009 1e+008 1e+007 1e+006 Sint100E64D Sint200E64D Sint300E64D Sint400E64D Sint500E64D Sint100E64D Sint200E64D Sint300E64D Sint400E64D Sint500E64D Fig. 3. Análise do Grau de Sobreposição. (a), (b) e (c) apresentam os graus de sobreposição das árvores resultantes de cada método de divisão e (d), (e) e (f) apresentam os respectivos números de cálculos de distância das árvores resultantes, em escala logarítmica. Grácos (a) e (d): 16 dimensões; (b) e (e): 32 dimensões; (c) e (f): 64 dimensões. Analisando primeiramente os resultados dos experimentos realizados com os conjuntos de dados sintéticos foi possível vericar que a política de divisão DM conseguiu obter árvores com baixa taxa de sobreposição e com número de cálculos de distância inferior a política clássica da Slim-Tree (MinMax). Por exemplo, na Figura 3 (a) para o conjunto Sint500E16D a DM resultou em um grau de sobreposição 1,7% inferior ao da MinMax e executou apenas 8,2% dos cálculos de distância da política MinMax. Esse resultado corrobora as armações feitas em trabalhos correlatos e também as hipóteses consideradas para o desenvolvimento do trabalho apresentado aqui. A estratégia MinMax verica todos pares de elementos possíveis como representantes, isso faz com que seu tempo de execução seja custoso, pois um número alto de cálculos de distância é realizado. A abordagem adotada pela política de divisão DM encontra um par de elementos mais distantes, divide os elementos em dois grupos e seleciona o elemento mais central de cada grupo para ser o representante. Essa abordagem faz com que as regiões de cobertura de cada representante escolhido tenham o menor grau de sobreposição. Ela é executada f 101

109 em tempo O(S 2 log(s)) sobre o número de elementos dos nós sendo mais rápida que a política de divisão clássica MinMax que possui tempo de execução da ordem de O(S 3 ) o qual torna o tempo para construção da árvore consideravelmente alto. Tal comportamento pode ser vericado na Figura Tempo de construção (em seg.) MinMax MST Random DM SDC 10 Sint100E64D Sint200E64D Sint300E64D Sint400E64D Sint500E64D Fig. 4. Apresentação do tempo de construção em segundos de cada árvore resultante, considerando o conjunto de dados sintéticos de 64 dimensões. Os resultados o eixo y são apresentados em escala logarítmica. Dentro do contexto de análise de custo vs. benefício, no qual é aceitável uma pequena elevação de sobreposição em contrapartida da obtenção de uma grande redução na realização de cálculos de distância e consequentemente em tempo, é possível concluir pela análise da Figura 3 que a política de divisão SDC apresentou o melhor desempenho, pois ela necessita de um número de cálculos de distância muito inferior do que a MinMax. Por exemplo, para o conjunto Sint100E16D a política apresentou um grau de sobreposição 5,6% maior e executou apenas 6,4% dos cálculos de distância requeridos pela MinMax (que nesse caso especíco realizou cálculos de distância). Quando comparada com a MST, essa política de divisão apresentou menor sobreposição e também necessitou de um menor número de cálculos de distância para a construção das árvores. Por exemplo, para o conjunto Sint500E16D a árvore construída com a SDC resultou em um grau de sobreposição 48,4% menor e empregou um número de cálculos de distância 8,9% menor. Analisando os resultados apresentados nas Figuras 3 e 4 foi possível concluir que a política DM apresenta menor sobreposição em relação à política MinMax quando o número de dimensões e elementos são maiores, no caso superior a 32 dimensões. Por exemplo, para o conjunto de dados Sint300E64D a política apresentou um grau de sobreposição 6,9% menor e executou apenas 5,1% dos cálculos de distância. Para dimensões e quantidade de elementos menores o grau de sobreposição da política ca próximo do apresentado pela MinMax. Analisando o menor grau de sobreposição e menor número de cálculos de distância em relação à política de divisão de nós MST, tem-se, para 16 e 32 dimensões a política SDC. A partir de 64 dimensões e elementos o número de cálculos de distância da política aumenta um pouco, enquanto o grau de sobreposição permanece equivalente. Considerando todas as congurações dos conjuntos de dados testados (variando tanto o número de dimensões quanto o número de elementos), a política DM apresentou um menor grau de sobreposição quando comparada a MST, apesar do número de cálculos de distância ter sido um pouco maior, apenas 16,2% para o conjunto Sint500E64D. A Tabela I apresenta os resultados obtidos pela execução dos experimentos com as políticas de divisão considerando os dois subconjuntos de dados gerados a partir do conjunto de dados reais COPhIR (com elementos e com de elementos). Analisando os resultados obtidos é possível perceber que para o conjunto de elementos as políticas DM e MinMax foram as que resultaram nos menores graus de sobreposição relativos, fato que se repetiu para o outro conjunto também. Quanto ao tempo de execução a política SDC apresentou um pequeno aumento na indexação de de elementos. Comparando os resultados obtidos com as árvores geradas considerando as políticas de divisão propostas em relação a MST é possível observar que as árvores geradas com a política DM apresentaram 102

110 menor sobreposição, necessitando de um número de cálculos de distâncias com a mesma ordem de grandeza. Comparando com a MinMax a política DM apresentou grau de sobreposição semelhante ou até mesmo inferior. Apenas a SDC resultou em um grau um pouco maior. O número de cálculos de distância requerido pelas duas políticas de divisão propostas foi inferior ao da MinMax. Analisando todos os resultados obtidos com os conjuntos de dados reais é possível concluir que as políticas apresentaram um comportamento semelhante aos resultados dos experimentos realizados com os conjuntos de dados sintéticos. Tabela I. Experimentos com conjunto COPhIR. Política F. Absoluto F. Relativo N o Cálc. Dist. Tempo (s) elementos Random MST MinMax DM SDC elementos Random MST MinMax DM SDC Análise do Comportamento das Políticas na Realização de Consultas Nesta seção são apresentados os grácos que mostram o comportamento das políticas com relação à média do número de cálculos de distância, a média do número de acessos a disco e a média do tempo total para executar as consultas (em milissegundos) considerando os conjuntos de dados gerados a partir dos dados reais. Para o cálculo das médias foram executadas 100 consultas para cada valor de k (quantidade de elementos considerados na consulta). Os experimentos foram realizados com o algoritmo branch-and-bound de consulta aos k-vizinhos Mais Próximos (k-nearest-neighbor query) [Zezula et al. 2006]. Os valores de k considerados para a realização dessa série de experimentos variam de 10 a 100 centros (elementos de consulta). Acessos a disco Numero de elementos k Calculos de distancia Numero de elementos k MinMax MST Random DM SDC Tempo em milissegundos Numero de elementos k Fig. 5. Consultas aos k-vizinhos mais próximos, conjunto COPhIR com de elementos. (a) número de acessos a disco. (b) número de cálculos de distância. (c) tempo de execução em ms. Os resultados obtidos com a realização desses experimentos são apresentados nas Figuras 5 e 6. Analisando os resultados obtidos para a média de acessos a disco foi possível observar, que assim como descrito nos trabalhos correlatos, a MST apresentou um desempenho inferior ao da política MinMax. Esse comportamento se deve ao fato das árvores geradas com a MST resultarem em um número de nós maior. Isso faz com que o número de acessos a disco seja o maior dentre todas as políticas de divisão testadas, exceto a Random que é a que apresenta o pior desempenho por ser uma política com alto grau de sobreposição. Essa característica da política de divisão Random também explica o fato de que tanto o número de acessos a disco quanto o número de cálculos de distância 103

111 seja elevado. Como esses dois fatores implicam no resultado do tempo para execução da consulta, a Random é a política com maior média do tempo para realização das consultas. As políticas propostas executaram as consultas com um menor número de acessos a disco e cálculos de distância tanto em relação à MST quanto em relação à MinMax. Com relação à política MinMax, comparando os resultados para o conjunto de dados com de elementos e k igual a 50 centros, a SDC resultou em 4% menos acessos a disco e 19,2% menos cálculos de distância e a DM executou 2% menos acessos a disco e 4,3% menos cálculos de distância. Comparando com a política MST, analisando os resultados para o conjunto de dados com elementos e k igual a 80 centros, a SDC resultou em 22,5% menos acessos a disco e 14,9% menos cálculos de distância e a DM executou 20,9% menos acessos a disco e 6,7% menos cálculos de distância. Acessos a disco Numero de elementos k Calculos de distancia Numero de elementos k MinMax MST Random DM SDC Tempo em milissegundos Numero de elementos k Fig. 6. Consultas aos k-vizinhos mais próximos, conjunto COPhIR com de elementos. (a) número de acessos a disco. (b) número de cálculos de distância. (c) tempo de execução em ms. 5. CONCLUSÕES Neste artigo foram propostas duas novas políticas de divisão de nós para a Slim-Tree denominadas DM e SDC. Os resultados experimentais alcançados foram promissores e mostram que a utilização de ambas as políticas reduz o tempo de construção das árvores e pode beneciar a realização de consultas KNN reduzindo o número de cálculos de distância, os acessos a disco requeridos e consequentemente o tempo de execução da consulta. Como trabalho futuro pretende-se investigar o impacto no desempenho da realização de processos de mineração de dados que envolvem cálculos de similaridade (por exemplo, agrupamento de dados) quando apoiados por MAMs construídos tanto com as políticas apresentadas aqui quanto com novas políticas que já estão sendo estudadas. REFERENCES Bolettieri, P., Esuli, A., Falchi, F., Lucchese, C., Perego, R., Piccioli, T., and Rabitti, F. CoPhIR: a test collection for content-based image retrieval. CoRR vol. abs/ v2, Faloutsos, C. and Lin, K. FastMap: A fast algorithm for indexing, data-mining and visualization of traditional and multimedia datasets. SIGMOD'95, Lim, S.-H., Ku, K.-I., Kim, K., and Kim, Y.-S. A node split algorithm reducing overlapped index spaces in m-tree index. In IEEE Int'l Conf. on Data Engineering Workshops. ICDEW '06. Atlanta, pp. 115, Samet, H. Foundations of Multidimensional and Metric Data Structures. Morgan Kaufmann, San Francisco, Skopal, T. and Loko, J. New dynamic construction techniques for m-tree. J. Discrete Algorithms 7 (1): 6277, Traina-Jr., C., Traina, A. J. M., Faloutsos, C., and Seeger, B. Fast indexing and visualization of metric datasets using Slim-trees. IEEE Transactions on Knowledge and Data Engineering (TKDE) 14 (2): , Vespa, T. G., Traina, Jr, C., and Traina, A. J. Ecient bulk-loading on dynamic metric access methods. Inf. Syst. 35 (5): , July, Zahn, C. T. Graph-theoretical methods for detecting and describing gestalt clusters. IEEE Trans. Comput. 20 (1): 6886, Jan., Zezula, P., Amato, G., Dohnal, V., and Batko, M. Similarity Search: The Metric Space Approach (Series Advances in Database Systems, vol. 32). Springer,

112 Adição de termos semânticos a consultas OLAP Robson do N. Fidalgo, Samuel de França Arcoverde Universidade Federal de Pernambuco Abstract. OLAP tools have been widely used for decision support analysis. In turn, ontologies has proven to be an effective and well accepted technology for recovering of semantic information. Thus, the integration of these technologies (OLAP and ontology) allows new types of queries that, individually, these technologies are not capable of performing. In this context, considering that related works still have not provided a solution to integrate OLAP Servers, the MultiDimensional expressions (MDX) language and ontologies, this paper proposes: i) a software architecture for OLAP and ontology integration; ii) a mapping between the metadata of a cube and the metadata of an ontology; iii) an extension of the MDX language to allow the use of semantic terms and iv) an algorithm to rewrite a MDX query with semantic terms in a query fully compliant with the standard syntax of this language. As proof of concept, we have developed a prototype and presented an application that implements our proposal and shows its feasibility. Resumo. Ferramentas OLAP são amplamente usadas para analises de suporte à decisão. Por sua vez, ontologias tem mostrado ser uma tecnologia bem aceita e efetiva para recuperação de informação semântica. Portanto, a integração destas tecnologias (OLAP e Ontologias) permite novos tipos de consultas que, individualmente, estas tecnologias não são capazes de executar. Neste contexto, considerando que os trabalhos relacionados ainda não forneceram uma solução para integrar servidores OLAP, a linguagem MultiDimensional expressions (MDX) e ontologias, este artigo propõe: i) uma arquitetura de software para integrar OLAP e ontologia; ii) um mapeamento entre os metadados de um cubo e os metadados de uma ontologia; iii) uma extensão da linguagem MDX para permitir o uso de termos semânticos e iv) um algoritmo para reescrever uma consulta MDX com termos semânticos em uma consulta MDX totalmente em conformidade com a sintaxe padrão desta linguagem. Como prova de conceito, foi desenvolvido um protótipo e apresentado uma aplicação que implementa as propostas deste trabalho, o que visa mostrar a sua viabilidade. Keywords: OLAP and Ontologies 1. INTRODUÇÃO Sistemas para suporte à decisão permitem analisar estrategicamente os dados de uma organização. Neste contexto, as tecnologias para processamento analítico de dados (On-Line Analytical Processing - OLAP) [Thomsen 2002] se destacam e podem ser resumidas como ferramentas para analisar, sobre diferentes cruzamentos de dados e níveis de detalhes, grandes Bancos de Dados (BD) conhecidos como Data Warehouses (DW) [Kimball et al. 2008]. Apesar da boa aceitação destas ferramentas, elas ainda não dão suporte para utilizar a semântica de um negócio (i.e., suas terminologias e regras) de forma a enriquecer o processo de tomada de decisão. Isso ocorre pelo fato de que as ferramentas OLAP priorizam facilitar e agilizar o processamento de consultas analíticas, ignorando os conhecimentos específicos de cada organização. Por exemplo, as consultas qual o total vendido de produtos baratos nos últimos semestres e meses por fornecedor e loja?, qual o total de internações graves por hospital, tipo de doença e faixa salarial do paciente nos últimos 4 anos? e qual o total de homicídios que ocorreram nos dias quentes por tipo de arma, região geográfica e perfil do criminoso? não podem ser diretamente executadas por uma ferramenta OLAP, pois estas consultas exigem o processamento semântico dos termos barato, grave e quente, os quais dependem do contexto do negócio analisado e, ao longo do tempo, podem ter suas semânticas alteradas. Neste contexto, visando adicionar descrição semântica e lógica ao negócio de uma 105

113 organização, as tecnologias para processamento semântico (e.g., ontologias [Lacy 2005]) vêm sendo amplamente utilizadas para identificar as entidades e os relacionamentos de um domínio, definindo um vocabulário conceitual para dar suporte à realização de inferências sobre esse domínio. Ressalta-se que o conhecimento representado através de ontologias pode ser explorado por máquinas de inferência, permitindo a geração de conhecimento adicional e não trivial, o qual pode ser útil para o enriquecimento semântico de consultas que visam o processamento analítico de dados. Com o objetivo de dar uma contribuição para resolver o problema de integrar consultas OLAP e consultas semânticas em uma única ferramenta para suporte à decisão, este trabalho propõe i) uma arquitetura de software para a integração entre OLAP e ontologia; ii) um mapeamento entre os metadados de um cubo e os metadados de uma ontologia; iii) uma extensão da linguagem MultiDimensional expressions (MDX) [Fouché and Langit 2011] para permitir o uso de termos semânticos em consultas OLAP; e iv) um algoritmo para reescrever a consulta MDX com termos semânticos em uma nova consulta totalmente em conformidade com a sintaxe padrão de MDX. Para avaliação do presente trabalho, desenvolveu-se, como prova de conceito, um protótipo que implementa e mostra que as propostas apresentadas neste artigo são relevantes e factíveis. O restante deste artigo é organizado da seguinte forma. Na seção 2, apresenta-se os conceitos básicos relacionados a OLAP e ontologias. Na seção 3, propõe-se uma arquitetura de software, um mapeamento entre cubos e ontologias, um algoritmo e uma extensão da linguagem MDX para realizar processamento analítico e semântico. Na seção 4, o protótipo desenvolvido é apresentado e avaliado. Na seção 5, os principais trabalhos relacionados são discutidos. Por fim, na seção 6, as considerações finais e trabalhos futuros são apresentados. 2. CONCEITOS BÁSICOS SOBRE OLAP E ONTOLOGIAS OLAP [Thomsen 2002] [Fouché and Langit 2011] é uma ferramenta de consulta que permite realizar cruzamentos e análises em diferentes níveis de agregação dos dados de um DW [Kimball et al. 2008]. Este tipo de ferramenta realiza consultas sobre uma base de dados (materializada ou virtual) chamada de cubo de dados [Thomsen 2002] [Fouché and Langit 2011], o qual corresponde a sumarizações/agregações sobre um subconjunto dos dados do DW. Alguns conceitos básicos sobre cubo de dados são [Thomsen 2002] [OMG 2003]: i) Dimensão (eixos de análises); ii) Níveis (projeções de uma dimensão); iii) Hierarquia (visão ordenada do níveis); iv) Membro (item de dado de um nível) e v) Medida (atributo mensurável a ser analisado). A partir de um cubo de dados, várias operações OLAP podem ser executadas. Dentre estas, as principais são [Thomsen 2002] [Fouché and Langit 2011]: i) Roll-up (agregação dos dados para um nível acima); ii) Drill-down (agregação dos dados para um nível abaixo); iii) Slice (projeção sobre um ou mais níveis da dimensão de um cubo de dados); iv) Dice (seleção sobre um ou mais membros do cubo de dados); e v) Pivoting/Rotate (rotação dos eixos do cubo de dados). Estas operações estão disponíveis na linguagem MDX [Fouché and Langit 2011], a qual é um padrão de facto para realizar consultas sobre servidores OLAP. Em linhas gerais, uma consulta MDX pode ser composta pelas cláusulas: WITH (adiciona uma lista de membros calculados e/ou conjuntos pré-definidos), SELECT (contém os dados que serão projetados), FROM (indica o cubo a ser consultado), WHERE (impõe uma seleção ao escopo da consulta). Ressalta-se que apenas as cláusulas SELECT e FROM são obrigatórias. Ontologias [Lacy 2005] [Segaran 2009] são especificações explícitas e formais de termos ou conceitos compartilhados. Isto é, estas capturam e explicitam a semântica de um negócio (suas terminologias e regras) de forma a evitar ambiguidades e torná-la computável. A estrutura de uma ontologia é geralmente formada por um conjunto de classes (conceitos de um domínio), relações (associações entre as classes) e propriedades (atributos de uma classe). Uma ontologia também pode possuir axiomas, os quais são sentenças que descrevem as regras formais de um domínio. Dentre as linguagens para especificar ontologias, a Ontology Web Language (OWL) [Lacy 2005] é um padrão definido pelo World Wide Web Consortium (W3C). Esta linguagem possui três sub-linguagens, dispostas em uma sequência crescente de níveis expressividade, a saber: OWL-Lite (suporta apenas a 106

114 criação de taxonomias e restrições simples), OWL-DL (utiliza o vocabulário completo de OWL e garante completude e decidibilidade) e OWL-Full (permite representar ontologias com maior flexibilidade, mas sem as garantias de computabilidade de OWL-DL). Como suporte adicional ao uso de ontologias, é possível utilizar mecanismos de dedução chamados de raciocinadores, os quais agem como motores de inferência sobre a descrição das ontologias, realizando checagem de consistência e classificação automática das classes. 3. INTEGRANDO OLAP E ONTOLOGIAS De forma a integrar OLAP e ontologias para realizar processamento analítico e semântico, na Figura 1 apresenta-se a arquitetura de software proposta neste trabalho. Nesta figura tem-se três camadas: Dados, Processamento e Apresentação, as quais, juntamente com seus componentes, são discutidas a seguir. Fig. 1. Arquitetura para integrar OLAP e Ontologias A Camada de Dados é composta por um cubo OLAP e por uma Base de Conhecimento formada por um conjunto de ontologias. O cubo OLAP deve estar em conformidade com os padrões Common Warehouse Metamodel (CWM) [OMG 2003] e XML for Analysis (XMLA) [MSDN 2012]. Por sua vez, a base de conhecimento é formada por três tipos de ontologias: Dimensão, Semântica do Negócio e Integração, as quais são resumidas assim: Ontologia de Dimensão - representa os dados (i.e., membros) e metadados (i.e., hierarquia e nível) da dimensão de um cubo OLAP como classes e relacionamentos ontológicos (ver Mapeamento OLAP- Ontologia na Figura 1). A construção desta ontologia é automática e segue os três passos a seguir: i) nomear a Ontologia de Dimensão com o mesmo nome da dimensão que ela representa; ii) criar, para cada membro de um nível da dimensão, uma classe ontológica cujo nome deve ser o mesmo nome único (propriedade UNIQUE NAME de MDX) do membro e, para cada classe criada, deve-se definir a propriedade NÍVEL, a qual registra o nome do nível a que pertence o membro representado pela classe; e iii) definir os relacionamentos entre as classes de modo que estes representem os mesmos relacionamentos hierárquicos existentes entre os membros de uma dimensão. Ressalta-se que todas as relações de hierarquia devem possuir as propriedades de inversão e transitividade e que o nome dessas relações deve ser o mesmo nome das hierarquias que elas representam, pois isto permite representar o 107

115 conjunto de hierarquias de uma dimensão apenas definindo novos relacionamentos entre as classes. Além disso, é importante destacar que, devido ao fato de todos os membros e hierarquias de uma dimensão estarem presentes em sua respectiva Ontologia de Dimensão, este tipo de representação é completa e única para cada dimensão; Ontologia de Semântica do Negócio - descreve as regras e termos semânticos (i.e., conceitos que representam um conhecimento empírico de um negócio) de uma organização. Esta ontologia é construída em três passos: i) importação de uma ou mais Ontologias de Dimensão, ii) criação de uma classe ontológica para cada termo semântico e iii) definição manual das regras e/ou axiomas que modelam a semântica do negócio da organização. Ressalta-se que uma Ontologia de Semântica do Negócio pode importar várias Ontologias de Dimensão, as quais podem ser importadas por várias Ontologias de Semântica do Negócio (ver Base de Conhecimento na Figura 1). Note que separar as Ontologias de Semântica do Negócio das Ontologias de Dimensão dá flexibilidade para alterar a semântica do negócio sem afetar as Ontologias de Dimensão (representação ontológica dos dados do cubo OLAP), o que facilita e torna menos custosas as alterações dos termos e regras do negócio; Ontologia de Integração - importa as Ontologias de Semântica do Negócio que estão relacionadas a um cubo OLAP, abstraindo a complexidade de manipular várias ontologias diferentes. A partir da Ontologia de Integração qualquer uma das classes das Ontologias de Semântica do Negócio e das Ontologias de Dimensões podem ser acessadas, pois a Ontologia de Integração importa as Ontologias de Semântica do Negócio e estas importam as Ontologias de Dimensão. Portanto, por transitividade, uma Ontologia de Integração contém todas as classes das suas Ontologias de Semântica do Negócio e de Dimensões. Ressalta-se que uma Ontologia de Integração deve ter o mesmo nome do cubo OLAP, pode importar várias Ontologias de Semântica do Negócio e estas podem ser importadas por outras Ontologias de Integração (ver Base de Conhecimento na Figura 1). Além disso, um cubo está associado a uma única Ontologia de Integração e esta só pode estar associada a um cubo (ver Mapeamento OLAP-Ontologia na Figura 1). A Camada de Processamento é composta pelo componente Tradutor OLAP-Ontologia, pela API OLAP e pela API Semântica. O Tradutor OLAP-Ontologia é basicamente a fusão de um analisador de tokens (i.e., termos semânticos) e um gerador de código (i.e., reescrita de uma MDX com termos semânticos em uma MDX padrão). No Quadro 1, apresenta-se o pseudocódigo com os principais passos para implementar o componente Tradutor OLAP-Ontologia. Quadro 1. Pseudocódigo do Componente Tradutor OLAP-Ontologia Entrada: mdx //consulta OLAP com termo semântico Saída: resultado //resultado da consulta OLAP com termos semânticos reescritos em membros OLAP Método: 01: INÍCIO 02: LER (mdx); //Leitura da MDX com termos semânticos 03: vetortermossemanticos[] = obtertermossemanticos(mdx); // Obtenção dos termos semânticos da MDX 04: SE (vetortermossemanticos <> vazio) ENTÃO { //Teste para verificar se a MDX tem temos semânticos 05: PARA (i = 1; i <= VetorTermosSemanticos[].tamanho(); i++){ //Construção do vetor de classes ontológicas 06: vetorclassesontologicas[] = obterclassesontologicas(vetortemossemanticos[i]); 07: vetormembrosolap[] = vazio; // Limpeza do vetor de membros OLAP 08: PARA (j = 1; j <= vetorclassesontologicas[].tamanho(); j++){ //Construção do vetor de membros OLAP 09: vetormembrosolap [] = obternomeunicomembroolap(vetorclassesontologicas[j]); 10: } 11: mdx = reescrevertermosemantico(mdx, vetormembrosolap[]); // Reescrita da MDX 12: vetorclassesontologicas[] = vazio; //Limpeza do vetor de classes Ontológicas 13: } 14: } 15: resultado = executarmdx(mdx); // Execução da MDX 16: enviarresultado(resultado); // Envio do resultado para a interface gráfica do usuário 17: FIM No quadro 1 tem-se os seguintes passos mais importantes: i) A leitura da MDX com termos semânticos (ver linha 02); 108

116 ii) A construção do vetor de termos semânticos (ver linha 03). Este vetor é construído a partir de uma análise léxica para obter os tokens (termos semânticos) da consulta MDX. Ressalta-se que um termo semântico é gramaticamente definido pela seguinte expressão regular #\([a-za-z0-9_\-]+\). A partir desta expressão regular pode-se criar termos semânticos como: #(PeríodoQuente), #(Período_Quente), #(PeríodoQuente2012) e #(Período-Quente), os quais são usados para estender a sintaxe da linguagem MDX, pois podem ser usados em substituição da função MEMBERS desta linguagem. Ou seja, assim como a função MEMBERS, um termo semântico retorna um conjunto de membros de um cubo; iii) O teste que verifica se o vetor de termos semânticos não está vazio (ver linha 04). Isto é, se não houver termo semântico na consulta MDX, não há necessidade de reescrevê-la; iv) A iteração para construir o vetor com as classes ontológicas (ver linha 06). Para cada iteração, usando uma API Semântica (e.g., Jena), deve-se consultar a Ontologia de Integração e obter todas as classes que são filhas da classe que possui o mesmo nome do termo semântico da iteração atual; v) A sub-iteração para construir o vetor com os membros OLAP correspondentes aos termos semânticos (ver linha 08). Para cada iteração, deve-se obter o nome de cada classe ontológica correspondente ao termo semântico e atribuí-lo ao nome de cada membro do vetor de membros OLAP. Note que, como os nomes das classes das Ontologias de Dimensão são idênticos aos nomes únicos dos seus respectivos membros OLAP, os elementos do vetor com membros OLAP já estão totalmente aderentes à sintaxe de MDX; vi) A reescrita de cada termo semântico da consulta MDX (ver linha 11). Neste passo, cada termo semântico é substituído pela função MEMBERS de MDX (e.g., [Data].[Dia].#(PeriodoQuente) [Data].[Dia].MEMBERS). Além disso, como os membros OLAP não precisam estar no mesmo nível hierárquico, para cada nível diferente, deve-se escrever uma função EXISTS de MDX. Esta função tem dois argumentos obrigatórios (conjunto1 e conjunto2) e retorna todos os membros do conjunto1 que pertencem ao conjunto2. Para a reescrita da consulta MDX, o primeiro argumento deve ser a expressão com a função MEMBERS, enquanto o segundo argumento, o conjunto de membros correspondentes ao termo semântico (e.g., EXISTS( [Data].[Dia].MEMBERS, {[Data].[Dia].[29/4/2012], [Data].[Dia].[30/4/2012]}) ). Ressalta-se que os membros do conjunto2 devem ser do mesmo nível; vii) A execução da consulta MDX reescrita (ver linha 15). Este passo é realizado fazendo-se uso de uma API OLAP (e.g., XMLA); viii) O envio do resultado para a interface gráfica do cliente (ver linha 16). Por fim, a Camada de Apresentação é formada pelo componente Interface Gráfica do Usuário. Este componente pode ser qualquer cliente OLAP (local ou remoto) que esteja em conformidade com o padrão XMLA (e.g., JPivot). 4. PROTÓTIPO DESENVOLVIDO Como prova de conceito das propostas apresentadas neste trabalho, um protótipo do tradutor OLAP- Ontologia foi desenvolvido na linguagem de programação Java. Os demais componentes da arquitetura de software apresentada na Figura 1 reusam as seguintes tecnologias: Mondrian (servidor de cubos OLAP), OWL (Base de Conhecimento), XMLA (API OLAP), Jena e Pellet (API Semântica) e JPivot (Interface Gráfica do Usuário). Uma aplicação usando o protótipo desenvolvido é apresentada a seguir. 4.1 AVALIAÇÃO DO PROTÓTIPO Para avaliar o protótipo foi desenvolvida uma aplicação a partir de um cubo de dados Vendas e as seguintes ontologias: Vendas (Ontologia de Integração), Períodos (Ontologia de Semântica do Negócio) e Data (Ontologia de Dimensão), todas escritas em OWL-DL. O cubo Vendas é formado pelas 109

117 dimensões Data, Cliente e Produto e pela medida Quantidade de Vendas. A dimensão Data possui a hierarquia Ano-Mês-Dia (Ano > Mês > Dia). A dimensão Cliente possui a hierarquia País-Região-Cidade (País > Região > Cidade). Por fim, a dimensão Produto possui a hierarquia Categoria-Subcategoria-Tipo (Categoria > Subcategoria > Tipo). Por sua vez, as ontologias são definidas assim: a ontologia Data representa todos os membros da dimensão Data, bem como as suas relações de acordo com a hierarquia Ano-Mês-Dia. A ontologia Períodos importa a ontologia Data e reutiliza as classes dessa ontologia para especificar os seguintes termos semânticos: PeríodoQuente, PeríodoFrio e PeríodoMorno. Finalmente, após a importação da ontologia Períodos, a ontologia Vendas está pronta para ser utilizada pela aplicação. Por limitação de espaço, a Figura 2 ilustra o trecho dessas ontologias que define o termo semântico PeríodoMorno, o qual corresponde aos dias 29/4/2012, 30/4/2012 e a todos os dias do mês de maio. Fig. 2. Ontologia de Integração Vendas Os Quadros 2 e 4 apresentam duas consultas que foram usadas para avaliar o protótipo desenvolvido. Ressalta-se que um termo semântico pode ser usado em substituição da função MEMBERS de MDX, o que permite a construção de várias outras consultas. Quadro 2. Consulta semântica #1 SELECT DRILLDOWNMEMBER( [Data].[Ano-Mês-Dia].[2012].CHILDREN, [Data].[Ano-Mês-Dia].[Mês].#(PeríodoMorno) ) ON 0, [Measures].[Quantidade de Vendas] ON 1 FROM [Vendas] Ao utilizar a função DRILLDOWNMEMBER, a consulta do Quadro 2 tem como objetivo exibir qual a quantidade de vendas para todos os meses do ano de 2012, detalhando pelo nível Dia apenas os meses que pertencerem à definição do termo semântico PeríodoMorno. Após o Tradutor OLAP-Ontologia realizar a reescrita da consulta do Quadro 2, tem-se a consulta apresentada no Quadro 3, a qual está totalmente em conformidade com a sintaxe padrão de MDX e já pode ser executada por qualquer servidor OLAP em conformidade com o padrão XMLA. Quadro 3. Reescrita da consulta semântica #1 SELECT DRILLDOWNMEMBER( [Data].[Ano-Mês-Dia].[2012].CHILDREN, { EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Dia].[29/4/2012],[Data].[Dia].[30/4/2012]}, EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Mês].[MAIO,2012]} } ) ON 0, [Measures].[Quantidade de Vendas] ON 1 FROM [Vendas] 110

118 Quadro 4. Consulta semântica #2 SELECT NON EMPTY CROSSJOIN( [Cliente].[Cidade].MEMBERS, [Data].[Mês].#(PeríodoMorno) ) ON 0, [Measures].[Quantidade de Vendas] ON 1 FROM [Vendas] O objetivo da consulta semântica #2 (ver Quadro 4) é processar a quantidade de vendas por cidade e mês que ocorreram em períodos mornos. Após a reescrita da consulta do Quadro 4, tem-se a consulta apresentada no Quadro 5, a qual também está totalmente em conformidade com a sintaxe padrão de MDX. Quadro 5. Reescrita da consulta semântica #2 SELECT NON EMPTY CROSSJOIN( [Cliente].[Cidade].MEMBERS, { EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Dia].[29/4/2012],[Data].[Dia].[30/4/2012]}), EXISTS([Data].[Ano-Mês-Dia].[Mês].MEMBERS,{[Data].[Mês].[MAIO,2012]}) } ) ON 0, [Measures].[Quantidade de Vendas] ON 1 FROM [Vendas] 5. TRABALHOS RELACIONADOS [Necib and Freytag 2003] realizam consultas a um BD relacional adicionando termos semânticos às consultas SQL. Os autores baseiam-se na ideia de que um termo semântico, correspondente a uma classe ontológica, pode ser adicionado como um predicado da cláusula WHERE. O passo final do processo consiste em reescrever a consulta SQL substituindo os termos semânticos pelos predicados que representam o significado dos termos. As consultas SQL semânticas definidas aqui possuem maior poder de expressividade e por isso produzem resultados mais significativos. Entretanto, o trabalho de [Necib and Freytag 2003] só funciona para BD relacionais. Isto é, ele não apresenta uma solução para integrar OLAP e Ontologias, tampouco para fazer processamento analítico e semântico a partir de MDX. [Sell et al. 2008] propõe um framework que realiza a tradução de consultas semânticas em consultas analíticas que simulam o comportamento de um cubo OLAP. O framework desenvolvido utiliza uma ontologia formada pelos dados das tabelas de dimensão de um DW e pelas regras de negócio inerentes aos dados. Uma consulta semântica é construída a partir da adição de filtros semânticos na cláusula WHERE de SQL. Apesar de ser apresentado como uma solução OLAP, ao invés de consultar um cubo de dados com a linguagem MDX, o framework realiza consultas SQL diretamente no DW utilizando operadores de agregação. Ou seja, este trabalho também não provê uma solução para integrar um servidor OLAP e uma base de conhecimento ontológica a fim de permitir a realização de consultas analíticas e semânticas a partir da linguagem MDX. [Saleh 2011] sugere uma abordagem para realizar consultas semânticas em um BD relacional. Ele propõe que o esquema relacional e os dados do BD sejam mapeados em uma ontologia e caso seja necessário, um especialista pode adicionar novas classes ou relações à ontologia inicial. A consulta semântica definida pelo usuário é na verdade uma consulta escrita em SPARQL que será traduzida para SQL baseando-se nas informações da ontologia. Embora o autor utilize consultas SPARQL e SQL, seu trabalho não integra efetivamente as duas tecnologias, pois elas não podem ser utilizadas simultaneamente em uma mesma consulta. Além disso, a abordagem proposta por [Saleh 2011] também não é voltada para integrar servidores OLAP com ontologias, tampouco estende a sintaxe da linguagem MDX para permitir a realização de consultas analíticas e semânticas. [Prat et al. 2012] descrevem um conjunto de passos e regras de transformação que visam construir uma ontologia a partir dos conceitos de um metamodelo de um cubo. Assim como todos os trabalhos anteriormente discutidos, este não faz uso de um servidor OLAP tampouco da linguagem MDX. Ou seja, dentre os trabalhos investigados, nenhum ataca o problema de como realizar consultas semânticas usando um servidor OLAP e a linguagem MDX. 111

119 6. CONSIDERAÇÕES FINAIS A integração entre OLAP e ontologias permite estender o poder das consultas OLAP a partir do processamento de termos semânticos e da realização de inferências e raciocínios sobre o domínio de um negócio, enriquecendo o processo de tomada de decisão. A partir de um estudo sobre os principais trabalhos relacionados, pode-se constatar que nenhum deles propõe uma solução que permite integrar OLAP e ontologias para realizar consultas semânticas a partir da linguagem MDX. Dado que este ponto em aberto é relevante, pois estas tecnologias (i.e., OLAP, ontologia e a linguagem MDX) são amplamente usadas pela indústria e academia, este trabalho, de forma a dar uma contribuição na direção de resolver este ponto em aberto, propôs: i) uma arquitetura de software para a integração OLAP e ontologia; ii) um mapeamento entre os metadados de um cubo e os metadados de uma ontologia; iii) uma extensão da linguagem MDX para permitir o uso de termos semânticos; e iv) um algoritmo para reescrever a consulta MDX com termos semântico em uma consulta totalmente em conformidade com a sintaxe padrão de MDX. Como pontos fortes deste trabalho têm-se: i) a independência de um servidor OLAP específico, pois como a arquitetura de software é baseada no padrão XMLA, pode-se usar qualquer servidor OLAP aderente a este padrão; ii) a especificação do mapeamento e dos passos necessários para traduzir um termo semântico em membros do cubo e iii) uma expressão regular que permite facilmente estender a sintaxe da linguagem MDX de forma a fazer uso de termos semânticos. Em resumo, este artigo contribui para avançar o estado da arte na área de processamento semântico e analítico, pois propõe o primeiro trabalho que consegue realizar a integração entre servidor OLAP, linguagem MDX e Ontologias em um único ambiente para suporte à decisão, o que abre uma nova perspectiva de pesquisa científica e industrial. Apesar das contribuições obtidas, muitos trabalhos futuros ainda têm que ser realizados, como por exemplo, uma avaliação experimental usando um cubo com um enorme volume de dados (10GB/20GB), a fim de analisar a escalabilidade das propostas apresentadas neste artigo (para este trabalho pode-se usar ferramentas que geram DW artificiais - e.g., Star Schema Benchmark - SSB). Além deste, outros trabalhos futuros são: melhorar a atual ontologia para que esta permita a realização de inferências que gerem conhecimento adicional e definir operações de drill-down/roll-up semânticos que exporem as hierarquias das ontologias. Agradecimento: Os autores agradecem ao CNPQ pelo apoio financeiro dado a realização deste trabalho, o qual está no contexto do projeto / REFERÊNCIAS FOUCHÉ G, LANGIT L. Foundations of SQL Server 2008 R2 Business Intelligence. Apress; 2011 KIMBALL R, ROSS M, THORNTHWAITE W, MUNDY J, BECKER B. The Data Warehouse Lifecycle Toolkit. 2nd ed. John Wiley & Sons; LACY L. W. OWL: Representing Information Using the Web Ontology Language. Trafford Publishing; 2005 MSDN. XML for Analysis Reference (XMLA). Available at: Accessed July NECIB, C. B., FREYTAG, J. C. Ontology-based Query Processing in Database Management Systems, OMG. Common Warehouse Metamodel (CWM) Specification PRAT, N., AKOKA, J., COMYN-WATTIAU, I. Transforming Multidimensional Models into OWL-DL Ontologies, SALEH, M. E. Semantic-Based Query in Relational Database Using Ontology, Canadian Journal on Data Information and Knowledge Engineering, vol. 2, nº 1, SEGARAN T, EVANS C, TAYLOR J. Programming the Semantic Web. O Reilly Media; SELL, D., SILVA, D. C., BEEPLER, F. D., NAPOLI, M., GHISI, F. B., PACHECO, R. C. S., AND TODESCO, J. L. SBI: A Semantic Framework to Support Business Intelligence. OBI, pp. 1-11, THOMSEN E. OLAP Solutions: Building Multidimensional Information Systems. 2nd ed. John Wiley & Sons;

120 Análise Experimental de Bases de Dados Relacionais e NoSQL no Processamento de Consultas sobre Data Warehouse Anderson Chaves Carniel 1, Aried de Aguiar Sá 1, Marcela Xavier Ribeiro 1, Renato Bueno, Cristina Dutra de Aguiar Ciferri 2, Ricardo Rodrigues Ciferri 1 1 Universidade Federal de São Carlos 2 Universidade de São Paulo Abstract. Data warehouse (DW) is a large, oriented-subject, non-volatile, and historical database, and an important component of Business Intelligence. On DW are executed OLAP (Online Analytical Processing) queries that often culminate in a high response time. Fragmentation of data, materialized views and indices aim to improve performance in processing these queries. Additionally, NoSQL (Not only SQL) database are used instead of the relational database, to improve specific aspects such as performance in query processing. In this sense, in this paper is investigated and compared DW implementations using relational databases and NoSQL. We evaluated the response times in processing queries, memory usage and CPU usage percentage, considering the queries of the Star Schema Benchmark. As a result, the column-oriented model implemented by the software FastBit, showed gains in time of 25.4% to 99.8% when compared to other NoSQL models and relational in query processing. Resumo. Data warehouse (DW) é uma base de dados orientada à assunto, não volátil, histórica e volumosa, sendo um componente importante da inteligência de negócio. Sobre DW incidem consultas OLAP (Online Analytical Processing) que frequentemente culminam em um alto tempo de resposta. Fragmentação de dados, visões materializadas e estruturas de indexação objetivam melhorar o desempenho no processamento dessas consultas. Adicionalmente, banco de dados NoSQL (Not only SQL) são usados como alternativa dos banco de dados relacionais, visando melhorar aspectos específicos, tal como o desempenho no processamento de consultas. Nesse sentido, neste trabalho é investigado e comparado implementações de DW usando banco de dados relacionais e NoSQL. Foram avaliados os tempos de respostas no processamento de consultas, o uso de memória e o uso porcentual de CPU, considerando as consultas do Star Schema Benchmark. Como resultado, o modelo orientado a coluna implementado pelo software FastBit, apresentou ganhos de reduções de tempo de 25,4% a 99,8% se comparado aos outros modelos NoSQL e relacional, no processamento de consultas. Categories and Subject Descriptors: H. Information Systems [H.m. Miscellaneous]: Databases Keywords: data warehouse, query processing, experimental evaluation, relational databases, NoSQL, bitmap join indices 1. INTRODUÇÃO Um data warehouse (DW) integra informações de diversas fontes para auxiliar na tomada de decisão estratégica, compreendendo em uma base de dados histórica, orientada a assunto e não volátil [Kimball and Ross 2002]. Como um dos componentes principais da inteligência de negócio, sobre um DW são executadas consultas analíticas comumente processadas por ferramentas OLAP (Online Analytical Processing) [Xu et al. 2007]. Por envolver um grande volume de dados, tais consultas exigem um grande esforço computacional, tornando um desafio processá-las eficientemente. Técnicas como a fragmentação dos dados [Golfarelli et al. 2000], visões materializadas [Baikousi and Vassiliadis 2009] e estruturas de indexação [O Neil and Graefe 1995; Stockinger and Wu 2006], visam melhorar o tempo de resposta das consultas OLAP. Além disso, NoSQL tem sido cada vez mais 113

121 usado para processar grandes volumes de dados, sendo aplicáveis em situações com características próprias, tal como o processamento de consultas em dados não voláteis [Bonnet 2011; Cattel 2010; Han 2011]. Tendo em vista estas variadas formas, neste artigo é investigado e comparado o uso de fragmentação de dados, visões materializadas e estruturas de indexação com os modelos NoSQL para processar consultas OLAP sobre DW. Nesse contexto, as contribuições deste artigo são análises realizadas a partir de comparações experimentais executadas por meio de testes de desempenho considerando os modelos orientado a colunas e a documentos do NoSQL com o modelo relacional. Com isso, identificam-se mecanismos de consulta eficientes para o processamento de consultas sobre DW, auxiliando na elaboração de ferramentas OLAP para processar consultas eficientemente, tal como em [Carniel and Siqueira 2011]. Este artigo está organizado da seguinte forma. Na seção 2 é apresentada a fundamentação teórica, mostrando os conceitos necessários para a compreensão deste trabalho. Na seção 3 são discutidos e apresentados os resultados de testes experimentais, que avaliaram o tempo de resposta de consultas, consumo de memória e porcentual de CPU. Finalmente, na seção 4 concluem-se os resultados obtidos e o direcionamento para trabalhos futuros. 2. FUNDAMENTAÇÃO TEÓRICA 2.1 Data warehouse e o processamento de consultas DW é uma base de dados histórica, integrada, não volátil e orientada ao assunto, utilizada para o armazenamento de dados visando auxiliar na tomada de decisão estratégica [Kimball and Ross 2002; Xu 2007]. Um DW pode ser implementado usando o esquema estrela ou floco de neve por meio do modelo relacional. Tabelas de fatos e de dimensão compõem tais esquemas [Kimball and Ross 2002]. Uma tabela de fatos armazena as medidas quantitativas do negócio analisado, enquanto uma tabela de dimensão caracteriza o assunto e seus atributos podem formar hierarquias. Na Fig. 1 é mostrado um esquema estrela composto pela tabela de fatos Lineorder e tabelas de dimensão Customer, Supplier, Date e Part [O Neil et al. 2009]. Os atributos s_region s_nation s_city s_address da tabela de dimensão Supplier constituem uma hierarquia permitindo a agregação dos dados e o processamento de consultas drill-down e roll-up, comumente usadas em aplicações OLAP. Um esquema floco de neve difere do esquema estrela por normalizar as hierarquias envolvidas, aumentando consequentemente o número de junções envolvidas. No processamento de consultas, a técnica de junção estrela se torna menos eficiente por envolver junções, agrupamentos, filtros e ordenações sobre um grande volume de dados, culminando um grande tempo de resposta. Na literatura existem técnicas para melhorar o desempenho no processamento de consultas, tais como a (i) fragmentação dos dados [Golfarelli et al. 2000], o uso de (ii) visões materializadas [Baikousi and Vassiliadis 2009] e (iii) estruturas de indexação [O Neil and Graefe 1995; Stockinger and Wu 2006]. Na técnica de fragmentação dos dados são construídas visões fragmentadas verticalmente (VFV) que objetivam eliminar junções entre as tabelas de dimensão e de fatos, mantendo um conjunto mínimo de atributos necessários para responder um conjunto de consultas [Golfarelli et al. 2000]. Por exemplo, pode-se construir uma VFV sobre o esquema estrela da Fig. 1, usando a álgebra relacional: Π d_year, p_category, p_brand1, s_region, lo_revenue (Part Lineorder Supplier Date). Portanto, ao se usar uma VFV para processar uma consulta, apenas os filtros, ordenações e agrupamentos serão computados. Por outro lado, uma visão materializada (VM) além de eliminar as junções, armazena os dados previamente agrupados e os resultados das funções de agregações sobre as medidas [Baikousi and Vassiliadis 2009], assim diminuindo o volume de dados se comparado a uma VFV. Por exemplo, uma visão materializada sobre o esquema estrela da Fig. 1 pode ser construída usando a álgebra relacional: d_year, p_category, p_brand1, s_region, G SUM(lo_revenue) (Π d_year, p_category, p_brand1, s_region, lo_revenue (Part Lineorder Supplier Date)). Portanto, ao se usar uma VM para processar uma consulta, apenas os filtros e ordenações serão computados. Estrutura de indexação é 114

122 outro fator importante para melhorar o desempenho no processamento das consultas. O índice bitmap de junção [O Neil and Graefe 1995] é comumente utilizado para processar consultas sobre DW, tendo como principal vantagem a eliminação de junção entre as tabelas de fatos e de dimensão. Um índice bitmap de junção é criado sobre atributos das tabelas de dimensão, construindo-se vetores de bits para cada valor distinto dos atributos [O Neil and Graefe 2995; Stockinger and Wu 2006]. O i-ésimo bit do vetor de bits armazenará o valor 1 se o valor correspondente ocorre na i-ésima tupla da tabela de fatos. Caso contrário, o bit será 0. Por construir um vetor de bits para cada valor distinto, a cardinalidade de atributos é um fator que pode diminuir a eficiência deste índice. Para contornar este problema, técnicas de encaixotamento, codificação e compressão são utilizadas [Stockinger and Wu 2006]. 2.2 Banco de Dados NoSQL Fig. 1. Esquema estrela de uma aplicação a varejo [O Neil et al. 2009] Uma característica interessante dos bancos de dados NoSQL (Not only SQL) para o contexto de DW é o armazenamento e processamento de consultas envolvendo grandes volumes de dados [Cattel 2010]. Banco de dados NoSQL baseiam-se no paradigma BASE (Basically Available, Soft State, Eventually consistent) ao contrário do ACID (Atomic, Consistent, Isolation and Durable) dos banco de dados relacionais [Bonnet 2011]. Além disso, sacrificando um dos três aspectos do teorema CAP (Consistent, Available, Partition) busca-se a maximização dos outros dois [Bonnet 2011; Cattel 2010]. Por exemplo, um banco de dados NoSQL pode maximizar a consistência e disponibilidade sacrificando o particionamento dos dados. Os principais modelos das bases de dados NoSQL são: (i) chave-valor [Han 2011]; (ii) orientado a coluna [Cattel 2010; Liu et al. 2011] e (iii) orientado a documentos [Bonnet 2011]. No modelo chave-valor os dados são estruturados como pares de chaves e valores, comumente expressos por índices hash [Han 2011]. Todas as operações de manipulação e consulta dos dados são realizadas sobre as chaves, com um alto desempenho. Consultas ad-hoc nesse modelo de dados é inviável, uma vez que todas as consultas são sobre as chaves e não sobre os valores. Já no modelo orientado a coluna, os dados são armazenados de acordo com suas colunas independentemente [Liu 2011]. Cada coluna é exclusivamente armazenada em cada tabela, sem a existência de relacionamentos. Finalmente, o modelo orientado a documento estende o modelo chave-valor, associando a uma chave um documento, por exemplo, documentos JSON (JavaScript Object Notation) [Bonnet 2011]. Em adição, no modelo orientado a documento é possível a execução de consultas pelos valores contidos nos documentos, bem como sua indexação, para o processamento de consultas ad-hoc [Bonnet 2011; Han 2011]. Neste artigo foram avaliados os modelos orientados a coluna e documento, capazes de processar consultas ad-hoc. Para o modelo orientado a coluna foram selecionados os softwares FastBit [Rübel et 115

123 al. 2009] e LucidDB [Liu 2011, LucidDB]. Eles utilizam índices bitmap como estrutura de indexação, além de algoritmos de compressão. Adicionalmente, o LucidDB foi criado para o ambiente de data warehousing, justificando a sua escolha. Além disso, o mesmo armazena estatísticas e algoritmos de organização dos vetores de bits em árvores-b para o processamento de consultas. A escolha do software FastBit foi motivada pelos resultados mostrados ao se processar consultas OLAP [Carniel and Siqueira 2011]. Já para o modelo orientado a documento foi selecionado o MongoDB, que também armazena estatísticas para melhorar o desempenho no processamento de consultas. Todos os softwares avaliados são livres e os resultados dos testes experimentais são discutidos na seção COMPARAÇÃO DE DESEMPENHO Nesta seção são discutidos e apresentados os resultados dos testes de desempenho experimentais realizados considerando duas bases de dados denominadas DW1 e DW10. Tais bases de dados são idênticas ao esquema estrela da Fig. 1 e foram geradas sinteticamente por meio do Star Schema Benchmark (SSB) [O Neil et al. 2009]. Enquanto a base de dados DW1 foi construída com o fator de escala 1 contendo 6 milhões de tuplas na tabela de fatos, a base de dados DW10 é 10 vezes mais volumosa, construída com o fator de escala 10 contendo 60 milhões de tuplas na tabela de fatos. Foi investigado o desempenho dos softwares FastBit, LucidDB, MongoDB baseados em NoSQL, além do sistema gerenciador de banco de dados (SGBD) relacional PostgreSQL. No software FastBit foram construídos índices bitmap de junção para cada VFV e VM com o algoritmo de compressão WAH [Stockinger and Wu 2006], com codificação e sem binning. Enquanto no LucidDB, além de manter as bases de dados DW1 e DW10, foram construídos índices bitmap de junção com algoritmo de compressão para cada VFV e VM. No MongoDB existiu a necessidade de mapear o esquema estrela da Fig. 1 para o armazenamento em documentos. Dessa forma, a tabela de fatos do esquema estrela foi representada por uma coleção (Lineorder), tendo como documentos incorporados suas dimensões (Customer, Part, Supplier e Date). Além disso, outras coleções foram criadas no MongoDB para o armazenamento de VFV e VM. Uma VFV no MongoDB não contém documentos incorporados, enquanto uma VM além de não conter documentos incorporados, os dados estão previamente agrupados e suas medidas calculadas. Por fim, no SGBD PostgreSQL, além das bases de dados DW1 e DW10, construiu-se uma VFV e VM correspondente para cada consulta. As 13 consultas do SSB, divididas em quatro grupos de consultas com complexidade crescente (Q1, Q2, Q3 e Q4), foram executadas na plataforma de hardware e software que segue. Um computador com um processador Intel(R) Pentium(R) D com frequência de 2,80Ghz, disco rígido SATA de 320 GB com 7200 RPM, e 2 GB de memória principal. O sistema operacional foi Fedora 16 com a versão do Kernel fc16.x86_64, com os softwares: FastBit 1.3.0, LucidDB 0.9.4, MongoDB rc1, PostgreSQL e Java JDK 1.7.0_04. Na seção 3.1 são apresentados os resultados relativos ao tempo de execução das consultas utilizando a técnica de VFV e VM sobre as bases de dados DW1 e DW10 para cada ferramenta avaliada. Por fim, na seção 3.2 é mostrado o uso de memória e de CPU. 3.1 Processamento de Consultas Usando Visões Fragmentadas Verticalmente e Visões Materializadas Inicialmente, foram executadas as consultas do SSB sobre as bases de dados DW1 e DW10. Cada consulta foi executada cinco vezes, e o cache limpo após a execução de cada consulta. Todas as consultas foram executadas localmente para inibir a latência da rede. As configurações utilizadas neste experimento foram: (i) PostgreSQL + JE utilizou a técnica de junção estrela no PostgreSQL; (ii) PostgreSQL + VFV utilizou uma VFV para cada consulta armazenada no PostgreSQL; (iii) LucidDB + JE utilizou a técnica junção estrela no LucidDB; (iv) LucidDB + VFV utilizou índices bitmap de junção previamente construídos sobre cada VFV armazenadas no LucidDB; (v) MongoDB + DI utilizou documentos incorporados na coleção Lineorder; (vi) MongoDB + VFV utilizou uma VFV para cada consulta, eliminando os documentos incorporados; e, (vii) FastBit + VFV utilizou índices bitmap de junção previamente construídos sobre cada VFV. 116

124 Na Fig. 2 são mostrados os tempos médios de execução das consultas para cada configuração em ambas as bases de dados DW1 e DW10. Claramente a configuração MongoDB + DI foi a que demonstrou maiores tempos médios nas bases de dados DW1 e DW10. Como melhoramento no processamento de consultas, a configuração MongoDB + VFV diminuiu o tempo de resposta das consultas em relação ao MongoDB + DI, inferindo que os fatores determinantes foram a minimização da quantidade de atributos e a não adoção de documentos incorporados. Apesar do MongoDB + VFV ter melhorado o tempo de execução, esta configuração apresentou tempos proibitivos assim como o uso da técnica da junção estrela, nas configurações PostgreSQL + JE e LucidDB + JE. O uso de VFVs nas configurações PostgreSQL + VFV e LucidDB + VFV melhoraram o desempenho em relação a junção estrela. De maneira significativa, a configuração FastBit + VFV apresentou os melhores resultados no desempenho do processamento de consultas. Percebe-se então que o uso de índices bitmap de junção beneficiou o tempo de resposta no processamento de consultas. Apesar da configuração LucidDB + VFV utilizar também índices bitmap de junção, os tempos de resposta não foram tão bons quanto o da configuração FastBit + VFV. Isso ocorreu devido diferenças de implementações dos referidos índices. Além disso, a cardinalidade de atributos pode ter feito a diferença, uma vez que ao menos um atributo com alta cardinalidade existia em cada consulta (o atributo lo_revenue com cardinalidade de e nas bases de dados DW1 e DW10, respectivamente). Em ambas as bases de dados DW1 e DW10 a configuração FastBit + VFV apresentou reduções de tempos significativa em relação as outras configurações. Foi calculada a redução de tempo de cada configuração, que determinou o quanto uma configuração se sobrepôs eficientemente sobre outra. Na base de dados DW1 (Fig. 2a), a configuração FastBit + VFV foi 31,7% (em relação a Q4.1 da configuração PostgreSQL + VFV) a 99,4% (em relação a Q3.4 da configuração MongoDB + DI) mais eficiente. Enquanto na base de dados DW10 (Fig. 2b), a configuração FastBit + VFV foi 42,4% (em relação a Q4.2 da configuração PostgreSQL + VFV) a 99,8% (em relação a Q3.4 da configuração MongoDB + DI). Somente na consulta Q4.2, a configuração LucidDB + VFV apresentou uma redução de 7,8% em relação a configuração FastBit + VFV. Portanto, os índices bitmap de junção utilizados no software FastBit apresentaram os melhores resultados para processar a maioria das consultas sobre DW quando utilizado visões fragmentadas verticalmente. (a) Tempo decorrido médio no processamento das consultas sobre a base de dados DW1 (b) Tempo decorrido médio no processamento das consultas sobre a base de dados DW10 Fig. 2. Tempo decorrido médio em segundos por cada configuração para processar as consultas do SSB utilizando as técnicas junção estrela e visões fragmentadas verticalmente sobre a base de dados DW1 e DW10 117

125 Em relação ao armazenamento, o esquema estrela da base de dados DW1 ocupou uma soma de MB no PostgreSQL, 580 MB no LucidDB e MB no MongoDB. Enquanto o esquema estrela da base de dados DW10 ocupou uma soma de MB no PostgreSQL, MB no LucidDB e MB no MongoDB. As VFVs na base de dados DW1 ocuparam uma soma de MB no PostgreSQL e MB no MongoDB, enquanto os índices bitmap de junção construídos sobre as visões ocuparam uma soma de MB no FastBit e MB no LucidDB. No DW10, as VFVs ocuparam uma soma de MB no PostgreSQL e MB no MongoDB, enquanto os índices bitmap de junção construídos sobre as visões ocuparam uma soma de MB no FastBit e MB no LucidDB. Como resultado, observou-se um volumoso armazenamento do MongoDB em todos os casos, além disso um desempenho proibitivo no processamento de consultas. Em contra partida, o LucidDB mostrou um melhor armazenamento dos índices que o FastBit. Isso se deve a utilização de algoritmos de compressão, porém em sua documentação tais algoritmos não são informados [LucidDB]. Por outro lado, o FastBit proporcionou ganhos nos tempos de respostas em relação ao LucidDB, mesmo requerendo mais espaço de armazenamento. A aplicação de VFVs na base de dados DW10 ofereceu reduções de tempos em relação a junção estrela. Porém, devido ao alto volume de dados, tais tempos ainda foram proibitivos. Dessa forma, foi investigado o uso de VMs para melhorar o tempo de resposta no processamento de consultas. Utilizaram-se então as seguintes configurações: (i) PostgreSQL + VM utilizou visões materializadas armazenadas no PostgreSQL; (ii) LucidDB + VM utilizou índices bitmap de junção construídos sobre visões materializadas armazenadas no LucidDB; (iii) MongoDB + VM: usou visões materializadas armazenadas no MongoDB; e, (iv) FastBit + VM: usou índices bitmap de junção construídos sobre visões materializadas. Neste teste, todas as consultas do SSB foram executadas localmente e cinco vezes, com o cache limpo após a execução de cada consulta. Na Fig. 3a é mostrado os resultados dos tempos médios. As visões materializadas diminuíram o volume de dados para a execução das consultas, como mostrado na Fig. 3b o número de tuplas de cada VM. O uso de VMs melhorou o desempenho das consultas, porém obteve-se diferença nas visões mais volumosas (Q3.4 e Q4.3). A configuração FastBit + VM apresentou reduções de 88,4% a 93% na consulta Q3.4 (configurações PostgreSQL + VM e LucidDB + VM, respectivamente) e de 96,9% a 97,8% na consulta Q4.3 (configurações LucidDB + VM e MongoDB + VM, respectivamente). Apesar de o LucidDB utilizar também índices bitmap de junção em um volume menor de dados (se comparado às VFVs), o seu resultado não foi proporcional ao do FastBit. Isso se deve a alta compressão utilizada pelo LucidDB que atrasa o tempo de execução das consultas, uma vez que é necessário a descompressão dos índices. Como resultado, os tempos médios da execução das consultas considerando a configuração FastBit + VM não teve grande variação. Já a varredura sequencial das VMs no SGBD PostgreSQL foi o que apresentou melhores tempos de respostas médios na maioria das consultas sobre as visões que continham um volume menor de dados. Em relação ao armazenamento, a soma total das VMs ocuparam MB no PostgreSQL e MB no MongoDB, e os índices bitmap de junção construídos sobre as VMs ocuparam uma soma de MB no FastBit e MB no LucidDB. 3.2 Uso de Memória e de CPU Este teste experimental objetivou avaliar o consumo de memória e CPU utilizada por cada ferramenta. Foi considerado no teste a consulta Q4.3, sendo a mais custosa constatada na Fig. 3a, executada duas vezes (uma para coletar o consumo de memória e outra para coletar a porcentagem de processamento do CPU) sobre a base de dados DW10. Nesse sentido, as configurações utilizadas na execução das consultas foram as mesmas do teste de avaliação do uso de visões materializadas da seção 3.1: (i) PostgreSQL + VM; (ii) LucidDB + VM; (iii) MongoDB + VM; e, (iv) FastBit + VM. O consumo de memória foi medido utilizando a biblioteca ps_mem.py. Enquanto o uso porcentual do CPU foi medido utilizando o comando do sistema operacional ps aux. 118

126 Visão Materializada Número de Tuplas Q1.1 7 Q Q Q Q Q Q Q Q Q Q Q Q (a) Tempo decorrido médio no processamento das consultas sobre a base de dados DW10 (b) Número de registros de cada visão materializada da base de dados DW10 Fig. 3. Tempo decorrido médio em segundos por cada configuração para processar as consultas do SSB sobre a base de dados DW10, ao utilizar visões materializadas. Número de registros de cada visão materializada composta. Na Fig. 4a são mostrados os resultados do consumo de memória de cada configuração considerada. A execução da consulta da configuração MongoDB + VM apresentou resultados proibitivos, pois consumiu mais memória por um tempo maior (picos de até 1,6 GB) e também demandou mais tempo para ser processada. Já a configuração LucidDB + VM, conseguiu reduzir o consumo de memória se comparado a configuração MongoDB + VM, porém ainda é altíssimo em relação à PostgreSQL + VM. Como resultado principal, a configuração FastBit + VM apresentou um excelente consumo de memória aliada a um bom tempo de resposta para processar a consulta. Na Fig. 4b são mostrados os resultados do consumo porcentual de CPU. Novamente, a configuração MongoDB + VM exigiu mais tempo para execução da consulta, demandando um custo de processamento de CPU superior as outras configurações durante a maior parte do seu tempo. A configuração LucidDB + VM exigiu um grande processamento do CPU no início, devido o início de sua conexão, porém, posteriormente ocorreu uma redução considerável de consumo. Enquanto a configuração PostgreSQL + VM apresentou resultados proporcionais, com uma média de consumo de CPU de 27%. Assim, como aconteceu no teste de memória, a configuração FastBit + VM exigiu uma carga menor de CPU por um tempo muito menor que as outras configurações. (a) Consumo de memória (b) Consumo porcentual de CPU Fig. 4. Consumo de memória e porcentual de CPU de cada configuração para processar a consulta Q4.3 sobre a base de dados DW10 usando visões materializadas 119

127 4. CONCLUSÕES E TRABALHOS FUTUROS Este artigo apresentou uma investigação experimental utilizando técnicas conhecidas para processar consultas em DW, considerando vários modelos NoSQL e relacional, por meio das bases de dados DW1 e DW10 geradas sinteticamente pelo Star Schema Benchmark. Foram realizados experimentos para comparar o tempo de resposta, consumo de memória e consumo porcentual de CPU. Além disso, foi verificado o custo de armazenamento de cada ferramenta avaliada. Como resultado obtido no tempo médio das execuções de consultas, o software FastBit do modelo orientado a coluna por meio de índices bitmap de junção garantiu reduções de 25,4% a 99,8% se comparado as outras técnicas utilizadas neste artigo. Adicionalmente, o software FastBit apresentou um baixo consumo de memória e consumo porcentual de CPU em relação aos outros modelos. Como pior resultado, o software MongoDB apresentou tempos médios proibitivos e altíssimo consumo de memória em relação as outras técnicas no processamento de consultas OLAP sobre DW. Em relação ao armazenamento, o software LucidDB do modelo orientado a coluna, apresentou os melhores resultados, e o software MongoDB os piores. Porém, devido a alta compressão dos índices bitmap de junção, o processamento de consultas foi prejudicado. Dessa maneira, o modelo orientado a coluna do NoSQL obteve melhores resultados no processamento de consultas OLAP bem como no armazenamento dos dados, quando comparado as outras técnicas consideradas neste artigo. Uma avaliação estendida a ser realizada futuramente acrescentará o modelo orientado a grafos do NoSQL [Han 2011] na avaliação experimental realizada neste artigo. Além disso, a inclusão de dados espaciais nos testes de desempenho também será feita, com a representação de geometrias em DW geográficos para a execução de consultas SOLAP (Spatial OLAP) [Siqueira et al. 2011]. Agradecimentos. Os autores agradecem o apoio financeiro das seguintes agências de fomento à pesquisa do Brasil: FAPESP, CNPq e CAPES. REFERENCES BAIKOUSI, E. AND VASSILIADIS, P. View usability and safety for the answering of top-k queries via materialized views. In DOLAP, pp , ACM, New York, BONNET, L., LAURENT, A., SALA, M., LAURENT, B. AND SICARD, N. Reduce, You Say: What NoSQL Can Do for Data Aggregation and BI in Large Repositories. In International Workshop on Database and Expert Systems Applications, pp , CARNIEL, A. C. AND SIQUEIRA, T. L. L. An OLAP Tool based on the Bitmap Join Index. In CLEI, pp , CATTEL, R. Scalable SQL and NoSQL data stores. Special Interest Group on Management of Data (SIGMOD Record), vol. 39, p , ACM, GOLFARELLI, M., MAIO, D. AND RIZZI, S. Applying vertical fragmentation techniques in logical design of multidimensional databases. In DaWaK, pp , Springer, HAN, J., HAIHONG, E., LE, G. AND DU, J. Survey on NoSQL database. In International Conference on Pervasive Computing and Applications (ICPCA), pp , KIMBALL, R. AND ROSS, M. The data warehouse toolkit: the complete guide to dimensional modeling. John Wiley & Sons, LIU, Z., HE, B., HSIAO, H. AND CHEN, Y. Efficient and scalable data evolution with column oriented databases. In EDBT/ICT'11, ACM, p , LUCIDDB. Data Storage and Access, O NEIL, P. AND GRAEFE, G. Multi-table joins through bitmapped join indices. SIGMOD Record, vol. 24, pp. 8-11, O NEIL, P., O NEIL, E., CHEN, X. AND REVILAK, S. The star schema benchmark and augmented fact table indexing. In TPCTC, pp , RÜBEL, O., SHOSHANI, A., SIM, A., STOCKINGER, K., WEBER, G. AND ZHANG, W. M. FastBit: interactively searching massive data. Journal of Physics: Conference Series, vol. 180, 12053, SIQUEIRA, T. L. L., CIFERRI, C. D. A., TIMES, V. C. AND CIFERRI, R. R. The SB-index and the HSB-Index: efficient indices for spatial data warehouses. Geoinformatica, vol. 16, no. 1, pp , STOCKINGER, K. AND WU, K. Bitmap indices for data warehouses. In Data Warehouses and OLAP, IRM Press, pp , XU, L., ZENG, L., SHI, Z., HE Q. AND WANG, M. Research on business intelligence in enterprise computing environment. In IEEE SMC, pp ,

128 Junções Adaptativas em Consultas Federadas sobre Linked Data Macedo Sousa Maia 1, João Carlos Pinheiro 3, Regis Pires Magalhães 1,2, José Maria da Silva Monteiro Filho 1, Vânia Maria Ponte Vidal 1 1 Universidade Federal do Ceará UFC, Brazil {regispires, macedomaia, vvidal, 2 Instituto Federal do Piauí IFPI, Brazil 3 Instituto Federal do Maranhão IFMA, Brazil Abstract. Motivated by the success of Linked Data and driven by the growing number of data sources into RDF files available on the web, new challenges for query processing are emerging, especially in distributed settings. These environments allow distributed execution of federated queries, which involve joining data provided by multiple sources, which are often unstable. In this sense, the design of new algorithms and adaptive strategies for efficiently implementing joins is a major challenge. In this paper we present a solution to the adaptive join execution in federated queries. The adaptation to the context of distributed data sources is based on statistics that are collected at runtime. To evaluate the proposed approach we implemented two adaptive join algorithms: Pipeline hash-join (PHJ) and Set-bind-join (SBJ). The experimental results demonstrate the potential of the proposed approach. Resumo. Motivado pelo sucesso de Linked Data e impulsionado pelo crescimento do número de fontes de dados em formato RDF disponíveis na Web, novos desafios para processamento de consultas estão emergindo, especialmente em configurações distribuídas. Estes ambientes distribuídos possibilitam a execução de consultas federadas, as quais envolvem junções de dados fornecidos por múltiplas fontes, as quais são muitas vezes instáveis. Nesse sentido, a concepção de novos algoritmos e estratégias adaptativas para a execução de junções de forma eficiente constitui um desafio importante. Nesse trabalho, apresentamos uma solução para a execução adaptativa de junções em consultas federadas. A adaptação ao contexto das fontes de dados distribuídas baseia-se em estatísticas que são coletadas em tempo de execução. Para avaliar a abordagem proposta implementamos dois algoritmos de junção adaptativos: Pipeline Hash-join (PHJ) e Set-bind-join (SBJ). Os resultados experimentais comprovam o potencial da abordagem proposta. Categories and Subject Descriptors: H.Information Systems [H.m. Miscellaneous]: Databases Keywords: Join Operators, Context Adaptation, Federated Queries, Linked Data 1. INTRODUÇÃO A Web de Dados é considerada uma extensão da Web atual. Seu principal objetivo consiste em facilitar a interpretação e a integração dos dados na Web. Como parte do desenvolvimento da Web Semântica, surgiu o conceito de Linked Data (dados ligados) o que pode ser definido como um conjunto de boas práticas para publicar, consumir e conectar conjuntos de dados estruturados na Web [Bizer et al. 2009]. Estas práticas são fundamentadas em tecnologias Web, tais como: HTTP (Hypertext Transfer Protocol); URI (Uniform Resource Identifier), usado como mecanismo de nome global; RDF (Resource Description Framework), um modelo de dados simples, expressivo, extensível e que permite interligar itens entre diferentes fontes de dados; e a linguagem SPARQL, uma linguagem de consulta de alto nível capaz de abstrair os detalhes necessários para a execução de consultas sobre fontes de dados distribuídas e heterogêneas. 121

129 As práticas de Linked Data têm impulsionado a publicação de dados abertos, compreensíveis logicamente por máquinas e suportados pelo World Wide Web Consortium (W3C). Contudo, o consumo e o acesso integrado a esses dados ainda é algo difícil de ser realizado. Essa dificuldade advém de diversos fatores, tais como: o vocabulário heterogêneo dos dados e a sua fragmentação e distribuição natural na Web. Este cenário traz consigo a necessidade de mecanismos que possibilitem o acesso integrado aos dados distribuídos de maneira eficiente. No padrão Linked Data, especificamente, cada fragmento de dado no formato de triplas RDF descreve a si mesmo e suas relações com outros fragmentos de dados de forma descentralizada. As aplicações podem acessar Linked Data na Web por meio de consultas a um determinado SPARQL endpoint, de forma individual. Porém, embora esse acesso possa prover dados valiosos para a aplicação, essa abordagem ignora o grande potencial de Linked Data, pois não explora as possibilidades deste espaço de dados global que integra um grande número de fontes de dados interligados [Magalhães and Vidal 2011]. Por outro lado, com advento do SPARQL 1.1, tornou-se possível formular uma consulta federada que busque informações em múltiplas fontes de dados, desde que se conheça previamente a localização, o vocabulário heterogêneo e como combinar os dados dessas fontes. Assim, a federação de consultas baseia-se na distribuição do processamento de consultas para múltiplas fontes de dados autônomas. Desta forma, uma determinada consulta federada precisa ser decomposta em subconsultas, onde cada subconsulta é enviada a um serviço de consulta específico (endpoint). Em seguida, os resultados obtidos são integrados e a resposta final é devolvida ao usuário. A Figura 1 ilustra uma consulta federada definida sobre dois endpoints distribuídos, onde o primeiro contém informações sobre doenças (diseasome) e o segundo sobre drogas (drugbank), e a representação de um possível plano de execução para esta consulta. PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX diseasome: <http://www4.wiwiss.fu-berlin.de/ diseasome/resource/diseasome/> SELECT?disease_name?drug_name WHERE { SERVICE <http://www4.wiwiss.fu-berlin.de/diseasome/ sparql> {?disease diseasome:name?disease_name.?disease diseasome:possibledrug?dg. } SERVICE <http://www4.wiwiss.fu-berlin.de/drugbank/ sparql> {?dg rdfs:label?drug_name. } } SERVICE diseasome PROJECT (?disease_name?drug_name) JOIN SERVICE drugbank BGP?disease diseasome:name?disease_name?disease diseasome:possibledrug?dg BGP?dg rdfs:label?drug_name Fig. 1. Exemplo de uma consulta federada SPARQL e seu plano de execução Em uma consulta federada, os dados são extraídos das múltiplas fontes no momento de sua execução. Contudo, tais fontes de dados são heterogêneas, distribuídas, autônomas, e, na maioria das vezes instáveis, alternando períodos de disponibilidade e indisponibilidade, além de elevada e baixa vazão. Logicamente, neste cenário altamente dinâmico, o processamento de uma consulta federada pode apresentar problemas de desempenho e previsibilidade. Esses problemas são potencialmente agravados quando a consulta federada contém junções envolvendo grandes volumes de dados provenientes de fontes distribuídas, fato comum em Linked Data, onde as consultas podem envolver milhões de triplas RDF. Um otimizador de consultas federadas sobre Linked Data possui muito menos informação disponível do que um otimizador tradicional de banco de dados relacionais. Como resultado, duas situações podem acontecer: o otimizador pode não ter informação suficiente para decidir sobre um bom plano de 122

130 execução ou um plano que, a princípio, pareça bom, pode não o ser se as fontes não responderem exatamente da forma esperada. [Buil-Aranda et al. 2011] destacam que o processamento de consultas SPARQL distribuídas sobre Linked Data é uma tarefa bastante complexa. [Halevy et al. 2006] realizaram retrospectiva sobre dez anos de pesquisa na área de integração de dados que apontam o processamento de consultas adaptativo, como um dos temas de pesquisa fundamentais para a solução de problemas de integração. Muitos estudos [Avnur and Hellerstein 2000; Ives et al. 2004; Ayres et al. 2003] têm sido realizados com o intuito de tornar a execução da consulta o mais adaptativa possível. Em [Porto et al. 2007] é descrito o QEF (Query Execution Framework), um framework para execução de consultas, o qual foi projetado para suportar aplicações complexas em grade (grid). No QEF, as consultas apresentam a forma de um workflow no qual as tarefas são representadas na forma de operadores algébricos e os tipos de dados específicos são envelopados em uma estrutura de dados comum. Uma extensão do QEF para processar consultas federadas em ambientes de Linked Data foi apresentada em [Magalhães 2012] e é utilizada para implementar os algoritmos e as estratégias de junções adaptativas discutidos neste trabalho. O presente trabalho investiga uma estratégia adaptativa que possibilite mudar, em tempo de execução, o algoritmo de junção, recorrendo aos algoritmos mais adequados a cada instante, dependendo do contexto do ambiente de execução, ou seja, do comportamento das fontes de dados. Essa adaptação busca reduzir o volume de dados intermediários, além de explorar o processamento paralelo de consultas, bem como os modelos pull e push de entrega de dados. Acreditamos que estratégias de junções adaptativas são essenciais no ambiente altamente dinâmico dos Linked Data, os quais apresentam duas características que desafiam a avaliação de consultas SPARQL distribuídas: larga escala e imprevisibilidade nos tempos de entrega de dados. Esse artigo foi estruturado da seguinte forma: Na seção 2 apresentamos a abordagem do processamento dos operadores de Junções Adaptativas propostos. Na seção 3 mostramos, de maneira sucinta, os resultados dos experimentos baseados na estratégia adotada e nos operadores de junção. Na seção 4 citamos alguns trabalhos relacionados. Por fim, na seção 5, a conclusão e os trabalhos futuros. 2. PROCESSAMENTO DE JUNÇÕES ADAPTATIVO Neste trabalho, propomos uma estratégia baseada em algoritmos de junção adaptativos voltados para consultas sobre ambientes de Linked Data. A estratégia adaptativa adotada leva em consideração: minimização de transmissão de resultados intermediários para o ambiente de execução, o tempo total de execução e o tempo de resposta inicial. Para isso, faz-se uma sintonia entre os objetivos de aumento de vazão (throughput), da verificação constante da disponibilidade das fontes e da redução do volume dados transmitidos, mudando os algoritmos adaptativos dinamicamente durante a execução, sem interromper o envio dos dados do SPARQL endpoint para o ambiente de execução. Desse modo, os dados são enviados em pipeline, ou seja, os resultados parciais são retornados à aplicação, sem a necessidade de esperar que a consulta seja processada por completo. A consulta é ajustada ao contexto e às mudanças do ambiente federado a partir de dados estatísticos coletadas em tempo de execução (on-the-fly). Para entendermos melhor o funcionalmento da nossa abordagem, mostramos na Figura 2 a arquitetura do processador de consultas e seus componentes, onde esses últimos são descritos da seguinte forma: Translator: Responsável por traduzir a consulta SPARQL para o seu Plano de Execução da consulta(qep) correspondente. Executor: É designado para executar a consulta a partir de um QEP e retornar o resultado para a aplicação. Além da execução, ele também pode realizar alterações no plano, baseando-se nos dados estatísticos produzidos pelo Monitor, visando reduzir o custo total da consulta. Monitor: Esse componente é responsável pelo monitoramento do fluxo dos dados que são enviados 123

131 Fig. 2. Arquitetura do processador de consultas à aplicação. A partir disso, pode-se produzir dados estatísticos a partir da vazão (Throughput) dos dados em um determinado instante de tempo e da verificação da disponibilidade das fontes. Isso será possível através da implementação de um operador de controle que verificará essas métricas constantemente durante a execução. Essas estatísticas serão usadas para a adaptação das operações de junção que constituem o plano de consulta federado. Com a finalidade de avaliar a abordagem proposta dois operadores de junção adaptativos foram implementados Pipeline Hash-join (PHJ) e Set-bind-join (SBJ) [Pinheiro 2011]. A seção 3 descreve os resultados experimentais obtidos com a utilização desses operadores adaptativos. Para deixar mais claro, o operador PHJ é baseado em operação de Hash Join e utiliza paralelismo pipelining. A grande vantagem do PHJ sobre as operações de Hash Join é o fato de seu algoritmo ser não bloqueante, diminuindo assim a sobrecarga entre a mudança de uma tabela Hash para a outra. A desvantagem consiste do fato de não tratar a redução da quantidade de dados transferidos dos endpoints SPARQL para o mediador. O operador SBJ se baseia no algoritmo de Bind-join. O algoritmo SBJ processa seguindo a estratégia em que os dados resultantes da subconsulta que recupera os binds são lidos e os valores correspondentes aos binds são enviados em blocos e encapsulados na cláusula SPARQL BINDINGS. 3. RESULTADOS E EXPERIMENTOS Esta seção apresenta os experimentos realizados para avaliar a abordagem proposta e discute os resultados obtidos. Para validar a abordagem proposta, foram implementados os algoritmos de junção SBJ (Set-Bind-Join)[Pinheiro 2011] e PHJ(Pipelining Hash Join)[Pinheiro 2011]. O objetivo dos experimentos foi avaliar, para um escopo limitado, porém representativo, de consultas, os benefícios que podem ser proporcionados pela execução adaptativa de junções. Neste sentido, uma carga de trabalho composta de duas consultas federadas foi executada em um ambiente distribuído real. Três cenários distintos foram avaliados: Cenário 1: Execução das consultas federadas utilizando o algoritmo de junção adaptativo PHJ; Cenário 2: Execução das consultas federadas utilizando o algoritmo de junção adaptativo SBH; Cenário 3: Execução das consultas federadas utilizando o ARQ/Service; A avaliação de desempenho utilizou como métrica o tempo de resposta médio de dez execuções de cada consulta, desprezando-se a primeira execução, o que é denominado de "teste frio". As consultas foram executadas automaticamente por uma aplicação cliente desenvolvida para este propósito. A Figura 3 descreve as fontes de dados utilizadas pelas consultas federadas que compõem a carga de trabalho analisada. Essas fontes (DrugBank e Dailymed ) armazenam dados sobre drogas e doenças. A Figura 4 mostra duas consultas federadas sobre as fontes de dados DrugBank e Dailymed. 124

132 Fig. 3. Fontes de dados utilizadas nas consultas Fig. 4. Consultas utilizadas nos testes Os testes foram realizados com tomadas de tempos de resposta das consultas distribuídas. Para cada consulta (plano de execução) foram realizadas dez execuções, sendo que a primeira execução é descartada e consideramos o tempo médio das demais tentativas. A medida monitorada durante a execução foi o tempo de resposta das consultas. A comparação dos tempos médios de execução das consultas no cenário descrito foi feita por meio de gráficos que apresentam os tempos de execução das consultas de forma normalizada, conforme discutido a seguir. Consulta Q1 Para a primeira consulta realizada sobre os SPARQL endpoints DrugBank e Dailymed, foi observado na Figura 5 que o pior desempenho ocorreu com a utilização do algoritmo PHJ, pois a consulta sobre o SPARQL endpoint Dailymed retorna expressivo volume de dados, considerando que nenhum filtro é aplicado. Já a utilização do algoritmo SBJ trouxe um ganho de desempenho perceptível, em que se 125

133 recuperou primeiro os resultados das possíveis drogas (?dg) da doença de código "3149". O resultado dessa consulta foi usado como bind na consulta sobre o endpoint Dailymed. Os benefícios do algoritmo SBJ advêm da redução sobremaneira da quantidade de dados intermediários enviado ao mediador. Os tempos de resposta mostraram que o SBJ apresentou tempo 8,7 vezes melhor em comparação com o resultado do processador ARQ/service e 12,6 vezes melhor em relação ao PHJ. Fig. 5. Plano correspondente a consulta 1 e a média dos tempos das execuções para cada junção utilizada Consulta Q2 Para a segunda consulta realizada sobre os SPARQL endpoints DrugBank e Dailymed, foi observado (Figura 6) que o melhor desempenho ocorreu com o algoritmo PHJ, pois a consulta sobre ambos os SPARQL endpoint (Dailymed e DrugBank) retornaram expressivo volume de dados, considerando que nenhum filtro é aplicado. Outra vantagem deste algoritmo é a geração de resultados o mais rápido possível, verificou-se que, na média, gastaram-se 11,6 segundos para geração do primeiro resultado, de um total de 28,8 segundos. A importância deste resultado é que o mesmo é disponibilizado (push) imediatamente para o operador subsequente (consumidor), usando o modelo de notificação de eventos. A execução do algoritmo SBJ ocorreu com a seguinte configuração, recuperou-se primeiro o código de todas as drogas (?dg) cadastradas no DrugBank, que é a consulta que recupera o menor número de binds, um total de 936. O resultado dessa consulta foi usado como bind na consulta sobre o endpoint Dailymed, sendo que, considerou-se o parâmetro t = 936/2 = 468. Verificou-se um tempo de resposta total de aproximadamente 8 por cento pior comparado com o PHJ, isso ocorreu porque se recuperou um número considerável de binds, não conseguindo uma redução significativa da quantidade de resultados intermédiarios transmitidos ao mediador. Para esta mesma consulta com o processador ARQ/Service, em nenhum dos dez experimentos recuperaram-se os resultados. Detectou-se, quando o volume de dados recuperado é relativamente grande, que o processador ARQ/Service não consegue obter o resultados. Isto reforça a importância da implementação dos algoritmos propostos para lidar com volume de dados crescente (escalabilidade) e a geração de resultados o mais rápido possível. Por sua vez, os resultados das consultas Q1 e Q2 motivam a necessidade de uma estratégia adaptativa que se beneficie das vantagens dos algoritmos SBJ e PHJ. No caso, o processador de consultas SPARQL foi implantado num computador separado (com processador Pentium Dual Core de 1,8 GHz com 2 GB de memória RAM e sistema operacional Windows 7, endereço IP: , Java Runtime Environment 6, 32 bits). Há dois cenários para o ambiente de execução: a) consultas submetidas a SPARQL endpoints reais disponíveis na Web; 126

134 Fig. 6. Plano correspondente a consulta 2 e a média dos tempos das execuções para cada junção utilizada b) consultas submetidas aos SPARQL endpoints implantados com o Jena/TDB e configurados numa rede local. Para este ambiente, os SPARQL endpoints foram instalados em 2 computadores, sendo que cada computador foi configurado com o MySQL e o Jena/TDB. Em seguida, apresenta-se uma descrição da configuração de cada computador. SPARQL Endpoint 1: processador AMD AthlonTM X2 de 2.8 GHz com 2 GB de memória RAM e sistema operacional Linux Ubuntu Server, endereço IP: SPARQL Endpoint 2: processador Pentium DualTM Core de 1,8 GHz com 2 GB de memória RAM e sistema operacional Windows 7, endereço IP: TRABALHOS RELACIONADOS Diversas soluções para processamento de consultas federadas sobre fontes de dados RDF heterogêneas têm sido propostas, tendo em vista sua relevância para integração de dados no contexto de Linked Data. A seguir, serão discutidas algumas dessas soluções. DARQ [Quilitz and Leser 2008] é um mediador baseado no processador de consultas Jena ARQ capaz de realizar consultas distribuídas sobre a web dados. SemWIQ [Langegger 2010] é outro mediador que estende o Jena ARQ a fim de consultar a web de dados fazendo uso de estatísticas [Langegger and Woss 2009] para otimizar as consultas. Desafios relacionados à eficiência de consultas federadas e uma abordagem para otimização dessas consultas baseada em programação dinâmica foram tratados por [Görlitz and Staab 2011]. [Le-phuoc et al. 2010] apresenta uma abordagem que provê um modelo de processamento de consultas escalável para unificar Linked Stream Data e Linked Open Data. A escalabilidade é alcançada pela aplicação de técnicas para armazenar dados de forma eficiente e fazer o pré-processamento de consulta, combinado com um algoritmo de otimização de consultas adaptativo baseado em custos para fontes de dados dinâmicas. [Avnur and Hellerstein 2000] propõe um mecanismo de consulta que re-ordena constantemente os operadores de um plano para se adaptar às variações que podem ocorrer nos dados durante a execução. Inicialmente são verificadas as restrições de re-ordenação existentes e é criado um plano de execução de consultas com as informações disponíveis. Nesse plano, os operadores são interligados por um operador de controle denominado eddy, que realiza a leitura dos dados das fontes e determina um roteamento para cada tupla segundo as informações observadas. Além disso, eddy requer operadores de junção que apresentem momentos de adaptação nos quais a ordem dos operadores pode ser alterada 127

135 com pouca ou nenhuma alteração em seu estado. 5. CONCLUSÕES E TRABALHOS FUTUROS Nesse trabalho, apresentamos uma solução para a execução adaptativa de junções em consultas federadas. A adaptação ao contexto das fontes de dados distribuídas baseia-se em estatísticas que são coletadas em tempo de execução, como por exemplo, a vazão de cada fonte de dados. Para avaliar a abordagem proposta implementamos dois algoritmos de junção adaptativos: Pipeline Hash-join (PHJ) e Set-bind-join (SBJ). Os resultados experimentais comprovam o potencial da abordagem proposta. Como trabalho futuro, propomos a construção de operadores de controle para gerenciar operações de junção e, com isso, possibilitar uma escolha mais eficiente do algoritmo de junção a ser utilizado a cada instante de tempo. REFERENCES Avnur, R. and Hellerstein, J. M. Eddies: Continuously adaptive query processing. In SIGMOD Conference. pp , Ayres, F. V. M., Porto, F., and Melo, R. N. Uma máquina extensível para suporte a novos modelos de execução de consultas. In SBBD, A. H. F. Laender (Ed.). UFAM, pp , Bizer, C., Heath, T., and Berners-Lee, T. Linked data - the story so far. Int. J. Semantic Web Inf. Syst. 5 (3): 1 22, Buil-Aranda, C., Arenas, M., and Corcho, O. Semantics and optimization of the sparql 1.1 federation extension. In Proceedings of the 8th extended semantic web conference on The semanic web: research and applications - Volume Part II. ESWC 11. Springer-Verlag, Berlin, Heidelberg, pp. 1 15, Görlitz, O. and Staab, S. Federated Data Management and Query Optimization for Linked Open Data. In New Directions in Web Data Management 1, A. Vakali and L. Jain (Eds.). Studies in Computational Intelligence, vol Springer Berlin / Heidelberg, pp , Halevy, A., Rajaraman, A., and Ordille, J. Data integration: the teenage years. In Proceedings of the 32nd international conference on Very large data bases. VLDB 06. VLDB Endowment, pp. 9 16, Ives, Z. G., Halevy, A. Y., and Weld, D. S. Adapting to source properties in processing data integration queries. In Proceedings of the 2004 ACM SIGMOD international conference on Management of data. SIGMOD 04. ACM, New York, NY, USA, pp , Langegger, A. A Flexible Architecture for Virtual Information Integration based on Semantic Web Concepts. Ph.D. thesis, J. Kepler University Linz, Langegger, A. and Woss, W. Rdfstats - an extensible rdf statistics generator and library. In Proceedings of the th International Workshop on Database and Expert Systems Application. DEXA 09. IEEE Computer Society, Washington, DC, USA, pp , Le-phuoc, D., Hausenblas, M., Parreira, J. X., Hauswirth, M., Dangan, L., Le-phuoc, D., Xavier, J., Hausenblas, P. M., and Hauswirth, M. Continuous query optimization and evaluation over unified linked stream data and linked open data, Magalhães, R. P. Um Ambiente para Processamento de Consultas Federadas em Linked Data Mashups. M.S. thesis, Universidade Federal do Ceará, Magalhães, R. P. and Vidal, V. M. P. Usando Tecnologias da Web Semântica para Construção e Execução de Mashup de Dados. In Proceedings of the 26th Brazilian Symposium on Databases? SBBD. X Workshop de Teses e Dissertações em Banco de Dados - WTDBD. Florianópoles, SC, Brazil, Pinheiro, J. C. Processamento de consulta de um framework baseado em mediador para integração de dados no padrão de Linked Data. Ph.D. thesis, Universidade Federal do Ceará, Porto, F., Tajmouati, O., Da Silva, V. F. V., Schulze, B., and Ayres, F. V. M. Qef - supporting complex query applications. In Proceedings of the Seventh IEEE International Symposium on Cluster Computing and the Grid. CCGRID 07. IEEE Computer Society, Washington, DC, USA, pp , Quilitz, B. and Leser, U. Querying Distributed RDF Data Sources with SPARQL. In Proceedings of the 5th European semantic web conference on The semantic web: research and applications. ESWC 08. Springer-Verlag, Berlin, Heidelberg, pp ,

136 Processamento de Consultas XML usando Máquinas de Inferência Fábio G. Santos, Rafael de Araújo M. Pinheiro, Vanessa Braganholo Universidade Federal Fluminense {rpinheiro, Resumo. Processamento de consultas XML sobre grandes bases de dados pode sofrer de problemas de desempenho. Em trabalhos anteriores, mostramos que algumas consultas XML, quando executadas usando uma máquina de inferência, são processadas mais rapidamente do que sua equivalente em XQuery. No entanto, para se beneficiar desse bom desempenho, é necessário traduzir consultas XML para a linguagem lógica, de forma que elas possam ser processadas de forma transparente. Este artigo descreve uma abordagem de conversão de consultas XML para consultas em Prolog. Inicialmente, apresentamos uma solução para tradução de consultas XPath. Categories and Subject Descriptors: H. Information Systems [H.m. Miscellaneous]: Databases Keywords: Prolog, XML, XPath 1. INTRODUÇÃO As linguagens de consulta XQuery [Boag et al. 2010] e XPath [Clark and DeRose 1999] foram projetadas com o propósito de possibilitar consultas em documentos XML. Contudo, em ambientes com volumes de dados cada vez maiores, as consultas nem sempre têm um tempo de resposta razoável. Além disso, alguns tipos de consultas podem ser extremamente complexas de serem especificadas. Com o objetivo de simplificar as consultas sobre bases de dados XML, alguns trabalhos propõem o uso de linguagens de inferência para processar consultas XML [Almendros-Jiménez et al. 2008; Lima et al. 2012]. Nesses trabalhos, documentos são traduzidos para fatos e regras Prolog, e consultas podem ser executadas diretamente em Prolog. Supreendentemente, um experimento realizado por Lima [2012] mostrou que algumas consultas executadas em Prolog eram mais eficientes do que suas equivalentes em XQuery. No entanto, embora o trabalho de Lima et al. [2012] tenha contribuído consideravelmente para criar uma solução alternativa às ferramentas de consulta XML já existentes, algumas lacunas dessa solução ainda necessitam ser preenchidas. O objetivo deste trabalho é apresentar uma abordagem que possa ajudar a resolver duas dessas questões. Tradução automática da consulta XML para Prolog - Como integrar processadores de consulta XML com máquinas de inferência Prolog a fim de evitar que o usuário tenha de alternar entre os dois ambientes para submeter a sua consulta? Tradução automática do resultado Prolog para XML - Como apresentar ao usuário o resultado de uma consulta Prolog, realizada após um processo de inferência, de forma transparente e que obedeça todas as restrições descritas na consulta XML? Desta forma, a proposta é usar uma máquina de inferência Prolog para processar consultas XML de forma totalmente transparente para o usuário. A linguagem escolhida para esta primeira solução é a XPath. A escolha deve-se principalmente a dois motivos: (i) XPath é um subconjunto da XQuery; (ii) a linguagem é bem mais simples do que a XQuery, e servirá como base para uma futura abordagem 129

137 que tratará da tradução de consultas XQuery. Desta forma, a abordagem proposta é capaz de traduzir consultas XPath que usam os operadores /, // e filtros. Os filtros podem utilizar operadores lógicos AND e OR e composições de expressões. O restante desse artigo está organizado da seguinte forma. A Seção 2 descreve a abordagem elaborada por Lima et al. [2012], na qual esse trabalho se baseia. A Seção 3 apresenta a abordagem de tradução proposta, de forma a disponibilizar ao usuário processamento de consultas XPath de forma transparente, utilizando inferência. A Seção 4 apresenta a implementação da abordagem proposta. Por fim, a Seção 5 discute os trabalhos relacionados e a Seção 6 conclui. 2. BACKGROUND A utilização de linguagem de programação lógica para a manipulação e representação de dados tem sido adotada há bastante tempo [Ceri et al. 1990]. Com o surgimento da linguagem XML, foram criadas algumas abordagens para realizar as mesmas manipulações em documentos XML. Lima et al. [2012] propôs uma abordagem com o objetivo de fornecer mecanismos para utilizar as vantagens da linguagem de programação lógica em consultas sobre os documentos XML. A abordagem proposta por Lima et al. [2012] consiste de três etapas. A primeira etapa consiste na geração de regras Prolog de forma automática a partir do esquema do documento XML. Nesta etapa, um especialista pode incluir regras manuais, caso seja necessário. Na segunda etapa, o documento XML é utilizado para gerar fatos Prolog. Já a terceira etapa consiste na realização de consultas Prolog pelos usuários finais. A Fig. 1 mostra um exemplo de documento XML que possui informações relacionando pais e seus respectivos filhos. Este documento será utilizado como base para explicar todo o processo de tradução. Os usuários podem submeter consultas XPath, como por exemplo, retornar todos os pares pai e filho. A consulta //pessoa é bastante simples, e obtém os pares pai/filho sem necessitar de um grande conhecimento da linguagem de consulta e do documento XML. <pessoas> <pessoa> <nome>joão</nome> <filho>pedro</filho> </pessoa> <pessoa> <nome>pedro</nome> <filho>mário</filho> </pessoa> <pessoa> <nome>mário</nome> <filho>ricardo</nome> </pessoa> </pessoas> Fig. 1 Documento XML com informações de pai e filhos. Mesmo sem a utilização de técnicas para otimização da base de fatos, em alguns casos a linguagem Prolog possui um desempenho superior quando comparado com a execução de consultas similares em XQuery [Lima 2012]. Porém, a escrita das consultas Prolog exige dos usuários que utilizam as linguagens de consulta XML bons conhecimentos da estrutura de execução das consultas Prolog e das funções disponibilizadas pela máquina de inferência para a construção de funções que retornam os dados conforme a necessidade do usuário. Por exemplo, ao submeter o documento acima ao protótipo de Lima et al. [2012], é gerada uma base de fatos e regras. A Fig. 2 apresenta a base de fatos e regras gerada a partir do documento XML acima. Neste cenário, para obter os pares pai/filho equivalentes à consulta XPath utilizada anteriormente, o usuário precisaria submeter uma consulta Prolog similar que retorne os mesmos 130

138 resultados. Neste caso, um exemplo de consulta Prolog que pode ser submetida é pessoa(id, NOME, FILHO). O resultado dessa consulta, no entanto, é dado em Prolog. pessoa(id, NOME, FILHO) :- nome(id, NOME), filho(id, FILHO). pessoas(id, PESSOA) :- pessoa(id, PESSOA). pessoas(id1). pessoa(id1, id2). nome(id2, 'joao'). filho(id2, 'pedro'). pessoa(id1, id3). nome(id3, 'pedro'). filho(id3, 'mario'). pessoa(id1, id4). nome(id4, 'mario'). filho(id4, 'ricardo'). Fig. 2 Base de regras e fatos prolog. 3. ABORDAGEM DE CONVERSÃO DA CONSULTA E RESULTADO Em geral, usuários XML precisam que as respostas das suas consultas estejam também em XML. Além disso, um usuário XML pode não ter conhecimento sobre a linguagem Prolog, o que dificulta o uso da abordagem de Lima et al. [2012]. Estes fatos motivaram a proposta de tradução automática apresentada neste trabalho. A tradução é feita em duas etapas: primeiro, a consulta XPath é traduzida para Prolog. Depois, o resultado da consulta Prolog é traduzido novamente para XML, de forma que o processo fique totalmente transparente para o usuário. A seguir, apresentamos as etapas de tradução em detalhes. 3.1 TRADUÇÃO DE CONSULTAS XPATH PARA PROLOG A abordagem para a tradução consiste em processar consultas XPath e transformá-las em uma regra equivalente em Prolog, utilizando o esquema do documento XML como base para todo o processo. Esta regra é submetida à base de fatos Prolog para que seja executada e, em seguida, os dados são retornados para o usuário. Utilizando o documento XML da Fig. 1, o usuário pode submeter uma consulta XPath para retornar todos os nomes dos filhos que aparecem no documento. Uma possível consulta XPath para isso é //filho. Com a submissão da consulta, inicia-se a fase de obtenção das informações dos elementos utilizados na consulta através do esquema do documento XML. Após a etapa de obtenção de todas as informações, a etapa de geração da consulta Prolog é iniciada. Como o elemento utilizado na consulta não possui um tipo complexo associado, a geração da consulta Prolog é mais simples e basta associar à regra uma variável com o mesmo nome do elemento usado na consulta. Por exemplo, o elemento filho utilizado na consulta XPath é utilizado para gerar a variável FILHO. Portanto, a consulta Prolog gerada é filho(_, FILHO). O uso do underline no lugar da primeira variável indica que ela não deve ser retornada pela consulta (note que isso corresponde ao id na base de fatos da Fig. 2). As consultas que utilizam elementos de tipo complexo exigem um processamento particular para gerar a consulta Prolog equivalente. Neste caso, são identificados os elementos e todos os subelementos associados. Os subelementos são utilizados para a criação das variáveis utilizadas na regra. Por exemplo, a consulta XPath //pessoa referencia um elemento de tipo complexo (pessoa). Os 131

139 subelementos associados ao elemento pessoa são nome e filho. Portanto, a regra Prolog gerada é pessoa(_, NOME, FILHO). As consultas XPath que possuem filtro passam por um outro processo à parte para a geração das consultas Prolog. Por exemplo, se o usuário submeter a consulta //pessoa[nome = 'pedro'], o elemento pessoa e os subelementos associados são utilizados para montar a consulta Prolog, no qual o subelemento utilizado no filtro corresponde à variável que será utilizada na consulta. Portanto, a consulta Prolog gerada é pessoa(_, NOME, FILHO), NOME = 'pedro'. A tradução do operador lógico AND utiliza o operador correspondente em Prolog. Por exemplo, a consulta //pessoa[nome= joão and filho= mario ] é traduzida para pessoa(id, NOME, FILHO), NOME= joao, FILHO= mario. No caso do operador lógico OR, a tradução é mais complexa porque exige uma concatenação de consultas Prolog e a utilização de uma função disponibilizada pelo Prolog para que os dados repetidos possam ser retirados do resultado da consulta. Por exemplo, a consulta //pessoa[nome= joão or filho= mario ] é traduzida para setof(pessoa,(pessoa(id, NOME, FILHO), (NOME= joao ; FILHO= mario )),_). 3.2 TRADUÇÃO DA RESPOSTA DA CONSULTA PROLOG PARA XML Uma vez que a consulta tenha sido traduzida, ela é executada pela máquina de inferência Prolog. O próximo passo é então traduzir o resultado Prolog de volta para XML. Existem dois pontos importantes nessa questão. Devemos levar em consideração as restrições feitas na consulta XPath, e precisamos converter as variáveis e seus valores em Prolog para os correspondentes elementos e seus conteúdos em XML. Além da consulta XPath, nossa abordagem pode se basear também em informações da consulta Prolog gerada pelo passo anterior. Com essas informações obtidas, o próximo passo é varrer todo o arquivo ou stream gerado como resultado da consulta, e para cada par elemento/valor gerar um correspondente <elemento>valor</elemento> como saída do procedimento. O procedimento de conversão do resultado do processo de inferência é guiado por dois passos principais descritos a seguir. A descrição é baseada nos exemplos da Fig. 3, Fig. 4 e Fig. 5. A Fig. 3 mostra a consulta XPath original. A Fig. 4(a) mostra a tradução Prolog da consulta da Fig. 3, enquanto a Fig. 4(b) mostra o resultado da execução da consulta Prolog da Fig. 4(a). Finalmente, a Fig. 5 mostra o resultado da tradução do resultado da consulta Prolog para XML. (a) Consulta Prolog /catalog/item/title /catalog/item/author Fig. 3 Consulta XPath (b) Resultado Prolog item(x,id),title(x,title),author(x,author) TITLE/A Moreninha AUTHOR/Joaquim M. Macedo Fig. 4 Consulta Prolog e resultado em Prolog <result> <title>a Moreninha</title> <author>joaquim M. Macedo</author> </result> Fig. 5 Resultado da conversão do resultado Prolog ilustrado na Fig. 3(b) Identificação dos elementos de retorno na consulta. O primeiro passo da abordagem tem como objetivo varrer a consulta XPath procurando pelos elementos que deverão ter seu valores retornados. Os elementos encontrados são inseridos numa lista para serem utilizadas em passos posteriores. No 132

140 caso da consulta da Fig. 3(a), após a execução do passo de identificação dos elementos, a lista contém os valores title e author. Extração dos elementos XML. Com o resultado gerado pela consulta Prolog da Fig. 4(a) disponibilizado como mostrado na Fig. 4(b) e a lista montada no passo anterior, uma busca é realizada pelos elementos desta lista. Os valores dos elementos encontradas na consulta são extraídos um a um e convertidos para elementos XML. O resultado dessa operação pode ser visto na Fig. 5. Como mencionado no início dessa seção, o mesmo processo realizado para a consulta XPath da Fig. 3 pode também ser executado quando se tem como entrada uma consulta Prolog tal como a consulta mostrada na Fig. 4(a). Este tipo de tradução pode ser útil quando o usuário deseja utilizar Prolog diretamente, pelo fato da consulta ser mais simples de ser construída em linguagem lógica do que a equivalente em XQuery ou XPath. Neste caso, se ele, apesar de executar uma consulta Prolog, desejar resultados em XML, a abordagem proposta está apta a atuar. Para traduzir o resultado, também são executadas duas etapas. A lista montada no primeiro passo irá conter os elementos TITLE e AUTHOR, já que estas variáveis correspondem aos elementos de retorno na consulta. O segundo passo é executado de forma idêntica quando temos como entrada a consulta XPath e o resultado é também o mesmo, tendo como elemento raiz o elemento default <result>. 4. IMPLEMENTAÇÃO 4.1 TRADUÇÃO DE CONSULTAS XPATH PARA PROLOG Fig. 6 Arquitetura do protótipo. 133

141 O protótipo implementado neste trabalho é uma extensão do trabalho de Lima et. al [2012], que foi construído utilizando a linguagem de programação Java e disponibiliza uma interface para a submissão de consultas XPath e consultas em Prolog. Os módulos internos do protótipo utilizam técnicas importantes de tradução de consultas como Wrapper e o padrão de desenvolvimento de software chamado Interpreter [Gamma et al. 1994]. As consultas XPath submetidas ao protótipo são enviadas diretamente ao Wrapper. Este módulo tem papel fundamental na tradução das consultas, porque ele orquestra todas as etapas de tradução e processamento dos dados obtidos na consulta. Para o processamento da árvore do esquema XML, foi utilizado a API DOM, que disponibiliza todos os mecanismos necessários para que sejam feitas diversas operações na árvore do XML. A Fig. 6 apresenta uma visão geral da arquitetura utilizada para a tradução de consultas XPath para Prolog. A consulta XPath é submetida ao sistema e é enviada diretamente ao Parser, que junto com o esquema do documento XML, identifica todos os elementos utilizados na consulta. Após a identificação dos elementos, os mesmos são enviados ao interpretador para que sejam geradas as consultas equivalentes em Prolog. No final desta etapa, a consulta Prolog é retornada. 4.2 TRADUÇÃO DA RESPOSTA DA CONSULTA PROLOG PARA XML Primeiramente, devemos levar em consideração a forma como o resultado da consulta Prolog é apresentado. Nossa abordagem foi elaborada em cima da saída gerada pelas consultas feitas através da máquina de inferência tuprolog, que é a utilizada na implementação original de Lima et al. [2012]. A Fig. 7 mostra um exemplo de retorno de uma consulta Prolog submetida ao tuprolog. Sendo assim, implementamos nosso protótipo esperando como entrada um conjunto de caracteres que obedeçam esse formato. Além disso, como nossa abordagem avalia ou a consulta Prolog ou a consulta XPath para formar o resultado em XML, devemos nos preocupar em como tais consultas podem ser escritas para que seja possível realizar a conversão com sucesso. TITLE/O Andar do Bêbado PUBLISHER/Zahar PAGES/261 AUTHOR/Leonard Mlodinow TITLE/Como Programar em Java PUBLISHER/PrenticeHall PAGES/1110 AUTHOR/Harvey e Paul Deitel Fig. 7 de resultado de uma consulta em tuprolog AVALIAÇÃO DA CONSULTA Dada uma consulta XPath como a da Fig. 3, é feito primeiramente uma quebra da consulta com relação ao caractere a fim de verificar a existência de ramos alternativos de busca. Dessa forma, após a quebra da consulta mostrada na Fig. 3 teremos as frações /catalog/item/title e /catalog/item/author. A partir destas frações, é feita uma busca pela última ocorrência do caractere / para ambas as frações. Sabendo a posição da última ocorrência do caractere / é possível extrair o elemento alvo da consulta, já que consultas XPath sempre retornam o último passo do caminho. Contudo, como juntamente ao elemento alvo da consulta podem existir caracteres que definem filtros, seleção de atributo e etc., é feito uma última análise para desconsiderar tais caracteres. Esse é o procedimento Identificação dos elementos de retorno da consulta descrito na Seção 3. Já tomando como entrada uma consulta Prolog como a da Fig. 4(a) é feita uma busca pelo caractere (. A partir desse ponto, todo conteúdo contido entre este caractere e o caractere ) são avaliados. Através das posições desses caracteres é separada a string compreendida entre essa posições. Nessa string é realizada uma operação de quebra das substrings separadas pelo caractere,. Para cada elemento retornado pela operação de quebra é feito uma análise a fim de verificar casos de aninhamento. Caso isso ocorra, o procedimento descrito deve ser executado de forma recursiva. 134

142 Deve-se atentar para o fato que dependendo da consulta que estamos avaliando, Prolog ou XPath, a extração é feita de forma apropriada. Para cada uma das formas que são feitas as extrações deve-se levar em consideração as suas características. Quando estamos avaliando a consulta Prolog, por exemplo, a cláusula findall deve ser identificada e descartada para não ser classificada como elemento erroneamente. Outro problema freqüente na avaliação das consultas em Prolog é o aninhamento das consultas AVALIAÇÃO DO RESULTADO Essa avaliação é independente se estamos nos baseando em uma consulta Prolog ou uma consulta XPath. A partir do resultado da consulta tuprolog são feitas extrações das variáveis, que são usadas para posteriormente formar a estrutura XML. Vamos tomar o resultado da Fig. 7 como exemplo. Para cada linha do resultado gerado pelo tuprolog é realizada uma busca pelo conjunto variável/valor. Para cada conjunto encontrado é feita uma operação de quebra. Os valores retornados por essa operação são armazenados em listas diferentes e associados a partir dos seus índices. Esse é o procedimento Extração dos elementos XML descrito na seção 3. Sendo assim, através do resultado mostrado na Fig. 7 seriam extraídas as variáveis TITLE, PUBLISHER, PAGES e AUTHOR e seus respectivos valores. 5. TRABALHOS RELACIONADOS Em 2006, Almendros-Jiménez et al. [2006] propôs um trabalho para conversão de documentos XML em fatos e o esquema em regras, como também uma abordagem para tradução de consultas XPath para linguagem de programação lógica. O autor apresenta uma abordagem chamada Magic sets que corresponde a um conjunto de transformações para que consultas XPath possam ser executadas em uma base de fatos e regras. Em seguida, Almendros-Jiménez et al. [2007a] propôs um outro trabalho que apresenta uma abordagem para implementar a linguagem de consulta XPath em linguagem de programação lógica. Além da abordagem para a realização de consultas, os autores apresentam o modo como geram a base de fatos e regras para executar as consultas e como criar índices de documentos XML em programação lógica. Utilizando a linguagem de consulta XQuery, Almendros-Jiménez et al. [2007b] propôs uma integração com a linguagem de programação lógica. Neste trabalho, é apresentada a técnica utilizada para converter consultas XQuery que utilizam for-let-where em expressões de linguagem de programação lógica. As abordagens apresentadas acima propõem técnicas interessantes para a utilização de máquina de inferência para a consulta em documentos XML. Entretanto, esses trabalhos não apresentam a eficiência dos seus métodos através da obtenção dos tempos de execução das consultas no ambiente XML e no ambiente Prolog. Acreditamos que os tempos de execução das consultas nessas abordagens não sejam tão eficientes quanto os obtidos por Lima [2012], já que eles utilizam manipulação de listas Prolog. Com relação ao processo de conversão de Prolog para XML, Jan Wielemaker et al. [2012] propuseram uma ferramenta chamada SWI Prolog. SWI Prolog é um ambiente amplamente usado na esfera acadêmica e comercial e possui bibliotecas que fornecem inúmeras maneiras de se trabalhar com Prolog. Através de uma dessas bibliotecas disponibilizadas, é possível instanciar um parser XML para analisar e alterar um documento XML qualquer. Ao fazermos testes com tais bibliotecas no ambiente interativo do SWI Prolog, conseguimos fazer a conversão de listas Prolog para documentos XML. Contudo, para se alcançar tal objetivo, os métodos fornecidos pela biblioteca XML do SWI 135

143 Prolog esperam como entrada uma lista Prolog em um formato muito específico, o que gera a necessidade de um pré-processamento para utilizá-los. 6. CONCLUSÃO Este artigo descreve uma abordagem para a tradução de consultas realizadas na linguagem de consulta XPath para Prolog e de resultados Prolog para documentos XML. As abordagens visam adicionar transparência ao processamento de consultas, quando se utiliza a linguagem de inferência Prolog para consultar bases XML. A abordagem proposta para a tradução das consultas XPath apresenta algumas limitações, como a falta de suporte para alguns tipos de recursões como /pessoa//nome, para funções XPath (postion(), avg(), etc), e não aceita filtros múltiplos na consulta. Por exemplo, a consulta XPath //pessoa[position() mod 2]/filho[nome = João ] não é traduzida para uma consulta equivalente em Prolog. Essas limitações serão tratadas em trabalhos futuros. No futuro, pretendemos trabalhar também com linguagem de consulta XQuery e fazer com que a conversão de Prolog para XML converta os resultados gerados por diferentes máquinas de inferência. Pretendemos também, elaborar um plano de experimentos e executar os mesmos a fim de obter o desempenho das consultas geradas pelo nosso tradutor. Além disso, pretendemos realizar uma avaliação para gerar heurísticas que ajudem a decidir quando vale a pena traduzir a consulta para Prolog, aplicando a abordagem proposta neste trabalho, e quando vale a pena executar a consulta original em XPath/XQuery, de forma a utilizar sempre a abordagem que acarretará em melhor desempenho. Agradecimentos. Os autores agradecem ao CNPq e FAPERJ pelo financiamento parcial deste trabalho. REFERÊNCIAS ALMENDROS-JIMÉNEZ, J., BECERRA-TERÓN, A., ENCISO-BANOS, F. Magic Sets for the XPath Language. Journal of Universal Computer Science 12(11): , ALMENDROS-JIMÉNEZ, J., BECERRA-TERÓN, A., ENCISO-BANOS, F. Querying XML Documents in Logic Programming. The Computing Research Repository (CoRR) abs/ , 2007a. ALMENDROS-JIMÉNEZ, J., BECERRA-TERÓN, A., ENCISO-BANOS, F. Integrating XQuery and Logic Programming. In Applications of Declarative Programming and Knowledge Management, Springer-Verlag Berlin, Heidelberg, pp , 2007b. ALMENDROS-JIMÉNEZ, J. M., BECERRA-TERÓN, A., ENCISO-BANOS, F. J. Querying XML documents in Logic Programming. Journal of Theory and Practice of Logic Programming 8(03): , BOAG, S., CHAMBERLIN, D., FERNANDEZ, M. F., FLORESCU, D., ROBIE, J., SIMÉON, J. XQuery 1.0: An XML Query Language., CERI, S., GOTTLOB, G., TANCA, L. Logic programming and databases. Berlin: Springer-Verlag, CLARK, J., DEROSE, S. XML Path Language (XPath) Version 1.0., JAN WIELEMAKER, TORBJORN LAGER, TOM SCHRIJVERS, MARKUS TRISKA. SWI-Prolog. Theory and Practice of Logic Programming 12(1-2): 67 96, LIMA, D. XMLInference: agregando inferência à consultas a dados XML. Dissertação de Mestrado em Informática, Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brasil, LIMA, D., DELGADO, C., MURTA, L., BRAGANHOLO, V. Towards querying implicit knowledge in XML documents. Journal of Information and Data Management 3(1): 51 60,

144 Construção de Mapa de Tópicos Semânticos Baseado na Integração de Fontes Heterogêneas José Gildo de Araújo Jr, Ulrich Schiel, Leandro Balby Marinho Universidade Federal de Campina Grande Abstract. Nowadays one of the main challenges in the area of Information Retrieval (IR) is the development of systems that process correctly the idea or concept behind the queries issued by users. Conventional IR systems usually limit their indexing and retrieval capabilities to keywords, which creates poor results when indexing terms that are not listed in the query. Queries such as: The king of Brazilian popular music and Roberto Carlos, even using a different group of words, are essentially the same idea or concept, and thus the system should return the same answer set. However, for IR systems that do not consider the semantic aspect, both queries will return different answer set. This paper presents an architectural backbone focused on indexing and retrieval of objects (texts, links, videos, images, maps...) semantically related together and structured in a topic map. In this approach, topics represent conceptual units that condense: features and dictionary, encyclopedic and common sense information. The associations between topics will be given through lexical-semantic relations of the standard language. All content of topics and associations is obtained through external sources of information such as WordNet, Wikipedia, ConceptNet, Yago and AcronymFynder. Resumo. Um dos principais desafios da atualidade no campo da Recuperação de Informação (RI) é o desenvolvimento de sistemas que processem corretamente a ideia ou conceito por trás das consultas emitidas pelos usuários. Sistemas convencionais de RI geralmente limitam suas funcionalidades à indexação e recuperação por palavras-chave, fato que gera resultados fracos quando termos indexados não são mencionados na consulta. Consultas tais como: O rei da música popular brasileira e Roberto Carlos, mesmo utilizando um distinto grupo de palavras, podem representar a mesma ideia ou conceito e, portanto, o sistema deveria retornar o mesmo conjunto resposta. Entretanto, para sistemas de RI que não consideram o aspecto semântico, ambas consultas retornarão conjuntos respostas distintos. Este artigo apresenta em detalhe um arcabouço arquitetural como um novo enfoque na indexação e recuperação de objetos (textos, links, vídeos, imagens, mapas, etc.) semanticamente relacionados, estruturado em mapa de tópicos. Neste enfoque, tópicos representam unidades conceituais que condensam características e informações de dicionário, enciclopédicas e de sentido comum. Já as associações entre os tópicos dar-se-ão por meio de relações léxico-semânticas da língua padrão. Todo conteúdo de tópicos e associações é obtido por meio de fontes externas de informação tais como: WordNet, Wikipédia, ConceptNet5, Yago e AcronymFynder. Categories and Subject Descriptors: H.2.4 Systems Multimedia Databases; [H.3.m. Miscellaneous]: Information Retrieval Keywords: semantic information retrieval, semantic relations, topic map. 1. INTRODUÇÃO O processo de globalização, acelerado por meio da internet, permitiu ao ser humano potencializar seus processos de comunicação, contribuindo significativamente para a intensificação da produção de conhecimento e, consequentemente, facilitando a aquisição de informação. Nesse contexto, o usuário comum de internet, deixou de ser um mero leitor de conteúdo e passou a ser produtor de conhecimento. Diante do volume de informação gerado, a qualidade dos sistemas de Recuperação da Informação (RI) tornou-se essencial para que o usuário economizasse recursos (tempo, paciência, energia ) na atividade de buscar por conteúdo útil. Com essa finalidade, muitos engenhos de busca atuais, tais como, Google, Yahoo, Bing, entre outros, foram desenvolvidos. Entretanto, é cada vez mais comum observar usuários demorando minutos durante o processo busca, avançando páginas sucessivas de resultado e não encontrando toda a informação relevante. Perguntas recorrentes como: Deverei modificar a consulta 137

145 para melhorar os resultados apresentados? ou Deverei seguir buscando as páginas seguintes do resultado? refletem a fragilidade da indexação convencional diante do volume de informação e distância essas ferramentas de seu real propósito. Basicamente, a recuperação de informação começa quando o usuário emite uma solicitação de consulta, geralmente expressa em linguagem natural. Tal solicitação é processada por um engenho de busca que tenta realizar uma correspondência entre as informações presentes na consulta e os documentos previamente indexados [Agosti 2008]. Esses índices passam a ser a ponte entre a consulta e os objetos que elas representam, sejam estes: links, documentos, vídeos, imagens, sons, mapas, entre outros. A complexidade inerente à linguagem natural permite a transmissão de uma mesma ideia de inúmeras maneiras distintas, como por exemplo: mandioca, aipim, macaxeira, castelinha, maniva, maniveira, pão-de-pobre são nomes populares para a espécie de planta Manihot Esculenta. Todos esses termos são diferentes representações de um mesmo conceito [Grand et al. 2009]. Sistemas convencionais de RI indexam termos e não conceitos, assim sendo, é possível que uma consulta que contenha, por exemplo, o termo madioca, retorne um resultado satisfatório, enquanto que, uma consulta pelo termo aipim não encontre nenhum resultado relevante. Seria impraticável para um sistema de RI convencional, mapear e indexar manualmente todas as possíveis representações de determinada informação. Assim sendo, quando não há correspondência entre os termos da consulta e os termos indexados, sistemas convencionais apresentam sugestões para evitar abundância de resultados inúteis, ou ausência de resultados. O que não é suficiente para que a expectativa do usuário seja atingida. Fenômenos linguísticos como: polissemia, ambiguidade, sinonímia e acronímia deveriam ser levados em consideração para esclarecer claramente a ideia do usuário no momento de emitir sua consulta. Por exemplo, para a consulta informações sobre mangas, tem-se um caso típico de polissemia. O sistema não saberá distinguir entre os mais diversos conceitos: parte do vestuário que cobre o braço, fruta, chocalho grande, e a ação de zombar fingindo seriedade. Um outro exemplo que reflete claramente a complexidade linguística pode ser percebida por meio de uma consulta pelo acrônimo OCL. Para este caso, o sistema não saberá identificar se a intenção do usuário é: Object Constraint Language, Ocean Climate Laboratory ou Organisation Communiste Libertaire e, por isso, inúmeros itens retornados podem ser absolutamente inúteis. Os motivos expostos, ressaltam a importância da construção de métodos que permitam a compreensão da intenção da consulta e da indexação semântica dos documentos no processo de recuperar informação relevante para usuários de sistemas de RI. O sistema de RI ideal é aquele em que todos os documentos recuperados são relevantes para uma determinada pesquisa realizada pelo usuário e que nenhum documento relevante esteja faltando [Göker and Davis 2009]. Propõe-se, neste trabalho, aumentar a taxa de informação relevante recuperada, mediante à indexação por conceito, em oposição a indexação convencional por palavra-chave. Desse modo, isolamos a ideia das coisas, de suas inúmeras formas de representação e utilizamos este átomo semântico para indexar informação dos mais variados formatos. Assim sendo, mandioca, aipim, castelinha, maniva, maniveira, pão-de-pobre e até mesmo Manihot Esculenta, são diferentes formas de representação de uma mesma ideia e, para o paradígma proposto, um único conceito. Além disso, se um termo homônimo, como manga, for desambiguado, conceitos relacionados, como p.ex. fruta, caroço, poderão ser utilizados para enriquecer a recuperação da informação. Muitos recursos presentes na web - como, por exemplo, a Wikipédia e o Wiktionary utilizam-se da chamada inteligência coletiva para disponibilizar informação precisa sobre os mais variados temas [Giles. 2005]. Outros recursos, como, por exemplo, o ConceptNet5 1 e Yago 2, contêm informações sobre o sentido comum das coisas e provêem informações sobre utilização de instâncias de conceitos. Uma

146 outra vertente de informação é obtida por meio de ferramentas como a WordNet 3, que apresentam conteúdo léxico-semântico de conceitos, seus significados e relações semânticas entre eles. Apesar de a obtenção de conceitos e suas informações de cada uma das fontes de informação descritas ser simples, uní-las em uma única estrutura e empregar o resultado obtido no processo de indexação e recuperação de informação não constitui uma tarefa trivial, por não existir nenhuma ponte de comunicação que vincule um determinado conceito presente no WordNet, por exemplo, com outro conceito da Wikipédia ou Yago. Este trabalho faz parte da proposta de um ambiente de indexação e recuperação semântica de informações, denominado RISO (Recuperação de Informação Semântica de Objetos). No RISO os conceitos extraídos de documentos e outras fontes multimídia são classificados, desambiguados e enriquecidos pelo acesso a distintas fontes externas de informação, condensando os diferentes tipos de informação conceitual em um único objeto conceitual. O trabalho se concentra na determinação dos objetos conceituas que, uma vez determinados, são enriquecidos por termos semanticamente relacionados e estruturados em mapas de tópicos. Cada conceito passa a ser um tópico do mapa, cujas ocorrências podem ser links, documentos, textos, imagens, vídeos, músicas ou mapas, relacionados semanticamente com o conceito ou ideia do tópico. As relações entre os tópicos se darão por meio de relações semânticas da língua. A Fig.1 apresenta a estrutura em mapa de tópicos proposta pelo RISO. É possível perceber por meio da imagem que existe uma relação todos com todos entre documentos e conceitos. Ou seja, da mesma maneira em que vários conceitos podem estar presentes em um mesmo documento (o que normalmente ocorre), um mesmo conceito pode ocorrer em inúmeros documentos. Fig. 1. Mapa de tópicos estruturado por meio de tesauro conceitual. 2. FORMALIZAÇÃO DO PROBLEMA A proposta deste trabalho busca suprir deficiências da indexação por palavra-chave como: a falta de distinção entre termos ambíguos ou polissêmicos, a similaridade entre termos sinônimos e relações semânticas como hiponímia/hipernímia, acronímia e outras. Crê-se que tais modificações possam

147 melhorar a qualidade dos resultados apresentado aos usuários e, consequentemente, ampliar valores para a métrica MAP. Sejam: I o conjunto de todos os idiomas existentes; T o conjunto de termos de um idioma i I, que podem ser palavras simples ou frases nominais. Para este trabalho, considera-se o elemento i como sendo o idioma inglês; O o conjunto de conceitos de i. Para esta formalização, cada conceito pode ser identificado por algum código abstrato, ao qual, deve estar associado um texto que descreve seu significado. Um termo representa um ou mais conceitos e cada conceito, possui um ou mais termos que o descreve. Tem-se, então, uma relação entre os dois conjuntos: rel T O relação que associa termos a conceitos; Dado um termo t T define-se rel-c(t) como o conjunto dos conceitos que t representa e, dado um conceito c, rel-t(c) é o conjunto termos que descrevem c. Por exemplo: rel-c(manga) = {parte do vestuário que cobre o braço, fruto da mangueira, goleiro titular do Brasil na copa de 1966} rel-t(manihot utilissima) = {mandioca, aipim, macaxeira} Para cada homônimo, quando rel-c(t) >1, supõe-se que esta ambiguidade pode ser removida por um termo desambiguador. Assim, tem-se: rel-c(manga:camisa) = {parte do vestuário que cobre o braço} rel-t(manga:fruta) = {fruto da mangueira} Supõe-se, então, que todo termo t pode ser desambiguado por outro termo s sendo que o par t:s representa um conceito único. Existem diversas relações semânticas entre conceitos que podem ser exploradas para enriquecer uma consulta e atender melhor as necessidades de informação do usuário de um sistema de RI. Como notação genérica para uma relação semântica, propõe-se: rel-sem O O relação semântica entre um par de conceitos. Também escreve-se, para <o 1,o 2 > O O, rel-sem(o 1 )=o 2. Como exemplos, tem-se: hiperônimo(banco de dados) = banco de dados temporal acrônimo(ocl:política) = Organization Communiste Libertaire merônimo(manga:vestuário) = camisa sinônimo(aipim) = macaxeira Cada uma das relações semânticas terá diferentes propriedades relacionais, como reflexividade, assimetria, transitividade, etc. Dado um termo t e um contexto C (termo desambiguador) considera-se que existe uma função σ(t,c) = o, que define um conceito único para o termo no contexto dado. O propósito deste trabalho é transformar termos em conceitos, tanto na indexação de documentos, como no processamento de consultas. Dessa maneira, problemas de polissemia estarão resolvidos. Após a transformação, o conceito obtido será enriquecido por meio de relações semânticas. 140

148 Para cada documento D considera-se: ind-termo(d) = {t 1,t 2,..,t n } D o conjunto de termos relacionados a D. context(d) = C D uma função que determina o contexto de D. Transforma-se agora os termos sintáticos extraídos em conceitos: ind-conceito(d) = {t 1 : C D, t 2 : C D,..,t n : C D } = {σ(t 1,C D ), σ(t 2,C D ),.., σ(t n,c D )} A mesma função ind-conceito() pode ser aplicada aos termos de uma consulta. Neste caso o contexto deve ser obtido do usuário. Dado uma consulta {t 1,t 2,..,t m } e um contexto D, tem-se: ind-conceito(t1,t2,..,tm) = {t 1 : C D, t 2 : C D,..,tm: C D } = {σ(t 1,C D ), σ(t 2,C D ),.., σ(t m,c D )} Uma vez determinados os conceitos associados a um documento ou uma consulta, eles podem ser enriquecidos pela substituição de acrônimos, acréscimo de hipônimos, etc. Sem entrar em maiores detalhes, considera-se, para cada conceito σ(t i,c D ) uma função θ(σ(t i,c D )) que realiza este enriquecimento. A eliminação de sinônimos,de fato, já ocorreu antes deste enriquecimento, já que, se (t r,c D ) e (t s,c D ) são sinônimos darão o mesmo conceito e um deles desaparecerá. Agora é possível formalizar o processamento de uma consulta convencional em contraste com uma consulta no ambiente RISO. Dado um termo ou conceito t, seja rec(t) o conjunto de objetos recuperados relacionados a t. Para uma consulta C = {t 1, t 2,.., t n } tem-se: rec(c) = rec(t 1 ) rec(t 2 ).. rec(t n ) No ambiente RISO, o processamento da consulta será: rec RISO (C) = rec RISO ({t 1, t 2,.., t n }) = rec({θ(σ(t 1,C D )), θ(σ(t 2,C D )),.., θ(σ(t m,c D ))}) A hipótese deste trabalho é que, para uma dada métrica da acurácia do processamento de uma consulta, como por exemplo o MAP, tem-se: MAP(rec RISO (C)) > MAP(rec(C)) 3. ARCABOUÇO ARQUITETURAL Atualmente, grande parte dos engenhos de busca, estuda estratégias para organizar e ranquear de maneira mais eficiente seus conteúdos recuperados. Processos como a retroalimentação de relevância [Egozi et al. 2008][Ruthven and Lalmas 2003], implementada pelo google+, por exemplo, apresentam uma vertente predominante desta estratégia, inalterando a maneira como é realizado o processo de indexação e recuperação. Obviamente, para uma grande base de informação, com centenas de milhares de elementos indexados, a possibilidade de um elemento não ser encontrado tende a ser muito pequena, muito embora a qualidade dos resultados fornecidos seja questionável. Quando um usuário emite uma consulta como luva, por exemplo, pode estar querendo comprar, vender, ou se informar sobre algum tipo de luva, que pode ser para o frio, cirúrgica ou para prática de esportes que, por sua vez, pode ser baseball, futebol, boxer, rapel, entre outros. A proposta do RISO é a de concentrar informações conceituais e estabelecer relações semânticas entre esses conceitos para proporcionar ao usuário um melhor filtro e flexibilidade em suas pesquisas. Um conceito constitui o átomo de significado nesse trabalho, a menor unidade de informação capaz de expressar de maneira completa determinado sentido ou ideia, seja ela real ou abstrata. Neste enfoque, o conceito é constituído pela fusão de três tipos de informações: informações de dicionário (significados que refletem seu papel primeiro diante da língua em consideração), informações 141

149 enciclopédicas (informações de conhecimento de mundo) e, por fim, informações de sentido comum (o veredito de um grupo de pessoas sobre instâncias e sua função diária e pragmática). A Fig. 2 apresenta um exemplo da criação e representação de conceitos para o projeto RISO bem como uma instância exemplificadora de tal estrutura. Fig. 2. Estrutura conceitual do sistema RISO e instância exemplificadora. Dentro da estrutura do RISO, a WordNet fornece informações conceituais, relações semânticas entre esses conceitos, tais como: sinônimos, hipônimos, hiperônimos, acrônimos, merônimos e polissemia, além de possíveis interpretações para um determinado vocábulo. Com isso, torna-se possível estabelecer as associações entre os tópicos (conceitos), construindo um tesauro conceitual dentro da estrutura de mapa de tópicos. Da WordNet, por exemplo, é possível inferir que o conceito banana possui uma relação semântica de hiponímia com fruta, por se tratar de um termo mais específico, por sua vez, fruta estabelece com banana uma relação semântica de hiperoníma, por ser um conceito mais abrangente. Apesar de descrever inúmeros vocábulos, as informações presentes na WordNet não são completas. Percebeu-se que para algumas relações semânticas, como é o caso da acronímia, muitos elementos ainda não foram incorporados. No intuito de suprir esta deficiência, esta proposta incorporou em sua estrutura, as informações presentes no projeto Acronymfinder 4 como forma de ampliar a estrutura semântica conceitual para os acrônimos, que são sinônimos produzidos com as iniciais de cada termos. Além disso, informações de conhecimento de mundo ou enciclopédicas, não são contemplados pelo WordNet. Por exemplo, big para o WordNet é um adjetivo qualificativo, sinônimo de large. Entretanto, para o mundo real, big não é apenas isso, para milhares de pessoas o conceito representando por big refere-se também ao filme estrelado em 1988 por Tom Hanks e escrito por Gary Ross. Tais informações estão presentes em Wikipédia. A Fig. 2 apresenta uma instância de conceito para o tópico com a ideia big e como seria sua representação no arcabouço arquitetural proposto por este trabalho. As informações enciclopédicas presentes na Wikipédia são fundamentais para construção da teia conceitual da estrutura do RISO. Entretanto, tais informações são apresentadas aos usuários por meio de artigos escritos em texto corrido, ou seja, são informações não-estruturadas, em seu formato natural. A extração de conteúdo útil de informações não-estruturadas exige o desenvolvimento de algoritmos de alta complexidade. Em meio a esta dificuldade, alguns projetos como, por exemplo, JWLP 5 [Ferschke et al. 2011] e DBpedia 6 [Mendes et al. 2012], buscaram organizar o conteúdo da

150 Wikipédia e fornecer acesso a suas informações de maneira estruturada, possibilitando dessa forma, maior facilidade no processamento eficaz desse conteúdo, abrindo as portas para que sistemas convencionais pudessem usufruir da inteligência coletiva da Wikipédia de maneira simples. Até este ponto a estrutura conceitual possui informação de dicionário e enciclopédicas. Sabe-se apenas que big é um sinônimo de large e grown up e que também é o nome de um filme estrelado por Tom Hanks cuja a trama relata a história de um garoto que queria crescer ( to be big ). Entretanto, tipos de coisas big são informações que também têm significado do sentido comum. Por exemplo, se o contexto é cidade, o sentindo comum indicará que São Paulo, New York são big, no sentido de tamanho, Shaquille O Neal é big, no sentido personalidade assim como cientistas Gandhi e Albert Einstein também são big. Do ponto de vista formal, obtemos do sentido comum, instâncias do conceito em um determinado contexto. Para a arquitetura proposta pelo RISO, estas informações são obtidas por meio dos projetos Yago e ConceptNet5. Basicamente, o processo de construção de um mapa de tópicos baseado na arquitetura do RISO recebe como entrada uma sequência de pares compostos por um objeto (documento multimídia) e um conjunto de pares <termo:contexto>. A existência de cada um dos conceitos no tesauro local ou nas bases de dados das fontes de informação mencionadas anteriormente é então verificado. Na existência de determinado conceito (termo:contexto) no tesauro ou em algumas das fontes externas, é realizada a etapa de enriquecimento, onde o conceito ganhará novas conexões semânticas, seja por meio das relações semânticas presentes no WordNet, da taxonomia da Wikipédia, características do sentido comum obtidas por meio do Yago e ConceptNet5, ou quaisquer combinações possíveis entre eles. Caso contrário, cria-se o conceito e realiza-se a indexação sem nenhum tipo de enriquecimento, conectando-o com a malha de conceitos por meio de um conceito raíz coisa, objeto. Este caso é equivalente à indexação convencional. A Fig.3 apresenta o processo de construção do mapa de tópicos no processo do RISO. É importante ressaltar que DBPedia, Yago e ConceptNet5 estão estruturados em formato de grafos, enquanto que a WordNet está estruturada de maneira relacional. Assim sendo, consultas realizadas à base WordNet utilizam SQL convencional, enquanto consultas realizadas à base de grafos, utilizam SPARQL. Por fim, ambos os resultados são combinados para construção do elemento conceitual. 4. CONCLUSÃO Este trabalho apresenta a construção de um tesauro de conceitos como parte de um mapa de tópicos semânticos, construído por meio de fontes heterogêneas de informação possibilitando a recuperação da informação baseada na semântica de conceitos, em contraposição ao processo convencional por palavra-chave. Nestes sistemas, ainda que o usuário consulte por termos não indexados, as relações semânticas que envolvem a ideia da consulta irá encaminhá-lo ao objetivo. Outra perspectiva interessante é que, à medida que se compromete a compreender a consulta do usuário, o sistema possibilitará que este desambigue seu objetivo, recuperando um conjunto resposta mais preciso e coerente com a verdadeira intenção da consulta. 143

151 Fig. 3. Processo de construção do RISO desde a entrada à sua estruturação final. 5. TRABALHOS FUTUROS Ampliar o conjunto de informações utilizada incorporando novos wikis, tais como: Wikisaurus e Wiktionary. Além de fontes que deem suporte a regências verbais como o VerbNet. Enriquecer as fontes de informações de objetos multimídia, considerando tanto metadados como informações de conteúdo. Construir um sistema computacional que implemente as ideias propostas pelo RISO e realizar validação e verificação da qualidade das informações apresentadas ao usuário e medir estatisticamente a utilidade do sistema para o usuário final. REFERÊNCIAS AGOSTI, M. Information access through search engines and digital libraries, 1st ed. Springer, GRAND, M. S., AND AUFAURE, M.A. Conceptual and Spatial Footprints for Complex Systems Analysis: Application to the Semantic Web. In Proceedings of the 20th International Conference on Database and Expert Systems Applications, Springer- Verlag, Berlin, Heidelberg, , GÖKER, A. AND DAVIS, J. Information Retrieval: Searching in the 21st Century, 1st ed. John Wiley and Sons, GILES, J. Internet encyclopaedias go head to head. Nature, 438(7070): , EGOZI, O. GABRILOVICH, E. AND MARKOVITCH, S.Concept-based feature generation and selection for information retrieval. In Proceedings of the 23rd national conference on Artificial intelligence, Chicago, Illinois, pp , RUTHVEN, I. AND LALMAS, M. A survey on the use of relevance feedback for information access systems, The Knowledge Engineering Review, Vol.18, pp , June, FERSCHKE, O. ZESCH, T. AND GUREVYCH, I. Wikipedia Revision Toolkit: Efficiently Accessing Wikipedia s Edit History. In Proceedings of the 49th Annual Meeting of the Association of Computational Linguistics: Human Language Technologies.System Demonstrations. Portland, OR, USA, 2011 MENDES, P.N. JAKOB, M. AND BIZER. C. DBPEDIA FOR NLP: A Multilingual Cross-domain Knowledge Base. Proceedings of the International Conference on Language Resources and Evaluation, Istanbul, Turkey, LREC 2012, 21 27,

152 Recomendações para fragmentação horizontal de bases de dados XML Tatiane Lima da Silva 1, Fernanda Baião 2, Jonice de Oliveira Sampaio 1, Marta Mattoso 3, Vanessa Braganholo 4 1 PPGI/Universidade Federal do Rio de Janeiro, Brasil 2 NP2Tec/Universidade Federal do Estado do Rio de Janeiro (UNIRIO), Brasil 3 COPPE/Universidade Federal do Rio de Janeiro, Brasil 4 Universidade Federal Fluminense, Brasil Resumo. A grande quantidade de dados XML disponíveis na Web e dentro das organizações traz consigo um grande desafio no processamento de consultas sobre ambientes distribuídos. Surge então a necessidade da aplicação de técnicas que permitam um processamento de consultas mais eficiente. Neste sentido, técnicas de fragmentação de dados e processamento paralelo de consultas sobre bases de dados distribuídas têm sido adotadas. No entanto, a forma adequada para a geração de fragmentos XML não está bem definida na literatura. Há muitas definições de fragmentos XML, mas poucas propostas são concentradas em como usar essas definições para realmente fragmentar uma base de dados (isso é chamado de projeto de fragmentação). Inspirado pelos modelos relacionais e orientado a objetos, que têm metodologias sólidas para o projeto de fragmentação de bases de dados, o objetivo principal deste trabalho é estudar e propor recomendações, baseadas em experimentos, que poderiam ser usados em projetos de distribuição de bancos de dados XML, a fim de aumentar o desempenho do processamento de consultas. Categories and Subject Descriptors: H. Information Systems [H.2. Database Management]: H.2.4 Systems Distributed Databases Keywords: heuristics, database fragmentation design, horizontal fragmentation, XML 1. INTRODUÇÃO Devido ao grande volume de dados predominantemente armazenado em bancos de dados XML, há uma grande preocupação com o desempenho no processamento de consultas em tais ambientes e, consequentemente, inúmeros estudos nesta área [Andrade et al. 2006; Gang e Rada 2007; Kling et al. 2009; Moro et al. 2009; Figueiredo et al. 2010]. Surge então a necessidade da aplicação de técnicas que permitam consultas em bancos de dados de forma mais eficiente. Neste sentido, técnicas de distribuição de dados e processamento paralelo de consultas sobre bases de dados têm sido, há muito tempo, adotadas com grande sucesso. Nesta abordagem, os dados devem ser distribuídos pelos diferentes nós de uma rede segundo técnicas de fragmentação e de alocação de dados [Kling et al. 2010, 2011; Ozsu e Valduriez 2011]. Existem duas formas distintas de fragmentação: fragmentação física e fragmentação virtual. A fragmentação física [Ozsu e Valduriez 2011] fragmenta os dados fisicamente, e os aloca em diferentes nós. Já a fragmentação virtual [Rodrigues et al. 2011] exige que os dados sejam replicados nos nós da rede, exigindo mais espaço em disco. No que diz respeito à fragmentação física dos dados (foco do presente trabalho), o potencial de ganho de desempenho é obtido em função da localidade (proximidade) dos dados, quando a consulta é segmentada em partes e enviada para diferentes nós que as executam em paralelo sobre um volume menor de dados em cada nó. Por outro lado, a fragmentação de uma base de dados também pode degradar o desempenho de uma consulta 145

153 [Figueiredo et al. 2010] quando, por exemplo, sua execução sobre a base fragmentada exige o processamento de junções para reconstruções que não eram necessárias na consulta original, entre outros motivos. Por isso, o projeto de fragmentação da base de dados precisa analisar as consultas mais frequentes, para que a fragmentação proporcione ganho de desempenho na maioria das consultas realizadas sobre a base de dados distribuída. Aproveitando as ideias de fragmentação e distribuição propostas para o modelo relacional [Ozsu e Valduriez 2011] e orientado a objetos [Baião et al. 2004], vários trabalhos na literatura têm focado em processamento de consultas XML em ambientes distribuídos e na criação de técnicas de fragmentação, endereçando aspectos específicos como o formato dos fragmentos e os algoritmos que os geram [Gertz e Bremer 2003; Ma e Schewe 2003; Andrade et al. 2006; Abiteboul et al. 2009]. No entanto, não existe na literatura nenhuma metodologia para o projeto de distribuição de dados XML que analise quais técnicas de fragmentação devem ser aplicadas em cada cenário, o que impacta de forma determinante o desempenho das aplicações sobre a base de dados distribuída. As propostas existentes assumem que o projetista já sabe de que forma a base deve ser fragmentada [Gertz e Bremer 2003; Abiteboul et al. 2009; Ozsu e Valduriez 2011]. De fato, no panorama dos modelos de distribuição em XML, um dos pontos mais explorados na literatura é justamente a definição do que é um fragmento XML [Bremer e Gertz 2003; Ma e Schewe 2003; Andrade et al. 2006], e como consultas podem ser processadas sobre bases XML distribuídas e fragmentadas [Figueiredo et al. 2010], enquanto que o projeto de fragmentação de dados XML ainda é um ponto pouco explorado. Conforme discutido em Figueiredo et al. [2010], de nada adianta uma metodologia para processamento de consultas distribuídas se a base de dados não estiver fragmentada adequadamente, para que as consultas mais frequentes se beneficiem da fragmentação. O projeto de fragmentação pode ser dividido em três etapas [Ozsu e Valduriez 2011]: (i) análise, onde são avaliadas informações da aplicação (consultas frequentes) e do esquema do banco de dados para decidir qual o tipo de fragmentação a ser aplicada; (ii) extração de dados relevantes; e (iii) fragmentação propriamente dita. Desta forma, o objetivo deste trabalho é auxiliar no projeto de fragmentação de bases de dados XML. Em especial, nosso foco está na etapa de análise. Para isso, este artigo define recomendações para fragmentação horizontal de bases de dados XML. O foco em fragmentação horizontal é um primeiro passo para solucionar a problemática geral da fase de análise em projeto de fragmentação de dados XML. Nesse artigo, essas recomendações são derivadas de análises de resultados experimentais sobre duas bases de dados XML de tamanhos distintos. O restante deste artigo está estruturado da seguinte forma. A Seção 2 apresenta os conceitos relacionados à fragmentação horizontal de dados XML que são utilizados em nossa análise, além de uma discussão de metodologias e algoritmos que existem atualmente na literatura para projetos de fragmentação horizontal de dados XML. A Seção 3 apresenta uma avaliação experimental, que foi usada como base para derivar recomendações para fragmentação horizontal, que são apresentadas na Seção 4. Finalmente, as conclusões e trabalhos futuros são apresentados na Seção FRAGMENTAÇÃO HORIZONTAL DE BASES DE DADOS XML Existem diversos trabalhos na literatura que apresentam definições de fragmentos XML [Bremer e Gertz 2003; Andrade et al. 2006; Kling et al. 2010] e para o projeto de fragmentação para XML em geral [Gertz e Bremer 2003; Ma e Schewe 2003; Pagnamenta 2005]. No entanto, especificamente para a etapa de análise do projeto de fragmentação, nenhum trabalho detalha os critérios que precisam ser levados em consideração antes de efetuar a fragmentação. Esse tipo de deficiência não permite definir um método decisório consistente quanto ao tipo de fragmentação mais aplicável em cada cenário, fazendo com que a fragmentação seja ad-hoc, baseada tipicamente na experiência dos projetistas. Na arquitetura para banco de dados XML distribuídos proposta por Pagnamenta [2005], a abordagem para distribuição de documentos utiliza noções de fragmentação horizontal e vertical. No 146

154 entanto, não são apresentadas no trabalho as regras de correção referentes ao modelo de fragmentação aplicado e também não são descritos os critérios que definem quando cada tipo de fragmentação deve ser aplicado. O discurso apresentado por [Ma e Schewe 2003] ressalta a importância da consideração das consultas frequentes na definição dos fragmentos. Além disso, em seu trabalho que descreve as heurísticas para fragmentação de dados horizontal, Ma e Schewe [2003] apresentam uma solução baseada em um modelo de custos, onde o maior ofensor da fragmentação horizontal de dados XML é o tempo de transporte dos resultados locais. Entretanto, em sua abordagem não foi mencionado nenhum resultado experimental que comprovasse a eficiência das heurísticas propostas, ficando apenas nas formalizações teóricas. Na definição de fragmentação de dados XML, nosso trabalho utiliza o conceito proposto por Andrade et al. [2006], pois das definições encontradas na literatura [Bremer e Gertz 2003; Ma e Schewe 2003; Pagnamenta 2005; Kling et al. 2011] essa é a que mais se aproxima da definição de fragmentos do modelo relacional [Ozsu e Valduriez 2011]. Essa escolha é essencial, já que desejamos aproveitar as ideias de projeto de fragmentação propostas para o modelo relacional [Ozsu e Valduriez 2011], pelo fato do seu conceito estar bem consolidado na literatura. Andrade et al. [2006] definem três tipos de fragmentos: horizontal, usando predicados de seleção para permitir a separação de documentos em diferentes fragmentos; vertical, que altera a estrutura de dados através de projeções, e, finalmente; um híbrido que combina as operações de seleção e projeção. Fig. 1. Exemplo de esquema e documentos XML Andrade et al. [2006] definem um fragmento horizontal da seguinte forma. Seja μ uma conjunção de predicados simples sobre uma coleção de dados XML C. O fragmento horizontal F de C definido por μ é dado pela expressão F:=<C, σμ>, onde σμ denota a seleção de documentos em C que satisfazem μ, isto é, F contém documentos de C para os quais σμ é verdadeiro. Neste tipo de fragmentação é preciso que a coleção pertença a um repositório de múltiplos documentos, ou seja, a fragmentação horizontal não pode ser aplicada a repositórios de um único documento. Este tipo de repositório pode sofrer uma fragmentação híbrida, onde primeiro se aplica uma fragmentação vertical e em seguida uma horizontal. Para exemplificar o funcionamento da fragmentação horizontal, suponha que temos um esquema referente a contatos de uma agenda e dois documentos XML que seguem o esquema de Contatos. Os dois documentos estão armazenados na Coleção C Contatos. A Figura 1 mostra essas especificações. A Figura 2 apresenta a especificação de uma possível fragmentação horizontal da coleção C Contatos da Figura 1, supondo que as consultas frequentemente usam o elemento tipo. O fragmento F1 Residencial reúne os documentos da coleção C Contatos que possuem conteúdo do elemento tipo igual a Residencial. Por isso, o documento 1 pertence a este fragmento. Já o fragmento F2 Residencial agrupa os documentos 147

155 cujo conteúdo de tipo difere de Residencial. Logo, o documento 2 que possui tipo igual a Celular irá compor o fragmento F2 Residencial. Fig. 2. Exemplo de definição de fragmentos sobre a coleção C Contatos Com base na definição de fragmentos definida por Andrade et al. [2006], Figueiredo et al. [2010] desenvolveram uma metodologia para processamento de consultas sobre bases de dados XML fragmentadas e distribuídas. O protótipo desenvolvido por Figueiredo et al. [2010] se encarrega de distribuir a consulta aos fragmentos relevantes. Resumidamente, o protótipo inclui um mediador que é responsável por todo o processamento da consulta, desde a decomposição até a consolidação dos resultados. Cada nó da rede, por sua vez, possui um adaptador, que recebe as subconsultas enviadas pelo mediador e as executa no nó local. 3. AVALIAÇÃO EXPERIMENTAL Para obter recomendações que possam ser usadas na etapa de análise de projeto de fragmentação de bases XML, executamos uma série de experimentos, utilizando um benchmark. Os dados do benchmark foram sistematicamente fragmentados de acordo com várias estratégias, inspiradas na literatura [Baião et al. 2004; Ozsu e Valduriez 2011], e o comportamento das consultas foi avaliado em cada cenário. A análise dos resultados foi feita a partir da comparação dos tempos totais médios de execução das consultas entre os diferentes cenários. Cada consulta foi executada 10 vezes e para o cálculo do tempo total médio foi desconsiderado o tempo total referente à primeira rodada. Os experimentos foram executados em um cluster homogêneo composto de 42 máquinas, cada uma com dois processadores Intel Xeon quadcore (8 cores). No experimento, usamos nove nós do cluster. Cada nó possui 16 GB memória de RAM e disco rígido local de 160 GB. Um deles atuou como Mediador, que é responsável pela submissão das consultas, geração das subconsultas e consolidação dos resultados. Uma instância do componente Adaptador executa em cada um dos oito nós restantes, sendo esses nós responsáveis pela execução local das subconsultas. Cada instância do Adaptador utilizou o disco local do nó onde foi alocado, evitando desta forma o custo de acesso ao disco compartilhado do cluster. Essas execuções são realizadas sobre um banco de dados XML nativo Sedna [Fomichev et al. 2006]. Abaixo, temos o detalhamento de cada um dos cenários executados. A Tabela I apresenta um resumo dos critérios de fragmentação e alocação desses fragmentos em nosso experimento. Cenário 0: Execução em ambiente centralizado, utilizando apenas 1 nó para executar todas as consultas. Cenário 1: Execução da fragmentação horizontal, utilizando atributos das consultas frequentes. Foram utilizados dois subcenários: (1.1.1) três fragmentos distribuídos em dois nós; (1.1.2) três fragmentos distribuídos em três nós. Cenário 2: Execução da fragmentação horizontal, utilizando número de nós disponíveis para alocação e domínio dos dados. Avaliando o domínio do atributo de seleção mais frequente, o objetivo é fragmentar a partir do domínio dos dados em quatro subcenários: (2.1.1) dois fragmentos em dois nós; (2.1.2) quatro fragmentos em quatro nós; (2.1.3) seis fragmentos em seis nós; (2.1.4) oito fragmentos em oito nós. Cenário 3: Execução da fragmentação horizontal, não utilizando os atributos das consultas frequentes. Foram executados quatro subcenários classificados da seguinte forma: (3.1.1) dois fragmentos em dois nós; (3.1.2) quatro fragmentos em quatro nós; (3.1.3) seis fragmentos em seis nós; (3.1.4) oito fragmentos em oito nós. 148

156 Tabela I. Resumo dos critérios de fragmentação e alocação dos fragmentos em cada cenário Para avaliarmos o comportamento dos cenários foram executadas 19 consultas pertencentes ao benchmark XBench [Yao et al. 2004]. Cada consulta foi executada em bases de dados de múltiplos documentos pertencentes ao XBench. Além disso, avaliamos o comportamento das consultas em duas bases de tamanhos distintos (4 MB e 40 MB). O resumo dessas consultas e os predicados de seleção utilizados em cada uma delas são apresentados na Tabela II. Ao analisarmos essas consultas é possível observar que o atributo de seleção que mais aparece nas consultas é total. Por esse motivo, o cenário 1 visa avaliar os resultados quando fragmentamos a partir do predicado de seleção que mais aparece nas consultas e o cenário 2 propõe uma análise sobre o comportamento dos tempos de execução quando se utiliza o predicado de seleção com maior ocorrência juntamente com a análise sobre o domínio (distribuição de valores) desse atributo. Tabela II. Consultas executadas nos experimentos e seus respectivos atributos de seleção 149

157 A comparação dos tempos médios de execução das consultas nos diferentes cenários foi feita por meio de um gráfico que apresenta os tempos de execução das mesmas consultas em relação ao cenário centralizado (Cenário 0). O objetivo desses experimentos é verificar se a fragmentação de dados permite melhores resultados se comparada com o cenário centralizado. Outro ponto importante a destacar é que a implementação do Mediador e do Adaptador utilizada neste experimento foi uma alteração da versão do protótipo construído por Figueiredo et al. [2010], tendo como objetivo aperfeiçoar o protótipo para obtenção de melhor desempenho. A Figura 3 apresenta uma análise comparativa dos tempos médios de execução entre o ambiente centralizado (Cenário 0) e o melhor cenário analisado nos experimentos com bases de dois tamanhos: 4 MB e 40 MB, respectivamente. Fig.3. Comparação do Tempo Médio Total (em milissegundos) de execução das consultas sobre as bases C Orders de 4 e 40 MB nos cenários centralizado (Cenário 0) e o melhor dos cenários analisados. Ao analisarmos a Tabela II e a Figura 3, podemos observar que nos experimentos executados tivemos 12 consultas que se beneficiaram da fragmentação se compararmos com o ambiente centralizado. No experimento de 4 MB, essas consultas são: C6, C7, C8, C9, C10, C11, C13, C15, C16, C17, C18, C19. Já para o experimento de 40 MB, a consulta C6 não se beneficiou da fragmentação e em contrapartida, a consulta C12 se beneficiou. Dentre as consultas que não se beneficiaram da fragmentação no experimento de 4 MB apenas as consultas que não possuíam o atributo de seleção total não se beneficiaram da fragmentação (C1, C2, C3, C4, C5, C12 e C14). Para o experimento de 40 MB obtivemos o mesmo comportamento havendo apenas uma variação nas consultas que não se beneficiaram. São elas: C1, C2, C3, C4, C5, C6 e C14. Resumidamente, para o experimento de 4 MB obtivemos um ganho de quase 70% na consulta C16 e no experimento de 40 MB foi observado um ganho de aproximadamente 260% na consulta C10. As estatísticas entre os dois experimentos não aparentam muitas divergências em seus resultados. Todavia, a consulta C10 teve um ganho bem maior com a base de 40 MB, por outro lado, as consultas C15 e C16 reduziram o seu ganho nessa base. Além disso, foi possível identificar que as consultas C12 (Experimento 4MB) e C6 (Experimento 40 MB), embora não tivessem o atributo total em seu predicado de seleção, se beneficiaram da fragmentação. Isso se explica pelo fato de a fragmentação realizada no cenário ter gerado fragmentos de tamanho uniforme, possibilitando assim um grau maior de paralelismo durante a realização da consulta. Por questões de restrições de espaço, os experimentos são apresentados em detalhes em um relatório técnico [Silva et al. 2012]. 4. RECOMENDAÇÕES PARA FRAGMENTAÇÃO HORIZONTAL O projeto de fragmentação de dados XML deve considerar diversos critérios, de forma análoga ao que foi feito para outros modelos de dados que o antecederam. Essa seção apresenta alguns destes critérios, que foram inspirados em seus equivalentes no modelo relacional [Ozsu e Valduriez 2011] e orientado a objetos [Baião et al. 2004], e cuja influência no processamento de consultas sobre a base XML distribuída foi comprovada empiricamente durante nossos experimentos. Tais critérios são 150

158 listados a seguir, e se mostraram necessários para a definição de recomendações para fragmentação horizontal de dados XML: Frequência de predicado de seleção: Ao analisar as consultas frequentes é importante verificar a frequência de predicados de seleção dentro do conjunto de consultas para que seja possível obter melhor desempenho se realizarmos a fragmentação horizontal. Este critério foi determinante no cenário 1, onde tínhamos dentre o conjunto de consultas, 4 consultas que utilizavam o mesmo predicado de seleção ( total > ), conforme Tabela I. Nesse cenário, foi gerado um fragmento que atendia esse predicado de seleção. É importante ressaltar que as demais consultas que não utilizam o atributo de seleção podem não se beneficiar dessa fragmentação. Outro parâmetro importante é utilizar a frequência de execução das consultas junto com a análise de predicado de seleção, pois isso pode ou não viabilizar a fragmentação baseada na frequência de predicado de seleção. Entretanto, nos experimentos utilizados assumimos que todas as consultas tinham a mesma frequência de execução. Domínio dos dados: O domínio dos dados (universo de valores) é outro critério importante para a fragmentação horizontal, após a análise do atributo mais utilizado. Tal critério foi determinante no cenário 2, onde foi analisado o domínio do atributo total. Esse atributo variava entre 0 a Número de nós disponíveis: Essa análise considera a alocação dos dados de forma a ocupar ao máximo os nós disponíveis, sendo assim, ao agregarmos essa análise às duas outras anteriores podemos obter um conjunto de critérios para fragmentação. Entretanto, é importante avaliar o tamanho dos fragmentos gerados, pois podem ocorrer casos onde o fragmento fica com um volume de dados muito grande, o que pode acabar degradando os benefícios da fragmentação. Para obtermos uma avaliação do comportamento das consultas nos cenários 1 e 2 foram realizadas fragmentações variando a alocação entre 2 a 8 fragmentos. Para exemplificar as recomendações propostas nesse artigo, apresentamos na Figura 4 as conclusões retiradas a partir dos experimentos sobre bases de múltiplos documentos XML. Como podemos ver a entrada para definição das recomendações são justamente todos os atributos de seleção e projeção existentes nas consultas existentes e o tamanho da base que se deseja fragmentar. Com base nisso, se nas consultas frequentes tivermos uma quantidade de atributos de seleção maior que a projeção, sugere-se aplicar a fragmentação horizontal. Entretanto, poderíamos fazer outra analise nesses casos, pois nessa situação talvez fosse interessante uma fragmentação híbrida. Isso permanece em aberto, e será tratado em trabalhos futuros. Após a escolha pela fragmentação horizontal e tendo as informações dos domínios dos atributos mais frequentes das consultas e a quantidade de nós disponíveis para alocação dos fragmentos, a fragmentação pode ser aplicada levando em consideração esses critérios. Todavia, se for observado que após a definição dos fragmentos, alguns deles ficaram com tamanhos muito superiores aos demais talvez seja necessário a diminuição do número de nós para alocação dos fragmentos até que o equilíbrio dos tamanhos dos fragmentos seja obtido. Outro ponto importante é que nos experimentos realizados não foi possível analisar se o tamanho da base faria diferença nos resultados, uma vez que não tivemos muitas discrepâncias. Provavelmente, em bases muito maiores seja possível incluir a variável do tamanho da base no critério de escolha do melhor tipo de fragmentação a ser aplicada. Fig.4. Definição das recomendações para fragmentação horizontal de dados XML 151

159 5. CONCLUSÃO Esse trabalho apresenta recomendações para fragmentação horizontal de dados XML baseados em um conjunto de experimentos que abrange vários critérios. Essas recomendações visam a obter ganhos de desempenho na execução de consultas sobre bancos de dados distribuídos. Para chegar nessas recomendações foram efetuados experimentos sobre bases XML de 4 e 40 MB buscando analisar o comportamento dos tempos de execução em vários cenários. Esses tamanhos de bases visam a analisar o crescimento dos dados e estamos trabalhando em experimentos adicionais, com mais dados, que nos permitirão uma análise mais assertiva. Isso nos favorecerá avaliar o tipo de fragmentação que traz mais ganho em desempenho para as consultas mais frequentes sobre uma determinada base. Nosso experimento apresentou um ganho de desempenho para as consultas frequentes que se beneficiaram do processo de fragmentação, se compararmos com os resultados obtidos com ambiente centralizado. A partir desses resultados foi possível a definição de recomendações para fragmentação horizontal de dados XML que contribuem na escolha do melhor tipo de fragmentação horizontal a ser aplicada a uma determinada base de dados. Como trabalhos futuros, propõe-se a execução desses mesmos cenários sobre bases de dados maiores a fim de avaliar se o aumento do volume de dados implica resultados diferentes dos que já obtivemos até o momento. Além disso, expandir as recomendações desenhadas nesse trabalho para os demais tipos de fragmentação de dado XML: vertical e hibrida. Isso nos permitirá avaliar qual tipo de fragmentação mais se adequa a uma determinada base e suas consultas frequentes. Agradecimentos. Os autores gostariam de agradecer ao CNPq e FAPERJ pelo financiamento parcial desse trabalho. REFERÊNCIAS ABITEBOUL, S., GOTTLOB, G., MANNA, M. Distributed XML Design. In ACM PODS, Providence, USA, p , ANDRADE, A., RUBERG, G., BAIÃO, F., BRAGANHOLO, V., MATTOSO, M. Efficiently Processing XML Queries over Fragmented Repositories with PartiX. In International Workshop on Database Technologies for Handling XML Information on the Web, Munich, Germany, p , BAIÃO, F., MATTOSO, M., ZAVERUCHA, G. A Distribution Design Methodology for Object DBMS. Distributed Parallel Databases 16(1): 45 90, BREMER, J.-M., GERTZ, M. On Distributing XML Repositories. In Workshop on Web and Databases (WebDB), San Diego, United States, p , FIGUEIREDO, G., BRAGANHOLO, V., MATTOSO, M. Processing Queries over Distributed XML Databases. Journal of Information and Data Management (JIDM) 1(3): , FOMICHEV, A., GRINEV, M., KUZNETSOV, S. Sedna: A native XML DBMS. 3831(SOFSEM 2006: Theory and Practice of Computer Science, J. Wiedermann, G. Tel, J. Pokorný, M. Bieliková, and J. Stuller (Eds.)): , GANG, G., RADA, C. Efficiently Querying Large XML Data Repositories: A Survey. (IEEE Trans. Knowl. Data Eng. (TKDE)): , GERTZ, M., BREMER, J.-M. Distributed XML Repositories: Top-down Design and Transparent Query Processing. Technical Report T.R.CSE , Department of Computer Science, KLING, P., OZSU, T., DAUDJEE, K. Optimizing distributed XML queries through localization and pruning. Technical Report CS , University of Waterloo, KLING, P., OZSU, M. T., DAUDJEE, K. Generating efficient execution plans for vertically partitioned XML databases. PVLDB 4(1): 1-11, KLING, P., ÖZSU, M., DAUDJEE, K. Scaling XML query processing: distribution, localization and pruning. Distributed and Parallel Databases 29(5): , MA, H., SCHEWE, K.-D. Fragmentation of XML documents. In Proceedings of the Brazilian Symposium on Databases, Manaus, Brazil, p , MORO, M. M., BRAGANHOLO, V., DORNELES, C. F., DUARTE, D., GALANTE, R., MELLO, R. S. XML: some papers in a haystack. SIGMOD Rec. 38(2): 29 34, OZSU, M. T., VALDURIEZ, P. Principles of Distributed Database Systems. Prentice Hall, PAGNAMENTA, F. Design and initial implementation of a distributed xml database. Master Thesis, Universidade de Dublin, Irlanda, RODRIGUES, C., BRAGANHOLO, V., MATTOSO, M. Virtual Partitioning ad-hoc Queries over Distributed XML Databases. Journal of Information and Data Management 2(3): , SILVA, T., BAIÃO, F., SAMPAIO, J., MATTOSO, M., BRAGANHOLO, V. Definição de recomendações para fragmentação horizontal de bases de dados XML. Technical Report, Universidade Federal do Rio de Janeiro, YAO, B. B., OZSU, M. T., KHANDELWAL, N. XBench benchmark and performance testing of XML DBMSs. In IEEE International Conference on Data Engineering (ICDE), Boston, United States, p ,

160 Uma abordagem ad hoc para o tratamento de exceções em processos transacionais 1 Pedro Paulo S. B. Silva, Kelly R. Braghetto, João E. Ferreira Instituto de Matemática e Estatística Universidade de São Paulo Abstract. The growing demand for informatization and automation of processes has led more and more researchers and companies to study ways to implement and improve computational systems by using business processes and business process management systems. An essential aspect concerning the consistent execution of business process instances is the exception handling, wich ensures that failures and unpredicted situations will be handled accordingly. In this work we present the recovery manager from the business process management approach WED-ow. Supported by the evolutionary design and the transactional guarantees given by the WED-ow approach, the recovery manager, which conjugates work, events and data in a integrated manner, allows a exible and precise exception handling. Resumo. O crescimento da demanda pela informatização e automação de processos tem levado cada vez mais pesquisadores e empresas a estudar formas de implementar e melhorar sistemas computacionais utilizando processos de negócio e seus sistemas de gestão. Um aspecto essencial para a execução consistente de instâncias de um processo de negócio é o tratamento de exceções, que garante que falhas e situações imprevistas serão tratadas adequadamente. Neste trabalho, apresentaremos o gerenciador de recuperação da abordagem de gerenciamento de processos de negócio WED-ow. Apoiado sobre a modelagem evolutiva, que conjuga trabalho, eventos e dados de forma integrada, e sobre as garantias transacionais proporcinadas pela abordagem WED-ow, o sistema de recuperação permite um tratamento de exceções exível e preciso. Categories and Subject Descriptors: H. Information Systems [ Databases]: Miscellaneous Keywords: Bancos de dados, tratamento de exceções, processos de negócio, WED-ow 1. INTRODUÇÃO Com o crescimento da demanda pela informatização e automação de processos, em grande parte inuenciada pelo crescimento e popularização da Internet, atividades que antes eram mais comumente realizadas manualmente receberam formas virtuais de execução por meio de sistemas computacionais. Com a necessidade de se projetá-los, a utilização de processos de negócio (PN) e, consequentemente, a utilização de sistemas de gestão de processos de negócio (GPN) cresceram rapidamente e trouxeram à tona uma série de novos desaos. O tratamento de exceções é um aspecto crucial de modelos e sistemas de GPN pois tem como objetivo tratar situações excepcionais detectadas durante a execução de uma instância de um PN (ver Seção 2). Essas situações podem causar falhas graves na execução de uma instância ou, até mesmo, em sistemas subjacentes. Atualmente, a forma mais comum de se conceber modelos e sistemas de GPN é sob a perspectiva de orientação a processos. No entanto, com relação ao tratamento de exceções, essa perspectiva apresenta uma desvantagem que é a necessidade de se modelar a priori todas as situações excepcionais, seus contextos e a forma de tratá-las. Essa tarefa é claramente complicada de ser realizada e consequentemente mais passível de erros, pois um esquecimento por parte da equipe 1 Este trabalho recebe o apoio nanceiro do CNPq no programa bolsa instituicional e da FAPESP por meio do projeto de pesquisa número 2010/ e 2011/

161 de projetistas pode levar a falhas graves que só serão descobertas em tempo de execução. Mesmo modelos e sistemas de GPN orientados a dados, os quais tendem a ser mais exíveis, normalmente, só permitem a denição de seus métodos de tratamento de exceções a priori, no momento da modelagem. Neste trabalho, apresentamos o gerenciador de recuperação responsável pelo tratamento de exceções de instâncias de PNs da abordagem de modelagem e gerenciamento de PNs WED-ow, apresentada em [Ferreira et al. 2010] e estendida em [Ferreira et al. 2012]. Mais concretamente, apresentaremos os métodos de recuperação do gerenciador de recuperação e os conceitos que os fundamentam. Esses métodos garantem a consistência das instâncias de PNs ao mesmo tempo em que exibilizam o tratamento de exceções e facilitam a evolução dos PNs ao permitir intervenções ad hoc de projetistas e administradores do sistema. 2. TRABALHOS RELACIONADOS Uma exceção é uma situação não modelada em um sistema de informação ou um desvio entre o que foi planejado e o que acontece de fato. Aplicando esse conceito à GPN, podemos dizer que uma exceção é uma situação para a qual não existem regras aplicáveis denidas na modelagem inicial de um PN [Saastamoinen 1993] e que ocorre durante a execução de uma instância desse processo. Existem diversas formas de se categorizar exceções, entretanto, para os ns deste trabalho, destacamos duas importantes categorias estudadas em outros trabalhos [Saastamoinen 1993; Eder and Liebhart 1995]: (i) exceções esperadas que representam as situações que não são consideradas normais no PN apesar de ser sabido que elas podem ocorrer e por isso são tratáveis por meio de mecanismos especiais; (ii) exceções não esperadas (ou exceções verdadeiras) que caracterizam, basicamente, falhas de modelagem e casos não previstos nela. O tratamento de exceções refere-se à identicação de uma situação de exceção e a escolha e execução de uma ação pertinente a ela [Saastamoinen 1993]. Muitos sistemas de GPN oferecem mecanismos de tratamento de exceções, mas em geral consideram apenas exceções esperadas [Schuldt et al. 2002; Vidyasankar and Vossen 2011; Bhiri, S. et al. 2011], que precisam ser denidas no momento da modelagem dos PNs. Como consequência, exceções não esperadas não são tratadas e a ocorrência delas pode causar falhas graves na execução de uma instância, do sistema de GPN ou até mesmo de sistemas subjacentes. Apesar de não ser comum, existem alguns sistemas capazes de tratar exceções esperadas e não esperadas [Antunes 2011; Eder and Liebhart 1995; van der Aalst et al. 2009]. Como não há forma de predenir o tratamento de exceções não esperadas, a maneira mais comum de tratá-las é por meio da intervenção ad hoc (manual) de um administrador. A necessidade de se tratar exceções não esperadas é clara. Entretanto, de forma um pouco mais implícita, mas também essencial para sistemas de GPN, está a necessidade de se alterar ou evoluir o modelo de um PN. Essa propriedade, que é importante em todas as fases do ciclo de vida de um sistema de GPN, se sobressai durante a intervenção ad hoc, quando é possível que as denições do modelo sejam revistas, permitindo, por exemplo, que exceções não esperadas passem a ser esperadas. O sistema de recuperação da abordagem de GPN WED-ow, que é apresentado na Seção 4, permite tanto o tratamento de exceções esperadas, por meio de denições no PN, quanto o de exceções inesperadas, por meio da intervenção ad hoc de um administrador. Nesse momento, assim como em todo o ciclo de vida dos PNs na abordagem WED-ow, é permitido ao administrador fazer alterações no modelo, o que garante sua fácil evolução e a diminuição da carga de responsabilidade sobre os projetistas, visto que novas denições podem ser adicionadas mesmo após a fase de modelagem. Poucos trabalhos [van der Aalst et al. 2009] permitem o tratamento de exceções inesperadas e a evolução do modelo. Os métodos de recuperação apresentados na Seção 4 são baseados em Métodos Transacionais Avançados, garantindo assim a importante propriedade de consistência transacional às suas execuções. O gerenciador de recuperação da abordagem WED-ow, diferentemente das abordagens de 154

162 tratamento de exceções caracterizadas acima, ampara conjuntamente o tratamento de exceções esperadas e inesperadas, intervenção ad hoc de um administrador, a evolução dos modelos de PNs e consistência transacional. 3. ABORDAGEM WED-FLOW A abordagem WED-ow (Work, Event processing, Data-ow) foi proposta como uma forma de se modelar processos de negócio (PNs), de se instanciá-los, de se executar suas instâncias garantindo propriedades transacionais e de se tratar exceções de uma maneira mais simples. Os passos de negócio, chamados de WED-transitions, e suas precondições de execução, chamadas WED-conditions, operam sempre sobre os estados de dados das instâncias. Tais estados, chamados WED-states, são valores para um conjunto de atributos de interesse da aplicação, chamados WED-attributes. Dessa forma, a execução de uma WED-transition em uma dada instância de processo só é iniciada se o estado corrente da instância satiszer a WED-condition associada à WED-transition. Essa última, quando executada, alterará o estado da instância. Um WED-trigger é um par (WED-condition, WED-transition), que associa uma precondição a um passo de negócio. Um PN é modelado por meio de um WED-ow, que é um conjunto de WEDtriggers mais duas WED-conditions que especicam a condição de início e término da execução de uma instância do processo em questão. Como uma dada aplicação pode ser constituída por diversos PNs, podemos ter diversos WED-ows denidos sobre um mesmo conjunto de WED-attributes. Alterações nos WED-states geram eventos que são capturados pelas WED-triggers que vericam suas WED-conditions associadas e, caso elas sejam satisfeitas, disparam suas WED-transitions associadas, de forma similar ao modelo ECA (Event, Condition, Action). A execução de uma WED-transition, a qual é modelada como um SAGA Step [Garcia-Molina and Salem 1987], gera um novo WED-state que por sua vez gera um novo evento e assim por diante, até que um WED-state gerado satisfaça a condição de término do WED-ow. Caso alguma inconsistência seja detectada, os mecanismos de recuperação interrompem a execução da instância para tentar retorná-la a um estado consistente e dar prosseguimento à sua execução. A denição de inconsistência de instância será abordada na Seção 4. Durante a modelagem, o projetista dene de forma declarativa as WED-transitions, WED-conditions, WED-triggers e WED-ows, além das restrições de integridade da aplicação, chamadas de AWIC (Application-Wide Integrity Constraints), que são expressas na forma de WED-conditions e impostas sobre os WED-states. 4. GERENCIADOR DE RECUPERAÇÃO O gerenciador de recuperação é a entidade responsável por fazer o tratamento de exceções na abordagem WED-ow. Exceções, que são capturadas durante a execução de instâncias de um WED-ow, são englobadas pelos seguintes casos gerais: Falha durante a execução de uma WED-transition: Uma WED-transition pode falhar devido a problemas de implementação, time-out da execução, conitos de escrita causados por WEDtransitions sendo executadas paralelamente, cancelamento explícito da execução por um administrador do sistema e devido a problemas estruturais que resultam na interrupção inesperada da execução, como no caso de um defeito em algum componente do servidor. Produção de um WED-state inconsistente: Um WED-state é dito inconsistente quando ele não satisfaz as restrições AWIC, nem as condições de nenhum WED-trigger e, além disso, em sua instância, não há WED-transitions sendo executadas no momento da sua criação. WED-states inconsistentes são, normalmente, consequência de falhas de projeto ou de problemas estruturais, como, por exemplo, o corrompimento do disco rígido. 155

163 Dizemos que uma instância de um WED-ow está inconsistente quando uma exceção é detectada durante sua execução. Isso resulta na ativação do gerenciador de recuperação, o qual interrompe imediatamente a instância em questão para permitir que, por meio de mecanismos de tratamento de exceções, ela volte a ser consistente novamente. Outra vez consistente, a execução da instância poderá continuar. Na abordagem proposta neste trabalho, uma exceção é detectada face a uma falha de uma execução de uma WED-transition ou pela produção de um WED-state inconsistente. Entretanto, essa forma geral de capturar a exceção não traz informações especícas sobre a causa da situação na qual ocorreu, mas apenas sobre o caso geral (ver Seção 4.2) em que ela se enquadra. Por exemplo, ao detectar uma exceção consequente da geração de um WED-state inconsistente, não é possível saber exatamente qual foi a falha ou exceção especíca que levou à geração da exceção em questão. Pode acontecer, inclusive, que no momento da ocorrência não se saiba ainda como tratá-la. Estamos, então, sempre associando uma falha especíca a uma falha mais geral. Essa forma de detecção é capaz de identicar uma quantidade maior de exceções do que outras abordagens de GPN: detecta-se tanto exceções esperadas quanto exceções não esperadas. 4.1 Interrupção A interrupção da execução de uma instância inconsistente é o ponto de partida para a inicialização do gerenciador de recuperação. Uma instância só é interrompida se ela estiver inconsistente e isso só acontece quando uma exceção é detectada durante sua execução. A interrupção de uma instância implica em: (i) a paralização do processamento, pelos WED-triggers, de WED-states da instância interrompida; (ii) a suspensão de novas execuções de WED-transitions e (iii) o aborto de WED-transitions que estavam sendo executadas no momento da interrupção. Outras instâncias sendo executadas concomitantemente não são afetadas pela interrupção da instância em questão. Para facilitar o processo de recuperação, algumas informações relativas à interrupção são salvas. Como a abordagem WED-ow já provê o histórico de execução [Ferreira et al. 2012] de todas as instâncias, só é necessário manter a causa da interrupção e o horário em que ela ocorreu. Tais informações e, em especial, o último WED-state gerado na instância antes da interrupção, que é obtido a partir do histórico de execução da instância, inuenciam diretamente na escolha dos métodos de recuperação que poderão ser utilizados no momento do tratamento de exceções. Esses métodos serão explicados na Seção 4.2. Chamamos de WED-state atual da interrupção o último WED-state gerado na instância que foi interrompida. O WED-state atual de uma interrupção pode ser consistente ou inconsistente e isso depende do tipo de exceção que causou a interrupção. Interrupções causadas pela produção de WED-state inconsistente sempre tem o WEDstate atual inconsistente: Pela denição, um WED-state inconsistente é necessariamente o último WED-state de uma instância. Interrupções causadas por falha na execução de WED-transitions têm sempre o WEDstate atual consistente: Também pela denição de inconsistência, sempre que um novo WEDstate é criado em uma instância que possui WED-transitions em execução, esse WED-state é considerado consistente. Portanto, o WED-state atual de uma interrupção causada por uma falha na execução de uma WED-transition é sempre um estado consistente. Uma vez escolhido(s) e executado(s) o(s) método(s) de recuperação, a instância volta a ser consistente e, com isso, a interrupção pode ser nalizada e a execução dessa instância pode então prosseguir. É importante salientar que a única e imprescindível condição para a nalização de uma interrupção é que a instância interrompida volte a ser consistente. A única forma prevista na abordagem WED-ow para tal é por meio da execução de um ou mais métodos de recuperação. 156

164 4.2 Tratamento de exceções Na abordagem WED-ow quando uma exceção é detectada, o gerenciador de recuperação é ativado, a instância inconsistente em execução é interrompida e, feito isso, o tratamento de exceções pode ser iniciado. Seguindo o padrão de modelagem evolutiva defendido pela abordagem, optamos por uma forma de tratamento de exceções baseada na intervenção ad hoc de um administrador do sistema. Esse administrador será responsável, principalmente, por escolher o(s) método(s) de tratamento de exceções a serem utilizados pelo gerenciador de recuperação. Neste trabalho, denimos cinco métodos de recuperação: oferecimento adaptativo, encadeamento de compensações, alteração da denição do WED-ow, WED-S 1 e WED-S +a. Com exceção ao método de oferecimento adaptativo, os demais métodos foram apresentados de forma sucinta e inicial em [Ferreira et al. 2012], mas são aprimorados e melhor fundamentados neste trabalho. Antes de apresentá-los, é necessário enunciar algumas denições comuns a eles. Denição 4.1 Oferecimento de um WED-state. Dizemos que um WED-state s é oferecido a um WED-trigger g quando a WED-condition de g é vericada sobre s. Caso ela seja satisfeita, g executará sua WED-transition associada usando o WED-state atual da instância como entrada para a WEDtransition. Apesar de, por restrições de espaço, não fazer parte do escopo deste artigo discutir detalhes dos mecanismos de controle de execução da abordagem WED-ow, consideramos importante discutir, ao menos resumidamente, a forma de execução paralela de WED-transitions que a abordagem permite. Conforme explicado na Seção 3, quando um WED-state é gerado, os WED-triggers do WED-ow testam suas WED-conditions sobre ele e, caso elas sejam satisfeitas, os WED-triggers disparam a execução de suas WED-transitions. Quando um WED-state satisfaz a WED-condition de mais de um WED-trigger e esses disparam suas WED-transitions associadas, temos então uma execução paralela de WED-transitions [Ferreira et al. 2012]. A principal peculiaridade da concepção de execuções paralelas é que nem sempre o WED-state que habilita a execução de uma WED-transition é o mesmo WED-state que será usado como entrada para a sua execução. Isso ocorre porque entre o momento em que mecanismo de controle de execução detecta que uma WED-transition pode ser executada e o momento da sua execução de fato, pode ser que um novo WED-state seja gerado por alguma WED-transition que já estava em execução na instância. Os mecanismos de execução conseguem detectar qual o WED-state atual da instância permitindo que a WED-transition, ao invés de efetuar alterações sobre o WED-state que a disparou, efetue as alterações sobre o WED-state atual (como o indicado na Denição 4.1), o que garante sincronia para a execução paralela. Denição 4.2 Equivalência de WED-states. Sejam s 1, s 2 WED-states, G 1 o conjunto de WEDtriggers cujas WED-conditions são satisfeitas por s 1 e G 2 o conjunto de WED-triggers cujas WEDconditions são satisfeitas por s 2. Dizemos que s 1 é equivalente a s 2 se e somente se G 1 = G 2. Em outras palavras, dois WED-states são ditos equivalentes quando eles habilitam a execução das mesmas WED-transitions. No modelo SAGA, uma compensação é uma transação que desfaz, de um ponto de vista semântico, as ações efetuadas pela execução de uma SAGA step [Garcia-Molina and Salem 1987]. Na abordagem WED-ow, as WED-transitions, que são modeladas como SAGA steps, têm associadas a si WEDcompensations, as quais têm um objetivo semelhante às compensações do modelo SAGA. Denição 4.3 WED-compensation. Uma WED-compensation, assim como uma WED-transition, pode ser entendida como uma função que recebe como entrada um WED-state e gera como saída um novo WED-state. Seja t uma WED-transition e c uma WED-compensation. Se c é a WEDcompensation associada a t, então a execução de c sobre um WED-state gerado pela execução de t 157

165 deve resultar em um WED-state equivalente ao usado como entrada para a execução t. Ou seja, se t(s i ) = s f, então c(s f ) = s i sendo s i equivalente a s i (onde s i, s f e s i são WED-states). A seguir, apresentamos os métodos de recuperação que denimos para a abordagem WED-ow Oferecimento adaptativo. O oferecimento adaptativo é um método de recuperação que só pode ser executado quando o WED-state atual da interrupção é consistente. A exceção causadora desse tipo de interrupção é resultante de falha na execução de uma WED-transition (ver introdução da Seção 4). Em alguns casos, a execução de uma WED-transition que falhou pode terminar corretamente simplesmente se executada novamente. Porém, é necessário observar que a interrupção da instância inconsistente pode ter causado o aborto de WED-transitions que estavam sendo executadas paralelamente à WED-transition problemática. Por isso, a recuperação deve, além de garantir a chance de redisparo da WED-transition que sofreu falha, garantir também a chance de redisparo de todas as possíveis WED-transitions que foram abortadas em virtude da interrupção da instância. WED-transitions executadas paralelamente em uma mesma instância podem ter sido disparadas por diferentes WED-states gerados ao longo da execução dessa instância (ver introdução da Seção 4.2). Apenas reoferecer o WED-state atual da interrupção a todos os WED-triggers de um WED- ow poderia resultar na reexecução de somente um subconjunto das WED-transitions que foram interrompidas. Para sanar esse problema, o gerenciador de recuperação executa um pequeno algoritmo que, a partir de um WED-state consistente passado como parâmetro, faz as adaptações necessárias na instância interrompida para que haja a possibilidade da WED-transition que falhou ser disparada novamente. O algoritmo recebe o WED-state atual da interrupção como parâmetro e faz o seguinte: (1) O gerenciador de recuperação identica a WED-transition t que gerou o WED-state s consistente, passado como parâmetro; (2) Por meio do histórico de execução da instância, é vericado se s é o WED-state inicial da instância interrompida ou se t, em algum momento de sua execução, teve outras WED-transitions sendo executadas paralelamente. (3) Caso s seja o WED-state inicial da instância ou t não tenha feito parte de nenhuma execução paralela, a interrupção é nalizada e s é oferecido a todos os WED-triggers do WED-ow. (4) Caso contrário: (a) O gerenciador identica o conjunto T que contém todas as WED-transitions que foram, em algum momento, executadas paralelamente a t. (b) A partir de T e do histórico de execução é possível identicar o WED-state s que é o WEDstate mais antigo a ter disparado alguma(s) das WED-transitions de T. (c) É efetuada uma compensação encadeada (ver Seção 4.2.2) tendo como condição de parada a geração de um WED-state s equivalente a s. (d) O passo 1 é então reexecutado utilizando s como parâmetro. Caso haja WED-transitions sem WED-compensations denidas, o administrador deve adicioná-las às denições do WED-ow antes de iniciar o processo de recuperação ou somente será possível o uso do método WED-S +a (ver Seção 4.2.4) Encadeamento de compensações. O administrador do sistema pode optar pela recuperação por meio do encadeamento de uma ou mais WED-compensations (ver Denição 4.3) sempre que o WED-state atual da interrupção é consistente. O administrador do sistema passa ao gerenciador de recuperação o número de WED-compensations a serem executadas ou uma condição de parada. O gerenciador de recuperação executa uma vericação para garantir que todas as WED-transitions a serem compensadas tenham WED-compensations denidas. Feito isso, a partir do WED-state atual da interrupção (ver Seção 4.1) e com o auxílio do histórico de execução, são executadas as WEDcompensations de cada uma das WED-transitions que foram executadas com sucesso e os WED-states 158

166 t 1 t 2 t 3 s 0 s 1 s 2 s 3 s 5 s 4 c 3 c 2 t s 6 s t3 t4 Fig. 1. Exemplo da execução de um encadeamento de compensações gerados pelas WED-compensations vão sendo usados como WED-states de entrada para as próximas WED-compensations. Isso continua a ser executado até que a condição de parada seja atingida, ou até que o número de compensações seja atingido, ou ainda até que um WED-state equivalente ao WED-state inicial da instância seja gerado. Então, o gerenciador de recuperação atualiza o WEDstate atual da interrupção para o último WED-state gerado pelas compensações encadeadas e executa um oferecimento adaptativo (ver Seção 4.2.1). WED-compensations são preferivelmente denidas no momento da modelagem do WED-ow, entretanto, como as demais denições de um WED-ow, podem ser acrescentadas a qualquer momento do ciclo de vida dele. Caso haja WED-transitions sem WED-compensations denidas, o administrador poderá acrescentá-las ao modelo também durante a interrupção e, em seguida, usar a recuperação por WED-compensations encadeadas. Se o administrador não puder ou não quiser acrescentá-las, a única opção para retornar a instância a um estado consistente é por meio de uma recuperação WED-S +a, que será explicada a seguir. A Figura 1 ilustra um exemplo de encadeamento de compensações seguido de um oferecimento adaptativo. Os WED-states são representados pelos nós do grafo, as WED-transitions pelas arestas sólidas, as WED-compensations pelas arestas tracejadas e as equivalências pelo símbolo. O encadeamento de compensações é executado a partir de um WED-state consistente s 3 e tem como condição de parada a geração de um WED-state equivalente a s 1. Quando s 5, que satisfaz a condição de parada, é gerado, é realizado um oferecimento adaptativo dele resultando no reinício da execução da instância com o disparo de t Alteração da denição de um WED-ow. Durante o momento de tratamento de exceções, o administrador do sistema pode identicar uma situação que não é exatamente uma exceção mas, na verdade, uma regra de negócio que deveria fazer parte da denição do WED-ow, porém não foi pensada a priori. Apesar de ser possível alterar as denições de um WED-ow a qualquer momento de seu ciclo de vida, é principalmente durante o tratamento de exceções que as falhas de modelagem poderão ser mais facilmente detectadas. Uma vez feita, pelo administrador, a alteração das denições do WED-ow por meio da adição, remoção ou atualização de WED-triggers, WED-transitions ou WED-conditions, o gerenciador de recuperação entra em ação e executa um oferecimento adaptativo WED-S 1 e WED-S +a. Quando o WED-state atual da interrupção é inconsistente, os métodos de oferecimento adaptativo e compensação não podem ser executados. Entretanto, a instância interrompida em execução precisa prosseguir e, para isso, precisa voltar a ser consistente. Para esses casos, foram concebidos dois métodos de tratamento de exceções: o WED-S 1 e o WED-S +a. Ambos têm em comum a necessidade de que o administrador do sistema dena um tipo especial de WEDtransition, no momento da interrupção, que a partir do WED-state atual da interrupção, que é inconsistente, gere um novo WED-state consistente. A diferenciação ca por conta das características desse WED-state gerado e as formas de utilizá-lo em seguida. 159

167 O WED-S 1, que só pode ser executado a partir de WED-states inconsistentes, tem por objetivo gerar um WED-state consistente equivalente a algum WED-state já presente no histórico de execução da instância interrompida. A partir dessse WED-state, que é necessariamente consistente, o administrador do sistema pode optar por executar WED-compensations ou fazer um oferecimento adaptativo. O WED-S +a pode ser executado também a partir de WED-states consistentes e tem como objetivo gerar um WED-state consistente que não seja equivalente a nenhum dos WED-states presentes no histórico de execução. Uma vez gerado o novo WED-state, a interrupção é nalizada e ele é então oferecido a todos os WED-triggers do WED-ow. 5. CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS Neste artigo, nós apresentamos métodos para o tratamento de exceções em processos transacionais gerenciados por meio da abordagem WED-ow. Diferentemente de outras abordagens, o gerenciador de recuperação apresentado ampara conjuntamente o tratamento de exceções esperadas e inesperadas, a intervenção ad hoc de um amdnistrador, a evolução dos modelos de PNs e a propriedade de consistência transacional. A formalização dos conceitos de exceção, interrupção e suas causas, além dos métodos de recuperação, foram essenciais para conceber o gerenciador de recuperação e viabilizar sua implementação. Acreditamos que a intervenção ad hoc de um administrador do sistema no momento do tratamento de exceções além de garantir precisão à escolha do método de recuperação, também permite a identi- cação e correção imediata de falhas de modelagem. Ademais, consideramos a discussão bibliográca outra contribuição importante assim como a possibilidade de generalização dos métodos de recuperação apresentados para a aplicação em outros modelos. Como trabalho futuro, temos o estudo de recuperação de exceções para processos que compartilham dados. Para isso, é preciso exibilizar um pouco mais a propriedade de isolamento na execução das instâncias, o que implica na necessidade de um tratamento de exceções mais sosticado, que seja capaz de levar em conta os diferentes tipos de relacionamento que poderão existir entre duas instâncias de processos. REFERENCES Antunes, P. BPM and exception handling: Focus on organizational resilience. IEEE Transactions on Systems, Man, and Cybernetics, Part A 41 (3): , Bhiri, S. et al. Ensuring customised transactional reliability of composite services. Journal of Database Management 22 (2): 6492, Eder, J. and Liebhart, W. The workow activity model WAMO. In Proceedings of the 3rd International Conference on Cooperative Information Systems. pp. 8798, Ferreira, J. E., Braghetto, K. R., Takai, O. K., and Pu, C. Transactional recovery support for robust exception handling in business process services. In Proc. of the 19th Int. Conference on Web Services. pp , Ferreira, J. E., Takai, O. K., Malkowski, S., and Pu, C. Reducing exception handling complexity in business process modeling and implementation: the WED-ow approach. In Proc. of the 18th Int. Conference on Cooperative Information Systems. pp , Garcia-Molina, H. and Salem, K. Sagas. SIGMOD Rec. vol. 16, pp , December, Saastamoinen, H. T. Rules and exceptions. Information Modeling and Knowledge Bases IV: Concepts, Methods and Systems, Schuldt, H., Alonso, G., Beeri, C., and Schek, H.-J. Atomicity and isolation for transactional processes. ACM Transaction Database Systems 27 (1): 63116, van der Aalst, W. M. P., Pesic, M., and Schonenberg, H. Declarative workows: Balancing between exibility and support. Computer Science - R&D 23 (2): 99113, Vidyasankar, K. and Vossen, G. Multi-level modeling of web service compositions with transactional properties. Journal of Database Management 22 (2): 131,

168 Analisando o Desempenho de Banco de Dados Multi-Inquilino em Nuvem Leonardo O. Moreira, Flávio R. C. Sousa e Javam C. Machado Universidade Federal do Ceará - Brasil Abstract. Computação em nuvem é uma tendência de tecnologia com o objetivo de proporcionar serviços sob demanda de pagamento baseado no uso. Para melhorar a utilização dos recursos, os provedores implementam técnicas multi-inquilino para sistemas de banco de dados. Existem muitos modelos multi-inquilino, cada um com diferentes níveis de isolamento e desempenho. Entretanto, estes modelos não têm sido avaliados sob a perspectiva de desempenho. Este artigo apresenta uma análise de experimentos para medir a variação de desempenho de sistemas de banco de dados multi-inquilino em nuvem. Foram utilizados diferentes bancos de dados para representar um ambiente real. Os resultados mostram que o sistema de banco de dados inuencia diretamente no isolamento entre inquilinos e no tempo de resposta das consultas. Por m, o trabalho fornece alguns direcionamentos para utilização de banco dados multi-inquilinos em nuvem. Categories and Subject Descriptors: H.Information Systems [ H.m. Miscellaneous]: Databases Keywords: Banco de Dados, Desempenho, Multi-inquilino 1. INTRODUÇÃO Computação em nuvem é uma tendência recente de tecnologia cujo objetivo é proporcionar serviços de Tecnologia da Informação (TI) sob demanda com pagamento baseado no uso [Agrawal et al. 2010]. Ambientes em nuvem são baseados em técnicas de virtualização para melhorar a utilização dos recursos. Neste ambiente, cada máquina física comporta um número variável de máquinas virtuais (VM), de acordo com a capacidade de hardware disponível na máquina física. Sistemas de gerenciamento de banco de dados (SGBDs) são candidatos potenciais para a implantação em nuvem. Isso ocorre porque, em geral, as instalações destes sistemas são complexas e envolvem grande quantidade de dados, ocasionando custo elevado, tanto em hardware quanto em software [Elmore et al. 2011]. Na nuvem, o usuário do serviço tem algumas garantias, tais como: desempenho e disponibilidade. Essas garantias de qualidade do serviço (QoS) são denidas entre o provedor do serviço e o usuário, e expressas por meio de acordo de nível de serviço (SLA) [Sousa et al. 2010]. Este acordo consiste de contratos que especicam um nível de qualidade que deve ser atendido, e penalidades em caso de falha. Muitas empresas dependem de SLA, por exemplo, para exibir uma página web dentro de um determinado intervalo de tempo. Essas empresas esperam que os provedores de nuvem forneçam garantias de qualidade utilizando SLAs com base em características de desempenho. Contudo, em geral, os provedores baseiam seus SLAs apenas na disponibilidade dos serviços oferecidos, ao passo que os serviços em nuvem apresentam uma variabilidade de desempenho bastante elevada. Portanto, é essencial que os provedores ofereçam SLAs baseados em desempenho para os usuários [Sousa et al. 2012]. Para melhorar o gerenciamento dos recursos e reduzir custos, os provedores implementam o compartilhamento de recursos entre inquilinos [Barker et al. 2012]. O conceito de multi-inquilino é uma 161

169 técnica para consolidar aplicações de diversos inquilinos em um único sistema. Esta técnica é frequentemente utilizada para eliminar a necessidade de sistemas separados para cada inquilino. Por exemplo, um inquilino pode ser um usuário utilizando uma aplicação que acessa um SGBD ou um SGBD instalado em uma infraestrutura. SGBDs multi-inquilino têm sido utilizados para hospedar diversos inquilinos (bancos de dados) dentro de um único sistema, permitindo o compartilhamento ecaz de recursos em diferentes níveis de abstração e isolamento [Elmore et al. 2011]. De acordo com [Chaudhuri 2012], um desao interessante é desenvolver técnicas para garantir o desempenho de SGBDs multi-inquilino. Por outro lado, antes de elaborar novas técnicas, é necessário compreender como a carga de trabalho de um inquilino inuencia os demais e ainda o isolamento proporcionado por um SGBD para evitar a interferência entre os inquilinos. Este problema é abordado em alguns trabalhos [Elmore et al. 2011] [Ahmad and Bowman 2011] [Xiong et al. 2011] [Lang et al. 2012] [Hatem A. Mahmoud and El-Abbadi 2012]. Contudo, os trabalhos não tratam aspectos de desempenho, pois são orientados a recursos (o foco é consolidar a maior quantidade de inquilinos no mesmo hardware ou VM) e/ou não vericam o isolamento de cada SGBD. Este artigo mostra uma análise de um conjunto de experimentos para medir a variação do desempenho de sistemas de banco de dados multi-inquilino em nuvem. Para tanto, foram utilizados diferentes bancos de dados para representar um ambiente real. De acordo com nosso estudo, este é o primeiro trabalho que analisa detalhadamente a interferência entre inquilinos e sua relação com o desempenho. Os resultados do estudo permitem compreender e conceber novas técnicas para tratar a questão de desempenho de SGBDs multi-inquilino. O trabalho está organizado da seguinte forma. A seção 2 apresenta, resumidamente, os conceitos básicos relacionados ao estudo. Na seção 3, são apresentadas a metodologia e o ambiente utilizado. A seção 4 apresenta os experimentos e os resultados. A seção 5 comenta sobre e discute os trabalhos relacionados; e, nalmente, a seção 6 contém as conclusões. 2. MODELOS MULTI-INQUILINO PARA BANCOS DE DADOS O termo multi-inquilino é uma estratégia utilizada para compartilhar recursos. Um inquilino é denido de acordo com o contexto onde se encontra inserido; por exemplo, um inquilino pode ser um banco de dados em relação ao SGBD. Existem vários modelos de multi-inquilino que podem compartilhar desde máquinas físicas até tabelas. Por exemplo, a empresa Salesforce.com [Salesforce 2012] utiliza o modelo de tabela compartilhada [Weissman and Bobrowski 2009], enquanto [Soror et al. 2008] utilizam o modelo de VM compartilhada para melhorar a utilização dos recursos. Algumas características do gerenciamento de dados em nuvem aumentam a relevância de outros modelos de SGBDs multiinquilino. Para melhorar a compreensão destes modelos, [Elmore et al. 2011] propõem uma nova classicação, como mostra a Tabela I. A Tabela I estabelece uma relação entre modelos de bancos de dados multi-inquilino e os modelos de serviço da computação em nuvem, infraestrutura como serviço (IaaS), plataforma como serviço (PaaS) e software como serviço (SaaS). Modo de Compartilhamento Isolamento IaaS PaaS SaaS 1. Hardware VM x 2. Máquina Virtual (VM) Usuário SO x 3. Sistema Operacional (SO) Instância do BD x 4. Instância BD x 5. Banco de Dados Esquema x 6. Tabela Tupla x Table I. Modelos de bancos de dados multi-inquilino e a correspondência com a computação em nuvem [Elmore et al. 2011] Os modelos correspondentes às linhas 1-3 compartilham recursos nos níveis das mesmas máquinas 162

170 físicas com diferentes níveis de abstração; por exemplo, múltiplas VMs, contas de SO de usuários diferentes e diversas instâncias dos SGBDs. Neste caso, não existe compartilhamento de recursos de banco de dados e as instâncias dos SGBDs se mantêm independentes. As linhas 4-6 envolvem o compartilhamento de processos de banco de dados em vários níveis de isolamento, tais como: diferentes bancos de dados, esquema ou tablespace e tupla. Nos diferentes modelos, os dados dos inquilinos são armazenados de várias formas. O modelo de hardware compartilhado utiliza a virtualização para chavear várias VMs na mesma máquina. Cada VM possui apenas um processo de banco de dados, e uma VM inteira em geral corresponde a um inquilino. Já o modelo de tabela compartilhada armazena dados de vários inquilinos em uma mesma tabela; e algumas tuplas de uma tabela correspondem a um inquilino. Os modelos das linhas 4-6 são os mais amplamente utilizados, pois permitem um melhor compartilhamento de recursos. Por outro lado, estes três modelos apresentam maior interferência entre os inquilinos do sistema, o que pode interferir no desempenho do sistema. No modelo da linha 4, um inquilino é um banco de dados separado, que melhora o isolamento. Contudo, o modelo 4 está limitado ao número de estruturas que o SGBD pode manipular. Os modelos 5-6 utilizam um número menor de recursos dentre todos os modelos, mas apresentam algumas desvantagens; por exemplo, o modelo 6 necessita de indexação e otimização, já que os inquilinos compartilham as mesmas tabelas, porém apresentam requisitos diferentes. 3. METODOLOGIA E AMBIENTE 3.1 Metodologia A metodologia, utilizada neste trabalho, consiste de um conjunto de experimentos para vericar o desempenho e a interferência em um SGBD multi-inquilino. São denidos cinco passos para a concepção e execução de experimentos: (1) Denir o modelo multi-inquilino a ser utilizado. (2) Denir os benchmarks para gerar o ambiente de SGBD multi-inquilino. (3) Denir os SGBDs e a alocação dos inquilinos nestes sistemas. (4) Denir as cargas de trabalho ao longo do tempo para cada inquilino. (5) Analisar a variação da carga de trabalho e sua relação com o desempenho de cada inquilino. 3.2 Ambiente No trabalho, optou-se por utilizar o modelo multi-inquilino de instância (linha 4 da Tabela 1), pois é mais utilizado do que os modelos 5-6 [Elmore et al. 2011], e os das linhas 1-3 apresentam menor interferência entre os inquilinos. Assim sendo, de acordo com o modelo utilizado, tem-se que um banco de dados corresponde a um inquilino no sistema. Em relação à ferramenta de avaliação, a diversidade de sistemas em nuvem e a forma como estes sistemas são construídos (i.e., modelo de dados, níveis de consistência e linguagem de acesso) dicultam o desenvolvimento de um benchmark padrão. Existem alguns benchmarks para avaliar SGBDs executados em nuvem. Contudo, cada benchmark elenca um conjunto de pressupostos próprios, o que torna complexo a utilização [Sousa et al. 2010]. Tratando-se especicamente do benchmark multiinquilino, ainda não existe um benchmark para SGBD multi-inquilino. Para simular o ambiente, foi utilizado o OLTPBenchmark [OLTPBenchmark 2012]. O OLTPBenchmark é um framework para avaliar o desempenho de diferentes SGBD relacionais diante de congurações de cargas de trabalho OLTP. O framework possui diversos benchmarks, tais como TPC-C, Twitter, YCSB e Wikipedia. O OLTPBenchmark possibilita congurar a taxa de tempo para submissão de requisições, denir o percentual de cada tipo de transação por tempo 163

171 de experimento, obter informações sobre vazão, média do tempo de resposta e informações sobre utilização dos recursos de SO. Para a avaliação foi utilizada uma nuvem privada com o middleware OpenNebula [OpenNebula 2012], que permite gerar a infraestrutura em nuvem. A utilização de uma nuvem privada tem como objetivo concentrar o foco no problema da interferência entre os inquilinos, visto que uma nuvem pública, por exemplo, a Amazon [EC2 2012], apresenta grande variabilidade de desempenho [Schad et al. 2010], o que pode prejudicar a identicação dos reais fatores responsáveis pela variação de desempenho. Foram utilizadas 3 VMs (V M bench, V M mysql e V M postgres ), cada uma com sistema operacional Ubuntu Server. A V M bench possui 4 CPUs, 16 GB RAM, 30 GB de armazenamento, e contêm o OLTPBenchmark [OLTPBenchmark 2012]. Em todos os experimentos, foram criadas 3 instâncias do OLTPBenchmark. Uma para submissão da carga de trabalho para o TPC-C, outra para o YCSB e uma terceira para o Wikipedia. As submissões das cargas de trabalho foram realizadas em paralelo. As V M mysql e V M postgres possuem 2 CPUs, 2 GB RAM, 30 GB de armazenamento com MySQL 5.5 e PostgreSQL 9.1, respectivamente. Nas VMs com o MySQL e PostgreSQL, foram utilizadas três bases de dados fornecidas pelo OLTP- Benchmark, TPC-C, YCSB e Wikipedia, com os seguintes tamanhos: TPC-C (400 MB), YCSB (800 MB) e Wikipedia (600 MB). Foram conguradas 30 conexões para cada banco de dados, variando a taxa de transações. Com essa conguração de ambiente é possível realizar experimentos que analise como cada um dos dois SGBDs, diante de diversas cargas de trabalho, trata questões de interferência entre os bancos de dados multi-inquilino de diferentes benchmarks. 4. EXPERIMENTOS E RESULTADOS Os experimentos foram realizados focando nos seguintes objetivos: (a) medir o desempenho e a interferência entre os inquilinos e (b) avaliar a inuência da carga de trabalho e do SGBD. Devido aos valores dos tempos de respostas serem muito diferentes tanto entre os bancos de dados quanto os SGBDs avaliados, não foi possível padronizar a escala do tempo de resposta. Com isso, os grácos possuem escalas diferentes. Para evitar que atrasos na inicialização dos inquilinos viessem a interferir nos resultados, as medidas iniciais obtidas (120 segundos) foram descartadas, considerando os valores posteriores, o que torna os experimentos mais próximos de um ambiente real. Foram realizados três experimentos variando a taxa de transações ao longo de um intervalo de tempo. No primeiro experimento, as taxas do YCSB e do Wikipedia foram xadas em 60, e a taxa do TPC-C foi alterada de acordo a seguinte sequência (50, 100, 150, 200, 250), a cada 300 segundos. As Figuras 1 e 2 apresentam a variação do tempo de resposta médio para o experimento. A Figura 1 mostra o resultado da avaliação com MySQL. Com o aumento da taxa de transações, o tempo de resposta do TPC-C aumenta, já que a taxa deste banco está aumentando, mas existe pouca interferência entre os inquilinos (bancos de dados). Com o aumento da taxa no instante de tempo 685 segundos, ocorre pouca interferência com o Wikipedia e um aumento maior no tempo de resposta do YCSB, ocasionado pela interferência da taxa do TPC-C. Esse resultado mostra que o MySQL apresenta um bom nível de isolamento entre os inquilinos. A Figura 2 mostra o resultado com o PostgreSQL. De forma similar ao MySQL, o tempo de resposta do TPC-C aumenta de acordo com a taxa, mas apresenta maior variabilidade. Com o aumento da taxa no instante de tempo 685 segundos, ocorre pouca interferência com o Wikipedia e um aumento muito grande no tempo de resposta do YCSB, ou seja, muita interferência provocada pelo TPC-C. O PostgreSQL apresenta pouco isolamento entre os inquilinos, prejudicando o desempenho. Além disso, apresenta alta variabilidade no tempo de resposta para cada inquilino. No segundo experimento, as taxas do TPC-C e YCSB foram xadas em 60 e, desta vez, a taxa do 164

172 Média de Média Tempo de Respostas(ms) TPCC Média de Média Tempo de Respostas(ms) YCSB Média de Média Tempo de Respostas(ms) WIKIPEDIA TPCC YCSB WIKIPEDIA Tempo (s) Tempo (s) Tempo (s) Fig. 1. Tempo médio de resposta para o MySQL com aumento na taxa de transações do TPC-C Média de Média Tempo de Respostas(ms) TPCC Média Média Tempo de de Respostas(ms) YCSB Média de Média Tempo de Respostas(ms) WIKIPEDIA TPCC YCSB WIKIPEDIA Tempo (s) Tempo (s) Tempo (s) Fig. 2. Tempo médio de resposta para o PostgreSQL com aumento na taxa de transações do TPC-C Wikipedia foi alterada de acordo a seguinte sequência (50, 100, 150, 200, 250), a cada 300 segundos. As Figuras 3 e 4 apresentam a variação do tempo de resposta médio para este experimento. A Figura 3 mostra o resultado da avaliação com MySQL variando o Wikipedia. Com o aumento da taxa de transações, o tempo de resposta do Wikipedia não aumenta, ocorrendo pouca interferência com o TPCC e YCSB. O resultado com o PostgreSQL é apresentado na Figura 4. O Wikipedia não sofre alteração no tempo de resposta com o aumento da carga, mas ocorrem muitas interferências com o TPC-C e o YCSB. Média Média Tempo de de Respostas(ms) TPCC Média Média Tempo de de Respostas(ms) YCSB Média Tempo de de Respostas(ms) WIKIPEDIA TPCC YCSB WIKIPEDIA Tempo (s) Tempo (s) Tempo (s) Fig. 3. Tempo médio de resposta para o MySQL com aumento na taxa de transações do Wikipedia O terceiro experimento avalia o desempenho com o aumento/diminuição da carga de trabalho (i.e., elasticidade). A taxa dos três bancos de dados foi alterada, a cada 300 segundos, de acordo com a Tabela 2. A Figura 5 apresenta o resultado deste experimento para o MySQL. É possível observar que o tempo de reposta de cada banco de dados segue a taxa de transações, com pouca interferência. Já o resultado do PostgreSQL, na Figura 6, apresenta maior interferência e variabilidade de desempenho. De forma geral, em todos os experimentos realizados, pode-se perceber que o crescimento na taxa de transações do TPC-C ocasiona aumento no tempo de resposta do próprio banco de dados e interferência no desempenho do YCSB, principalmente com o PostgreSQL. Por outro lado, o Wikipedia recebeu pouca interferência do TPC-C. Isso mostra que existem inquilinos que podem ser alocados para um mesmo SGBD e convivem quase perfeitamente. Em todos os resultados, o PostgreSQL apresentou tempo de resposta muito superior ao MySQL, provavelmente devido à diculdade de gerenciar multiinquilinos. 165

173 Média Média Tempo de de Respostas(ms) TPCC Média Média Tempo de de Respostas(ms) YCSB Média Tempo de de Respostas(ms) WIKIPEDIA TPCC YCSB WIKIPEDIA Tempo (s) Tempo (s) Tempo (s) Fig. 4. Tempo médio de resposta para o PostgreSQL com aumento na taxa de transações do Wikipedia Taxa Tempo (seg) TPC-C Wikipedia YCSB Table II. Taxa de transações durante o experimento. Média Média Tempo de de Respostas (ms) TPCC Média de Média Tempo de Respostas (ms) YCSB Média de Média Tempo de Respostas(ms) WIKIPEDIA TPCC YCSB WIKIPEDIA Tempo (s) Tempo (s) Tempo (s) Fig. 5. Tempo médio de resposta para o MySQL com aumento/diminuição dos três bancos de dados 4.1 Lições Aprendidas: Dicas para reduzir a interferência em SGBDs multi-inquilino A principal lição aprendida neste trabalho é que executar diferentes cargas de trabalho em um SGBD multi-inquilino ocasiona interferência entre inquilinos. Atualmente, os SGBDs não tratam essa interferência. Por outro lado, a escolha do SGBD ajuda a diminuir a interferência, conforme observado nos resultados do MySQL e do PostgreSQL. O usuário deve alocar inquilinos com pouca interferência entre si, como por exemplo o TPC-C e o Wikipedia. Para tanto, é necessária uma análise do perl do inquilino para identicar o nível de interferência. Também é importante isolar inquilinos suscetíveis à interferência, como foi o caso do YCSB nos experimentos. Neste caso, outros modelos multi-inquilino podem ser utilizados, por exemplo, SGBD privado para este inquilino suscetível à interferência. De acordo com os resultados, os SGBDs trabalham bem o aumento da carga de trabalho e também com a elasticidade da taxa de transações, principalmente o MySQL, que apresentou variabilidade de desempenho proporcional à taxa de transações. 5. TRABALHOS RELACIONADOS [Elmore et al. 2011] apresentam um estudo sobre os modelos multi-inquilino, destacando o nível de isolamento de cada modelo. Além disso, apresenta uma proposta para elasticidade de banco de dados utilizando o modelo de SGBD compartilhado. Contudo, o trabalho não apresenta avaliação ou resultados do estudo elaborado. [Ahmad and Bowman 2011] propõem o uso de técnicas de aprendizagem de máquina para realizar a predição de recursos para banco de dados servindo-se do modelo de 166

174 Média Tempo de de Respostas (ms) TPCC Média Tempo de de Respostas(ms) YCSB Média Média Tempo de de Respostas (ms) WIKIPEDIA TPCC YCSB WIKIPEDIA Tempo (s) Tempo (s) Tempo (s) Fig. 6. Tempo médio de resposta para o PostgreSQL com aumento/diminuição dos três bancos de dados SGBD compartilhado. Os experimentos utilizam múltiplas instâncias do TPC-C/H para simular um ambiente multi-inquilino, e os resultados mostram os recursos usados por cada banco de dados. O trabalho foca a utilização de recursos, mas não trata de aspectos de desempenho. [Xiong et al. 2011] apresentam o SmartSLA, um framework para o gerenciamento de recursos para SGBDs em nuvem, e utiliza o modelo multi-inquilino de hardware compartilhado, onde cada SGBD é executado em uma VM isolada. O SmartSLA considera diversos aspectos, tais como: SLA, carga de trabalho, custo de infraestrutura, e utiliza um modelo de predição baseado em aprendizagem de máquina para garantir o SLA. Entretanto, o modelo apresentado no trabalho não pode ser usado em provedores públicos, como o da Amazon [EC2 2012], pois supõem o acesso aos recursos físicos da infraestrutura. Em [Lang et al. 2012] é proposto um framework para a otimização de custos e recursos de acordo com restrições de um SLA. O framework usa um modelo analítico para vericar a utilização dos recursos e a violação do SLA. Em relação à avaliação, ele se serve do modelo multi-inquilino de SGBD compartilhado, e múltiplas instâncias do TPC-C/H para simular o ambiente multi-inquilino, similar a [Ahmad and Bowman 2011]. [Hatem A. Mahmoud and El-Abbadi 2012] apresentam uma estratégia para minimizar os recursos necessários, satisfazendo um SLA em uma arquitetura OLAP. Para tanto, usa um conjunto de algoritmos e heurísticas com o objetivo de melhorar a alocação dos recursos e distribuição da carga de trabalho. Este trabalho utiliza o modelo de SGBD compartilhado e foca o uso dos recursos. Contudo, por considerar uma arquitetura OLAP, não trata da garantia de desempenho QoS em tempo de execução. [Barker et al. 2012] apresentam uma solução para migração de banco de dados multi-inquilino, servindo-se do modelo de compartilhamento de sistema operacional, com um banco de dados por SGBD. O trabalho visa ainda minimizar o impacto de desempenho durante o processo de migração, mas não aborda aspectos de desempenho. Os trabalhos [Ahmad and Bowman 2011] [Hatem A. Mahmoud and El-Abbadi 2012] são orientados a recursos, ao passo que a análise realizada em nosso estudo foca o desempenho. Diferente dos trabalhos relacionados, este utiliza vários bancos de dados, tais como TPC-C, YCSB e Wikipedia para fornecer um ambiente multi-inquilino completo. Além disso, nosso estudo utiliza diferentes SGBDs e analisa a interferência de cada sistema considerando variadas cargas de trabalho. 6. CONCLUSÃO O trabalho apresentou uma análise de um conjunto de experimentos para medir a variação do desempenho de SGBDs multi-inquilino em nuvem. Para isso, foram apresentados alguns modelos multiinquilino para SGBDs, destacando suas principais características. Foram analisados aspectos de desempenho de bancos de dados multi-inquilino, servindo-se do framework OLTPBenchmark, que permite construir um ambiente multi-inquilino completo. De acordo com os resultados, foi possível observar que variadas cargas de trabalho em um SGBD multi-inquilino ocasionam interferência entre os inquilinos. Com isso, a escolha do SGBD ajuda a diminuir as interferências, pois os SGBDs analisados não tratam completamente deste aspecto. Além disso, para diminuir tais interferências, é necessário identicar o nível de interação entre os inquilinos e, consequentemente, melhorar a alocação 167

175 dos inquilinos de acordo com suas interferências. Em trabalhos futuros, pretende-se realizar experimentos com outros modelos multi-inquilinos não contemplados no estudo, assim como vericar o nível de interferências em outros SGBDs e os recursos utilizados por cada inquilino. Outro aspecto importante é desenvolver técnicas para migrar inquilinos com muita interferência entre si, melhorando o desempenho do sistema. Pretende-se também realizar um estudo para elaborar estratégia de alocação para inquilinos em SGBDs, visando diminuir as interferências. Agradecimentos Os autores agradecem a Carlo Curino e a equipe do OLTPBenchmark pela colaboração no desenvolvimento deste trabalho. REFERENCES Agrawal, D., Das, S., and Abbadi, A. E. Big data and cloud computing: New wine or just new bottles? PVLDB 3 (2): , Ahmad, M. and Bowman, I. T. Predicting system performance for multi-tenant database workloads. In Proceedings of the Fourth International Workshop on Testing Database Systems. DBTest '11. ACM, New York, NY, USA, pp. 6:16:6, Barker, S., Chi, Y., Moon, H. J., Hacigümü³, H., and Shenoy, P. "cut me some slack": latency-aware live migration for databases. In Proceedings of the 15th International Conference on Extending Database Technology. EDBT '12. ACM, New York, NY, USA, pp , Chaudhuri, S. What next?: a half-dozen data management research goals for big data and the cloud. In Proceedings of the 31st symposium on Principles of Database Systems. PODS '12. ACM, New York, NY, USA, pp. 14, EC2, A. Amazon Elastic Compute Cloud (Amazon EC2), Elmore, A., Das, S., Agrawal, D., and Abbadi, A. E. Towards an elastic and autonomic multitenant database. In NetDB th International Workshop on Networking Meets Databases Co-located with SIGMOD 2011, Elmore, A. J., Das, S., Agrawal, D., and El Abbadi, A. Zephyr: live migration in shared nothing databases for elastic cloud platforms. In Proceedings of the 2011 ACM SIGMOD International Conference on Management of data. SIGMOD '11. ACM, New York, NY, USA, pp , Hatem A. Mahmoud, Hyun Jin Moon, Y. C. H. H. D. A. and El-Abbadi, A. Towards multitenancy for io-bound olap workloads. Tech. Rep. UCSB , CS Department, University of California, Santa Barbara. May, Lang, W., Shankar, S., Patel, J. M., and Kalhan, A. Towards multi-tenant performance slos. Data Engineering, International Conference on vol. 0, pp , OLTPBenchmark. OLTPBenchmark, OpenNebula. OpenNebula, Salesforce. Salesforce.com, Schad, J., Dittrich, J., and Quiané-Ruiz, J.-A. Runtime measurements in the cloud: observing, analyzing, and reducing variance. Proc. VLDB Endow. 3 (1-2): , Sept., Soror, A. A., Minhas, U. F., Aboulnaga, A., Salem, K., Kokosielis, P., and Kamath, S. Automatic virtual machine conguration for database workloads. ACM Trans. Database Syst. 35 (1): 7:17:47, Feb., Sousa, F. R. C., Moreira, L. O., Macêdo, J. A. F., and Machado, J. C. Gerenciamento de dados em nuvem: Conceitos, sistemas e desaos. In SWIB 2010, 1. ed. SBC, pp , Sousa, F. R. C., Moreira, L. O., Santos, G. A. C., and Machado, J. C. Quality of service for database in the cloud. In CLOSER, F. Leymann, I. Ivanov, M. van Sinderen, and T. Shan (Eds.). SciTePress, pp , Weissman, C. D. and Bobrowski, S. The design of the force.com multitenant internet application development platform. In Proceedings of the 2009 ACM SIGMOD International Conference on Management of data. SIGMOD '09. ACM, New York, NY, USA, pp , Xiong, P., Chi, Y., Zhu, S., Moon, H. J., Pu, C., and Hacigumus, H. Intelligent management of virtualized resources for database systems in cloud environment. In Proceedings of the 2011 IEEE 27th International Conference on Data Engineering. ICDE '11. IEEE Computer Society, Washington, DC, USA, pp. 8798,

176 Extrator de fatos relacionados ao tráfego Fabio da Costa Albuquerque 1,2, Felipe Coimbra Bacelar 1,2, Ximena Alexandra Cabrera Tapia 2, Marcelo Tílio Monteiro de Carvalho 1 1 Tecgraf, PUC-Rio, Rio de Janeiro, Brasil 2 Departamento de Informática, PUC-Rio, Rio de Janeiro, Brasil Abstract. With the increasing use of the Web, data are created and consumed by a large number of people and agents. Recently, social networking started to play an important role in this scenario, where many users share data, forming a large knowledge base. This work aims at extracting facts relevant to traffic from Twitter, chosen as a case study, through the analysis of sentences written in Portuguese. Among the relevant facts contained in the text, we may emphasize traffic intensity and the occurrence of an accident at a given location. The proposed solution is divided into two steps. The first step is responsible for recognizing relevant entities in the text. The second step receives the recognized entities and interprets the text extracting facts considered relevant to the application. Resumo. Com o crescente uso da Web, dados são criados e consumidos por uma grande quantidade de pessoas e agentes. Recentemente, as redes sociais passaram a desempenhar um papel importante nesse cenário, onde muitos usuários compartilham dados, formando uma grande base de conhecimento. Esse trabalho tem como objetivo a extração de fatos relevantes ao tráfego a partir do Twitter, escolhido como estudo de caso, através da análise de frases escritas em português. Dentre os fatos relevantes contidos no texto, pode-se destacar a intensidade do tráfego e a ocorrência de algum acidente em um determinado local. A solução proposta é dividida em duas etapas. A primeira etapa é responsável por identificar as entidades relevantes no texto. A segunda etapa recebe as entidades identificadas e interpreta o texto para a efetiva extração dos fatos relevantes à aplicação. Categories and Subject Descriptors: H. Information Systems [H.m. Miscellaneous]: Databases Keywords: Machine Learning, Structure Text Data, Named Entity Recognition, Information Extraction. 1. INTRODUÇÃO Monitorar os eventos que acontecem em uma cidade e seus impactos não é uma tarefa simples, pois requer um grande esforço físico e financeiro, se pensarmos numa solução com câmeras espalhadas pela área a ser monitorada. Por outro lado, com o crescente uso da Web, dados são criados e consumidos por uma grande quantidade de pessoas e agentes a todo instante. Recentemente, as redes sociais passaram a desempenhar um importante papel nesse cenário, onde muitos usuários compartilham dados, formando uma grande base de conhecimento. Este trabalho concentra-se no Twitter como estudo de caso devido ao seu grande número de usuários, sua grande capacidade de geração de dados e por sua consolidação no mercado. Em mais detalhe, este trabalho descreve uma aplicação que recupera os tweets de uma determinada lista de perfis e interpreta as sentenças encontradas para saber a situação do trânsito e a ocorrência de alguns eventos de interesse, caracterizando um monitoramento de baixo custo e de origem colaborativa. Os perfis mencionados são de caráter governamental e privado (empresas) e publicam informações relativas ao tráfego. O exemplo mostrado na Fig. 1 representa o tweet: Av Maracanã, sentido Centro, tem trânsito intenso na altura da R São Rafael, por causa de obra na via. #zonanorte, que foi 169

177 publicado em 26/03/2012 por uma fonte governamental A figura ressalta as partes da frase que são relevantes ao monitoramento do trânsito. O uso de um programa convencional baseado em regras e condições pré-programadas é muito custoso para resolver o problema em questão. Por exemplo, Endarnoto et al. (2011) propõem uma solução baseada em templates para extrair os fatos de interesse e seus respectivos locais de ocorrência de mensagens que possuem um formato comum sem muita variedade gramatical. Em contrapartida, o cenário endereçado neste trabalho trata de sentenças com uma grande variedade gramatical. Para fazer face à variedade gramatical, produzir um resultado aceitável e minimizar o custo de manutenção e atualização da aplicação, esse trabalho propõe uma solução baseada em Inteligência Artificial usando técnicas de processamento de linguagem natural e aprendizado de máquina. Este trabalho está estruturado da seguinte forma. A seção 2 apresenta a decomposição do problema e as abordagens utilizadas para resolvê-lo. A seção 3 destaca a modelagem do problema em aprendizado de máquina, o tratamento feito nos dados e os atributos extraídos. A seção 4 descreve o corpus utilizado na avaliação da solução proposta, os algoritmos utilizados e os resultados obtidos. Finalmente, a seção 5 apresenta a conclusão e uma discussão sobre trabalhos futuros. 2. ABORDAGEM ADOTADA 2.1 DECOMPOSIÇÃO DO PROBLEMA Fig. 1. Exemplo de um tweet do O problema foi decomposto em duas tarefas: (i) identificar e anotar as entidades relevantes no texto; (ii) interpretar o texto, extraindo fatos relevantes, utilizando as entidades encontradas. A primeira tarefa está relacionada ao problema de reconhecimento de entidades nomeadas (REN), e a segunda tarefa ao problema de extração de informação (EI). O problema de reconhecimento de entidades nomeadas já é bastante difundido na literatura [Nadeau et al. 2007], inclusive no contexto do uso do Twitter como fonte de dados. Ritter et al. (2011) propõem uma abordagem para reconhecimento de entidades usando o Twitter, chamando a atenção para gírias utilizadas na Internet. Jung (2012) também usa o Twitter como estudo de caso. A tarefa de extração de informação consiste em identificar e extrair de um documento determinadas informações ou detalhes. Extração de informação é importante, por exemplo, no contexto de sistemas de pergunta e resposta, onde se deve reconhecer em uma base de dados ou textos a informação solicitada pelo usuário, e para sistemas de sumarização automática, nos casos em que o sumário a ser produzido é focado em eventos ou conceitos descritos no texto [Mani e Bloedorn 1998]. 170

178 2.2 ENTIDADES NOMEADAS Este trabalho utiliza a seguinte lista de entidades, onde a descrição é seguida do tipo da entidade e dos seus respectivos objetivos: Local (LOC): Indica um local georeferenciável. Pode ser um país, estado, cidade, bairro, um ponto de referência ou qualquer tipo de logradouro. Também inclui prédios e construções como aeroportos, shoppings, etc. Como nome de uma rua pode-se usar como exemplo Rua Marquês de São Vicente, onde todas essas palavras são utilizadas como local. Os pontos de referência que indicam algum lugar no espaço também devem ser anotados como local, Nesse cenário destacamse as informações sobre um quilômetro específico de uma estrada, a saída de alguma via ou algum local conhecido, como por exemplo km 135, saída 5 ou Praça Santos Dummont. Ponto de referência (REF_N): Representa proximidade com outro local mais específico para aumentar a precisão da localização. Essa entidade serve como ligação de um local principal com um local secundário que, como dito anteriormente, serve para aumentar a precisão do local desejado. Palavras que indicam proximidade e aumentam a precisão da localização principal são utilizadas como referência. Direção da pista (DIR_N): Indica a direção ou sentido do fluxo. Uma informação sobre um acidente em determinada via expressa que possui duas direções não é completa. As palavras que representam essa entidade expressam a direção do fluxo de tráfego atingida por um fato ou intensidade de trânsito. Por exemplo, a partir da direção do fluxo, é possível saber qual pista da rua está sendo atingida. Assim como a entidade REF_N, a entidade DIR_N serve como ligação de um local principal com um local secundário, onde o local secundário deverá indicar o destino da pista afetada. Ambas as pistas (DIR_NS): Indica a ocorrência nos dois fluxos. Essa entidade deve ser utilizada para representar palavras que expressam um fato ou intensidade do trânsito nos dois sentidos (em ambas as pistas) de uma via. Co-referência (COREF_LOC): Indica uma coreferência ao local principal. Em alguns casos um mesmo local pode ser alvo de vários acontecimentos, como um fato que tem como consequência um trânsito lento. Nesse cenário, a entidade tem como objetivo referenciar o local principal do acontecimento primário. Local restritivo (ABSL_N): Indica um local que tem o objetivo de restringir uma área geográfica para um determinado local primário. Essa entidade serve como ligação de um local principal com um local secundário, indicando um local restritivo para o local primário. Geralmente essas entidades indicam o bairro ou cidade de uma determinada rua ou local. Intensidade do tráfego (TR_INT): Representa a intensidade do tráfego. O conjunto de palavras anotadas por essa entidade deve ser orientado pelas condições de tráfego de um determinado local. A classificação da intensidade do tráfego (e.g. bom, intenso, lento) pode ser medida através do uso de um conjunto de palavras reservadas ou um mecanismo mais genérico que utilize os recursos disponíveis na Web (e.g. WordNet). Fato (FACT): Indicam acontecimentos gerais que causam algum impacto no tráfego. Em geral são relacionados a interdições, acidentes, colisões, atropelamentos ou emergências em geral. As palavras associadas a essa entidade devem ser suficientes para exprimir um fato relevante ao tráfego que cause alguma mudança no estado normal da via. Término de um fato (OPEN): Indica o fim de um fato. Pode ser a remoção de um veículo acidentado, a liberação de uma via, a retirada de uma árvore caída após forte chuva, etc. As palavras associadas a essa entidade geralmente são verbos que estão no passado. 171

179 Outros (O): Entidades sem relevância para o problema. Deve ser utilizada quando a palavra em questão não suprir nenhum dos requisitos anteriores. Um problema muito comum no reconhecimento de entidades nomeadas é identificar onde começa e termina uma entidade, pois uma entidade pode ser composta por uma ou mais palavras. Dando um exemplo real, vamos usar o seguinte conjunto de palavras Praça Santos Dumont. Nesse exemplo, partimos da premissa que o sistema identifica como entidade LOC as palavras Praça Santos, mas erra a extremidade final ao ignorar Dumont, classificando-a como uma entidade do tipo Outros. Em um caso como este, classificamos "Praça Santos" como uma predição positiva incorreta (falso positivo) e classificamos "Dumont" como uma predição negativa incorreta (falso negativo). Desta forma, uma única entidade gera dois registros incorretos apenas por falhar na definição da extensão de suas extremidades. Na seção 4.2 esse tipo de avaliação é chamada de conjunto de tokens. 2.3 EXTRAÇÃO DE INFORMAÇÃO Esse trabalho modela o resultado esperado do problema de extração de informação como uma árvore de dependência, onde cada nó da árvore corresponde a uma entidade relevante (ER), que representa o conjunto de todas as entidades utilizadas nesse trabalho, com exceção de entidades do tipo Outros. As arestas entre pai e filho da árvore representam uma relação de dependência entre as entidades. A estruturação das notícias em forma de árvore facilita seu uso em diversas aplicações (e.g. georreferenciar e associar os locais aos fatos), onde cada aresta representa uma possível relação de pai para filho entre duas entidades. A Fig. 2 ilustra as restrições de relacionamento entre entidades criadas nesse trabalho. A construção dessas restrições levou em conta as características de cada entidade. O tipo ROOT apenas corresponde à raiz da árvore e não representa uma entidade. 3. MODELAGEM Fig. 2. Restrições de relacionamento entre entidades relevantes Esta seção discute a engenharia de atributos adotada para cada um dos problemas apresentados nas seções 2.2 e 2.3. Algoritmos na área de aprendizado de máquina tipicamente não recebem texto propriamente dito como entrada. Para utilizar texto nesses algoritmos é necessário converter as palavras em uma estrutura chamada saco de palavras (Bag of Words) [Lewis 1998] [Maron 1961], onde é criada uma representação vetorial para as palavras. Para aumentar a qualidade do resultado das tarefas de aprendizado de máquina propostas, neste trabalho foram desenvolvidos alguns geradores de atributos, com o objetivo de extrair informações adicionais sobre cada objeto de entrada. Na literatura, esses atributos são conhecidos como features. 172

180 3.1 ATRIBUTOS - RECONHECIMENTO DE ENTIDADES Nessa tarefa, cada token possui um conjunto de características que são utilizadas pelo mecanismo de aprendizado de máquina para definir sua entidade. Consideramos X i = {X 1, X 2,, X n } T, tal que T é a lista de tokens de uma notícia. As variações possíveis de X são: (W i ) Word - Indica a palavra do token i ; (SW i ) Simplified Word - Indica a palavra do token i simplificada (minúsculo, sem caracteres especiais e remove as letras ou números de tamanho 1) ; (POS i ) Part-of-Speech - Indica o Part-of- Speech do token I ; (LOC i ) Location - Indica se a palavra do token i é uma localização ou não ; (STW i ) - Indica o radical da palavra presente no token i. Segue-se a lista dos geradores de atributos utilizados no reconhecimento de entidades: CurrT(X) Token corrente; X i. PrevT(X, N) Representa os N tokens anteriores ao índice corrente, onde cada token representa um atributo; X i - 1,, X i - N. NextT(X, N) Representa os N tokens posteriores ao índice corrente, onde cada token representa um atributo; X i + 1,, X i + N. CurrWSC Indica se W i começa com letra maiúscula e não possui nenhuma outra maiúscula; Ex.1: Avenida - true; Ex.2: AveniDa false. LocType Indica se a W i lowercased é um indicador de logradouro; X i {av, avs, avenida, avenidas, est, estrada, estradas, r, rua, ruas}. 3.2 ATRIBUTOS - EXTRAÇÃO DE INFORMAÇÃO Nessa tarefa cada notícia (um Tweet) é transformada em um grafo direcionado que possui N nós, onde cada nó é representado por uma entidade relevante. O número de arestas possíveis é N 2 - N e cada aresta representa um par de entidades relevantes, onde A -> B indica que A é pai de B. Cada relação entre duas entidades possui um conjunto de atributos, que são utilizados por algoritmos de aprendizado de máquina para aprender sobre a natureza dos relacionamentos. Consideramos Y i = {Y 1, Y 2,, Y n } ENT, tal que ENT é a lista de entidades presentes na notícia. As variações de Y são: (W) Word - Indica as palavras de Y i ; (SW) Simplified Word - Indica as palavras de Y i simplificadas ; (RE) Ruler Entity - Indica a entidade nomeada de Y i, caso não seja uma ER o POS é utilizado ; (NE) Named Entity - Indica a entidade nomeada de Y i, é ignorada caso não seja uma ER ; (PUNCT) Punctuation - Indica se existe pontuação. Segue-se a lista dos geradores de atributos utilizados na extração de informação: PossRel Indica se o par de entidades pode ter uma relação de dependência. ConcT (Y) Representa as palavras de Y i -> Y j concatenados. BetT (Y) Representa todos os tokens presentes no intervalo Y i, Y j. NearT (Y, N) Representa os tokens no intervalo N, onde: Y i - 1,, Y i - N ;Y j - 1,, Y j N ;Y i + 1,, Y i + N ; Y j + 1,, Y j + N. Conta como um único atributo, separado pelo caractere _. AbsLocPair Indica se existe relação entre as entidades A -> B, onde A = {ABSL_N} e B = {LOC}, caso contrário nenhum valor é utilizado. MetaWithLoc Indica se existe relação entre as entidades A -> B, onde A = {REF_N ou DIR_N} e B = {LOC}. 173

181 4. AVALIAÇÃO 4.1 CORPUS Esta seção discute os procedimentos empregados para a construção do corpus utilizado ao longo dos experimentos apresentados na seção 4.2. Como foi explicado na seção 1, os dados para as análises feitas nesse trabalho foram retirados do Twitter. Como uma primeira versão, foram selecionadas duas fontes de dados, que são equivalentes a dois usuários do Twitter, para extração das notícias referentes ao tráfego e suas causas. Os usuários selecionados Essas duas fontes de dados possuem características de publicar notícias somente do Rio de Janeiro, na sua grande maioria relativa ao tráfego (cerca de 90%), e com uma escrita mais formal sem muitas gírias ou vícios de linguagem da internet. Com isso, é garantida a construção de uma base com notícias de um determinado tipo, para que em outra etapa do projeto outras fontes de dados, não necessariamente relativas ao tráfego, sejam consumidas e interpretadas. A preparação do corpus foi dividida nas seguintes etapas: (a) extrair os tokens de cada frase; (b) definir a característica morfossintática de cada token; (c) associar cada token a uma entidade; (d) estabelecer as relações de dependência entre as entidades. Para executar os passos (a) e (b), foi feito um procedimento automático, utilizando o mecanismo proposto por Mota et al. (2010). O passo (c) inicialmente foi feito automaticamente por um programa com algumas regras e posteriormente verificado por uma pessoa. O processo de anotação foi guiado pelas diretrizes da seção 2.2. Para diminuir o tempo gasto nesse procedimento, trocamos esse algoritmo pelo próprio mecanismo de identificação de entidades baseado em aprendizado de máquina, utilizando 100 sentenças com suas entidades anotadas. Como resultado, houve uma diminuição no tempo de verificação de duas horas e meia para uma hora, para avaliar 100 sentenças. O passo (d) foi feito manualmente através de uma interface gráfica para auxiliar na visualização da relação de dependência. Os passos (c) e (d) foram feitos utilizando as diretrizes das seções 2.2 e 2.3, caracterizando-se anotações gold por terem sido feitas por uma pessoa. O corpus atual possui um total de 475 notícias anotadas, com uma média de 23,5 tokens por notícia. A Tabela I mostra a relação entre entidades e tokens presente no corpus. A Tabela II mostra informações do corpus sobre o ponto de vista das árvores de dependência. Tabela I. Números sobre a relação entre entidades e tokens Entidade Token a token Entidade completa ABSL_N COREF_LOC DIR_N DIR_NS FACT LOC O OPEN REF_N TR_INT Total Tabela II. Estatísticas sobre as árvores Arestas Nº de arestas possíveis Relativo ao total Relativo ao total reduzido Combinações ,00% 297,00% Combinações reduzidas ,60% 100,00% Conectadas ,10% 36,00% 174

182 4.2 RESULTADOS Para a medição dos resultados, foi utilizada a técnica de validação cruzada ten-fold. O corpus foi dividido em dez partes iguais e testado dez vezes, onde em cada teste uma parte é usada no conjunto de teste e as outras nove são usadas no conjunto de treino. Após a execução dos dez testes, o resultado das medidas de qualidade são uma média entre o resultado de todas as dez execuções. As medidas de qualidade utilizadas foram: accuracy, recall, precision, f-measure, desvio padrão da f-measure. Para o reconhecimento de entidades, foi utilizado o weka (http://www.cs.waikato.ac.nz/ml/weka) na versão O algoritmo que apresentou o melhor resultado dentre vários testados foi a implementação SMO [Platt 1998] da família SVM. Para a extração da árvore de dependência foi utilizada uma implementação (https://github.com/eraldoluis/large-margin-structured-perceptron) que: (i) utiliza o algoritmo marge largin structured perceptron para calcular um peso para cada aresta, formando um grafo direcionado com peso nas arestas; (ii) encontra a árvore geradora máxima no grafo direcionado [Chu e Liu 1965][Edmonds 1967]. Todos os testes foram executados em um computador com processador Core i3 de 2.13 GHz e 4GB de memória RAM. Os resultados presentes na Tabela III foram obtidos em 952,3 segundos, utilizando o seguinte conjunto de features apresentado na seção 3.1: CurrT(W), CurrT(SW), CurrT(STW) PrevT(W, 2), NextT(W, 2), PrevT(STW, 1), NextT(STW, 1), PrevT(POS, 2), CurrT(POS), NextT(POS, 2), LocType, CurrWSC. Os resultados presentes na Tabela IV foram obtidos em 10,04 segundos com redução de arestas e 23,96 segundos sem redução de arestas, utilizando o seguinte conjunto de features apresentado na seção 3.2: PossRel, ConcT(NE), ConcT(W), BetT(RE), BetT(W), BetT(NE), NearT(RE,3), NearT(W,2), NearT(NE,2), AbsLocPair, MetaWithLoc, BetT(PUNCT). Tabela III. Melhor resultado para o reconhecimento de entidades Token a token Conjunto de tokens (por extremidade) Entidades Acc Prec Recall F1 D.P. F-1 Acc Prec Recall F1 D.P. F-1 ABSL_N 99,85 82,91 85,91 83,99 4,93 95, ,46 97,56 3,5 COREF_LOC 99,96 98,73 97,56 98,1 2,6 97, ,56 98,73 1,94 DIR_N 99,58 95,56 90,37 92,68 8,33 89,41 99,71 89,53 93,94 7,33 DIR_NS 99, ,75 99, ,5 93, FACT 98,60 88,17 80,83 83,91 5,5 39,69 64,52 51,49 55,72 12,83 LOC 98,07 96,15 96,32 96,22 1,36 83,75 92,6 89,61 91,04 3,55 O 95,58 95,25 96,74 95,98 0,90 97, ,44 98,70 0,58 OPEN 99,82 97,5 85,95 90,83 9,13 79,2 91,75 83,58 86,07 17,3 REF_N 99,81 97,43 92,92 94,92 4,3 92, ,01 95,62 4,79 TR_INT 99,54 96,66 96,7 96,65 2,56 87,04 95,09 90,86 92,7 6,5 Média 99,09 94,84 92,21 93,26 4,16 85,41 93,69 88,25 90,41 7,63 Tabela IV. Melhores resultados para a árvore de dependência Redução de arestas Acurácia por aresta Acurácia por exemplo Desvio padrão da acurácia por exemplo NÃO 92,68 69,38 9,45 SIM 93,16 73,37 8,41 5. CONCLUSÃO E TRABALHOS FUTUROS Esse trabalho propôs um mecanismo para estruturação de notícias relacionadas ao tráfego sem a utilização de regras pré-definidas ou templates, apenas baseado em aprendizado de máquina, com o objetivo de identificar e relacionar as informações relevantes dentro do contexto do tráfego, como informações sobre o estado do trânsito, acidentes, interdições e seus respectivos locais de ocorrência. 175

183 Utilizando o corpus construído para esse trabalho, o mecanismo apresentou uma F-Measure média para o reconhecimento de entidades por extremidades de 90,41% e uma acurácia de acerto por árvore de 73,37%, mediante o uso de redução de arestas que contribui para reduzir o número de possibilidades de conexão entre as arestas. Observando a Tabela III, o resultado do reconhecimento da classe FACT mostrou-se abaixo do esperado, que era 70%, enquanto que os outros resultados mostraram-se satisfatórios. Seu baixo resultado é justificado pelo tamanho do corpus que é muito pequeno, e abre precedentes para: (i) aumentar o tamanho do corpus, triplicando seu tamanho atual; (ii) testar o uso de novas features com o objetivo de ajudar a identificação possíveis acontecimentos (e.g. lista de verbos, conjunções). As técnicas apresentadas podem ser estendidas a fontes de dados de natureza diferente, não sendo restritas apenas ao Twitter. Um dos próximos passos do trabalho será testar a abordagem proposta com tweets de usuários comuns. O por exemplo, possui uma série de tweets com gírias e excesso de abreviações. Outro trabalho futuro será diminuir o esforço na construção do corpus utilizando técnicas de aprendizado ativo (active learning), onde existem várias técnicas para otimizar a construção do corpus. No nosso caso planejamos utilizar a técnica de extrair de um repositório muito maior de notícias dessa natureza, com cerca de notícias, as instâncias onde o classificador indicar uma baixa margem de diferença de porcentagem entre duas entidades, ou seja, priorizando a adição de instâncias que causam dúvida na caixa preta de classificação, fazendo com que o esforço manual seja direcionado para exemplos com alto grau de incerteza. Por outro lado, pode-se usar técnicas de aprendizado não-supervisionado, para diminuir o custo da criação e manutenção de um corpus específico para o problema. Outro objetivo futuro seria fazer uso da entidade Data, que não foi utilizada nesse trabalho devido ao seu baixo número de ocorrências no corpus construído. O resultado desse trabalho será utilizado para georreferenciar os fatos e intensidade do tráfego através de seus locais associados, utilizando as informações adicionais desses locais para aumentar a precisão durante o processo de georreferenciamento [Albuquerque et al. 2012]. REFERENCES ALBUQUERQUE F. DA C., BARBOSA I., CASANOVA M. A., CARVALHO M. T.. HIGH PRECISION GEORREFERENCING OVER STRUCTURED DATA. SUBMITTED FOR PUBLICATION, CHU, Y. J., LIU, T. H. (1965). ON THE SHORTEST ARBORES-CENCE OF A DIRECTED GRAPH. SCIENCE SINICA(14), MOTTA, E. N., FERNANDES, E. R., MILIDIÚ, R. L.. F-EXT-2.0: A WEB SERVICE FOR NATURAL LANGUAGE PROCESSING. IN: PROPOR 2010, SOFTWARE DEMONSTRATION, PORTO ALEGRE, RS, BRAZIL, APRIL 27-30, EDMONDS, J. (1967). OPTIMUM BRANCHINGS. JOURNAL OF RESEARCH OF THE NATIONAL BUREAU OF STANDARDS(71B), ENDARNOTO S. K., PRADIPTA S., NUGROHO A. S., PURNAMA J.: TRAFFIC CONDITION INFORMATION EXTRACTION & VISUALIZATION FROM SOCIAL MEDIA TWITTER FOR ANDROID MOBILE APPLICATION, PROC. OF 3RD INTERNATIONAL CONFERENCE ON ELECTRICAL ENGINEERING AND INFORMATICS (ICEEI 2011), CDROM H3-5, INSTITUT TEKNOLOGI BANDUNG, BANDUNG, INDONESIA, JULY 17-19, 2011 JUNG J. J., ONLINE NAMED ENTITY RECOGNITION METHOD FOR MICROTEXTS IN SOCIAL NETWORKING SERVICES: A CASE STUDY OF TWITTER, EXPERT SYSTEMS WITH APPLICATIONS, VOLUME 39, ISSUE 9, JULY 2012, PAGES , ISSN , /J.ESWA (HTTP://WWW.SCIENCEDIRECT.COM/SCIENCE/ARTICLE/PII/S ) LEWIS, D. D.. NAIVE (BAYES) AT FORTY: THE INDEPENDENCE ASSUMPTION IN INFORMATION RETRIEVAL. P. 4{15. SPRINGER VERLAG, MARON, M. E.. AUTOMATIC INDEXING: AN EXPERIMENTAL INQUIRY. J. ACM, 8:404{417, JULY MANI, I. AND BLOEDORN E. (1998). MACHINE LEARNING OF GENERIC AND USER-FOCUSED SUMMARIZATION. IN PROCEEDINGS OF THE FIFTEENTH NATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AAAI 98, PP NADEAU, DAVID AND SEKINE, S. (2007) A SURVEY OF NAMED ENTITY RECOGNITION AND CLASSIFICATION. IN: SEKINE, S. AND RANCHHOD, E. NAMED ENTITIES: RECOGNITION, CLASSIFICATION AND USE. SPECIAL ISSUE OF LINGVISTICÆ INVESTIGATIONES. 30(1) PP PLATT, J. C. (1998). FAST TRAINING OF SUPPORT VECTOR MACHINES USING SEQUENTIAL MINIMAL OPTIMIZATION. IN B. SCHÖLKOPF, C. BURGES, & A. SMOLA (EDS.). ADVANCES IN KERNEL METHODS: SUPPORT VECTOR MACHINES, CAMBRIDGE, MA: MIT PRESS. RITTER A., CLARK S., MAUSAM, AND ETZIONI O. NAMED ENTITY RECOGNITION IN TWEETS: AN EXPERIMENTAL STUDY. SUBMITTED,

184 Mining User Contextual Preferences Sandra de Amo, Marcos L. P. Bueno, Guilherme Alves, Nádia F. Silva Universidade Federal de Uberlândia Abstract. User preferences play an important role in database query personalization since they can be used for sorting and selecting the objects which most fulll the user wishes. In most situations user preferences are not static and may vary according to a multitude of user contexts. Automatic tools for extracting contextual preferences without bothering the user are desirable. In this paper, we propose CPrefMiner, a mining technique for mining user contextual preferences. We argue that contextual preferences can be naturally expressed by a Bayesian Preference Network (BPN). The method has been evaluated in a series of experiments executed on synthetic and real-world datasets and proved to be ecient to discover user contextual preferences. Categories and Subject Descriptors: H.Information Systems [H.m. Miscellaneous]: Databases Keywords: preference mining, context-awareness, bayesian networks 1. INTRODUCTION Elicitation of Preferences is an area of research that has been attracting a lot of interest within the database and AI communities in recent years. It consists basically in providing the user a way to inform his/her choice on pairs of objects belonging to a database table, with a minimal eort for the user. Preference elicitation can be formalized under either a quantitative [Burges et al. 2005; Crammer and Singer 2001; Joachims 2002] or a qualitative [Jiang et al. 2008; Koriche and Zanuttini 2010; de Amo et al. 2012; Holland et al. 2003] framework. In order to illustrate the quantitative formulation, consider we are given a collection of movies and we wish to know which lms are most preferred by a certain user. For this, we can ask the user to rate each movie and after that we simply select those lms with the higher score. This method may be impractical when dealing with a large collection of movies. In order to accomplish the same task using a qualitative formulation of preferences, we can ask the user to inform some generic rules that reect his/her preferences. For example, if the user says that he/she prefers romance movies to drama movies, then we can infer a class of favorite movies without asking the user to evaluate each lm individually. A qualitative framework for preference elicitation consists in a mathematical model able to express user preferences. In this paper, we consider the contextual preference rules (cp-rules) introduced by [Wilson 2004]. This formalism is suitable for specifying preferences in situations where the choices on the values of an attribute depend on the values of some other attributes (context). For example in our movie database scenario, a user can specify his/her preference concerning the attribute gender depending on the value of the attribute director: For movies whose director is Woody Allen he/she prefers comedy to suspense and for movies from director Steven Spielberg he/she prefers action lms to drama. On both frameworks for expressing preferences (quantitative or qualitative), it is important to develop strategies to avoid the inconvenience for the user to report his/her preferences explicitly, a process that can be tedious and take a long time, causing the user not willing to provide such We thank the the Brazilian Research Agencies CNPq, CAPES (SticAmSud Project 016/09) and FAPEMIG for supporting this work. 177

185 information. In this context, the development of preference mining techniques allowing the automatic inference of user preferences becomes very relevant. In this paper we propose the algorithm CPrefMiner, a qualitative method for mining a set of probabilistic contextual preference rules modeled as a preference bayesian network (BPN). 2. RELATED WORK An extensive text presenting dierent theoretical approaches and techniques for preference learning can be found in [Fürnkranz and Hüllermeier 2011]. Roughly speaking, preference learning can be divided into two distinct problems: label ranking and object ranking. The problem of Label ranking consists in discovering rules relating user's personal information to the way they rank labels. The work of [Hüllermeier et al. 2008] discusses the dierences underlying both problems and proposes a method for label ranking consisting in training a set of binary classiers. On the other hand, object ranking aims at predicting which is the preferred object between two given objects. The present paper focuses on this latter problem. In [Holland et al. 2003] the authors propose a technique for mining user preferences, based on a qualitative approach, whose underlying model is the pareto preference model. The preference rules are obtained from log data generated by the server when the user is accessing a web site. Another approach to preference mining is presented in [Jiang et al. 2008]. In this work the authors propose using preference samples provided by the user to infer an order on any pair of tuples in the database. Such samples are classied into two categories, the superior and inferior samples and contain information about some preferred tuples and some non-preferred ones. From these rules, an order is inferred on the tuples. The underlying preference model is the pareto preference model as in [Holland et al. 2003]. In this model, preferences are not conditional or contextual, that is, preferences on values of attributes do not depend on the values of other attributes. Our contextual preference model is more expressive. Concerning the topic of mining contextual preference rules, [Koriche and Zanuttini 2010] proposes a method for mining a CP-Net model [Boutilier et al. 2004] from a set of preferences supplied by the user. Like in our approach, preference samples are represented by ordered pairs of objects. The goal is to identify a target preference ordering with a binary-valued CP-net by interacting with the user through a small number of queries. In [de Amo et al. 2012] some of the authors of the present paper proposed a dierent method (ProfMiner) to discover user proles specied by a set of preference rules. In Section 5 we briey compare the performance of CPrefMiner and ProfMiner. The main advantage of CPrefMiner over ProfMiner is that it produces a compact preference model (Bayesian Preference Network) which induces a strict partial order over the set of tuples. Besides it produces more accurate results than ProfMiner. However, concerning model interpretability, ProfMiner is more advantageous than CPrefMiner. 3. PROBLEM FORMALIZATION A preference relation on a nite set of objects A = {a 1, a 2,..., a n } is a strict partial order over A, that is a binary relation R A A satisfying the irreexivity and transitivity properties. Typically, a strict partial order is represented by the symbol >. So if > is a preference relation, we denote by a 1 > a 2 the fact that a 1 is preferred to a 2. Denition 3.1 Preference Database. Let R(A 1, A 2,..., A n ) be a relational schema. Let Tup(R) be the set of all tuples over R. A preference database over R is a nite set P Tup(R) Tup(R) which is consistent, that is, if (u, v) P then (v, u) P. The pair (u, v), usually called a bituple, represents the fact that the user prefers the tuple u to the tuple v. Example 3.2. Let R(A, B, C, D) be a relational schema with attribute domains given by dom(a) = {a 1, a 2, a 3 }, dom(b) = {b 1, b 2 }, dom(c) = {c 1, c 2 } and dom(d) = {d 1, d 2 }. Let I be an instance over R as shown in Figure 1(a). Figure 1(b) illustrates a preference database over R, representing a sample provided by the user about his/her preferences over tuples of I. 178

186 Id A B C D t 1 a 1 b 1 c 1 d 1 t 2 a 1 b 1 c 1 d 2 t 3 a 2 b 1 c 1 d 2 t 4 a 1 b 2 c 1 d 2 t 5 a 2 b 1 c 2 d 1 t 6 a 3 b 1 c 1 d 1 (a) (t 1,t 2 ) (t 1,t 3 ) (t 4,t 5 ) (t 4,t 2 ) (t 5,t 6 ) (t 3,t 5 ) (t 4,t 1 ) (b) Fig. 1: (a) An instance I and (b) a Preference Database P The main objective of this paper is to extract a contextual preference model from a preference database provided by the user. The contextual preference model is specied by a Bayesian Preference Network dened next. Denition 3.3 Bayesian Preference Network (BPN). A Bayesian Preference Network (or BPN for short) over a relational schema R(A 1,..., A n ) is a pair (G, θ) where: (1) G is a directed acyclic graph whose nodes are attributes in {A 1,..., A n } and the edges stand for attribute dependency; (2) θ is a mapping that associates to each node of G a conditional probability table of preferences, that is, a nite set of conditional probabilities of the form P [E 2 E 1 ] where (1) E 1 is an event of the form (A i1 = a i1 )... (A ik = a ik ) such that j {1,..., k}, a ij dom(a ij ), and (2) E 2 is an event of the form (B = b 1 ) is preferred to (B = b 2 ) 1, where B is an attribute of R, B A ij j {1,..., k} and b 1, b 2 dom(b), b 1 b 2. Example 3.4 BPN. Let R(A, B, C, D) be the relational schema of Example 3.2. Figure 2 illustrates a preference network PNet 1 over R. Each conditional probability P [E2 E1] in a BPN table stands for a probabilistic contextual preference rule (cp-rule), where the condition event E 1 is the context and the event E 2 is the preference. A probabilistic contextual preference rule associated to a node X in the graph G represents a degree of belief of preferring some values for X to other ones, depending on the values assumed by its parents in the graph. For instance P [D = d 1 > D = d 2 C = c 1 ] = 0.6 means that the probability of D = d 1 be preferred to D = d 2 is 60% given that C = c 1. Fig. 2: Preference Network PNet 1 The quality of a BPN as an ordering tool is measured by means of its precision and recall. In order to properly dene the precision and recall of a preference network, we need to dene the strict partial order inferred by the preference network. For lack of space, we do not provide the rigorous denition of the order here, but only describe it by means of an example. For more details see [de Amo and Pereira 2011]. Example 3.5 Preference Order. Let us consider the BPN PNet 1 depicted in Figure 2. This BPN allows to infer a preference ordering on tuples over R(A, B, C, D). According to this ordering, tuple 1 For the sake of simplifying the presentation we often say b 1 > b 2 instead of (B = b 1 ) is preferred to (B = b 2 ). 179

187 u 1 = (a 1, b 1,c 1,d 1 ) is preferred to tuple u 2 = (a 2, b 2,c 1,d 2 ). In order to conclude that, we execute the following steps: (1) Let (u 1, u 2 ) be the set of attributes where the u 1 and u 2 dier. In this example, (u 1, u 2 ) = {A, B, D}; (2) Let min( (u 1, u 2 )) such that the attributes in min( ) have no ancestors in (according to graph G underlying the BPN PNet 1 ). In this example min( (u 1, u 2 )) = {D,B}. In order to u 1 be preferred to u 2 it is necessary and sucient that u 1 [D] > u 2 [D] and u 1 [B] > u 2 [B]; (3) Compute the following probabilities: p 1 = probability that u 1 > u 2 = P [d 1 > d 2 C = c 1 ] P [b 1 > b 2 C = c 1 ] = 0.6 * 0.6 = 0.36; p 3 = probability that u 2 > u 1 = P [d 2 > d 1 C = c 1 ] P [b 2 > b 1 C = c 1 ] = 0.4 * 0.4 = 0.16; p 2 = probabibility that u 1 and u 2 are incomparable = P [d 1 > d 2 c = c 1 ] P [b 2 > b 1 C = c 1 ] + P [d 2 > d 1 C = c 1 ] P [b 1 > b 2 C = c 1 ] = 0.6* *0.6 = In order to compare u 1 and u 2 we focus only on p 1 and p 3 (ignoring the degree of incomparability p 2 ) and select the higher one. In this example, p 1 > p 3 and so, we infer that u 1 is preferred to u 2. If p 1 = p 3 we conclude that u 1 and u 2 are incomparable. Denition 3.6 Precision and Recall. Let PNet be a BPN over a relational schema R. Let P be a preference database over R. The recall of PNet with respect to P is dened by Recall(PNet,P)= N M, where M is the cardinality of P and N is the amount of pairs of tuples (t 1, t 2 ) P compatible with the preference ordering inferred by PNet on the tuples t 1 and t 2. That is, the recall of PNet with respect to P is the percentage of elements in P which are correctly ordered by PNet. The precision of PNet is dened by Precision(PNet,P)= N K, where K is the set of elements of P which are comparable by PNet. That is, the precision of PNet with respect to P is the percentage of comparable elements of P (according to PNet) which are correctly ordered by PNet. The Mining Problem we treat in this paper is the following: Given a training preference database T 1 over a relational schema R and a testing preference database T 2 over R, nd a BPN over R having good precision and recall with respect to T ALGORITHM CPREFMINER The task of constructing a Bayesian Network from data has two phases: (1) the construction of a directed acyclic graph G (the network structure) and (2) the computation of a set of parameters θ representing the conditional probabilities of the model. This work adopts a score-based approach for structure learning. 4.1 Score Function The main idea of the score function is to assign a real number in [ 1, 1] for a candidate structure G, aiming to estimate how good it captures the dependencies between attributes in a preference database P. In this sense, each network arc is punished or rewarded, according to the matching between each arc (X, Y ) in G and the corresponding degree of dependence of the pair (X, Y ) with respect to P The Degree of Dependence of a Pair of Attributes. The degree of dependence of a pair of attributes (X, Y ) with respect to a preference database P is a real number that estimates how preferences on values for the attribute Y are inuenced by values for the attribute X. Its computation is carried out as described in Alg. 1. In order to facilitate the description of Alg. 1 we introduce some notations as follows: (1) For each y, y dom(y ), y y we denote by T yy the subset of bituples (t, t ) P, such that t[y ] = y t [Y ] = y or t[y ] = y t [Y ] = y; (2) We dene support((y, y ),P) = T y,y P. We say that the pair (y, y ) dom (Y ) dom (Y ) is comparable if support((y, y ),P) α 1, for a given threshold α 1, 0 α 1 1; (3) For each x dom(x), we denote by S x (y,y ) the subset of T yy containing the bituples (t, t ) such that t[x] = t [X] = x; (4) We dene support((x (y, y ),P) = S x (y,y ) x dom(x) S ; (5) We say that x is a cause for (y, y ) being comparable if support(s x (y,y x (y,y ),P) ) α 2, for a given threshold α 2, 0 α Score Function Calculus. Given a structure G and a preference database P with n attributes, g((x, Y ), G) we dene score(g, P) as score(g, P) = X,Y n(n 1) (1) 180

188 Algorithm 1: The degree of dependence of a pair of attributes Input: P: a preference database; (X, Y ): a pair of attributes; two thresholds α 1 0 and α 2 0. Output: The Degree of Dependence of (X, Y ) with respect to P 1 for each pair (y, y ) dom(y ) dom(y ), y y and (y, y ) comparable do 2 for each x dom(x) where x is a cause for (y, y ) being comparable do 3 Let f 1 (S x (y,y )) = max{n, 1 N}, where N = {(t, t ) S x (y,y ) : t > t (t[y ] = y t [Y ] = y )} S x (y,y ) 4 Let f 2 (T yy ) = max {f 1 (S x (y,y )) : x dom(x)} 5 Let f 3((X, Y ), P) = max{f 2(T yy ) : (y, y ) dom(y ) dom(y ), y y, (y, y ) comparable} 6 return f 3 ((X, Y ), P) where X and Y are attributes in a relational schema R. The function g is calculated by the following set of rules: (a) If f 3 ((X, Y ), P) 0.5 and edge (X, Y ) G, then g((x, Y ), G) = f 3 ((X, Y ), P); (b) If f 3 ((X, Y ), P) 0.5 and edge (X, Y ) / G, then g((x, Y ), G) = f 3 ((X, Y ), P); (c) If f 3 ((X, Y ), P) < 0.5 and edge (X, Y ) / G, then g((x, Y ), G) = 1; (d) If f 3 ((X, Y ), P) < 0.5 and edge (X, Y ) G, then g((x, Y ), G) = 0. Example 4.1. Let us consider the preference database PrefDb 1 = {(t 1, t 2),..., (t 13, t 13)}, where t > t for every bituple (t, t ) in PrefDb 1 (table at the left side of Fig. 3), constructed over a relational schema R(A, B, C), where dom (A) = {a 1,..., a 4 }, dom (B) = {b 1,..., b 5 } and dom (C) = {c 1,..., c 6 }. In order to compute the degree of dependence of the pair (A, C) with respect to PrefDb 1, we rst identify the sets T c1,c 3 = {(t 1, t 1)}, T c2,c 4 = {(t 2, t 2)}, T c2,c 3 = {(t 3, t 3),..., (t 9, t 9)} and T c5,c 6 = {(t 10, t 10),..., (t 13, t 13)}. The thresholds we consider are α 1 = 0.1 and α 2 = 0.2. The support of T c1,c 3, T c2,c 4, T c2,c 3 and T c5,c 6 are 0.08, 0.08, 0.54 and 0.30, respectively. Therefore, T c1,c 3 and T c2,c 4 are discarded. Entering the inner loop for T c2,c 3 we have only one set S, namely S a1 (c 2,c 3 ) = T c2,c 3 {(t 3, t 3)}, since t 3 [A] t 3[A]. The support of S a1 (c 2,c 3 ) is 6/6 = 1.0 and N = 1/6. Hence, f 1 (S a1 ) = 5/6 and f 2 (T 3 ) = 5/6. In the same way, for T c5,c 6 we have S a2 (c 5,c 6 ) = T c5,c 6 with support 4/4 = 1.0 and N = 3/4. Therefore, f 1 (S a2 (c 5,c 6 )) = 3/4 and f 2 (T 4 ) = 3/4. Thus, the degree of dependence of (A, C) is f 3 ((A, C), G) = max{3/4, 5/6} = 5/6. The degree of dependence for all pairs, with respect to G, are f 3 (A, B) = 4/6, f 3 (B, A) = 0, f 3 (A, C) = 5/6, f 3 (C, A) = 0, f 3 (B, C) = 1, and f 3 (C, B) = 0. The score of the network G 1, the upper one at middle side of Fig. 3 is given by score(g 1,PrefDb 1 ) = (4/ / )/6 = Let us consider another candidate network G 2, the lower one in Fig. 3. Its score is given by score(g 2,PrefDb 1 ) = ( 4/ / )/6 = By analyzing these values, we conclude that G 1 captures more correctly the dependencies between pairs of attributes present in the preference database PrefDb 1 than does G Mining the BPN Topology The problem of nding a Bayesian Network from data is recurrent in literature and it is known to be not trivial. The search space of candidate structures grows more than exponentially on the number of attributes in the database [Jensen and Nielsen 2007]. Given such feature, we adopted a heuristic method - Genetic Algorithm (GA) [Goldberg 1989] - to perform the structure learning phase, along with the score function described above. Each genetic operator is detailed in the following Codication of Individuals. To model every possible edge in a Bayesian Network with n attributes, it is possible to set a n n square matrix m, with m ij = 1 representing the existence of an edge from a node i to a node j, and m ij = 0 otherwise. However, generating random structures and crossing them over in this fashion would potentially create loops. Since a Bayesian Network cannot have loops, this approach would require extra work to deal with this issue. To avoid this situation, we adopted an upper triangular matrix m, in which every element of the 181

189 t t Id A B C A B C 1 a 2 b 1 c 1 a 3 b 4 c 3 T (c1,c 3 ) 2 a 1 b 1 c 2 a 4 b 2 c 4 T (c2,c 4 ) 3 a 2 b 2 c 2 a 3 b 3 c 3 T (c2,c 3 ) 4 a 1 b 3 c 2 a 1 b 4 c 3 5 a 1 b 3 c 3 a 1 b 4 c 2 6 a 1 b 3 c 3 a 1 b 4 c 2 7 a 1 b 3 c 3 a 1 b 4 c 2 8 a 1 b 4 c 3 a 1 b 3 c 2 9 a 1 b 4 c 3 a 1 b 3 c 2 10 a 2 b 5 c 5 a 2 b 5 c 6 T (c5,c 6 ) 11 a 2 b 5 c 5 a 2 b 5 c 6 12 a 2 b 3 c 5 a 2 b 3 c 6 13 a 2 b 3 c 6 a 2 b 3 c 5 (a) (b) (c) Fig. 3: (a) A preference database PrefDb 1. (b) Bayesian Network Structures G 1 and G 2 for the Preference Database PrefDb 1. (c) Crossing over two parents to produce two new individuals. The attribute ordering is ABC. Child with genotype (1, 1, 1) corresponds to structure shown in the upper side of (b). main diagonal and below it are zero. For instance, suppose a database with attributes A,B and C. Considering an ordering ABC in m, it is possible for A to be a parent of B and C. Attribute B can be a parent of C, but not a parent of A, and so on. This may limit the search abilities of the GA, therefore we do γ runs of GA (in the work, γ = 20), each one with a dierent random ordering of attributes, to narrow this issue. In terms of chromosome genotype, an upper triangular matrix can be implemented as a binary array with n(n 1) 2 length. An example of this mapping can be seen at the right side of Fig. 3. The initial population contains individuals randomly generated Crossover and Mutation Operators. To form a pair of parents to be crossed, initially each one is selected through a mating selection procedure, namely, tournament with size three. It works as follows: randomly select three individuals from the current population, then pick the best of them, i.e, the one with highest score. This procedure is done twice to form each pair of parents, since we need two parents to be crossed. Then, we are ready to apply crossover operator. Since at any generation a given attribute order is xed, we can use directly two point crossover to generate two new individuals from two parents. A position from 1 to the length of indivual's size is randomly taken, mixing the genetic materials of two parents, obtaining two new individuals. The mutation operator aims at adding diversity to population, applying small changes to new individuals, usually under a low probability of occurrence (in this work, 0.05). For each individual generated by crossover, a mutation toggles one position (randomly selected) of the its binary array. When an individual is mutated, its score is recalculated; attempting to provide more selective pressure, the mutation is accepted only if it improve an individual's score, otherwise the mutation is discarded Fitness Assignment and Reinsertion Procedure. Whenever new individuals are created, their score must be evaluated. Initially, since an individual genotype is represented by a binary array, it must be mapped to its fenotype representation, a Bayesian Network structure. Then, its score is calculated using equation shown before. At the end of j-th generation, we have two populations: parents (I j ) and ospring (I j ), where I j = I j. To attempt a faster convergence, we use an elitist procedure to select individuals to survive: pick the population's size ttest individuals from I j I j to set the next population I j

190 4.3 Parameter Estimation Once we have the topology G of the BPN, calculated at our previous step, we are now seeking for estimates of the conditional probabilities tables. Since we have a set of cases in our preference database P, we can estimate such parameters using the Maximum Likelihood Principle [Jensen and Nielsen 2007], in which we calculate the maximum likelihood estimates for each conditional probability distribution of our model. The underlying intuition of this principle uses frequencies as estimates; for instance, if want N(A=a,B=b,C=c) N(A=a,B=b,C=c)+N(A=a,B=b,C=c), to estimate P (A = a > A = a B = b, C = c) we need to calculate where N(A = a, B = b, C = c) is the number of cases where (A = a, B = b, C = c) is preferred over (A = a, B = b, C = c), and so on. 5. EXPERIMENTAL RESULTS In order to devise an evaluation of the proposed methods in this paper, we designed experiments over synthetic and real data. A 10-fold cross validation protocol was considered. We established as GA parameters a population with 50 individuals, evolved for 100 generations. In the following, we describe the data features and the results for both categories of experiments. 5.1 Synthetic Data Synthetic data 2 were generated by an algorithm based on Probabilistic Logic Sampling [Jensen and Nielsen 2007], which samples cases for a preference database P given a BPN with structure G and parameters θ. We have considered groups of networks with 4, 6, 8 and 10 nodes. For each group, we randomly generated nine networks with their respective parameters. Each attribute at a given setting has a domain with ve elements. We also simulated the fact that users usually do not elicit their preferences on every bituple, so we retained only a small percent (around 10 20%) from all possible preference rules that could be generated for a given network structure. A set of experiments analyzing how a BPN infers the strict partial order described in Sec. 3 is depicted in Tab. I. We can see that the best BPN obtained by our method returned very good results, both for precision and recall measures. It is possible to note that the small dierences between recall and precision, even in cases with large datasets (e.g bituples), indicates that the method leads to very few non-comparable bituples. Apart from that fact, the method infers a correct ordering by a percent around 95% in every scenario, having very small data uctuations, an evidence of the method stability. Examples of mean runtime required to run GA for all datasets with 4 attributes over and bituples are around 1s and 1min, respectively; the time needed for all datasets with 10 attributes in such setting were around 1s and 4min. Table I: Preference order assessment, where PNet stands for the best BPN obtained by GA. Each P Group stands for 9 datasets with the number of attributes indicated in the rst column. P Group Recall(PNet,P) Precision(PNet,P) 5k 10k 20k 50k 100k 500k 5k 10k 20k 50k 100k 500k Real Data Four databases, namely, D 1 (1.000 bituples), D 2 (3.000 bituples), D 3 ( bituples) and D 4 ( bituples) were considered for this second set of experiments. Each database has seven attributes, and its bituples corresponds to a user's preferences over lms 3. This setting also allows us to compare 2 Available at 3 More details about the datasets and its contents are available at 183

191 CPrefMiner with the ProfMiner method of [de Amo et al. 2012] that adapts techniques for association rule mining to the preference mining scenario. The results are presented in Tab. II. We can notice that for the smaller datasets (D 1 and D 2 ), the two methods are very competitive, obtaining very similar results of precision and recall. However, the main gain of CPrefMiner over ProfMiner can be observed in the larger datasets, namely, the datasets D 3 and D 4, where the high precision and recall values obtained by CPrefMiner are sustained, while the results by ProfMiner are around 10% worse. Table II: Evaluation of CPrefMiner in preference order inference, compared with ProfMiner algorithm. 6. CONCLUSION AND FURTHER WORK CPrefMiner ProfMiner Dataset Recall Precision Recall Precision D D D D In this paper we proposed an approach for specifying contextual preferences using Bayesian Networks and the algorithm CPrefMiner for extracting a Bayesian Preference Network from a set of user's past choices. As future work, we plan to compare the predictive quality of our method with wellknown ranking methods as RankNet, Rank SVM, Ada Rank and RankBoost [Joachims 2002; Freund et al. 2003; Burges et al. 2005; Xu and Li 2007], knowing that existing prototypes that implement these methods have to be adapted (in order to take directly as input pairwise preferences, and not only quantitative preferences). We also intend to propose metrics to evaluate user's indecision and inconsistency and design mining techniques which take into account such parameters. REFERENCES Boutilier, C., Brafman, R. I., Domshlak, C., Hoos, H. H., and Poole, D. Cp-nets: A tool for representing and reasoning with conditional ceteris paribus preference statements. J. Artif. Intell. Res. vol. 21, pp , Burges, C. J. C., Shaked, T., Renshaw, E., Lazier, A., Deeds, M., Hamilton, N., and Hullender, G. N. Learning to rank using gradient descent. In ICML. Vol ACM, pp. 8996, Crammer, K. and Singer, Y. Pranking with ranking. In NIPS. MIT Press, pp , de Amo, S., Diallo, M., Diop, C., Giacometti, A., Li, H. D., and Soulet, A. Mining contextual preference rules for building user proles. In 14th International Conference on Data Warehousing and Knowledge Discovery (DaWaK), Viena, de Amo, S. and Pereira, F. A context-aware preference query language: Theory and implementation. Tech. rep., Universidade Federal de Uberlândia, School of Computing., Freund, Y., Iyer, R., Schapire, R. E., and Singer, Y. An ecient boosting algorithm for combining preferences. J. Mach. Learn. Res. vol. 4, pp , December, Fürnkranz, J. and Hüllermeier, E. Preference Learning. Springer, Goldberg, D. E. Genetic Algorithms in Search, Optimization & Machine Learning. Addison-Wesley, Massachusetts, Holland, S., Ester, M., and Kieÿling, W. Preference mining: A novel approach on mining user preferences for personalized applications. In PKDD. LNCS, vol Springer, pp , Hüllermeier, E., Fürnkranz, J., Cheng, W., and Brinker, K. Label ranking by learning pairwise preferences. Artif. Intell. 172 (16-17): , Jensen, F. V. and Nielsen, T. D. Bayesian Networks and Decision Graphs. Springer Publishing Company, Incorporated, Jiang, B., Pei, J., Lin, X., Cheung, D. W., and Han, J. Mining preferences from superior and inferior examples. In KDD. ACM, pp , Joachims, T. Optimizing search engines using clickthrough data. In KDD. ACM, pp , Koriche, F. and Zanuttini, B. Learning conditional preference networks. Artif. Intell. 174 (11): , Wilson, N. Extending cp-nets with stronger conditional preference statements. In AAAI. pp , Xu, J. and Li, H. AdaRank: a boosting algorithm for information retrieval. In SIGIR. ACM, pp ,

192 Early Classification: A New Heuristic to Improve the Classification Step of K-Means Joaquín Pérez 1, Carlos Eduardo Pires 2, Leandro Balby 2, Adriana Mexicano 1, Miguel Hidalgo 1 1 Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) 2 Universidade Federal de Campina Grande (UFCG) Abstract. Cluster analysis is the study of algorithms and techniques for grouping objects according to their intrinsic characteristics and similarity. A widely studied and popular clustering algorithm is K-Means, which is characterized by its ease of implementation and high computational cost. Although various performance improvements have been proposed for K-Means, the algorithm is still considered an expensive alternative for clustering large scale datasets. This work proposes a new heuristic for reducing the number of calculations in the classification step of K-Means by using statistical information about the displacement of centroids at each iteration. Our heuristic, denoted Early Classification (EC), identifies and excludes from future calculations those objects that, according to an equidistance threshold, have low likelihood of cluster change in subsequent iterations. To validate our proposal, a set of experiments is performed on synthetic and real-world datasets from the UCI Machine Learning repository. The results are promising since the execution time of K-Means was reduced up to 85.01%. Moreover, as the experiments will show, the superiority of our method is even more evident on large datasets. Resumo. A análise de agrupamento (cluster) é o estudo de algoritmos e técnicas para agrupar objetos de acordo com as características intrínsecas de valores semelhantes. Um algoritmo de agrupamento popular e amplamente estudado é K-Means, que se caracteriza por sua facilidade de implementação. No entanto, tem um alto custo computacional. Embora vários melhoramentos tenham sido propostos para k-means, o algoritmo ainda é considerado uma alternativa custosa para o agrupamento de dados em grande escala. Este artigo propõe uma nova heurística para reduzir o número de cálculos na fase de classificação do k-means, utilizando a informação estatística do deslocamento dos centróides de cada iteração. Nossa heurística, chamada de classificação antecipada, introduz os conceitos de índice de equidistância e limite de equidistância, com o objetivo de identificar e excluir dos cálculos futuros aqueles objetos que, de acordo com o limite de equidistância, têm baixa probabilidade de mudança de cluster para as iterações subsequentes. A fim de validar a nossa heurística, um conjunto de experimentos foi realizado com instâncias sintéticas e do repositório UCI Machine Learning. Os resultados dos testes são promissores porque o tempo de execução é reduzido em até 85,01%. A superioridade do nosso método é mais notável ao utilizar conjuntos de dados grandes. Categories and Subject Descriptors: Knowledge Discovery from Databases [H. m. Miscellaneous]: Databases General Terms: Algorithms and Techniques for Data Mining Keywords: Unsupervised Learning, Clustering, K-Means, Performance Improvement 1. INTRODUCTION Clustering is a widely used and flexible method of grouping objects into clusters without relying on labeled training instances [Myatt and Johnson 2009]. The objects within a cluster are supposed to have high similarity between each other and high dissimilarity to objects in other clusters. Clustering has been successfully used in a wide variety of scientific and commercial applications, including medical diagnosis, insurance underwriting, financial portfolio management, organization of search results, marketing, pattern recognition, data analysis, and image processing [Jiawei and Micheline 2006]. Several clustering algorithms have been proposed in the literature [Ankerst et al. 1999; Dempster et al. 1977; Ester et al. 1996; Kaufman and Rousseeuw 1987]. In general, these algorithms partition 185

193 the set of objects into a given number of clusters according to an optimization criterion. One of the most popular and widely studied clustering algorithms is K-Means [MacQueen 1967], also known as Lloyd s algorithm [Lloyd 1982]. The main steps of the standard K-Means are the following 1 : 1. Initialization. Consists in defining the objects to be partitioned, the number of clusters, and a centroid for each cluster. Several methods for defining the initial centroids have been developed [Agha and Ashour 2012; Zhanguo et al. 2012], and the random method is the most widely used; 2. Classification. For each object, its distance to the centroids is calculated, the closest centroid is determined, and the object is assigned to the cluster related to this centroid; 3. Centroid calculation. The centroid is recalculated for each cluster generated in the previous step; 4. Stopping criteria. Several convergence conditions have been used, such as: stopping when reaching a given number of iterations, when there is no exchange of objects among clusters, or when the difference of the centroids at two any consecutive iterations is smaller than a given threshold. If the convergence condition is not satisfied, then steps 2, 3, and 4 are repeated. Clearly, a factor that greatly affects the computational cost of K-Means is the number of iterations that the algorithm needs to carry out since, for each iteration, it calculates the distance of each object to the clusters centroids. In this work, we propose a new heuristic, henceforth called Early Classification (EC), to reduce the number of calculations in the classification step of K-Means. The main idea is to use statistical information about the displacement of centroids by calculating the average of the two largest displacements of centroids at each iteration. This heuristic introduces the concepts of equidistance index and equidistance threshold, with the purpose of identifying and excluding from future calculations those objects that, according to the equidistance threshold, have low likelihood of cluster change in subsequent iterations. In order to evaluate the proposed heuristic, a set of experiments was performed using synthetic data and the well-known Iris dataset, available at the UCI Machine Learning repository. The results show that the execution time of K-Means was reduced up to 85.01%. This work is organized as follows: Section 2 presents a motivating example. Section 3 describes the heuristic proposed to improve the classification step of K-Means. Section 4 presents the experimental results obtained by applying the heuristic. Section 5 presents the related work. Finally, Section 6 concludes the paper and points out directions for future work. 2. MOTIVATING EXAMPLE Fig. 1 illustrates a clustering example with a dataset containing 36 uniformly distributed objects in 3 clusters. The left side refers to the execution of the standard K-Means algorithm while the right side refers to the execution of K-Means including the Early Classification heuristic (improved K-Means). The objects are represented by small dots and clustered in four iterations. At each iteration, the initial position of each centroid is represented by a large white dot, while the new position of the centroid (i.e., the position in the following iteration) is represented by a large dot. The color of the objects is related to the color of their nearest centroid, i.e., the dots with horizontal lines form a cluster whose centroid is represented by the large dot with horizontal lines. The dashed lines are equidistant to two centroids and represent the borders between the clusters. The shaded area refers to the borders separating the objects with low likelihood of cluster change from the objects with high likelihood of cluster change. We assume that the objects with low likelihood of cluster change are (i) near to their centroid, (ii) not equidistant to their two nearest centroids, and (iii) not affected by the centroids displacements. In Fig. 1 the shaded area contains the objects with high likelihood of cluster change. 1 A detailed description of the K-Means algorithm can be found in [MacQueen 1967] 186

194 Figures 1a, 1b, 1c, and 1d depict the formation of clusters at each iteration. The right side of Fig. 1 shows that during the execution of K-Means it is possible to identify and discard the objects with low likelihood of cluster change. For example, in Fig. 1e the objects in the white area have a low likelihood of cluster change, this is because the centroid displacements in the first iteration are large and the number of objects that can change cluster are high. In Figures 1f and 1h we can notice that the size of the border decreases since the displacements of the centroids are minimized at each iteration. Particularly, in the case of Fig. 1f it is possible to observe that 28 objects can be discarded from the calculations in the third iteration of the improved K-Means. Fig. 1g shows that for the third iteration the number of objects can be reduced to 31 leaving only 5 for the fourth iteration. Although both algorithms have the same clustering result (see Figures 1d and 1h), the improved version allows to minimize the number of calculations in the classification step of K-Means. In the following section, we present the proposed heuristic to improve the performance of the K-Means algorithm. Fig. 1. Execution of the standard K-Means and the improved K-means using an instance with 36 uniformly distributed objects. 3. THE EARLY CLASSIFICATION HEURISTIC The Early Classification (EC) heuristic is simple and its objective is to reduce the number of objects that participate in the distant calculations between the objects to the centroids at each iteration. The reduction is performed by selecting objects that have been assigned to clusters in one iteration and are unlikely to change cluster in subsequent iterations. These objects are marked and excluded from future calculations. To perform the selection process, we introduced two concepts named equidistance index and equidistance threshold, which are described in the following subsections. The EC heuristic arose after observing the behavior of K-Means when solving instances of synthetic data with uniform distribution and different instance sizes. Some of the interesting observations were the following: a) Objects close to the centroids are unlikely to change cluster in subsequent iterations; 187

195 b) Objects equidistant from its two nearest centroids can be assigned to any of the two clusters; c) Objects quasi equidistant from its two closest centroids have a high likelihood of cluster change in subsequent iterations; d) A decisive factor for objects changing cluster is the displacement of the centroids at each iteration; e) In general, at each iteration, centroids displacements decreases; f) During the centroid displacement across different iterations, approximately half of the objects will be at a smaller distance from the new centroid position and the other half at a larger distance. The more distant objects are to the centroids new position, the more likely is for the object to change cluster in subsequent iterations; g) In one iteration, the centroids may or may not have displacement. The amount of displacement between centroids and between iterations may vary; h) Centroids can move in different directions across different iterations. 3.1 Equidistance Index The equidistance index expresses the difference of the distances of an object i to its two closest centroids µ 1 and µ 2. Let I = {i 1,..., i n } be a set of objects in m-dimensional space to be partitioned, C = {C 1,..., C k } be the set of partitions of I into k sets (2 k < n). For each iteration of the classification step, the standard K-Means algorithm calculates i p µ l 2, being. the l 2 norm, for p = 1,..., n and l = 1,..., k; where µ l is the centroid of objects in C l C, which represents the higher computational cost of the algorithm in terms of number of calculations. The equidistance index α i is defined as follows: given an object i and its two nearest centroids µ 1 and µ 2, α i = abs( i µ 1 2 i µ 2 2 ). The lower bound of α i is 0, and the upper bound is µ 1 µ 2 2. The lower bound indicates that object i is located at an equidistant position to the centroids µ 1 and µ 2, whereas the upper bound indicates that the object i is located at the same position of the centroid µ 1. In Fig. 2 the dashed line indicates the equidistant points to centroids µ 1 and µ 2 ; Fig. 2a shows that when the object i has a value of α i close to 0, the object has a high likelihood of changing cluster in subsequent iterations. On the other hand, Fig. 2b shows that when the object i has a value of α i that is close to its upper bound, there is a low likelihood that object i changes cluster in the following iterations. Fig. 2. Equidistance index; a) object i with high likelihood of cluster change, b) object i with low likelihood of cluster change. 3.2 Equidistance Threshold The equidistance threshold β j helps to identify the objects with high likelihood of cluster change. β j is a reference value defined by the sum of the two largest displacements β j = m 1 +m 2 of the centroids 188

196 µ x and µ y in the iteration j (j > 2); where m 1 = µ x,j 1 µ x,j 2 and m 2 = µ y,j 1 µ y,j 2 (see Fig. 3). The magnitude of the equidistance threshold varies between the last and the current iteration, since it is directly related to the centroid displacements. As we can see in Fig. 3, the center of the equidistance threshold β j for an object i corresponds to the mean distance of the two nearest centroids µ 1 and µ 2. We say that an object i has high likelihood of cluster change if α i β j (Fig. 3a), but has low likelihood of cluster change if α i > β j (Fig. 3b). Then, given that µ x is the nearest centroid of i, the object i can be early classified into the partition C x at iteration j if the condition α i > β j is true. Fig. 3. Threshold equidistance; a) high likelihood of cluster change, b) low likelihood of cluster change. 4. EXPERIMENTAL RESULTS This section presents the results of a set of experiments conducted to validate the proposed EC heuristic to improve the K-Means algorithm. The standard K-Means and the EC heuristic were implemented in the language C". Experiments were conducted in a computer with the following configuration: Intel(core) i5, 2.66GHz processor, and 8GB of RAM, 300GB of hard disk, and Ubuntu operating system. We used three synthetic and three real datasets. The synthetic instances were created using a uniform distribution, two dimensions, and containing 2 500, , and objects generating 100 clusters. The real datasets used were iris with 150 data and three dimensions, concrete compressive strength with data and 8 dimensions, and skin segmentation with data and 3 dimensions. The real datasets were extracted from [Merz et al. 2012]. All the experiments described were repeated 30 times using the same datasets and number of clusters. The initial centroids were generated randomly each time. The improvement of the EC in comparison to the standard K-Means algorithm was measured in terms of execution time and quality of the clustering. The quality of the clustering is expressed by the squared error function (equation 1), which in optimization terms has to be minimized. J = k l=1 i jǫc l i j µ l 2 (1) where {i 1,..., i n } is the set of objects, C = {C 1,..., C k } is the set of clusters, and µ l is the mean of elements in C l. Table I shows the algorithm behavior using large instances containing 2 500, and objects. The column Execution time shows in the sub columns K-Means+EC and K-Means, the 189

197 average time of 30 executions for the improved t i and the standard t s algorithms, expressed in units of milliseconds. The column Squared error J shows in the sub columns K-Means+EC and K-Means, the average quality of 30 executions for the improved s i and the standard s s algorithms expressed as the value of the sum of squared error. The column % T shows the percentage of the difference in the execution time between the improved algorithm and the standard one, calculated with equation 2. The column % E shows the percentage of the difference in quality for the improved and standard algorithms, calculated using the equation 3. T = (t s t i ) 100 t s (2) E = (s s s i ) 100 s s (3) Results show that the clustering quality was not affected significantly, but time is considerably reduced. It is remarkable that in the case of the dataset with objects and 100 clusters, the difference in execution time between both algorithms was 85.01%, while in quality it was only 3.3%. Table I. Experimental results for large synthetic instances Number of Execution time (ms) Squared error J % T % E objects K-Means+EC K-Means K-Means+EC K-Means The results obtained using the iris dataset are shown in Table II. According to the results, the quality of the cluster was decreased in 0.67%, and the execution time in 44.61%. It is noteworthy that the dataset with 5 clusters obtained a time reduction of 63.5% reducing only 0.5% of the quality solution. Table II. Experimental results for iris benchmark instances Number of Execution time (ms) Squared error J % T % E clusters K-Means+EC K-Means K-Means+EC K-Means Average values Regarding Table III results are based on the large real datasets generating 100 clusters; for concrete compressive strength dataset, we obtained a time reduction of 20.57% with only a quality reduction in the clustering of 1.57% and for the skin segmentation dataset we obtained a time reduction of 50.16% with only a quality reduction in the clustering of Table III. Experimental results for large real instances Dataset Number of Execution time (ms) Squared error J % T % E name objects K-Means+EC K-Means K-Means+EC K-Means Concrete Skin

198 5. RELATED WORK Several improvements were proposed to minimize the number of calculations in the classification step of the K-Means algorithm. [Lai and Liaw 2008] proposed an improvement for the Filtering Algorithm (FA), a variation of the K-Means algorithm [Kanungo et al. 2002]. The FA considers that objects are stored in a kd-tree, i.e., a binary tree that divides the objects into cubes using perpendicular hyperplanes. Each node in the tree is associated with a set of data points called a cell. At each iteration, FA determines the nearest centroids of every cell by calculating all object centroid distances, and verifies whether each member of the centroid set should be pruned for each internal node. The improvement consists in identifying the centroids that, between the current and the previous iteration, were displaced. This allows the algorithm to determine the nearest centroid of the cell and check whether each centroid should be pruned using only the centroids that were displaced, eliminating the calculations involving objects in clusters in which the centroid was not displaced. Results show that the improvement reduces the execution time up to 33.6% in comparison to the FA algorithm. [Tsai et al. 2007] proposed a heuristic which compresses and removes objects that are close to the centroid. An object is considered close to the centroid if the distance to its nearest centroid is smaller than the average distance of all the objects in the same cluster to their centroid. The heuristic is applied repeatedly until 80% of the objects are removed. Results show that this heuristic reduces execution time up to 79% especially for high dimensional data sets, and the cluster quality up to 14.08% in comparison to the standard K-Means algorithm. The improvement proposed by [Fahim et al. 2006] consists in calculating and storing the shortest distance between each object and its nearest centroid at each iteration. For each object, the previous distance to the current one is compared. If the previous distance is less than or equal to the current one, the object remains in the cluster and is discarded for subsequent calculations; otherwise, it is necessary to determine the distance between the object and all cluster centroids as well as to identify the new nearest cluster. Results show that this improvement reduces the execution time without significantly decreasing cluster quality. All the aforementioned works use information about centroids displacement to reduce the complexity of the classification step of K-Means. However, none of them take into account the likelihood of cluster change for the objects that are in the borders of the clusters causing an early but less accurate classification than the one reached by our heuristic. For example [Tsai et al. 2007] discard objects according to the current and past object centroid distances. However, the fact that the distance between an object and its centroid in the current iteration is less than the distance in the past iteration does not guarantee that the object remains close to the same centroid. On the other hand, [Tsai et al. 2007] besides using more calculations than our heuristic for discarding objects, assume that only the objects which are far from their centroids can change in the following iterations. 6. CONCLUSIONS AND FUTURE WORK One of the main drawback of K-Means is its high computational cost. This limitation restricts the processing of large and high dimensional datasets. This work shows that it is possible to improve the standard K-Means using a new heuristic in the classification step. A detailed analysis of the standard algorithm revealed that the application of the Early Classification heuristic allows the identification of objects with low likelihood of cluster change and their exclusion for subsequent iterations, thereby reducing the number of calculations at each iteration. For assessing the proposed improvement, a set of synthetic data and the iris, skin segmentation, and concrete compressive strength datasets taken from the UCI Machine Learning repository were used. The experimental results were promising. Regarding large synthetic instances, the instance with objects and 100 clusters, the time was reduced up to 85.01% with only a cluster quality reduction of 3.3%. For the iris dataset which has 150 objects generating 5 clusters, we obtained a time reduction of 63.5% with only a quality reduction 191

199 in the clustering of 0.5%. For the concrete compressive strength dataset, which has objects and 8 dimensions using k = 100, we obtained a time reduction of 20.57% with only a quality reduction in the clustering of 1.57% and for the skin segmentation dataset which has objects and three dimensions generating 100 clusters,we obtained a time reduction of 50.16% with a quality reduction in the clustering of 6.94%. Therefore, our heuristic improvement performs well with real and synthetic instances. It is noteworthy to mention that as the number of objects increases, the heuristic achieves a further reduction of the percentage of time. In addition, the proposed heuristic is compatible with other optimization techniques for improving the K-Means algorithm. In other words, it can be combined with other variants of the K-Means algorithms, thus contributing to further improve their performance. Finally, we will continue the experimentation work with the aim of exploring other values for the equidistance threshold for other clustering instances. We also plan to introduce this heuristic with other variants of the algorithm. Acknowledgments. We express our gratitude to the Universidade Federal de Campina Grande for the facilities provided in the realization of this research work. Also, we would like to thank Alejandra Moreno and Emanuel Sotelo (students of the MSc program at the National Center for Research and Technological Development, CENIDET) for their assistance in the algorithm coding and experimentation. REFERENCES Agha, M. E. and Ashour, W. M. Efficient and Fast Initialization Algorithm for K-means Clustering. International Journal of Intelligent Systems and Applications 1 (1): 21 31, Ankerst, M., M., B. M., Kriegel, H.-P., and Sander, J. Optics: Ordering points to identify the clustering structure. In ACM SIGMOD International Conference on Management of Data. pp , Dempster, A., Laird, N., and Rubin, D. Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society 39 (1): 1 38, Ester, M., Kriegel, H.-P., Sander, J., and Xu, X. A density-based algorithm for discovering clusters in large spatial databases with noise. In Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. pp , Fahim, A. M., Salem, A. M., Torkey, F. A., and Ramadan, M. A. An efficient enhanced k-means clustering algorithm. J Zhejiang Univ SCIENCE A 7 (10): , Jiawei, H. and Micheline, K. Data Mining Concepts and Techniques. Elsevier Inc., Kanungo, T., Mount, D. M., Netanyahu, N. S., Piatko, C. D., Silverman, R., and Wu, A. Y. An efficient k- means clustering algorithm: Analysis and implementation. IEEE Transactions on Pattern Analysis and Machine Intelligence vol. 24, pp , Kaufman, L. and Rousseeuw, P. Clustering by means of Medoids. In D. Y. (Ed.), Statistical Data Analysis Based on the L 1 Norm and Related Methods. Delft University of Technology, North-Holland, pp , Lai, J. Z. C. and Liaw, Y. Improvement of the k-means clustering filtering algorithm. Pattern Recognition 41 (12): , Lloyd, S. P. Least Squares Quantization in PCM. IEEE Trans. Information Theory 28 (1): , MacQueen, J. Some Methods for Classification and Analysis of Multivariate Observations. In Proceedings of the Fifth Berkeley Symposium on Mathematics, Statistics and Probability. pp , Merz, C., Murphy, P., and Aha, D. UCI Repository of Machine Learning Databases. Department of Information and Computer Science, University of California. mlearn/mlrepository.html, Myatt, G. N. and Johnson, W. P. Making Sense of Data II: A practical Guide to data visualization, advanced data mining methods, and aplications. JohnWiley & Sons, Tsai, C., Yang, C., and Chiang, M. A Time Efficient Pattern Reduction Algorithm for k-means Based Clustering. In Conference on Systems, Man and Cybernetics. pp , Zhanguo, X., Shiyu, C., and Wentao, Z. An Improved Semi-supervised Clustering algorithm based on Initial Center Points. Journal of Convergence Information Technology 7 (5): ,

200 Is Learning to Rank Worth it? A Statistical Analysis of Learning to Rank Methods Guilherme de Castro Mendes Gomes, Vitor Campos de Oliveira, Jussara Marques de Almeida, Marcos André Gonçalves Universidade Federal de Minas Gerais, Brazil Abstract. The Learning to Rank (L2R) research field has experienced a fast paced growth over the last few years, with a wide variety of benchmark datasets and baselines available for experimentation. We here investigate the main assumption behind this field, which is that, the use of sophisticated L2R algorithms and models, produce significant gains over more traditional and simple information retrieval approaches. Our experimental results surprisingly indicate that many L2R algorithms, when put up against the best individual features of each dataset, may not produce statistically significant differences, even if the absolute gains may seem large. We also find that most of the reported baselines are statistically tied, with no clear winner. Categories and Subject Descriptors: H. [Information Storage and Retrieval] Keywords: Information Retrieval, Learning to Rank, Statistical Analysis 1. INTRODUCTION Over the last few years, Learning to Rank (L2R) has become a very popular research topic, based on the general and well-accepted assumption that it produces a much better performance than traditional ranking methods, such as BM25 [1] or Language Based Models [2], in information retrieval tasks. Indeed, several new L2R methods [3] and benchmark datasets, including large ones such as the LETOR repository [7], have been developed and made available to the community, in recent years. However, the development and efficient employment of such methods are not free of costs. Being based on supervised learning, they require labeled datasets in order to properly learn the ranking functions. Moreover, these datasets should be large and heterogeneous enough to be capable of representing the domains upon which they will be applied. Due to such strict requirements, constructing such datasets is not a trivial task. In fact, it is very costly. After building the required data, an usually very computationally demanding learning phase has to be applied to learn the ranking functions, which may also require an expensive parameter tuning for optimal performance. Finally, the use of such functions, in production mode in real search engines for example, is usually a two-stage process, in which traditional methods are first applied and, in a subsequent step, the more expensive learned function is used to re-rank the top results generated by the first step [4]. This implies in an additional overhead to produce query answers. Given all these issues, as well as the continuous advance and interest in the area, we here take a step back and reevaluate the main assumption upon which Learning to Rank built its foundations, which is that, the use of sophisticated L2R algorithms and models, produce significant gains over more traditional and simple information retrieval approaches. We also investigate, among the many L2R algorithms that have been proposed in the literature, if there is one or more that deliver superior effectiveness in most situations (e.g., different collections, different tasks, etc). In order to do so, we analyze the results for 12 baselines over 6 large datasets of the LETOR 3.0 benchmark [7], as well as 5 baselines over 2 even larger datasets of the LETOR 4.0 benchmark [7], when put up against simple isolated feature rankers, using statistically significant tests. All the datasets and baseline results are available at the benchmark s web page [7]. Our 193

201 goal is to verify whether the effectiveness of these methods is better than produced with the best feature of each dataset when used in isolation, as given by some measure of ranking quality (e.g., Mean Average Precision). We also contrast the performance of each method against each other using the same statistical methodology and datasets. To our knowledge no previous work has performed such detailed comparison with a rigorous statistical analysis. Our experimental results show that: (1) in most datasets, the best single feature, ranked by Mean Average Precision (MAP), produces results that are statistically tied to most of the reported baselines; (2) the absolute differences in effectiveness provided by the L2R algorithms, when compared to single feature rankers, may be large, but, in most cases, not statistically significant; and (3) almost all the baselines have very similar performances, making it unlikely that there is an overall best L2R method. Therefore a clear advantage of L2R solutions may not be confirmed in all situations, mainly considering the costs involved. The remainder of this paper is organized as follows: Section 2 describes work related to this paper; Section 3 details our experiments and analyses; Section 4 reports our results; Section 5 concludes the paper and describes our future work. 2. RELATED WORK Despite the great interest in Learning to Rank in recent years, most of the related work focuses on proposing new algorithms for ranking or novel applications of existing ones. After the publication of the LETOR dataset [8], very few studies were made concerning the effects of the public datasets on the task of learning to rank. In [9], the authors observed that the ways in which documents were selected for each topic of the LETOR benchmark presented on [8] show that the selection has (for each of the three corpora) a particular bias or skewness. This observation has some unexpected effects that may considerably influence any learning-torank exercise conducted on these datasets. However, most of these problems were explained and corrected by the benchmark s authors in [10]. Finally, in [11], a comparison of 7 learning to rank algorithms is made on the LETOR 3.0 benchmark. Each algorithm is compared with each other in terms of Mean Average Precision (MAP) and Normalized Discounted Cumulative Gain (NDCG). In comparison with this previous study, we here compare 12 learning to rank algorithms against not only each other but also against using the best single feature in various datasets of the LETOR 3.0 and 4.0 benchmarks. Moreover we use statistical tests to support our analyses and conclusions. However, none of these previous efforts effectively evaluated the real gains of learning algorithms over traditional methods like BM25 or Language Models expressed as features of the dataset. Moreover, to our knowledge, our work is the first to do a statistical comparison of learning to rank algorithms and evaluation of their differences against the best single features. 3. EXPERIMENTAL SETUP For our experimentations, we employed 8 datasets, from the LETOR benchmark [7]. Namely, we used the HP2003, HP2004, NP2003, NP2004, TD2003, and TD2004 datasets, from LETOR 3.0, based on the Gov web page collection. The first four collections are more related to navigational tasks in which a single unique page is the sole best answer for a query while the latter two are related to more traditional informational queries. We also use the larger MQ2007, MQ2008 datasets from LETOR 4.0, based on the Gov2 collection, which are also related to informational tasks. All of the datasets are divided into 5 folds, with the goal of performing 5-fold cross-validation, that is, 3 folds are used for training, one (validation) for parameter tuning, and the remaining one for testing. Below we start by describing in more detail each group of datasets in Section 2.1 and then further describe our experimental methodology in Section

202 3.1 Collections LETOR 3.0 Each of the many datasets encapsulated by this benchmark is composed of feature vectors for query-document pairs, along with a corresponding relevance judgment indicating whether the document is relevant or not for the query. There are 64 features per pair, which correspond to various pieces of information commonly used by traditional approaches (such as PageRank) or the result of directly applying simpler methods, such as TF*IDF, BM25 and language models, for estimating the document s relevance to the query. Considering all 6 datasets contained within this version of the benchmark, we find 575 queries and over labeled documents. Also available on the benchmark s web page [7], we find 12 different baselines, namely: AdaRank-MAP, AdaRank-NDCG, FRank, ListNet, RankBoost, RankSVM, RankSVM-Struct, RankSVM-Primal, Regression, Regression+L2reg, SmoothRank and SVMMAP. Aside from FRank and RankBoost, all of the algorithms use linear ranking functions LETOR 4.0 Similar to the previous benchmark, LETOR 4.0 uses the same structure for its datasets, but with 46 features, instead of 64, per vector. The largest TREC datasets available, from the Million Query Tracks of 2007 and 2008, named as MQ2007 and MQ2008, are based on the Gov2 webpage collection. Both datasets sum over queries and roughly documents. Unlike in LETOR 3.0, we here find only 5 reported baseline algorithms: AdaRank-MAP, AdaRank-NDCG, ListNet, RankBoost and RankSVM-Struct. Any other information pertaining these baselines and datasets, as well as the datasets themselves, are available at the LETOR website [7]. 3.2 Choice of the Best Features For comparison purposes, we performed the following feature selection procedure. For each fold, the values of each feature of each query-document pairs of the test set are extracted and used as a ranking score for its respective pair, thus obtaining a number of ranked lists equal to the number of features used to describe each document. Afterwards, we use the evaluation tool provided by the benchmark to calculate traditional information retrieval metrics, such as Mean Average Precision (MAP), of the ranked lists previously produced. We then select the feature responsible for the best ranked list, in terms of generated MAP, to use as our isolated ranking feature. We here compare this MAP result with those obtained by the L2R baselines in the same test sets, using statistical significance tests with a 95% confidence level aiming at quantifying the differences but also verifying whether they are statistically significant. Specifically, to support our analysis and conclusions, we performed a pair-wise comparison of all methods, applying paired difference tests [5] for each pair to verify whether they are statistically different or not. 195

203 4. RESULTS We start by showing the best results obtained with a single feature for each analyzed dataset and comparing these results with the analyzed L2R algorithms (Section 3.1). Next we perform an overall comparison among all methods (section 3.2). 4.1 Feature Ranking Results As a result of our feature selection procedure, a single unique feature was selected as the best one in each dataset. Some features were also chosen for more than one dataset. In LETOR 3.0, feature 46 (Hyperlink base feature propagation: weighted in-link) was chosen as the best single feature for HP2003, HP2004 and TD2003; for NP2004 and TD2004, feature 42 (Sitemap based score propagation); and for NP2003, feature 9 (IDF of URL). In LETOR 4.0, we found feature 39 (LMIR.DIR of whole document) to be the best ranking feature in both MQ datasets. The MAP scores generated by the evaluation tools for each single feature are displayed in Table 1. In particular, it is interesting to notice the lower MAP values in the TD collections, which are known to be difficult informational datasets. Table I. Average MAP scores for the best ranked features of the different datasets Dataset Score Best feature HP Hyperlink base feature propagation: weighted in-link (46) HP Hyperlink base feature propagation: weighted in-link (46) NP IDF of the URL (9) NP Sitemap based score propagation (42) TD Hyperlink base feature propagation: weighted in-link (46) TD Sitemap based score propagation (42) MQ LMIR.DIR of whole document (39) MQ LMIR.DIR of whole document (39) Table 2 shows the relative MAP difference between the best ranking feature of each dataset and the L2R baselines reported for LETOR 3.0. Next to the dataset s name, in parenthesis, we find the best feature s identifier. When the baseline s performance is statistically better, a (-) sign is present next to the value; when it is statistically equal, (=); and when the method is statistically inferior to the single feature, a (+) is present. In other words, positive values indicate that the isolated feature ranking process has a MAP score higher than the corresponding baseline, negative values indicate a lower score. By looking at the table, we see that, aside from the NP datasets, less than half of the L2R algorithms are statistically superior to the isolated feature rankings in each dataset and that the absolute d ifferences in performance may not be statistically superior to best feature in isolation. In fact, despite some large (significant) gains, there are a lot of statistical ties and even losses. For instance, in the HP2004 dataset, a difference (on average) of 14% of the RankBoost algorithm over the best single feature is indeed not significant; with 95% confidence both methods are tied. This is very surprising as we expected that all or at least most of the algorithms would be able to effectively combine the features to deliver a better 196

204 performance. However, the variability of the results is so large that relying only on average MAP to determine the best method is not enough. In contrast, a 9% gain of the Frank method over the best single feature in the same dataset is significant. For the NP2003 and NP2004 datasets, we have that most L2R algorithms (92% and 67%) of the considered methods, respectively, are indeed statistically superior to the best single feature. However, it is interesting to note that, even in these datasets some (apparently) large relative differences (e.g., 16%) are in fact not statistically significant with 95% confidence. It is also worth mentioning the large and significant losses (up to 41.5%) of the regression method over the best feature in the two HP datasets. This may me due to the high correlations among several features in this dataset, which may be detrimental to this particular method, which relies on linear regression [5]. Table II. Relative MAP comparison between feature ranking and L2R algorithms, LETOR 3.0 Algorithm HP2003 (46) AdaRan k-map 8.80% (+) AdaRa nkndcg 6.00% (=) FRank 0.89% (=) List Net 8.19% (=) Rank Boost 7.31% (=) Rank SVM 5.08% (+) RankS VM- Primal 8.01% (+) RankS VM- Struct 7.79% (+) Regress ion % (-) Regressio n+l2reg 6.07% (=) Smooth Rank 7.88% (=) SVM MAP 5.25% (=) HP2004 (46) 14.50% (+) 10.73% (=) 9.46% (+) 10.54% (+) 14.00% (=) 7.53% (=) 8.04% (=) 9.03% (=) % (-) 2.05% (=) 13.97% (+) % (=) NP2003 (9) 14.73% (+) 13.39% (+) 12.89% (+) 16.11% (+) 17.85% (+) 16.86% (+) 15.97% (+) 14.79% (+) -2.48% (=) 15.24% (+) 16.87% (+) % (+) NP2004 (42) 16.36% (=) 17.01% (+) 13.41% (=) 22.58% (+) 5.79% (=) 21.03% (+) % (+) % (+) -1.16% (=) 24.23% (+) 23.04% (+) % (+) TD2003 (42) 13.57% (=) 16.66% (=) 2.847% (=) 28.32% (+) % (=) 24.90% (=) 25.61% (=) 27.26% (+) 18.08% (=) 18.92% (+) 26.80% (+) % (+) TD2004 (46) 15.76% (=) 4.75% (=) 22.81% (+) 17.38% (+) 29.46% (+) 17.59% (=) 10.56% (=) 16.03% (+) 11.28% (=) 7.42% (=) 20.72% (+) % (=) Analogous to Table 2, Table 3 presents results relative to LETOR 4.0. Similarly to the results found in LETOR 3.0, we here see that, not only the relative differences may not be statistically significant (with 95% confidence), such as in MQ2008, but also that, in some cases, the gains may be only marginal (e.g., 2% for the RankSVM-Struct in the MQ2007 dataset. In fact, it is very surprising that in MQ2008, no method is able to surpass the best feature in isolation. These results lead to interesting conclusions pertaining the effective gains associated with L2R and its aggregated costs. While the performed process of choosing the best features isn t a free process, it is much cheaper than the complex machine learning algorithms. In fact, we may not need to investigate all possible features,. A smaller set of candidates could be used based on results reported in the literature. Table IIIII. Relative MAP comparison between feature ranking and L2R algorithms, LETOR 4.0 Algorithms AdaRank-MAP AdaRank-NDCG ListNet RankBoost RankSVM-Struct MQ2007 (39) 4.74% (=) 5.58% (+) 6.39% (+) 6.54% (+) 2.39% (+) MQ2008 (39) 3.20% (=) 3.16% (=) 2.10% (=) 1.85% (=) 0.34% (=) 197

205 4.2 Baseline Comparisons We now turn to our second goal, which is to compare the supervised rankers in the used collections. Tables 4 and 5 show, for each dataset in the LETOR 3.0 and 4.0, respectively, the average MAP results obtained for each baseline, jointly with the corresponding 95% confidence intervals (computed over the results of the 5 folds). Best results for each dataset, along with statistical ties according to paired tests 1 with 95% confidence are shown in bold. Algorithm AdaRan k-map HP ± HP ± NP ± NP ± TD ± TD ± Table IV. Baselines average MAP and confidence intervals across the different datasets, LETOR 3.0 AdaRa FRank List Rank Rank RankS RankS Regress Regressio nkndcg Net Boost SVM VM- VM- ion n+l2reg Primal Struct ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± Smooth Rank ± ± ± ± ± ± SVM MAP ± ± ± ± ± ± In the HP2003 dataset, there is a statistical tie for the best method among 8 out of 12 of the baselines, i.e., the differences among them are not statistically significant with 95% confidence. The worst method is Regression, which is inferior to all baselines and even to the best feature in isolation (difference to the best performer, AdaRankMap, of 35%). Notice however that the second worst method (FRank) is only at most 8% worse than the best performer. Thus, in general, except for Regression, the differences among all considered baselines are, if significant, relatively small. For the HP2004 dataset we have statistically tied results all but 1 baselines. The only baseline that is significantly inferior to the others is (once again) Regression. We here also observe some large differences that are not statistically significant, such as the gap between AdaRank-Map and Regression+L2reg (12.7%). As discussed before, these results clearly reflect the large variability of the methods across the various folds of the datasets. Like in HP2004, all methods but Regression are statistically tied in the NP2003 dataset, making it once again impossible to single out a best ranking method. In the NP2004, we have a similar situation with 10 out of 12 methods statistically tied. Surprisingly, RankBoost which had a good performance in the previous datasets and is one of two best rankers in TD2004 (see below) was tied with Regression as the worst methods. In the TD2003 dataset, all methods are tied, with no clear winner or loser. An interesting result found here is the very large relative differences (on average) of ListNet over FRank (26.2%), although they are 1 The tests were performed by computing 95% confidence intervals over the differences between the results obtained for each pair of baselines [5]. 198

206 still statistically tied with 95% confidence. For the last dataset in LETOR 3.0, TD2004, we have RankBoost and FRank as the best rankers out of all the reported baselines, beating the other 9 baselines. In fact, this dataset is the only one with few (two) methods outperforming most of other algorithms, with some large significant differences in some cases (up to 26%). In contrast, in the other datasets, almost the entirety of the available baselines tied against each other, with 95% confidence. Table V. Baselines average MAP and confidence intervals across the different datasets, LETOR 4.0 Algorithms AdaRank-MAP AdaRank-NDCG ListNet RankBoost RankSVM-Struct MQ2007 RankBoost MQ2008 AdaRank-MAP ± ± ± ± ± ± ± ± ± ± Turning our attention to the baselines and dataset in the LETOR 4.0 benchmark (Table V), we find that there are four statistically tied methods with 95% confidence in the MQ2007 dataset, with AdaRank-MAP being the sole loser. A similar scenario is found in the MQ2008 dataset, but this time ListNet is the worst performer and the only one not statistically tied with the others. In general, we find that in the vast majority of the analyzed datasets, most of the baselines are statistically tied, with no clear winner, raising a question of whether it is cost-effective to invest on developing new learning-to-rank algorithms, as opposed to combining multiple methods into a single hybrid solution or investing on reducing the costs (particularly in cases where the L2R methods outperform the single best feature). 5. CONCLUSIONS AND FUTURE WORK After almost a decade of research and development of L2R algorithms, we have here raised two controversial but important questions that should be further discussed by the Information Retrieval community. First, given all the costs involved in L2R (e.g., labeling, training, tuning) and the overhead introduced by applying such techniques, for instance, for re-ranking search top results at query time, the cost-benefit ratio of applying such techniques should be further investigated. Secondly, given the similar performance of a dozen different methods across many different datasets, researching and developing new L2R algorithms may not be worth the effort; indeed in few cases there are undisputed best rankers, but it may not be the case in most datasets. Rather than providing definitive answers, our goal here is to instigate discussion and re-evaluation of many L2R algorithms after having applied solid statistical methods in our own investigation of the subject. As future work, we intend to expand this study to consider even larger datasets, such as the ones provided by Microsoft Learning to Rank and Yahoo! Labs, as well as new L2R algorithms. 6. ACKNOWLEDGMENTS This work is supported by INWeb (MCT/CNPq grant /2008-6) and by the author grants from CNPq, CAPES and FAPEMIG. 199

207 7. REFERENCES [1] K. S. Jones, S. Walker, and S. E. Robertson, A Probabilistic Model of Information Retrieval: Development and Comparative Experiments. IP&M, 36(6): , [2] J. M. Ponte and W. B. Croft. A Language Modeling Approach to Information Retrieval. In SIGIR. pp , [3] Tie-Yan Liu: Learning to Rank for Information Retrieval. Springer 2011: I-XVII, [4] B. Cambazoglu, H. Zaragoza, O. Chapelle, J. Chen, C. Liao, Z. Zheng, and J. Degenhardt. Early exit optimizations for additive machine learned ranking systems. In WSDM. pp , [5] R. Jain. The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling, Wiley-Interscience, New York, NY, [6] C. Zhai and J. Lafferty A study of smoothing methods for language models applied to information retrieval. ACM Trans. Inf. Syst, 22(2): , [7] [8] Liu, T.Y., Xu, J., Qin, T., Xiong, W.Y., Li, H.: LETOR: benchmark dataset for research on learning to rank for information retrieval. In: SIGIR 2007 Workshop on Learning to Rank for Information Retrieval (LR4IR 2007) (2007) [9] Minka, T., Robertson, S.:Selection bias in the LETOR datasets.in : SIGIR 2008 Workshop on Learning to Rank for Information Retrieval (LR4IR 2008) (2008) [10] Qin, T., Liu, T.Y., Xu, J., Li, H.: How to make LETOR more useful and reliable. In: SIGIR 2008 Workshop on Learning to Rank for Information Retrieval (LR4IR 2008) (2008) [11] Tie-Yan Liu Learning to Rank for Information Retrieval. Found. Trends Inf. Retr. 3, 3 (March 2009), DOI= /

208 Uma Metodologia para Descoberta de Relacionamentos Frequentes Entre Dados Espaciais de Desmatamento Usando Mineração de Grafos Adeline M. Maciel 1 *, Marcelino Pereira S. Silva 1 *, Maria Isabel S. Escada 2, Fernando S. França 1 * 1 Universidade do Estado do Rio Grande do Norte (UERN) 2 Instituto Nacional de Pesquisas Espaciais (INPE) Abstract. One of the great research challenges in Computer Science is the computational modeling of articial, natural and social complex systems, as well the man-nature interactions. Due to the growing size and complexity of databases, the search for new techniques of data mining has been strongly emphasized. Many of these repositories have structural features, which data are composed of segments and relationships. Thus, graph mining has provided new resources to the search of strategic information in databases with structural characteristics, allowing the discovery of patterns. This work proposes a methodology for nding relationships among deforestation patterns, using graphs to represent deforestation spatial objects and relationships among them applying graph mining, which will search frequent substructures, allowing the identication of relationship patterns among deforestation objects. Resumo. Um dos grandes desaos da pesquisa em computação é a modelagem computacional de sistemas complexos articiais, naturais e socioculturais e da interação homem-natureza. Devido ao crescente aumento de volume e complexidade das bases de dados, a pesquisa de novas técnicas de mineração de dados tem sido enfatizada. Muitos destes repositórios possuem características estruturais, nas quais seus dados são compostos por segmentos e relacionamentos. Assim, a mineração de grafos tem fornecido novos recursos para a busca de informações estratégicas em bases de dados com características estruturais, permitindo a descoberta de padrões. Este trabalho propõe uma metodologia para descoberta de relacionamentos entre padrões de desmatamento, utilizando grafos para representar objetos espaciais de desmatamento e relações entre eles aplicando mineração de grafos, que realizará a busca de subestruturas frequentes, permitindo a identicação de padrões de relacionamento entre os objetos de desmatamento. Categories and Subject Descriptors: H. Information Systems [ H.m Miscellaneous]: Databases General Terms: Experimentation, Verication Keywords: Data Mining, Graph Mining, Frequent Substructures, Remote Sensing, Deforestation Patterns 1. INTRODUÇÃO Com o passar do tempo a quantidade de dados armazenados em servidores cresce de forma acelerada. Fatores como barateamento do hardware e massicação da internet colaboraram bastante para essa expansão [Witten and Frank 2005]. Incremento que não se restringe apenas ao setor corporativo, como também ao âmbito governamental e cientíco. Com o crescimento dos repositórios de dados, a diculdade em analisar e extrair informações estratégicas aumentam. Muitas aplicações cientícas e comerciais requerem a descoberta de padrões mais complexos que os padrões convencionais encontrados, por exemplo, em repositórios relacionais, o que requer um esforço extra para serem descobertos. Tais padrões sosticados podem ser encontrados em estruturas mais complexas como, por exemplo, em grafos, cuja extração de padrões denomina-se mineração de grafos. Dentre os padrões que podemos encontrar em grafos destacam-se as subestruturas frequentes [Han and Kamber 2006]. * Os autores agradecem à CAPES e ao CNPq pelo apoio e nanciamento desta pesquisa. 201

209 Atualmente, existe uma grande quantidade e diversidade de dados provenientes dos satélites que, periodicamente, capturam imagens da superfície terrestre. Esses dados são armazenados nos institutos acadêmicos de pesquisa, órgãos não governamentais, órgãos públicos ou mesmo privados. As organizações utilizam informações especícas dos dados processados como fonte para diferentes pesquisas, por exemplo, diagnóstico de desmatamento ou queimadas em áreas de proteção ambiental. Devido ao fato dessas imagens possuírem características únicas, cada vez mais ganham importância nas atividades ligadas à pesquisa e inovação. Com isso, cresce o volume de dados dos grandes repositórios de imagens, como exemplo, o do Instituto Nacional de Pesquisas Espaciais (INPE), que possui mais de imagens distribuídas e utilizadas para os mais diferentes ns [INPE 2012]. Dentre alguns trabalhos que utilizam grafos como um artifício para descoberta de informações, podemos citar o trabalho de [Sirmacek and Unsalan 2009], em que relações binárias do vértice do grafo, tais como distância espacial e valores de intensidade, são utilizadas para extrair e detectar áreas urbanas em imagens Ikonos. O trabalho realizado por [Grote et al. 2009] utiliza grafos para representar estradas de uma região, em que subgrafos são utilizados para representar estradas e suas respectivas estradas vizinhas, permitindo vários ramos no subgrafo. O foco do trabalho é justamente a avaliação destes ramos para descobrir ligações fracas, utilizando para isso programação linear na avaliação dos subgrafos. Diante deste contexto, este artigo apresenta uma metodologia para descoberta de padrões de relacionamentos em dados espaciais representados por meio de grafos. Esses grafos, após a devida modelagem, são convertidos para um formato de arquivo especíco que servirá de parâmetro para o algoritmo de mineração de grafos, o qual realizará a descoberta das substruturas frequentes. Para isso, foram utilizados dados espaciais de desmatamento, técnicas de mineração de dados e de mineração de grafos, aplicados a um estudo de caso. Grafos serão empregados para representar relações temporais entre objetos espaciais de desmatamento e, por conseguinte, extrair subestruturas frequentes nestes dados, utilizando a mineração de grafos. Além disso, essa metodologia pode ser estendida para qualquer aplicação em que padrões estruturais possam ser aplicados, especialmente se houver demanda pela análise de relacionamento entre esses padrões. Este artigo é uma versão estendida e revisada dos resultados anteriores [Maciel et al. 2012; Maciel et al. 2012], numa perspectiva da metodologia aplicada ao banco de dados, para extração das informações, e do protótipo desenvolvido, com componentes requeridos pela metodologia. 2. SENSORIAMENTO REMOTO Sensoriamento Remoto pode ser entendido como um conjunto de atividades, que permitem a obtenção de informações dos objetos que compõem a superfície terrestre sem que haja a necessidade de contato físico com esses objetos. Dentre essas atividades estão envolvidas a detecção, aquisição e análise (extração de informação e interpretação) da energia eletromagnética que é emitida ou reetida pelos objetos terrestres e que são armazenadas por sensores remotos [Moreira 2007]. Os dados de sensoriamento remoto possuem características e atributos importantes os quais, quando analisados apropriadamente, revelam informações, antes implícitas, que podem ser relevantes. Diante do volume geográco dos dados, da heterogeneidade, da diferença entre os tipos de dados e da sua complexidade, faz-se necessário desenvolver ferramentas que sejam capazes de identicar e mapear padrões [Miller and Han 2009]. Dentre essas ferramentas podemos citar o sistema GeoDMA ( Geographical Data Mining Analyst), que realiza análise em dados de sensoriamento remoto baseando-se em técnicas de mineração de dados [Korting et al. 2008]. 3. MINERAÇÃO DE GRAFOS A utilização de grafos tornou-se cada vez mais importantes na modelagem de estruturas sosticadas e suas interações, uma vez que diversos problemas relevantes podem ser modelados segundo sua teoria 202

210 e sua estrutura pode assumir numerosos signicados, apresentando um amplo poder de representação devido à exibilidade proporcionada por este tipo de estrutura [Last et al. 2004]. Diante do volume e complexidade das bases de dados, a pesquisa de novas técnicas de mineração de dados tem sido fortemente motivada. Grande parte destas bases possuem características estruturais, cujos dados representam segmentos e relacionamentos entre estes. Deste modo, a mineração de grafos tem contemplado diferentes tarefas sobre bases de dados estruturais. Entre os diversos tipos de padrões que podem ser encontrados em grafos, subestruturas frequentes (ou subgrafos frequentes) são os mais comuns [Han and Kamber 2006]. 3.1 Mineração de Subestruturas Frequentes A mineração de subestruturas frequentes tem por objetivo a busca por subgrafos semelhantes num conjunto de grafos. Um subgrafo frequente pode ser denido como: dado um conjunto de vértices de um grafo g por V(g) e o conjunto de arestas por E(g), um grafo g será subgrafo de outro grafo g' se existir isomorsmo de g em g'. Dado um grafo rotulado, D = G 1, G 2,G 3,...,G n, o suporte(g) (ou frequência(g)) pode ser denido como a porcentagem ou quantidade de grafos em D onde g é subgrafo [Washio and Motoda 2003]. Logo, um subgrafo frequente pode ser denido como um grafo no qual o seu suporte não pode ser menor que o suporte mínimo estabelecido. Dessa forma, as subestruturas descobertas são utilizadas para comprimir os dados originais, permitindo abstrair estruturas detalhadas e representar conceitos estruturais nesses dados. Nesta pesquisa foi utilizado o algoritmo Frequent SubGraphs (FSG), que emprega um método de geração de candidatos baseado em aresta, o qual aumenta o tamanho da subestrutura em uma aresta a cada iteração do algoritmo [Kuramochi and Karypis 2001]. Dois padrões de tamanho k são combinados apenas se eles compartilharem o mesmo subgrafo contendo k-1 arestas, que recebe o nome de núcleo. Para o FSG, o tamanho do grafo faz referência ao número de arestas que ele contém. O novo candidato a subgrafo frequente gerado inclui o núcleo e mais duas arestas dos padrões combinados [Han and Kamber 2006]. Por exemplo, a Figura 1 apresenta esse processo de geração de candidatas à subgrafo frequente no algoritmo FSG. Depois da geração dos candidatas, o suporte mínimo é conferido e o processo se repete até que não haja mais subgrafos frequentes a serem encontrados. Fig. 1. Geração de candidatas. Fonte: Adaptado de [Kuramochi and Karypis 2001] 4. MINERAÇÃO DE GRAFOS EM DADOS ESPACIAIS DE DESMATAMENTO A pesquisa por padrões de desmatamento torna-se, cada vez mais, importante para o planejamento e monitoramento do meio ambiente. Mediante o estudo de padrões é possível utilizar os meios apropriados para intervir na recuperação do ambiente, além de descobrir os atores que ocasionam o desmatamento. Assim, representar problemas reais por intermédio de grafos constitui-se em estratégia atraente, uma vez que estes grafos possam ser minerados, e assim revelar padrões novos e importantes. A modelagem de dados de sensoriamento remoto por meio de grafos pode revelar ligações relevantes entre objetos, pois a mineração de grafos permite uma interpretação dos relacionamentos entre os objetos presentes no ambiente ou a conrmação da trajetória de ocupação realizada no decorrer dos anos. Neste trabalho grafos serão utilizados para representar relações entre padrões de desmatamento e, consequentemente, extrair padrões destes relacionamentos, utilizando para isto a mineração de grafos. 203

211 Os principais padrões que desejamos encontrar são concernentes à relação temporal dos diferentes padrões de desmatamento associados a outros padrões de ocupação, considerando toda área de estudo. Para a realização deste trabalho, foi escolhida uma área estudada por [Escada 2003; Silva et al. 2008], na qual foi empregada a metodologia desenvolvida, computacionalmente implementada e testada. 5. PROTÓTIPO FINDFRUG Devido ao número de recursos utilizados no desenvolvimento, na fase de teste e validação da metodologia, foi implementado um protótipo denominado FindFRUG (do inglês Finder of Frequent Relationships Using Graphs. A ferramenta foi desenvolvida em Java, utilizando na sua implementação as bibliotecas JUNG, para visualização de grafos [Bernstein 2011] e JDBC, para consultas e manipulação de informações no banco de dados PostgreSQL. Neste protótipo foram abordados componentes de software que possuíam funções requeridas pela metodologia: conversor de arquivos, que retorna o formato padrão de entrada requerido pela implementação do FSG; leitor e manipulador de banco de dados, o qual permitiu acesso e consulta aos dados exportados para o SGBD PostgreSQL e um visualizador especíco que realiza a leitura e modelagem dos arquivos de saída do FSG para um formato gráco. A Figura 2 sintetiza o uxo de dados entre as ferramentas que foram utilizadas em conjunto com o protótipo desenvolvido. Fig. 2. Fluxo de dados entre as ferramentas utilizadas 6. METODOLOGIA PROPOSTA A metodologia proposta consiste em uma sequência de procedimentos, que foram desenvolvidos, com o intuito de conduzirem a uma solução passível de interpretação acerca dos resultados obtidos. A Figura 3 esquematiza os procedimentos realizados neste trabalho. Em síntese as etapas foram: aquisição dos dados espaciais de desmatamento, mineração de dados com o plugin do GeoDMA, geração de uxos, e por m a mineração de grafos, para descoberta das subestruturas frequentes. Alguns destes processos foram realizados com o subsídio do protótipo desenvolvido. 6.1 Estudo de Caso: PA Vale do Anari - RO A área de estudo analisada é o município de Vale do Anari, localizado no estado de Rondônia. Possui uma área de km 2 e uma população superior a 9 mil habitantes [IBGE 2011]. A partir de 1982, foi estabelecido na região um Projeto de Assentamento (PA) planejado pelo Instituto Nacional 204

212 Fig. 3. Procedimentos realizados de Colonização e Reforma Agrária (INCRA), com lotes de tamanho médio de 50 ha. O processo de ocupação do PA Vale do Anari pode ser descrito como uma ocupação sucessiva de lotes de terra mediante a acessibilidade e melhoria da infraestrutura, por exemplo, melhoria de estradas ou do acesso aos núcleos urbanos, em que existe uma maior concentração de objetos de desmatamento [Escada 2003]. O município possui dois projetos de assentamento, mas nesta análise abordaremos apenas o PA Vale do Anari, predominante no município. 6.2 Procedimentos desenvolvidos Para esta pesquisa foram utilizados polígonos de desmatamento do município de Vale do Anari, entre os anos de 1985 a 2000, catalogados trienalmente, cenas (231/66 e 231/67), disponibilizados em arquivos no formato Shape/ArcView. Ferramentas especícas foram utilizadas para cada etapa da metodologia proposta. Para o tratamento dos dados de desmatamento foram utilizados as ferramentas Geographical Data Mining Analyst (GeoDMA) [Korting et al. 2008], Terraview 4.1.0, Plugin Flow e PostgreSQL e o protótipo FindFRUG, para conversão, acesso ao banco de dados e visualização das subestruturas descobertas. Inicialmente, um banco de dados foi criado utilizando o Sistema de Informação Geográca (SIG) TerraView, com os polígonos de desmatamento de 1985 a Nessa etapa foi realizado a seleção, em que foi escolhido apenas os polígonos que correspondessem a classe desmatamento, uma vez que os dados continham outras classes não utilizadas nesta abordagem, como, por exemplo, oresta; o préprocessamento e transformação dos dados selecionados. Em seguida, foi realizado a classicação dos padrões de desmatamento, utilizando a técnica de aprendizagem supervisionada contida no software GeoDMA, com base na tipologia de padrões de desmatamento desenvolvida por [Silva et al. 2008], que são irregular, linear e geométrico. Por meio de modelos visuais, esta tipologia de padrões de desmatamento pode ser visualizada. A Figura 4 mostra o mapa temático obtido após a classicação realizado no município, seguida pelos quadros, na parte superior, do gráco com uma comparação entre os padrões de desmatamento arranjados por períodos e, na parte inferior, um modelo visual da tipologia de padrões de desmatamento adotada para esta região. Após realizada a classicação, o mapa, com os objetos de padrões de desmatamento, foi dividido em regiões homogêneas de acordo com um tamanho especíco de célula, por meio de uma funcionalidade inserida no TerraView. Esse tamanho de célula foi escolhido empiricamente, após observações realizadas mediante a utilização de diferentes medidas de tamanho de célula. Cada região (célula) criada, continha uma área de 36 km 2, a melhor medida obtida após os testes realizados. Depois dessa divisão, foi criado um plano de informação para cada região e exportado para o SGBD PostgreSQL. A Figura 5 mostra as regiões selecionadas em destaque e um exemplo de uxo entre os objetos de uma célula. Na etapa seguinte, usando o plugin Fluxo, conexões foram geradas e processadas entre todos os 205

213 Fig. 4. a) Mapa temático após classicação realizada pelo GeoDMA; b) Gráco da área desmatada no município de Vale do Anari e c) Tipologia de padrões de desmatamento (irregular, linear e geométrico), Fonte: [Silva et al, 2008]. Fig. 5. Divisão do município em células e exemplo de uxo entre os objetos de uma região objetos de padrões de desmatamento presente em cada região (célula) delimitada. Essas ligações foram geradas entre cada par de polígonos de acordo com a distância dos seus centroides. Com isso, um novo atributo foi criado para os dados, contendo a distância entre cada objeto de padrão de desmatamento. Depois desta tarefa, foi criado e gerado um arquivo grafo pelo protótipo FindFRUG. O arquivo gerado é composto por duas partes: primeira, os nós são rotulados com um identicador único, um tipo de padrão de desmatamento (irregular, linear ou geométrico) e o ano de ocorrência; segunda, as arestas são rotuladas com um par de identicadores e o valor da distância entre eles. Posteriormente, este arquivo de grafo foi usado como entrada no minerador de grafos, por meio da implementação do algoritmo FSG [Karypis 2003], que realizou a busca por subestruturas frequentes [Kuramochi and Karypis 2001]. Finalmente, por intermédio do protótipo FindFRUG, as subestruturas frequentes descobertas foram 206

214 mapeadas e modeladas, usando o framework JUNG (Java Universal Network/Graph), para um ambiente que possibilita a visualização das subestruturas descobertas na forma de grafos. 7. RESULTADOS Esta seção apresenta os resultados alcançados com a aplicação da metodologia proposta para o Projeto de Assentamento Vale do Anari. Dentre alguns dos resultados obtidos, foi observado que a aplicação de diferentes distâncias revelou relacionamentos interessantes entre os padrões de desmatamento, que incluem: relações de vizinhança e aspectos relacionados a ocupação temporal de algumas regiões (células); e subestruturas frequentes que revelaram uma grande presença de padrões pertencentes a um mesmo período. Como um dos resultados analisados, foi realizada a mineração de grafos com o algoritmo FSG, utilizando um suporte mínimo de 30%, aplicada a uma distância de 250 m entre cada padrão de desmatamento, para o PA Vale do Anari que continha 36 células. Como resultado, seis subestruturas frequentes foram retornadas, envolvendo apenas relações entre os padrões de desmatamento do tipo irregular. Por meio destes resultados, verico-se uma forte presença de subestruturas frequentes abrangendo os períodos de 94_97 e 97_00. No decorrer da década de 90 ocorreu uma maior ocupação de terra na região, processo que foi reetido pela quantidade de subestruturas frequentes descobertas, conforme a Figura 6. Além disso, foram descobertas várias subestruturas frequentes que apresentaram relações ocupação de vizinhança temporal na região de estudo, por exemplo, os padrões de desmatamento do tipo irregular ocorridos no ano de 88_91 conectados a padrões de 91_94, assim como irregulares de 91_94 ligados a irregulares de 94_97. A Figure 7 mostra um padrão de relacionamento encontrado, modelado como grafo, com 22 subestruturas frequentes descobertas presentes entre as 36 analisadas. Fig. 6. Distância de 250 m para padrões de desmatamento do tipo irregular Fig. 7. Padrão irregular (91_94 conectado a 94_97) - distância de 250 m, subestrutura frequente presente em 14 das 36 regiões investigadas. 8. CONCLUSÃO A metodologia proposta é relevante para a análise e diagnóstico de relações temporais entre padrões de desmatamento. A aplicação desta proposta em dados reais de sensoriamento remoto foi realizada utilizando uma área para estudo de caso. O conhecimento da co-autora Isabel Escada subsidiou o entendimento das subestruturas frequentes descobertas devido ao seu conhecimento e pesquisas 207

215 realizadas no município e regiões adjacentes. O protótipo desenvolvido, com base na metodologia proposta, foi essencial para a realização do estudo de caso. A metodologia para descoberta de relacionamentos frequentes permitiu a análise das relações entre os padrões de desmatamento e a distância de ocorrência de cada objeto contribuiu para agregar conhecimento aos dados de sensoriamento remoto, provendo novo método de descoberta de relacionamentos relevantes que envolvam a modelagem ambiental, além de subsidiar o desenvolvimento de novas técnicas na busca por padrões de desmatamento. Os resultados obtidos puderam conrmar fenômenos recorrentes da região, dentre eles podemos citar: a grande presença de subestruturas frequentes no período 1994_1997, ano em que ocorreu uma elevada taxa de desmatamento na Amazônia Legal, reetindo também no município de Vale do Anari; a relação temporal entre os padrões com pequenas distâncias, mostrando que as ocupações dos lotes é realizada de maneira contínua. Como trabalhos futuros espera-se realizar a aplicação desta metodologia abordando um maior período de tempo, vericando assim o comportamento das relações com dados mais recentes, além da elaboração de um plugin para o TerraView visando customizar a busca de padrões frequentes dentro da própria ferramenta. REFERENCES Bernstein, G. Jung 2.0 tutorial, Disponível em: Tutorial.pdf. Acesso em: 13 jul Escada, M. I. S. Evolução de Padrões da Terra na Região Centro-Norte de Rondônia. Ph.D. thesis, (Doutorado em Sensoriamento Remoto) - Instituto Nacional de Pesquisas Espaciais - INPE, Grote, A., Heipke, C., Rottensteiner, F., and Meyer, H. Road extraction in suburban areas by region-based road subgraph extraction and evaluation. In Urban Remote Sensing Event, 2009 Joint. pp. 16, Han, J. and Kamber, M. Data Mining: Concepts and Techniques. Morgan Kaufmann, San Francisco, IBGE. Instituto Brasileiro de Geograa e Estatística - IBGE, censo 2010, Disponível em: Acesso em: 17 jul INPE. Instituto Nacional de Pesquisas Espaciais: Divisão de Geração de Imagens (DGI), Disponível em: Acesso em: 20 jul Karypis, G. PAFI Software Package for Finding Frequent Patterns in Diverse Datasets., Disponível em: Acesso em: 04 abr Korting, T., Fonseca, L., Escada, M., Silva, F., and Silva, M. P. S. GeoDMA - A novel system for spatial data mining. In IEEE Intl. Conference on Data Mining Workshops (ICDMW' 08). pp , Kuramochi, M. and Karypis, G. Frequent subgraph discovery. In IEEE International Conference on Data Mining (ICMD' 01). Vol. 0. IEEE Computer Society, Los Alamitos, CA, USA, pp , Last, M., Kandel, A., and Bunke, H. Data Mining in Time Series Databases. Series in Machine Perception Articial Intelligence, vol. 57. World Scientic, Singapore, Maciel, A. M., França, F. S., and Silva, M. P. S. Discovery of frequent correlations among deforestation objects using graph mining. In Geographic Object-Based Image Analysis (GEOBIA' 12). Rio de Janeiro, RJ, Brasil, pp , Disponível em: Maciel, A. M., Silva, M. P. S., and Escada, M. I. S. Mining frequent substructures from deforestation objects. In IEEE International Geoscience and Remote Sensing Symposium (IGARSS' 12). Munich, Germany, pp , Miller, H. and Han, J. Geographic Data Mining and Knowledge Discovery. Chapman & Hall/CRC data mining and knowledge discovery series. CRC Press, Moreira, M. A. Fundamentos do Sensoriamento Remoto e Metodologias de Aplicação. Universidade Federal de Viçosa, São José dos Campos, Silva, M. P. S., Camara, G., Escada, M. I. S., and Souza, R. C. M. Remote-sensing image mining: detecting agents of land-use change in tropical forest areas. In International Journal of Remote Sensing. Vol. 29. Taylor & Francis, Inc., Bristol, PA, USA, pp , Sirmacek, B. and Unsalan, C. Urban-area and building detection using sift keypoints and graph theory. In Geoscience and Remote Sensing, IEEE Transactions on. pp , Washio, T. and Motoda, H. State of the art of graph-based data mining. In SIGKDD Explor. Newsl. Vol. 5. ACM, New York, NY, USA, pp. 5968, Witten, I. H. and Frank, E. Data Mining: Practical Machines Learning Tools and Techniques. Morgan Kaufmann, San Francisco,

216 Seleção de Atributos Utilizando Algoritmos Genéticos para Detecção do Vandalismo na Wikipedia Maria I. M. Sumbana, Allan J. C. Silva, Marcos A. Gonçalves, Jussara Almeida, Gisele Pappa Universidade Federal de Minas Gerais Abstract. This paper presents a genetic algorithm based approach for reducing the set of attributes for detecting vandalism in Wikipedia. Our experimental results show that the proposed approach is able to reduce the set of attribute in 83% with no significant impact in detection effectiveness. Moreover, our approach is able to select a number of attributes that leads to better results if compared to a state-of-the-art technique, the Information Gain. Resumo. Este artigo apresenta uma abordagem baseada em algoritmos genéticos para reduzir o número de atributos utilizados para a detecção automática de vandalismo na Wikipedia. Nossos resultados experimentais mostram que a abordagem proposta é capaz de reduzir o número de atributos em até 83% sem alteração significativa na efetividade da detecção. Além disso, mostramos que a técnica proposta é capaz de selecionar um número reduzido de atributos que produzem uma efetividade na classificação superior ao conjunto selecionado por uma técnica de seleção de atributos considerada estado-da-arte, o Information Gain. Categories and Subject Descriptors: H.Information Systems [H.3.4.Systems and Software]: Information Networks General Terms: Algoritmos, Experimentação Keywords: Detecção de vandalismo, classificação, algoritmos genéticos, seleção de atributos, Information Gain 1. INTRODUÇÃO A proliferação de conteúdo gerado pelo usuário, em especial os artigos escritos colaborativamente em coleções de documentos, tornou-se um fenômeno crescente na Web 2.0. O mais popular desses serviços, Wikia 1, cresceu de cem para vários milhares de coleções em poucos anos, contendo atualmente mais de quatro milhões de páginas de conteúdo rico [Wang and McKeown 2010]. Outro exemplo de como as comunidades podem produzir conteúdo colaborativo em larga escala é a Wikipedia 2. Na Wikipedia, qualquer um pode editar, modificar ou revisar artigos, dado que os direitos de cópia e de modificação sejam preservados [Belani 2010]. Esta enciclopédia on-line levou apenas dois anos para chegar a mais de dezessete milhões de artigos [Giles 2005], escritos em dezenas de línguas diferentes. No entanto, nesses tipos de serviços colaborativos, atividades maliciosas como o vandalismo são um dos maiores problemas. Em outras palavras, algumas pessoas tentam explorar os serviços para seu próprio benefício (por exemplo, incluindo publicidade) ou com a intenção de degradar a integridade e a confiabilidade do sistema (por exemplo, incluindo pornografia ou informações incorretas). Na Wikipedia, em particular, o vandalismo é definido como qualquer adição, remoção ou mudança de conteúdo em uma tentativa deliberada de comprometer a integridade do sistema [Wikipedia 2012b]. Exemplos típicos de atos de vandalismo são a adição de obscenidades, informações claramente irrelevantes e humor negro" em um artigo (e.g., hey look at me, I just vandalized a page LOL) [Wikipedia

217 2012a], remoção ilegítima de páginas, e inserção de conteúdo sem sentido em uma página (por exemplo, gggfebdgs&%#*88 ) [Chin et al. 2010]. Porém a detecção de vandalismo é freqüentemente feita de forma manual por voluntários [Wang and McKeown 2010], o que requer muito esforço por parte destes devido ao tamanho atual e à taxa de crescimento da Wikipedia. Além disso, os atos de vandalismo podem ser sutis, o que torna a detecção manual muito difícil. Assim sendo, existe uma forte demanda por abordagens mais eficazes para detecção do vandalismo, principalmente de maneira automática. Métodos de classificação supervisionados têm sido utilizados para este fim demonstrando muito sucesso [Potthast et al. 2010]. Porém, nesses trabalhos a quantidade e relevância dos atributos utilizados no processo de classificação são raramente estudados com profundidade. Em certos casos, alguns atributos podem ser mesmos detrimentais ao processo de aprendizagem, atrapalhando a eficácia da classificação, ou ainda podem produzir um alto custo de aprendizado. Neste contexto, vê-se a importância de se reduzir o espaço de atributos. A seleção de atributos é um processo estudado há muitos anos nas áreas de estatística e reconhecimento de padrões [Jain et al. 2000] e posteriormente na área de aprendizado de máquina [Pappa et al. 2002]. A seleção de atributos tem como objetivo descobrir um subconjunto de atributos mais relevantes para uma tarefa alvo, considerando os atributos iniciais, sendo importante por tornar o processo de aprendizagem mais eficiente, entre outras coisas. Segundo [Jain et al. 2000], a redução da dimensionalidade do espaço de atributos pode diminuir o custo de processamento, aumentar a acurácia da classificação, além de diminuir a chance de super-especialização do modelo gerado, que não generaliza para novos conjuntos de dados. Nesse artigo, buscamos maximizar a eficácia e a eficiência do processo de detecção de vandalismo na Wikipedia. Para ta, baseamo-nos no método de detecção proposto em [Sumbana et al. 2012] focando aqui em reduzir o numero de atributos usados, mantendo resultados em termos de MacroF1 comparáveis aos obtidos quando todos os atributos originalmente definidos na coleção de da dados adotada (discutida na Seção 4.1) são utilizados. Para reduzir o conjunto de atributos utilizamos algoritmo genéticos (AG), uma técnica que tem se mostrado eficaz na seleção de atributos [Pappa et al. 2002], para selecionar o subconjunto que produz melhores resultados. Em nossos experimentos, conseguimos reduções de até 83% no número de atributos enquanto mantendo a efetividade da detecção em níveis similares aos obtidos com o uso de todos os atributos (ou mesmo superando-os). Além disso, mostramos que a técnica proposta é capaz de selecionar um número reduzido de atributos que produzem uma efetividade na classificação superior ao conjunto selecionado por uma técnica do estado-da-arte de seleção de atributos, o Information Gain [Moore 2012], com o mesmo número de atributos. O restante desse artigo está organizado da seguinte forma. A Seção 2 apresenta trabalhos relacionados à detecção de vandalismo enquanto a Seção 3 define formalmente o problema de detecção de vandalismo além de descrever o classificador aqui adotado assim como a técnica de algoritmos genéticos. A modelagem do problema utilizando algoritmos genéticos e a configuração experimental são apresentadas nas Seções 4 e 5. A Seção 6 descreve os resultados dos experimentos. Por fim, a Seção 7 lista nossas conclusões e dá diretivas de trabalhos futuros. 2. TRABALHOS RELACIONADOS Em um dos primeiros estudos em que se abordou o problema de detecção automática de vandalismo, os autores definiram o problema como uma tarefa de classificação binária [Potthast et al. 2008]. Analisando o conteúdo e as categorias das revisões, eles identificaram alguns tipos de vandalismo (conforme reconhecido por seres humanos) e definiram os atributos necessários para identificá-los. Utilizando regressão logística eles foram capazes de classificar novos exemplos de vandalismo com certa acurácia. Mais recentemente, os autores de [Chin et al. 2010] definiram e identificaram sete tipos de vandalismo com base em uma taxonomia das revisões da Wikipedia construída a partir de 210

218 ações primárias, tais como inserir, remover e modificar. Eles aplicaram Statistical Language Models sobre a diferença entre duas revisões consecutivas para construir entradas para o classificador, que por sua vez foi utilizado para detectar os casos de vandalismo. Devido à complexidade do método, os autores trabalharam com revisões de apenas dois artigos da Wikipedia, Microsoft e Lincoln. A CLEF 3 (Conference and Labs of the Evaluation Forum) é uma conferencia anual que tem por foco, entre outros aspectos, a detecção do plagiarismo e a detecção do vandalismo na Wikipedia. Nesta conferência é disponibilizado um conjunto de dados constituído por revisões de artigos da Wikipedia, para uma competição de métodos de detecção de vandalismo nesse sistema. A maioria dos métodos vencedores da competição CLEF usaram variações da árvore de decisão nos seus detectores tais como random forests, alternating decision trees, naive Bayes decision trees, and C4.5 decision trees [Potthast et al. 2010]. Por exemplo, o detector vencedor usou random forests de 1000 árvores com 5 atributos aleatórios cada. Todos eles usaram o conjunto de dados PAN-WVC Uncovering Plagiarism, Authorship, and Social Software Misuse - Task 2: Wikipedia Vandalism Detection - dividido praticamente ao meio, sendo uma metade para treinamento e outra para teste. Os promotores da competição CLEF-2010 [Potthast et al. 2010] também combinaram as previsões dos oito melhores resultados usando random forests como um meta-classificador, o que levou a ganhos consideráveis de eficiência de detecção. Em [Javanmardi et al. 2011], os autores descreveram um modelo para a detecção de vandalismo em UGC (user generated content). Utilizando como base a coleção PAN-WVC-10, eles extraíram vários novos atributos e os organizaram em quatro grupos, a saber: atributos do usuário, atributos textuais, atributos de metadados e atributos de modelo de linguagem. Em seguida, eles aplicaram a técnica de regularização Lasso para reduzir o número de atributos dentro dos grupos, mantendo apenas os mais discriminativos, e utilizaram random forests para aprender o modelo de classificação. O processo de aprendizagem não depende apenas do conjunto de dados selecionado, como também nos atributos que representam este conjunto de dados. Porém, segundo [Kwasnicka and Orski 2004] encontrar um subconjunto ótimo de atributos é uma tarefa bastante complexa, mas que pode ser bem aproximada por algoritmos genéticos. Em [Kwasnicka and Orski 2004], por exemplo, os autores descreveram a utilização de algoritmos genéticos como uma ferramenta de seleção de atributos, utilizando o C4.5 para avaliar os atributos selecionados e redes neurais como classificador. Para os seus experimentos, eles utilizaram 4 coleções de dados. Já em [Pappa et al. 2002], os autores focam foca no uso de algoritmos genéticos para seleção de atributos em tarefas com múltiplos objetivos. Em [Sumbana et al. 2012], nós desenvolvemos um método de deteccao de vandalismo para a Wikipedia utilizado o LAC Lazy Associative Classifier [Veloso et al. 2006], algoritmo de classificação descrito na Seção 3.1. Naquele trabalho, foram utilizados 67 atributos, obtidos da coleção PAN-WVC-10, utilizada naquele trabalho. Diferentemente de trabalhos anteriores, inclusive o nosso [Sumbana et al. 2012], o nosso foco no presente trabalho é na redução usando algoritmos genéticos, na quantidade de atributos utilizados, contribuindo assim para a melhor eficiência da detecção sem afetar significativamente a sua eficácia. 3. DETECÇÃO DE VANDALISMO Assim como em trabalho anteriores [Potthast et al. 2008], nós também abordamos a tarefa de detecção de vandalismo na Wikipedia como um problema de classificação binária. Dada uma revisão e, introduzida por um usuário em um dado artigo, nosso objetivo é detectar automaticamente, se a revisão e é um ato de vandalismo ou não, no último caso referido como regular. Mais formalmente, 3 4 A CLEF 2011 focou na tarefa de detecção de vandalismo em coleções multilinguais

219 podemos definir a tarefa de detecção de vandalismo na Wikipedia da seguinte maneira. Sejam D a coleção de treinamento e T a coleção de teste. D consiste num conjunto de registros com formato < e, l >, onde e é uma revisão e l o rótulo que identifica a sua classe, isto é, regular (l=0) ou vandalismo (l=1). Cada revisão e é representada como uma lista de m valores dos atributos {f 1, f 2,..., f m }. Os atributos considerados neste trabalho são descritos na Seção 5. A coleção de treinamento D é usada para aprender um modelo de detecção de vandalismo M, que relaciona os atributos de uma revisão às classes correspondentes. A coleção de teste T consiste em registros com revisões não rotuladas < e,? >. O modelo de detecção de vandalismo M é usado para prever a classe de cada revisão no conjunto T. 3.1 Classificador Associativo Nós adotamos o LAC (Lazy Associative Classifier) [Veloso et al. 2006] para classificar cada edição do conjunto de teste T como vandalismo ou regular, devido aos ótimos resultados produzidos por ele na tarefa de detecção de vandalismo [Sumbana et al. 2012]. O LAC explora o fato de que geralmente há fortes associações entre os valores dos atributos e as classes. Tais associações são utilizadas para prever a classe das edições não rotulados (por exemplo adições em T ) e são expressas através de regras da forma X k, indicando a associação entre o conjunto dos valores de atributos X e a classe k. LAC aprende um modelo M composto por regras de associação extraídas do conjunto de treinamento D. O processo de aprendizado ocorre em duas fases: a extração de regras sob-demanda e a previsão da classe. A fim de assegurar a eficácia ao extrair regras de D, LAC realiza uma extração sob demanda, isto é, o processo de extração de regras é realizado apenas no momento da classificação. O LAC projeta o espaço de busca das regras de acordo com as informações contidas nas revisões em T para permitir que a extração de regras seja eficiente. Ele projeta/filtra o conjunto de treinamento de acordo com os valores dos atributos da revisão e T, e extrai regras para o conjunto de treinamento projetado, denominado D e. Isso garante que somente regras que carregam informações sobre a revisão e são extraídas do conjunto de treinamento, limitando drasticamente o número possível de regras. A confiança de uma regra, denotado por θ(x k) mede a força da associação entre X e k e é estimada pela probabilidade condicional de k ser a classe da revisão e dado que X e. O LAC prevê a classe de uma edição e T combinando as confidências de todas as regras úteis X k. Mais especificamente, seja R e k o conjunto de regras que predizem a classe da revisão e como k, extraídas de D. R e k é interpretado como uma enquete, em que cada regra X k Re k é um voto dado pelos atributos em X para a classe k. O peso do voto X k depende da força da associação entre X e k, dada pela confiança θ(x k). O processo de estimativa da probabilidade de k ser a classe de e começa pela soma dos votos ponderados para k. Em seguida, calcula-se a confiança média das regras em R e k, s(k, e), obtida pela razão entre a soma total dos votos e o número total de votos. A probabilidade estimada de k ser a classe de uma revisão e, denotada por p(k e), é estimada através da normalização s(k,e) da função s(k, e) pela soma das pontuações obtidas por e para todas classes p(k e) = n classe de e é definida como aquela que tiver maior valor de p(k e). 3.2 Algoritmos Genéticos j=1 s(j,e) A Algoritmos genéticos foram inspirados na teoria da evolução de Darwin, baseada em seleção natural. Segundo essa teoria, em uma população de cromossomos que evoluem a cada geração, apenas os indivíduos mais aptos ao ambiente sobrevivem. Algoritmos genéticos são especialmente atrativos por não exigirem que se saiba como encontrar uma solução ótima para um problema, mas sim como reconhecê-la como ótima [Pappa et al. 2002]. Para a resolução de um dado problema utilizando algoritmos genéticos, alguns passos devem ser seguidos. Em primeiro lugar deve-se gerar, na maioria dos casos de forma aleatória uma população inicial, onde cada indivíduo representa um cromossomo composto por uma seqüência de bits que repre- 212

220 sentam uma possível solução para o problema em mãos. Em seguida cada indivíduo é avaliado através da função de aptidão (fitness) que determina quão bom um indivíduo candidato é para resolução do problema. A função de fitness pode ser calculada de diversos modos, dependendo do problema a ser solucionado. Por exemplo, em uma população natural, a função de fitness é determinada pela capacidade do indivíduo de sobreviver a predadores e outros obstáculos naturais, e depois se reproduzir [Pappa et al. 2002]. Através da função de fitness, os melhores indivíduos são selecionados para a próxima geração, isto é quanto maior for o valor da função da fitness, maior é a chance de um indivíduo sobreviver e se reproduzir. É também necessário determinar quais os operadores genéticos (cruzamento, mutação) serão aplicados sobre as soluções candidatas. A operação de cruzamento (ou crossover) consiste em gerar um indivíduo a partir do cruzamento entre os dois melhores indivíduos da população anterior. Neste caso, é definido um ponto de partição de modo que o indivíduo gerado é formado pelos bits anteriores a este ponto do primeiro indivíduo e pelos bits posteriores a este ponto do segundo. A mutação, consiste em inverter de forma aleatória os bits de um indivíduo da população. Esta operação garante a diversidade da população e, além disso, assegura que o indivíduo sempre cobrirá uma parte suficientemente grande do espaço de busca [Pappa et al. 2002]. O processo continua até que uma condição de parada seja verificada, por exemplo um determinado número de gerações seja atingido. 4. SELEÇÃO DE ATRIBUTOS BASEADA EM ALGORITMOS GENÉTICOS A nossa abordagem utiliza algoritmos genéticos para efetuar a seleção de atributos. Em nossa modelagem, o indivíduo foi definido como uma cadeia de k bits, onde k corresponde ao número de atributos do conjunto de dados (k = 67 no nosso caso). Um bit com valor 1 em uma determinada posição i do indivíduo indica a presença do i-ésimo atributo na instância de treino e D, e o valor 0 indica a ausência desse atributo em e. Foram aplicados os operadores de crossover, mutação em um ponto e reprodução nas sucessivas gerações. Para cada indivíduo criado é gerado um novo conjunto de treinamento com os respectivos atributos ligados (bit com valor 1), que é submetido ao classificador. Por um processo de validação cruzada de 5 folds, descrito na Seção 5, são calculados os valores de F1 as classes não-vandalismo (F 1 c0 ) e vandalismo (F 1 c1 ), assim como de macro F1 (MF1). A fitness de um indivíduo é avaliada, onde c é o número dos atributos utilizados pelo classificador. A intuição dessa fórmula é que um bom classificador é aquele que consegue boa eficácia na detecção de vandalismo (instâncias da classe c 1 ) conforme explicitado na primeira parcela da fórmula (F 1 c1 ) e, ao mesmo tempo, consegue ser eficaz em detectar instâncias de não-vandalismo (elementos da classe c0), entretanto com um número reduzido de atributos, conforme expresso na segunda parcela da soma ( MF 1 c ). como: F itness = F 1 c1 + MF 1 c A partir dos dados de treino e dos indivíduos gerados são derivadas novas bases de treinamento que são submetidas ao processo de treinamento e teste do classificador. As métricas obtidas são utilizadas para cálculo das fitness dos indivíduos, conforme descrito anteriormente. Pelo fato do LAC ser um classificador sob demanda, que incorre num custo adicional de geração de um modelo específico para cada instância de teste, além de bastante sensível à questão do desbalanceamento dos dados [Sumbana et al. 2012], utilizamos o J48, uma implementação da técnica baseada em árvores de decisão C4.5, disponível no Weka 6, para selecionar o subconjunto dos atributos que produz melhor resultado nessa fase. O J48 apresentou ótimo desempenho nesta fase superando outras alternativas testadas tais como knn e SVM

221 5. CONFIGURAÇÃO EXPERIMENTAL Para a tarefa de detecção do vandalismo na Wikipedia, utilizamos o conjunto de dados do PAN-WVC- 10 que compreende edições em Inglês de artigos diferentes, das quais edições são de vandalismo [Potthast 2010], conforme detecção manual. Cada edição representa a diferença entre duas revisões consecutivas de um artigo, e a respectiva classe indica se a edição é vandalismo ou não. Como pode-se notar, este conjunto de dados é muito desbalanceado, com 92,7% dos casos pertencentes à classe de não vandalismo e apenas 7,3% sendo casos de vandalismo (a classe positiva). Conforme procedimento descrito em [Javanmardi et al. 2011], foram derivados 67 atributos para cada instância, que podem ser agrupados em quatro categorias: Atributos do usuário: 12 atributos, obtidos através da mineração do histórico das revisões até uma data específica ( ). Atributos de texto: 30 atributos, calculados a partir do conteúdo do texto inserido ou apagado dos artigos. Atributos de Metadados: 22 atributos, extraídos dos comentários associados às revisões. Atributos do Modelo de Linguagem:: 3 atributos, derivados através do cálculo da distância de Kullback-Leibler (KLD) entre: a aplicação de dois modelos de linguagem unigrama entre a revisão anterior e a atual; o conteúdo inserido e a revisão anterior; e o conteúdo apagado e a revisão anterior. A lista completa de atributos está em Os experimentos realizados tiveram como objetivo analisar os resultados do classificador LAC na detecção do vandalismo na Wikipedia, utilizando os atributos selecionados pelo Algoritmo Genético (AG), comparando-os com os resultados do LAC utilizando os atributos selecionados pela técnica estado-da-arte Information Gain (IG). Todos os experimentos de classificação foram realizados utilizando validação cruzada com 5-folds. Ou seja, a amostra original foi particionada em 5 sub-amostras, das quais quatro foram utilizadas como dados de treinamento, e uma foi usada para testar o classificador. O processo foi então repetido 5 vezes, com cada uma das 5 sub-amostras sendo usada como teste, produzindo assim 5 resultados. Os resultados apresentados na Seção 6 são portanto médias dessas 5 execuções com respectivos intervalos de confiança de 95%. 6. RESULTADOS EXPERIMENTAIS Nesta seção apresentamos os resultados mais relevantes da classificação com todos os atributos e com os atributos selecionados pelo algoritmo genético (AG), comparando estes resultados com os obtidos pelos atributos selecionados pelo IG. Os resultados são relatados em termos de precisão, revocação e Macro-F 1. Devido à sensibilidade do classificador escolhido ao desbalanceamento do dados [Sumbana et al. 2012], os resultados apresentados neste trabalho foram realizados aplicando uma técnica de balanceamento (undersampling) sobre os dados de treinamento, descrita a seguir. 6.1 Balanceamento dos Dados de Treinamento A técnica de undersampling consiste em reduzir aleatoriamente O número de instâncias da classe maior no conjunto de treinamento, visando equilibrar, ainda que aproximadamente, as duas classes. Assim, no presente contexto, nós reduzimos o número de instâncias da classe 0, a classe negativa que representa edições regulares. A redução é feita definindo uma proporção alvo p do número de instâncias da classe 0 sobre o número de instâncias da classe 1. Sejam C 0 e C 1 os números de instâncias das classes 0 e 1 respectivamente que existem no conjunto de treinamento original. Dado uma proporção alvo p, eliminamos, de forma aleatória, instâncias negativas do conjunto de treinamento até restar apenas p C 1 instâncias dessa classe. 214

222 Fig. 1. Resultados da Macro-F 1 para o LAC com 67 atributos e com 11 atributos selecionados pelo AG e pelo IG em função da proporção p de exemplos negativos sobre os exemplos positivos no conjunto de treinamento Table I. Resultados do LAC, AG E IG com proporções p de 1.5:1, 1.9:1 e 2.8:1 respectivamente Algoritmo de Número de Regulares Vandalismo Macro Classificação Atributos Precisão Revocação Precisão Revocação F 1 LAC-Total 67(54) 97.9± ± ± ± ± LAC-AG ± ± ± ± ± LAC-IG ±0, ±0, ±0, ± ±0,015 Executamos vários experimentos, para determinar a melhor proporção de balanceamento tomando uma porção do conjunto de treinamento (20%), como conjunto de validação e variando os valores de p entre 0.5 e 4. A Figura 1 mostra os valores de Macro-F 1 obtidos em função de p, para o LAC utilizando todos os atributos (LAC-Total) e utilizando os atributos obtidos com cada método de seleção de atributos. Note que as 3 abordagens atingiram o valor máximo de Macro-F1 em proporções diferentes. Utilizando todos os atributos, o LAC produziu os melhores resultados para p entre 1.5 e 1.6. Utilizando os atributos selecionados pelo método proposto (baseado em Algoritmos Genéticos) o melhor resultado foi obtido para p entre 1.9 e 2.1. Já utilizando o Information Gain para seleção de atributos, o melhor valor de p está entre 2.8 e Resultados de Detecção A Tabela I mostra os resultados obtidos com o LAC utilizando todos os atributos e os atributos selecionados pelos métodos AG e IG, aplicando a técnica de undersampling com valores de p escolhidos dentre os que levaram aos melhores resultados para cada método. Ou seja, utilizou p igual a 1.5, 1.9 e 3.3 para o LAC com todos os atributos, com os atributos selecionados pelo AG e por IG, respectivamente. A seleção de atributos usando AG foi feita a partir da geração de uma população inicial onde cada indivíduo possui exatamente 54 atributos, obtidos após o processo da discretização, necessário ao uso do LAC 7. Nas gerações posteriores, conforme a aplicação dos operadores genéticos, o número de atributos associado a cada indivíduo pode variar. Foram executadas 200 iterações com elitismo 8, passando sempre o melhor indivíduo de uma geração para outra. Como podemos ver ao fim das 200 iterações a nossa abordagem foi capaz de reduzir o número de atributos para 11. No caso do IG foi selecionada a mesma quantidade de atributos, selecionados pelo AG em cada iteração, de acordo com o poder discriminativo. Podemos notar que o resultado da nossa abordagem supera os outros dois método, com uma Macro- F 1 de 81,4%, sendo capaz de detectar corretamente mais de 60% de instâncias de vandalismo, embora com uma pequena queda na revocação se comparado aos resultados quando todos os atributos são 7 O processo de discretização utilizado pode remover atributos altamente correlacionados a outros atributos. Ele foi aplicado aos 3 métodos. 8 Elitismo consiste em garantir a presença do melhor indivíduo na próxima geração. 215

223 usados. De fato, o resultado de Macro-F1 obtidos com os 11 atributos selecionados pela AG é até mesmo levemente superior ao uso de todos os atributos em termos de Macro-F1. Isto vem ainda com uma redução significativa do número de atributos necessários para a detectar atos de vandalismo na Wikipedia. Comparado com o IG, o resultado obtido com a mesma quantidade de atributos selecionados pelo AG superam em 4% em termos de Macro-F1. Apesar de não apresentarmos esses resultados por questões de espaço, testamos o AG contra o IG com todos os possíveis tamanhos de rankings de atributos gerados, e o AG foi sempre superior em todos os casos. 7. CONCLUSÃO E TRABALHOS FUTUROS Neste artigo foi proposta uma abordagem baseada em algoritmos genéticos para a redução do número de atributos utilizados na detecção automática de vandalismo na Wikipedia e, conseqüentemente, redução do custo. Nossos resultados mostraram que a nossa abordagem, associada a uma técnica simples de balanceamento dos dados de treinamento, superou em termos de eficácia tanto a técnica tradicional de seleção de atributos Information Gain como a detecção utilizando todos os atributos disponíveis. Isso viabiliza a construção de classificadores com modelos compactos e eficazes para o problema de detecção de vandalismo na Wikipedia. Como trabalho futuro, planeja-se usar algoritmos genéticos para selecionar instâncias relevantes para o conjunto de treinamento. REFERENCES Belani, A. Vandalism detection in wikipedia: a bag-of-words classifier approach. CoRR vol. abs/ , Chin et al., S.-C. Detecting wikipedia vandalism with active learning and statistical language models. In WICOW 10. pp. 3 10, Giles, J. Internet encyclopaedias go head to head. Nature 438 (7070): , Jain, A. K., Duin, R. P. W., and Mao, J. Statistical pattern recognition: A review. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE 22 (1): 4 37, Javanmardi et al., S. Vandalism detection in wikipedia: a high-performing, feature-rich model and its reduction through lasso. In WikiSym 11. pp , Kwasnicka, H. and Orski, P. Genetic algorithm as an attributes selection tool for learning algorithms. In Intelligent Information Systems 04. pp , Moore, A. W. Information gain. FeatureSelectionPerformanceEvaluation/, Pappa, G. L., Freitas, A. A., and Kaestner, C. A. A. Attribute selection with a multi-objective genetic algorithm. In Proceedings of the 16th Brazilian Symposium on Artificial Intelligence: Advances in Artificial Intelligence, Potthast, M. Crowdsourcing a wikipedia vandalism corpus. In SIGIR 10. pp , Potthast, M., Stein, B., and Gerling, R. Automatic vandalism detection in wikipedia. In Proceedings of the IR research, 30th European conference on Advances in information retrieval. pp , Potthast, M., Stein, B., and Holfeld, T. Overview of the 1st International Competition on Wikipedia Vandalism Detection. In CLEF (Notebook Papers/LABs/Workshops), M. Braschler, D. Harman, and E. Pianta (Eds.), Sumbana, M., Marcos, G., Almeida, J., Silva, R., and Veloso, A. Automatic vandalism detection in wikipedia with active associative classification. In TPDL 12, Veloso et al., A. Lazy associative classification. In ICDM 06. pp , Wang, W. Y. and McKeown, K. "Got You!": Automatic Vandalism Detection in Wikipedia with Web-based Shallow Syntactic-Semantic Modeling. In COLING 10. Tsinghua University Press, Wikipedia. The motivation of a vandal a. Wikipedia. Vandalism on wikipedia, 2012b. 216

224 Desenvolvimento de Linked Data Mashups com o uso de LIDMS Regis P. Magalhães 1,2, Macedo S. Maia 1, Vânia M. P. Vidal 1, José A. F. de Macedo 1, José Maria Monteiro 1, Fábio A. M. Porto 3 1 Universidade Federal do Ceará UFC, Brazil {regispires, macedomaia, vvidal, jose.macedo, 2 Instituto Federal do Piauí IFPI, Brazil 3 Laboratório Nacional de Computação Cientíca LNCC, Brazil Abstract. Semantic Web technologies like RDF model, URIs and SPARQL query language, can reduce the complexity of data integration by making use of properly established and described links between sources. However, the diculty to formulate distributed queries has been a challenge to harness the potential of these technologies due to autonomy, distribution and vocabulary of heterogeneous data sources. This scenario demands eective mechanisms for integrating data on Linked Data. Linked Data Mashups allow users to query and integrate structured and linked data on the web. This work proposes an architecture of Linked Data Mashups based on the use of Linked Data Mashup Services (LIDMS). A module for ecient execution of federated query plans on Linked Data has been developed and is a component of the proposed architecture. The results of experiments using the execution module were more ecient than other existing strategies. Furthermore, a LIDMS execution Web environment also has been dened and implemented as contribution of this work. Resumo. Tecnologias da Web Semântica como modelo RDF, URIs e linguagem de consulta SPARQL, podem reduzir a complexidade de integração de dados ao fazer uso de ligações corretamente estabelecidas e descritas entre fontes. No entanto, a diculdade para formulação de consultas distribuídas tem sido um obstáculo para aproveitar o potencial dessas tecnologias em virtude da autonomia, distribuição e vocabulário heterogêneo das fontes de dados. Esse cenário demanda mecanismos ecientes para integração de dados sobre Linked Data. Linked Data Mashups permitem aos usuários executar consultas e integrar dados estruturados e vinculados na web. O presente trabalho propõe uma arquitetura de Linked Data Mashups baseada no uso de Linked Data Mashup Services (LIDMS). Um módulo para execução eciente de planos de consulta federados sobre Linked Data foi desenvolvido e é um componente da arquitetura proposta. Os resultados de experimentos realizados com o uso do módulo de execução mostraram-se mais ecientes que outras estratégias existentes. Além disso, um ambiente Web para execução de LIDMS também foi denido e implementado como contribuição deste trabalho. Categories and Subject Descriptors: H.Information Systems [ H.2 Database Management]: SystemsDistributed databases Keywords: Federated Queries, Data Integration, Linked Data Mashups 1. INTRODUÇÃO Linked Data Mashups (LDM) são aplicações construídas para realizar integração de dados no contexto de Linked Data. As arquiteturas de aplicações de LDM são muito diversas e dependem largamente do caso de uso [Heath and Bizer 2011]. Há dois possíveis enfoques para integração de dados: enfoque materializado e enfoque virtual. No enfoque materializado os dados são coletados, armazenados e consultados em um banco de dados central. A principal desvantagem dessa abordagem é a replicação dos dados, que além de requerer espaço de armazenamento adicional, ainda possibilita o uso de dados desatualizados em relação aos dados originais. Por outro lado, o enfoque virtual permite a execução de consultas federadas sobre um conjunto xo de fontes de dados. Seu principal desao consiste em encontrar planos de execução com desempenho satisfatório sobre múltiplas fontes de dados. Este trabalho propõe um framework que emprega o enfoque virtual para o desenvolvimento de Mashups, baseado no uso de Linked Data Mashup Services (LIDMS). LIDMS são serviços Web que 217

225 combinam e integram dinamicamente dados de múltiplas fontes e retornam o resultado no padrão de Linked Data. Cada LIDMS é acessado a partir de uma URI e está associado a um plano de consulta federado, denido em tempo de projeto do mashup, o qual especica o processo de transformação e integração dos dados das várias fontes. Esta arquitetura é apropriada quando os padrões de consulta do mashup podem ser denidos a priori, em tempo de projeto, o que é uma situação comum em aplicações de mashup de dados, uma vez que os mashups são normalmente utilizados para necessidades situacionais especícas que demandam execução eciente [Yu et al. 2008]. A grande vantagem dessa arquitetura é que não é necessário o uso de um mediador em tempo de execução para realizar a geração do plano de consulta federada, que acrescenta complexidade à arquitetura. Além disso, ainda não existe disponível para uso, um sistema de mediação capaz de executar consultas federadas de forma eciente em tempo de execução. A geração dos planos de execução em tempo de projeto possibilita a realização de ajustes precisos, visando a melhoria de seu desempenho. As principais contribuições do artigo são: (i) a denição de um processo para geração de consultas federadas capazes de realizar a integração de Linked Data; (ii) a denição e implementação de um ambiente para execução eciente dessas consultas. O restante do artigo está estruturado da seguinte forma: A seção 2 trata do processo de geração de LIMDS. A seção 3 apresenta o ambiente de execução de LIDMS. A seção 5 trata das principais ferramentas existentes para lidar com a execução de consultas federadas sobre Linked Data. A seção 4 explica os experimentos realizados para avaliar a viabilidade do ambiente de execução de LIDMS em comparação com outras estratégias de execução de consultas federadas, e analisa os resultados obtidos. Finalmente, a seção 6 tece as considerações nais sobre o trabalho e apresenta possíveis trabalhos futuros. 2. PROCESSO DE GERAÇÃO DE LIDMS O processo de geração de LIDMS [Magalhães 2012] envolve uma etapa de modelagem da ontologia de domínio e integração semântica, além de uma etapa adicional especicamente destinada à geração dos LIDMS. As etapas de modelagem da ontologia de domínio e integração semântica possuem os seguintes ingredientes: (i) O esquema conceitual da aplicação é representado por uma ontologia de domínio (OD); (ii) Cada fonte de dados é descrita por uma ontologia fonte (OF) disponibilizada como Linked Data e que descreve os dados exportados pela fonte; (iii) As correspondências entre a OD e as OFs são especicadas por um conjunto de mapeamentos. (iv) Links RDF entre diferentes fontes de dados estabelecem conexões entre as OFs. A integração semântica segue uma abordagem distribuída e sob demanda (pay-as-you-go) [Bizer and Schultz 2010; Madhavan et al. 2007]. Distribuída porque os dados são publicados por diversos atores e sob demanda porque mapeamentos entre os dados podem ser denidos de acordo com a necessidade, de modo que as aplicações possam usá-los para integrá-los e para fornecer funcionalidades mais sosticadas. Para melhor entendimento dos conceitos expostos, apresentamos um estudo de caso de um mashup de dados na área de saúde, chamado D&D (Doenças e Drogas), para integrar informações sobre drogas e doenças, a partir de algumas fontes de dados publicamente disponíveis na Web de acordo com os princípios de Linked Data. Estes dados são obtidos das fontes de dados Diseasome, DailyMed, DrugBank, DBpedia e Sider, que estão disponíveis publicamente na Web. As guras 1 e 2 representam a OD e OFs do mashup D&D, respectivamente. Com o resultado obtido da integração semântica da OD e OF, o processo de geração de LIDMS consiste de dois passos, que são apresentados a seguir. Passo 1 - Especicação Conceitual Os requisitos de dados do LIDMS são especicados através de uma visão de integração a qual é especicada por uma tripla < P, O, Q >, onde: (i) P é uma lista de parâmetros de entrada que serão usados em última instância para ltrar os resultados da saída; (ii) O é uma ontologia que descreve o resultado retornado; (iii) Q é uma consulta SPARQL parametrizada, denida sobre a ontologia de 218

226 Diseases & Drugs DOMAIN ONTOLOGY ddg:disease -ddg:category -ddg:name ddg:possibledrug ddg:drug -ddg:indication -ddg:metabolism -ddg:name -ddg:pregnancycategory ddg:sideeffect ddg:sideeffect -ddg:sideeffectname ddg:genericdrug -ddg:affectedorganism -ddg:chemicalformula -ddg:genericname ddg:genericdrug ddg:activeingredient ddg:ingredient -ddg:name PREFIX ddg: <http://arida.lia.ufc.br/diseases_drugs/> Fig. 1. Ontologia de Domínio do mashup D&D. Diseasome SOURCE ONTOLOGY DailyMed SOURCE ONTOLOGY dsome:diseases -dsome:category -dsome:name dsome:possibledrug dmed:drugs -dmed:fullname -dmed:indication -dmed:activeingredient dmed:ingredients -rdfs:label dmed:genericdrug owl:sameas owl:sameas DrugBank SOURCE ONTOLOGY DBpedia SOURCE ONTOLOGY Sider SOURCE ONTOLOGY dgbank:drugs -dgbank:affectedorganism -dgbank:chemicalformula -dgbank:genericname dbp-ont:drug -dbpprop:metabolism -dbpprop:pregnancycategory sider:drugs -sider:siderdrugid -sider:stitchid -sider:sideeffect sider:side_effects -sider:sideeffectid -sider:sideeffectname PREFIXES dbp-ont: <http://dbpedia.org/ontology/> dbpprop: <http://dbpedia.org/property/> owl: <http://www.w3.org/2002/07/owl#> rdfs: <http://www.w3.org/2000/01/rdf-schema#> dgbank: <http://www4.wiwiss.fu-berlin.de/drugbank/resource/drugbank/> dmed: <http://www4.wiwiss.fu-berlin.de/dailymed/resource/dailymed/> dsome: <http://www4.wiwiss.fu-berlin.de/diseasome/resource/diseasome/> sider: <http://www4.wiwiss.fu-berlin.de/sider/resource/sider/> Fig. 2. Ontologias Fontes do mashup D&D. domínio OD. A especicação conceitual do LIDMS Drug Details do nosso estudo de caso é representada na Figura 3. Assim, a partir do nome da droga (parâmetro de entrada), é possível obter informações detalhadas sobre ela. A consulta Q, com parâmetro?:drug_name, é denida sobre a OD, sendo portanto independente das fontes de dados. Passo 2 - Geração do Plano de Consulta Federado O objetivo desse passo é a geração do plano de execução da consulta federada do LIDMS, que posteriormente será usado em um ambiente de execução capaz de processar a consulta de forma eciente. O plano é gerado automaticamente a partir da consulta SPARQL parametrizada sobre a OD, usando o processo de geração de planos de consulta federados proposto em [Vidal et al. 2011]. Nesse processo, uma consulta sobre a OD é reescrita e otimizada em termos das OFs, através do uso de links RDF entre as fontes de dados e dos mapeamentos entre OD e OFs. Depois disso, um plano de consulta federado é gerado a partir da consulta reescrita, onde referências entre OFs tornam-se junções e cada sub-consulta sobre uma OF é executada sobre a fonte da dados correspondente. Um plano de consulta é representado como uma árvore onde os nós são operadores e as arestas são os relacionamentos entre operadores no modo produtor-consumidor, seguindo o modelo de iterador proposto por [Graefe 1990]. Os operadores de junção são derivados de links RDF no processo de reescrita e usados para permitir a integração de dados entre diferentes fontes. 219

227 LIDMS Drug Details P : Input Parameters drug_name: String O : Output description Drug details: metabolism, formula, side eect names, active ingredients Q : Query PREFIX ddg: <http://arida.lia.ufc.br/diseases_drugs/> SELECT?dg_act_ing?dg_mtb?dg_frm?sd_e WHERE {?dg ddg:name?:drug_name ; ddg:metabolism?dg_mtb ; ddg:formula?dg_frm ; ddg:sideeect?sdef ; ddg:activeingredient?dgai.?dgai ddg:name?dg_act_ing.?sdef ddg:sideeectname?sd_e. } Fig. 3. Especicação Conceitual do LIDMS Drug Details 3. AMBIENTE DE EXECUÇÃO DE LIDMS A Figura 4 ilustra o ambiente de execução de LIDMS (LEXEN LIDMS Execution Environment) proposto, o qual realiza o processamento de serviços requisitados a partir de uma URI e a execução eciente do plano de consulta federado correspondente, realizando assim, o trabalho de integração dos dados em tempo de execução. A URI possui a identicação do plano federado que será executado, bem como os parâmetros necessários à execução desse plano. O plano pode possuir parâmetros nomeados que são extraídos da URI e usados para ltrar os resultados da execução do plano. Especicação e implementação do LEXEN 1 são importantes contribuições deste trabalho. Os componentes do LEXEN são apresentados a seguir. Client LIDMS Execution Environment URI LIDMS Results Federated Query Plan Query Plan Executor LIDMS Processor Wrapper RDF Store RDBMS Fig. 4. Arquitetura baseada no uso de LIDMS O componente LIDMS é uma aplicação Web que provê serviços Web REST [Fielding 2000]. O LIDMS Processor recebe URIs contendo o identicador da consulta, seus parâmetros e o formato de saída desejado. Ao receber a requisição HTTP, ele solicita ao componente Query Plan Executor a execução do plano federado correspondente, enviando também os parâmetros necessários à sua execução. Por m, à medida que os resultados vão sendo obtidos, eles são convertidos para o formato de saída especicado e retornados ao cliente do serviço web. Se os parâmetros necessários à execução de um

228 plano não forem enviados, o LIDMS Processor apresentará um formulário HTML para preenchimento e submissão dos valores desses parâmetros. O componente Query Plan Executor é responsável pela execução de planos de consulta federados sobre a Web de Dados. Este componente também pode ser chamado de QEF-LD por se tratar de uma extensão do QEF - Query Evaluation Framework [Porto et al. 2007] com suporte a Linked Data. O QEF foi estendido para permitir a execução de planos de consultas federados, explorando as ligações que revelam conexões semânticas entre conjuntos de dados. Durante a execução, são realizadas subconsultas sobre os conjuntos de dados relevantes para o plano escolhido. Além disso, o QEF-LD ainda é caracterizado pelos seguintes aspectos: (i) possibilidade de uso de parâmetros nomeados nos planos de execução; (ii) acesso a planos de execução pré-denidos e armazenados em repositório especíco, diferindo dos planos de execução gerados dinamicamente em uma arquitetura com uso de mediação. Para melhorar o desempenho das consultas, foram implementados operadores que possibilitam a execução paralela de consultas sobre fontes remotas (paralelismo intraoperador). Além disso, é possível utilizar os resultados de consultas a essas fontes, à medida que vão sendo recebidos, não sendo necessário esperar o recebimento de todos os resultados para somente depois efetuar seu processamento. Os Planos de Execução Federados são escritos em formato XML compatível com o QEF e são armazenados em um repositório que contém todos os planos. O QEF-LD executa qualquer um deles de acordo com a demanda imposta pelo LIDMS Processor. A Figura 5 mostra um plano de consulta federado usado para recuperar detalhes sobre uma droga, tendo o nome da droga como parâmetro de entrada. Cada plano recebe um identicador único. Os valores dos parâmetros de consulta são denidos em tempo de execução por meio de interação do cliente com a interface do LIDMS. No momento da execução, o LEXEN realiza as seguintes atividades: (i) recebimento de URIs enviadas pelos clientes do LIDMS; (ii) processamento de URIs para extrair o identicador do plano de consulta federado que será executado, os parâmetros nomeados e o formato de saída desejado; (iii) carregamento do plano de consulta correspondente ao identicador recebido; (iv) substituição dos parâmetros nomeados pelos seus valores no plano carregado; (v) execução do plano de consulta; (vi) formatação dos resultados para o formato de saída requisitado pelo cliente; (vii) retorno dos resultados formatados. As atividades (v) a (vii) seguem um uxo de execução em pipeline. Assim, durante a execução do plano de consulta (atividade v), à medida que os resultados que vão sendo obtidos, eles já vão sendo formatados (atividade vi) e retornados ao cliente (atividade vii), sem que haja necessidade de nalizar uma atividade para poder iniciar a seguinte. O carregamento de planos de execução de consulta a partir dos arquivos XML de templates do QEF demanda certo tempo. Para evitar que esse tempo seja gasto antes de cada execução de plano, o LEXEN permite que os planos possam ser pré-carregados para um cache durante a inicialização do LEXEN ou ainda sob demanda, quando a primeira execução de um plano é solicitada. Assim, no decorrer da atividade (iii), o LEXEN somente carrega um plano de consulta armazenado em disco, se o plano ainda não estiver armazenado no cache. Atualmente o LEXEN suporta os formatos de saída XML e JSON que são baseados respectivamente nos documentos SPARQL Query Results XML Format [Beckett and Broekstra 2008] e Serializing SPARQL Query Results in JSON [Clark et al. 2008]. Ele também possibilita uma visualização HTML baseada na transformação do XML através de XSLT. 4. EXPERIMENTOS E RESULTADOS A avaliação dos resultados foi baseada na análise comparativa do desempenho de oito consultas sobre Linked Data, usando endpoints SPARQL locais com variações nos seguintes itens: paralelismo; operadores usados; uso de diferentes implementações e parametrizações dos operadores implementados. Detalhes sobre essas consultas e sobre os experimentos realizados estão descritos em [Magalhães 221

229 PROJECT (?dg_act_ing?dg_mtb?dg_frm?sd_eff) JOIN JOIN SERVICE dbpedia JOIN SERVICE sider BGP?sa dbpprop:metabolism?dg_mtb SERVICE dailymed SERVICE drugbank BGP?sa sider:sideeffect?se.?se sider:sideeffectname?sd_eff BGP?dg dmed:fullname?:drug_name?dg dmed:activeingredient?dgai?dg dmed:genericdrug?gdg?dg owl:sameas?sa?dgai rdfs:label?dg_act_ing BGP?gdg dgbank:chemicalformula?dg_frm Fig. 5. Plano de Execução Federado 2012]. As ferramentas Jena, Sesame, FedX e QEF-LD foram usadas para execução das consultas, cujos resultados estão representados na Figura 6 e DBpedia. Jena Sesame FedX QEF-LD Q1 382,65 sr ofm 50,81 Q2 39,53 47,24 12,58 1,02 Q3 88,53 339,74 ofm 7,42 Q4 391,51 410,44 456,98 508,30 Q5 39,75 43,29 48,02 54,64 Q6 314,77 351,10 826,51 438,82 Q7 813,00 642,00 636,00 556,00 Q8 375,23 375,90 208,16 214,46 Tempo (segundos) Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Jena Sesame FedX QEF-LD Fig. 6. Tabela e gráco comparativos de tempo de execução em segundos dos resultados das consultas Q1 a Q7, usando diferentes estratégias de execução Nas consultas Q1 a Q3 que envolvem junções o QEF-LD apresentou tempos de execução muito melhores que as demais estratégias, devido à redução no número de chamadas remotas propiciado por seus algoritmos de junção [Magalhães 2012]. O FedX lançou uma exceção de falta de memória (OutOfMemory) durante a execução das consultas Q1 e Q3. O Sesame em sua versão não retornou resultados da consulta Q1, mesmo após horas de execução. Nenhum resultado é obtido, nem ocorre uma exceção indicativa do problema. Também não houve consumo excessivo de memória. Nas consultas Q4 a Q6 que envolvem junção à esquerda, o desempenho do QEF-LD foi ligeiramente inferior ao desempenho das demais estratégias, revelando que seu algoritmo de junção à esquerda pode melhorar. Pretende-se obter uma melhoria signicativa no desempenho desse operador ao usar uma abordagem de redução de chamadas remotas, semelhante à usada na junção. Durante a execução da consulta Q6 o FedX consumiu toda a memória da máquina virtual Java (JVM), levando a um tempo de execução muito longo, devido ao custo relacionado à liberação de memória por parte do mecanismo de coleta de lixo da JVM. Finalmente, nas consultas Q7 e Q8 que envolvem operadores de união, 222

230 o QEF-LD apresentou desempenho melhor que as demais estratégias devido à execução paralela de consultas aos Endpoints remotos. O FedX, que usa uma abordagem semelhante, obteve resultados ligeiramente melhores que o QEF-LD durante a execução da consulta Q8. Conclui-se, portanto, que o QEF-LD é uma alternativa viável para a execução de consultas federadas sobre Linked Data, podendo sofrer modicações para tornar-se ainda mais eciente. 5. TRABALHOS RELACIONADOS [Jarrar and Dikaiakos 2010] propõem uma linguagem de alto nível MashQL para permitir o desenvolvimento de mashups usando tecnologias da Web Semântica de forma visual, simples e intuitiva. MashQL adota RDF como modelo interno de dados e permite o desenvolvimento de mashups através de um navegador Web usando conexões entre componentes. Além disso, possibilita a formulação interativa de consultas sobre múltiplas fontes por usuários com conhecimentos limitados em TI. A linguagem é tão expressiva quanto SPARQL e as consultas são primeiramente traduzidas em consultas SPARQL antes de sua execução. No entanto, MashQL requer a tecnologia semântica do Oracle 11g para materializar os dados de todas as fontes usadas. Nessa estratégia há um grande custo de tempo e espaço para materialização dos dados, além de fornecer resultados desatualizados em relação às fontes. MashQL não possui licença livre, nem é disponibilizado publicamente para download, dicultando seu uso e aceitação. Semantic Web Pipes (SWP) [Le-Phuoc et al. 2009] apresenta um estilo de arquitetura exível para o desenvolvimento de mashups de dados usando as tecnologias da Web Semântica. Pipes são planos de consultas criados visualmente pelo desenvolvedor através da conexão de operações sobre os dados no modelo RDF. Depois de criado, um Pipe é salvo e disponibilizado para uso através de uma simples requisição HTTP a uma URI especíca usando Serviços Web REST. Uma desvantagem de MashQL e Semantic Web Pipes é a construção manual do uxo de operações do mashup pelo desenvolvedor. Além disso, as operações disponíveis para criação do uxo de operações não seguem uma álgebra padrão, como a álgebra SPARQL. O processador de consultas SPARQL Jena ARQ 2 é integrado ao framework de web semântica Jena 3. Embora não seja uma solução abrangente de processamento distribuído de consultas, ele implementa suporte a execução de consultas federadas, conforme o documento que estabelece um padrão ocial para federação de consultas em SPARQL 1.1 [Prud'hommeaux and Buil-Aranda 2011]. No entanto, a especicação é bastante simples e não prevê otimizações ou outras estratégias para melhoria do desempenho das consultas. O framework de web semântica Sesame 4, assim como o framework Jena, também possui um processador de consultas que implementa o padrão para federação de consultas denido no SPARQL 1.1 [Prud'hommeaux and Buil-Aranda 2011]. FedX [Schwarte et al. 2011a; 2011b] é um framework para acesso transparente a fontes de dados através de federação de consultas. Ele recebe uma consulta SPARQL federada usando o operador SERVICE ou uma consulta sobre uma ontologia global resultante da união das OFs. Neste último caso, o FedX transforma a consulta original em uma consulta federada sobre as OFs. No entanto, o FedX não executa planos de consulta pre-denidos como o LEXEN, nem consultas sobre uma ontologia de domínio com mapeamentos especícos para as OFs. Em todas as ferramentas apresentadas é necessário especicar exatamente quais são as fontes de dados em cada consulta ou mashup de dados, podendo ser necessário reescrever as consultas em caso de acréscimo ou modicações nas fontes de dados. O LEXEN também possui essa característica. No entanto, o processo de geração de LIDMS também apresentado como contribuição deste trabalho, pode complementar o trabalho do LEXEN, ao possibilitar a geração de planos de consultas pre-denidos a partir de consultas sobre uma Ontologia de Domínio (OD), que realizam a integração semântica de forma virtual e automática sobre as fontes de dados envolvidas. Essas consultas sobre a OD são mais simples e estáveis que se fossem realizadas diretamente sobre as OFs

231 6. CONCLUSÃO E TRABALHOS FUTUROS Este trabalho apresentou um processo para geração de LIDMS, bem como um ambiente para sua execução. O ambiente de execução (LEXEN) funciona como um serviço Web para recuperar de forma eciente os resultados de planos de consulta federados a partir de uma dada requisição de URI, especicando o identicador do plano de execução que se deseja executar, os parâmetros que serão usados nesse plano e o formato de saída resultante. Como trabalhos futuros pretende-se: (i) melhorar ainda mais o desempenho do componente QEF-LD através da implementação de operadores mais ecientes; (ii) usar cache de dados e índices para melhorar o desempenho das consultas; (iii) adicionar suporte a mais formatos de saída ao ambiente de execução de LIDMS, como CSV e TSV, por exemplo; (iv) Usar RDF Store para armazenamento de metadados e visões materializadas com a nalidade de reduzir o tempo de resposta das consultas. (v) implementar uma ferramenta para permitir a especicação e construção de LIDMS, inclusive com a geração dos planos de consulta federados e otimizados a partir de consultas SPARQL sobre a OD; (vi) Incluir uma fase de pós-processamento ao processo de geração dos planos de consulta federados, visando a realização automática de operações para remover conitos, inconsistências e duplicação de resultados das consultas. REFERENCES Beckett, D. and Broekstra, J. SPARQL Query Results XML Format. rdf-sparql-xmlres/, Bizer, C. and Schultz, A. The R2R Framework: Publishing and Discovering Mappings on the Web. In First International Workshop on Consuming Linked Data (COLD2010), Clark, K. G., Feigenbaum, L., and Torres, E. Serializing SPARQL Query Results in JSON. TR/rdf-sparql-json-res/, Fielding, R. Architectural Styles and the Design of Network-based Software Architectures. Ph.D. thesis, University of California, Irvine, Graefe, G. Encapsulation of parallelism in the volcano query processing system. In Proceedings of the 1990 ACM SIGMOD international conference on Management of data. SIGMOD '90. ACM, New York, NY, USA, pp , Heath, T. and Bizer, C. Linked Data: Evolving the Web into a Global Data Space. Morgan & Claypool, Jarrar, M. and Dikaiakos, M. D. A Query Formulation Language for the Data Web. IEEE Transactions on Knowledge and Data Engineering, Le-Phuoc, D., Polleres, A., Hauswirth, M., Tummarello, G., and Morbidoni, C. Rapid prototyping of semantic mash-ups through semantic web pipes. In Proceedings of the 18th international conference on World wide web - WWW '09. ACM Press, pp , Madhavan, J., Jeffery, S. R., Cohen, S., (luna Dong, X., Ko, D., Yu, C., Halevy, A., and Inc, G. Web-scale data integration: You can only aord to pay as you go. In Proceedings of the Third Biennial Conference on Innovative Data Systems Research, Magalhães, R. P. Um Ambiente para Processamento de Consultas Federadas em Linked Data Mashups. M.S. thesis, Universidade Federal do Ceará, Porto, F., Tajmouati, O., Da Silva, V. F. V., Schulze, B., and Ayres, F. V. M. Qef - supporting complex query applications. In Proceedings of the Seventh IEEE International Symposium on Cluster Computing and the Grid. CCGRID '07. IEEE Computer Society, Washington, DC, USA, pp , Prud'hommeaux, E. and Buil-Aranda, C. SPARQL 1.1 Federated Query. sparql11-federated-query/, Schwarte, A., Haase, P., Hose, K., Schenkel, R., and Schmidt, M. Fedx: a federation layer for distributed query processing on linked open data. In Proceedings of the 8th extended semantic web conference on The semanic web: research and applications - Volume Part II. ESWC'11. Springer-Verlag, Berlin, Heidelberg, pp , 2011a. Schwarte, A., Haase, P., Hose, K., Schenkel, R., and Schmidt, M. Fedx: optimization techniques for federated query processing on linked data. In Proceedings of the 10th international conference on The semantic web - Volume Part I. ISWC'11. Springer-Verlag, Berlin, Heidelberg, pp , 2011b. Vidal, V. M. P., de Macêdo, J. A. F., Pinheiro, J. C., Casanova, M. A., and Porto, F. Query Processing in a Mediator Based Framework for Linked Data Integration. IJBDCN 7 (2): 2947, Yu, J., Benatallah, B., Casati, F., and Daniel, F. Understanding mashup development. IEEE Internet Computing vol. 12, pp. 4452,

232 Um sistema de alarme para vigilância epidemiológica de rumores utilizando redes sociais Denise Brito, Janaina Gomide, Walter Santos, Wagner Meira Jr., Adriano Veloso e Virgilio Almeida Universidade Federal de Minas Gerais {denise.brit, janaina, walter, meira, adrianov, Abstract. Online social networks are used at a daily basis by millions of users around the world. More and more people use these networks to interact, to issue opinions, and to share content about several different topics, such as entertainment, weather, work, family, traffic, and even their health conditions. In summary, social networks became another social place with their own meaning and evolving dynamically. Many events are late perceived and mentioned by traditional media, but may happen in the social networks at real time, so that it is possible to detect them and such detection subsidize the determination of predictive models. The goal of this work is to exploit content available in the social networks to detect the occurrence and predict epidemics surges, in particular those associated with dengue. Starting from the collection and processing of data from social networks, we identify how surges manifest in social networks and exploit these features to build an alarm system, as part of an epidemics suveillance system based on rumours. The results show that we were able to achieve high precisions (more than 99%), as well as to predict surges in advance. Resumo. As redes sociais online fazem parte do cotidiano de milhões de pessoas do mundo inteiro. Cada vez mais pessoas utilizam essas redes para interagir, opinar e compartilhar conteúdos sobre os mais diversos tópicos, como diversão, clima, trabalho, família, trânsito e mesmo sua condição de saúde. Em suma, as redes sociais se tornaram mais um lugar social com significados próprios, evoluindo dinamicamente. Muitos acontecimentos são tardiamente percebidos e divulgados pelos meios de comunicação tradicionais, mas podem acontecer nas redes sociais em tempo real, sendo passíveis de serem detectados e de subsidiarem a construção de modelos de previsão. O objetivo deste trabalho é explorar conteúdo disponível nas redes sociais para detectar a ocorrência e prever surtos epidemiológicos, em particular de dengue. A partir da coleta e processamento de dados das redes sociais, identificamos as características de surtos e exploramos essas características para a construção de um alarme, constituindo um sistema de vigilância epidemiológica de rumores. Resultados mostram que fomos capazes de atingir altas precisões (mais de 99%), assim como antecipar surtos. 1. INTRODUÇÃO A World Wide Web tem sido cada vez mais utilizada como meio para compartilhamento de informações e interação. Milhões de pessoas utilizam as redes sociais online para publicar opiniões sobre diversos assuntos, assim como relatar eventos que acontecem em suas vidas e seu estado de saúde. Muitos acontecimentos são percebidos e divulgados tardiamente, enquanto podem estar sendo discutidos em tempo real nas redes sociais. Sendo assim, tais eventos podem ser detectados através de mensagens postadas pelas pessoas que os vivenciam e essas mensagens podem também servir para construir modelos de previsão. Para que as mensagens possam ser utilizadas como fonte de dados para detecção de eventos, elas devem possuir algumas características importantes: devem ser publicadas espontaneamente, contendo uma opinião ou sentimento, e ter localização no espaço e no tempo bem definida. Mais ainda, é necessário que essas redes sociais sejam utilizadas de forma significativa pela sociedade, o conteúdo da mensagem possa ser obtido e essas mensagens também informem a localização do usuário. Em parti- 225

233 cular, uma rede que possui essas características é o Twitter, pois permite que os usuários publiquem mensagens de até 140 caracteres, o que faz com que as mensagens sejam objetivas, e, ao mesmo tempo, possuam algum contexto. Os eventos também devem possuir algumas características para que possam ser detectados: causar algum impacto na vida das pessoas, para que elas sejam motivadas a postar informações sobre ele; atingir um grande número de pessoas, para que o número de mensagens seja significativo, e não deve haver nenhum impedimento social, para que ele seja divulgado publicamente. Neste trabalho, a detecção de eventos através de redes sociais foi aplicada no contexto da dengue. A dengue é uma doença que ocorre em regiões de clima tropical e subtropical, transmitida pela picada do mosquito Aedes aegypti infectado. Até o momento, em termos de vigilância epidemiológica, o Ministério da Saúde monitora a quantidade de mosquitos transmissores encontrados e, então, se houver muitos focos do mosquito, as campanhas e medidas de prevenção são intensificadas naquele local. No entanto, a presença de mosquitos transmissores não significa que haja uma incidência alta de dengue, e, quando uma epidemia ocorre, o número de casos registrados é conhecido pelas autoridades com algumas semanas de atraso. Logo, o objetivo deste trabalho é permitir uma detecção precoce de surtos de dengue para tornar mais rápido o planejamento do governo. Em [Gomide 2012] foi mostrado um método de detecção precoce de surtos de dengue no Brasil através de mensagens postadas no Twitter. A partir deste trabalho desenvolvemos um sistema de alarme, que está sendo utilizado pelo Ministério da Saúde desde Novembro de Este artigo descreve o sistema de alarme e a sua avaliação, com base nos tweets e nos dados oficiais, agrupados por semana, correspondentes às trinta primeiras semanas de TRABALHOS RELACIONADOS Nesta seção discutimos alguns trabalhos relacionados à detecção de eventos e sistemas de alarme baseados em redes sociais. Nos últimos anos, técnicas de mineração de dados têm sido aplicadas em redes sociais para detecção de eventos, como por exemplo em [Sakaki et al. 2010], em que os tweets foram utilizados para detectar a ocorrência de terremotos e sua localização. Em [Tumasjan et al. 2010], tweets contendo opiniões sobre as eleições alemãs foram utilizados. Os primeiros trabalhos que visavam a detecção de surtos epidemiológicos utilizavam artigos de jornais contendo informações sobre a gripe ([Mawudeku and Blench 2006; Brownstein et al. 2008; Freifeld et al. 2008]), e, mais recentemente, foram utilizados blogs ([Corley et al. 2009]), consultas em sites de busca ([Ginsberg et al. 2009; Chan et al. 2011; Althouse et al. 2011]), e também o Twitter ([Culotta 2010; Lampos and Cristianini 2010; 2011; Lampos et al. 2010; Chen et al. 2010; Achrekar et al. 2011; Chunara et al. 2012]). Após o desenvolvimento do método de detecção do evento, é importante que haja um sistema de alarme para alertar a população em situações críticas. Em [Sakaki et al. 2010], foi construído um sistema que detecta a ocorrência de um terremoto e envia s para as pessoas cadastradas. Em [Freifeld et al. 2008], as notícias sobre a gripe são visualizadas numa página web e em [Lampos et al. 2010] são disponibilizadas as taxas de incidência da Influenza estimadas com o método proposto em [Lampos and Cristianini 2010]. O Google Dengue Trends (http://www.google.org/denguetrends/) permite visualizar a frequência de consultas relacionadas à dengue no Brasil e em mais 9 países. A diferença do alarme proposto neste trabalho para os descritos anteriormente é a especificidade do alarme (em nível de cidade, e não de estados ou países), com atualização semanal e também, além da análise da incidência, é feita uma análise da tendência do número de casos de dengue. 3. ALARME O ponto de partida do sistema de Alarme é o Observatório da Dengue [Gomide 2012], que coleta e analisa as mensagens postadas no Twitter que referenciam dengue. Em particular, o Observatório é 226

234 capaz de determinar aquelas mensagens que representam experiências pessoais. Neste mesmo trabalho foi demonstrado haver uma alta correlação entre o volume de mensagens que expressam experiência pessoal e notificações da doença por localidade e por tempo. As mensagens são classificadas utilizando o LAC (classificador associativo sob demanda) [Veloso et al. 2006]. O classificador compara as regras presentes nas mensagens do treino, previamente rotuladas manualmente, com as regras encontradas nas novas mensagens coletadas e as classifica em uma das cinco categorias: experiência pessoal, paródia ou ironia, opinião, informação e campanha. Com base nesses achados, o alarme foi criado para complementar o sistema de vigilância tradicional de detecção e acompanhamento dos surtos de dengue. O alarme é específico para cada cidade com mais de cem mil habitantes e é baseado em dois tipos de análise: a análise de volume e a análise de tendência dos casos de dengue. A análise de volume estima a incidência de dengue no período atual, enquanto que a análise de tendência informa se o número de tweets relatando dengue aumentou, diminuiu ou permaneceu constante em relação às duas semanas anteriores. É importante fornecer as duas informações porque, por exemplo, mesmo que o número de casos previstos seja baixo, se houve um aumento significativo de tweets, isso é um fato possivelmente preocupante, que não seria percebido apenas com a análise de volume. E mesmo que o número de tweets caia, em comparação com as semanas anteriores, o volume pode estar alto, o que não seria notado apenas com a análise de tendência. Cabe ressaltar que o período considerado para o alarme é definido pelas características da doença sendo monitorada. No caso da dengue, que tem um ciclo semanal, optou-se por considerar duas semanas, tendo em vista a praxe epidemiológica. 3.1 Análise de volume A metodologia de análise epidemiológica do Ministério da Saúde se baseia no número de casos por cem mil habitantes e reconhece 3 faixas: de 0 a 100 casos por cem mil habitantes, é dito que há uma baixa incidência de dengue naquela semana; entre 100 e 300 casos é considerada média incidência e a partir de 300 casos a incidência é alta. Para a análise de volume, o número de tweets relatando experiência pessoal de cada semana é a entrada de uma função de previsão. Seus parâmetros foram ajustados por regressão linear, assumindo que há uma relação linear entre o número de tweets e o número de casos reais de dengue, usando os dados do Twitter e os dados oficiais do fim de 2010 e início de 2011, e são diferentes para cada cidade, pois a porcentagem da população que possui acesso à internet e a incidência de dengue variam de região para região. O alarme então fornece em qual faixa de classificação recai o número de casos previstos. Por exemplo, aplicando o método à cidade do Rio de Janeiro, com habitantes 1, a função de previsão para essa cidade é: y = 5.826x , onde y é o número de casos previstos e x o número de tweets. Assim, é calculado o número de casos previstos para todas as semanas. Os casos previstos e os casos reais são divididos pelo número de habitantes e multiplicados por cem mil, para serem comparados com a classificação do Ministério da Saúde (dada em termos de cem mil habitantes). Então, a classificação do número de casos previstos é comparada com a classificação dos casos reais, para validação. A Tabela I mostra o número de tweets para cada semana, os casos previstos, a faixa de classificação dos casos previstos, os casos reais e a faixa de classificação deles. Para a cidade de Recife, PE, com habitantes, a função de previsão é: y = x A classificação é feita exatamente como no exemplo anterior, e os resultados estão na Tabela II

235 Tabela I. Previsão e validação do número de casos previstos para Rio de Janeiro, RJ Tweets Casos previstos Alerta previsão Casos reais Alerta real Alerta tendência baixo 964 baixo estabilização baixo 1107 baixo estabilização baixo 1499 baixo estabilização baixo 1667 baixo estabilização baixo 1862 baixo estabilização baixo 2280 baixo estabilização baixo 2758 baixo estabilização baixo 3317 baixo estabilização baixo 4839 baixo estabilização baixo 5800 baixo estabilização baixo 5513 baixo estabilização baixo 6605 médio estabilização baixo 6764 médio estabilização baixo 6972 médio estabilização baixo 8577 médio estabilização baixo 9269 médio aumento baixo 8734 médio estabilização baixo 8375 médio estabilização baixo 7580 médio estabilização baixo 6860 médio redução baixo 6461 médio estabilização baixo 4932 baixo estabilização baixo 3460 baixo redução baixo 2692 baixo redução baixo 1791 baixo estabilização baixo 1080 baixo estabilização baixo 582 baixo estabilização baixo 289 baixo estabilização baixo 88 baixo redução baixo 5 baixo redução 3.2 Análise de tendência A análise de tendência serve para identificar se o histórico do número de tweets sugere alguma tendência do número de casos de dengue. É calculado o Z-score ([Larsen and Marx 1986]) usando a média diária de tweets na semana atual (x) e nas duas semanas anteriores (µ), e do desvio padrão do número de tweets durante esse período (σ) para cada cidade. Foi utilizado o período de duas semanas anteriores pela natureza do evento. O Z-score é dado pela seguinte fórmula: (x µ)/σ A tendência é também classificada em três faixas, de acordo com o resultado do Z-score: para o Z-score abaixo de 1, é dito que houve uma tendência de diminuição, para o Z-score entre 1 e 2, é dito que a tendência é de estabilização e, acima de 2, é considerado que houve um aumento. 3.3 Metodologia de avaliação do alarme O Ministério da Saúde fornece o número de casos confirmados de dengue em cada cidade, por semana. Para avaliar o alarme, foi calculado o coeficiente de correlação cruzada entre as séries temporais do número de tweets e dos dados oficiais, para cada cidade, para verificar se as séries possuem boa correlação e descobrir se é possível fazer uma detecção precoce do número de casos de dengue através do Twitter. A correlação cruzada [Brourke 1996] foi calculada aplicando-se um atraso de d semanas na série dos dados oficiais o(i) em relação à série do Twitter t(i), onde i = 0, 1, 2,...N 1 e N é o número de 228

236 Tabela II. Previsão e validação do número de casos previstos para Recife, PE Tweets Casos previstos Alerta previsão Casos reais Alerta real Alerta tendência baixo 359 baixo estabilização baixo 290 baixo estabilização baixo 294 baixo estabilização baixo 359 baixo estabilização baixo 461 baixo estabilização baixo 508 baixo estabilização baixo 465 baixo estabilização baixo 574 baixo estabilização baixo 615 baixo estabilização baixo 582 baixo estabilização baixo 635 baixo estabilização baixo 598 baixo estabilização baixo 438 baixo estabilização baixo 416 baixo estabilização baixo 420 baixo estabilização baixo 317 baixo estabilização baixo 226 baixo estabilização baixo 233 baixo estabilização baixo 180 baixo estabilização baixo 147 baixo estabilização baixo 120 baixo estabilização baixo 104 baixo estabilização baixo 77 baixo estabilização baixo 65 baixo estabilização baixo 65 baixo estabilização baixo 55 baixo estabilização baixo 30 baixo estabilização baixo 18 baixo estabilização baixo 29 baixo estabilização baixo 4 baixo redução semanas avaliadas, no caso deste experimento, 30. A fórmula da correlação cruzada é: n i=1 r = (t i t)(o i ō) n i=1 (t i t) 2 n i=1 (o i ō) 2 sendo t e ō as médias das séries correspondentes. Os valores que o coeficiente pode assumir estão entre 1 e 1. Entre 0 e 1, significa uma correlação direta entre as duas séries, e quanto mais próximo de 1, indica maior correlação. Analogamente, entre 0 e 1, significa uma correlação inversa entre as duas séries, e quanto mais próximo de 1, a correlação inversa é maior. Foram calculados os coeficientes de correlação cruzada considerando um atraso de 0, 1 e 2 semanas dos dados oficiais em relação aos dados do Twitter. Logo, quando o coeficiente considerando um atraso de 1 ou 2 semanas for mais próximo de 1 do que o coeficiente correspondente a nenhum atraso, isto sugere que há uma detecção precoce do número de casos de dengue pelo Twitter em comparação ao sistema de vigilância tradicional. No entanto, os dados do Twitter foram agrupados com a semana começando numa quinta-feira e terminando na quarta-feira seguinte, enquanto que os dados do Ministério da Saúde provavelmente são agrupados considerando a semana começando no domingo, ou seja, a série do Twitter já está meia semana adiantada. Para compensar essa diferença, consideramos que houve detecção precoce apenas quando o coeficiente correspondente ao cálculo com atraso de 2 semanas é mais próximo de 1 do que os demais coeficientes. 229

237 Fig. 1. Acima, número de tweets. Abaixo, em verde, número de casos reais e em azul, número de casos previstos. 4. RESULTADOS Foram avaliados os resultados para as 285 cidades brasileiras com mais de cem mil habitantes. Em 2012, o número de casos de dengue registrados foi significativamente menor do que em Ainda assim, em 99.12% das previsões, o número de casos previstos através dos dados do Twitter recai na mesma faixa de classificação do número de casos registrados pelo Ministério da Saúde. Nenhuma das 285 cidades obteve 7 ou mais tweets durante todas as semanas analisadas. Optou-se por considerar então todas as cidades com 7 ou mais tweets em pelo menos 20 das 30 semanas, e assim o número de cidades que se encaixam neste perfil são 16. Dentre estas 16 cidades, estão Porto Alegre, RS, e Curitiba, PR, que pertencem à região Sul do Brasil e possuem pouquíssimos casos de dengue registrados. O grande número de tweets registrados nessas cidades pode ser devido à localização informada pelo usuário do Twitter e será objeto de trabalho futuro. A Tabela III mostra os resultados de algumas cidades, com o número de casos de dengue e o valor das correlações cruzadas considerando um atraso na série dos dados oficiais de 0, 1 e 2 semanas em relação aos dados do Twitter. Observou-se que em capitais onde há um histórico de surtos de dengue 230

238 e que o número de tweets é suficiente, o coeficiente de correlação se mostrou melhor do que em outras capitais em que o número de tweets é suficiente mas o número de casos de dengue é mais baixo (Tabela III). Em alguns desses casos, houve mais tweets sobre dengue do que casos de dengue registrados. Das 16 cidades analisadas, 10 obtiveram ao menos uma das correlações superior a 0.5. Tabela III. Correlação entre casos de dengue e tweets Cidade Casos de dengue Correlação 0 Correlação 1 Correlação 2 RIO DE JANEIRO RJ FORTALEZA CE RECIFE PE NATAL RN GOIÂNIA GO SALVADOR BA JOÃO PESSOA PB MANAUS AM ARACAJU SE SÃO PAULO SP BELÉM PA BRASÍLIA DF SANTOS SP BELO HORIZONTE MG CURITIBA PR PORTO ALEGRE RS CONCLUSÕES E TRABALHOS FUTUROS Neste artigo apresentamos um sistema de alarme para realizar vigilância epidemiológica de rumores da epidemia de dengue no Brasil. O ponto de partida do alarme é o número de mensagens postadas na rede social Twitter que expressam experiência pessoal com a doença. O alarme se baseia em dois critérios e foi validado usando os dados oficiais de notificação da dengue nas 30 primeiras semanas de Apesar de que em 2012 não houve grandes surtos como no ano anterior, a taxa de acerto (quando o número de casos previstos recai na mesma faixa de classificação que o número de casos reais) é bastante significativa. O volume insuficiente de tweets em determinadas cidades é uma limitação inerente ao modelo de previsão, por isso optamos por salientar as cidades em que isso não ocorreu. O principal motivo de falhas, mesmo com altas correlações entre tweets e casos reais, parece ser a grande variação no volume de casos de dengue de um ano para outro num mesmo local. Nas cidades onde isso aconteceu, como Rio de Janeiro RJ (Tabela I), Fortaleza CE e Cuiabá MT (Figura 1), a proporção de tweets por casos de dengue variou de 2011 para Para aproximar ainda mais o número de casos previstos do número real, outras funções de previsão podem ser geradas, e se elas estiverem bem ajustadas, o alarme pode até mesmo ajudar em casos de subnotificação dos dados oficiais. Em algumas cidades, como em Natal, RN, e São Paulo, SP, o coeficiente de correlação mais próximo de 1 é o correspondente ao atraso de 2 semanas na série dos dados oficiais, o que indica uma detecção precoce. Mas mesmo quando o melhor coeficiente é correspondente ao atraso zero, a detecção através de dados do Twitter contribui com a vigilância tradicional, pois na última, os dados demoram algumas semanas para chegar às mãos dos responsáveis pela elaboração de políticas preventivas e de combate à doença. Em termos de trabalhos futuros, pretendemos concluir a validação utilizando os dados oficiais de 2012 e identificar as causas que justificam os desvios ou erros de previsão. Pretendemos também aprimorar as técnicas de análise de sentimento e georeferenciamento para que tenhamos uma maior 231

239 acurácia na detecção dos tweets pertinentes por cidade. E, finalmente, pretendemos aperfeiçoar as técnicas de detecção, em particular para lidar com aumentos ou reduções suaves, que não são bem detectados pela estratégia utilizada, reajustando os parâmetros com os dados coletados em 2011 e 2012, sendo que o primeiro ano representa uma época em que houve grande incidência de dengue e o segundo, com a grande maioria das cidades com baixa incidência. AGRADECIMENTOS Este trabalho foi parcialmente financiado por CNPq, CAPES, Fapemig e InWeb. REFERÊNCIAS Achrekar, H., Gandhe, A., Lazarus, R., Ssu-Hsin Yu, and Liu, B. Predicting flu trends using Twitter data. In IEEE INFOCOM IEEE Conference on Computer Communications Workshops. IEEE, pp , Althouse, B. M., Ng, Y. Y., and Cummings, D. A. T. Prediction of dengue incidence using search query surveillance. PLoS Negl Trop Dis 5 (8): e1258, 08, Brourke, P. Cross Correlation Brownstein, J. S., Freifeld, C. C., Reis, B. Y., and Mandl, K. D. Surveillance sans frontiãĺres: Internet-based emerging infectious disease intelligence and the healthmap project. PLoS Med 5 (7): e151, 07, Chan, E. H., Sahai, V., Conrad, C., and Brownstein, J. S. Using web search query data to monitor dengue epidemics: A new model for neglected tropical disease surveillance. PLoS Negl Trop Dis 5 (5): e1206, 05, Chen, L., Achrekar, H., Liu, B., and Lazarus, R. Vision: towards real time epidemic vigilance through online social networks. In ACM Workshop on Mobile Cloud Computing Services: Social Networks and Beyond. ACM, pp. 1 5, Chunara, R., Andrews, J. R., and Brownstein, J. S. Social and News Media Enable Estimation of Epidemiological Patterns Early in the 2010 Haitian Cholera Outbreak. The American Journal of Tropical Medicine and Hygiene 86 (1): 39 45, Corley, C., Mikler, A. R., Singh, K. P., and Cook, D. J. Monitoring influenza trends through mining social media. In Procedings of International Conference on Bioinformatics & Computational Biology (BIOCOMP). CSREA Press, pp , Culotta, A. Towards detecting influenza epidemics by analyzing twitter messages. In Proceedings of the First Workshop on Social Media Analytics. SOMA 10. ACM, New York, NY, USA, pp , Freifeld, C. C., Mandl, K. D., Reis, B. Y., and Brownstein, J. S. Healthmap: Global infectious disease monitoring through automated classification and visualization of internet media reports. Journal of the American Medical Informatics Association (JAMIA) 15 (2): , Ginsberg, J., Mohebbi, M. H., Patel, R. S., Brammer, L., Smolinski, M. S., and Brilliant, L. Detecting influenza epidemics using search engine query data. Nature 457 (7232): , Gomide, J. S. Mineração de Redes Sociais para Detecção e Previsão de Eventos Reais. M.S. thesis, Universidade Federal de Minas Gerais, BR, Lampos, V. and Cristianini, N. Tracking the flu pandemic by monitoring the social web. In 2nd IAPR Workshop on Cognitive Information Processing (CIP 2010). IEEE Press, pp , Lampos, V. and Cristianini, N. Nowcasting events from the social web with statistical learning. ACM Transactions on Intelligent Systems and Technology (TIST), September, Lampos, V., De Bie, T., and Cristianini, N. Flu detector - tracking epidemics on twitter. Machine Learning and Knowledge vol. 6323, pp , Larsen, R. and Marx, M. An introduction to mathematical statistics and its applications. Prentice-Hall, Mawudeku, A. and Blench, M. Global public health intelligence network (gphin). In Proceedings of the 7th Conference of the Association for Machine Translation in the Americas, Sakaki, T., Okazaki, M., and Matsuo, Y. Earthquake shakes twitter users: real-time event detection by social sensors. In Proceedings of the 19th international conference on World wide web. WWW 10. ACM, New York, NY, USA, pp , Tumasjan, A., Sprenger, T. O., Sandner, P. G., and Welpe, I. M. Predicting elections with twitter : What 140 characters reveal about political sentiment. Word Journal Of The International Linguistic Association, Veloso, A., Meira Jr., W., and Zaki, M. J. Lazy associative classification. In International Conference on Data Mining. IEEE Computer Society, pp ,

240 Uma Abordagem para Detecção e Extração de Rótulos em Formulários Web Leonardo Bres dos Santos, Carina F. Dorneles, Ronaldo dos Santos Mello Universidade Federal de Santa Catarina dorneles Abstract. Deep Web volume continues to increase as well as the interest to discover and extract Web hidden database data and schemata. This is motivated by applications that intend to provide unied search over several Web forms or the hidden content of Web databases. On considering this context, this paper presents an approach for detecting and extracting labels in Web forms. For detecting a Web form, we propose an algorithm that analyzes HTML tags and identies if a Web page contains a form or not. We also developed an algorithm for label extraction based on the distance between a form eld and page labels in order to nd out the relationship between them. Some preliminary experiments demonstrate the eectiveness of the developed algorithms. Resumo. O volume de dados da Deep Web permanece aumentando, assim como o interesse pela descoberta e extração de dados e de esquemas de bancos de dados escondidos na Web. Tal fato é motivado pelo surgimento de aplicações cujo objetivo é permitir buscas unicadas sobre diversos formulários na Web e sobre o conteúdo escondido de bancos de dados na Web. Neste contexto, este artigo apresenta uma abordagem para a detecção e a extração de rótulos em formulários Web. Para a detecção de formulários é proposto um algoritmo que analisa tags HTML e identica se uma página Web contém ou não um formulário. Já para o problema do extração dos rótulos, é proposto um algoritmo baseado na distância entre um campo de um formulário e os rótulos da página a m de encontrar uma associação correta entre eles. Alguns experimentos preliminares demonstram a ecácia dos algoritmos desenvolvidos. Categories and Subject Descriptors: H.Information Systems [H.m. Miscellaneous]: Databases General Terms: Dados na web, Deep Web, Extração de informação Keywords: Web form, extração de rótulos 1. INTRODUÇÃO Uma imensa quantidade de dados digitais encontra-se disponível atualmente em milhões de bancos de dados na Web em diversos domínios do conhecimento, como venda de passagens aéreas, livrarias virtuais e compra/venda de veículos. O acesso a estes bancos de dados é possível somente através de formulários presentes em páginas Web, também chamados de "pontos de entrada" para o banco de dados. Estes formulários exibem alguns atributos do banco de dados (campos do formulário) sobre os quais o usuário especica ltros e então submete consultas ao banco de dados. Esses bancos de dados na Web são denominados "bancos de dados escondidos" (ou Deep Web), uma vez que o seu esquema e o seu conteúdo não estão completamente visíveis ao usuário [Madhavan et al. 2009]. A disponibilidade crescente de bancos de dados escondidos na Web tem motivado a comunidade de pesquisa em Banco de Dados a desenvolver soluções que permitam o gerenciamento desses dados com vistas principalmente a atividades de integração e busca, como por exemplo, encontrar Web sites que ofereçam veículos para venda e que me permitam denir consultas integradas a vários sites por determinadas marcas e modelos. Uma problemática neste contexto é a descoberta e a posterior Trabalho parcialmente nanciado pelo CNPq através de Bolsa PQ-Nível 2 (Nro. processo: /2010-1) e do projeto WF-Sim do edital Universal (Nro. processo: /2010-3). 233

241 extração de rótulos. Rótulos representam a identicação de atributos (nomenclatura de campos) presentes em formulários de acesso a um banco de dados escondido. O tratamento desta problemática é bastante relevante, pois serve de base para o reconhecimento do esquema de bancos escondidos e para viabilizar subsequentes mecanismos de busca. Trabalhos relacionados populares na literatura tratam essa questão através de abordagens consideradas complexas em termos de processamento e/ou conhecimento sobre o domínio requerido para a extração [Nguyen et al. 2008; Álvarez et al. 2007; Raghavan and Garcia-Molina 2001]. Este artigo apresenta Ifrit, uma abordagem simples, porém efetiva, para detecção e extração automática de rótulos centrada na análise estrutural do código HTML presente em páginas de formulários Web. Esta análise se baseia em um esquema de numeração para a hierarquia de tags HTML e um algoritmo que associa componentes de texto a campos do formulário, garantindo uma descoberta eciente de rótulos presentes nestes formulários. Experimentos preliminares comprovam a boa acurácia da abordagem. O restante deste artigo está organizado conforme segue. A seção 2 descreve sucintamente os principais trabalhos relacionados e suas limitações. A seção 3 detalha a abordagem proposta. A seção 4 apresenta os resultados experimentais com a execução do Ifrit e a seção 5 é dedicada às considerações nais. 2. TRABALHOS RELACIONADOS Algumas abordagens se propõem a extrair rótulos de formulários Web. LabelEx [Nguyen et al. 2008] é um crawler desenvolvido para resolver o problema da recuperação do conteúdo em bancos de dados escondidos. A proposta se baseia em uma técnica de aprendizado que extrai automaticamente os rótulos dos atributos contidos nos formulários. O problema chave é a identicação correta de um rótulo, pois existem inúmeras maneiras diferentes de posicionar um rótulo no espaço de denição de um atributo em um formulário Web. Para sanar este problema, LabelEx tenta aprender novos layouts de formulários e então extrair rótulos com comportamentos similares em termos de representação. Mesmo assim, a técnica não garante alta acurária, pois depende de boas amostras de páginas para ns de aprendizado. A ferramenta DeepBot [Álvarez et al. 2007] é um Web crawler focado em domínios especícos. A denição do domínio é pré-denida e composta basicamente por uma lista de atributos, cada um associado a um nome, pseudônimos e um limiar relevante. Os pseudônimos representam as possíveis variações para o nome do atributo e o limiar representa a importância que o atributo possui no domínio. No processo de extração, a ferramenta tenta combinar os atributos com os campos do formulário usando distância visual ou similaridade textual. A partir disso, é possível determinar se o formulário encontrado é relevante ao domínio. Sua principal deciência, entretanto, é a dependência (criação e manutenção) desta base de conhecimento por domínio. A abordagem descrita em [Raghavan and Garcia-Molina 2001], assim como o DeepBot, também efetua processamento do layout para calcular a distância de pixels entre o campo e os rótulos candidatos para ns de extração. O problema aqui é a complexidade do processo baseado em distância visual por pixels, que geralmente é alta. 3. IFRIT Esta seção apresenta o extrator Ifrit. Ifrit adota uma abordagem mais simples, porém efetiva, que as existentes nos principais trabalhos relacionados, tratando dois problemas: (i) a detecção dos formulários encontrados em páginas Web; e (ii) a associação entre campos dos formulários e seus respectivos rótulos. 234

242 3.1 Visão Geral A Figura 1 apresenta uma visão geral dos módulos que compoem a arquitetura do Ifrit. A API é o módulo mais importante, pois toda a lógica de reconhecimento e extração de formulários e rótulos está implementada ali. Para que o módulo API funcione, é necessário que ele receba como entrada uma URL e as congurações feitas pelo usuário no arquivo API.txt. Para realizar a navegação entre as páginas e a extração das URL's que irão abastecer a API, foi desenvolvido o módulo Crawler, que implementa a lógica de um Web crawler, além da interface com o usuário. Fig. 1. Visão geral do funcionamento do Ifrit O Crawler recebe como entrada as congurações feitas no arquivo Crawler.txt, que basicamente mantém a quantidade total de páginas a ser visitada e o browser que deve ser usado para acessar as páginas. Por m, o módulo DAO é responsável pela conexão com o banco de dados e inserção das informações coletadas no processo. O foco deste artigo é no módulo API. As seções a seguir detalham, respectivamente, os processos de detecção de formulários e extração de rótulos. 3.2 Detecção de Formulários O processo de detecção de formulários leva em conta os seguintes conceitos: Elemento: indica qualquer elemento suportado pelo HTML; Componente: elemento que representa um campo do formulário, como um Checkbox, Textbox e Combobox; Rótulo: texto associado a um componente do formulário; Container: elemento HTML que agrega outros elementos, como um Div. Para resolver o problema da descoberta de um formulário em uma página qualquer da Web, foi necessário denir as características que o código HTML deve apresentar para que seja possível inferir de maneira segura a existência de um formulário. O primeiro passo no desenvolvimento da proposta foi encontrar as peculiaridades de um formulário. Para isso, um algoritmo foi desenvolvido com o uso de parâmetros conguráveis, descritos a seguir. Estes parâmetros podem ser modicados de acordo com a exibilidade que se deseja permitir na busca: 235

Distribuição de Bases de Dados de Proveniência na Nuvem *

Distribuição de Bases de Dados de Proveniência na Nuvem * Distribuição de Bases de Dados de Proveniência na Nuvem * Edimar Santos 1, Vanessa Assis 1, Flavio Costa 1, Daniel de Oliveira 2 e Marta Mattoso 1 1 Programa de Engenharia de Sistemas e Computação COPPE

Leia mais

Paralelização de Tarefas de Mineração de Dados Utilizando Workflows Científicos 1

Paralelização de Tarefas de Mineração de Dados Utilizando Workflows Científicos 1 Paralelização de Tarefas de Mineração de Dados Utilizando Workflows Científicos 1 Carlos Eduardo Barbosa, Eduardo Ogasawara, Daniel de Oliveira, Marta Mattoso PESC COPPE Universidade Federal do Rio de

Leia mais

Monitoramento em Tempo Real de Workflows Científicos Executados em Paralelo em Ambientes Distribuídos *

Monitoramento em Tempo Real de Workflows Científicos Executados em Paralelo em Ambientes Distribuídos * Monitoramento em Tempo Real de Workflows Científicos Executados em Paralelo em Ambientes Distribuídos * Julliano Pintas, Daniel de Oliveira, Kary Ocaña, Jonas Dias, Marta Mattoso Programa de Engenharia

Leia mais

SciCumulus 2.0: Um Sistema de Gerência de Workflows Científicos para Nuvens Orientado a Fluxo de Dados *

SciCumulus 2.0: Um Sistema de Gerência de Workflows Científicos para Nuvens Orientado a Fluxo de Dados * paper:6 SciCumulus 2.0: Um Sistema de Gerência de Workflows Científicos para Nuvens Orientado a Fluxo de Dados * Vítor Silva 1, Daniel de Oliveira 2 e Marta Mattoso 1 1 COPPE Universidade Federal do Rio

Leia mais

A Cloud Computing Architecture for Large Scale Video Data Processing

A Cloud Computing Architecture for Large Scale Video Data Processing Marcello de Lima Azambuja A Cloud Computing Architecture for Large Scale Video Data Processing Dissertação de Mestrado Dissertation presented to the Postgraduate Program in Informatics of the Departamento

Leia mais

Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures

Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures GeoInfo - 2006 Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures Leonardo Lacerda Alves Clodoveu A. Davis Jr. Information Systems Lab

Leia mais

Tese / Thesis Work Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java

Tese / Thesis Work Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java Licenciatura em Engenharia Informática Degree in Computer Science Engineering Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java Performance analysis of large distributed

Leia mais

Luciana da Silva Almendra Gomes. Proveniência para Workflows de Bioinformática

Luciana da Silva Almendra Gomes. Proveniência para Workflows de Bioinformática Luciana da Silva Almendra Gomes Proveniência para Workflows de Bioinformática Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do título de Mestre pelo Programa de Pós-

Leia mais

Captura de Metadados de Proveniência para Workflows Científicos em Nuvens Computacionais

Captura de Metadados de Proveniência para Workflows Científicos em Nuvens Computacionais Captura de Metadados de Proveniência para Workflows Científicos em Nuvens Computacionais Carlos Paulino, Daniel de Oliveira, Sérgio Manuel Serra da Cruz, Maria Luiza Machado Campos, Marta Mattoso Universidade

Leia mais

Heurísticas para Controle de Execução de Atividades de Workflows Científicos na Nuvem 1

Heurísticas para Controle de Execução de Atividades de Workflows Científicos na Nuvem 1 Heurísticas para Controle de Execução de Atividades de Workflows Científicos na Nuvem 1 Flavio da Silva Costa Orientadora: Marta Mattoso Colaborador: Daniel de Oliveira Nível: Mestrado Programa de Engenharia

Leia mais

Dealing with Device Data Overflow in the Cloud

Dealing with Device Data Overflow in the Cloud Jaumir Valença da Silveira Junior Dealing with Device Data Overflow in the Cloud Dissertação de Mestrado Dissertation presented to the Programa de Pós- Graduação em Informática of the Departamento de Informática,

Leia mais

Geração automática de suíte de teste para GUI a partir de Rede de Petri

Geração automática de suíte de teste para GUI a partir de Rede de Petri Raquel Jauffret Guilhon Geração automática de suíte de teste para GUI a partir de Rede de Petri Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo

Leia mais

Serviços: API REST. URL - Recurso

Serviços: API REST. URL - Recurso Serviços: API REST URL - Recurso URLs reflectem recursos Cada entidade principal deve corresponder a um recurso Cada recurso deve ter um único URL Os URLs referem em geral substantivos URLs podem reflectir

Leia mais

SciProvMiner: Arquitetura para Captura de Proveniência de dados de Workflows Científicos utilizando o Modelo OPM

SciProvMiner: Arquitetura para Captura de Proveniência de dados de Workflows Científicos utilizando o Modelo OPM SciProvMiner: Arquitetura para Captura de Proveniência de dados de Workflows Científicos utilizando o Modelo OPM Tatiane O. M. Alves Regina M. M. Braga Departamento de Ciência da Computação Universidade

Leia mais

User interface evaluation experiences: A brief comparison between usability and communicability testing

User interface evaluation experiences: A brief comparison between usability and communicability testing User interface evaluation experiences: A brief comparison between usability and communicability testing Kern, Bryan; B.S.; The State University of New York at Oswego kern@oswego.edu Tavares, Tatiana; PhD;

Leia mais

CloudSimDB: Um Simulador para o Provisionamento de Máquinas Virtuais para o Processamento de Aplicações Centradas em Banco de Dados *

CloudSimDB: Um Simulador para o Provisionamento de Máquinas Virtuais para o Processamento de Aplicações Centradas em Banco de Dados * CloudSimDB: Um Simulador para o Provisionamento de Máquinas Virtuais para o Processamento de Aplicações Centradas em Banco de Dados * Humberto Lima, Felipe Aragão, Jonas Lima, Flávio R.C. Sousa, José Maria

Leia mais

Gerenciamento de Workflows Científicos em Bioinformática

Gerenciamento de Workflows Científicos em Bioinformática Gerenciamento de Workflows Científicos em Bioinformática Agosto de 2007 Estudante: Orientador: Co-orientadora: Luciano Antonio Digiampietri João Carlos Setubal Claudia Bauzer Medeiros Roteiro Introdução

Leia mais

UNIVERSIDADE DE SÃO PAULO FACULDADE DE EDUCAÇÃO JOÃO FÁBIO PORTO. Diálogo e interatividade em videoaulas de matemática

UNIVERSIDADE DE SÃO PAULO FACULDADE DE EDUCAÇÃO JOÃO FÁBIO PORTO. Diálogo e interatividade em videoaulas de matemática UNIVERSIDADE DE SÃO PAULO FACULDADE DE EDUCAÇÃO JOÃO FÁBIO PORTO Diálogo e interatividade em videoaulas de matemática São Paulo 2010 JOÃO FÁBIO PORTO Diálogo e interatividade em videoaulas de matemática

Leia mais

TÉCNICAS DE COMPUTAÇÃO PARALELA PARA MELHORAR O TEMPO DA MINERAÇÃO DE DADOS: Uma análise de Tipos de Coberturas Florestais

TÉCNICAS DE COMPUTAÇÃO PARALELA PARA MELHORAR O TEMPO DA MINERAÇÃO DE DADOS: Uma análise de Tipos de Coberturas Florestais UNIVERSIDADE ESTADUAL DE PONTA GROSSA PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO APLICADA CRISTIAN COSMOSKI RANGEL DE ABREU TÉCNICAS DE COMPUTAÇÃO PARALELA PARA MELHORAR

Leia mais

Instructions for Authors of SBC Conferences Papers and Abstracts

Instructions for Authors of SBC Conferences Papers and Abstracts Instructions for Authors of SBC Conferences Papers and Abstracts Marta Mattoso COPPE - Universidade Federal do Rio de Janeiro marta@cos.ufrj.br Resumo. Este meta-relatório descreve o estilo a ser usado

Leia mais

ESTRUTURA DE CAPITAL: UMA ANÁLISE EM EMPRESAS SEGURADORAS

ESTRUTURA DE CAPITAL: UMA ANÁLISE EM EMPRESAS SEGURADORAS ESTRUTURA DE CAPITAL: UMA ANÁLISE EM EMPRESAS SEGURADORAS THE CAPITAL STRUCTURE: AN ANALYSE ON INSURANCE COMPANIES FREDERIKE MONIKA BUDINER METTE MARCO ANTÔNIO DOS SANTOS MARTINS PAULA FERNANDA BUTZEN

Leia mais

BRIGHAM AND EHRHARDT PDF

BRIGHAM AND EHRHARDT PDF BRIGHAM AND EHRHARDT PDF ==> Download: BRIGHAM AND EHRHARDT PDF BRIGHAM AND EHRHARDT PDF - Are you searching for Brigham And Ehrhardt Books? Now, you will be happy that at this time Brigham And Ehrhardt

Leia mais

Digital Cartographic Generalization for Database of Cadastral Maps

Digital Cartographic Generalization for Database of Cadastral Maps Mariane Alves Dal Santo marianedalsanto@udesc.br Francisco Henrique de Oliveira chicoliver@yahoo.com.br Carlos Loch cloch@ecv.ufsc.br Laboratório de Geoprocessamento GeoLab Universidade do Estado de Santa

Leia mais

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company www.iportalmais.pt. Manual

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company www.iportalmais.pt. Manual IPortalMais: a «brainware» company FUNAMBOL FOR IPBRICK MANUAL Easy Linux! Title: Subject: Client: Reference: Funambol Client for Mozilla Thunderbird Doc.: Jose Lopes Author: N/Ref.: Date: 2009-04-17 Rev.:

Leia mais

Project Management Activities

Project Management Activities Id Name Duração Início Término Predecessoras 1 Project Management Activities 36 dias Sex 05/10/12 Sex 23/11/12 2 Plan the Project 36 dias Sex 05/10/12 Sex 23/11/12 3 Define the work 15 dias Sex 05/10/12

Leia mais

Contribution of the top boat game for learning production engineering concepts

Contribution of the top boat game for learning production engineering concepts Contribution of the top boat game for learning production engineering concepts Carla Sena Batista, Fabiana Lucena Oliveira, Enily Vieira do Nascimento, Viviane Da Silva Costa Novo Research Problem: How

Leia mais

BR-EMS MORTALITY AND SUVIVORSHIP LIFE TABLES BRAZILIAN LIFE INSURANCE AND PENSIONS MARKET

BR-EMS MORTALITY AND SUVIVORSHIP LIFE TABLES BRAZILIAN LIFE INSURANCE AND PENSIONS MARKET BR-EMS MORTALITY AND SUVIVORSHIP LIFE TABLES BRAZILIAN LIFE INSURANCE AND PENSIONS MARKET 2015 1 e-mail:mario@labma.ufrj.br Tables BR-EMS, mortality experience of the Brazilian Insurance Market, were constructed,

Leia mais

Interactive Internet TV Architecture Based on Scalable Video Coding

Interactive Internet TV Architecture Based on Scalable Video Coding Interactive Internet TV Architecture Based on Scalable Video Coding Pedro Gomes Moscoso Dissertação para obtenção do Grau de Mestre em Engenharia de Redes de Comunicações Presidente: Orientador: Co-Orientador:

Leia mais

Análise Probabilística de Semântica Latente aplicada a sistemas de recomendação

Análise Probabilística de Semântica Latente aplicada a sistemas de recomendação Diogo Silveira Mendonça Análise Probabilística de Semântica Latente aplicada a sistemas de recomendação Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do título de

Leia mais

Expandindo uma Arquitetura para HPC em Nuvens Computacionais Utilizando Conceitos de Computação

Expandindo uma Arquitetura para HPC em Nuvens Computacionais Utilizando Conceitos de Computação Expandindo uma Arquitetura para HPC em Nuvens Computacionais Utilizando Conceitos de Computação Autonômica Emanuel F. Coutinho 1, Gabriel A. L. Paillard 1 Leonardo O. Moreira 1, Ernesto Trajano de Lima

Leia mais

Mestrado em Ciências Jurídicas Especialização em História do Direito 2015-16

Mestrado em Ciências Jurídicas Especialização em História do Direito 2015-16 Mestrado em Ciências Jurídicas Especialização em História do Direito Unidade curricular História do Direito Português I (1º sem). Docente responsável e respectiva carga lectiva na unidade curricular Prof.

Leia mais

Uma Abordagem para a Avaliação de Processos de Desenvolvimento de Software Baseada em Risco e Conformidade

Uma Abordagem para a Avaliação de Processos de Desenvolvimento de Software Baseada em Risco e Conformidade Rafael de Souza Lima Espinha Uma Abordagem para a Avaliação de Processos de Desenvolvimento de Software Baseada em Risco e Conformidade Dissertação de Mestrado Dissertação apresentada como requisito parcial

Leia mais

Marcelo Nery dos Santos. GridFS Um Servidor de Arquivos para Grades e Ambientes Distribuídos Heterogêneos. Dissertação de Mestrado

Marcelo Nery dos Santos. GridFS Um Servidor de Arquivos para Grades e Ambientes Distribuídos Heterogêneos. Dissertação de Mestrado Marcelo Nery dos Santos GridFS Um Servidor de Arquivos para Grades e Ambientes Distribuídos Heterogêneos Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de

Leia mais

NORMAS PARA AUTORES. As normas a seguir descritas não dispensam a leitura do Regulamento da Revista Portuguesa de Marketing, disponível em www.rpm.pt.

NORMAS PARA AUTORES. As normas a seguir descritas não dispensam a leitura do Regulamento da Revista Portuguesa de Marketing, disponível em www.rpm.pt. NORMAS PARA AUTORES As normas a seguir descritas não dispensam a leitura do Regulamento da Revista Portuguesa de Marketing, disponível em www.rpm.pt. COPYRIGHT Um artigo submetido à Revista Portuguesa

Leia mais

SciCumulus-ECM: Um Serviço de Custos para a Execução de Workflows Científicos em Nuvens Computacionais 1

SciCumulus-ECM: Um Serviço de Custos para a Execução de Workflows Científicos em Nuvens Computacionais 1 SciCumulus-ECM: Um Serviço de Custos para a Execução de Workflows Científicos em Nuvens Computacionais 1 Vitor Viana 1, Daniel de Oliveira 1, Eduardo Ogasawara 1,2, Marta Mattoso 1 1 Universidade Federal

Leia mais

Deployment of Distributed Component-based Applications on Cloud Infrastructures

Deployment of Distributed Component-based Applications on Cloud Infrastructures Edward José Pacheco Condori Deployment of Distributed Component-based Applications on Cloud Infrastructures DISSERTAÇÃO DE MESTRADO Dissertation presented to the Programa de Pós-Graduação em Informática

Leia mais

Universidade do Minho. Escola de Engenharia. UC transversais Programas Doutorais 1º semestre 2012-13. 11 de outubro 2012

Universidade do Minho. Escola de Engenharia. UC transversais Programas Doutorais 1º semestre 2012-13. 11 de outubro 2012 Universidade do Minho Escola de Engenharia UC transversais Programas Doutorais 1º semestre 2012-13 11 de outubro 2012 1 2 2 courses offered in the first semestre: Métodos de Investigação em Engenharia

Leia mais

Simulação Gráfica e Visão Computacional. Soraia Raupp Musse

Simulação Gráfica e Visão Computacional. Soraia Raupp Musse Simulação Gráfica e Visão Computacional Soraia Raupp Musse Objetivo Analisar exemplos comerciais e do estado-da-arte científicos que utilizam dados reais para aprimorar a qualidade de simulações e animações.

Leia mais

Aula 02: Conceitos Fundamentais

Aula 02: Conceitos Fundamentais Aula 02: Conceitos Fundamentais Profa. Ms. Rosângela da Silva Nunes 1 de 26 Roteiro 1. Por que mineração de dados 2. O que é Mineração de dados 3. Processo 4. Que tipo de dados podem ser minerados 5. Que

Leia mais

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce

Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Estratégia para dentificação dos fatores de maior impacto de aplicações Mapreduce Fabiano da Guia Rocha Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso - Campus Cáceres Av. dos Ramires,

Leia mais

Ontology Building Process: The Wine Domain

Ontology Building Process: The Wine Domain Ontology Building Process: The Wine Domain João Graça, Márcio Mourão, Orlando Anunciação, Pedro Monteiro, H. Sofia Pinto, and Virgílio Loureiro Summary Context Ontology Wine Domain Existing Wine Ontologies

Leia mais

Online Collaborative Learning Design

Online Collaborative Learning Design "Online Collaborative Learning Design" Course to be offered by Charlotte N. Lani Gunawardena, Ph.D. Regents Professor University of New Mexico, Albuquerque, New Mexico, USA July 7- August 14, 2014 Course

Leia mais

Heterogeneous multi-core computer architectures and

Heterogeneous multi-core computer architectures and Heterogeneous multi-core computer architectures and Dedicated processing structures for Signal processing applications Nuno Roma Ongoing research! Heterogeneous any-core processing!

Leia mais

Corrida da Saúde. Infantis A - Feminino

Corrida da Saúde. Infantis A - Feminino Corrida da Saúde Classificação geral do corta-mato, realizado no dia 23 de Dezembro de 2007, na Escola E.B. 2,3 de Valbom. Contou com a participação dos alunos do 4º ano e do 2º e 3º ciclos do Agrupamento

Leia mais

T Ã O B O M Q U A N T O N O V O

T Ã O B O M Q U A N T O N O V O D I S S E R T A Ç Ã O D E M E S T R A D O M A S T E R I N G D I S S E R T A T I O N A V A L I A Ç Ã O D A C O N D I Ç Ã O D E T Ã O B O M Q U A N T O N O V O U M A A P L I C A Ç Ã O E N V O L V E N D O

Leia mais

INFORMATION SECURITY IN ORGANIZATIONS

INFORMATION SECURITY IN ORGANIZATIONS INFORMATION SECURITY IN ORGANIZATIONS Ana Helena da Silva, MCI12017 Cristiana Coelho, MCI12013 2 SUMMARY 1. Introduction 2. The importance of IT in Organizations 3. Principles of Security 4. Information

Leia mais

DPI. Núcleo de Apoio ao Desenvolvimento de Projetos e Internacionalização Project Development And Internationalization Support Office

DPI. Núcleo de Apoio ao Desenvolvimento de Projetos e Internacionalização Project Development And Internationalization Support Office DPI Núcleo de Apoio ao Desenvolvimento de Projetos e Internacionalização Project Development And Internationalization Support Office Apresentação/Presentation Criado em 1 de março de 2011, o Núcleo de

Leia mais

Carlos Eduardo Paulino Silva

Carlos Eduardo Paulino Silva CAPTURA DE DADOS DE PROVENIÊNCIA DE WORKFLOWS CIENTÍFICOS EM NUVENS COMPUTACIONAIS Carlos Eduardo Paulino Silva Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas

Leia mais

Transformação de um Modelo de Empresa em Requisitos de Software

Transformação de um Modelo de Empresa em Requisitos de Software Transformação de um Modelo de Empresa em Requisitos de Software Fábio Levy Siqueira 1 and Paulo Sérgio Muniz Silva 2 1 Programa de Educação Continuada da Poli-USP, São Paulo, Brazil 2 Escola Politécnica

Leia mais

Wiki::Score A Collaborative Environment For Music Transcription And Publishing

Wiki::Score A Collaborative Environment For Music Transcription And Publishing Wiki::Score A Collaborative Environment For Music Transcription And Publishing J.J. Almeida 1 N.R. Carvalho 1 J.N. Oliveira 1 1 Department of Informatics, University of Minho {jj,narcarvalho,jno}@di.uminho.pt

Leia mais

Ficha de unidade curricular Curso de Doutoramento

Ficha de unidade curricular Curso de Doutoramento Ficha de unidade curricular Curso de Doutoramento Unidade curricular História do Direito Português I (Doutoramento - 1º semestre) Docente responsável e respectiva carga lectiva na unidade curricular Prof.

Leia mais

Uma arquitetura baseada em agentes de software para a automação de processos de gerênciadefalhasemredesde telecomunicações

Uma arquitetura baseada em agentes de software para a automação de processos de gerênciadefalhasemredesde telecomunicações Adolfo Guilherme Silva Correia Uma arquitetura baseada em agentes de software para a automação de processos de gerênciadefalhasemredesde telecomunicações Dissertação de Mestrado Dissertação apresentada

Leia mais

UMA ABORDAGEM PARA ALTERAÇÃO NA DEFINIÇÃO DE ATIVIDADES DE WORKFLOWS CIENTÍFICOS EM TEMPO DE EXECUÇÃO. Igor de Araujo dos Santos

UMA ABORDAGEM PARA ALTERAÇÃO NA DEFINIÇÃO DE ATIVIDADES DE WORKFLOWS CIENTÍFICOS EM TEMPO DE EXECUÇÃO. Igor de Araujo dos Santos UMA ABORDAGEM PARA ALTERAÇÃO NA DEFINIÇÃO DE ATIVIDADES DE WORKFLOWS CIENTÍFICOS EM TEMPO DE EXECUÇÃO Igor de Araujo dos Santos Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia

Leia mais

Caracterização dos servidores de email

Caracterização dos servidores de email Caracterização dos servidores de email Neste documento é feita a modulação de um servidor de email, com isto pretende-se descrever as principais funcionalidades e características que um servidor de email

Leia mais

Luiz Fernando Fernandes de Albuquerque. Avaliação de algoritmos online para seleção de links patrocinados. Dissertação de Mestrado

Luiz Fernando Fernandes de Albuquerque. Avaliação de algoritmos online para seleção de links patrocinados. Dissertação de Mestrado Luiz Fernando Fernandes de Albuquerque Avaliação de algoritmos online para seleção de links patrocinados Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de

Leia mais

Xavantes: Structured Process Execution Support for Grid Environments

Xavantes: Structured Process Execution Support for Grid Environments Xavantes: Structured Process Execution Support for Grid Environments Fábio R. L. Cicerre 1, Edmundo R. M. Madeira 1, Luiz E. Buzato 1 1 Instituto de Computação Universidade Estadual de Campinas (UNICAMP)

Leia mais

1. Relato da Coordenação do Comitê de Organização Local do SBBD 2015, Prof. Fábio Porto (LNCC) e Prof. Eduardo Ogasawara (CEFET-RJ)

1. Relato da Coordenação do Comitê de Organização Local do SBBD 2015, Prof. Fábio Porto (LNCC) e Prof. Eduardo Ogasawara (CEFET-RJ) Ata da Reunião da Comissão Especial de Banco de Dados (CEBD) realizada durante o Simpósio Brasileiro de Banco de Dados (SBBD) 2015 na cidade do Petrópolis, RJ, Brasil A reunião da CEBD realizou-se no dia

Leia mais

Types of Investments: Equity (9 companies) Convertible Notes (10 companies)

Types of Investments: Equity (9 companies) Convertible Notes (10 companies) IMPACT INVESTING WE STARTED... A Venture Capital Fund Focused on Impact Investing Suport: Financial TA Criterias to select a company: Social Impact Profitabilty Scalability Investment Thesis (Ed, HC,

Leia mais

21/03/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

21/03/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas Processamento de Consultas em Bancos de Dados Distribuídos Visão geral do processamento de consultas IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias

Leia mais

Efficient Locally Trackable Deduplication in Replicated Systems. www.gsd.inesc-id.pt. technology from seed

Efficient Locally Trackable Deduplication in Replicated Systems. www.gsd.inesc-id.pt. technology from seed Efficient Locally Trackable Deduplication in Replicated Systems João Barreto and Paulo Ferreira Distributed Systems Group INESC-ID/Technical University Lisbon, Portugal www.gsd.inesc-id.pt Bandwidth remains

Leia mais

Analysis, development and monitoring of business processes in Corporate environment

Analysis, development and monitoring of business processes in Corporate environment Analysis, development and monitoring of business processes in Corporate environment SAFIRA is an IT consulting boutique known for transforming the way organizations do business, or fulfil their missions,

Leia mais

Welcome to Lesson A of Story Time for Portuguese

Welcome to Lesson A of Story Time for Portuguese Portuguese Lesson A Welcome to Lesson A of Story Time for Portuguese Story Time is a program designed for students who have already taken high school or college courses or students who have completed other

Leia mais

Dennis Seiji Taquemori. ISO 9001: Eficiência ou Legitimidade? Dissertação de Mestrado

Dennis Seiji Taquemori. ISO 9001: Eficiência ou Legitimidade? Dissertação de Mestrado Dennis Seiji Taquemori ISO 9001: Eficiência ou Legitimidade? Dissertação de Mestrado Dissertação apresentada ao Programa de Pósgraduação em Administração de Empresas da PUC-Rio como requisito parcial para

Leia mais

Automated Control in Cloud Computing: Challenges and Opportunities

Automated Control in Cloud Computing: Challenges and Opportunities Automated Control in Cloud Computing: Challenges and Opportunities Harold C. Lim¹, Shivnath Babu¹, Jeffrey S. Chase², Sujay S. Parekh² Duke University, NC, USA¹, IBM T.J. Watson Research Center² ACDC '09

Leia mais

LICENCIATURA EM ENG. DE SISTEMAS E INFORMÁTICA Redes e Serviços de Banda Larga. Laboratório 4. OSPF Backbone

LICENCIATURA EM ENG. DE SISTEMAS E INFORMÁTICA Redes e Serviços de Banda Larga. Laboratório 4. OSPF Backbone Laboratório 4 OSPF Backbone Equipamento necessário: Três OmniSwitches Objectivo: Este laboratório tem como objectivo familiarizar os alunos com as configurações RIP em comutadores OmniSwitch. Sintaxe dos

Leia mais

inciência Iniciação Científica Embrapa Anais da X Jornada de Iniciação Científica da Embrapa Amazônia Ocidental

inciência Iniciação Científica Embrapa Anais da X Jornada de Iniciação Científica da Embrapa Amazônia Ocidental inciência Iniciação Científica Embrapa Anais da X Jornada de Iniciação Científica da Empresa Brasileira de Pesquisa Agropecuária Ministério da Agricultura, Pecuária e Abastecimento Anais da X Jornada de

Leia mais

Redes Neurais na Manutenção Preditiva de Caminhões Fora de Estrada

Redes Neurais na Manutenção Preditiva de Caminhões Fora de Estrada Felipe Miana de Faria Furtado Redes Neurais na Manutenção Preditiva de Caminhões Fora de Estrada Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo

Leia mais

SISTEMAS DE APRENDIZADO PARA A IDENTIFICAÇÃO DO NÚMERO DE CAROÇOS DO FRUTO PEQUI LEARNING SYSTEMS FOR IDENTIFICATION OF PEQUI FRUIT SEEDS NUMBER

SISTEMAS DE APRENDIZADO PARA A IDENTIFICAÇÃO DO NÚMERO DE CAROÇOS DO FRUTO PEQUI LEARNING SYSTEMS FOR IDENTIFICATION OF PEQUI FRUIT SEEDS NUMBER SISTEMAS DE APRENDIZADO PARA A IDENTIFICAÇÃO DO NÚMERO DE CAROÇOS DO FRUTO PEQUI Fernando Luiz de Oliveira 1 Thereza Patrícia. P. Padilha 1 Conceição A. Previero 2 Leandro Maciel Almeida 1 RESUMO O processo

Leia mais