META-GLARE: A Computer-Interpretable Guideline System Shell
Abstract
:1. Introduction
1.1. The Importance of Fast Design and Prototyping of CIG Systems
1.2. An Approach Supporting Fast Design and Prototyping
1.3. A Glimpse into the META-GLARE Methodology
- (1)
- A part to acquire CIG formalisms. It consists of a module that is similar to the ontology acquisition tools in Protégé and DeGeL, and supports users/system designers in the acquisition of a new formalism, and in its storage (in XML format) in a dedicated and structured library.
- (2)
- A part to interpret CIGs. Such a part consists of two main modules: (2.1) a CIG-acquisition module, which supports users in the acquisition of a specific CIG (e.g., a CIG for the treatment of asthma) based on the formalism when it is given a formalism (which is an input for the module); (2.2) a CIG-execution module which supports the execution of the CIG on the patient when it is given a formalism as input, a specific CIG in the formalism (e.g., the CIG for asthma), and the data of a patient (e.g., John).
1.4. Organization and Main Contributions of the Paper
- Library of control attributes/methods: a rich library of control attribute types (i.e., the basic components of the META-GLARE execution engine; Section 3). A main contribution of our paper is the detailed description of a library of basic methods (associated with constructs of CIG formalisms) invoked by the general execution engine. Such a contribution is proposed in Section 3.
- Execution engine: the algorithms constituting the basis of the META-GLARE execution engine (Section 4). The preliminary execution algorithm described in Section 3 of [16] (briefly described in Section 2.3 of our paper) is not very detailed and, more importantly, is very different from the detailed algorithms we now propose in Section 4 (e.g., it is based on the adoption of an execution tree, and such a data structure is not used any more in the algorithms presented in this paper).
- Evaluation of expressiveness: an evaluation of the expressiveness of our current formalism (i.e., the more extended formalism supported by our current library) using the benchmark used in [23] to compare four outstanding research approaches in the CIG literature (Section 5). This is one of the most significant contributions of our paper and is entirely new.
2. Background
2.1. META-GLARE Architecture
- (1)
- CIGs are modeled by hierarchical graphs, composed of nodes and arcs.
- (2)
- each type of node and arc is defined as a list of attributes.
- (i)
- the acquisition of a CIG formalism (see Figure 2A). In such a phase, the system designer, possibly together with some domain experts (in case they want to “personalize” the CIG formalism; see the discussion in the introduction), can take advantage of the DEFINITION_EDITOR module to define a new formalism (e.g., the GLARE formalism—see Experiment 1 in Section 6).
- (ii)
- the acquisition of a specific CIG, using the specific CIG formalism (see Figure 2B). In such a phase, knowledge engineers, in cooperation with domain experts, can take advantage of the HG_ACQUISITION module to acquire a specific CIG (e.g., to acquire the CIG about an ischemic stroke using GLARE formalism—see again Experiment 1).
- (iii)
- the execution of a specific CIG on a specific patient (see Figure 2C). In such a phase, a physician (or a team of physicians) can take advantage of the HG_EXECUTION module to execute a specific CIG (acquired in a specific formalism) on a specific patient (e.g., to execute the ischemic stroke CIG on a specific patient—see Experiment 1).
2.2. A “Meta-Formalism” for CIGs
2.2.1. Node Types
- the name attribute, to specify the name of the node type;
- the visualization attribute, to specify the icon graphically representing it;
- the specification of whether the node is atomic (not decomposable) or composed.
2.2.2. Arc Types
- a name attribute, to specify the name of the arc type;
- the visualization attribute, to specify how it must be represented;
- a Boolean attribute, which is true if the arc is oriented, false otherwise;
- an ariety attribute, which specifies the number of nodes connected by such an arc; the ariety is a pair (n1:n2) specifying the number of input (n1) and output (n2) nodes for the arc type. The special value “N” can be used to represent a variable number of nodes n (N stands for a value n ≥ 1).
- a typing attribute which specifies the types of the nodes that may be connected by such an arc type. The specifications depend on whether the arc is oriented or not, and on the ariety of the arc.
- A control attribute, consisting of a method that specifies how the arc behaves at execution time.
2.2.3. Attribute Types
2.3. META-GLARE Executor: Previous Work
Algorithm 1: Pseudocode of the META-GLARE executor in [16] |
execute_CIG (set_of_nodes currents, CIG G) { for each node ∈ currents { for each control_attribute ∈ node { out ← exec (attribute.ExecutionMethod) if (out = exception) then manage (out); } Newnodes ← exec (exit_control_arc(node)); execute_CIG (Newnodes, G) } } |
3. META-GLARE Control Attributes
3.1. Control Attributes for Node Types
- composed: See description in Section 3.3. The execution of a composed attribute type consists of the execution of the sub-graph in its body (see for more details Algorithm 3 in Section 4).
- conditionedAbort: the evaluation of such an attribute consists in the evaluation of a Boolean condition; if the condition holds, the abort modality is returned;
- conditionedGoTo: it evaluates a Boolean condition; if it holds, the goto modality is returned;
- conditionedSuspend: it evaluates a Boolean condition; if it holds, the suspend modality is returned;
- conditionedExit: it evaluates a Boolean condition; if it holds, the exit modality is returned;
- conditionedFail: it evaluates a Boolean condition; if it holds, the fail modality is returned;
- unconditionedAbort: its execution returns automatically the abort modality;
- unconditionedGoTo: its execution returns automatically the goto modality;
- unconditionedSuspend its execution returns automatically the suspend modality;
- unconditionedExit: its execution returns automatically the exit modality;
- unconditionedFail: its execution returns automatically the fail modality;
- externalnformationAcquisition: It requires external pieces of information (e.g., patient data from the clinical record). It waits for the availability of the data, or until a message stating that it is not possible to obtain data is received. A failure (fail modality) is returned in case the data cannot be obtained;
- cycleBooleanCondition: the body is repeatedly executed until the Boolean condition holds.
- cycleNumberRepetition (n): the body is executed n times.
- dynamicCycleNumberRepetition: it operates similarly to cycleNumerCondition; the difference is that the number of repetitions is not specified during the CIG acquisition but is evaluated during the CIG execution.
- suggestion: it provides some output message to the user (e.g., the textual description of the action or a warning).
- dataEnquiry: Looks for one or more data values in the patient database. If values are absent or obsolete, the execution waits until new values are added into the database.
- suspend: the execution (of the CIG) must be suspended until a specific condition becomes true;
- goto <node>: the execution must continue by executing <node>;
- abort: the execution must be stopped, and terminates;
- exit to <cig, node>: the execution of the current CIG must be stopped. The execution restarts from the execution of <node>, which is a node belonging to a different CIG <cig>;
- fail: the execution is stopped because of a failure (for instance, a laboratory test could not be executed due to the unavailability of the required instrument) and the HG_EXECUTOR applies the general recovering facility.
3.2. Control Attributes for Arc Types
- (i)
- when the arc can be executed,
- (ii)
- the execution of the arc, and
- (iii)
- how the CIG flow will continue after the arc execution.
- sequence (for (1:1) arcs). Its execution automatically returns the output node of the arc and the temporal constraints on its time of execution, see the discussion below.
- booleanDecision (for (1:N) arcs). A Boolean decision consists of a set of alternative nodes, each one associated with a Boolean condition. It evaluates the Boolean conditions and gives the set of alternatives whose corresponding Boolean condition holds as an output.
- booleanSuggestion (n) (for (1:N) arcs). It operates similarly to booleanDecision, the difference is that the output alternatives are only suggested to the user, who is free to follow or ignore the suggestions, choosing n of the output alternatives.
- scoredDecision (for (1:N) arcs). A scored decision is a decision based on scores. It consists of a set of triples <alternative node, Boolean condition, score> plus a threshold for each alternative which has to be compared with the scores achieved by such an alternative. It first evaluates the Boolean conditions. If a Boolean condition holds, the scoredDecision execution method adds score to the support value of the alternative node. Finally, it compares the score obtained by each alternative with its corresponding threshold and provides, as output, the set of alternatives whose score is greater or equal to the threshold.
- scoredSuggestion (n) (for (1:N) arcs). It operates similarly to scoredDecision, the difference is that the output alternatives are only suggested to the user, who is free to follow or ignore the suggestions, choosing n of the output alternatives (given as output with their temporal constraint).
- randomDecision (n): (for (1:N) arcs). The system randomly chooses n of the output alternatives (given as output with their temporal constraint).
- Decision (n) (for (1:N) arcs). The system asks to the user to choose n of the output alternatives (given as output with their temporal constraint) and does not provide any suggestion.
- qualitativeSuggestion (n) (for (1:N) arcs). A qualitativeSuggestion consists of a set of alternative nodes, each one associated with a set of values for different parameters (e.g., effectiveness, cost, time, side effects). It shows to the user the values of such parameters for each one of the alternatives. The user has to choose n of such alternatives (which are the output of the arc execution).
- parallelSplit (for (1:N) arcs). Its execution automatically returns all the ending nodes of the arc.
- Synchronization (n) (for (N:1) arcs). The parameter n indicates the number of input nodes whose execution must terminate in order to start the execution of the arc (the number of input nodes must be greater than n). Its execution returns the output node.
- synchronize & Split (n),
- synchronize & booleanDecision (n),
- synchronize & booleanSuggestion (n,m),
- synchronize & scoredDecision (n),
- synchronize & scoredSuggestion (n,m),
- synchronize & qualitativeSuggestion (n,m), (for (N:N) arcs).
3.3. Concluding Remark
4. CIG Execution Meta-Engine
- (1)
- A CIG formalism Fi (i.e., a set of arc/node types, each one described as an ordered list of types of attributes)
- (2)
- A specific CIG (say CIGj), expressed in the formalism Fi
- (3)
- A specific patient Pk (we assume that Pk’s data are stored in the patient DB)
- (i)
- to execute a CIG CIGj expressed in a formalism Fi, it executes the nodes and arcs in CIGj, following the control flow of CIGj;
- (ii)
- the execution of each node/arc is obtained through the execution of their attributes, in the ordering in which they appear in the description of the node/arc type (notably, each node, arc, and attribute in CIGj must be an instance of a node type, arc type, or attribute type in Fi).
- (iii)
- Non-control attributes are ignored by HG_EXECUTION. Control attributes are executed by invoking their execution method (i.e., the method associated with the corresponding attribute type) and managing their output modality.
Algorithm 2: Pseudocode of a graph execution |
(1) exec_graph(set of <node, temporal constraints> currents, graph G) { (2) for each <n,tc> ∈ currents do { (3) out ← exec_node (n,tc) (4) if (out = DONE) then { (5) a ← exit_control_arc (n) (6) if (a ≠ NULL) then { (7) while (get_finished_inputs (a) < get_input_card(get_control_attr(a))) (8) do WAIT; (9) nexts ← exec_arc (a,G) (10) exec_grap h(nexts,G) } } } } |
Algorithm 3: Pseudocode of a node execution |
modality ← exec_node (node N, temporal_constraint tc) { (1) temporal_check (tc, current_time) (2) attr ← get_first_control_attr(N) (3) while (attr ≠ NULL) do { (4) if (attr.type = composed) then (5) exec_graph (<get_first_node (get_components (attr)), tc>, get_components (attr)) (6) else (7) if (attr.type = cycle) then (8) while (eval_condition (get_condition (attr)) do { (9) a ← get_first_control_attr (attr) (10) if a.type = composed then (11) exec_graph (<get_first_node(get_components(a)), tc>,get_components(a)) (12) else (13) while (a ≠ NULL) do { (14) modality←execute (get_exec_method(a)) (15) if (modality ≠ DONE) then (16) manage_mod (modality) (17) a ← get_next_control_attr (attr) } } (18) else { (19) modality ← execute (get_exec_method (a)) (20) if (modality ≠ DONE) then manage_mod (modality) } (21) attr ← get_next_control_attribute (attr, N) } (22) return (DONE) } |
Algorithm 4: Pseudocode of an arc execution |
(1) set of <node, temporal constraints> ← exec_arc (arc a, graph G) { (2) exec_method←get_exec_method (get_control_attribute (a)) (3) next_nodes ← execute (exec_method) (4) nexts ← temporal_reasoning (next_nodes, get_temp_constraints (a), G) (5) return nexts } |
5. Evaluating META-GLARE
- 1.
- existence of a repository of guidelines: Yes
- 2.
- presence/absence of a tool offering an editor to create and visualize the guidelines: Yes
- 3.
- formal representation language used for the guidelines: Task Network
- 4.
- basic elements defined in the guideline representation language: Query, Work, Decision
- 5.
- if the tool is designed to be deployed as a distributed system: No
- 6.
- presence of complex coordination elements: Yes
- 7.
- type of execution engine: Rule-Based
- 8.
- connection with an electronic medical record: Yes
- 9.
- ability to integrate the execution engine with an existing clinical management system: Yes
- 10.
- use of any standard terminology or representation language: XML, ICD-9
- 11.
- inclusion of security tools to preserve data integrity and authenticate the accesses to the medical data: No
- (1)
- META-GLARE supports multiple CIG formalisms (in principle, all the formalisms that can be generated from META-GLARE are “meta-formalisms”). In the evaluation below, we consider the formalism that includes all the features in the library, as described in Section 3 (we call it META-GLARELib). Since META-GLARE is open, additional features can be easily added to the library and, therefore, to META-GLARELib.
- (2)
- Although expressiveness is certainly important, we strongly believe that “suitability” [19] also plays an important role in the user-friendliness of a CIG formalism (so it may be the case that user physicians prefer a more restricted formalism that is more suited to their specific task/domain). The essential advantage of META-GLARE is that it helps system designers and possibly domain experts in the definition of a system supporting a “suitable” and “personalized” CIG formalism (see the discussion in the introductory section).
5.1. Evaluating the Expressiveness of META-GLARELib
- basic control-flow patterns: describe basic aspects of process control: sequencing, parallel splitting, synchronizing, exclusive selection and simple merging;
- advanced branching and synchronization patterns: describe in-between behaviors, where some of the paths in a set of paths can be selected for execution and then different modes of continuation are possible;
- structural patterns: identify whether the modelling formalism imposes constraints on how processes are structured;
- multiple instances patterns: refer to situations where more than one instance of a task may be active at the same time in the same case;
- state-based patterns: describe scenarios in a process where subsequent execution depends on the state of the process instance;
- cancellation patterns: refer to the situation where either a single task or a group of tasks in a model need to be cancelled.
- new patterns: a set of new patterns and the revised patterns belonging to the previous categories, covering the concepts such as triggers, path and thread branching and synchronization, and cancellation.
- supported (Y) if a CIG system satisfies the criteria for the pattern and provides a direct support for it,
- partial support (Y/N), if a CIG system does not provide a construct that directly supports the pattern, but it compensates by offering alternative solutions through elaborate workarounds or by extending its programming capabilities.
- no support (N) if a system does not satisfy the criteria for direct or indirect support.
- Control attributes to manage the interaction (i.e., input/output) with the user (i.e., suggestion, dataEnquiry, externalnformationAcquisition, booleanSuggestion (n), qualitativeSuggestion, scoredSuggestion (n), synchronize&booleanSuggestion (n,m), synchronize&scoredSuggestion (n,m), synchronize&qualitativeSuggestion (n,m)). Such an issue is not considered in the 43 patterns above (except pattern 16, i.e., the deferred choice).
5.2. Some Limitations of the Current Version of META-GLARE
- (1)
- Concurrent execution of a CIG with a monitor. In particular, such a level of parallelism is needed to monitor patients’ data, in such a way as to be able to trigger and manage exceptions. In our previous work, we have already extended GLARE with a monitor triggering the treatment of exceptions (see [33]) and managing the interactions between the CIG execution and the exception handler execution; we plan to extend META-GLARE with a proper adaptation of such a mechanism. Notably, the addition of a monitoring-triggering mechanism will greatly extend META-GLARELib expressiveness, to also cover with eight new patterns—18, 19, 20, 23, 24, 25, 26, and 27 in [17]. After such an extension, META-GLARELib would cover 33 out of 43 patterns, overtaking the Asbru, EON, GLIF, and PROforma approaches.
- (2)
- Distributed and concurrent execution of two or more CIGs. Such an extension is needed in case more than one CIG must be concurrently executed on a given patient, e.g., to cope with comorbid patients (see Section 7.1 below). In our previous work, we have extended GLARE to cope with comorbid patients (see the discussion in Section 7.1). However, proposing a “meta-level” support to the “merged execution” of multiple CIGs is a very challenging task that we aim to consider in our future work.
6. Applying META-GLARE
- The application to META-GLARE to add a new node type (not requiring attributes not already present in the META-GLARE library) in an already existent CIG system (produced through META-GLARE)
- The application of META-GLARE to build a new CIG system, in case all the required attributes are already part of the META-GLARE library.
- The application of META-GLARE to build a new CIG system, in case new attributes have to be added to the META-GLARE Library.
7. Related Work and Comparisons
7.1. CIG Execution Tools
7.2. The Advantages of META-GLARE’s “Meta”-Approach
- (1)
- “traditional” CIG approaches. Traditional CIG systems are based on a specific CIG representation formalism. The software code of the acquisition and execution tools provided by such a system has been specifically developed to manage the chosen representation formalism. Such systems do not provide any facility to change the representation formalism. Therefore, if some change to the formalism is required (e.g., in order to face new phenomena that had not been considered in the original formalism), the system designer has to operate directly on the software code of the acquisition and the execution tools, inspecting it and identifying where changes have to be performed before appropriately changing/extending such a code. Notably, such an approach may be quite difficult and time-consuming in real CIG systems, whose code dimensions and complexities are quite high, even in the case of limited changes in the formalism.
- (2)
- Protégé and DeGeL approaches. Protégé and DeGeL support a mechanism for the acquisition and management of multiple ontologies, which can be exploited to acquire different CIG representation formalisms. For each acquired CIG formalism, they automatically provide a tool to acquire CIG instances expressed in such a formalism. As a consequence, Protégé and DeGeL facilitate designers in the definition of a new CIG system based on a new formalism, or in the update of an existing one to update its formalism: the designer can use their formalism acquisition tool to define the new/updated formalism and gets the tool to acquire CIG instances automatically. However, Protégé and DeGeL do not support the system designer with regard to the execution tool. When changing the CIG formalism or defining a new formalism, the system designer has to operate directly on the software code of the execution tool, inspecting it, identifying where changes have to be performed, and appropriately changing/extending such a code.
- (3)
- META-GLARE approach. As shown by Experiments 1–3 above, META-GLARE further generalizes the support provided by Protégé and DeGeL to also consider the execution tool. The META-GLARE DEFINITION_EDITOR module supports system designers in the definition of a new CIG formalism, or in the update of an already acquired one. Since both META-GLARE’s tool to acquire specific CIG instances (HG_ACQUISITION module; see Figure 1) and the tool to execute them (HG_EXECUTION module; see Figure 1) are parametric with respect to the input formalism, the definition/update of a CIG formalism does not require any modification to them. No inspection of their code and no modifications are needed at all. Therefore, programming is needed only in case a new component has to be added to the component library (see Experiment 3 above). Notably, our approach is fully modular, since the system designer has only to program the additional component without taking care of the rest of the system. Therefore, META-GLARE supports fast prototyping of the new or extended system.
7.3. Other Related Approaches in Computer Science
8. Future Works
9. Conclusions
- The algorithms constituting the basis of the META-GLARE execution engine
- The library of control attribute types
- An evaluation of the expressiveness of our current formalism (META-GLARELib) using the benchmark in [23]
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Appendix A
Pattern | Explanation |
---|---|
Basic control-flow | |
1. Sequence | It is supported via an arc type with ariety (1:1) having the control attribute sequence |
2. Parallel split | It is supported via an arc type with ariety (1:N) and having the control attribute parallelSplit |
3. Synchronization | It is supported via an arc type with ariety (N:1) and having the control attribute synchronization (n). The parameter n has to be set exactly to the number of input nodes of the arc |
4. Exclusive choice | It is supported via an arc type with ariety (1:N) having a control attribute which specifies the decision criteria which has to be evaluated (e.g., scoredDecision, booleanDecision in Section 3). Notice that, to model the exclusive choice, the decisional must be mutually exclusive. |
5. Simple merge | It is modeled by multiple arcs pointing to a single node. |
Advanced branching and synchronization | |
6. Multichoice | It is supported via an arc type with ariety (1:N) having a control attribute specifying the choice criteria (e.g., through a scoredDecision, or a booleanDecision. Notice that the decisional criteria must not mutually exclusive, to support the possible selection of more than one output node. |
7. Structured synchronizing merge | META-GLARE does not support this pattern, since META-GLARE control attributes for synchronization require to specify at acquisition time (and not at execution time) the number of nodes to be waited. |
8. Multimerge | It is modeled by multiple arcs pointing to a single node. |
9. Structured discriminator | It is supported via an arc type with ariety (N:1) and having the control attribute synchronization (n). The parameter n has to be set to 1. |
Structural patterns | |
10. Arbitrary cycles | It is supported, since the graph representing a CIG has no structural constraints. |
11. Implicit termination | It is supported, since the execution of a CIG in META-GLARE implicitly terminates after that all the enabled nodes have been executed |
Multiple instances patterns | |
12. MI without synchronization | It is partially supported, through the adoption of more than one construct. The number k of MI (multiple instances) is known at acquisition time. Thus, we can explicitly represent k different instances of action in the CIG. This pattern can be represented through an arc with ariety (1:N) and control attribute parallelSplit. Such an arc will have k output nodes, each one representing the same activity. In turn, all such nodes are input nodes for an arc with ariety (N:1) and with control attribute synchronization (n), where n is set to 1. Notably in META-GLARE the execution goes on when the execution of at least one node is ended. |
13. MI with a priori design-time knowledge | It is partially supported. The number k of MI (multiple instances) is known at acquisition time. Thus, we can explicitly represent k different instances of action in the CIG. We can model the pattern with an arc with ariety (1:N) and the control attribute parallelSplit. This arc has k output nodes, each one representing an instance of the same activity type. In turn, all such nodes are input nodes for an arc with ariety (N:1) and with control attribute synchronization (n), where n is set to k. |
14. MI with a priori run-time knowledge | We partially support this pattern (see discussion in Section 5.1). In META-GLARE, there is no specific construct for multiple instances (of nodes): each instance has to be explicitly represented in the CIG. Thus, the case in which the number of instances is not known at CIG acquisition time (but it is only known at execution time, as in the case of pattern 14) can only be modeled indirectly, through a set of constructs. First of all, a bound b on the maximum number of instances must be assumed (this is reasonable, since, anyway, one cannot have an infinite number of instances). Then, a decision (decision (1)) between b alternatives must be modeled (leading to b “dummy” nodes, used only for the purpose of the construction, but not influencing the execution). Each branch i of the alternative represents the concurrent execution of i ≤ b instances (to model the fact that one can execute one, or two, or …. or b instances). In each case, the instances can run concurrently. This is modeled by introducing a parallelSplit arc starting from a dummy node and ending in i ≤ b node instances. Then, the different alternative branches must be “merged”. This result is achieved in two steps. First, for each branch i, we introduce a synchronization(i) arc (requiring the termination of each one of the i instances), ending on a “dummy” node. In turn, a synchronization(1) arc is introduced, starting from each one of the b “dummy” nodes, and requiring the termination of exactly one of the alternative branches (i.e., the selected one). |
15. MI without a priori run-time knowledge | It is partially supported, similarly to pattern 14 above. Differently from pattern 14, in Pattern 15 the number of instances is not even known at execution time. We model this case as a random choice between the b alternatives (where b is the maximum bound on the number of instances; randomDecision(1) arc). |
State-based pattern | |
16. Deferred choice | It is supported via an arc with ariety (1:N) having a control attribute, which specifies the interaction with the user. The following control attributes can be used to this purpose: scoredSuggestion (n), booleanSuggestion (n), qualitativeSuggestion (n), decision (n). |
17. Interleaved parallel routing | It is supported using META-GLARE temporal constraints. Using constraints, we can easily specify that concurrent nodes must be executed in any order but without overlapping in time. |
18. Milestone | It is not supported, since META-GLARE does not support triggers on the state of the execution of nodes/arcs |
Cancellation patterns | |
19. Cancel activity | It is not supported, since META-GLARE does not support triggers. |
20. Cancel case | It is not supported, since META-GLARE does not support triggers. |
New patterns | |
21. Structured loop | It is supported via a node having one of the following control attributes: cycleBoolenanCondition, dynamicCycleNumberRepetition, cycleNumberRepetition (n). |
22. Recursion | It is supported via a node having a control attribute conditioned/unconditionedGoTo which points to the node itself |
23. Transient trigger | It is not supported, since in META-GLARE does not support triggers |
24. Persistent trigger | It is not supported, since in META-GLARE does not support triggers |
25. Cancel region | It is not supported. This pattern could be realized using a trigger which can activate a cancel action on a region (a set of nodes). However, META-GLARE does not support triggers. |
26. Cancel multiple instance activity | It is not supported. This pattern could be realized using a trigger that can activate a cancel action, but META-GLARE does not support triggers |
27. Complete multiple instance activity | It is not supported. This pattern can be realized using a trigger that can activate a cancel action. However, META-GLARE does not support triggers |
28. Blocking discriminator | It is partially supported: the pattern is supported by META-GLARE, but only considering a single patient (see Section 1.3). It can be supported via an arc with ariety (1:N) and with control attribute parallelSplit; then all the output nodes of this arc are synchronized via an arc with ariety (1:N) and control attribute synchronization (n), where n is set to the number of input nodes of the arc. |
29. Canceling discriminator | It is not supported, since in META-GLARE the execution of a branch cannot influence the execution of the other parallel branches |
30. Structured N-out-of-M join | It is supported via an arc with ariety(N:1) and with control attribute synchronization (n). |
31. Blocking N-out-of-M join | It is partially supported: the pattern is supported similarly to pattern 30, but only considering a single patient (see discussion in Section 5.1). |
32. Canceling N-out-of-M join | It is not supported, since in META-GLARE the execution of a branch cannot influence the execution of the other concurrent branches |
33. Generalized AND-join | It is partially supported. Indeed, the pattern is supported, but only considering a single patient (see discussion above). An arc with ariety (1:N) and control attribute parallelSplit is used to start the concurrent branches; such branches are then synchronized using an arc with ariety (N:1) and with control attribute synchronization (n). |
34. Static N-out-of-M join for MIs | It is not supported, since pattern 34 requires that both the number of concurrent instances to be executed and the number of executed instances to be waited for before the execution can go on is unknown at acquisition time. |
35. Static N-out-of-M join for MIs with cancellation | It is not supported, similarly to 34. In addition, instance cancellation is required (and not supported in META-GLARE). |
36. Dynamic N-out-of-M join for MIs | It is not supported, similarly to 34. With respect to 34, here the number of instances can randomly vary at execution time. |
37. Acyclic synchronizing merge | It is not supported, since in 37 the number of branches to be merged depends on the number of branches previously activated at execution time (only acquisition-time values can be managed in META-GLARE). |
38. General synchronizing merge | It is not supported, similarly to 37. |
39. Critical section | It is not supported, since META-GLARE does not support the concept of critical section. META-GLARE does not allow to specify conditions on an arbitrary groups of nodes (i.e., nodes not structurally related) |
40. Interleaved routing | It is supported via temporal constraints which allow to specify that the nodes belonging to different concurrent branches must be executed without overlapping. |
41. Thread merge | It is not supported, since META-GLARE does not support threads. Notice that the concept of thread is not related to the context of CIGs. |
42. Thread split | It is not supported, since META-GLARE does not support thread. Notice that the concept of thread is not related to the context of CIGs. |
43. Explicit termination | It is supported via the control attribute unconditionedExit |
References
- Field, M.J.; Lohr, K.N. Clinical Practice Guidelines: Directions for a New Program; Institute of Medicine, National Academy Press: Washington, DC, USA, 1990. [Google Scholar]
- ten Teije, A.; Miksch, S.; Lucas, P. Computer-Based Medical Guidelines and Protocols: A Primer and Current Trends; IOS Press: Amsterdam, The Netherlands, 2008. [Google Scholar]
- Lucas, P.; Hommerson, A. Foundations of Biomedical Knowledge Representation; Springer: Berlin/Heidelberg, Germany, 2015. [Google Scholar]
- Peleg, M. Computer-interpretable clinical guide-lines: A methodological review. J. Biomed. Inform. 2013, 46, 744–763. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Riaño, D.; Peleg, M.; ten Teije, A. Ten years of knowledge representation for health care (2009–2018): Topics, trends, and challenges. Artif. Intell. Med. 2019, 100, 101713. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Peleg, M.; Tu, S.; Bury, J.; Ciccarese, P.; Fox, J.; Greenes, R.A.; Hall, R.; Johnson, P.D.; Jones, N.; Kumar, A.; et al. Comparing computer-interpretable guideline models: A case-study approach. J. Am. Med. Inform. Assoc. 2003, 10, 52–68. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Bottrighi, A.; Chesani, F.; Mello, P.; Montali, M.; Montani, S.; Storari, S.; Terenziani, P. Analysis of the GLARE and GPROVE Approaches to Clinical Guidelines. In Knowledge Representation for Health-Care. Data, Processes and Guidelines; LNCS 5943; Springer: Berlin/Heidelberg, Germany, 2010; pp. 76–87. [Google Scholar]
- Isern, D.; Moreno, A. Computer-based execution of clinical guidelines: A review. Int. J. Med. Inform. 2008, 77, 787–808. [Google Scholar] [CrossRef] [PubMed]
- Terenziani, P.; Montani, S.; Bottrighi, A.; Molino, G.; Torchio, M. Applying Artificial Intelligence to Clinical Guidelines: The GLARE Approach. Stud. Health Technol. Inform. 2008, 139, 273–282. [Google Scholar]
- Ohno-Machado, L.; Gennari, J.H.; Murphy, S.N.; Jain, N.L.; Tu, S.W.; Oliver, D.E.; Pattison-Gordon, E.; Greenes, R.A.; Shortliffe, E.H.; Barnett, G.O. The guideline interchange format: A model for representing guidelines. J. Am. Med. Inform. Assoc. 1998, 5, 357–372. [Google Scholar] [CrossRef] [Green Version]
- Boxwala, A.A.; Greenes, R.A.; Deibel, S.R. Architecture for a multipurpose guideline execution engine. Proc. AMIA Symp. 1999, 1999, 701–705. [Google Scholar]
- Peleg, M.; Boxwala, A.A.; Tu, S.; Zeng, Q.; Ogunyemi, O.; Wang, D.; Patel, V.L.; Greenes, R.A.; Shortliffe, E.H. The InterMed approach to sharable computer-interpretable guidelines: A review. J. Am. Med. Inform. Assoc. 2004, 11, 1–10. [Google Scholar] [CrossRef] [Green Version]
- Seyfang, A.; Kosara, R.; Miksch, S. Asbru 7.3 Reference Manual, Technical Report; Vienna University of Technology: Vienna, Austria, 2002. [Google Scholar]
- Terenziani, P.; Molino, G.; Torchio, M. A modular approach for representing and executing clinical guidelines. Artif. Intell. Med. 2001, 23, 249–276. [Google Scholar] [CrossRef]
- Bottrighi, A.; Molino, G.; Montani, S.; Terenziani, P.; Torchio, M. Supporting a distributed execution of clinical guidelines. Comput. Methods Programs Biomed. 2013, 112, 200–210. [Google Scholar] [CrossRef]
- Bottrighi, A.; Terenziani, P. META-GLARE: A meta-system for defining your own computer interpretable guideline system—Architecture and acquisition. Artif. Intell. Med. 2016, 72, 22–41. [Google Scholar] [CrossRef]
- Workflow Patterns Initiative. Available online: https://www.workflowpatterns.com (accessed on 16 April 2023).
- van der Aalst, W.M.P. Pi Calculus Versus Petri Nets: Let us eat “humble pie” rather than further inflate ‘”Pi hype”. BPTrends 2005, 3, 1–11. [Google Scholar]
- Kiepuszewski, B. Expressiveness and Suitability of Languages for Control Flow Modelling in Workflows. Ph.D. Thesis, Queensland University of Technology, Brisbane, Australia, 2003. [Google Scholar]
- Protégé Homepage. Available online: https://protege.stanford.edu (accessed on 20 April 2023).
- Shahar, Y.; Young, O.; Shalom, E.; Galperin, M.; Mayaffit, A.; Moskovitch, R.; Hessing, A. A framework for a distributed, hybrid, multiple-ontology clinical-guideline library, and automated guideline-support tools. J. Biomed. Inform. 2004, 37, 325–344. [Google Scholar] [CrossRef] [Green Version]
- Terenziani, P.; Bottrighi, A.; Lovotti, I.; Rubrichi, S. META-GLARE: A Meta-System for Defining Your Own CIG System: Architecture and Acquisition. In Knowledge Representation for Health Care; KR4HC@VSL 2014, LNCS 8903; Springer: Berlin/Heidelberg, Germany, 2014; pp. 95–110. [Google Scholar]
- Mulyar, N.; van der Aalst, W.M.P.; Peleg, M. Research Paper: A Pattern-based Analysis of Clinical Computer-interpretable Guideline Modeling Languages. J. Am. Med. Inform. Assoc. 2007, 14, 781–787. [Google Scholar] [CrossRef] [Green Version]
- Bottrighi, A.; Rubrichi, S.; Terenziani, P. META-GLARE: A Meta-Engine for Executing Computer Interpretable Guidelines. In Knowledge Representation for Health Care; AIME 2015, LNCS 9485; Springer: Berlin/Heidelberg, Germany, 2015; pp. 37–50. [Google Scholar]
- Dechter, R.; Meiri, I.; Pearl, J. Temporal Constraint Networks. Artif. Intell. 1991, 49, 61–95. [Google Scholar] [CrossRef]
- Anselma, L.; Terenziani, P.; Montani, S.; Bottrighi, A. Towards a comprehensive treatment of repetitions, periodicity and temporal constraints in clinical guidelines. Artif. Intell. Med. 2006, 38, 171–195. [Google Scholar] [CrossRef] [Green Version]
- SNOMED International. Available online: http://www.snomed.org/ (accessed on 30 March 2023).
- ATC Structure and Principles. Available online: http://www.whocc.no/atc/structure_and_principles/ (accessed on 30 March 2023).
- Fox, J.; Johns, N.; Rahmanzadeh, A. Disseminating medical knowledge: The PROforma approach. Artif. Intell. Med. 1998, 14, 157–182. [Google Scholar] [CrossRef]
- Shahar, Y.; Miksch, S.; Johnson, P.D. The Asgaard project: A task-specific framework for the application and critiquing of time-oriented clinical guide-lines. Artif. Intell. Med. 1998, 14, 29–51. [Google Scholar] [CrossRef]
- Terenziani, P.; Anselma, L.; Bottrighi, A.; Montani, S. Advanced treatment of temporal phenomena in clinical guidelines. AMIA Annu. Symp. Proc. 2006, 2006, 1117. [Google Scholar]
- Russell, N.; ter Hofstede, A.H.M.; van der Aalst, W.M.P.; Mulyar, N. Workflow Control-Flow Patterns: A Revised View; BPM Center Report BPM-06-22; BPM Center: San Pedro, Costa Rica, 2006; Available online: http://www.workflowpatterns.com/documentation/documents/BPM-06-22.pdf (accessed on 29 March 2023).
- Leonardi, G.; Bottrighi, A.; Galliani, G.; Terenziani, P.; Messina, A.; Della Corte, F. Exceptions Handling within GLARE Clinical Guideline Frame-work. AMIA Annu. Symp. Proc. 2012, 2012, 512–521. [Google Scholar]
- Gaba, D.M. The future vision of simulation in health care. Qual. Saf. Health Care 2004, 13 (Suppl. 1), i2–i10. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Bottrighi, A.; Molino, G.; Piovesan, L.; Terenziani, P. Towards an “Operational” Educational Model in Healthcare: Exploiting Computer-Interpretable Guidelines. In Proceedings of the Healthinf 2019: 12th International Conference on Health Informatics, Prague, Czech Republic, 22–24 February 2019; pp. 402–409. [Google Scholar]
- Bottrighi, A.; Molino, G.; Piovesan, L.; Terenziani, P. Simulating Clinical Guidelines for Medical Education. In Proceedings of the ICEI 2019, ACM, Purworejo, Indonesia, 27–28 September 2019; pp. 66–72. [Google Scholar]
- Wang, D.; Peleg, M.; Tu, S.W.; Boxwala, A.A.; Ogunyemi, O.; Zeng, Q.; Greenes, R.A.; Patel, V.L.; Shortliffe, E.H. Design and implementation of the GLIF3 guideline execution engine. J. Biomed. Inform. 2004, 37, 305–318. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Fuchsberger, C.; Miksch, S. Asbru’s Execution Engine: Utilizing Guidelines for Artificial Ventilation of Newborn Infants. In Proceedings of the IDAMAP 2003, Protaras, Cyprus, 19–22 October 2003; pp. 99–125. [Google Scholar]
- Sutton, D.R.; Fox, J. The syntax and semantics of the PROforma guideline modeling language. J. Am. Med. Inform. Assoc. 2003, 10, 433–443. [Google Scholar] [CrossRef] [PubMed] [Green Version]
- Bottrighi, A.; Piovesan, L.; Terenziani, P. Supporting the distributed execution of clinical guidelines by multiple agents. Artif. Intell. Med. 2019, 98, 87–108. [Google Scholar] [CrossRef] [PubMed]
- Novais, P.; Oliveira, T.; Satoh, K.; Neves, J. The Role of Ontologies and Decision Frameworks in Computer-Interpretable Guideline Execution. Synergies Between Knowledge Engineering and Software Engineering. In Advances in Intelligent Systems and Computing; Nalepa, G., Baumeister, J., Eds.; Springer: Berlin/Heidelberg, Germany, 2018; p. 626. [Google Scholar]
- Silva, A.; Oliveira, T.; Gonçalves, F.; Neves, J.; Satoh, K.; Novais, P. A Unified System for Clinical Guideline Management and Execution. Trends and Advances in Information Systems and Technologies. WorldCIST’18 2018. In Advances in Intelligent Systems and Computing; Rocha, Á., Adeli, H., Reis, L., Costanzo, S., Eds.; Springer: Berlin/Heidelberg, Germany, 2018; p. 746. [Google Scholar]
- Van Woensel, W.; Tu, S.W.; Michalowski, W.; Raza Abidi, S.S.; Abidi, S.; Alonso, J.-R.; Bottrighi, A.; Carrier, M.; Edry, R.; Hochberg, I.; et al. A community-of-practice-based evaluation methodology for knowledge intensive computational methods and its application to multimorbidity decision support. J. Biomed. Inform. 2023, 142, 104395. [Google Scholar] [CrossRef]
- Zamborlini, V.; Da Silveira, M.; Pruski, C.; ten Teije, A.; Geleijn, E.; van der Leeden, M.; Stuiver, M.; van Harmelen, F. Analyzing interactions on combining multiple clinical guidelines. Artif. Intell. Med. 2017, 81, 78–93. [Google Scholar] [CrossRef]
- Michalowski, M.; Wilk, S.; Michalowski, W.; Carrier, M. MitPlan: A Planning Approach to Mitigating Concurrently Applied Clinical Practice Guidelines. Artif. Intell. Med. 2019, 2019, 93–103. [Google Scholar]
- Wilk, S.; Michalowski, M.; Michalowski, W.; Rosu, D.; Carrier, M.; Kezadri-Hamiaz, M. Comprehensive mitigation framework for concurrent application of multiple clinical practice guidelines. J. Biomed. Inform. 2017, 66, 52–71. [Google Scholar] [CrossRef]
- Jafarpour, B.; Raza Abidi, S.; Van Woensel, W.; Raza Abidi, S.S. Execution-time integration of clinical practice guidelines to provide decision support for comorbid conditions. Artif. Intell. Med. 2019, 94, 117–137. [Google Scholar] [CrossRef]
- Piovesan, L.; Terenziani, P.; Molino, G. GLARE-SSCPM: An Intelligent System to Support the Treatment of Comorbid Patients. IEEE Intell. Syst. 2018, 33, 37–46. [Google Scholar] [CrossRef]
- Bottrighi, A.; Piovesan, L.; Terenziani, P. Supporting physicians in the coordination of distributed execution of CIGs to treat comorbid patients. Artif. Intell. Med. 2023, 135, 102472. [Google Scholar] [CrossRef]
- Piovesan, L.; Terenziani, P. A Constraint-Based Approach for the Conciliation of Clinical Guidelines. In Proceedings of the Advances in Artificial Intelligence—IBERAMIA 2016, San José, Costa Rica, 23–25 November 2016; pp. 77–88. [Google Scholar]
- Bilici, E.; Despotou, G.; Arvanitis, T.N. Concurrent Execution of Multiple Computer-interpretable Clinical Practice Guidelines and Their Interrelations. In Health Informatics Vision: From Data via Information to Knowledge; IOS Press: Amsterdam, The Netherland, 2019; pp. 7–10. [Google Scholar]
- Kogan, A.; Tu, S.W.; Peleg, M. Goal-driven management of interacting clinical guidelines for multi-morbidity patients. Artif. Intell. Med. 2018, 2018, 690–699. [Google Scholar]
- Tu, S.W.; Musen, M.A. Modeling data and knowledge in the EON guideline architecture. Stud. Health Technol. Inform. 2001, 84, 280–284. [Google Scholar]
- Chesani, F.; Lamma, E.; Mello, P.; Montali, M.; Storari, S.; Baldazzi, P.; Manfredi, M. Compliance checking of cancer-screening careflows: An approach based on computational logic. Stud. Health Technol. Inform. 2008, 139, 183–192. [Google Scholar]
- Quaglini, S.; Stefanelli, M.; Cavallini, A.; Miceli, G.; Fassino, C.; Mossa, C. Guideline based care-flow systems. Artif. Intell. Med. 2000, 20, 5–22. [Google Scholar] [CrossRef]
- Johnson, P.D.; Tu, S.W.; Booth, N.; Sugden, B.; Purves, I.N. Design and implementation of a framework to support the development of clinical guidelines. Proc. AMIA Symp. 2000, 2000, 389–393. [Google Scholar]
- Johnson, S.C. Yacc: Yet Another Compiler-Compiler; Bell Laboratories: Murray Hill, NJ, USA, 1975; Volume 32. [Google Scholar]
- Object Management Group Business Process Model and Notation. Available online: http://www.bpmn.org/ (accessed on 8 May 2023).
- Web Services Business Process Execution Language Version 2.0. Available online: http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html (accessed on 8 May 2023).
- Georgakopoulos, D.; Hornick, M.; Sheth, A. An overview of workflow management: From process modeling to workflow automation infrastructure. Distrib. Parallel Databases 1995, 3, 119–153. [Google Scholar] [CrossRef]
- Workflow Management Coalition—The Workflow Reference Model. Available online: http://www.workflowpatterns.com/documentation/documents/tc003v11.pdf (accessed on 8 March 2023).
- Borger, E.; Thalheim, B. Modeling Workflows, Interaction Patterns, Web Services and Business Processes: The ASM-Based Approach. In Abstract State Machines, B and Z; LNCS 5238; Springer: Berlin/Heidelberg, Germany, 2008; pp. 24–38. [Google Scholar]
- Agrawal, M.; Amend, M.; Das, M.; Ford, C.; Keller, M.; Kloppmann, D.; König, F.; Leymann, R.; Müller, O.G.; Pfau, K.; et al. Web Services Human Task (WS-HumanTask), Version 1.0 A. Available online: http://svn.apache.org/repos/asf/incubator/hise/site/publish/WS-HumanTask_v1.pdf (accessed on 9 April 2021).
- Available online: http://docs.oasis-open.org/bpel4people/bpel4people-1.1.html (accessed on 9 April 2021).
- Available online: https://www.oasis-open.org/committees/bpel4people/charter.php (accessed on 8 April 2021).
- Russell, N.; van der Aalst, W.M.P. Evaluation of the BPEL4People and WS-HumanTask Extensions to WS-BPEL 2.0 using the Workflow Resource Patterns. In Bpm Center Report; Department of Technology Management, Eindhoven University of Technology: Eindhoven, The Netherlands, 2007; p. 142. [Google Scholar]
- Fox, J.; Black, E.; Chronakis, I.; Dunlop, R.; Patkar, V.; South, M.; Thomson, R. From Guidelines to Care-flows: Modelling and Supporting Complex Clinical Processes. Stud. Health Technol. Inform. 2008, 139, 44–62. [Google Scholar]
- Mulyar, N.; Pesic, M.; van der Aalst, W.M.P.; Peleg, M. Towards the Flexibility in Clinical Guideline Modelling Languages; BPM Center Report BPM-07-04; BPM Center: San Pedro, Costa Rica, 2007. [Google Scholar]
- Reijers, H.A.; Russell, N.; Van der Geer, S.; Krekels, G.A. Workflow for Healthcare: A Methodology for Realizing Flexible Medical Treatment Processes. In Proceedings of the International Conference on Business Process Management BPM 2009: Business Process Management Workshops, Ulm, Germany, 8–10 September 2009; pp. 593–604. [Google Scholar]
- Terenziani, P.; Femiano, S. Towards an Integration of Workflows and Clinical Guidelines: A Case Study. In Proceedings of the Advances in Artificial Intelligence—IBERAMIA 2016, San José, Costa Rica, 23–25 November 2016; pp. 3–13. [Google Scholar]
- Mans, R.S.; Russell, N.C.; van der Aalst, W.M.P.; Bakker, P.J.M.; Moleman, A.J.; Jaspers, M.W.M. Proclets in healthcare. J. Biomed. Inform. 2010, 43, 632–649. [Google Scholar] [CrossRef]
Asbru | EON | GLIF | PROforma | META-GLARELib | |
---|---|---|---|---|---|
Basic control-flow | |||||
1. Sequence | Y | Y | Y | Y | Y |
2. Parallel split | Y | Y | Y | Y | Y |
3. Synchronization | Y | Y | Y | Y | Y |
4. Exclusive choice | Y | Y | Y | Y | Y |
5. Simple merge | Y | Y | Y | Y | Y |
Advanced branching and synchronization | |||||
6. Multichoice | Y | Y | Y | Y | Y |
7. Structured synchronizing merge | Y/N | N | N | Y | Y/N |
8. Multimerge | N | N | N | N | Y |
9. Structured discriminator | Y | Y | Y | Y | Y |
Structural patterns | |||||
10. Arbitrary cycles | N | Y | Y | N | Y |
11. Implicit termination | Y | Y | Y | Y | Y |
Multiple instances patterns | |||||
12. MI without synchronization | N | N | N | N | Y/N |
13. MI with a priori design-time knowledge | Y/N | Y/N | Y/N | Y/N | Y/N |
14. MI with a priori run-time knowledge | N | N | N | N | Y/N |
15. MI without a priori run-time knowledge | N | N | N | N | Y/N |
State-based patterns | |||||
16. Deferred choice | Y | N | Y | Y | Y |
17. Interleaved parallel routing | Y | N | N | N | Y |
18. Milestone | N | N | N | Y | N |
Cancellation patterns | |||||
19. Cancel activity | Y | Y | Y | Y | N |
20. Cancel case | Y | N | Y/N | Y | N |
New patterns | |||||
21. Structured loop | Y | Y | Y | Y | Y |
22. Recursion | Y | N | N | N | Y |
23. Transient trigger | N | N | N | Y | N |
24. Persistent trigger | N | N | Y | Y | N |
25. Cancel region | N | N | N | N | N |
26. Cancel multiple instance activity | Y | N | Y | Y | N |
27. Complete multiple instance activity | Y | N | N | Y | N |
28. Blocking discriminator | N | N | N | N | Y/N |
29. Canceling discriminator | Y | N | N | Y | N |
30. Structured N-out-of-M join | Y | N | Y | Y | Y |
31. Blocking N-out-of-M join | N | N | N | N | Y/N |
32. Canceling N-out-of-M join | N | N | N | Y | N |
33. Generalized AND-join | N | N | N | N | Y/N |
34. Static N-out-of-M join for MIs | N | N | N | N | N |
35. Static N-out-of-M join for MIs with cancellation | N | N | N | N | N |
36. Dynamic N-out-of-M join for MIs | N | N | N | N | N |
37. Acyclic synchronizing merge | N | N | N | Y | N |
38. General synchronizing merge | N | N | N | N | N |
39. Critical section | Y | N | Y | N | N |
40. Interleaved routing | Y | N | Y | N | Y |
41. Thread merge | N | N | N | N | N |
42. Thread split | N | N | N | N | N |
43. Explicit termination | N | N | N | N | Y |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Bottrighi, A.; Terenziani, P. META-GLARE: A Computer-Interpretable Guideline System Shell. Appl. Sci. 2023, 13, 8164. https://doi.org/10.3390/app13148164
Bottrighi A, Terenziani P. META-GLARE: A Computer-Interpretable Guideline System Shell. Applied Sciences. 2023; 13(14):8164. https://doi.org/10.3390/app13148164
Chicago/Turabian StyleBottrighi, Alessio, and Paolo Terenziani. 2023. "META-GLARE: A Computer-Interpretable Guideline System Shell" Applied Sciences 13, no. 14: 8164. https://doi.org/10.3390/app13148164
APA StyleBottrighi, A., & Terenziani, P. (2023). META-GLARE: A Computer-Interpretable Guideline System Shell. Applied Sciences, 13(14), 8164. https://doi.org/10.3390/app13148164