1.8 KiB
A Jupyter Kernel for YAP (#yap_kernel)
This Jupyter kernel supports interaction with YAP Prolog. The kernel patches IPython and PyKernel so that the user interacts with the Prolog interpreter. Most of the original kernels are unaffected by the changes.
You will need python3
and jupyter notebook
to use this package, plus:
- setuptools
;
- wheel
- pip
The configuration script should recognize whether these Python packages are installed.
See tut.ipynb
for details on how to use the system.
Both jupyter notebook
and jupyter lab
rely on the Javascript
editor CodeMirror
for editing tasks such as highlighting, inlining,
and folding. Unfortunately, CodeMirror
does not support the Prolog
language. Starting from Wielemaker's excellent CodeMirror
module for
swish
, YAP includes a codemirror for Prolog, designed to fit easily
with any CodeMirror
-based application.
-
Jupyter lab
includes a complex dependency mechanism, that always tries to download from the Internet. We do a first build to ensure all packages are there, set the build offline, patch the different copies of codemirror, and build locally.CM=$HOME/github/CodeMirror PYLIB=$HOME/.local/lib/python3.6/site-packages PYSHARE=$HOME/.local/share cd $PYLIB/jupyterlab jupyter lab build cp commands.py commands.py.bk sed 's/.node., YARN_PATH,/\"node", YARN_PATH, "--offline",/g' commands.py cd $PYSHARE/jupyter/lab/staging/node_modules/codemirror/mode split -n l/5 meta.js cat xaa xab > meta.js echo ' {name: "Prolog", mime: "text\/x-prolog", mode: "prolog", ext: ["yap","pl", "ypp", "prolog"]}' >> meta.js cat xac xad xae >> meta.js cp -a $CM/mode/prolog prolog cd $PYLIB/jupyterlab jupyter lab build mv commands.py.bk commands.py