<div class="notebook">
<div class="nb-cell markdown" name="md1">
# Welcome to SWISH
You are reading a SWISH _notebook_. A notebook is a mixture of _text_, _programs_ and _queries_. This notebook only contains text and gives an overview of example programs shipped with SWISH.
- *First steps*
- [Knowledge bases](example/kb.pl) provides a really simple
knowledge base with example queries.
- [Lists](example/lists.pl) defines a couple of really simple
list operations and illustrates timing _naive reverse_.
- *Classics*
- [Movie database](example/movies.pl) provides a couple of
thousands of facts about movies for you to query.
- [Expert system](example/expert_system.pl) illustrates simple
meta-interpretation of rules and asking for missing knowledge.
- [Eliza](example/eliza.pl) implements the classical shrink.
- [English grammar](example/grammar.pl) DCG rules for parsing
some simple English sentences and show the result as an SVG
tree.
- *Puzzles and constraints*
- [Einstein's Riddle](example/houses_puzzle.pl) A famous puzzle
attributed to Einstein.
- [N-Queens (traditional)](example/queens.pl) solves the N-queens
problem using traditional Prolog and illustrates domain-specific
(graphics) output.
- [N-Queens (clp(fd))](example/clpfd_queens.pl) as above,
illustrating the value of constraint programming.
- [Sudoku (clp(fd))](example/clpfd_sudoku.pl) solves the sudoku
puzzle using constraint programming, redering the result as a
table.
- [Knights and Knaves (clp(b))](example/knights_and_knaves.pl)
solves boolean problems.
- [Mortgage (clp(q,r))](example/mortgage.swinb)
Compute mortgages.
- *Side effects and I/O*
- [Read and write](example/io.pl) demonstrates that you can read from
and write to the web interface.
- [Assert and retract](example/database.pl) demonstrates using the
dynamic database.
- *Machine learning (notebooks)* (see also [SWISH tutorials](example/swish_tutorials.swinb))
- [EM Clustering of the Iris Dataset](example/iris.swinb)
- [SIATEC pattern discovery in polyphonic music](example/siatec.swinb)
- *Reasoning*
- [Tabling with Well Founded Semantics](example/WFS_intro.swinb)
- [s(CASP): Goal directed Constraint Answer Set Programming](example/scasp.swinb)
- *Graphical output* (see also [rendering](example/rendering.swinb))
- [Using Graphviz to display graphs](example/render_graphviz.swinb)
- [Using C3 to display charts](example/render_c3.swinb)
- *International character support*
- [Japanese source](example/japanese.pl) gives example source from
the Japanese Wikipedia site on Prolog, illustrating multi-lingual
capabilities of SWI-Prolog and SWISH.
### Other public SWISH instances
- [cplint on SWISH](http://cplint.ml.unife.it/) is another SWISH powered site by Fabrizio
Riguzzi, Riccardo Zese and Giuseppe Cota dedicated to probabilistic logic programming.
- [LPS on SWISH](https://demo.logicalcontracts.com/) is a SWISH powered site from Imperial College
London about the [Logic Production System](http://lps.doc.ic.ac.uk/) language.
- [Logical English (LE) on SWISH](https://le.logicalcontracts.com/). LE provides a controlled natural language specification for Horn clauses.
</div>
</div>