- Instead of the Sequence datastructure the toolbox has been revised to support arbitrary input in List form. That means: You can now input whatever input you like, as long as it implements the java.util.List interface.
- This also means that using the TCS Alignment Toolbox has become significantly easier: There is no need to construct a NodeSpecification or an AlignmentSpecification anymore. You just need your data in List form, a Comparator and an AlignmentAlgorithm.
- The Sequence datastructure is still supported (and implements the java.util.List interface now) but is not mandatory anymore and has been refactored to isolated modules
- Many implementations in the algorithms-lib module had to be removed to make maintaining the toolbox easier.
- The remaining implementations in the algorithms-lib module (global alignment and DTW) have been revised to be more efficient. Combined with the reduced overhead caused by the Sequence datastructure this leads to speedups up to factor 10.
- The gradient computation mechanism has been revised to be easier to understand. See the DerivableAlignmentDistance, the DerivableComparator and the Gradient interface for more details.
- The ReplacementComparator has been revised to be easier to understand and more efficient.
- We have added four new comparators providing a normalized Euclidean and Manhatten distance with and without relevance weighting.
- The java examples are now isolated maven projects, making them easier to use.
Please have a look at the 'examples' directory in the GIT repository to inspect the new version of the toolbox in more detail.
We fixed some bugs in three modules of the TCSAlignmentToolbox, namely:
- sequences module: The validate() method of VectorialKeywordSpecification and SymbolicKeywordSpecification accepts null values now.
- algorithms module: The Operation class validates DELETIONREPLACEMENT and INSERTIONREPLACEMENT OperationType consistency in the constructor now.
- algorithms module: The calculateComparatorDistances() method of the Operation class called the skipDelete() method before if the OperationType SKIPINSERTION was given. This is corrected now.
- adp module: The FlexibleGrammar could not handle DELETIONREPLACEMENT and INSERTIONREPLACEMENT before. This is fixed now.
An early version of GazeTk from Spring 2015 has been nominated as one of the four finalists for the SMI Programming Challenge 2015 at this years European Conference on Eye Movement Research (http://ecem2015.univie.ac.at/competitions/smi/).
GazeTk will be presented at ECEM (August 16th to 25th) in Vienna, where the final evaluation will take place.
We are looking forward to meet you @ ECEM 2015!
- We provide additional OperationTypes now, namely DELETIONREPLACEMENT and INSERTIONREPLACEMENT to model the behaviour of Dynamic Time Warping, which reads from one of the input sequences, but does not consume the respective node.
- We support Dynamic Time Warping now as a default grammar in the adp module.
- We have added a Metric Learning Module (learning), that provides implementation distance based classifiers (k-Nearest Neighbor and Large Margin Nearest Neighbor) as well as a gradient-based optimization scheme of metric parameters with respect to the LMNN cost function. More details regarding this approach can be found in the master's thesis Adaptive Affine Sequence Alignment Using Algebraic Dynamic Programming.
- We have added a export and import module (csv) that enables you to store NodeSpecification objects as JSON data (and reimport them from JSON data) as well as store Sequence objects as CSV data (and reimport them from CSV data). The generated data is aimed to be human-readable and, thus, hopefully compatible with other applications.
At June 27th, we presented a Demonstrator for the TCS Alignment Toolbox and its applicability to Intelligent Tutoring Systems at the 8th International Conference on Educational Datamining in Madrid. This demonstrator also provides some general insight with respect to the capabilities of this toolbox, so we thought it best to provide it as free software here as well. You can find it at this link.
- The architecture of the toolbox has been revised. The toolbox is now structured into 9 different modules. Also the package names have been revised, such that backwards compatibility is not garantueed.
- All of those modules are available on maven central (For matlab users a binary distribution as a single, monolithic .jar file is still available)
- The toolbox now supports Algebraic Dynamic Programming, which enables users to design their own alignment schemes in an abstract fashion, without having to worry about the (efficient) implementation. An example of this technique can be seen in a new example.
- The Parallel processing capabilities of the toolbox have been improved, such that they now use the java standard library FixedSizeThreadPool.
- We further improved the documentation by reworking the available uml diagrams, updating the wiki page, updating all examples and extending the javadoc.
Also we will present the Toolbox at the 8th International Conference on Educational Datamining 2015 in Madrid in the Demo track.
FSMT 0.18 has been released and now features remote (SSH) process execution: please visit the documentation for detailed information:
Websocket Connection feature has been removed (for now). Please see issue #382 for details
- Performance Improvements (stoutobserver)
- Faster log reader (decreased sleep values, some more CPU usage tough)
- Fixed Exception in STDOUT observer (if component name not defined)
- Improved Log Messages (more meaningful)
- Added Softlink feature to latest run of a test (*.zip and *.xml files)
- Switched from mixed indent to spaces only
- Dropped 79 chars line width, as defined by pep-8 coding standards, to improve readability (pep tests will fail)
- Removed fsmt-*-tools from installation since they are only used during unit testing
The SCXML Transition Event Name Has Changed! What does that mean?
In earlier versions the transition event was names sth. like:
NOW, the event is named, i.e,
This happened in order to provide a more meaningful console output and execution logic. On the downside you will need to regenerate your existing scxml files using the fsmt_iniparser.
Also available in: Atom