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 --quietRequirements
This task requires the leidenfold package. Add it to your dependencies:
{:leidenfold, "~> 0.2"}