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 notebookto 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 labincludes 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