Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

202 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐐 Sham-Wah 🐐

Nuxt JS FastAPI Neo4J Docker

⛰️ About ⛰️

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.

Try the Demo (GUI Only)

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.

🤔 Why the Name “Sham‑Wah”? 🤔

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.

📖 Table of contents 📖

🏛️ Architecture Overview 🏛️

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.

Architecture Diagram of Sham-Wah

⚙️ Installation ⚙️

🐣 First steps 🐣

  1. Clone the repository
git clone https://github.com/intforout/sham-wah.git
cd sham-wah
  1. Each component (gui, api, neo4j) contains a .env.example. Create your .env files based on these templates:
cd gui
cp .env.example .env
  1. Repeat for api and neo4j. Then choose your installation method.

🎭 Installation Options 🎭

You can run Sham‑Wah in two ways:

🐳 Docker Installation (Recommended) 🐳

  1. Install Docker (or Docker Desktop on Windows).

  2. In the root of the application, run all services:

docker compose up -d
  1. To stop all the services:
docker compose down

⚠️ WARNING: Common issue on Windows and VScode terminal

If 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.

  1. Configure your VSCode to use LF to avoid this issue.
Screenshot of the bottom‑right corner of the VS Code editor

vscode

  1. Then, re‑run the entire Docker Compose setup with:
docker compose build --no-cache
docker compose up -d

🪐 Services available 🪐

🐥 Features 🐥

🚧 Work in Progress 🚧

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

More features will be added as development continues. You can also follow progress on the github's project

About

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, servic

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages