ExpliClas
Copyright (C) 2018 Bruno López Trigo https://gitlab.citius.gal/bruno.lopez.trigo/ExpliClas-TFG/-/raw/main/mailto:bruno.lopez.trigo@rai.usc.es
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Portions of this software are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt. These portions may also be made available under the Secondary License when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License, version 2 with the GNU Classpath Exception which is available at GNU General Public License, either version 2 of the License, or (at your option) any later version available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
WHAT IS THIS PROJECT?
In recent years, artificial intelligence is integrated into many systems whose needs go beyond the technical aspects. Within these needs, we find the ethical and legal aspects related to interaction of users with intelligent systems. Many intelligent systems, in particular almost all those that are learned automatically from data, use a black box model where users rely on the decisions taken by these systems, without worrying about how such decisions were made. Thus arises the paradigm of Explicable Artificial Intelligence (eXplainable Artificial Intelligence, JHA) that makes reference to the construction of intelligent systems able to provide information on how they make their decisions. Even for intelligent systems that use a white box model, it is necessary the intervention of an expert to interpret this model, so it is interesting to apply the XAI paradigm to obtain a self-explanatory system. According to the ACM Code of Ethics, the explanation is a basic principle to guarantee the transparency of the algorithms and the responsibility of the institutions of the decisions taken by the mentioned algorithms. In addition, the recent application of the new European General Data Protection Regulation emphasizes the "right to explanation" for European citizens, regardless of whether decisions are made by people or intelligent systems. In this context, ExpliClas aims to address the problem of generating explanations for a smart system. In particular, the intelligent systems of classification, using a white box model, and more specifically the decision-tree-based systems. ExpliClas studies the generation of explanations through Natural Language Generation trying to reach explanations capable of clarifying to the user how the classification systems make decisions. In addition, the purpose of these explanations is not only reduced to make the system more understandable, but also increase the user's confidence in the system itself and its reliability. Another relevant aspect of the explanation is the user interactivity with the system, which will be reflected in the variation of the explanations according to the actions executed by the user in the system. ExpliClas service is currently operative and deployed in the URL: https://demos.citius.usc.es/ExpliClas/. The corresponding ExpliClas API is available in: https://demos.citius.usc.es/ExpliClasAPI/.
WHERE IS THE CODE LOCATED
ExpliClas code is available on the following repositories: https://gitlab.citius.usc.es/bruno.lopez.trigo/ExpliClas-TFG and https://forxa.mancomun.org/scm/browser.php?group_id=419. The demo web service code is available under /codigo/expliclas. The API REST code is available under /codigo/expliclas-api.
HOW TO BUILD
In order to build API service be sure to follow the next steps:
- Download and install Netbeans IDE (version 8 or greater)
- Download and install Apache Tomcat Server (version 8 or greater)
- Open ExpliClas API project on Netbeans
- Be sure Swagger index.html contains correct API URL in order to correctly deploy API documentation.
const ui = SwaggerUIBundle({
url: "http://localhost:8080/api/swagger.json", // CHANGE THIS LINE
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
Run project with Netbeans, by default API will be deployed at http://localhost:8080/api/
In order to deploy demo web service:
- Download and install NodeJS (version 8 or greater).
- Download and install npm (version 3 or greater).
- Go to ExpliClas Web Demo directory
- Run
npm installto correctly download and install dependencies. - Run
npm startto directly run web service. Optionally, you can runnpm run buildif you want to create a web service ready to production. After create production application you will see a build folder that contains production files. If you want to put in production the service you will need to install a Node server so install 'serve' package via:npm install -g serve. Finally, you can execute application withserve -s -l PORT buildwhere PORT is your desired port to deploy the web.
Be sure to establish correct URLs for web service under config file
export const API_ROOT = 'http://localhost:8080/api'; // API URL
export const API_DOC = 'http://localhost:8080/'; // API DOCUMENTATION URL
export const HOME = 'http://localhost:3000/'; // WEB SERVICE URL


