Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 164 additions & 2 deletions financial_crime/application_fraud/schema/create_schema.gsql
Original file line number Diff line number Diff line change
@@ -1,2 +1,164 @@
CREATE GRAPH Application_Fraud(Phone, Email, Address, IP, Device, City, Country, State, Full_Name, Zipcode, County, ID, Party, Connected_Component, DOB, Application, Product, Account, Card, Has_Address, Has_ID, Has_IP, Has_Device, Has_Phone, Has_Email, Located_In, Assigned_To_County, Located_In_State, Located_In_Country, Same_As, Entity_In_Ring, Has_DOB, Has_Full_Name, Application_Has_Full_Name, Application_Has_Phone, Application_Has_Email, Application_Has_DOB, Application_Has_ID, Application_Has_Device, Application_Has_IP, Same_Application, Application_Has_Address, Application_In_Ring, Application_Has_Product, Application_Has_Account, Application_Has_Party, Assigned_To, Application_Has_Card)
set exit_on_error = "false"
CREATE GRAPH Application_Fraud()

CREATE SCHEMA_CHANGE JOB add_application_fraud_to_graph FOR GRAPH Application_Fraud() {
// (PII)
CREATE VERTEX Phone (
PRIMARY_ID phone_number STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX Device (
PRIMARY_ID id STRING,
is_blocked BOOL
) WITH primary_id_as_attribute="true"

CREATE VERTEX Full_Name (
PRIMARY_ID name STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX Card (
PRIMARY_ID card_number INT,
is_fraud INT,
pagerank FLOAT,
c_id INT,
c_size INT,
occupation STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX DOB (
PRIMARY_ID dob STRING
) WITH primary_id_as_attribute="true"

// Products (cards, loans, etc.)
CREATE VERTEX Product (
PRIMARY_ID id STRING,
name STRING,
description STRING,
type_of STRING
) WITH primary_id_as_attribute="true"

// Connected component / fraud ring ID
CREATE VERTEX Connected_Component (
PRIMARY_ID id INT
) WITH primary_id_as_attribute="true"

// Account entity
CREATE VERTEX Account (
PRIMARY_ID id STRING,
create_Time DATETIME,
is_fraud INT,
account_type STRING,
account_level STRING,
com_size INT,
pagerank FLOAT,
shortest_path_length INT,
ip_collision INT,
fraud_ip INT,
device_collision INT,
fraud_device INT,
trans_in_mule_ratio FLOAT,
trans_out_mule_ratio FLOAT,
mule_cnt INT,
com_id INT
) WITH primary_id_as_attribute="true"

CREATE VERTEX State (
PRIMARY_ID id STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX IP (
PRIMARY_ID id STRING,
is_blocked BOOL
) WITH primary_id_as_attribute="true"

CREATE VERTEX Address (
PRIMARY_ID address STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX Email (
PRIMARY_ID email STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX Country (
PRIMARY_ID country STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX City (
PRIMARY_ID id STRING,
city STRING,
population INT
) WITH primary_id_as_attribute="true"

CREATE VERTEX County (
PRIMARY_ID id STRING
) WITH primary_id_as_attribute="true"

CREATE VERTEX Zipcode (
PRIMARY_ID id STRING
) WITH primary_id_as_attribute="true"

// Party (person / organization)
CREATE VERTEX Party (
PRIMARY_ID id STRING,
is_fraud INT,
gender STRING,
dob DATETIME,
party_type STRING,
name STRING,
created_at DATETIME
) WITH primary_id_as_attribute="true"

CREATE VERTEX ID (
PRIMARY_ID id STRING,
id_type STRING
) WITH primary_id_as_attribute="true"

// Credit application
CREATE VERTEX Application (
PRIMARY_ID id STRING,
created_at DATETIME,
status STRING,
line_of_credit FLOAT,
annual_percentage_rate FLOAT,
is_fraud BOOL
) WITH primary_id_as_attribute="true"


CREATE UNDIRECTED EDGE Has_Address (FROM Party, TO Address)
CREATE UNDIRECTED EDGE Has_ID (FROM Party, TO ID)
CREATE UNDIRECTED EDGE Has_IP (FROM Party, TO IP)
CREATE UNDIRECTED EDGE Has_Device (FROM Party, TO Device)
CREATE UNDIRECTED EDGE Has_Phone (FROM Party, TO Phone)
CREATE UNDIRECTED EDGE Has_Email (FROM Party, TO Email)
CREATE UNDIRECTED EDGE Has_DOB (FROM Party, TO DOB)
CREATE UNDIRECTED EDGE Has_Full_Name (FROM Party, TO Full_Name)

CREATE UNDIRECTED EDGE Application_Has_Full_Name (FROM Application, TO Full_Name)
CREATE UNDIRECTED EDGE Application_Has_Phone (FROM Application, TO Phone)
CREATE UNDIRECTED EDGE Application_Has_Email (FROM Application, TO Email)
CREATE UNDIRECTED EDGE Application_Has_DOB (FROM Application, TO DOB)
CREATE UNDIRECTED EDGE Application_Has_ID (FROM Application, TO ID)
CREATE UNDIRECTED EDGE Application_Has_Device (FROM Application, TO Device)
CREATE UNDIRECTED EDGE Application_Has_IP (FROM Application, TO IP)
CREATE UNDIRECTED EDGE Application_Has_Address (FROM Application, TO Address)
CREATE UNDIRECTED EDGE Application_Has_Product (FROM Application, TO Product)
CREATE UNDIRECTED EDGE Application_Has_Account (FROM Application, TO Account)
CREATE UNDIRECTED EDGE Application_Has_Party (FROM Party, TO Application)
CREATE UNDIRECTED EDGE Application_Has_Card (FROM Application, TO Card)


CREATE UNDIRECTED EDGE Assigned_To (FROM Address|Zipcode, TO Zipcode|City)
CREATE UNDIRECTED EDGE Assigned_To_County (FROM Zipcode, TO County)
CREATE UNDIRECTED EDGE Located_In (FROM Address|City, TO City|State)
CREATE UNDIRECTED EDGE Located_In_State (FROM County, TO State)
CREATE UNDIRECTED EDGE Located_In_Country (FROM State, TO Country)


CREATE UNDIRECTED EDGE Application_In_Ring (FROM Application, TO Connected_Component)
CREATE UNDIRECTED EDGE Entity_In_Ring (FROM Connected_Component, TO Party)
CREATE UNDIRECTED EDGE Same_As (FROM Party, TO Party, score DOUBLE)
CREATE UNDIRECTED EDGE Same_Application (FROM Application, TO Application, score DOUBLE)
}

RUN SCHEMA_CHANGE JOB add_application_fraud_to_graph

DROP JOB add_application_fraud_to_graph
171 changes: 0 additions & 171 deletions financial_crime/application_fraud/schema/local_schema.txt

This file was deleted.