This project is a web-based user interface (GUI) for Lisa, a powerful expert-system shell written in Common Lisp. The main goal is to provide a visual and intuitive platform for creating, managing, and running expert systems, abstracting the user from direct command-line interaction.
- Project Management: Create, list, and load different projects, each with its own files for rules, facts, templates, and functions.
- Integrated Code Editor: Includes a built-in code editor to modify project files directly in the browser, streamlining the development process.
- Execution Control: Offers buttons to start, stop, and run the Lisa inference engine, with real-time output displayed in a web console.
- Dynamic Architecture: Utilizes HTMX for asynchronous page updates, providing a smooth and responsive user experience without full page reloads.
- Frontend:
- Common Lisp: Rendering and server communication logic.
- Spinneret: HTML generation.
- UIkit: CSS framework for a modern design.
- HTMX: Dynamic client-side interactions.
- Ace Editor: Embedded code editor for efficient editing.
- Backend:
- Common Lisp: Programming language.
- Lisa: The underlying rule engine.
- Easy-routes: Web route management.
- Hunchentoot: Web server.
The system is designed to organize project files in a clear and consistent manner:
/projects └─── /project-name ├─── facts.lisp ├─── rules.lisp ├─── templates.lisp └─── functions.lisp
-
Prerequisites: Make sure you have a Common Lisp environment with Quicklisp installed and configured.
-
Clone Repository:
cd ~/quicklisp/local-projects/ git clone https://github.com/gassechen/cl-lisa-web.git cd cl-lisa-web
-
Load and Run: In your Common Lisp REPL, load and start the system:
(ql:quickload :cl-lisa-web) (in-package :cl-lisa-web (start-server)
-
Access: Open your web browser and navigate to
http://localhost:8888.
Contributions are welcome. Feel free to open an issue or submit a pull request.
Prototype of web interface for building expert systems with Lisa https://github.com/youngde811/Lisa