This directory contains additional technical information, including documentation for the API, Docker, Jenkins as well as tips and gotchas.
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.
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.
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.
These are additional requirements necessary for setting up a development environment.
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.
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.
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 thepom.xml
file -
Executing All Tests: The tests can be executed using
mvn surefire:test -dskipTests=false
, ormvn 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
whereCLASS_NAME
is the name of the unit test class, for e.g.LogisticRegressionTest