For software, it is very easy to come up with these data. So while SFL was originally developed for that domain, it has been employed also in other contexts. In \cite{PW18sfl}, it was shown, e.g., that we can exploit SFL in the context of logic reasoning with knowledge-bases. While a knowledge base is not a program that we execute in the traditional sense, one can record the rules that are used when reasoning about a problem and use these data to define the spectrum. The reasoning processes for individual problems with the same knowledge-base then define the bj for A. For defining the error vector, it was suggested to inspect whether one would derive a contradiction and whether one would fail to derive the expected conclusions.
In the next section, we will show how to extend this concept to a live setting and a continuous assessment of a system's actions' reliability. Our aim will not be to establish a ranking about which rules fail in practice, but rather to express our confidence in the individual rules working out as expected.
There is quite a variety of tools and reasoning engine techniques that we could have adapted for evaluating our reasoning concept in practice.
Since our motivation has been to identify and reason about reliable action sequences, we focused on an available framework that encodes actions into a knowledge-base of rules and where we then reason with these rules describing the actions. This framework called RBL (for rule-based language) is available for Java programs and was proposed in
\cite{9bc4135aa4a9491eb250929612c0c274}. There is also an implementation available at
https://github.com/martinzimmermann/RBL-Framework/releases/tag/CPS-RTSA. Some interesting aspects for us were that RBL not only allows to execute sequences, but there is also some functionality to continuously (re-)design the sequence during execution.
Planning with rules is of course not a new concept introduced by RBL, but it has been studied before, e.g., in \cite{FIKES1971189,BLUM1997281,Kautz:1996:PEP:1864519.1864564}. The reason we chose RBL for demonstrating our concept is that already its original runtime engine allows to derive and executes some action sequence and it was also designed to exploit feedback from the execution in some continuous re-planning concept. This made it an ideal candidate for adopting our concept of implementing an engine that allows to make intelligent decisions where we continuously assess the situation, derive diagnostic data via a special SFL concept and derive new plans that are most promising on achieving the desired goals.
In RBL, a system's environment is modeled by a dynamic list of corresponding beliefs whereas the system is described via rules. Such a rule comprises its preconditions, its postconditions, an action (Def. 4), a repair routine (Def. 5), and a weight catching our confidence in this rule's success.