Cognitive Science and Applications


Released Innovative Software

Developing innovative software solutions that turn research
concepts into reality


Cognitive Foundry

The Cognitive Foundry is a modular Java software library for the research and development of cognitive systems. It contains many reusable components for machine learning, statistics, and cognitive modeling. It is primarily designed to be easy to plug into applications to provide adaptive behaviors.

Click here for download information.

Neurons to Algorithms

The Neurons to Algorithms (N2A) software package is a neural modeling workbench. It supports editing, simulating, visualizing, analyzing and sharing neural systems.

Software website is in development. Please check back later for link.

MVC Framework

The MVC Framework provides a reusable model-view-controller application programming interface (API) for use in the rapid development of graphical user interface applications in the .NET 2.0 framework.

Click here for download information.

MVC Shell

The MVC Shell provides the shell of a plugin based application environment that builds on MVC Framework to allow one to rapidly construct an application by using a collection of plugins. The MVC Shell is implemented in C# as a .NET 2.0 application.

Click here for download information.

RBB: Relational Blackboard

The Relational Blackboard (RBB) is an open-source (BSD) implementation of the Blackboard concept for temporal information. It allows components of an application to:

  1. Persistently store discrete Events and time-varying Timeseries data (such as the position of a moving object over time).
  2. Selectively retrieve information by a simple Tagging system.
  3. Receive notifications whenever new data with a specific set of tags is received or updated (event-driven processing).
  4. Find sequences of events matching specified patterns.
  5. Find combinations of related co-occurring events.
  6. Interpolate sets of timeseries at specified times to create snapshot estimates of system state.
  7. User-defined Time Coordinates to handle situations in which data are stored in different units of time (e.g. some in POSIX time, and others in milliseconds since device power-on), and querying each event in a different time-frame of reference based on its tag values (e.g. "all cars made between 2004 and 2007" vs "all cars currently 10-12 years old").
A main objective of RBB is high performance, so applications can deeply leverage the blackboard concept (instead of retrieving long-lived local copies of data for processing). RBB is implemented on the H2 Relational Database, which provides persistence and location transparency. The features of RBB include:

  1. Client applications may be written in a mix of languages, from Java-free (through SQL or command-line interfaces) to pure Java.
  2. Selective, (nearly) transparent client-side mirroring of Event and Timeseries data.
  3. Data is stored exactly as it is received; resampling is performed on demand during retrieval.
  4. Creating an RBB in an H2 database does not preclude normal (non-RBB) use of the same database.
  5. Support for single-threaded applications, or multiple process applications on multiple hosts.
  6. Offline (query-based) or online (event-driven) programming models.
  7. Data sets ranging from nonpersistent in-memory to larger-than-RAM.
  8. Does not dictate the 'outer loop' (top level of control) in a program.

Click here for download information.

Top of Page