Citer les principaux outils utilisés dans le projet EniBook ainsi que ses principales sources d'émulation.
Un projet comme EniBook ne pourrait voir le jour sans la formidable dynamique du Web et de ses ressources en ligne libres de droit.
Le glossaire qui suit permet de « rendre à César ce qui est à César »...
Le projet EniBook est développé au Centre européen de réalité virtuelle (European center for virtual reality).
« Research center on technologies and usages of the Virtual reality, the CERV gathers laboratories, startups and students together in a multidisciplinary context. It belongs to the Enib . It is equiped with immersive systems. The CERV houses Lab-STICC Labs members, CREAD Labs members, b-com members and the International Journal of Virtual Reality editorial office. »
Les éditeurs de texte des interpréteurs EniBook utilisent des instances de « CodeMirror ».
« CodeMirror is a versatile text editor implemented in JavaScript for the browser. It is specialized for editing code, and comes with a number of language modes and addons that implement more advanced editing functionality. »
La bibliothèque Python « Docutils » est utilisée pour étendre les fonctionnalités du langage reStructuredText.
« Docutils (Documentation utilities) is an open-source text processing system for processing plaintext documentation into useful formats, such as HTML, LaTeX, man-pages, open-document or XML.
It includes reStructuredText, the easy to read, easy to use, what-you-see-is-what-you-get plaintext markup language. »
L'acronyme du projet a commencé avec celui des e-books (electronic book).
Un livre électronique n'étant pas nécessairement interactif, nous avons voulu insérer dans l'acronyme le « i » de interactive. On aurait ainsi pu obtenir le eibook (electronic interactive book). Mais nous avons préféré enibook (enib book) car en glissant le « n » entre le « e » et le « i », nous retrouvions l'acronyme de l'Enib. Ceci étant, un « livre Enib » ne dit rien sur sa nature numérique, d'où la volonté, tout en conservant l'acronyme enibook pour rappeler son origine, d'approfondir la définition de l'acronyme.
Le « n » de numerical traduit bien l'aspect numérique du document mais fait double emploi avec le « e » de electronic, d'où l'idée de supprimer ce « e » pour le remplacer par celui de embedded (embarqué) qui rappelle qu'un EniBook est « embarqué » dans le navigateur de l'utilisateur. Ainsi le « livre Enib » devient un « livre numérique embarqué et interactif » : embedded numerical interactive book.
Mais un EniBook n'est pas qu'un livre, c'est aussi un ensemble d'outils pour concevoir des EniBook : en quelque sorte un « kit » de conception. Ainsi le « k » de enibook participe à son tour à la définition de enibook ! Sachant par ailleurs qu'un EniBook est ouvert (open) à tous et disponible en ligne (online), chaque lettre de l'acronyme trouve naturellement sa place dans la définition :
EniBook : Embedded Numerical Interactive Book with Open Online Kit.
Cette version « descriptive » de l'acronyme dit ce qu'est un EniBook aujourd'hui. Mais elle ne nous apprend rien sur l'ambition d'un EniBook, à savoir celle de permettre au lecteur de se construire au fil du temps des connaissances par un couplage actif, au sens de l'énaction, avec le support numérique devenant lui-même de plus en plus pertinent. D'où cette version plus « visionnaire » de l'acronyme :
EniBook : Enactive Numerical Intelligent Book for Open Online Knowledge.
En cours de développement, les EniBook sont testés dans le navigateur « Firefox » qui sert aussi bien d'interpréteur JavaScript que de rendu HTML/CSS.
« Firefox is a free and open-source web browser developed by the Mozilla Foundation. »
Les icônes utilisées dans un EniBook sont issues de la collection GLYPHICONS.
« GLYPHICONS is a library of precisely prepared monochromatic icons and symbols, created with an emphasis to simplicity and easy orientation ».
Les éditeurs de graphe des outils EniBook utilisent la bibliothèque JavaScript « GoJS ».
« GoJS is a feature-rich JavaScript library for implementing interactive diagrams across modern web browsers and platforms.
GoJS is pure JavaScript, so users get interactivity without requiring round-trips to servers and without plugins. GoJS normally runs completely in the browser, rendering to an HTML5 Canvas element or SVG without any server-side requirements. GoJS does not depend on any JavaScript libraries or frameworks, so it should work with any HTML or JavaScript framework or with no framework at all. »
L'interpréteur du langage Dot est réalisé avec la version Javascript de Graphviz (viz.js).
« Graphviz is open source graph visualization software. The Graphviz layout programs take descriptions of graphs in a simple text language, and make diagrams in useful formats. »
Les comportements des outils interactifs d'un EniBook sont développés en langage « JavaScript ».
« JavaScript (JS) is a lightweight, interpreted, programming language with first-class functions. Most well-known as the scripting language for Web pages.
JS is a prototype-based, multi-paradigm, dynamic scripting language, supporting object-oriented, imperative, and functional programming styles. »
Le code JavaScript d'un outil EniBook accède aux balises HTML d'une page Web via la bibliothèque JavaScript « jQuery ».
« jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. »
La version adaptable (responsive) des pages Web est gérée à travers la bibliothèque javaScript « jQuery Mobile ».
« jQuery Mobile is a HTML5-based user interface system designed to make responsive web sites and apps that are accessible on all smartphone, tablet and desktop devices. »
Les interfaces de type menus, onglets... sont gérées à travers la bibliothèque JavaScript « jQuery-UI ».
« jQuery User Interface is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. »
Les formules mathématiques d'un EniBook et un certain nombre de figures sont écrites en LaTeX et sa bibliothèque TikZ.
« LaTeX is a document preparation system for high-quality typesetting. It is most often used for medium-to-large technical or scientific documents but it can be used for almost any form of publishing. LaTeX is not a word processor! Instead, LaTeX encourages authors not to worry too much about the appearance of their documents but to concentrate on getting the right content. »
« TikZ and PGF are TeX packages for creating graphics programmatically. TikZ is build on top of PGF and allows you to create sophisticated graphics in a rather intuitive and easy manner. »
Les formules mathématiques d'un EniBook, initialement écrites en LaTeX, sont affichées par \(\KaTeX\).
« KaTeX is a fast, easy-to-use JavaScript library for TeX math rendering on the web. »
La plateforme « Open edX » a des objectifs similaires à ceux du projet EniBook tout en étant plus orientée « enseignant » que « étudiant ». Elle utilise des éditeurs spécifiques ou le langage HTML pour développer de nouveaux documents. Elle n'en demeure pas moins un formidable vecteur de motivation pour le développement du projet EniBook.
« The Open edX platform is a free-and open source-course management system (CMS) that was originally developed by edX. Founded by Harvard University and MIT in 2012, edX is an online learning destination and MOOC provider, offering high-quality courses from the world’s best universities and institutions to learners everywhere. »
Le projet EniBook est développé avec Sphinx en langage Python 2.7 et utilise les modules Docutils pour ajouter de nouvelles fonctionnalités au langage reStructuredText .
« Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms. »
Les interpréteurs EniBook utilisent des instances de « Python Tutor » pour visualiser le fonctionnement pas à pas d'un programme.
« Using this tool, you can write Python, Java, JavaScript, TypeScript, Ruby, C, and C++ programs in your Web browser and visualize what the computer is doing step-by-step as it executes those programs. »
Les auteurs d'un EniBook rédigent leurs documents dans un formalisme unique : le langage reStructuredText de l’environnement Sphinx/Python, sans avoir besoin de connaître ni le langage Python ni les langages du Web (Html, Css, Javascript...).
« Markup syntax and parser component of Docutils, reStructuredText is an easy-to-read, what-you-see-is-what-you-get plaintext markup syntax and parser system. It is useful for in-line program documentation (such as Python docstrings), for quickly creating simple web pages, and for standalone documents.
reStructuredText is designed for extensibility for specific application domains. The reStructuredText parser is a component of Docutils . »
Elément de la chaîne éditoriale Scenari (« what you see is what you mean »), initiée à l'UTC, il permet de créer des exercices interactifs.
« Rubis est une chaîne éditoriale de création d'exerciseurs pour créer et gérer des exercices interactifs et les jouer selon deux modes d'apprentissage : en mode d'auto-apprentissage et en mode d'auto-évaluation. »
Les outils de « Runestone Interactive » reposent sur la même chaîne de traitement que ceux des EniBook et sont donc une source d'inspiration et de motivation. En particulier, leur livre numérique « How to think like a computer scientist » est sans doute le premier manuel digne de ce nom vraiment interactif.
« The Runestone Interactive project aims to do two things. 1) Provide open source authoring tools for creating and hosting quality interactive learning resources. 2) Host custom versions of textbooks for colleges, universities, and high schools around the world. »
L'interpréteur Python en ligne disponible dans un EniBook est une instance de « Skulpt ».
« Skulpt is an entirely in-browser implementation of Python. No preprocessing, plugins, or server-side support required, just write Python and reload. »
La compilation d'un projet EniBook est réalisée avec « Sphinx ».
« Sphinx is a tool that makes it easy to create intelligent and beautiful documentation. Sphinx uses reStructuredText as its markup language, and many of its strengths come from the power and straightforwardness of reStructuredText and its parsing and translating suite, the Docutils. »
L'interpréteur SQL en ligne disponible dans un EniBook est une instance Javascript de SQLite (sql.js).
« SQLite is a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine. SQLite is the most used database engine in the world. »
L'interpréteur Prolog en ligne disponible dans un EniBook est une instance de « Tau Prolog ».
« Tau Prolog is a Prolog interpreter fully implemented in JavaScript. Tau Prolog is not just an implementation of the logic programming resolution mechanism, but a complete Prolog interpreter. Furthermore, the implementation of this interpreter has been directed by the ISO Prolog Standard. »
Depuis 1998, les outils de « W3Schools » sont parmi les premiers outils d'auto-apprentissage en ligne interactifs. Même s'ils ne concernent « que » les langages du Web, ils ont été le véritable déclencheur du projet EniBook.
« W3Schools is a web developers site, with tutorials and references on web development languages such as HTML, CSS, JavaScript, PHP, SQL, and JQuery, covering most aspects of web programming.
By using an online editor (Try It Yourself), you can edit examples and execute computer code experimentally, to see what works and what does not, before implementing it. »