concepts into reality
Neurons to Algorithms
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:
- Persistently store discrete Events and time-varying Timeseries data (such as the position of a moving object over time).
- Selectively retrieve information by a simple Tagging system.
- Receive notifications whenever new data with a specific set of tags is received or updated (event-driven processing).
- Find sequences of events matching specified patterns.
- Find combinations of related co-occurring events.
- Interpolate sets of timeseries at specified times to create snapshot estimates of system state.
- 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").
- Client applications may be written in a mix of languages, from Java-free (through SQL or command-line interfaces) to pure Java.
- Selective, (nearly) transparent client-side mirroring of Event and Timeseries data.
- Data is stored exactly as it is received; resampling is performed on demand during retrieval.
- Creating an RBB in an H2 database does not preclude normal (non-RBB) use of the same database.
- Support for single-threaded applications, or multiple process applications on multiple hosts.
- Offline (query-based) or online (event-driven) programming models.
- Data sets ranging from nonpersistent in-memory to larger-than-RAM.
- Does not dictate the 'outer loop' (top level of control) in a program.
Click here for download information.