Major bug fixes relating to the Redis implementation in Reprocessing and Search Key Cache were identified and fixed as part of the rekeying development. Included functionality to stop the Exhaustive training. Fixed the Unsupervised learning functionality in Exhaustive Training. Embedded the Mock Data CSV data into a class to make it compatible with Docker without needing to modify the Dockerfile (i.e, build). Included a new table that stores training data to enhance support capabilities for Exhaustive. Reintroduced and validated the Multitenancy functionality. Postgres is now fully deprecated in place of Redis for cache, and all implementations of the Interfaces for Postgres have been removed. No migrations exist to support this deprecation, and Postgres as a cache is now wholly unsupported. Removed the Indexing background thread, as Redis does not require it, given that it is a key-value pair database. Created a RedisCommandFlag Environment Variable to support Fire and Forget write to Redis in Invocation. Implemented functionality to Export, Peek and Download configuration environments using a secure, encrypted scheme. Created a permission to access the functionality via the user interface. Extensive database-based logging is included to provide for a comprehensive audit. Created functionality to Import the encrypted Export file inside a database transaction to ensure consistency. As Docker is now the primary deployment model, log4net instantiation has been moved to an approach that primarily uses programmatic instantiation of the ConsoleLogger and RollingFileAppender given Environment Variables. Implemented functionality to support remote \ mounted Log4Net XML Serialisation files for more advanced log4net configurations. Reintroduced access to counters via the user interface and created a permission. Took the opportunity to implement ReSharper linter suggestions. Disabled the Lock button across the whole application, with that functionality being reserved for future use. It is intended that locking happens programmatically on the basis of dependencies in future commits. Fixed several significant end-use bugs which became apparent during testing of the refactored code relating to case management and visualisations. Fixed certain other minor bugs that came up during testing. Brought documentation up to date for this commit. Brought the Docker Compose file up to date for this commit. Removed Redundant Environment Variables for this commit. Made the README file less verbose and unnecessary.
5.6 KiB
layout, title, nav_order, parent, grand_parent
| layout | title | nav_order | parent | grand_parent |
|---|---|---|---|---|
| default | Abstraction Calculations | 11 | Models | Configuration |
🚀Speed up implementation with hands-on, face-to-face training from the developer.
Abstraction Calculation
An Abstraction Calculation compares one Abstraction Rule return value to another using reasonably simple arithmetic or functions based on VB .Net code fragments. For example, it is useful to take two values, dividing one by another to create a ratio, which is oftentimes quite helpful in machine learning.
The page is available by navigating through the menu as Models > Abstraction >> Abstraction Calculation:
Clicking the required model in the tree towards the left hand side exposes the page for creating a new Abstraction Calculation:
The parameters available to the page are described in the following table:
| Value | Description | Example |
|---|---|---|
| Abstraction Calculation Type | The type of basic arithmetic or user of coder to achieve something similar. For example Divide would cause a division of the Left hand Abstraction Rule Value by the Right hand Abstraction Rule Value. | Multiply |
| Abstraction Left | The name of the Abstraction Rule to occupy the Left hand side of the arithmetic. | Refunds Sum |
| Abstraction Right | The name of the Abstraction Rule to occupy the Right hand side of the arithmetic. | Total Sales Sum |
| Coder | On selection of the coder radio icon only, a .Net function fragment containing data compiled in payload, TTL Counter and Abstraction Rule processing. The return type is float. | Return Abstraction.NotResponseCodeEqual0Volume / (Abstraction.NotResponseCodeEqual0Volume + Abstraction.ResponseCodeEqual0Volume) |
Click on the model towards the left hand side to add an Abstraction Calculation:
Proceed to perform a more basic Abstraction Calculation. Select the Multiply radio button with the intention of squaring the Abstraction Rule created beforehand:
The intention is to provide the square of the abstraction sum, hence set the Abstraction Left side and the Abstraction Right side of the function to Sum. Complete the Abstraction Configuration as above table, excluding the coder value (which will be explored in the next example).
Click Add to create the first version of the Abstraction Calculation:
Synchronise the model via Entity >> Synchronisation and repeat the HTTP POST to endpoint https://localhost:5001/api/invoke/EntityAnalysisModel/90c425fd-101a-420b-91d1-cb7a24a969cc for response as follows:
It can be observed that the result of the Abstraction Rule has been squared by using the simple calculation and presented in an AbstractionCalculations element. The Abstraction Calculations can be used in Activation Rules as well as variables in machine learning.
In the next example, the same calculation is going to be applied, yet this time a VB .net function fragment is going to be used to achieve the same. Navigate to the rule having ben created:
Click on the Coder Radio button to expose the Coder:
Add the function as described in the above table and as below to replicate the squaring:
Upon the function fragment showing Parsed and Compiled, update the Abstraction Calculation:
Synchronise the model via Entity >> Synchronisation and repeat the HTTP POST to endpoint https://localhost:5001/api/invoke/EntityAnalysisModel/90c425fd-101a-420b-91d1-cb7a24a969cc for response as follows:
It can be observed that the same response has been achieved albeit via the VB.net code fragment. It follows that far more complex arithmetic functions can be embedded, indeed anything supported by the VB .Net syntax.








