A Systematic Mapping Study on Apis Utilizing Artificial Intelligence Technology
Total Page:16
File Type:pdf, Size:1020Kb
DEGREE PROJECT IN TECHNOLOGY, FIRST CYCLE, 15 CREDITS STOCKHOLM, SWEDEN 2021 A Systematic Mapping Study on APIs Utilizing Artificial Intelligence Technology Dilvan Güler Mohamed Mahdi KTH ROYAL INSTITUTE OF TECHNOLOGY ELECTRICAL ENGINEERING AND COMPUTER SCIENCE Authors Dilvan Güler [email protected] Information and Communication Technology Mohamed Mahdi [email protected] Computer Engineering KTH Royal Institute of Technology Place for Project Stockholm, Sweden Examiner Anders Sjögren KTH Royal Institute of Technology Supervisor Mira KajkoMattson KTH Royal Institute of Technology ii Abstract This thesis covers the systematic mapping of established public Application Programming Interface (API)s that are employing the Artificial Intelligence (AI) technology. This due to the fact that the problem has been the lack of systematic maps of AI APIs in the present time, therefore this thesis has the purpose of increasing the insight in the area by creating the mapping study. The goal is to provide both a basis for research and to aid the general developer which uses the AI APIs. The systematic mapping of the AI APIs will be conducted by examining the information of the APIs and iterations classifying the AI APIs into categories and presented in tables. The analysis and discussion of the study was made based on the results from the study, namely the phases, the iterations, the result tables and the final systematic map. Additionally, an analysis was made on the validity threats of the study. The evaluation of each API in this study was done in cycles, by categorizing each AI API into a category that is included in the final result, which is a systematic map. The result has been proven to be useful for the target group of this study, the researchers and developers, by aiding them in finding the right API for them to use in their work. Therefore, this work will help future developers and researchers due to the fact that the thesis is providing relevant information in the development phases of employing AI in the web interfaces at the present time. Keywords AI, Artificial Intelligence, API, Systematic Mapping, Web development iii Sammanfattning Detta examensarbete omfattar en systematisk kartläggning av etablerade publika API:er som använder sig utav AIteknik. Eftersom bristen på systematiska kartor över AI API:er varit stor, har detta examensarbete syfte att öka insikten i området genom att skapa denna kartläggningsstudie. Målet med den systematiska kartläggningen är att bygga en grund för framtida forskning inom detta område, samt förenkla processen av att hitta AI API:erna för den allmänna utvecklaren som använder dessa. Den systematiska kartläggningen av AI API:er kommer att genomföras genom att undersöka tillgänglig dokumentation och information om API:erna. Dessutom klassificerades AI API:erna i kategorier, och presenterades sedan i tabeller. Analysen och diskussionen av studien gjordes baserat på resultaten från studien, nämligen faserna och iterationerna där AI API:erna kategoriseras, samt på resultat tabellerna och den slutliga systematiska kartan på AI API:erna. Dessutom gjordes en analys av hoten mot studiens giltighet. Utvärderingen av varje API i denna studie gjordes i cykler genom att kategorisera varje AI API i en kategori som sedan inkluderades i resultatet vilket är en systematiska karta. Resultatet från detta examensarbete har visat sig vara användbar för målgruppen, forskare och utvecklare, då det hjälper målgruppen att hitta rätt API att använda i arbetet. Nyckelord AI, Artificiell Intelligens, API, Systematisk Kartläggning, Webbutveckling iv v Acknowledgements Special thanks to the Associate Professor at KTH, Mira KajkoMattson, who has been our supervisor throughout this bachelor thesis and provided very useful tools and have been extremely engaged in the writing process of the project. We also want to thank Anders Sjögren, our examiner whom we have been able to brainstorm ideas with around the project which has been helpful. Stockholm, March 2021 Dilvan Güler and Mohamed Mahdi vi vii Acronyms AI Artificial Intelligence API Application Programming Interface DAIS Distributed Artificial Intelligence Systems RISE Research Institute of Sweden ML Machine Learning NNs Neural Networks CNNs Convolutional Neural Networks DL Deep Learning HTTP Hyper Text Transfer Protocol REST Representational State Transfer JSON JavaScript Object Notation URL Uniform Resource Locator viii Contents 1 Introduction 1 1.1 Background .................................. 2 1.2 Problem .................................... 2 1.3 Purpose .................................... 3 1.4 Goal ...................................... 3 1.5 Research Methodology ........................... 3 1.6 Commissioned Work ............................. 4 1.7 Target Audience ............................... 4 1.8 Delimitations ................................. 4 1.9 Benefits, Ethics and Sustainability ..................... 5 1.10 Outline .................................... 6 2 Theoretical Background 7 2.1 General Overview of AI APIs ........................ 7 2.2 Artificial Intelligence An Unsupervised Approach ............ 8 2.3 Application Programming Interface AI for the General Developer ... 11 2.4 Systematic Mapping Study ......................... 15 2.5 Similar Work ................................. 16 3 Research Methodology 17 3.1 Research Strategy .............................. 17 3.2 The Four Research Phases ......................... 18 3.3 Research Methodologies .......................... 21 3.4 Research Instruments ............................ 22 3.5 Validity Threats ................................ 23 3.6 Ethical Requirements ............................ 25 ix CONTENTS 4 Preparatory Work 27 4.1 Overview of the Systematic Mapping Method ............... 27 4.2 Grouping criterias .............................. 28 4.3 Sources .................................... 33 5 Mapping conducted in Iterations 35 5.1 The Selected Collection of APIs ...................... 35 5.2 First iteration Priced API or Free API ................... 37 5.3 Second iteration HTTP Methods ..................... 37 5.4 Third iteration Domains .......................... 39 5.5 Fourth iteration Main Tasks ........................ 39 5.6 Final Iteration The Final Systematic Map ................. 40 6 Analysis and Discussion 43 6.1 General Analysis ............................... 43 6.2 Research Phase Analysis .......................... 44 6.3 Iteration Analysis ............................... 46 6.4 Validity Threat Analysis ........................... 48 6.5 Final Systematic Map Analysis ....................... 50 7 Conclusions 53 7.1 Conclusions ................................. 53 7.2 Future work .................................. 54 References 55 x Chapter 1 Introduction As the Artificial Intelligence (AI) technology is evolving, and becoming more and more integrated in everyday life, the importance of making the technology accessible to the developer is also becoming more and more important. The term AI is used when a machine has the capabilities to learn things like a human brain would, this technology is used in many fields in the present time due to its capability of providing user tailored experiences for every individual user by predicting needs. The production of AI technology has also resulted in the changing of the designing interface, adding small AI functionalities has become more of a standard in the later years. Thus, resulting in more challenges in order to please the users and keep up to the industry standards. The developers are the architects of this field, and will be needing to meet the users requirements. However, due to the complexity in the field, which becomes even more complex since users have different goals[13]. Every user goal is different because no two people are the same. Since web APIs have been evolving the last few years, utilizing AI in web APIs has become convenient for developers since it allows them to add large features with minimal effort. Web APIs provide access and functionality through a remote source, this way an application can incorporate multiple services in an efficient way. Additionally, implementing an API in some cases could be viewed as a way of outsourcing. This is due to the fact that an API is working in a remote setting, far away from where the source code for the website lays, while still performing a complex task that adds value to the website. An example is the Google Maps API, allowing the website to contain valuable functionality(the dynamic map and its content), without forcing the web developer to 1 CHAPTER 1. INTRODUCTION develop the dynamic map itself. Instead, the developer is only required to call the API with an HTTP Method. 1.1 Background When deep learning is added to machine learning it will lead to a machine that will be able to mimic a human brain, which leads to the machine’s having the ability to recognize patterns. When this has been achieved the tasks such as recognizing images as well as speech are made possible[3]. A study conducted in 2019 researchers realised that many users, while visiting a university website, visited the website with the purpose to ask for information[22]. This became a problem due to the lack of manpower provided on the website, thus answering these questions was a tedious task. Using an AI chatbot, developed into being able to answer the users’ questions at any time, became their rescue and is an example of the benefits that integrating an AI into a user interacted website can achieve.