# Diagrama do Ecossistema — Nós e Relacionamentos

**Documento:** `grafo/07-diagrama-ecossistema.md`  
**Versão:** 1.0.0

---

## 1. Mapa geral (texto)

```text
═══════════════════════════════ IDENTITY & HUBS ═══════════════════════════════

  [IDENTIFIER]◄──IDENTIFIED_BY──[PERSON]
  [IDENTIFIER]◄──IDENTIFIED_BY──[COMPANY]
  [IDENTIFIER]◄──IDENTIFIED_BY──[GOVERNMENT_BODY]

  [SOURCE]◄──SUPPORTED_BY── (qualquer fato / aresta reificada)

  [PHONE]◄──HAS_PHONE──┬──[PERSON]
  [EMAIL]◄──HAS_EMAIL──┤
  [DOMAIN]◄─HAS_DOMAIN─┤──[COMPANY]
  [ADDRESS]◄LOCATED_AT─┤
       │               └──[GOVERNMENT_BODY]
       └──LOCATED_IN──►[GEO_PLACE / MUNICIPALITY]
                              │
                              └──HAS_AGENCY──►[GOVERNMENT_BODY]

  [IP_ADDRESS]◄──HAS_IP──[DOMAIN]          (feature flag)
  [PROFESSIONAL_SERVICE]◄──HAS_PROFESSIONAL──[COMPANY]
           │
           └──PROVIDED_BY──►[PERSON|COMPANY]


═══════════════════════════════ ACTOR NETWORK ════════════════════════════════

  [PERSON]──OWNS/PARTNER_OF/ADMIN_OF──►[COMPANY]──OWNS──►[COMPANY]
  [PERSON]──RELATED_TO──►[PERSON]
  [PERSON]──HOLDS_MANDATE──►[MANDATE]──SERVES_IN──►[GOVERNMENT_BODY|GEO_PLACE]
  [PERSON]──(facet)──[PUBLIC_AGENT|PARLIAMENT_MEMBER]

  [COMPANY]──MEMBER_OF_GROUP──►[ECONOMIC_GROUP]
  [PERSON]──MEMBER_OF_FAMILY──►[FAMILY_CLUSTER]     (restrito)


═══════════════════════════ PUBLIC SPENDING & DEALS ══════════════════════════

  [GOVERNMENT_BODY]◄──CONTRACTED_BY──[CONTRACT]──AWARDED_TO──►[COMPANY]
         ▲                              │
         │                              ├──AMENDED_BY──►[CONTRACT_AMENDMENT]
  [PUBLIC_AGENT|PERSON]──SIGNED─────────┘
         │
  [COMPANY]──EXECUTED───────────────────►[CONTRACT]

  [GOVERNMENT_BODY]◄──OPENED_BY──[BIDDING]◄──PARTICIPATED_IN──[COMPANY]
                                      ▲
                                 [BID]─┘  (SUBMITTED / PART_OF)

  [GOVERNMENT_BODY]◄──PAID_BY──[PAYMENT]──RECEIVED──►[COMPANY|PERSON]
                              │
                              └──RELATED_TO_CONTRACT──►[CONTRACT]   (obs|derived)

  [GOVERNMENT_BODY|COMPANY]◄──TRANSFERRED_FROM──[TRANSFER]
                                                  │
                                                  └──TRANSFERRED_TO──►[COMPANY|BODY|GEO]


═══════════════════════════ PARLIAMENT & FUNDING ═════════════════════════════

  [PARLIAMENT_MEMBER]──AUTHORED──►[LEGISLATIVE_BILL]
  [PARLIAMENT_MEMBER]──AUTHORED──►[PARLIAMENTARY_AMENDMENT]
                                      │
                                      ├──ALLOCATED_TO──►[MUNICIPALITY|BODY|TRANSFER]
                                      │
  [CONTRACT|PAYMENT|TRANSFER]──FUNDED_BY─┘


═══════════════════════════════ SANCTIONS & RISK ═════════════════════════════

  [SANCTION_ENTRY]──LISTED_IN──►[SANCTION_LIST]
  [SANCTION_ENTRY]──APPLIES_TO──►[PERSON|COMPANY]     (match confidence!)
  [INTEGRITY_SIGNAL]──FLAGS──►[PERSON|COMPANY|CONTRACT|BIDDING|…]
  [INTEGRITY_SIGNAL]──INVOLVES_PATH──► (nós do GraphPath)


═══════════════════════════ DERIVED (L2) OVERLAY ═════════════════════════════

  [ATOR]◄──SHARES_PHONE_WITH──►[ATOR]          via mesmo PHONE
  [ATOR]◄──SHARES_ADDRESS_WITH──►[ATOR]
  [ATOR]◄──SHARES_EMAIL_WITH──►[ATOR]
  [ATOR]◄──SHARES_DOMAIN_WITH──►[ATOR]
  [ATOR]◄──SHARES_IP_WITH──►[ATOR]             (off default)
  [COMPANY]◄─SHARES_ACCOUNTANT_WITH─►[COMPANY]
  [COMPANY]◄─SHARES_LAWYER_WITH─►[COMPANY]
  [COMPANY]◄─SHARES_REPRESENTATIVE_WITH─►[COMPANY]
  [COMPANY]◄─IN_SAME_ECONOMIC_GROUP─►[COMPANY]
  [PERSON]◄──IN_SAME_FAMILY──►[PERSON]         (base legal)
  [COMPANY]◄─CO_BIDDED_WITH─►[COMPANY]
  [PAYMENT]──LIKELY_SETTLES──►[CONTRACT]


═══════════════════════════ AI CANDIDATES (L3) ═══════════════════════════════

  dashed proposals only:
  SAME_AS?  APPLIES_TO?  RELATED_TO?  SIGNED?  OWNS(control)?  GROUP?



═══════════════════════════ TENANT OVERLAY (L4) ══════════════════════════════

  [PERSON|COMPANY|CONTRACT|…]──IN_CASE──►[CASE]
  [SOURCE|DOCUMENT|CONTRACT|…]──CITED_AS_EVIDENCE──►[EVIDENCE]──►[CASE]
```

---

## 2. Diagrama de fluxo analítico

```text
          ┌──────────── seeds (Search / Watch / Case) ────────────┐
          ▼                                                       │
   ExpandEgoNetwork ◄──── edge allowlist + as_of + layers         │
          │                                                       │
          ├─► Shortest/K-Paths ─► GraphExplanation ─► Evidence     │
          │                                                       │
          ├─► PatternMatch ─► INTEGRITY_SIGNAL ─► Score/Watch      │
          │                                                       │
          ├─► Communities/Clusters ─► ECONOMIC_GROUP candidates     │
          │                                                       │
          └─► Similarity ─► peers / SAME_AS review                 │
                                                                  │
          Diff(T0,T1) ─► Alert ─► Notification ────────────────────┘
```

---

## 3. Matriz resumida From → To (principais)

| From \ To | PERSON | COMPANY | BODY | CONTRACT | BIDDING | PAYMENT | GEO | HUB* | SANCTION | GROUP |
|-----------|--------|---------|------|----------|---------|---------|-----|------|----------|-------|
| PERSON | RELATED_TO | OWNS/ADMIN | SERVES** | SIGNED | PART. | RECEIVED | — | HAS_* | APPLIES← | FAMILY |
| COMPANY | — | OWNS | — | EXECUTED/AWARDED | PART. | RECEIVED | LOC_IN | HAS_* | APPLIES← | MEMBER |
| BODY | — | — | — | CONTRACTED | OPENED | PAID_BY | HAS_AGENCY← | — | — | — |
| CONTRACT | — | AWARDED_TO | CONTRACTED_BY | AMENDED | — | settles | — | — | — | — |
| AMEND.PAR | — | — | ALLOC | FUNDED← | — | FUNDED← | ALLOC | — | — | — |
| SANCTION | APPLIES_TO | APPLIES_TO | — | — | — | — | — | — | LISTED | — |

\*HUB = PHONE/EMAIL/ADDRESS/DOMAIN/PROFESSIONAL  
\*\*via MANDATE

---

## 4. Contagens do modelo conceitual

| Item | Quantidade |
|------|------------|
| Tipos de nó canônicos | ~35 |
| Relacionamentos L1 documentados | ~40 |
| Relacionamentos L2 (derived) | ~12 famílias |
| Famílias de descoberta IA | 10 |
| Padrões de detecção iniciais | 7+ |
| Camadas | 5 (L0–L4) |

---

## 5. Legenda de leitura para stakeholders

- **Linha sólida** = factual/derivado determinístico com evidência.
- **Linha tracejada** = hipótese IA.
- **Caixa CASE** = privado do Tenant.
- **Hubs** = permitem “mesmo X” sem cliques densos entre todos os pares (pair edges L2 são opcionais de UX).
