RBB Glossary

A piece of data associated with an Event by an application. The data is opaque to RBB. The blob is stored in a user-specified Schema to designate the meaning and/or datatype of the blob. For example, you could organize photographs with an Event for each photo, attaching the photograph itself in a "photos" schema, and a reduced version in a "thumbnails" schema. See H2SBlob in the javadoc, and attachBlob / getBlob to store / retrieve from the command-line.
Events are concurrent if they overlap in time, i.e. the start of each is before the end of the other. Many operations in RBB start with finding sets of concurrent events, e.g. RBB get.
A start Tagset, and unique ID. Together these represent a discrete event. May have other information (such as Timeseries data) attached in one or more Schema.
Event Listener
Processing that is triggered by creation or modification of Events. To implement in a Java application see RBB.addEventListener(). To implement in a SQL application, execute call RBB_START_EVENT_TCP_SERVER() (see H2EventTCPServer.start()).
A 64-bit integer to uniquely identify each String, Tagset, and Event in an RBB. For Strings and Tagsets this is done to improve runtime efficiency. For Events, IDs are also useful to uniquely identify a specific Event, since several events may have identical Tagsets. (This should mean the Events are semantically equivalent and should be managed together using their shared Tagset, but in practice exceptional circumstances do arise).
Relational Blackboard
A Time and multi-dimensional value (in 32-bit precision) stored in an RBB Timeseries. For example, the (x,y) location of a car at a point in time.
Each schema represents a single type of information that may be attached to an RBB Event. An RBB Schema is a SQL Schema; RBB adds functions to associate an Event with either an entire table, or rows from a table, in a particular Schema. For example, a Timeseries is an Event with an associated series of Samples in the RBB_TIMESERIES schema. See also Blob.
An ordered set of Events (which are not necessarily Concurrent). To find Sequences of events matching a pattern use FindEventSequences() (in Java) or findEventSequences (command-line). The function RBB_EVENT_SEQUENCE (SQL) / H2SEvent.sequence() (Java) is convenient for creating Sequences of back-to-back events, which is the "RBB way" of representing tag values that change over time.
A set of tags (name/value pairs) used to identify and/or attach information to an RBB Event or Timeseries. A tag name may be associated with multiple values, e.g. name=Bob,friend=Joe,friend=Sue. The textual representation is delimited by commas and equals signs so tag names and values cannot contain these characters; however, arbitrary names and values can be used through the Java and SQL APIs.
Time is represented in RBB by a 64-bit floating-point value. RBB does not define the unit of time; times might represent e.g. milliseconds, or seconds. The set of applications using an RBB must apply a consistent convention for interpreting time.
Time Coordinate
A linear transformation of an arbitrary conventional timeframe of reference within an RBB. Each time coordinate is identified by the tag timeCoordinate=<name> and, optionally, by additional tags that partition Events into the correct time coordinate. For more information consult the Time Coordinate Tutorial.
An Event with an associated sequence of Samples of a continuous process, often multi-dimensional. For example, an RBB Timeseries could represent a car's location over time. The Event start and end times record when sampling started and stopped, while the 2-dimensional Samples record the (x,y) location of the car at discrete points in time.

RBB ML Glossary

These terms are only used in the ML (machine learning) package and are not needed for the basic operations of storing and retrieving data in an RBB.

Batch Evaluation
Evaluating all the Problem Instances that already exist in an RBB, then exiting immediately (as opposed to Online Evaluation).
A named value within an Observation. Each Feature is either an Input, or is created by a Feature Extractor.
Feature Extractor
A function that is called on an Observation Sequence, normally to add a new Feature to an Observation by doing calculations on the other Features. A feature extractor can also control the execution of its successors in the chain, or produce side effects such as creating an RBB Event. The class MLFeatureExtractor is overridden for application-specific logic. The features package provides several potentially useful Feature Extractors.
Group Input
An Input for which any of a set are equivalent. For example, assume all cars are equivalent to a pedestrian crossing the street. Instead of creating a separate Problem Instance for every combination of pedestrian and car, each Problem Instance should consist of a pedestrian and all cars.
A Feature that is an RBB Timeseries, as opposed to a derived feature that is created on-the-fly by the Feature Extraction chain.
A set of training data, a Feature Extraction chain, and a prediction algorithm, stored in an RBB. Implemented by MLModel which normally is overridden by each RBB ML application.
A set of Features and a time which, together, define the state of a Problem Instance at a given moment.
Observation Sequence
A time-ordered set of Observations for a single Problem Instance. All Observations in a Sequence have the same set of Features.
Online Evaluation
Evaluating each Problem Instance incrementally in real-time as it is created and new data Samples for the Inputs are stored in the RBB (as opposed to Batch Evaluation).
Problem Set
A pattern specifying a combination of Events that should be detected and evaluated. The pattern is specified by an array of Tagsets. Each combination of Events matching the pattern is a Problem Instance.
Problem Instance
A set of Concurrent Events to be evaluated by a Feature Extractor chain.