Skip to main content

Graph Insights

Once your catalog is a graph, graph algorithms become available to it. Collate exposes a set of them under /api/v1/rdf/insights, the kind of analysis that is trivial on a graph and painful on tables. All insight endpoints are admin-only and require RDF to be enabled.

Importance

Ranks entities of one type by a composite importance score that blends two signals:
  • Usage percentile: real query activity from Collate’s usage data (weight 0.6).
  • Downstream lineage edge count: graph topology (weight 0.4).
Parameters: entityType (required, singular, table, dashboard, pipeline, mlmodel, …), window (daily, weekly, monthly; default daily), limit (1–100, default 20). Results are SPARQL JSON with usage percentile, downstream count, and the composite score.
Blending both signals is deliberate. Usage alone over-ranks the dashboard everyone opens out of habit; topology alone over-ranks a staging table nothing reads. Something that is both queried and heavily depended on is what you actually want to protect with a contract, an owner, and a test.

Centrality (PageRank)

Walks lineage, tagging, and containment edges for the entity type, runs weighted PageRank, and persists scores to the named graph om:insights/centrality/{entityType}. Importance ranking blends these scores in for entities that have no query-usage data. Expensive by design, intended to run on a schedule, exposed for manual triggering.

Communities (Louvain)

Extracts the lineage or tag-co-occurrence graph for the entity type, runs Louvain modularity optimization, and persists the partition to om:insights/communities/{graphType}/{entityType}. Each community is an om:Community resource with om:hasMember triples and a modularity score. graphType is lineage (default) or tagCoOccurrence. Communities surface the de facto structure of your platform, clusters of assets that move together, which is often not the structure your org chart or your domain model claims. Comparing the discovered partition against your declared domains is one of the more useful audits available.

Shortest Lineage Path

Breadth-first search over the lineage graph, following prov:wasDerivedFrom, returning the shortest path between two entity URIs. Each hop returns the URI, the predicate that connected it, and the entity’s om:* types. When no path exists within maxHops, the response says found: false rather than returning an empty list you have to interpret. This is the endpoint behind “how does this dashboard actually get its numbers”, and the honest answer to an incident review.

Recommendations

Ranks every other entity by graph-topology similarity to a seed: overlap on tags, glossary terms, and direct lineage neighbors.
Pure SPARQL, no precomputation, so it is always current, and it costs something. limit is 1–50, default 10. Note the weighting: shared lineage counts double a shared tag. Two tables that share a tag might merely both be PII; two tables that share an upstream are genuinely about the same thing.
This is a different notion of “similar” from semantic search, which compares embeddings of names and descriptions. Structural similarity finds assets that behave alike; semantic similarity finds assets that read alike. They disagree usefully.

Tag Analytics

Co-occurrence is a classification-hygiene tool: two tags that almost always appear together are usually one tag with a naming problem. Glossary reach identifies your genuinely cross-cutting concepts, the ones where a definition change is an organization-wide event rather than a team-local one.

Semantic Search over the Graph

Vector-based search delegating to OpenSearch’s vector capabilities.
These endpoints require OpenSearch, not Elasticsearch. Core RDF indexing, SPARQL, graph exploration, and every other insight endpoint work with either.

SQL → SPARQL Translation

Translate a SQL statement into the equivalent SPARQL against the knowledge graph, or translate and execute in one call. Useful as an on-ramp for teams fluent in SQL, and as a way to see how a familiar query maps onto graph patterns.

Linked Open Data

With RDF_DEREFERENCEABLE_IRIS=true:
Performs authenticated, content-negotiated redirection for OpenMetadata-minted IRIs, so a linked-data client can follow an entity IRI and get RDF back. This is what makes the IRIs in your exports resolvable rather than merely unique.

Next

Knowledge Graph API

The complete endpoint reference.

For AI Agents

Hand these capabilities to an assistant.