Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/jbarrasa/goingmeta/llms.txt

Use this file to discover all available pages before exploring further.

Most Going Meta sessions share the same core stack: a running Neo4j instance, the Neosemantics (n10s) plugin, and a Python environment with a handful of libraries. Setting everything up once means you can move between sessions without friction. This guide walks you through each component from scratch.
Sessions 1–20 work entirely with Cypher scripts or Jupyter notebooks and require only Neo4j + n10s. Python dependencies become important from session 5 onward, and the GenAI stack (LangChain, OpenAI, neo4j-graphrag) is used from session 22 onward.

Steps

1

Provision a Neo4j Instance

You need a running Neo4j instance accessible over the Bolt protocol. Two options are recommended for Going Meta sessions:
Neo4j AuraDB offers a free tier that requires no local installation. It is the fastest way to get started.
  1. Visit console.neo4j.io and create a free account.
  2. Click New Instance → AuraDB Free.
  3. After the instance starts, download the generated .env file — it contains your NEO4J_URI, NEO4J_USERNAME, and NEO4J_PASSWORD.
  4. Connect via Neo4j Browser at the URL shown in the console.
AuraDB Free has storage limits (~200k nodes / 400k relationships). For sessions with large dataset imports (e.g. Wikidata extracts in session 9), consider upgrading to AuraDB Professional or using Neo4j Desktop.
2

Install the Neosemantics (n10s) Plugin

Neosemantics enables RDF import/export, SKOS taxonomy loading, ontology import, SHACL validation, and SPARQL execution within Neo4j. It is required for the majority of Going Meta sessions.
  1. Open your database in Neo4j Desktop.
  2. Click Plugins in the right-hand panel.
  3. Find Neosemantics (n10s) and click Install.
  4. Restart the database.
Once installed, verify the plugin is active by running this in Neo4j Browser:
RETURN n10s.aux.version();
AuraDB does not support custom plugins. For sessions that require n10s (sessions 2, 3, 4, 8, 12, 14, and many others), use Neo4j Desktop or a self-managed instance.
3

Create a Python Virtual Environment

All Python-based sessions use standard venv. Create one virtual environment for the entire Going Meta series and install dependencies incrementally as needed.
python3 -m venv goingmeta-env
source goingmeta-env/bin/activate   # Windows: goingmeta-env\Scripts\activate
4

Install Core Python Dependencies

Install the full set of libraries used across all sessions. Individual session folders may also include a pyproject.toml with pinned versions — use those for exact reproducibility.
pip install \
  neo4j \
  rdflib \
  openai \
  langchain \
  langgraph \
  neo4j-graphrag \
  streamlit \
  pydantic \
  prefect \
  requests \
  python-dotenv
PackageUsed InPurpose
neo4jAll Python sessionsOfficial Neo4j Python driver for Bolt connections
rdflibSessions 5, 12, 18, 29, 30, 36Parse and manipulate RDF graphs in Python
openaiSessions 17, 25, 26+OpenAI Completions and Chat API
langchainSessions 22, 23, 24, 27, 34+LLM chaining, tool calling, agents
langgraphSessions 27, 35+Stateful multi-step agent graphs
neo4j-graphragSessions 32, 33+Neo4j’s official GraphRAG Python SDK
streamlitSessions 15, 23, 32Interactive web UI for demos
pydanticSessions 30, 34+Structured output validation from LLMs
prefectSession 9Orchestration for automated KG construction
5

Configure Environment Variables

Sessions read credentials from environment variables rather than hard-coded values. Create a .env file at the root of your working directory:
# .env
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=<your-neo4j-password>
OPENAI_API_KEY=<your-openai-api-key>
Load these variables in Python using python-dotenv:
from dotenv import load_dotenv
import os

load_dotenv()

NEO4J_URI     = os.getenv("NEO4J_URI", "bolt://localhost:7687")
NEO4J_USER    = os.getenv("NEO4J_USER", "neo4j")
NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
Or export them directly in your shell session:
export NEO4J_URI=bolt://localhost:7687
export NEO4J_USER=neo4j
export NEO4J_PASSWORD=yourpassword
export OPENAI_API_KEY=sk-...
Never commit your .env file or API keys to version control. Add .env to your .gitignore immediately.
6

Verify the Full Stack

Run the following Python snippet to confirm your Neo4j connection and OpenAI access are both working:
import os
from neo4j import GraphDatabase
from openai import OpenAI

# Test Neo4j connectivity
driver = GraphDatabase.driver(
    os.getenv("NEO4J_URI"),
    auth=(os.getenv("NEO4J_USER"), os.getenv("NEO4J_PASSWORD"))
)
with driver.session() as session:
    result = session.run("RETURN 'Neo4j connected!' AS msg")
    print(result.single()["msg"])
driver.close()

# Test OpenAI connectivity
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Say 'OpenAI connected!'"}]
)
print(response.choices[0].message.content)

Quick Reference: Environment Variables

VariableDefaultDescription
NEO4J_URIbolt://localhost:7687Bolt URI of your Neo4j instance
NEO4J_USERneo4jNeo4j username
NEO4J_PASSWORDNeo4j password (no default; must be set)
OPENAI_API_KEYOpenAI API key for LLM sessions
AuraDB connection strings use the neo4j+s:// scheme (TLS-encrypted), not bolt://. If you see connection errors, check that your URI scheme matches your instance type.

Build docs developers (and LLMs) love