Skip to content

Directory Structure

hkanezashi edited this page Nov 15, 2019 · 10 revisions

File and Directory Structure

Top Directory

  • bin/ Java class directory (You need to create this directory at first)
  • jars/ Directory for external jar files
  • outputs/ Directory for output CSV and image files
  • paramFiles/ Directory for parameter files for the transaction graph generator
  • sample/ Sample data
  • scripts/ Python and shell script files
  • src/ Java source directory
  • amlsim.properties Java properties file for AMLSim
  • amount.properties
  • convert.ini Python properties file to convert generated files from AMLSim
  • janusgraph.properties Java properties file to load a generated transaction file to JanusGraph
  • prop.ini Python properties file for the transaction graph generator

External jar files in jars directory

Please download external jar files from the following sites (See also jars/README.md).

  • MASON version 18
    • Download "mason18.zip" from the homepage and extract the jar file.
  • PaySim
    • Please use paysim.jar already exists under the jars directory. Note that the latest version of the GitHub repository is not compatible with our implementation.
  • Commons-Math version 3.6.1
    • Download "commons-math3-3.6.1-bin.tar.gz" and extract the following jar files.
      • commons-math3-3.6.1.jar
      • commons-math3-3.6.1-tests.jar
      • commons-math3-3.6.1-tools.jar
  • DSI Utilities version 2.5.4
  • fastutil version 8.2.3
  • JSAP version 2.1
  • JSON in Java version 20180813
  • MySQL Connector for Java version 5.1.48
  • SLF4J version 1.7.25
  • Sux for Java version 4.2.0
  • WebGraph version 3.6.1

Java packages and source files in src directory

  • amlsim/ Java package for AMLSim
    • model/ Transaction models (normal, cash and alert transactions)
      • cash/ Cash transaction models
        • CashModel.java Base class of cash transaction models
        • CashInModel.java Cash-in (deposit) model
        • CashOutModel.java Cash-out (withdrawal) model
      • aml/ AML typology (alert transaction model)
        • AMLTypology.java: The base class of SAR transaction typologies
        • FanOutTypology.java: fan-out
        • FanInTypology.java: fan-in
        • CycleTypology.java: cycle
        • BipartiteTypology.java: bipartite
        • StackTypology.java: stacked bipartite
        • RandomTypology.java: random transactions
        • ScatterGatherTypology.java: scatter-gather (fan-out -> fan-in)
        • GatherScatterTypology.java: gather-scatter (fan-in -> fan-out)
      • normal/ Normal transaction models
    • obsolete/ Place for obsolete (deprecated) source files (to be removed later)
    • stat/ Java classes to compute statistical features of the transaction graph
      • Diameter.java Compute diameter and average distance of the transaction graph
    • Account.java Account (agent) class
    • Alert.java Alert (SAR) typology class
    • AMLSim.java AMLSim main class
    • Branch.java Branch of bank class
    • SARAccount.java SAR account class
    • TransactionRepository.java Transaction repository for logging