Correlation matrix
Co-occurrence of topics and organizations across proof-point documents.
A correlation matrix counts how often row entities and column entities appear together in matching proof points. Use it to see which organizations cluster around which topics, or how two topic groups overlap in the same documents. Set one axis to all when you only need the totals for the other axis.
Endpoints:
POST /proof-points/correlation-matrix— all document types — playgroundPOST /proof-points/news-articles/correlation-matrixPOST /proof-points/patents/correlation-matrixPOST /proof-points/research-articles/correlation-matrixPOST /proof-points/earnings-calls/correlation-matrixPOST /proof-points/pdfs/correlation-matrixPOST /proof-points/projects/correlation-matrix
Type-specific routes apply the same matrix request on one dataset. Shared proof-point filters (query, topicQuery, gpeQuery, start / end, and so on) still apply.
Axes
Each of rows and cols is:
| Field | Purpose |
|---|---|
kind | topic, organization, or all |
groups | Non-empty list of UUID groups for topic and organization. Each inner list is one bucket (IDs in a group are OR-ed). Omit groups when kind is all. |
Request Pattern
{
"start": "2023-01-01T00:00:00Z",
"end": "2024-12-31T23:59:59Z",
"rows": {
"kind": "topic",
"groups": [
["11111111-1111-1111-1111-111111111111"],
["22222222-2222-2222-2222-222222222222"]
]
},
"cols": {
"kind": "organization",
"groups": [
["aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"],
["bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"]
]
}
}Totals for one axis
all is a single bucket that does not filter on topics or organizations. Totals for a list of rows use cols: { "kind": "all" }; each cell has col 0. Totals for a list of columns use rows: { "kind": "all" } and row 0. Both axes all returns one cell for the base filter. resolution still adds a time series to each cell.
{
"rows": {
"kind": "topic",
"groups": [
["11111111-1111-1111-1111-111111111111"],
["22222222-2222-2222-2222-222222222222"]
]
},
"cols": { "kind": "all" }
}Validation Notes
- Every
topicororganizationgroup must contain at least one UUID. - An
allaxis must not includegroups. - Use the all-types route when you want a single matrix across datasets; use a type-specific route to isolate patents, news, or another corpus.