# `Yog.Property.WeisfeilerLehman`
[🔗](https://github.com/code-shoily/yog_ex/blob/v0.98.5/lib/yog/property/weisfeiler_lehman.ex#L1)

Implements the Weisfeiler-Lehman (WL) graph hashing algorithm.

Provides a structural graph hash that iteratively gathers and sorts neighbor
labels to construct a deterministic characteristic signature evaluating
isomorphism and topological caching.

# `graph_hash`

```elixir
@spec graph_hash(
  Yog.Graph.t(),
  keyword()
) :: String.t()
```

Calculates the WL structural hash for a given graph.

## Options

- `:iterations` - The number of message-passing iterations (default: 3).
  Higher iterations provide strong isomorphism testing guarantees.
- `:node_label_fn` - A custom function `(graph, node -> String.t())` mapping nodes
  to base initialization labels. Defaults to stringified structural node degrees.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
