  
  [1X1 [33X[0;0YIntroduction[133X[101X
  
  
  [1X1.1 [33X[0;0YFrancy[133X[101X
  
  [33X[0;0Y[5XFrancy[105X  arose  from  the  necessity  of  having  a lightweight framework for
  building  interactive graphics, generated from GAP, running primarily on the
  web,  primarily  in  a  Jupyter  ([7Xhttps://jupyter.org[107X)  Notebook. 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 [5XFrancy[105X functionality on these
  Jupyter Notebooks ([7Xhttps://mybinder.org/v2/gh/gap-packages/francy/master[107X).[133X
  
  
  [1X1.2 [33X[0;0YApplications[133X[101X
  
  [33X[0;0Y[5XFrancy[105X  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,  [5XFrancy[105X 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
  ([7Xhttps://github.com/gap-packages/FrancyMonoids[107X)      and     SubgroupLattice
  ([7Xhttps://github.com/mcmartins/subgroup-lattice[107X)  are  some  example packages
  using [5XFrancy[105X.[133X
  
  
  [1X1.3 [33X[0;0YFunctionality[133X[101X
  
  [33X[0;0Y[5XFrancy[105X  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.[133X
  
  
  [1X1.4 [33X[0;0YInstallation[133X[101X
  
  [33X[0;0YThis  package requires the [5XGAP[105X packages [5XJupyterKernel[105X and [5Xjson[105X, all of which
  are distributed with [5XGAP[105X. [5XFrancy[105X follows a similar installation procedure to
  [5XJupyterKernel[105X,  so it requires Jupyter ([7Xhttps://jupyter.org[107X) to be installed
  on  your system. Please note, you need to run the installation commands from
  the  same  python  version Jupyter ([7Xhttps://jupyter.org[107X) is installed on. In
  order to install/update [5XFrancy[105X, please run the following command to download
  the latest version available from [7Xhttps://pypi.org/[107X:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X      mcmartins@local:~$ pip install jupyter_francy -U[128X[104X
    [4X[28X    [128X[104X
  [4X[32X[104X
  
  [33X[0;0YIt  is  necessary  to  enable  [5XFrancy[105X  on your Jupyter ([7Xhttps://jupyter.org[107X)
  Notebook installation:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X      mcmartins@local:~$ jupyter nbextension enable --py --sys-prefix jupyter_francy[128X[104X
    [4X[28X    [128X[104X
  [4X[32X[104X
  
  [33X[0;0YFor Jupyter ([7Xhttps://jupyter.org[107X) Lab, please run:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X      mcmartins@local:~$ jupyter labextension build[128X[104X
    [4X[28X    [128X[104X
  [4X[32X[104X
  
  [33X[0;0YAlternatively,    if    you   want   to   run   [5XFrancy[105X   only   on   Jupyter
  ([7Xhttps://jupyter.org[107X) Lab, simply execute:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X      mcmartins@local:~$ jupyter labextension install jupyter-francy[128X[104X
    [4X[28X    [128X[104X
  [4X[32X[104X
  
  [33X[0;0YThis  will  load  the module from [7Xhttps://npmjs.org[107X. This approach should be
  used if you want to run [5XFrancy[105X only on Jupyter ([7Xhttps://jupyter.org[107X) Lab.[133X
  
  
  [1X1.5 [33X[0;0YHow it works[133X[101X
  
  [33X[0;0Y[5XFrancy[105X  requires  a  rendering  package  to  display  graphics.  [5XFrancy[105X uses
  Renderers   based   on  D3.js  and  Graphviz,  for  rendering  the  semantic
  representation  produced by the GAP package. The renderers can be swithed 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  ([7Xhttps://jupyter.org[107X)  extension. The Jupyter extension can be used
  in  Jupyter  ([7Xhttps://jupyter.org[107X) Notebook or Jupyter ([7Xhttps://jupyter.org[107X)
  Lab, using the [5XJupyterKernel[105X and the MIME type 'application/vnd.francy+json'
  to   render   the   document.  Please  check  the  JavaScript  Documentation
  ([7Xhttps://gap-packages.github.io/francy/doc/js/doc/index.html[107X)    for    more
  information.[133X
  
  
  [1X1.6 [33X[0;0YPublications[133X[101X
  
  [33X[0;0YICMS 2018 ([7Xhttps://doi.org/10.1007/978-3-319-96418-8_42[107X)[133X
  
