The BINS Filter Editor is basically a structured template, or form.
A client creates specific entries in this editor/template, and then press the "Compile" button to save-and-compile (into an internal filter object).
Then the proprietary Pattern Matching and Substitution Engine will use the filter for the user input normalization service.
Below are some explanations and/or instructions about the Filter Editor template:
The bottom "Named Patterns" section contains a client defined pattern library, while the top "Active Rules" section contains rules () that are simply referring to names of the defined patterns.
The rules that are "selected" (i.e. checked) will be activated. Unselected ones will simply stay idle - it is intended to be a convenience, especially during development and testing, comparing with the alternative of performing add/delete operations each time.
Each rule contains a single pattern name, which is required to start with a '$' (dollar sign), and it has to be properly defined in "Named Patterns" section, and the only allowed characters in a pattern name are: letter/digit/under score/hyphen.
A pattern definition can be of any one of the three types:
It is a sequence of n words that need to be all matched and in the given order, but need not to be next to each other: there could be unspecified words in between.
i.e. the keywords are in an AND relationship to each other. Only ONE phrase definition is allowed for each pattern.
This is alternatively called a phrase definition, or an n-gram definition. It is a sequence of n words that need to be all matched and in the given order, and next to each other.
i.e. the keywords are in an AND relationship to each other. Only ONE phrase definition is allowed for each pattern. The number of words in a phrase is not limited.
i.e. the keywords are in an OR relationship to each other. The number of keywords are not limited.
This is where the use of regular expression is supported, with the following restrictions:
Regular Expression is only used at the word level, which means no space character (such as \s), no string start (^) or end ($) marking symbols are allowed.
a Named Pattern is composed of three components:
%C_to_F, %F_to_C, %Mile_to_K, %K_to_Mile, ...
Right click on an entry will bring up a context menu, from which appropriate components can be created.
In pattern definitions, in place of a keyword, a valid pattern name (i.e. already defined) can be used. This creates a "Composite Pattern", through nesting.
Nesting can be multiple-layer, which means a composite pattern can be defined on top of another composite pattern, with no hard limit on the number of layers.