Skip to content

Guide Overview

This guide is the basic-usage path: install GraphForge, run your first queries, and cover everyday workflows. For architecture, research, and deeper narratives, see the Book. The public documentation map lists published trees.

Page Purpose
Installation Install via pip or uv
Quick Start First graph in five minutes
Tutorial Step-by-step walkthrough

Learn the openCypher query language — GraphForge’s primary interface for working with graphs.

Build graphs programmatically using the Python API.

Export graphs to NetworkX, igraph, and pandas for further analysis.

Score every node with a graph centrality algorithm (PageRank, betweenness, closeness, degree, clustering coefficient, or triangle count). Returns an Arrow Table with node properties plus a score column. Pass write_property to persist scores back to the graph. See the tutorial for examples.

Assign community membership using Louvain or connected-components algorithms. Returns an Arrow Table with node properties plus a community_id column. Pass write_property to persist assignments back to the graph. See the tutorial for examples.

Full-text, vector similarity, or hybrid search over node properties. Bring your own vectors — GraphForge stores and queries them but does not generate embeddings. Returns an Arrow Table with node properties plus score and matched_on columns. See the tutorial for examples.

Planned open-dataset catalogs — not shipped in v0.5.0. Kept under Reference for readers tracking the backlog extension.

A graph consists of nodes (vertices) and relationships (edges) connecting them.

Nodes represent entities in your graph. They can have:

  • Labels - Types or categories (e.g., Person, Product)
  • Properties - Key-value pairs with data

Relationships connect nodes and can have:

  • Type - The nature of the connection (e.g., KNOWS, PURCHASED)
  • Direction - From one node to another
  • Properties - Additional data about the relationship

Cypher uses ASCII-art patterns to describe graph structures:

(a:Person)-[:KNOWS]->(b:Person)

This pattern matches two Person nodes connected by a KNOWS relationship.

  1. MATCH - Find patterns in the graph
  2. WHERE - Filter results
  3. RETURN - Specify what to return
  4. ORDER BY - Sort results
  5. LIMIT - Limit number of results

v0.5.0: ALL methods return a PyArrow Tableexecute, rank, cluster, find, and schema. There are no CypherValue wrappers and no SearchHit objects. Access values via .as_py() or pass the table directly to pandas, Polars, or NetworkX, which all accept Arrow as input.

table = forge.execute("MATCH (p:Person) RETURN p.name, p.age")
# table is a pyarrow.Table — use Arrow, pandas, or Polars to consume it
import pandas as pd
df = table.to_pandas()