GraphsJ - Scenario Development Kit (SDK)
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/main/scala/info/gianlucacosta/graphsj
.gitignore
LICENSE
README.md
build.gradle
settings.gradle

README.md

GraphsJ-sdk

GraphsJ - Scenario Development Kit (SDK)

Introduction

GraphsJ SDK is a library providing traits and classes to easily create scenarios that can be imported and run within GraphsJ.

The framework is very minimalist and inspired by Functional Programming - in particular, it employs the EighthBridge toolkit.

Referencing the SDK

The SDK is available on Hephaestus and can be declared as a Gradle or Maven dependency; please refer to its dedicated page.

Alternatively, you could download the JAR file from Hephaestus and manually add it to your project structure.

IMPORTANT: the SDK should be referenced as a provided dependency, needed only during the compilation of your project - as it is provided by GraphsJ itself at runtime.

Employing the SDK

Basically speaking, to create a new scenario for GraphsJ, you should:

  1. Implement the Algorithm trait, to express the algorithm logic

  2. Implement the Scenario trait, to provide details on:

  • the scenario

  • the graph

  • the controllers handling user interaction

  1. Implement the ScenarioFactory trait, which should instantiate the Scenario

Creating a scenario requires knowledge of EighthBridge, the ScalaFX library dedicated to graph modeling and interactive rendering.

Interesting examples are available in GraphsJ - Scenarios, an open source project containing scenarios for both Artificial Intelligence and Operations Research.

For further information, please refer to the related Scaladoc documentation.

Referencing external libraries

The following libraries are automatically provided by GraphsJ SDK:

Other libraries cannot be referenced by a scenario, unless your build tools includes their classes within your jar, making it self-contained.

Further references