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).

  • Python — client.relataclient.beneficial_ownership_chain(party, max_depth=None, purpose=None)
  • TypeScript — beneficialOwnershipChain(party, opts)
  • Go — BeneficialOwnershipChain(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.

  • Python — client.relataclient.graph_dijkstra(object_type, from_id, to_id, purpose=None)
  • TypeScript — graphDijkstra(objectType, fromId, toId, purpose)
  • Go — GraphDijkstra(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.

  • Python — client.relataclient.graph_pagerank(object_type, damping=None, max_iter=None, purpose=None)
  • TypeScript — graphPageRank(objectType, opts)
  • Go — GraphPageRank(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.

  • Python — client.relataclient.graph_scc(object_type, purpose=None)
  • TypeScript — graphSCC(objectType, purpose)
  • Go — GraphSCC(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.

  • Python — client.relataclient.graph_traverse(from_id, direction=None, max_depth=None, limit=None)
  • TypeScript — graphTraverse(fromId, opts)
  • Go — GraphTraverse(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.

  • Python — client.relataclient.sanctions_screen(party, threshold=None, purpose=None)
  • TypeScript — sanctionsScreen(party, opts)
  • Go — SanctionsScreen(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)`

  • Python — client.relataclient.burner_detect(max_age_days=None, max_calls=None, purpose=None)
  • TypeScript — burnerDetect(opts)
  • Go — BurnerDetect(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)`

  • Python — client.relataclient.convoy_detect(radius_m=None, time_tol_secs=None, min_points=None, purpose=None)
  • TypeScript — convoyDetect(opts)
  • Go — ConvoyDetect(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)`

  • Python — client.relataclient.crime_pattern_cluster(area, purpose=None)
  • TypeScript — crimePatternCluster(area, purpose)
  • Go — CrimePatternCluster(purpose, area)

Parameters: area, purpose=None

crypto_trace(entity, purpose=None)

crypto_trace(entity, purpose=None)`

  • Python — client.relataclient.crypto_trace(entity, purpose=None)
  • TypeScript — cryptoTrace(entity, purpose)
  • Go — CryptoTrace(purpose, entity)

Parameters: entity, purpose=None

dark_fleet_detect(max_gap_hours=None, purpose=None)

dark_fleet_detect(max_gap_hours=None, purpose=None)`

  • Python — client.relataclient.dark_fleet_detect(max_gap_hours=None, purpose=None)
  • TypeScript — darkFleetDetect(opts)
  • Go — DarkFleetDetect(purpose, maxGapHours)

Parameters: max_gap_hours=None, purpose=None

dns_tunnel_detect(entity, purpose=None)

dns_tunnel_detect(entity, purpose=None)`

  • Python — client.relataclient.dns_tunnel_detect(entity, purpose=None)
  • TypeScript — dnsTunnelDetect(opts)
  • Go — DnsTunnelDetect(purpose, entity)

Parameters: entity, purpose=None

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

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

  • Python — client.relataclient.geofence(fence, target_type=None, purpose=None)
  • TypeScript — geofence(fence, targetType, opts)
  • Go — Geofence(purpose, fence, targetType)

Parameters: fence, target_type=None, purpose=None

graph_community(object_type, purpose=None)

graph_community(object_type, purpose=None)`

  • Python — client.relataclient.graph_community(object_type, purpose=None)
  • TypeScript — graphCommunity(objectType, purpose)
  • Go — GraphCommunity(purpose, objectType)

Parameters: object_type, purpose=None

graph_cycles(object_type, purpose=None)

graph_cycles(object_type, purpose=None)`

  • Python — client.relataclient.graph_cycles(object_type, purpose=None)
  • TypeScript — graphCycles(objectType, purpose)
  • Go — GraphCycles(purpose, objectType)

Parameters: object_type, purpose=None

graph_link_predict(object_type, from_id, to_id, purpose=None)`

  • Python — client.relataclient.graph_link_predict(object_type, from_id, to_id, purpose=None)
  • TypeScript — graphLinkPredict(objectType, from, to, purpose)
  • Go — GraphLinkPredict(purpose, objectType, from, to)

Parameters: object_type, from_id, to_id, purpose=None

graph_node_similarity(object_type, node, purpose=None)

graph_node_similarity(object_type, node, purpose=None)`

  • Python — client.relataclient.graph_node_similarity(object_type, node, purpose=None)
  • TypeScript — graphNodeSimilarity(objectType, node, purpose)
  • Go — GraphNodeSimilarity(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)`

  • Python — client.relataclient.graph_shortest_path(from_id, to_id, max_hops=None)
  • TypeScript — graphShortestPath(fromId, toId, opts)
  • Go — GraphShortestPath(from, to)

Parameters: from_id, to_id, max_hops=None

graph_triangle_count(object_type, purpose=None)

graph_triangle_count(object_type, purpose=None)`

  • Python — client.relataclient.graph_triangle_count(object_type, purpose=None)
  • TypeScript — graphTriangleCount(objectType, purpose)
  • Go — GraphTriangleCount(purpose, objectType)

Parameters: object_type, purpose=None

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

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

  • Python — client.relataclient.hawala_trace(seed, max_hops=None, purpose=None)
  • TypeScript — hawalaTrace(seed, opts)
  • Go — HawalaTrace(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)`

  • Python — client.relataclient.vessel_to_vessel_transfer(proximity_nm=None, time_window_minutes=None, purpose=None)
  • TypeScript — vesselToVesselTransfer(opts)
  • Go — VesselToVesselTransfer(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)`

  • Python — client.relataclient.vessel_track(mmsi, window_secs=None, purpose=None)
  • TypeScript — vesselTrack(mmsi, opts)
  • Go — VesselTrack(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)`

  • Python — client.relataclient.wire_reconstruction(account, tolerance_pct=None, purpose=None)
  • TypeScript — wireReconstruction(account, opts)
  • Go — WireReconstruction(purpose, account, tolerancePct)

Parameters: account, tolerance_pct=None, purpose=None