Skip to content

Containerized environment for Graph data engineering and semantic modeling. Implements an immutable stack with Neo4j, Neosemantics (n10s), and Jupyter Lab.

Notifications You must be signed in to change notification settings

mjanez/neo4j-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neo4j Graph stack

A containerized environment for Graph Data Engineering, Semantic Modeling (RDF/OWL), and Graph Data Science.

This repository provides a reproducible stack using Neo4j Community Edition paired with Jupyter Lab. It implements an immutable infrastructure pattern by baking critical dependencies directly into the container image.

Stack Architecture*

  • Database: Neo4j Community (Version pinned in .env.example).
  • Semantic Layer: Neosemantics (n10s) for RDF import/export and ontology management. Installed via custom Docker build.
  • Data Engineering: APOC and Graph Data Science (GDS) libraries enabled.
  • Client: Jupyter Lab (Python 3.11) with Neo4j Bolt driver, configured for ETL pipelines and analysis.

Configuration

All configuration is centralized in the .env.example file.

Rename it to .env and adjust settings as needed.

cp .env.example .env

Setup and Usage

  1. Configure Environment Review the .env.example file. The default settings are optimized for a standard development machine (1GB Heap / 2GB Max).
cp .env.example .env
  1. Build and Run The build step is required to fetch the correct Neosemantics jar file.
docker-compose up -d --build
  1. Access Services
  • Neo4j Browser: http://localhost:7474
  • Jupyter Lab: http://localhost:8888

Project Structure

  • notebooks/: Python scripts for data ingestion and graph algorithms.
  • import/: Directory mapped to Neo4j and Jupyter for CSV datasets and OWL files.
  • data/: Persisted database files.
  • logs/: Database logs.

Semantic Configuration (n10s)

To initialize the semantic config, run the following in the Neo4j Browser or via the provided Python notebook:

CREATE CONSTRAINT n10s_unique_uri FOR (r:Resource) REQUIRE r.uri IS UNIQUE;
CALL n10s.graphconfig.init();

About

Containerized environment for Graph data engineering and semantic modeling. Implements an immutable stack with Neo4j, Neosemantics (n10s), and Jupyter Lab.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published