Artificial Intelligence workBENCH (AIBench)

Category Intelligent Software>Data Mining Systems/Tools

Abstract AIBench [the Artificial Intelligence (AI) workBENCH] is an open-source desktop application framework for scientific software development with the goal of providing support to both fundamental and applied research in the domain of translational biomedicine.

It was created to ease the development of Artificial Intelligence and Data Analysis software applications.

AIBench incorporates an advanced plug-in engine, a flexible scripting platform and takes advantage of Java annotations, reflection and various design principles in order to make it easy to use, lightweight and non-intrusive.

By following a basic input-processing-output life cycle, it is possible to fully develop multiplatform applications using only three (3) types of concepts: operations, data-types and views.

The framework automatically provides functionalities that are present in a typical scientific application including user parameter definition, logging facilities, multi-threading execution, experiment repeatability and user interface workflow management, among others.

The framework architecture defines a reusable component model which also allows assembling new applications by the reuse of libraries, from past projects or third-party software.

AIBench is also a lightweight, non-intrusive, Model-View-Controller (MVC)-based Java application framework that eases the connection, execution, and integration of Operations with well defined input/output.

The basic idea behind AIBench provides an advanced programming model to develop applications fast, given that:

1) The logic can be decoupled from the user interface;

2) The interconnection of Operations can also be decoupled based on the idea of “experiments”; and

3) The programmer is forced to “think-before-programming”, easing the code reuse.

The new Operations can be plugged by copying their .jar files to a specific directory and then, they will be available by just restarting the program.

AIBench was created to focus on the easiness of building new Operations. To achieve this objective, the design was created by using the following principles:

1) Default-driven - The programmer of the new Operations should get them running with a minimum amount of code. The framework should provide smart defaults for each option that can be fine-tuned in the future.

2) Design independent of the problem - AIBench was made inside a research group focused on the Data-Mining/AI field, but there is Not any concept related to that field in the classes, interfaces or annotations of this framework.

AIBench is, in fact, data-type agnostic; the programmer provides their own data-types through their own classes.

The applications of AIBench are Not limited, but it specially fits well in the Data-Mining/AI field, because every day there are new Operations and data-types that need to be tested and integrated with existing ones.

The Workbench User Interface --

AIBench provides a Java Swing GUI (Graphical User Interface), called Workbench, which allows the user to request the execution of Operations.

The main features of the Workbench are:

1) Deployment of the available Operations in menus. The Operations also define a logical path such as /load/csv/loadCSVFile used by the Workbench to create a menu hierarchy following those logical paths.

2) Dynamic generation of input dialogs. When the user requests the execution of a given Operation, the Workbench generates an input dialog reflecting the input ports defined in that Operation. Depending on the data-type of each port, the control displayed may change.

3) User input validation. It uses the validating method provided in the operation (if there is one) to stop the user if the validation didn't succeed.

4) Monitoring the process of the Operation’s execution. The more monitoring information the Operation provides, the more information will be displayed.

5) Display the results of an Operation. The Workbench provides a default View of the results, but you can provide more sophisticated custom components associated with a Data-type to display its information.

The plug-ins-based Architecture of AIBench --

In summary, the Operations programmer builds these types of processes:

1) Operations - The units of logic.

2) Data-types - Normal Java classes used as input and output for the Operations.

3) Views - Classes that inherit from ‘JComponent’ and are subsequently used to display the Data-types inside the Workbench.

AIBench uses a ‘plug-in engine’ behind the scenes to provide advanced capabilities such as dynamic discover and the loading of new Operations by restarting the application.

Note: A programmer needs to know the basics of this engine in order to develop Operations for AIBench.

The plug-in engine is used to create applications based on software modules, called plug-ins.

This paradigm consists of the following rules:

1) A plug-in is a set of classes, isolated (by default) from the rest of the classes belonging to other plug-ins.

2) A plug-in can define extension points. An extension point is a place where other plug-ins can be connected to and then discovered and used at run-time.

Optionally, an extension point could establish a Java interface that must be implemented by the plug-ins connected to it.

3) A plug-in can use the classes from another plug-in only if a dependency from the first plug-in to the second plug-in has been defined.

AIBench contains two (2) basic plug-ins: The CORE and the WORKBENCH, communicated internally by an extension point.

The CORE implements the extensible AIBench Operation Model by the definition of an extension point called “AIBench.core.operation-definition”.

To add Operations to AIBench, you have to put them in a plug-in and connect it to this extension point.

The WORKBENCH implements the Workbench user interface and also defines an extension point called “AIBench.core.workbench.view”.

To register a view component associated with a Data-type, you have to put your component in a plug-in and connect it to this extension point.

The user Data-types have to be placed inside a plug-in, but this plug-in doesn't need to be connected to any extension point.

You can put your Operations, Views and Data-types in one, two or more separated plug-ins, based on your own design decision.

The connection and dependency between plug-ins is made through the plugin.xml file present in every plug-in.

AIBench-based sample applications --

OptFlux - The OptFlux application - (see G6G Abstract Number 20692), includes a number of tools to support in silico metabolic engineering.

The application allows the user to load a genome-scale model of a given organism. This will serve as the basis to simulate the wild type and mutants (original strain with a set of selected gene deletions).

@Note - @Note is a Biomedical Text Mining platform that copes with major Information Retrieval and Information Extraction tasks and promotes multi-disciplinary research.

In fact, it aims to provide support for three (3) different usage roles: biologists, text miners and application developers.

System Requirements

Contact manufacturer.

Manufacturer

Manufacturer Web Site AIBench

Price Contact manufacturer.

G6G Abstract Number 20693

G6G Manufacturer Number 104268