Release 2.1.1
Release date: 03-11-2017
Application
Microsoft Application Virtualization (APP-V) support
The packaging and installation of Match developer was adapted to support application deployment (“streaming”) using APP-V. Specifically, the packaging is now done using EMCO MSI Package Builder Professional instead of Visual Studio.
To facilitate easier deployment, the install process no longer provides choices to the individual user, and the installation directory is now standard.
C:\Program files (x86)\Knowledge Values\Match [Version number]\
For example, Match 2.1.1 build 232 is installed in Match211232.
The Windows installer prohibits installing when another version of Match Developer is already present. Match is always installed for all users.
Improved icons for Match Developer (and MKBX/MPLX files)
The icons have been improved to accommodate newer operating systems. On Windows, Match Developer associates Match Developer and the internal player to the MKBX/MPLX files on launch, which results in the respective icons being shown.
Improved error event logging
Match Developer now logs errors and events in a limited set of 9 rotating log files (instead of creating a new log file every day). Logging can be configured in the ‘Options’ menu ('Preferences' on MacOS).
The log files location is based on the operating system. On Windows it is for example
“C:\Users\<user name>\AppData\Roaming\Knowledge Values\Match Developer\Log\”. The log files are “matchdeveloperlog[1 to 9].log”. A new log file is opened on each launch of Match Developer.
Open MKBX by dragging it into Match Developer
An knowledge model (MKBX) can now be opened by dragging and dropping it onto the Navigator window.
Bugfix: improved availability menu items and shortcut keys
Sometimes, menu items (and their associated shortcuts) were not available when they should be. This has been corrected.
Match Developer automatically saves a backup of the active model in the background. This functionality was not working properly on Windows 7. To solve this problem, the file format has been changed from XML to MKBX.
Bugfix: Not all functions available in menu
In certain rare cases, the menu of Match Developer did not show all the available options. Improvements have been made that are expected to prevent these situations.
Saving always available in menu
As a failsafe when the menu does not show all available options, the save option has been made always available. This makes sure that saving is always possible.
Bugfix: Prevent internal player from starting twice
Starting the internal player from Match Developer is now better controlled to prevent it from being started twice.
Bugfix: Assure a model is always available for editing
Match Developer now assures that there is always an editable knowledge model. For example, when a model is closed, a new 'Untitled' model is opened.
General
User interface attributes
User interface attributes (UI attributes) can be specified for specific representations in a knowledge model. These UI attributes can be used by the Web Player (or custom front-end) to achieve custom tailoring of the user interface. UI attributes can be specified for:
- Variables
- Variable domain alternatives
- Knowledge tables
- Frames
UI attributes can be created and edited in the properties window of these representations. A UI attribute is defined by a name-value pair. The value can be empty, a text, a VALUE reference to another variable, or a combination of text and value references.
Faster Integrity Check
The IC now runs significantly faster. In a large model (> 1500 tables), an integrity check used to take minutes to complete. Now it is almost instant.
Availability of delete functionality has been improved
The delete functionality has been reviewed and improved. Each object can be deleted in Navigator with key Backspace, the context menu or via the menu Edit -> Delete. In the table editor, the entire table can be deleted using Ctrl-Backspace (Mac: Cmd-Backspace). One or more cells can be deleted (provided the result is a valid table) using the Backspace key, context menu, or the menu Edit -> Delete.
Vertical scrollbars in dialogs to improve readability (Find and Replace & Import)
The Find & Replace window and the Import window often proved to narrow to show complete variable or table names. A horizontal scrollbar has been introduced to these windows to solve this problem.
Bugfix: menu items (and shortcuts) no longer disabled inappropriately
After working in a knowledge model for a long time, sometimes menu items (and shortcuts) would become disabled for no reason. This has been fixed.
Variables
Added ‘-‘ as option for input mask of qualitative length variables
The ‘-‘ can now be used as a character in the input mask of qualitative length variables.
Bugfix: Assure valid value references to variables in UI attributes
On Windows, it was possible to create a UI attribute with a value reference to a non-existing variable. This has been corrected with improved validation.
Knowledge Tables
Improved knowledge tables without conditions
A “don’t care” (“-“) in the condition space must now always be followed by a single “don’t care”.
Text wrapping in the stub of a knowledge table
The stub of a knowledge table is the first column of conditions subjects followed by action subjects. Text in the stub is now wrapped (using “soft breaks” that do not affect the content of the cell). This wrapping is configured in the Options dialog (Preferences on MacOS) in the tab ‘Table’ in the section ‘Wrap stub’. It contains three edit fields, labeled
- Allow stub line of maximally # characters (10 to 300 characters). For example, if it is 40 characters, the stub text is wrapped after 40 characters. If it is inappropriate to wrap at that position (no space or other configured character), the first earlier possibility is used. If there is no possibility to wrap based on the configured characters, the text is wrapped at exactly 40 characters, irregardless of the type of character.
- Break stub line at minimally # characters. This configuration controls the minimum length of a line.
- Characters to break stub additional to 'space'. This option allows additional characters (in addition to the space character) to be used as wrapping positions. For example, adding ‘_’, makes it possible to wrap the variable ‘Duration_in_years_after_birth_of_first_child’ in multiple locations.
Concatenation of display variables in DISPLAYVAR/SHOWVAR
Multiple display variables can now be shown using a single DISPLAYVAR/SHOWVAR statement. The syntax is SHOWVAR <display variable 1> AND <display variable 2>.
New action row can be inserted from action value
A new action row can be inserted from both an action subject cell and an action value cell (using the right-mouse-button menu 'Insert Action After/Before' or the shortcuts). Previously only the former was possible.
Improvement undo functionality
Undo has been added/improved for the following functionalities:
- Delete frame
- Delete frame cell
- Relocate frame cell by dragging
- Attach sub-table
- Detach sub-table
- Create Formula
- Delete Formula
- Create Logic Model
- Delete Logic Model
Preserve layout of OR/AND alternatives
Alternatives with multiple domain elements (separated through OR and/or AND) are typically given a readable format using new lines (shift + enter). Two improvements have been made two preserve this layout:
- Renaming a domain element no longer causes the layout of the alternative in which it is used to be reset. Instead the layout is preserved as it was.
- Saving the layout to the mkbx file has been improved (particularly for some combinations of spaces and new lines).
Improvement modelling alternatives with multiple domain elements (OR/AND)
The new functionality ‘Insert variable alternatives’ allows one or more domain elements to be added to an alternative in a single action (separated by either OR or AND). The functionality gives the option to either arrange the domain elements horizontally or vertically.
Known issue: When editing an existing alternative, the domain elements in that alternative are missing from the selection list. Workaround: Delete the contents of the alternative before modelling the new alternative.
Arrange domain elements (OR/AND) vertically
Domain elements in an alternative (separated by OR or AND) can be given a vertical layout (newline after each OR or AND) by right-clicking on the alternative and selecting ‘Arrange alternative values vertically’.
Integrity checker prevents using instances in a MEMBER statement
The MEMBER statement current does not support instances in the Web Player. Consequently, expressions such as the ones below do not function correctly.
- MEMBER(VALUE(firstvariable OF INSTANCE(basename(1))), DOMAIN(secondvariable))
- MEMBER(VALUE(firstvariable OF INSTANCE(basename(VALUE(countvar)))), DOMAIN(secondvariable))
- MEMBER(VALUE(firstvariable), VALUE(secondvariable OF INSTANCE(basename(1))))
The Integrity checker has been improved to indicate that instances cannot be used with the MEMBER keyword. A workaround is assigning the particular instance to a normal variable before using the MEMBER keyword.
Although the syntax with instances is now prohibited, MD2 does save the expression in the MKBX file.
Navigator state of nodes collapsed or expanded
The user can make certain parts of the table tree collapsed or expanded. When the user saves to MKBX file and opens it later the table tree appears with the same tree parts collapsed or expanded.
Remark for us. This was requested to repair like it worked in Match 1.1. However, there it has its shortcomings. When on saving a table is collapsed at one place of the tree, and expanded at another place, the two places will appear the same (both collapsed or expanded) after re-opening. This is due to the format of an MKBX file. The tree is not stored itself, only the tables with their links to other tables.
Frames
Improvements UI for frame, frame instances & frame graph
- Improved warnings when deleting frame parts.
- Variables can be dragged to change their order.
- Changing the order can be undone.
- Frame constraints can be specified for aggregate frames.
- In the instances window, the header texts that specify levels of aggregation are vertically centered.
- In the frame graph, aggregations are shown with an arrow labeled ‘composed_of’ from the main frame to the aggregate frame.
Constraint tables: constrain the numer of instances (COUNT keyword)
It is now possible to specify constraints about the number of frame instances using the COUNT keyword (“COUNT(VALUE(variable name))”). The variable can be of any type, but must be part of one of the frames that are being related.
The COUNT syntax evaluates to the number of instances (a non-negative number). This can be a subset of the instances, made by preceding conditions.
Improved integrity checking on primary key in frames
Match Developer now adequately checks that the primary key (whether singular or compound) is unique in a set of frame instances.
Aggregate frames can be marked as the primary key of a frame.
Aggregate frames within a frame can now be marked as being a primary key (a so-called compound primary key). Consequently, the combination of variables within the aggregate frame must be unique in the set of instances. It is impossible, by design, to mark parts of an aggregate frame as a primary key.
Inference machine
Fix in Player: setting an instance variable UNKNOWN
Previously setting assigning UNKNOWN to an instance variable made all instances UNKNOWN. Now it is only in the addressed instance.