mix arcana.graph.detect_communities (Arcana v2.0.1)

Copy Markdown View Source

Detects communities in the knowledge graph using the Leiden algorithm.

Use this after building or rebuilding the knowledge graph to generate community clusters for global queries.

$ mix arcana.graph.detect_communities

Options

  • --collection - Only detect communities for the specified collection
  • --resolution - Community detection resolution (default: 1.0, higher = smaller communities)
  • --objective - Quality function: cpm (default), modularity, rber, rbc, significance, surprise
  • --iterations - Number of optimization iterations (default: 2)
  • --seed - Random seed for reproducibility (default: 0 = random)
  • --min-size - Minimum community size to include (default: 1, set to 2+ to exclude singletons)
  • --max-level - Maximum hierarchy levels to generate (default: 1)
  • --quiet - Suppress progress output

Examples

# Default usage
mix arcana.graph.detect_communities

# Detect communities for a specific collection
mix arcana.graph.detect_communities --collection my-docs

# With custom resolution (higher = more, smaller communities)
mix arcana.graph.detect_communities --resolution 1.5

# Using modularity optimization
mix arcana.graph.detect_communities --objective modularity

# Exclude small communities (less than 5 members)
mix arcana.graph.detect_communities --min-size 5

# Generate hierarchical communities (3 levels)
mix arcana.graph.detect_communities --max-level 3

# Quiet mode (no progress output)
mix arcana.graph.detect_communities --quiet

Requirements

This task requires the leidenfold package. Add it to your dependencies:

{:leidenfold, "~> 0.2"}