Skip to content

Latest commit

History

History
63 lines (43 loc) 路 2.26 KB

index.rst

File metadata and controls

63 lines (43 loc) 路 2.26 KB

Clinguin: Building User Interfaces in ASP

Clinguin enables ASP developers to create interactive User Interface (UI) prototypes using only ASP. UIs are defined as sets of facts, which are then rendered by a fronted to provide continuous interaction with ASP solvers based on user-triggered events.

This and more examples are available in our examples folder!

Here is a motivation example:

Consider an ASP encoding that solves the sudoku puzzle where cells are defined by prediate pos(X,Y) and solutions by sudoku(X,Y,V) Clinguin will use this encoding and the following ui encoding to construct the UI shown bellow.

elem(window, window, root).
attr(window, child_layout, grid).

  elem(dd(X,Y), dropdown_menu, window) :- pos(X,Y).
  attr(dd(X,Y), width, 50)  :- pos(X,Y).
  attr(dd(X,Y), height, 50) :- pos(X,Y).
  attr(dd(X,Y), grid_column, X) :- pos(X,Y).
  attr(dd(X,Y), grid_row, Y) :- pos(X,Y).
  attr(dd(X,Y), class, ("border-dark";"bg-primary")) :- pos(X,Y).
  attr(dd(X,Y), class, "bg-opacity-50") :- subgrid(X,Y,S),  S\2!=0.
  attr(dd(X,Y), selected, V) :- _all(sudoku(X,Y, V)).

      elem(ddv(X,Y, V), dropdown_menu_item, dd(X,Y)) :- _any(sudoku(X,Y, V)).
      attr(ddv(X,Y, V), label, V) :- _any(sudoku(X,Y, V)).
      when(ddv(X,Y, V), click, call, add_assumption(sudoku(X,Y, V))) :- _any(sudoku(X,Y, V)).

../examples/angular/sudoku_basic/out1.png

../examples/angular/sudoku_basic/out2.png

../examples/angular/sudoku_basic/out3.png

For a more detailed explanation on how this code works take a look at the :ref:`Basic Usage` section.

Note

Clinguin is part the Potassco umbrella (which is the home of Clingo and the other ASP tools)

.. toctree::
   :maxdepth: 2
   :caption: Contents:

   clinguin/installation
   clinguin/use.rst
   clinguin/reference
   clinguin/frontends
   clinguin/backends
   clinguin/development