Graph Algorithms & Intelligence

Graph runs over a CSR adjacency with PLL distance (ADR graph). graph_dijkstra is shortest path; graph_scc finds fraud rings; graph_pagerank is centrality with tunable damping/max_iter. The intelligence operators (beneficial ownership, sanctions, convoy, burner, crypto trace, geofence…) compose the algorithms with domain logic.

23 methods across this domain. Signatures, parameters (incl. keyword-only tunable defaults), and the three SDK spellings are ported from the live SDK source; flagship methods carry a hand-written When to use + example.

RelataClient

beneficial_ownership_chain(party, max_depth=None, purpose=None)

When to use. Trace ultimate beneficial ownership through a corporate hierarchy (intel operator).

  • Pythonclient.relataclient.beneficial_ownership_chain(party, max_depth=None, purpose=None)
  • TypeScriptbeneficialOwnershipChain(party, opts)
  • GoBeneficialOwnershipChain(purpose, party, maxDepth)

Parameters: party, max_depth=None, purpose=None

Example

ubo = relata.beneficial_ownership_chain("ShellCo")

graph_dijkstra(object_type, from_id, to_id, purpose=None)

When to use. Shortest path between two nodes, governed.

  • Pythonclient.relataclient.graph_dijkstra(object_type, from_id, to_id, purpose=None)
  • TypeScriptgraphDijkstra(objectType, fromId, toId, purpose)
  • GoGraphDijkstra(purpose, objectType, from, to)

Parameters: object_type, from_id, to_id, purpose=None

Example

path = relata.graph_dijkstra("Person", "p-1", "p-9")
p, _ := relata.GraphDijkstra(ctx, "Person", "p-1", "p-9")

graph_pagerank(object_type, damping=None, max_iter=None, purpose=None)

When to use. Centrality / influence ranking — tune damping (server default 0.85) and max_iter.

  • Pythonclient.relataclient.graph_pagerank(object_type, damping=None, max_iter=None, purpose=None)
  • TypeScriptgraphPageRank(objectType, opts)
  • GoGraphPageRank(purpose, objectType)

Parameters: object_type, damping=None, max_iter=None, purpose=None

Example

ranks = relata.graph_pagerank("Transaction", damping=0.85, max_iter=100)

graph_scc(object_type, purpose=None)

When to use. Strongly-connected components — the fraud-ring primitive.

  • Pythonclient.relataclient.graph_scc(object_type, purpose=None)
  • TypeScriptgraphSCC(objectType, purpose)
  • GoGraphSCC(purpose, objectType)

Parameters: object_type, purpose=None

Example

rings = relata.graph_scc("Transaction")

graph_traverse(from_id, direction=None, max_depth=None, limit=None)

When to use. BFS traversal from a node — tune direction/max_depth/limit.

  • Pythonclient.relataclient.graph_traverse(from_id, direction=None, max_depth=None, limit=None)
  • TypeScriptgraphTraverse(fromId, opts)
  • GoGraphTraverse(from)

Parameters: from_id, direction=None, max_depth=None, limit=None

Example

ring = relata.graph_traverse("p-1", direction="both", max_depth=4, limit=200)

sanctions_screen(party, threshold=None, purpose=None)

When to use. Screen entities against sanctions lists via the governed intel operator.

  • Pythonclient.relataclient.sanctions_screen(party, threshold=None, purpose=None)
  • TypeScriptsanctionsScreen(party, opts)
  • GoSanctionsScreen(purpose, party)

Parameters: party, threshold=None, purpose=None

Example

hits = relata.sanctions_screen("Person", watchlist="ofac")

burner_detect(max_age_days=None, max_calls=None, purpose=None)

burner_detect(max_age_days=None, max_calls=None, purpose=None)`

  • Pythonclient.relataclient.burner_detect(max_age_days=None, max_calls=None, purpose=None)
  • TypeScriptburnerDetect(opts)
  • GoBurnerDetect(purpose)

Parameters: max_age_days=None, max_calls=None, purpose=None

convoy_detect(radius_m=None, time_tol_secs=None, min_points=None, purpose=None)

convoy_detect(radius_m=None, time_tol_secs=None, min_points=None, purpose=None)`

  • Pythonclient.relataclient.convoy_detect(radius_m=None, time_tol_secs=None, min_points=None, purpose=None)
  • TypeScriptconvoyDetect(opts)
  • GoConvoyDetect(purpose)

Parameters: radius_m=None, time_tol_secs=None, min_points=None, purpose=None

crime_pattern_cluster(area, purpose=None)

crime_pattern_cluster(area, purpose=None)`

  • Pythonclient.relataclient.crime_pattern_cluster(area, purpose=None)
  • TypeScriptcrimePatternCluster(area, purpose)
  • GoCrimePatternCluster(purpose, area)

Parameters: area, purpose=None

crypto_trace(entity, purpose=None)

crypto_trace(entity, purpose=None)`

  • Pythonclient.relataclient.crypto_trace(entity, purpose=None)
  • TypeScriptcryptoTrace(entity, purpose)
  • GoCryptoTrace(purpose, entity)

Parameters: entity, purpose=None

dark_fleet_detect(max_gap_hours=None, purpose=None)

dark_fleet_detect(max_gap_hours=None, purpose=None)`

  • Pythonclient.relataclient.dark_fleet_detect(max_gap_hours=None, purpose=None)
  • TypeScriptdarkFleetDetect(opts)
  • GoDarkFleetDetect(purpose, maxGapHours)

Parameters: max_gap_hours=None, purpose=None

dns_tunnel_detect(entity, purpose=None)

dns_tunnel_detect(entity, purpose=None)`

  • Pythonclient.relataclient.dns_tunnel_detect(entity, purpose=None)
  • TypeScriptdnsTunnelDetect(entity, purpose)
  • GoDnsTunnelDetect(purpose, entity)

Parameters: entity, purpose=None

geofence(fence, target_type=None, purpose=None)

geofence(fence, target_type=None, purpose=None)`

  • Pythonclient.relataclient.geofence(fence, target_type=None, purpose=None)
  • TypeScriptgeofence(fence, opts)
  • GoGeofence(purpose, fence, targetType)

Parameters: fence, target_type=None, purpose=None

graph_community(object_type, purpose=None)

graph_community(object_type, purpose=None)`

  • Pythonclient.relataclient.graph_community(object_type, purpose=None)
  • TypeScriptgraphCommunity(objectType, purpose)
  • GoGraphCommunity(purpose, objectType)

Parameters: object_type, purpose=None

graph_cycles(object_type, purpose=None)

graph_cycles(object_type, purpose=None)`

  • Pythonclient.relataclient.graph_cycles(object_type, purpose=None)
  • TypeScriptgraphCycles(objectType, purpose)
  • GoGraphCycles(purpose, objectType)

Parameters: object_type, purpose=None

graph_link_predict(object_type, purpose=None)`

  • Pythonclient.relataclient.graph_link_predict(object_type, purpose=None)
  • TypeScriptgraphLinkPredict(objectType, purpose)
  • GoGraphLinkPredict(purpose, objectType)

Parameters: object_type, purpose=None

graph_node_similarity(object_type, node, purpose=None)

graph_node_similarity(object_type, node, purpose=None)`

  • Pythonclient.relataclient.graph_node_similarity(object_type, node, purpose=None)
  • TypeScriptgraphNodeSimilarity(objectType, node, purpose)
  • GoGraphNodeSimilarity(purpose, objectType, node)

Parameters: object_type, node, purpose=None

graph_shortest_path(from_id, to_id, max_hops=None)

graph_shortest_path(from_id, to_id, max_hops=None)`

  • Pythonclient.relataclient.graph_shortest_path(from_id, to_id, max_hops=None)
  • TypeScriptgraphShortestPath(fromId, toId, opts)
  • GoGraphShortestPath(from, to)

Parameters: from_id, to_id, max_hops=None

graph_triangle_count(object_type, purpose=None)

graph_triangle_count(object_type, purpose=None)`

  • Pythonclient.relataclient.graph_triangle_count(object_type, purpose=None)
  • TypeScriptgraphTriangleCount(objectType, purpose)
  • GoGraphTriangleCount(purpose, objectType)

Parameters: object_type, purpose=None

hawala_trace(seed, max_hops=None, purpose=None)

hawala_trace(seed, max_hops=None, purpose=None)`

  • Pythonclient.relataclient.hawala_trace(seed, max_hops=None, purpose=None)
  • TypeScripthawalaTrace(seed, opts)
  • GoHawalaTrace(purpose, seed)

Parameters: seed, max_hops=None, purpose=None

vessel_to_vessel_transfer(proximity_nm=None, time_window_minutes=None, purpose=None)

vessel_to_vessel_transfer(proximity_nm=None, time_window_minutes=None, purpose=None)`

  • Pythonclient.relataclient.vessel_to_vessel_transfer(proximity_nm=None, time_window_minutes=None, purpose=None)
  • TypeScriptvesselToVesselTransfer(opts)
  • GoVesselToVesselTransfer(purpose, proximityNm, timeWindowMinutes)

Parameters: proximity_nm=None, time_window_minutes=None, purpose=None

vessel_track(mmsi, window_secs=None, purpose=None)

vessel_track(mmsi, window_secs=None, purpose=None)`

  • Pythonclient.relataclient.vessel_track(mmsi, window_secs=None, purpose=None)
  • TypeScriptvesselTrack(mmsi, opts)
  • GoVesselTrack(purpose, mmsi, windowSecs)

Parameters: mmsi, window_secs=None, purpose=None

wire_reconstruction(account, tolerance_pct=None, purpose=None)

wire_reconstruction(account, tolerance_pct=None, purpose=None)`

  • Pythonclient.relataclient.wire_reconstruction(account, tolerance_pct=None, purpose=None)
  • TypeScriptwireReconstruction(account, opts)
  • GoWireReconstruction(purpose, account, tolerancePct)

Parameters: account, tolerance_pct=None, purpose=None