Skip to content

Latest commit

 

History

History

docs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Documentation

This directory contains additional technical information, including documentation for the API, Docker, Jenkins as well as tips and gotchas.

Table of Contents

System Overview

image

The diagram provides a high-level overview of the AGIEF system architecture, and highlights the interactions between the main system components. Please refer to the Wiki for details on the architecture and our website for information about on the ongoing research and experiments.

Code Structure

This repository consists of:

  • Java core algorithmic components in /code/core/src/main/java/io/agi/core
  • Java experimental framework components in /code/core/src/main/java/io/agi/framework
  • Web based graphical UI in /code/www
  • Associated scripts /bin

Compute nodes have a RESTful API, so it is possible to implement components in other languages, or write alternative visualisations. Refer to the full full API documentation for more details.

Development Environment

This section builds upon the basic instructions given in the README. The following instructions only applies for setting up the local environment for development purposes.

Requirements

These are additional requirements necessary for setting up a development environment.

  • Maven build dependency system for Java
  • Java Development Kit (JDK) version 1.8 or later

Installation of the following is optional (keep reading to see when appropriate):

  • PostgreSQL database
    • In-memory persistence is currently preferred, but PostgreSQL can be used instead
  • PGAdmin database administration tool
    • If using PostgreSQL, to administer the database manually (not essential, but useful for examining the state of the system), we recommend the PGAdmin utility.
  • IntelliJ IDEA Java development environment
    • We provide project files to help you build and browse code using IntelliJ IDEA. If you wish to take advantage of this convenience, you should also install IntelliJ.

Building

The project can be easily compiled and built by executing the /bin/node_coordinator/build.sh. This script performs a version update as well as a clean build using Maven.

Testing

The unit tests are written using the JUnit testing framework and executed using the Maven Surefire Plugin.

  • Testing during Build: Tests are disabled by default during builds using Maven. To re-enable them during builds, change the skipTests flag in the properties of the pom.xml file

  • Executing All Tests: The tests can be executed using mvn surefire:test -dskipTests=false, or mvn test -DskipTests=false to also execute a build beforehand

  • Execute a Single Test: A single test can be executed using mvn surefire:test -DskipTests=false -Dtest=CLASS_NAME where CLASS_NAME is the name of the unit test class, for e.g. LogisticRegressionTest