JupyterLab extension for Vadalog language support with syntax highlighting, linting, and execution control
Project description
Vadalog Extension for JupyterLab
A JupyterLab extension that provides comprehensive support for the Vadalog knowledge graph system, including syntax highlighting, code linting, and execution control.
Features
✨ Syntax Highlighting - Beautiful CodeMirror 6-based syntax highlighting for Vadalog code
🔍 Code Linting - Real-time error detection and code analysis
⏱️ Execution Timer - Displays accurate execution time from the backend
🛑 Stop Button Integration - Intercepts the standard Jupyter stop button to gracefully halt Vadalog execution
📊 Beautiful Output Tables - Modern styled result tables with JetBrains Mono font
🎨 Modern UI - Clean, professional interface integrated seamlessly with JupyterLab 4
Requirements
- JupyterLab >= 4.5.0
- Python >= 3.8
- Vadalog kernel (included in the vadalog-parallel repository)
Installation
From PyPI
pip install vadalog-extension
From Source
git clone https://github.com/prometheuxresearch/vadalog-parallel.git
cd vadalog-parallel/jupyter-lab-extensions/vadalog-extension
pip install -e .
Usage
-
Start JupyterLab:
jupyter lab -
Create a new notebook and select the Vadalog kernel
-
Write your Vadalog code:
% Define facts @input("person"). person("Alice"). person("Bob"). % Define rules @output("greeting"). greeting(X, "Hello " + X) :- person(X). -
Run the cell - enjoy syntax highlighting, execution timing, and beautiful output!
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/prometheuxresearch/vadalog-parallel.git
cd vadalog-parallel
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Install extension in development mode
cd jupyter-lab-extensions/vadalog-extension
pip install -e .
Watch Mode for Development
# Terminal 1 - TypeScript watch
cd jupyter-lab-extensions/vadalog-extension
jlpm watch
# Terminal 2 - JupyterLab
jupyter lab
Changes to TypeScript files will be automatically rebuilt!
Architecture
This extension is built using:
- TypeScript - Main extension logic
- CodeMirror 6 - Syntax highlighting engine
- React 18 - UI components (shared with JupyterLab)
- Lumino - Widget framework
- Hatchling - Modern Python build system
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
BSD 3-Clause License - see LICENSE file for details.
About Vadalog
Vadalog is a powerful knowledge graph system developed by Prometheux Limited. It combines the expressiveness of Datalog with advanced reasoning capabilities for complex data analysis and knowledge representation.
Support
For issues, questions, or contributions, please visit:
- Homepage: http://www.prometheux.co.uk
- Repository: https://github.com/prometheuxresearch/vadalog-parallel
Made with ❤️ by Prometheux Limited
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vadalog_extension-3.0.1.tar.gz.
File metadata
- Download URL: vadalog_extension-3.0.1.tar.gz
- Upload date:
- Size: 224.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a6f680c71798c38b8c026680b4edb30d01e3b98f7abe502e0222555be8d6195
|
|
| MD5 |
3773652e07a23c37050a01c1ee7aa3f2
|
|
| BLAKE2b-256 |
22548dfa955028487e7c9f5e8608953607af7228a0183dad810b5304ef45e79a
|
File details
Details for the file vadalog_extension-3.0.1-py3-none-any.whl.
File metadata
- Download URL: vadalog_extension-3.0.1-py3-none-any.whl
- Upload date:
- Size: 67.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d0c8100d13721f4ee5c58a2cadc4c9eda338b83e06d9c22cddc0da0c8f1f44d
|
|
| MD5 |
ee2210b6335919143748281ce8288e03
|
|
| BLAKE2b-256 |
af99a59e0ce32c47c9c71ed8241cfc16ceb1be934ac7fbf4c4a2922e3c5a05c3
|