# 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](http://lpsdemo.interprolog.com/) is a SWISH powered site from Imperial College London about the [Logic Production System](http://lps.doc.ic.ac.uk/) language.