Introduction
Francy &Francy; arose from the necessity of having a lightweight framework for building interactive graphics, generated from GAP, running primarily on the web, specially in &Jupyter; environments. An initial attempt to re-use XGAP and port it was made, but the lack of a standardized data exchange format between GAP and the graphics renderer, and the simplistic initial requirements of the project were the basis for the creation of a new GAP package. Take a look at &Francy; functionality on these https://mybinder.org/v2/gh/gap-packages/francy/master.
Applications &Francy; has potentially many applications and can be used to provide a graphical representation of data structures, allowing one to navigate through and explore properties or relations of these structures. In this way, &Francy; can be used to enrich a learning environment where GAP provides a library of thousands of functions implementing algebraic algorithms as well as large data libraries of algebraic objects. &FrancyMonoids; and &SubgroupLattice; are some example packages using &Francy;.
Functionality &Francy; provides an interface to draw graphics using objects. This interface is based on simple concepts of drawing and graph theory, allowing the creation of directed and undirected graphs, trees, line charts, bar charts and scatter charts. These graphical objects are drawn inside a canvas that includes a space for menus and to display informative messages. Within the canvas it is possible to interact with the graphical objects by clicking, selecting, dragging and zooming.
Installation This package requires the &GAP; packages &JupyterKernel;, &json; and &uuid;, all of which are distributed with &GAP; by default. &Francy; requires &Jupyter; to be installed on your system. Please note that you need to run the installation commands from the same python version &Jupyter; is installed on. Currently, &Francy; is supported only on &Jupyter; Lab, if you want to use it on the old &Jupyter; Notebooks, please install the latest supported version: v1.2.4. In order to install or update &Francy;, please run the following command to download the latest version available from https://pypi.org/: mcmartins@local:~$ pip install -U jupyterlab-francy
How it works &Francy; requires a rendering package to display graphics. &Francy; provides by default 3 Renderers based on D3.js, Vis.js and Graphviz, for rendering the semantic model representations produced by the GAP package. The renderers can be switched at any time using the user interface, by selecting 'Settings > Renderers' in the main menu. This library is distributed both as a browser module and as a &Jupyter; Lab extension. This library can be used in &Jupyter; Lab, using the &JupyterKernel; and the MIME type 'application/vnd.francy+json' to render the document. Please check the https://gap-packages.github.io/francy/doc/js/doc/index.html for more information.
Publications https://doi.org/10.1007/978-3-319-96418-8_42