Presage 0.9.1 introduces a new offline learning API method. Active predictors in presage are capable of online learning (dynamic learning triggered by context changes - context-awareness enables presage to train predictors on changes in context dynamically). This new offline learning method provides a way to instruct presage to learn from a specific body of text, separate from the context. A corresponding ONLINE_LEARNING configuration variable has been added to control whether online machine learning is enabled or disabled for applications that require control over what is learnt. Moreover, learning performance has been improved by a factor of 10 in most scenarios.
Presage 0.9.1 provides a new Windows Communication Foundation service. Applications can now consume presage's predictive functionality by invoking on the WCF service process rather than directly linking to presage library. The presage WCF service application is automatically started at logon and displays a notification icon in the Windows system tray. The notification icon can be used to shutdown the presage WCF service or to display further information. The presage WCF service can only be consumed by the same user that started the service nd that is currently logged on the local system. The service uses the NetNamedPipeBinding binding/transport, "a secure, reliable, optimized binding that is suitable for on-machine communication between WCF applications".
Presage 0.9 features a new .NET binding. .NET applications can now easily integrate with presage by using the presage.NET assembly. The native C++ presage core is wrapped using P/Invoke functionality provided by the .NET framework. A C# demo application illustrates how simple it is to use presage.net in .NET (bindings/c#).
Presage 0.9 now supports the MinGW-w64 64-bit and 32-bit toolchains from the MinGW-builds project. Detailed instructions on how to build with the MinGW-w64 toolchains are available in doc/INSTALL_MinGW64_MSYS_dev_env.txt and doc/INSTALL_MinGW32_MSYS_dev_env.txt. Pre-built Windows installers are also available.
Presage 0.8.9 comes with a number of small enhancements and several fixes. No major features were added in this release. Presage 0.8.9 is a minor mantainance release.
Presage 0.8.9 fixes several issues uncovered by static code analysis tools. Enhancements to the Notepad++ plugin and the Windows installer have been added. Bugs affecting the concurrent execution of the internal testsuite have been fixed. Issues affecting the build system have been fixed.
Presage 0.8.8 allows to enabled multiple instances of the same predictor class at runtime through configuration. Each predictor instance is independently configured to allow greater flexibility. Predictive performance can be more finely tailor to the users' specific needs by tuning the resources and configuration of each predictor. The default configuration has been changed to add a custom user smoothed ngram predictor, which adaptively learns its language model. The user-specific default configuration file location is now ~/.presage/presage.xml (~/.presage.xml is no longer used). The configuration now supports and expands environment variables.
Presage 0.8.8 adds support for filters to dictionary predictor, recency predictor, abbreviation expansion predictor, and dejavu predictor. The smoothed n-gram predictor will create and initialize a language model database if it does not already exist. Learning performance of the smoothed n-gram predictor has been improved. A new configuration variable has been added to control context tracking case sensitivity.
Maliit provides a flexible and cross-platform input method framework for mobile text input, including a virtual keyboard. It has a plugin-based client-server architecture where applications act as clients and communicate with the Maliit server via input context plugins.
Presage has been selected as the predictive text engine to enable word prediction functionality in Maliit.
"Presage certainly has a lot of potential. It comes with an easy to use C++ API but also provides bindings for C and Python. In fact, it even provides a D-Bus API, which would make it possible to run it as a system service. The user could then benefit from (and train!) the same language models from different applications."
Michael Hasselmann has also developed a Maliit prototype that mimicks the new Blackberry 10 virtual keyboard word prediction functionality. Read more about it and check out the video.
Presage 0.8.7 now integrates into the Notepad++, a powerful Windows text editor, thanks to the new presage predictive Notepad++ plugin, NppPresage. NppPresage is able to detect a presage installation and dynamically load presage to add predictive text functionality to Notepad++.
Presage 0.8.7 comes with improved configuration profile handling on Windows: presage now locates the system profile configuration directory from HKCU/Software/Presage registry key on Windows, and correctly locates the user profile directory.
As this is the first upload of the presage package, it was moved to the new/ directory, where it waited for approval by the ftpmasters.
Once the package was accepted, I got a confirmation mail and the "Intent To Package" bug was closed:
Presage has been used as the predictive engine in the Predictor Input Method, an experimental GTK+ Input Method offering a novel and interesting predictive text entry approach. Read more about the implementation of this GTK+ Predictor Input Method and watch a demo of the predictor method in action.
Presage has been used in Caribou, a text entry and UI navigation application being developed as an alternative to the Gnome On-screen Keyboard. The overarching goal for Caribou is to create a usable solution for people whose primary way of accessing a computer is a switch device. Read more about the Caribou prototype offering predictive functionality has been implemented using the Presage DBUS service and watch a demo of it in action.
Finally, check out this write-up and demo about Caribou and the Predictor Text Input Method used together and powered by presage.