? users online
  • Logout
    • Open hangout
    • Open chat for current file
<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>