The FilterTree Editor offers an advanced, fast and repeatable way to prepare event logs for analysis.
Simply provide the name of the event log (CSV, XES or compressed XES) and type in the filters you'd like to apply.
The filters work on a disk-to-disk basis by avoiding to load the log in memory where possible, thus are able to handle large logs that would not fit in memory.
Event classifiers, XES extensions, global trace and event attributes, and log attributes are supported.
Furthermore, if two different sets of filters are to be applied (for instance, to split the log in two parts), simply indent one of the branches, as shown in the last two lines of the screenshot above.
Once the log is ready, optionally a window with log views will pop up for debugging and quality control purposes:
Getting Started
FilterTree requires no installation: simply
download the JAR file, and run it using java -jar [downloaded file].
- Type the name of the input event log (that is, a path relative to the location of the FilterTree file) in the first text box.
- In the main text field, type the name of a filter (as shown below), followed by a space, a vertical bar (|) and another space.
Then, type the parameters of the filter.
Alternatively, press ctrl+space to get a list of available filters (autocomplete).
If you start with a CSV file, the filter you'll need first is "CSV to XES", as all other filters only work on XES files.
- Each filter goes on its own row; lines that start with % are comments.
The indentation determines which intermediate event log the filter applies to.
- Once you stop typing, the FilterTree Editor will apply the filters in the background.
Once completed, the last log is (optionally) loaded in memory and a summary visualisation will pop up.
Privacy, Security & License
The FilterTree Editor does not use internet connectivity, does not set cookies and does not track you.
It does set log properties (1) "log creator" with value "FilterTree by Sander Leemans", (2) "FilterTree:last applied filter", (3) "FilterTree:last applied filter parameters" and (4) as "concept:name" the name of the initial log input file.
All of these can be removed by applying the "set log attribute" filter.
The FilterTree Editor will write all results in a folder next to the FilterTree file, with the name of the FilterTree file, appended with "-filterTree result".
This folder will be emptied by the FilterTree Editor on each run.
The input log file must be in a directory that is a sub-directory of the directory in which the FilterTree file resides.
The source code is available on svn, with the same licence(s) as ProM itself.
That is, FilterTree is licensed with the GNU General Public License ("GPL"), version 2.
In a nutshell, this means that you can use the FilterTree software at no charge; you can distribute copies of the software in source or binary form; and you can sell copies of the software and sell support for the software.
What this license does not allow you to do is make changes or add features and then sell a binary distribution without source code. You must provide source for any changes or additions to the software, and all code must be provided under the GPL.
Included filters
- CSV to XES - trace per row with attributes []
- CSV to XES - trace per row with attributes [date formats]
- CSV to XES with attributes [trace identifiers]
- abbreviate event attribute to prefix with attributes [attribute, prefix]
- add literal event attribute if not exists with attributes [attribute, value]
- add start events - conditional with attributes [timestamp attribute, attribute that must be present]
- add start events with attributes [timestamp attribute]
- annotate trace having event with attribute value with attributes [target trace attribute, having attribute, of value]
- annotate trace with concatenation with attributes [attribute]
- annotate trace with concatenation of the attribute values of events that have an attribute value with attributes [attribute, limit to events having attribute, with value]
- annotate trace with set of event attribute values with attributes [of attribute]
- annotate trace with set of the attribute values of events that have an attribute value with attributes [of attribute, limit to events having attribute, with value]
- annotate trace with sum of attribute values of events that have an attribute value with attributes [attribute, limit to events having attribute, with value]
- annotate trace with sum of event attribute values with attributes [attribute]
- annotate trace with sum of trace attribute values with attributes [target attribute, source attributes]
- combine event attributes with attributes [target attribute, source attributes]
- copy event attribute with attributes [source attribute, target attribute]
- copy event attribute if not exists with attributes [source attribute, target attribute]
- copy event attributes to trace level with attributes [attributes]
- copy trace attribute with attributes [source attribute, target attribute]
- copy trace attribute if not exists with attributes [source attribute, target attribute]
- keep events with attribute prefix value with attributes [attribute, prefix values]
- keep events with attribute value with attributes [attribute, values]
- keep traces with attribute with attributes [attribute]
- keep traces with event and values with attributes [attribute, values]
- keep traces with values of attribute with attributes [attribute, values]
- make event attribute a timestamp with attributes [attribute, date format]
- make event attribute a timestamp with attributes [attribute]
- make event attribute literal with attributes [attribute]
- make event attribute numeric with attributes [attribute]
- make event attribute timestamps relative with attributes [attributes]
- make trace attribute a timestamp with attributes [attribute, date format]
- make trace attribute a timestamp with attributes [attribute]
- make trace attribute boolean with attributes [attribute, true values]
- make trace attribute discrete with attributes [attribute]
- make trace attribute literal with attributes [attribute]
- make trace attributes boolean with attributes [true value, attributes]
- map events with attributes [source attribute, target attribute, map file path [header row; comma delimited; column 0 from; column 1 to]]
- map events with attributes [source attribute, target attribute, map file path [header row; comma delimited; column 0 from; column 1 to]]
- remove constant trace attributes with attributes []
- remove empty and zero-valued trace attributes with attributes [attributes]
- remove empty event attributes with attributes []
- remove empty trace attributes with attributes [attributes]
- remove empty traces with attributes []
- remove event attributes with attributes [attributes]
- remove events after # days before first event with attribute value with attributes [number of days, attribute, values]
- remove events after first completion event with attribute value with attributes [attribute, values]
- remove events after first event with attribute value with attributes [attribute, values]
- remove events before first event with attribute value with attributes [attribute, values]
- remove events with attribute value with attributes [attribute, values]
- remove traces having an event in the future with attributes []
- remove traces having an event with an attribute value with attributes [attribute, values]
- remove traces that are longer than with attributes [duration (ms)]
- remove traces with attribute value with attributes [attribute, values]
- rename event attribute with attributes [source attribute, source target]
- rename trace attribute with attributes [source attribute, source target]
- replace event attribute value with attributes [attribute, replace with, source values]
- sample traces with attributes [probability to keep trace]
- sample traces with seed with attributes [probability to keep trace, random seed]
- set log attribute with attributes [attribute, value]
- sort events with attributes []
Latest updates:
- 13-05-2022 Added filter sample traces & sample traces with seed; improve compatibility with Java 17
- 25-02-2022 Added filter make trace attribute discrete
- 09-12-2021 Added filters (1) make trace attribute literal (necessary to let ProM recognise concept:name) and (2) CSV to XES - trace per row (which transforms each row to a trace and each timestamp becomes an event; timestamp pattern is an optional attribute)
- 21-10-2021 Copy final results to files with stable file names (to enable storing final logs on file management systems while maintaining traceability)
Added filter annotate trace with sum of trace attributes
- 18-10-2021 Added filter remove empty traces
- 12-10-2021 Enable starting from an empty text file
Added filters CSV to XES - trace per row; rename trace attribute
- 05-10-2021 Update OpenXES to fix bug in log result viewer
- 03-10-2021 Initial release