►Nartimon | Examples of queries processed by the ARTiMon runtime monitor |
CEngine | Compute data about the execution of a hybrid car engine |
►Nauction | Constraints applying on an auction system |
CMonotonicBid | Checks that all bids in an auction system are monotonic, i.e |
►Nbasic | Use basic processors such as sources, sinks, functions and filters to create simple processing chains |
CAverage | Compute the cumulative average of a list of numbers |
CAverageFork | Compute the cumulative average of a list of numbers |
CBinaryPush | Push events into a processor of input arity 2 |
CContextExample | Use a processor's Context object |
CCountDecimateLast | Behaviour of the CountDecimate processor on the last event of a stream |
CCountDecimateSimple | Use the CountDecimate processor to discard events from a stream |
CCumulativeSum | Use a cumulative processor to compute the sum of all events received so far |
CDecimationSum | Compute the sum of every pair of successive events |
CDuplicateContext | Duplicating processors and observing what happens to their Context object |
CDuplicateGroup | Duplicating processors without preserving their state |
CDuplicateNoState | Duplicating processors without preserving their state |
CDuplicateState | Duplicating processors and preserving their state |
CDuplicateStateQueues | Duplicating processors without preserving their state |
CFileReader | Read an input stream from a text file line by line and show the output |
CFilterConditionComposite | Filter a trace by evaluating a compound condition on the events of that trace |
CFilterConditionSimple | Filter a trace by evaluating a simple condition on the events of that trace |
CFilterSimple | Discard events from an input trace with the Filter processor |
CForkMutable | See the effect of sending a mutable object into a Fork processor |
CForkPull | Use the Fork processor to replicate input events in multiple output streams |
CForkPush | Use the Fork processor to replicate input events in multiple output streams |
CGroupBinary | Encapsulate a chain of processors into a Group, with an output arity of 2 |
CGroupSimple | Encapsulate a chain of processors into a Group |
CHelloWorld | Basic example for testing the setup |
CIncorrectPiping | Pipe processors with non-matching event types |
CKeepLastPull | Use the KeepLast processor to keep the last event of an input stream |
CKeepLastPush | Push events to the KeepLast processor |
CPartialEvaluation | |
CPipingBinary | Pipe processors together using the Connector object |
CPipingBinaryWait | Pipe processors together using the Connector object |
CPipingUnary | Pipe processors together using the Connector object |
CPipingUnaryIncorrect | Pipe processors together using the Connector object |
CPipingUnaryMissing | Instantiates two processors, but forgets to connect them |
CPipingUnaryPush | Pipe processors together using the Connector object |
CPointDistance | Calculate the Euclidean distance of each two successive points in an input trace of (x,y) coordinates |
CProcessorId | Example showing how to access the unique ID of a processor |
CProcessorIdGroup | Example showing how the IDs of processors behave when multiple instances are created |
CPullHard | Illustration of the difference between using pull() and pullSoft() on a Pullable object |
CPullSoft | Illustration of the difference between using pull() and pullSoft() on a Pullable object |
CPullWithoutSource | What happens when trying to pull events on a processor connected to no input |
CPushWithoutSink | What happens when trying to push events on a processor connected to no output |
CQueueSinkUsage | Push events into a QueueSink processor |
CQueueSourceUsage | Pull events from the QueueSource processor |
CResetWindow | Usage of a processor's reset() method |
CSimpleFunction | Use the FunctionProcessor to apply a function to each input event |
CSlicerCollapse | Apply an aggregation function on the output of a slicer |
CSlicerOddEven | Use the SlicerMap to compute the sum of odd and even numbers separately |
CSlicerSimple | Use the SlicerMap to perform a computation on multiple subsets of an input stream |
CSumTwo | Use the Trim and Fork processors to compute the sum of two successive events |
CTrimPull | Use the Trim processor to discard events from the beginning of a stream |
CTrimPush | Use the Trim processor to discard events from the beginning of a stream |
CWindowAverage | Compute the cumulative average of a list of numbers over a sliding window |
CWindowEven | Use a Window processor to perform a computation over a sliding window of events that are not numeric |
CWindowSimple | Use a Window processor to perform a computation over a sliding window of events |
CWithoutPump | Print events from a queue source without the use of a pump |
CWithPump | Print events from a queue source with the use of a Pump processor |
CWithTank | |
►Nchess | Examples processing data from a file containing chess games in the PGN format |
CWhiteVsBlack | Process a database of chess games to calculate the number of white wins vs |
►Ncomplex | |
CFileDemo | Creates complex events out of low-level events occurring to files |
CIteratorDemo | Creates complex events out of low-level events occurring to Java iterators |
►Ncustomprocessors | Create custom processor objects by creating new classes that inherit from Processor |
CCounterGroup | This processor simply generates the trace of numbers 0, 1, 2, .. |
CCounterSingle | This processor simply generates the trace of numbers 0, 1, 2, .. |
CEuclideanDistance | |
CMyMax | |
CMyMaxExample | |
CMyProcessor | A minimal synchronous processor implementation that does nothing |
COutIfPositive | |
CPoint | |
CSplitPoint | |
CStatefulDuplication | |
CStringLength | |
CStuttering | |
CStutteringCopy | |
CTriangleArea | |
►Ndiagnose | Use various tools to troubleshoot and diagnose a chain of processors |
CMeasureThroughput | Measure the number of events per second at some point in a processor chain |
►Ndsl | Create your own domain-specific query languages using BeepBeep's interpreter |
CArithmeticBuilder | Use a GrammarObjectBuilder to parse and evaluate a string in Polish notation |
CArithmeticBuilderIncorrect | Shows what happens when a GrammarObjectBuilder incorrectly manipulates its object stack |
CArithmeticBuilderPop | Use a GrammarObjectBuilder to parse and evaluate a string in Polish notation |
CCalculator | Use the ArithmeticBuilder as an interactive calculator |
CComplexProcessorBuilder | |
CParserExample | Use the Bullwinkle parser to parse simple arithmetic expressions |
CSimpleProcessorBuilder | |
►Nepisodes | Examples related to a stream of events for a pressure sensor |
CAverageEpisodes | Computes the list of average values of each episode, grouped by day |
CMaxEpisode | Computes the maximum value of all episodes in each day |
CPressureEvent | Abstract class representing events in a pressure stream |
►Nfinitestatemachines | Define finite-state machines and run them on an input trace |
CExtendedMooreMachine | Create an extended state machine with state variables |
CSimpleMooreMachine | Check the proper ordering of next/hasNext strings |
CSimpleMooreMachineCompact | Similar to SimpleMooreMachine, but with a bit of code written to avoid repetitions |
►Nfol | |
CForAllFunctionSimple | |
CNestedQuantifiers | |
►Nfunctions | Create custom Function objects, directly or by combining existing functions |
►Ncustom | |
CBinaryCutString | |
CCustomDouble | |
CCustomFunctionTree | |
CCutString | |
CUnaryDouble | |
CAddNumbers | Add two numbers with the Addition function |
CConstantUsage | Basic usage of the ca.uqac.lif.cep.functions.Constant function |
CCumulateAnd | Use a cumulative processor to perform the conjunction of a stream of Boolean values |
CFixedInterval | Creates a compound function (a FunctionTree) that checks if a number lies between two fixed bounds |
CFunctionBinary | Apply a binary function on an input stream using the ApplyFunction processor |
CFunctionChain | Pipe multiple ApplyFunction processors to perform a more complex computation over a stream |
CFunctionTreeUsage | Use a FunctionTree to create a complex function |
CFunctionUsage | Show the basic usage of Function objects |
CInterval | Creates a compound function (a FunctionTree) that checks if a number lies between two other numbers |
CIsPrime | Create a custom unary function that checks if a number is prime |
CMaximum | Binary function that returns the maximum of two values |
CPlaceholderUsage | Use the ArgumentPlaceholder function to refer to the i-th argument of a function |
CPolynomial | Use an StreamVariable and a FunctionTree to create the polynomial function x2+3 |
►Nhl7 | |
CStatMoment | |
CStdev | |
CStdevExample | |
►Nio | Read and write events from the outside world using files, |
CLineReaderExample | Read lines from a text file and convert them into numbers |
CPrintStdout | Print events to the standard input |
CReadHttp | Read bytes from a remote source using HTTP |
CReadStdin | Read bytes from the standard input ( |
CReadTokens | Read complete comma-separated tokens from the standard input |
►Njdbc | |
CSourceExample | |
►Njson | |
CJPathExample | Evaluate JPath expressions on JSON elements |
CParsing | Parse JSON strings |
►Nltl | Evaluate formulas in Linear Temporal Logic (LTL) in the form of BeepBeep pipelines |
CEventuallySimple | Basic usage of LTL's Eventually processor |
CGloballySimple | Basic usage of LTL's Globally processor |
CNested | Basic usage of LTL's Until processor |
CNextSimple | Basic usage of LTL's Next processor |
COpenClose | Using an LTL expression to filter events in an input stream |
CUntilSimple | Basic usage of LTL's Until processor |
►Nmining | Extract patterns from input streams using data mining and statistical algorithms |
►Nextraction | Extract trends and patterns from a set of input streams |
CKmeansSymbolDistribution | Create clusters over the distribution of symbols in a set of input streams |
CMaxMiningFunction | Create a mining function that computes the maximum value of all sequences |
CMaxMiningFunctionProcessor | Create a mining function from BeepBeep processors |
►Nlearning | Use machine learning algorithms for predictive analytics |
CEngineOverheatSimple | Train a classifier to predict the overheating of an engine |
►Ntrenddistance | Evaluate an event stream based on a distance to a reference trend |
CAverageValueAbsolute | Trend distance based on the average of values in a stream |
CAverageValueRelative | Trend distance based on the average of values in a stream |
CMaxSymbols | Trend distance based on the maximum number of distinct symbols in a stream |
CSymbolDistribution | Trend distance based on the statistical distribution of symbols in a stream |
CSymbolDistributionClusters | Trend distance based on the statistical distribution of symbols in a stream |
CPatternMiningFunctionProcessor | Create a mining function from BeepBeep processors |
CSequenceReader | Utility class that creates a set of sequences from a file |
►Nmisc | A collection of examples taken from other stream processing software, and redone with BeepBeep |
►Ntemperature | |
CMonitoring | |
CMonitoringEvent | Parent class of all the input events in this example |
CMonitoringEventSource | |
CTemperatureAlert | A temperature alert message |
CTemperatureWarning | A temperature warning message |
CTemperature | |
►Nnetwork | Send events from one processor to another over a network |
►Nhttppush | Use HTTP gateways in push mode |
►Ntwinprimes | Compute twin primes by distributing the computation across two machines over a network |
CBigIntegerFunctions | Contains a few utility functions for manipulating Java's BigInteger objects |
CTwinPrimesA | The code for Machine A in the twin prime example |
CTwinPrimesB | The code for Machine B in the twin prime example |
CPackerExample | Use a packer to send events in batch and reduce the number of HTTP requests |
CPushLocalSerialize | In this example, Machine A and Machine B are actually the same host; they just listen to different TCP ports on the same computer |
CPushLocalSimple | In this example, Machine A and Machine B are actually the same host; they just listen to different TCP ports on the same computer |
CPushMachineA | This is the same example as PushLocalSerialize, but with the "Machine A" and "Machine B" parts of the chain split into two independent programs, with some user interaction added |
CPushMachineB | This is the same example as PushLocalSerialize, but with the "Machine A" and "Machine B" parts of the chain split into two independent programs, with some user interaction added |
CCompoundObject | A dummy object used to show serialization |
►Nnialm | |
CApplianceMooreMachine | |
CDetectAppliance | |
►Npingus | |
CCollides | Predicate |x1-x2| < 6 ∧ |y1-y2| < 10 |
CDistanceX | Function |x1-x2| |
CSkillChart | |
CTurnAround | |
►Nplots | Generate tables, charts and plots from event streams |
CBitmapJFrame | Receives a byte array as an input, and shows it in a Swing window as a picture |
CCumulativeScatterplot | Update a 2D scatterplot in realtime from two streams of numbers |
CMouseHeatmap | Displays the trail of the mouse pointer inside a heat map |
CRandomMutator | Processor that converts any input into a random integer |
CRandomTwoD | Generates a random stream of x-y pairs |
CUpdateTableStreamExample | Update a table from two streams of numbers |
CWindowScatterplot | Update a windowed 2D scatterplot in realtime from two streams of numbers |
►Nqbf | Shows how a specially designed pipeline can solve the satisfiability problem for True Quantified Boolean Formulas (TQBF) |
CFormula1 | Solves the QBF problem for the formula:
∀x ∃y ∃z : (x ∨ y) ∧ (¬x ∨ c) ∧ (¬y ∨ ¬ z)
The pipeline to solve this problem is the following: |
CInputVariable | |
CQuantifiedBooleanVariable | |
►Nrobot | Evaluates various queries on a stream of events describing the state (position, velocity, etc.) of a fictional robot |
CArcTanVector | Function that calculates the angle of a two-dimensional vector |
CDetectSkidding | Detects situations where a moving robot loses traction and starts skidding |
CModulus | Function that calculates the modulus of a two dimensional vector |
CRobotEvent | Event representing the status of a fictional robot that moves in a two-dimensional space |
►Nsignal | Basic usage of the signal processing processors |
CFakeSignal | |
CGenerateSignal | |
CGenerateSignalGrouped | |
CGenerateSignalNoise | |
CLimitExample | |
CPeakExample | |
CPersistExample | |
CPlateauExample | |
CPlotSignal | |
CThresholdExample | |
►Nstockticker | Evaluate queries on a fictitious stock ticker event feed |
CLandmarkQuery | |
CSnapshotQuery | |
CTickerFeed | |
CWindowQuery | |
►Ntuples | Manipulate tuples |
CCsvReaderExample | Read tuples from a CSV file using the TupleFeeder processor |
CSumAttributes | Compute the sum of two tuple attributes using the GetAttribute function |
CSumAttributesTree | Compute the sum of two tuple attributes using the GetAttribute function |
►Ntweets | Analyzes a stream of tweets from the Twitter platform |
CHashtags | |
CRelationships | |
►Nutil | A few methods repeatedly used throughout the examples of this repository |
CBagsContains | Usage of the Bags.contains function |
CBagsFunctions | Illustrate the use of a few functions from the Bags class |
CMapPutInto | Use the PutInto processor to update a map from two input streams |
CPackExample | Use the Pack processor to accumulate events into a list |
CPackUnpack | See the effect of chaining a Pack processor to an Unpack processor |
CPutIntoExample | |
CRunOnExample | Apply a processor on collections of events using the RunOn processor |
CToListExample | Create a stream of lists from the input of multiple processors, using the ToList function |
CUnpackExample | Use the Unpack processor to feed events from a stream of lists |
CUnpackPush | See the effect of using the Unpack processor in push mode |
►Nvoyager | Process telemetry from the Voyager 2 spacecraft |
CFormatDate | Receives two arguments: one of a year number, and another with a number of days in the year |
CPlotSpeed | Detect planetary encounters of Voyager 2 by analyzing its distance from the Earth |
CRadialAcceleration | Detect planetary encounters of Voyager 2 by analyzing its distance from the Earth |
CSlope | Computes the slope between two successive points in a data stream (which is simply the difference between point xi+1 and point xi) |
►Nwidgets | Use GUI widgets as data sources or sinks |
CAverage | Group processor that computes the cumulative average of a stream of numbers |
CAverageSlider | Display a real-time plot of the values of a slider in a Swing frame |
CGetValueSlider | Get the value of a Swing widget and use it as a source of events |
CListenerSourceExample | Wrap a Swing widget into a BeepBeep event Source |
CSetValueSlider | Set the value of a widget using a stream of events |
►Nxml | Process events in the XML format |
CContextExample | Evaluate JPath expressions on JSON elements |
CParsing | Parse XML strings |
CXPathExample | Evaluate JPath expressions on JSON elements |