Difference between revisions of "VT2017 Grakn.AI"

From air
Jump to navigation Jump to search
Line 18: Line 18:
 
==Synthèse==
 
==Synthèse==
   
=== Introduction et besoin ===
+
=== Grakn ===
   
Le développement multiplate-forme est de nos jours un point très un important dans le marché du logiciel. En effet, il existe toutes sortes de plateforme comme '''Linux, Android, Windows, IOS'''.
+
comme '''Linux, Android, Windows, IOS'''.
   
===Petit historique===
+
===Graql===
   
ELECTRON(2013) était à l’origine un Framework développer par l’équipe '''GitHub''' pour passer l’éditeur de texte '''ATOM''' en multiplateforme. En 2014 le code est devenu open-source et c’est en 2016 que les premières applications ELECTRON deviennent disponible sur les stores IOS et Windows. La librairie étant open source, elle est utilisable aussi bien par des particuliers que des professionnels et évolue au grès des contributions apportées par l’équipe GitHub, les développeurs indépendants ou les entreprises. Ainsi parmi les applications basées sur ELECTRON il est possible de retrouver : [[https://slack.com/intl/fr-fr Slack]], [[https://discordapp.com/ Discord]], [[https://www.gitkraken.com/ GitKraken]], [[https://code.visualstudio.com/ Visual Studio code]]…
+
Ainsi parmi les applications basées sur ELECTRON il est possible de retrouver : [[https://slack.com/intl/fr-fr Slack]], [[https://discordapp.com/ Discord]], [[https://www.gitkraken.com/ GitKraken]], [[https://code.visualstudio.com/ Visual Studio code]]…
  +
 
[[File:.png|50px|link=https://slack.com/intl/fr-fr]]
 
[[File:.png|50px|link=https://discordapp.com/]]
   
[[File:Icone-slack-from-electron.png|50px|link=https://slack.com/intl/fr-fr]]
 
[[File:Icone-discord-from-electron.png|50px|link=https://discordapp.com/]]
 
[[File:Icone-gitkraken-from-electron.png|50px|link=https://www.gitkraken.com/]]
 
[[File:Icone-visualStudioCode-from-electron.png|50px|link=https://code.visualstudio.com/]]
 
   
 
=== Fonctionnement ===
 
=== Fonctionnement ===

Revision as of 23:55, 26 October 2017

AI.png

Présentation

Profie.png
  • Sujet : Grakn.AI : base de donnée de AI
  • Auteur : Qianqian FU

Résumé

GRAKN.AI est la base de données pour AI. C'est une base de données sous la forme d'un graphe de connaissances qui utilise le raisonnement machine pour simplifier les défis de traitement des données pour les applications AI. GRAKN.AI se compose de deux parties: 1. Grakn (base de données) et 2. Graql (la langue).

  • Mots clés : base de données, AI

Abstract

GRAKN.AI is the database for AI. It is a database in the form of a knowledge graph that uses machine reasoning to simplify data processing challenges for AI applications. GRAKN.AI is composed of two parts: 1. Grakn (the storage), and 2. Graql (the language).

  • Keywords : database, AI

Synthèse

Grakn

comme Linux, Android, Windows, IOS.

Graql

Ainsi parmi les applications basées sur ELECTRON il est possible de retrouver : [Slack], [Discord], [GitKraken], [Visual Studio code]…

50px 50px


Fonctionnement

D’un point de vue plus pratique les applications .


L’une des particularités des applications ELECTRON est leur structure Multi-processus. En effet, l’application est séparée entre le processus principal et les processus de rendu. Le processus dit principal représente la fenêtre qui contiendra les différentes vues, gère les menus et fait le lien avec l’interface graphique native et le système. Le processus principal peut charger les pages web, mais ne peut pas interagir avec d’où l’existence des processus de rendus.

ElectronMultiProcessExplanation.png

Les processus de rendus correspondent à chaque vue de l’application (page web et ses fichiers JavaScripts). À ces deux types de processus peut aussi s’ajouter les processus dits de calculs. Ces processus n’ont pas d’affichage graphique et permettent de faire de gros calcul en arrière-plan sans pour autant bloquer les interactions de l’utilisateur avec l’application.

ElectronProcess.png


Cependant, par définition les processus sont isolés les uns des autres et ne partagent pas de mémoire'. Ainsi, pour permettre le bon fonctionnement, de l’application il faut permettre aux différents processus de communiquer entre eux et de s’échanger des données. Pour cela, les développeurs utilisent un « interprocessus communication » (IPC) basé sur ceux utilisés par le navigateur Chromium. Les IPC peuvent être apparentés à des messages post qui s’échange entre les pages web. Ainsi pour que deux processus puissent communiquer, il suffit d’indiquer un message en JSON, par exemple, et le nom du canal où envoyer le message. L’envoi est bidirectionnel et il peut être asynchrone ou synchrone. Nous venons de voir comment fonctionner de manière globale la librairie ELECTRON, nous allons à présent nous attarder sur ses avantages et ces inconvénients.

ElectronICP.png

Avantages et Inconvénients

Avantages

Comme j’ai pu le préciser plutôt, il existe beaucoup de librairie différente permettant de réaliser des applications multiplate-formes. Ces librairies utilisent des langages différents et ne sont pas toutes open-source. Ainsi, où se situe ELECTRON sur le marché du développement d’applications bureautiques multiplate-formes. Pour cela j’ai décidé de comparer ELECTRON à son concurrent direct NW.js lui aussi une librairie open-source utilisant Chromium et Node.js.

De mon point de vue ELECTRON possède quatre avantages majeurs face à NW.js :

  • Le premier avantage d.


  • Le deuxième avantage de la librairie sont ses fonctionnalités.


  • Le troisième avantage est sa 'simplicité à déployer les applications. Cette simplicité se trouve principalement dans la documentation et la génération des applications pour les différentes plateformes. En effet, il suffit de deux lignes de commande pour générer les applications aussi bien pour Windows, Linux ou MacOS, ce qui est un peu plus complexe avec NW.js. Ensuite.


  • Pour argumenter le fait qu’ELECTRON soit mieux documenter que NW.js, je souhaiterais parler du quatrièmes avantage qui est l’activité du projet. ELECTRON (2014) est un projet plus jeune que NW.js(2011) pourtant aujourd’hui ELECTRON est bien plus actif que son prédécesseur :

Une grande communauté de 667 contributeurs contre 92 pour NW.js

Git
ELECTRON
ElectronstarsGithub.PNG
NW.js
StarsGithubNWjs.PNG

Correction et détection des bugs plus efficace :

ELECTRON NW.js
Bugs trouvés 7098 5500
Bugs Fermés 6351 4071
Bugs Ouverts 747 1429
Nombre d'années d’existence du projet 4 6
Nombre bugs corrigés/an 1587 581
Taux de bugs corrigés 89% 74%

Des commits et des releases plus fréquents

ELECTRON NW.js
Nombre de commit total 16000 3000
Nombre de commit moyen par semaine (1er janvier, 17 septembre 2017) 60 5
Nombre de lignes moyenne ajouté par mois 400 150
Releases 299 144

Inconvénients

ELECTRON présente beaucoup d’avantages, mais ses avantages peuvent être masqués par son défaut principal : sa consommation de mémoire vive et son temps d’exécution. Comme expliqué précédemment pour chaque vue html/fenêtre un processus lui est attribuée. En plus des processus, on trouve les processus de communication inter-processus. Ce qui peut rapidement consommer de la mémoire vive et ralentir l’exécution de l’application. De plus la librairie Chromium prend, elle aussi, une partie non négligeable de la RAM. Ainsi ELECTRON est moins performant comparé à son concurrent NW.js et encore moins face à d’autres librairies :

Comparaison (application Hello world simple)
Comparaison avec d'autres frameworks
ElectronCompareFrameworks.PNG
Comparaison avec d'autres navigateurs
ElectronCompareBrowsers.PNG


Ainsi, d'après l'étude, une application ELECTRON se rapproche plus de la consommation d’un navigateur web.

Cependant, après expérimentation personnelle, les applications ELECTRON consomment beaucoup moins de ressources que le navigateur Google Chrome qui le navigateur le plus utilisé dans le monde([Part de marché des navigateurs web dans le monde]).

Nombre de processus Consommation du processus principale en RAM (Mo) Consommation total en RAM (Mo)
Discord (développé par professionnels) 3 21 101
Rambox (4 onglets) 8 33 941
GitKraken (développé par professionnels) 5 100 348
Google Chrome(une seul page web ouverte) 7 200 555

Ainsi, je ne pense pas que la consommation de ressources soit un réel problème aux vues de l’augmentation des performances des machines. De plus le nombre d’utilisateurs des applications.

Conclusion

Pour conclure cette présentation, il est possible de dire qu.


Fonctionnement

Utilisation

  • Groupe .
  • Un serveur .
  • N'importe quel .
  • Des .

Références

https://grakn.ai/pages/documentation/get-started/quickstart-tutorial.html

https://grakn.ai/pages/overview/index.html

https://static.javadoc.io/ai.grakn/grakn/0.8.0/ai/grakn/graql/internal/analytics/Analytics.html#degreesAndPersist--