52 lines
1.8 KiB
Markdown
52 lines
1.8 KiB
Markdown
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
|
|
~~~~
|
|
|
|
|
|
|