| ►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 |