Sham‑Wah is a web application currently being developed as part of the IntForOut Project. Designed as a companion to OutdoorPressure knowledge graph, it enables non‑experts to query and explore the graph through a user-friendly interface, allowing users to search and discover the wide range of resources (scientific papers, datasets, scripts, services, etc...) produced and used by the project’s research teams.
A static preview of the GUI is available here: https://intforout.github.io/sham-wah/explore/
This version does not communicate with the API or the Neo4j database, only the local file data will give you a preview of the feature visualizations.
I wanted a short, pleasant‑sounding name for a Knowledge Graph Query Framework, ideally with a nod to knowledge graph, querying and alpine ecology. Since the project focuses on wildlife disturbance in mountain environments, I explored animal‑themed names and naturally thought of the chamois, an animal I love.
While searching for inspiration, I found an English forum discussing how to pronounce chamois. Someone wrote it as “sham‑wah”, and it immediately clicked: unique spelling, easy to pronounce, and a subtle reference to the real animal. During my research I discovered that chamois is also an HTML color name, which inspired the color theme used in the app.
And that’s how Sham‑Wah was born.
Sham‑Wah follows a web-based client–server architecture composed of three main components:
- Graphical User interface (GUI): a Nuxt‑based frontend for exploring the knowledge graph, running queries, and visualizing results
- API Backend: a FastAPI server that handles requests and communicates with the knowledge graph.
- Knowledge Graph Database: A Neo4j instance storing entities and relationships, enriched with the neosemantics plugin.
- Clone the repository
git clone https://github.com/intforout/sham-wah.git
cd sham-wah- Each component (gui, api, neo4j) contains a .env.example. Create your .env files based on these templates:
cd gui
cp .env.example .env- Repeat for api and neo4j. Then choose your installation method.
You can run Sham‑Wah in two ways:
- Using Docker (recommended, easiest way)
- Traditional installation (manual setup of GUI, API, and Neo4j)
-
Install Docker (or Docker Desktop on Windows).
-
In the root of the application, run all services:
docker compose up -d- To stop all the services:
docker compose downIf you have use VSCode for example to create all the .env files or modifies the code itself, VSCode on Windows rewrites all the files with CRLF endings (\r\n) as the default line ending. When you run the docker command, Neo4j container (which uses a linux image) may fails to start as it uses shell scripts and files inside the container use CRLF instead of LF, so Linux interprets the extra \r character as an invalid command.
- Configure your VSCode to use LF to avoid this issue.
- Then, re‑run the entire Docker Compose setup with:
docker compose build --no-cache
docker compose up -d- GUI: http://localhost:3000/sham-wah/explore
- API Documentation (Swagger): http://localhost:8000/docs
The current version includes:
- A prototype layout with:
- A query panel on the left that includes:
- A predefined query panel highlighting digital assets linked to human activities
- A panel with hard coded data for demonstration purposes
- A graph neighborhood view on the right
- Click a node to open its information panel and view detailed metadata
- Double‑click a node to expand or collapse its node neighbors
- A query panel on the left that includes:
More features will be added as development continues. You can also follow progress on the github's project

