UC Irvine UC Irvine Electronic Theses and Dissertations

Total Page:16

File Type:pdf, Size:1020Kb

UC Irvine UC Irvine Electronic Theses and Dissertations UC Irvine UC Irvine Electronic Theses and Dissertations Title Large-Scale Code Clone Detection Permalink https://escholarship.org/uc/item/45r2308g Author Sajnani, Hitesh Publication Date 2016 Peer reviewed|Thesis/dissertation eScholarship.org Powered by the California Digital Library University of California UNIVERSITY OF CALIFORNIA, IRVINE Large-Scale Code Clone Detection DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science by Hitesh Sajnani Dissertation Committee: Professor Cristina Lopes, Chair Professor Andr´evan der Hoek Professor James A. Jones 2016 Portions of Chapter 3 c 2016 IEEE Portions of Chapter 4 c 2016 IEEE Portions of Chapter 5 c 2015 Wiley & Sons, Inc. Portions of Chapter 6 c 2016 IEEE Portions of Chapter 7 c 2014 IEEE All other materials c 2016 Hitesh Sajnani DEDICATION To my parents, sisters, beloved wife, and pramukh swami maharaj. ii Contents Page LIST OF FIGURES vi LIST OF TABLES viii ACKNOWLEDGMENTS ix CURRICULUM VITAE xi ABSTRACT OF THE DISSERTATION xii 1 Introduction 1 1.1 Motivation . 2 1.2 Terminology . 4 1.2.1 Code Clone Terms . 4 1.2.2 Code Clone Types . 4 1.3 Problem Statement . 6 1.4 Research Questions . 7 1.5 Thesis . 8 1.6 Contributions . 9 2 Clone Detection: Background and Related Work 11 2.1 Why Do Code Clones Exist? . 11 2.2 Issues Due to Code Cloning . 14 2.3 Applications of Clone Detection . 14 2.4 Clone Detection Techniques and Tools . 16 2.5 Measures to Evaluate Clone Detection Techniques . 19 2.6 Impact of Code Cloning on Software Systems . 20 2.7 Chapter Summary . 22 3 SourcererCC: Accurate and Scalable Code Clone Detection 23 3.1 Problem Formulation . 24 3.2 Overview of the Approach . 28 3.3 Filtering Heuristics to Reduce Candidate Comparisons . 30 3.3.1 Sub-block Overlap Filtering . 30 3.3.2 Token Position Filtering . 35 3.4 Clone Detection Algorithm . 36 iii 3.4.1 Partial Index Creation . 37 3.4.2 Clone Detection . 39 3.4.3 Candidate Verification . 42 3.4.4 Revisiting the Research Questions . 43 3.5 Implementation . 45 3.5.1 Parser . 45 3.5.2 Indexer . 49 3.5.3 Searcher . 50 3.6 Chapter Summary . 50 4 Evaluation of SourcererCC 51 4.1 Execution Time and Scalability . 53 4.2 Experiment with Big IJaDataset . 55 4.3 Recall . 57 4.3.1 Recall Measured by the Mutation Framework . 58 4.3.2 Recall Measured by BigCloneBench . 61 4.4 Precision . 65 4.5 Summary of Recall and Precision Experiments . 67 4.6 Sensitivity Analysis of the Similarity Threshold Parameter . 68 4.7 Manual Inspection of Clones Detected by SourcererCC . 72 4.8 Threats to Validity . 78 4.9 Chapter Summary . 79 5 SourcererCC-D: Parallel and Distributed SourcererCC 80 5.1 Introduction . 80 5.2 Architecture . 82 5.3 Evaluation . 84 5.3.1 Evaluation Metrics . 84 5.3.2 Experiments to Measure the Speed-up . 86 5.3.3 Experiments to Measure the Scale-up . 88 5.3.4 Detecting Project Clones in the MUSE Repository . 89 5.4 Chapter Summary . 93 6 SourcererCC-I: Interactive SourcererCC for Developers 95 6.1 Introduction . 95 6.2 A Preliminary Survey . 97 6.3 SourcererCC-I's Architecture . 98 6.4 SourcererCC-I's Features . 101 6.5 Related Tools . 104 6.6 Tool Artifacts . 106 6.7 Chapter Summary . 107 7 Empirical Applications of SourcererCC 108 7.1 Introduction . 109 iv 7.2 Study 1. A Comparative Study of Bug Patterns in Java Cloned and Non- cloned Code . 112 7.2.1 Research Questions . 112 7.2.2 Study Design . 114 7.2.3 Study Results . 120 7.2.4 Conclusion (Study 1) . 130 7.3 Study 2. A Comparative Study of Software Quality Metrics in Java Cloned and Non-cloned Code . 131 7.3.1 Research Questions . 131 7.3.2 Dataset . 132 7.3.3 Clone Detection . 132 7.3.4 Software Quality Metrics . 135 7.3.5 Summary of the Results . 135 7.3.6 Conclusion (Study 2) . 137 7.4 Threats to Validity . 138 7.5 Reproducibility . 140 7.6 Chapter Summary . 140 8 Conclusions and Discussion 142 8.1 Dissertation Summary . 142 8.2 The Surprising Effectiveness of the Bag-of-tokens model and Overlap Similar- ity Measure in Clone Detection . 145 8.3 Lessons Learned During SourcererCC's Development . 146 8.4 Going Forward . 149 Bibliography 151 Appendices 161 A Subject Systems . 162 B Running SourcererCC-D Using Amazon Web Services (AWS) . 164 C Experience Report on Using AWS . 167 D Cost of Running the Experiments Using AWS . 169 v List of Figures Page 1.1 Type 1 Example Clone-pair . 5 1.2 Type 2 Example Clone-pair . 5 1.3 Type 3 Example Clone-pair . 6 1.4 Type 4 Example Clone-pair . 6 3.1 Code blocks represented as a set of (token, frequency) pairs . 25 3.2 Methods from Apache Cocoon Project . 26 3.3 Growth in number of candidate comparisons with the increase in the number of code blocks . 27 3.4 SourcererCC's clone detection process . 29 3.5 Sample code fragment as input to the parser . 46 3.6 Output produced by the parser . 46 3.7 Delimiters used in the output file produced by the parser . 47 3.8 (Token, Frequency) pair representation in the output format . 47 4.1 Summary of Results. F-Measure is computed using Recall (BigCloneBench) and Precision . 68 4.2 Change in number of clones reported (top-center), number of candidates com- pared (bottom-left), and number of tokens compared (bottom-right) with the change in similarity threshold. 70 4.3 Sample code clones observed in the subject systems. 1A & 1B: Cross-cutting Concerns; 2: Code Generation; 3: API/Library Protocols; 4A, 4B & 5A, 5B: Replicate and Specialize; 6A & 6B: Near-Exact Copy . 76 5.1 Shared-disk Architectural Style . 82 5.2 Shared-memory Architectural Style . 82 5.3 SourcererCC-D's Clone Detection Process . 83 5.4 Speed-up . 85 5.5 Scale-up . 86 5.6 Speed-up . 87 5.7 The number of clone-pairs detected increases exponentially.
Recommended publications
  • Implementation Recommendations for MOSAIC: a Workflow Architecture for Analytic Enrichment
    MTR-MNI-000-012 MITRE TECHNICAL REPORT Implementation Recommendations for MOSAIC: A Workflow Architecture for Analytic Enrichment Contract No.: DAAB07 -01 -C-C201 Analysis and recommendations for the Project No.: 0710N7AZ-SF implementation of a cohesive method for orchestrating analytics in a distributed model Approved for Public Release. Distribution Ransom Winder Unlimited. 12-2472 Nathan Giles Joseph Jubinski ©2010 The MITRE Corporation. All Rights Reserved. July, 2010 (updated, February, 2011) MOSAIC – Implementation Recommendations The MITRE Corporation, 2010-2011 Contents Introduction ..................................................................................................................................... 3 Architectural Goal of MOSAIC .................................................................................................. 3 Architectural Options for MOSAIC............................................................................................ 4 Case Study: METEOR .................................................................................................................. 10 Tightly Integrated Architecture Technology Analysis ................................................................. 12 Recommendation ...................................................................................................................... 13 Discrete Process Architecture Technology Analysis .................................................................... 13 Discrete Process Architecture Technology Analysis: Interface...............................................
    [Show full text]
  • UIMA Simple Server User Guide Written and Maintained by the Apache UIMA Development Community
    UIMA Simple Server User Guide Written and maintained by the Apache UIMA Development Community Version 2.3.1 Copyright © 2006, 2011 The Apache Software Foundation License and Disclaimer. The ASF licenses this documentation to you under the Apache License, Version 2.0 (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, this documentation and its contents are distributed under the License on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Trademarks. All terms mentioned in the text that are known to be trademarks or service marks have been appropriately capitalized. Use of such terms in this book should not be regarded as affecting the validity of the the trademark or service mark. Publication date August, 2011 Table of Contents 1. Introduction .................................................................................................................. 1 1.1. Quick start for the impatient ................................................................................ 1 1.1.1. Build a sample WAR file .......................................................................... 1 1.1.2. Trying it out ............................................................................................ 5 UIMA Simple Server User Guide iii Chapter 1. Introduction The UIMA Simple Server makes results of UIMA processing available in a simple, XML- based format. The intended use of the the Simple Server is to provide UIMA analysis as a REST service. The Simple Server is implemented as a Java Servlet, and can be deployed into any Servlet container (such as Apache Tomcat or Jetty).
    [Show full text]
  • Open Innovation in the Apache Software Foundation
    Open Innovation in The Apache Software Foundation Dr. Justin R. Erenkrantz The Apache Software Foundation TransferSummit/UK http://www.erenkrantz.com/ [email protected] Twitter: @jerenkrantz Friday, June 25, 2010 Why should I pay attention? Committer to Apache HTTP Server, APR, Subversion, and Serf (non-ASF project) President, The Apache Software Foundation Ph.D. from Univ. of California, Irvine Computational REST (next-gen web arch.) http://www.erenkrantz.com/CREST/ CTO, Project WBS 2 Friday, June 25, 2010 Open Source & Me Started contributing to Apache HTTP Server in early 2001... http://www.flickr.com/photos/x180/2704965763/ http://www.flickr.com/photos/bluxte/2103773754/ (James Duncan Davidson) (Sylvain Wallez) 3 Friday, June 25, 2010 Apache Top-level Projects Abdera CXF Karaf Pivot Tika ActiveMQ DB (Derby) Lenya POI Tiles Ant Directory Logging Portals Tomcat APR Excalibur Lucene Qpid Traffic Server Archiva Felix Maven Roller Turbine Avro Forrest Mahout Santuario Tuscany Axis Geronimo Mina ServiceMix UIMA Buildr Gump MyFaces Shindig Velocity Camel Hadoop Nutch Sling Wicket Cassandra Harmony ODE SpamAssassin Web Services Cayenne HBase OFBiz STDCXX Xalan Click HC OpenEJB Struts Xerces Cocoon HTTP Server OpenJPA Subversion XML Commons Jackrabbit OpenWebBeans Synapse XMLBeans Continuum Jakarta PDFBox Tapestry XML Graphics CouchDB James Perl (mod_perl) TCL ...Incubator podlings... 4 Friday, June 25, 2010 Apache’s tagline We are more than a group of projects sharing a server, we are a community of developers and users. 5 Friday, June 25, 2010 Committer geographic diversity http://people.apache.org/map.html Challenges and advantages arise from this! 6 Friday, June 25, 2010 Project Diversity in Apache Seventy top-level projects (TLPs) Java, C, C++, Perl, etc.
    [Show full text]
  • Open Source and Third Party Documentation
    Open Source and Third Party Documentation Verint.com Twitter.com/verint Facebook.com/verint Blog.verint.com Content Introduction.....................2 Licenses..........................3 Page 1 Open Source Attribution Certain components of this Software or software contained in this Product (collectively, "Software") may be covered by so-called "free or open source" software licenses ("Open Source Components"), which includes any software licenses approved as open source licenses by the Open Source Initiative or any similar licenses, including without limitation any license that, as a condition of distribution of the Open Source Components licensed, requires that the distributor make the Open Source Components available in source code format. A license in each Open Source Component is provided to you in accordance with the specific license terms specified in their respective license terms. EXCEPT WITH REGARD TO ANY WARRANTIES OR OTHER RIGHTS AND OBLIGATIONS EXPRESSLY PROVIDED DIRECTLY TO YOU FROM VERINT, ALL OPEN SOURCE COMPONENTS ARE PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. Any third party technology that may be appropriate or necessary for use with the Verint Product is licensed to you only for use with the Verint Product under the terms of the third party license agreement specified in the Documentation, the Software or as provided online at http://verint.com/thirdpartylicense. You may not take any action that would separate the third party technology from the Verint Product. Unless otherwise permitted under the terms of the third party license agreement, you agree to only use the third party technology in conjunction with the Verint Product.
    [Show full text]
  • Distributed UIMA Cluster Computing
    Distributed UIMA Cluster Computing Written and maintained by the Apache UIMATMDevelopment Community Version 1.0.0 i Copyright c 2012 The Apache Software Foundation Copyright c 2012 International Business Machines Corporation License and Disclaimer The ASF licenses this documentation to you under the Apache License, Version 2.0 (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, this documentation and its contents are distributed under the License on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Trademarks All terms mentioned in the text that are known to be trademarks or service marks have been appropriately capitalized. Use of such terms in this book should not be regarded as affecting the validity of the the trademark or service mark. Publication date: 14-01-2014 Table of Contents I DUCC Concepts1 1 DUCC Overview 2 1.1 What is DUCC?................................................2 1.2 DUCC Job Model...............................................2 1.3 DUCC From UIMA to Full Scale-out.....................................3 1.4 Error Management...............................................5 1.5 Cluster and Job Management.........................................6 1.6 Security Measures...............................................7 1.7 Security Issues.................................................7 2 Glossary 8 II Ducc Users Guide 10 3 Command Line Interface 11 3.1 The DUCC Job Descriptor.......................................... 11 3.2 Operating System Limit Support....................................... 12 3.3 Command Line Forms............................................
    [Show full text]
  • UIMA Asynchronous Scaleout Written and Maintained by the Apache UIMA™ Development Community
    UIMA Asynchronous Scaleout Written and maintained by the Apache UIMA™ Development Community Version 2.10.3 Copyright © 2006, 2018 The Apache Software Foundation License and Disclaimer. The ASF licenses this documentation to you under the Apache License, Version 2.0 (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, this documentation and its contents are distributed under the License on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Trademarks. All terms mentioned in the text that are known to be trademarks or service marks have been appropriately capitalized. Use of such terms in this book should not be regarded as affecting the validity of the the trademark or service mark. Publication date March, 2018 Table of Contents 1. Overview - Asynchronous Scaleout ................................................................................. 1 1.1. Terminology ....................................................................................................... 1 1.2. AS versus CPM .................................................................................................. 2 1.3. Design goals for Asynchronous Scaleout ............................................................... 3 1.4. AS Concepts .....................................................................................................
    [Show full text]
  • Version 3 User's Guide
    Apache UIMA™ Apache UIMA™ Development Community Version 3.2.0 UIMA 3 User's Guide Overview of UIMA Version 3 . 2 What’s new in UIMA 3 . 2 Java 8 is required . 5 Backwards Compatibility . 6 JCas and non-JCas APIs . 6 Additional reserved names in the JCas generated classes . 6 Serialization forms . 6 Delta CAS Version 2 Binary deserialization not supported . 6 APIs for creating and modifying Feature Structures. 7 Preserving V2 ids, with low level CAS Api accessibility . 7 PEAR support . 9 toString(). 9 Logging configuration is somewhat different. 9 Type System sharing . 10 Some checks moved to native Java . 10 Some class hierarchies have been modified . 11 Enabling multiple versions of type systems to work with a single common JCas class . 11 New and Extended APIs . 12 UIMA FSIndex and FSIterators improvements. 12 New Select API . 13 New custom Java objects in the CAS framework . 13 Built-in lists and arrays. 13 Built-in lists and arrays have common super classes / interfaces . 14 Many UIMA objects implement Stream or Collection . 14 Reorganized APIs . 14 Use of JCas Class to specify a UIMA type . 15 JCasGen changes. 15 JCas additional static fields . 15 Generics added . 15 Other changes . 15 SelectFS CAS data access. 17 Select’s use of the builder pattern . 17 Sources of Feature Structures . 18 Use of Type in selection of sources . 19 Sources and generic typing. 19 Selection and Ordering. 21 Boolean properties . 22 Configuration for any source . 22 Configuration for any index . 22 Configuration for sort-ordered indexes . 23 Following or Preceding . 24 Bounded sub-selection within an Annotation Index .
    [Show full text]
  • No Jerks Allowed!
    The Apache Software Foundation: No Jerks Allowed! Dr. Justin R. Erenkrantz The Apache Software Foundation OSBC 2010 http://www.erenkrantz.com/ [email protected] Twitter: @jerenkrantz Why should I pay attention? Committer to Apache HTTP Server, APR, Subversion (just graduated!), and Serf President, The Apache Software Foundation Ph.D. from Univ. of California, Irvine Computational REST (next-gen web arch.) http://www.erenkrantz.com/CREST/ CTO, Project WBS 2 Open Source & Me Started contributing to Apache HTTP Server in early 2001... http://www.flickr.com/photos/x180/2704965763/ http://www.flickr.com/photos/bluxte/2103773754/ (James Duncan Davidson) (Sylvain Wallez) 3 Apache Top-level Projects Abdera CXF James POI Tiles ActiveMQ DB (Derby) Lenya Portals Tomcat Ant Directory Logging Qpid Turbine APR Excalibur Lucene Roller Tuscany Archiva Felix Maven Santuario UIMA Axis Forrest Mina ServiceMix Velocity Buildr Geronimo MyFaces Shindig Wicket Camel Gump ODE Sling Web Services Cassandra Hadoop OFBiz SpamAssassin Xalan Cayenne Harmony OpenEJB STDCXX Xerces Click HC OpenJPA Struts XML Cocoon HTTP Server OpenWebBeans Subversion XMLBeans Commons iBATIS PDFBox Synapse XML Graphics Continuum Jackrabbit Perl (mod_perl) Tapestry ...and Incubator CouchDB Jakarta Pivot TCL podlings... 4 Apache’s tagline We are more than a group of projects sharing a server, we are a community of developers and users. 5 Committer geographic diversity http://people.apache.org/map.html Challenges and advantages arise from this! 6 Project Diversity in Apache Seventy top-level projects (TLPs) Java, C, C++, Perl, etc. projects... It’s okay for projects to be in “same” space Ant/Maven, Pig/Hive, Axis/CXF... Over thirty projects currently in “pipeline” Apache aims to provides a pragmatic non-technical framework to its projects 7 Apache’s mission The Apache Software Foundation provides support for the Apache community of open- source software projects.
    [Show full text]
  • Code Smell Prediction Employing Machine Learning Meets Emerging Java Language Constructs"
    Appendix to the paper "Code smell prediction employing machine learning meets emerging Java language constructs" Hanna Grodzicka, Michał Kawa, Zofia Łakomiak, Arkadiusz Ziobrowski, Lech Madeyski (B) The Appendix includes two tables containing the dataset used in the paper "Code smell prediction employing machine learning meets emerging Java lan- guage constructs". The first table contains information about 792 projects selected for R package reproducer [Madeyski and Kitchenham(2019)]. Projects were the base dataset for cre- ating the dataset used in the study (Table I). The second table contains information about 281 projects filtered by Java version from build tool Maven (Table II) which were directly used in the paper. TABLE I: Base projects used to create the new dataset # Orgasation Project name GitHub link Commit hash Build tool Java version 1 adobe aem-core-wcm- www.github.com/adobe/ 1d1f1d70844c9e07cd694f028e87f85d926aba94 other or lack of unknown components aem-core-wcm-components 2 adobe S3Mock www.github.com/adobe/ 5aa299c2b6d0f0fd00f8d03fda560502270afb82 MAVEN 8 S3Mock 3 alexa alexa-skills- www.github.com/alexa/ bf1e9ccc50d1f3f8408f887f70197ee288fd4bd9 MAVEN 8 kit-sdk-for- alexa-skills-kit-sdk- java for-java 4 alibaba ARouter www.github.com/alibaba/ 93b328569bbdbf75e4aa87f0ecf48c69600591b2 GRADLE unknown ARouter 5 alibaba atlas www.github.com/alibaba/ e8c7b3f1ff14b2a1df64321c6992b796cae7d732 GRADLE unknown atlas 6 alibaba canal www.github.com/alibaba/ 08167c95c767fd3c9879584c0230820a8476a7a7 MAVEN 7 canal 7 alibaba cobar www.github.com/alibaba/
    [Show full text]
  • Eyeglass Search OSS Licenses and Packages V9
    ECA 15.1 opensuse https://en.opensuse.org/openSUSE:License Package Licence Name Version Type Key Licence Name opensuse 15.1 OS annogen:annogen 0.1.0 JAR Not Found antlr:antlr 2.7.7 JAR BSD Berkeley Software Distribution (BSD) aopalliance:aopalliance 1 JAR Public DomainPublic Domain asm:asm 3.1 JAR Not Found axis:axis 1.4 JAR Apache-2.0 The Apache Software License, Version 2.0 axis:axis-wsdl4j 1.5.1 JAR Not Found backport-util-concurrent:backport-util-concurrent3.1 JAR Public DomainPublic Domain com.amazonaws:aws-java-sdk 1.1.7.1 JAR Apache-2.0 The Apache Software License, Version 2.0 com.beust:jcommander 1.72 JAR Apache-2.0 The Apache Software License, Version 2.0 com.carrotsearch:hppc 0.6.0 JAR Apache-2.0 The Apache Software License, Version 2.0 com.clearspring.analytics:stream 2.7.0 JAR Apache-2.0 The Apache Software License, Version 2.0 com.drewnoakes:metadata-extractor 2.4.0-beta-1JAR Public DomainPublic Domain com.esotericsoftware:kryo-shaded 3.0.3 JAR BSD Berkeley Software Distribution (BSD) com.esotericsoftware:minlog 1.3.0 JAR BSD Berkeley Software Distribution (BSD) com.fasterxml.jackson.core:jackson-annotations2.6.1 JAR Apache-2.0 The Apache Software License, Version 2.0 com.fasterxml.jackson.core:jackson-annotations2.5.0 JAR Apache-2.0 The Apache Software License, Version 2.0 com.fasterxml.jackson.core:jackson-annotations2.2.0 JAR Apache-2.0 The Apache Software License, Version 2.0 com.fasterxml.jackson.core:jackson-annotations2.9.0 JAR Apache-2.0 The Apache Software License, Version 2.0 com.fasterxml.jackson.core:jackson-annotations2.6.0
    [Show full text]
  • UIMA: Unstructured Information Management Architecture
    UIMA: Unstructured Information Management Architecture Alessandro Moschitti Department of Computer Science and Information Engineering University of Trento Email: [email protected] Motivations ! " Nowadays, natural language processing systems are becoming more and more complex ! " Many linguistic processors: ! Tokenizers, Sentence Splitter, Topic Categorization, Pos-Tagging, Syntactic Parsing, Shallow Semantic Parsing, Coreference Resolution, Relation Extraction, Textual Entailment, Semantic Role Labeling, Opinion Miners, Disambiguation Module, Named Entity Recognition and Normalization… Motivations ! " Many formalisms paradigms, e.g., just for syntactic parsing ! " Shallow and full syntactic parsers ! " Rule-based vs. machine learning based ! " Constituency, Dependency, Combinatory Categorical Grammar, ‪Tree-adjoining grammar‬ and so on ! " Many implementation: Charniak, Stanford, Berkeley,.. ! " How to combine the different methods in a pipeline to build the desired NLP system? UIMA ! " UIMA supports the development, composition and deployment of multi-modal analytics ! " for the analysis of unstructured information and ! " its integration with search technologies ! " Apache UIMA includes ! " APIs and tools for creating analysis components, e.g. ! tokenizers, summarizers, categorizers, parsers, named-entity detectors etc. ! " Tutorial examples are provided with Apache UIMA Chapter 2. UIMA Conceptual Overview UIMA is an open, industrial-strength, scaleable and extensible platform for creating, integrating and deploying unstructured information management solutions from powerful text or multi-modal analysis and search components. The Apache UIMA project is an implementation of the Java UIMA framework available under the Apache License, providing a common foundation for industry and academia to collaborate and accelerate the world-wide development of technologies critical for discovering vital knowledge present in the fastest growing sources of information today. This chapter presents an introduction to many essential UIMA concepts.
    [Show full text]
  • UIMA Tutorial and Developers' Guides Written and Maintained by the Apache UIMA™ Development Community
    UIMA Tutorial and Developers' Guides Written and maintained by the Apache UIMA™ Development Community Version 3.2.0 Copyright © 2006, 2021 The Apache Software Foundation Copyright © 2004, 2006 International Business Machines Corporation License and Disclaimer. The ASF licenses this documentation to you under the Apache License, Version 2.0 (the "License"); you may not use this documentation except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, this documentation and its contents are distributed under the License on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Trademarks. All terms mentioned in the text that are known to be trademarks or service marks have been appropriately capitalized. Use of such terms in this book should not be regarded as affecting the validity of the the trademark or service mark. Publication date April, 2021 Table of Contents 1. Annotator & AE Developer's Guide ................................................................................ 1 1.1. Getting Started ................................................................................................... 2 1.1.1. Defining Types ........................................................................................ 3 1.1.2. Generating Java Source Files for CAS Types ..............................................
    [Show full text]