MSS Code Factory 2.11: Mark Stephen Sobkow's Code Factory
| Prev | Documentation Home | Next |
The scope of MSS Code Factory 2.11's knowledge is determined by the keys used to identify and locate specific generation items (rules, file expansions, and such) within the knowledge base. The key attributes are
MSS Code Factory 2.11 is "intelligent" primarily in the way it generalizes concepts to broaden the scope of its search for applicable rules within the knowledge base. The implementation of this "intelligence" is in the CFCore 2.12 library, accessed by specializing the MssCF layer within CFCore.
It is also optimized through the use of hash maps wherever possible to improve search probe performance.
The toolset name is the first attribute searched, identifying a potentially-empty collection of generation items whose toolset name is always that of this toolset.
Within a toolset collection, a hash map of rule names is formed, making it extremely efficient to quickly determine if there are any candidates suitable for the rule name that is being probed.
The hash map of rule names contains a sub-collection of generation items grouped by scope class name. Within that is another hash map and sub-collection of gen item names.
This sequence of hash maps takes what could have been a very expensive key probe and makes the performance an impressive aspect of efficiency of MSS Code Factory's "thought process."
If a matching key isn't found when probing the current generation item name, the superclass definition for the generation item becomes the current generation item name, and the probes are repeated.
If no matching key can be found when probing the current scope class name, the superclass definition for the scope class becomes the current scope class name, and the probes over the set of generation item names is repeated.
If there still is no matching key found during this probe of the current toolset, the toolset name is truncated at the last '+' character, and the system searches within that toolset instead, repeating the probes by scope class name and generation item name.
Finally, when there are no more toolsets to search, one final attempt is made at searching the any toolset, after which if no key can be found, that key is treated as unresolvable (which results as it appearing as $RuleName$ in the manufactured code.)
Through this logic, MSS Code Factory 2.11 exhibits an ability to generalize keys with a pattern-matching inference-engine capability, using the approach to evaluate it's hierarchies of both modelled and persistent data. Although rather old-school, inference engines are an important part of most AI toolkits, and are well known for their performance aspects.