# Topic 06 — Language & Terms — Run 2 (Connectors & Cross-Cluster Structure)

This README documents **Run 2** of Topic 06.  
Run 2 builds directly on Run 1 (term concentration + core visuals) and focuses on **connectors** — the structural elements that link clusters together beyond simple term counts.

The goal of this run is to answer a higher‑order question:

> *If these clusters were generated independently, what concrete artifacts would **not** be expected to recur across them — and yet do?*

---

## What Run 2 Adds (Compared to Run 1)

Run 1 established **language asymmetry and concentration**.  
Run 2 establishes **structural linkage**.

Specifically, Run 2 introduces:

1. **Cluster ↔ Case Event connectors**
2. **Cluster ↔ Tracking Font connectors**
3. **Cluster ↔ Exclusive Term connectors**
4. **Cross‑cluster overlap counts**
5. **Edge‑weighted views suitable for graph analysis**

This transforms Topic 06 from *descriptive statistics* into *network evidence*.

---

## Inputs Used

Run 2 relies on the following datasets:

### Children dataset
- `children/doc[].string_norm`
- `children/doc[].string_group_n`
- `children/objects[].object_sha256`
- `children/metadata.xmp_title`

### Parents dataset
- `parents/case_events[]`
- Case identifiers, case types, and event names

### Run 1 outputs
- Exclusive‑term sets derived in Run 1
- Document‑level exclusive‑term counts

---

## SQL Views Introduced in Run 2

The SQL file for this run is:

```
sql/topics/06_language_and_terms/06_language_and_terms__connectors__views.sql
```

This file defines a family of **`v06x_*` views**.

### Core Connector Views

| View name | Purpose |
|---------|--------|
| `v06x_case_events_for_docs` | Links documents to parent case events |
| `v06x_edges_cluster_font` | Cluster → tracking‑font edges |
| `v06x_edges_cluster_term` | Cluster → exclusive‑term edges |
| `v06x_cluster_font_counts` | Aggregated font reuse per cluster |
| `v06x_cluster_term_counts` | Aggregated term reuse per cluster |

These views are **edge‑ready**: every row represents a potential graph connection.

---

## Conceptual Model

Run 2 treats the dataset as a **bipartite / multipartite network**:

- **Left nodes**: clusters (people / cases)
- **Right nodes**: artifacts (terms, fonts, events)
- **Edges**: reuse or co‑occurrence within documents

This allows the same evidence to be interpreted as:
- tables
- graphs
- weighted networks
- bridge detection problems

---

## Key Analytical Questions Answered

Run 2 explicitly addresses:

### 1. Are the same tracking‑font objects reused across clusters?
If yes, how frequently, and across how many documents?

### 2. Do exclusive language patterns overlap structurally?
Not just *which* terms exist, but *how* they connect clusters.

### 3. Are there identifiable “bridge artifacts”?
Artifacts that connect **multiple clusters simultaneously**, suggesting shared origin or generation process.

### 4. Do these connectors align with legal / procedural events?
By joining to parent case events, Run 2 enables timeline and procedural correlation.

---

## Outputs Produced

Run 2 produces CSV exports that are consumed by:

- **Visuals 04 & 05** (bipartite graphs)
- Cross‑cluster overlap tables
- Future centrality / bridge scoring

Key outputs include:

- `06x_edges_cluster_font.csv`
- `06x_edges_cluster_term.csv`
- `06x_cluster_font_counts.csv`
- `06x_cluster_term_counts.csv`

These outputs are intentionally **generic graph inputs** so they can be reused for:
- NetworkX
- Gephi
- Cytoscape
- statistical modeling

---

## Relationship to Visuals

Run 2 is the **structural backbone** for the finalized visuals:

- **Visual 04** — Cluster ↔ Tracking Font Graph  
- **Visual 05** — Cluster ↔ Exclusive Term Graph  

Without Run 2, these graphs cannot exist.

---

## Why This Matters

Independent legal cases should **not** share:

- identical tracking‑font hashes
- repeated, clustered exclusive language
- consistent artifact reuse patterns

Run 2 shows that these similarities are not anecdotal — they are **structurally encoded**.

This is the transition point from:
> *“These cases look similar”*  
to  
> *“These cases share concrete generation artifacts.”*

---

## How to Re‑run

From DuckDB CLI:

```sql
.read sql/topics/06_language_and_terms/06_language_and_terms__connectors__views.sql
```

Then regenerate visuals:

```bash
python3 sql/topics/06_language_and_terms/06_language_and_terms__visuals.py --only 04,05
```

---

## Next Extensions (Planned)

Suggested follow‑ups enabled by Run 2:

- Bridge‑node scoring (betweenness / degree)
- Minimal connector sets
- Time‑aligned connector emergence
- Export to external graph tools

---

**Run 2 completes the shift from language statistics to forensic structure.**
