  
  [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
  forbuilding  interactive  graphics, generated from GAP, running primarily on
  theweb,  primarily  in a Jupyter Notebook. An initial attempt to re-use XGAP
  andport  it  was  made,  but the lack of a standardized data exchange format
  betweenGAP   and   the   graphics   renderer,  and  the  simplistic  initial
  requirements  of  the  project  were the basis for the creation of a new GAP
  package.[133X
  
  
  [1X1.2 [33X[0;0YApplications[133X[101X
  
  [33X[0;0Y[5XFrancy[105X has potentially many applications and can be [5XFrancy[105X 3 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. Example packages using
  [5XFrancy[105X:    FrancyMonoids    ([7Xhttps://github.com/gap-packages/FrancyMonoids[107X),
  SubgroupLattice ([7Xhttps://github.com/mcmartins/subgroup-lattice[107X)[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 command from
  the  same  python  version Jupyter ([7Xhttps://jupyter.org[107X) is installed on. In
  order  to  install  [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      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)
  installation:[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X      jupyter nbextension enable --py --sys-prefix jupyter_francy[128X[104X
    [4X[28X    [128X[104X
  [4X[32X[104X
  
  
  [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. This library is distributed both
  as a browser module and as a Jupyter extension. The Jupyter extension can be
  used  in  Jupyter  Notebooks or Jupyter Lab, using the [5XJupyterKernel[105X and the
  MIME  type  application/vnd.francy+json  to render the document Please check
  the   documentation   for   more   information:   JavaScript   Documentation
  ([7Xhttps://gap-packages.github.io/francy/doc/js/doc/index.html[107X).[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
  
