EP3213267A1 - Software architecture for expert system - Google Patents
Software architecture for expert systemInfo
- Publication number
- EP3213267A1 EP3213267A1 EP15771155.7A EP15771155A EP3213267A1 EP 3213267 A1 EP3213267 A1 EP 3213267A1 EP 15771155 A EP15771155 A EP 15771155A EP 3213267 A1 EP3213267 A1 EP 3213267A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- input
- value
- values
- input value
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000011156 evaluation Methods 0.000 claims abstract description 48
- 230000014509 gene expression Effects 0.000 claims description 92
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 16
- 230000018109 developmental process Effects 0.000 abstract description 16
- 238000004364 calculation method Methods 0.000 description 45
- 230000008859 change Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000009792 diffusion process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- BSYNRYMUTXBXSQ-UHFFFAOYSA-N Aspirin Chemical compound CC(=O)OC1=CC=CC=C1C(O)=O BSYNRYMUTXBXSQ-UHFFFAOYSA-N 0.000 description 4
- 229960001138 acetylsalicylic acid Drugs 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000001149 cognitive effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- MWUXSHHQAYIFBG-UHFFFAOYSA-N Nitric oxide Chemical compound O=[N] MWUXSHHQAYIFBG-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000000779 smoke Substances 0.000 description 2
- 230000009885 systemic effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 206010012335 Dependence Diseases 0.000 description 1
- CBENFWSGALASAD-UHFFFAOYSA-N Ozone Chemical compound [O-][O+]=O CBENFWSGALASAD-UHFFFAOYSA-N 0.000 description 1
- 206010037660 Pyrexia Diseases 0.000 description 1
- 241000826860 Trapezium Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000000356 contaminant Substances 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003014 reinforcing effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009423 ventilation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/048—Fuzzy inferencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
Definitions
- the invention relates to the field of artificial intelligence in general and the field of rule-based expert systems in particular, in particular based on fuzzy logic.
- Fuzzy Intelligent Systems or fuzzy expert systems - are systems that integrate or implement human expertise and that seek to automate or mimic the reasoning of human experts with complex systems. These eminently technical systems can be based on different aspects of mathematical logic and in particular on logic called "fuzzy logic”.
- fuzzy expert systems generally require more calculations than standard or conventional expert systems. In addition, these systems generally require the repetition of these significant calculations over time (for example when they are applied to dynamic systems that change over time).
- fuzzy expert systems usually require computing power.
- scientists developing fuzzy expert systems are usually led to build increasingly complex and “rich” operators. The computation time can then become more important than the conjunctions, disjunctions and negations that are generally found with classical expert systems.
- fuzzy expert systems require the repetition of these calculations. Indeed, in classical expert systems, only certain rules are activated at a given moment whereas with fuzzy expert systems, all the rules must be recalculated (at least a large part of them).
- the only currently available means to manage an input data stream i.e., multiple data received over time
- the devices and devices involved may not have sufficient computing power, even if the calculation would be distributed between several devices cooperating with each other.
- that of the Internet of Things it is for example generally expected a very large number of objects in interaction but these objects do not necessarily have appropriate computing means.
- a computer-implemented method comprising the steps of receiving an input value to be evaluated; thread the input value into a queue; select from the queue a pending entry value; determining an output value by inferring by the rule base the selected input pending value.
- Developments describe the dissemination of one or more output values, the planning in time and / or space of assessments of pending input values (particularly in terms of computing resources), the selective evaluation of input values, the use of a dependency graph, expiration parameters of rules in time, the use of fuzzy logic inference.
- System aspects, including components, and software are described.
- a software architecture for obtaining optimized performance, to identify the different output data according to the rules and data input. More precisely, according to one embodiment of the invention, a fuzzy expert system capable of managing a flow (continuous or regular or discontinuous or irregular or periodic or aperiodic or intermittent) of inputs and of progressively restoring is disclosed (e.g. in the course of the water ”) the values of the corresponding outputs.
- the various embodiments of the invention are advantageously used in technical fields such as home automation or industrial control.
- the invention will find application to monitor ("monitoring") a given system or object by means of several sensors (“sensors”) which measure different phenomena continuously (or at possibly different frequencies, intermittently or from periodically).
- Sensors sensors
- Methods and systems according to the invention can implement a home automation control system.
- a fuzzy expert system according to the invention can measure over time (discretely or continuously) the variations in temperature, brightness and occupation of the parts to deduce and / or actuate corresponding commands (for example opening of the shutters).
- the writing of the rules according to the invention is done in natural language (rather than by means of mathematical operators).
- This hides - at least partially - the operator who enters his expert rules the mathematical complexity underlying the running model.
- the use of natural language also improves the expressiveness of the expert system. This characteristic makes it possible to obtain a better coverage of the real situations by the rules.
- a fuzzy expert system based on rules expressed in natural language ultimately allows a better "capture" of reality.
- some embodiments advantageously manipulate rules or expressions using the vocabulary of natural language, improving the understanding (and therefore the subsequent manipulation) of these rules or expressions.
- Fuzzy logic is an extension of classical logic to approximate reasoning. By its numerical aspects, it is opposed to modal logics.
- fuzzy logic allows the truth value of a condition to traverse a domain other than the ⁇ true, false ⁇ pair.
- fuzzy logic there are degrees in the satisfaction of a condition. Fuzzy logic assigns degrees of truth to a relationship of the style x is closer to y than z, constructed and / or refined by learning.
- fuzzy relationships will allow the coding of graduated, empirical or typical knowledge acquired directly or through heuristics, inductions, etc.
- the transitions used can be linear, hyperbolic (e.g. sigmoid or hyperbolic tangent), exponential, Gaussian, etc.
- the methods and systems of the invention generally facilitate human-machine interactions. In particular, they can help to relieve the user of tedious manipulations, sometimes repetitive and often complex.
- the various embodiments of the invention lead to the optimization of the cognitive effort to be provided by the user when using the expert system according to the invention.
- the technical effects related to certain aspects of the invention correspond to a reduction in the cognitive load of the user. Description of figures
- FIG. 1 schematizes the general architecture of an exemplary method according to the invention
- Figure 2 illustrates an example of a rule represented as a graph
- Figure 3 illustrates an example of a graph with nodes having priorities.
- a rule-based system is a tool capable of reproducing the cognitive mechanisms of an expert in a particular field. More precisely, an expert system is a software capable of answering questions, making reasoning based on known facts and rules. It can be used as a tool for decision support.
- An expert system consists of three parts: a fact base, a rule base, and an inference engine. The inference engine is able to use facts and rules to produce new facts, until reaching the answer to the expert question asked.
- An expert system can rely on formal logic mechanisms and use deductive reasoning. It can for example be based on the logic of the propositions ("logical order 0"), or the logic of the first-order predicates ("first-order logic"). Fuzzy logic techniques can also be used.
- the algorithms for performing the inference calculation are various and may in particular be specific to the nature of the logic that is implemented.
- the forward chaining or backward chaining algorithms Allow to start from the facts and to deduce the conclusions (or conversely to start from the conclusions to know the facts which are at the origin).
- the Rete and Novel algorithms replaced these chaining algorithms by proposing a step of filtering the rules impacted by the facts.
- chaining algorithms are used in conjunction with a unification algorithm to instantiate a predicate for one or more individuals in the space under consideration.
- the methods and systems of the invention perform one or more operations or steps, including steps of a) storage b) measurement or observation c) planning the evaluation d) evaluation itself and e) of diffusion. More specifically, the method comprises one or more steps among
- the queue according to the invention can delete, and / or merge elements (for example if the refresh rate of the inputs is too high).
- the queue may not be "passive” (in the sense of a simple temporary storage space) but instead be "active", i.e. actively participate in the overall system;
- steps of measurement or observation or monitoring or monitoring of the current context including and not limited to the monitoring of the state of the machine, ie processor load or activity or calculation means, instantaneous use of the memory, etc.; in addition, these steps may further comprise steps of selecting certain elements to be removed from the queue, for example with a view to their processing (according to the implemented policy);
- the scheduling component can select one or more entries (or a group of entries) that have changed or have been modified and can decide to assign its evaluation to an entity (a heart, a calculator) and / or or may just not take into account a group of entries if it considers that the machine is too busy and / or that these changes are not informative or redundant.
- the modes of said diffusion can be carried out in various ways and for the purpose of either various sub-entities (generally out of the expert system fuzzy, but in special cases to components internal to this system).
- a method implemented on a computer for managing a rule base 150 comprising the steps of receiving an input value 101 to be evaluated; inferentially evaluating by means of the rule base 150 an output value 102 corresponding to the input value 101; characterized in that the method comprises the steps of threading the input value into a queue 1 10; select 1 12 in the queue 1 10 a pending entry value; and determining an output value 102 by inferring by the rule base 150 the selected pending input value.
- An input value can be a numerical value (for example "38”) or a symbolic data item or a variable (for example "a”) or even a sequence of characters (for example "38 ° C").
- Rule base 150 includes rules.
- a rule - within the meaning of the invention - consists of several elements: propositions, expressions (unary, binary, ...) and conclusions. Proposals may include variables in the context of fuzzy logic.
- a rule includes several expressions (first fruits, conclusions) and one or more operators (for example standard predefined logical operators “if", “then”, etc. as well as specific operators “before”, “after”, “as long as” ). For example a rule can be "if the temperature is high then open the window”).
- An expression may include a sequence of characters (for example "if the temperature is high” or "open the window”).
- An expression can be a regular expression.
- An expression can be a regular expression.
- An expression can be a formal expression.
- a rule or an expression manipulated by the method according to the invention comprises vocabulary belonging to the natural language (ie the words or sequences of characters are words of the natural language), improving the understanding of the rules by the user and reinforcing the expressiveness of these same rules (eg their ability to "capture” the real world).
- An input value according to the invention is "threaded” ("to queue” in English) or "placed in a queue”.
- An input value is then selected from pending values.
- this selection may be due to the queue itself (for example, when the storage capacity of the queue is reached, the queue may "push" one or more input values to the queue. evaluation or to other components of the system).
- the selection is due to the planning module (ie the stages of planning the evaluations), for example according to a pull mode.
- the planning component (the planning steps) participates in the control of the system thus defined.
- the threading may be of the type "First In First Ouf.”
- the queuing may involve processing on the values. to a "policy", that is to say a set of rules.These rules are predefined.They can be of logical type (according to various modalities, for example classical logic.They are sometimes configurable (in a previous way and / or on demand ie running the process or global system.) In this case, in queuing, the waiting values can be "ordered” and / or “sorted” and / or “grouped together. “and / or” erased. "The processing criteria are variable (weights, correlations, scoring, etc.).
- the queuing step (i.e. the input queuing component) can place perceived changes to entries in a queue so that no information is lost.
- the queue (or the corresponding system component) is not necessarily of limited capacity as a buffer can be; a queue according to the invention can optionally be adapted to the management of a large amount of data.
- the input queuing component may delete items or merge them, for example if an entry changes values without the change being significant. In another example, it also allows to group by arrival time.
- an input value is selected. Subsequently the input value is "executed” (ie "the expression or rule is evaluated”).
- the evaluation component receives a group of modified entries and by inference with respect to the rule base calculates the outputs.
- the value of the speed input (“The speed is high?") Can be evaluated: a value can be determined at the output.
- a value can be determined at the output.
- an entry will be a temperature value (eg "41 ° C”). not strong below 38 ° C, and that it is strong above 40 ° C according to the base of rules (ie gradually more and more strong between 38 ° C and 40 ° C (linearly, exponentially, or according to continuous functions)
- An output value will be an expression "administering aspirin” or a value / quantification eg "X" milligrams of aspirin.
- Inference is a movement of thought that goes from principles to conclusion.
- the term refers to the actions of linking a set of propositions, resulting in a demonstration of truth, falsity or probability, in the form of a proposition called conclusion.
- the inference can be deductive or inductive or even abductive.
- the method further comprises a step of broadcasting one or more output values 102.
- the scheduling component in application of its policy, can select a particular output value.
- the broadcasting component can also, depending on its policy, over-select values before communicating them (ie select previously selected values). For example, the broadcast component may communicate or broadcast output values at regular intervals in time and / or when a particular event occurs and / or if certain conditions are satisfied, etc. Taking account of the history can for example contribute to the fusion or the assimilation of the input values; taking into account certain predefined thresholds may cause the broadcast component not to reiterate the broadcast of a result associated with an entry if a very close value (eg within the limits of predefined thresholds) has already been communicated in the past, at the very least during a predefined time window etc
- the broadcast step includes a step of communicating the output values outside the fuzzy expert system according to its policy. It can thus diffuse the values of the only outputs having changed values and / or to join there the information of interpretation (all or part of the values making it possible to trace the inference for example) and / or to communicate the values of the outputs have experienced a significant change (greater than a threshold) and / or values of outputs that have not changed in value but whose interpretation information is different.
- the component or unit or unit in charge of the "diffusion” or “communication” or “publication” itself of this output value 102 may be the component 130 for example.
- “diffusion” or “communication” or “publication” is meant a diffusion or external or external communication (the other exchanges or passages message is made internally to the system 100.
- the system 100 from the point of view of the user or from a systemic point of view appears as a "black box", which processes (according to a regulation or internal clean processing ) a number of data and publishes some output values.
- the communication methods are numerous: visual display (LCD screen, flashing light, etc.), data transmission or message passing (eg email, data channel, RSS feed), audio signal or broadcast, vibratile signal (or a combination of these methods of communication).
- the step of evaluating a selected pending entry value includes a step of scheduling in time and / or in space the evaluations of pending entry values.
- the evaluation step may in fact comprise steps consisting in allocating the calculation tasks to the different calculation means (physical and also temporal distribution).
- planning means "organizing” (i.e. scheduling in time and space). Planning in time and / or space includes, for example, ordering or organizing or orchestrating calculations (for example, “threads” or any other computing subtask corresponding to different levels of granularity) as well as 'to assign them to units of calculations, that is to say an allocation of computational tasks in space (physically between the different processors or processor cores, CPU multicore or manycore).
- Evaluation or execution can be selective.
- the method according to the invention can indeed not calculate or evaluate certain input values. In a positive way, only certain expressions or input values are evaluated.
- the method is computationally efficient.
- the method may evaluate one or more input values only when necessary.
- the threading step or unit can group entries for example according to the modification context (for example, the time at which the entries have changed) and the planning step or scheduler can retrieve a group of entries associated with this same context.
- the context may be the place where the entries have changed. Other variants use combinations of date and place etc.
- the method further comprises a step of separating the graph corresponding to the rule base 150 into several disjoint sub-graphs, a step of selecting at least one sub-graph comprising a node corresponding to a value of selected waiting entry and a step of evaluating said selected sub-graph.
- a representation of the rules in the form of a graph makes it possible to isolate the nodes (corresponding to the different rules or expressions making up these rules) from which it is advantageous to carry out the reevaluation.
- the rule base can be represented as a graph rather than as a forest (a set of trees) because in doing so it is possible to ensure the uniqueness of the nodes.
- a part of a rule (a proposition, an expression, a conclusion, an entry, an exit 7) can only be represented by a single node.
- a certain subset of the inputs changes at a time t, only the nodes that are affected can indeed be reevaluated. It is advantageous to identify different disjoint subgraphs of the graph (which represents the entire rule base).
- the graph G corresponding to the base of all the rules will be disjoint into several connected graphs Gi for which there is no common edge between these different Gi.
- the disjointed graphs do not have any nodes in common, so no common parts, so no input or output in common.
- the graph is oriented (for example, node A oriented towards node B).
- the evaluation of a given node can have a consequence on the evaluation of a node that depends on it.
- To proceed with the evaluation of the nodes of the graph said graph can be traversed.
- each node is associated with a certain evaluation "priority" relative to its depth in the graph (in one embodiment, the input values can be associated with with a priority equal to zero, other nodes may have the same priority but usually the different nodes are associated with different priorities).
- certain nodes - determined by the paths connecting them to the nodes representing an input of the system - are recalculated. Nodes are evaluated in turn only if at least one of their predecessors has changed in value. If a node does not change value, evaluation of the paths starting from itself does not take place.
- the global graph associated or representing the rule base is first disjoint into several disjointed sub-graphs, which allows processing or analysis in parallel (the sub-graphs are "independent").
- the method selects one or more subgraphs.
- a criterion of selection includes detecting one or more nodes representing, for example, the only sufficiently modified input values that have been selected by the scheduler from the queue containing the input values. Finally, the subgraph is evaluated.
- Disjoining the graph into several subgraphs therefore makes it possible to parallelize the calculations and to allocate these calculations to independent cores and / or threads.
- this parallelization reduces the possibility of errors in the calculations, improves the processing speed, optimizes the use of resources or calculation means, etc.
- the step of evaluating a subgraph comprises a step of traversing said subgraph, a step of recursively associating a priority with each node of the subgraph and a step of evaluating the nodes by priority growing.
- the priority is more generally a coefficient or a parameter or a value.
- Other embodiments of the invention involve not a priority value but a "depth". There are various ways to annotate the graph. It is possible in one embodiment to associate the inputs with a value equal to zero and to proceed incrementally as the graph is traversed (the nodes associated with the lowest priority values being then processed first). Other embodiments of the invention may use other weighting or scoring techniques.
- the method further comprises a step of comparing the character strings composing the expressions making up the rules of the rule base, a step removing redundancies between said expressions to obtain unique expressions and a step of evaluating said unique expressions.
- a step of comparing the character strings composing the expressions making up the rules of the rule base a step removing redundancies between said expressions to obtain unique expressions and a step of evaluating said unique expressions.
- An expression can be present in several rules. For example the expression “the temperature is high” can be present in a first rule “if the temperature is high then open the window” and a second rule "if the temperature is high then administer aspirin". It is possible to uniquely represent expressions that appear multiple times in the rule base.
- One way of doing things includes string comparison operations that make up expressions or rules. Redundancies can be partially or completely removed.
- a portion of a policy rule 150 is associated with a timeout parameter / value.
- no rule (or even rule rule) expires, i.e. the validity of the rule is persistent over time.
- one or more rules may expire in time (according to various settings)
- a portion or portion of a rule may expire in time ("expire”, become “obsolete” or “deciduous” or “non-operable” or “no effect”).
- a rule party can be a proposition or an expression for example.
- Expirable rule parts are therefore objects that have a limited lifetime (or whose calculated value has a limited duration in time).
- the planner (among other units in the system) may decide not to evaluate the rule portion in question.
- the planner can check whether the expired expression is used in one of the calculations as planned in time and / or space. Where appropriate, the expression is evaluated; otherwise, the expression is left unchanged with its expired value. In some cases, the expired expression is deleted.
- the expression “tomorrow H will be fine” can change value for two reasons: either the weather forecast have changed (in this case it is not really an expiration but a simple change in value depending on the entries of the system) or the value changes (for example due to the passage of the day from Wednesday midnight to Thursday). Even if the value of the weather forecast for Wednesday remains unchanged, the expression will expire (in this case, it expires every 24 hours).
- each expression may expire according to different temporal parameters.
- advanced time parameters are used (time slots but also and for example according to time derivatives, ie trend acceleration etc.).
- Expressions or parts of rules can expire in very different time scales (eg every second or millisecond for reactive systems).
- the expiry of the validity of the rule parts can be modulated in a more sophisticated manner, for example according to parameters, tests, circumstances or various conditions. For example, space parameters can be taken into account to determine the expiration or the non-expiration of a rule (eg geo location or "geofencing" conditions, etc.).
- the evaluation by inference is done according to the logic of order 0 or the logic of order 1 or according to the fuzzy logic.
- a computer program product comprising code instructions for performing one or more of the method steps, when said program is run on a computer.
- the system comprises means for receiving an input value 101 to be evaluated; inference evaluation means by means of the rule base 150 of an output value 102 corresponding to the input value 101; and is characterized in that the system comprises storage means for threading the input value 101; calculation means for selecting an input value threaded and for scheduling in time and / or in space the evaluations of one or more pending input values; calculating means for evaluating the selected waiting input value threaded into an output value 102; input / output means for broadcasting one or more output values 102;
- Storage means for example, volatile or persistent memories (e.g. flash memory, hard disk, DDRAM, SRAM, etc.).
- the computing means are processors or cores of processors.
- the input / output means (or "I / O” or “I / O” for "Input / output” in English) are means of communication of different types (radio, wireless, wired eg Ethernet) using a variety of TCP / IP protocols or others).
- the system includes an input / output component for receiving one or more input values; a donning component adapted to perform one or more of the steps among those consisting of storing, grouping, merging and deleting input values; a scheduling component adapted to perform one or more of the steps of selecting, deleting, grouping, merging, allocating input values threaded; an evaluation component adapted to evaluate one or more input values threaded and manipulated by the inference planning component using the rule base; a broadcast component adapted to select and communicate one or more input values.
- a policy associated with a component or unit corresponds to a set of rules "internal" to the component or unit.
- a policy can be static, i.e. predefined and constant over time.
- a policy can also be dynamic, i.e. variable over time.
- Speaking of a system composed of a set of components each associated with such "policies”, a "general” policy can emerge, in the sense of an emergence or an observation, resulting from the combination of the different policies set implemented effectively locally for each component.
- the set of policies of the different components can set the overall behavior of the overall system.
- different policy configuration files implemented in the different components can be made available (e.g., defined by the user, the operator of the monitoring service, via the network etc.).
- the various policies are generally expressed by rules linking descriptive attributes of the problem or the aspect of the system to be monitored (eg as regards the time of refreshing the inputs, frequency of refreshing the outputs, etc.) or the descriptive attributes of the platform on which the system runs (eg number and processor occupation, amount of available and used memory ...) and thresholds.
- a rule may be that if an entry changes value more than once in less than one second, only the last value will be selected.
- the planning component if the platform has several available cores, the execution can be parallelized.
- a "FORWARD" operator For example, a "version" of the operator - specific to the problem or aspect of the monitored system - for example a variant of the implementation of the operator can be implemented.
- a policy may be to broadcast the changes every second, for example.
- a component policy may consider that modifications relating to two different inputs occurring within a few milliseconds of intervals are actually concomitant ("substantially" concomitant) and will therefore be treated as one and the same input .
- a policy can configure or predefine data assimilations or mergers or aggregations.
- a data merge or aggregation or data assimilation policy can advantageously be used when it is known that the values of the inputs are provided by a means of communication with a certain latency (network ).
- a policy is therefore a way to configure or parameterize a component with respect to a given application.
- the scheduling component can "select” and “allocate” previously entered input values: in other words, it can “propagate” particular input values (it can in particular select these values from the knowledge of the graph of addiction).
- the broadcast component may perform the communication at a later time and thus “defer” the communication or broadcast.
- a component policy includes a set of rules in relation to tangible ways of executing those rules.
- the policy associated with a component makes it possible to parameterize and modify the behavior (“emergent") of the component to which it applies.
- a policy typically includes a set of operations selected from the operations of filtering, ordering, sorting, segmenting, splitting, merging, deleting, skipping, adding, substituting, concatenating, compressing, storing one or more input values.
- a policy can be parameterized (e.g. previously) or configurable (e.g. according to variables for example ). In other words, a policy can be configured or configurable.
- a policy may be "universal" in the sense that the different policies associated with the different components may be interchangeable. In another embodiment, the policies may not precisely be interchangeable between the different components. For example, regarding the operation of filtering, the threading unit will not apply the same type of filtering as the broadcast unit or even the planner.
- the threading component is adapted to perform one or more of the steps of storing, grouping, merging, and deleting input values or data;
- the planning component is adapted to perform one or more of the steps among those consisting of deleting, canceling, skipping, merging, allocating (to computing resources for example), associating or annotating (eg by state values) input values;
- the broadcast component is adapted to perform one or more of the steps of selecting (eg according to predefined criteria or thresholds), grouping, differing, choosing times in time, canceling input values or data;
- the evaluation component is adapted to perform one or more of the steps of restricting or extending the evaluable operators (by choosing predefined implementation variants for example, ie changing the semantics of the operators)
- FIG. 1 schematizes the general architecture of an exemplary method according to the invention.
- the architecture of a fuzzy expert system 100 is composed of a rule base 150, a set of inputs 101 (or “I” for “input”) and a set of outputs 102 (or “O” “for” Output ").
- This architecture is that of a "classic” fuzzy expert system.
- the component 1 10 is a queuing component ("threading” or "Q” for "queuing") of the inputs 101.
- this component captures these changes.
- this component may apply different queuing policies. For example, certain rules - or policies - for filtering may take into account the capacity of the machine (eg the host machine or the machine being monitored) and / or the nature of the changes themselves (for example, if the value of an output has not changed by less than 1%, no need to consider its new value), or else group the changes (not exhaustive).
- the component 130 is a diffusion component of the outputs. Outputs 102 change over time. This component according to the invention advantageously makes it possible to "broadcast” (or “notify” or “communicate” or “transmit") the new output values 102. In some embodiments, explanations on the change of the output values may be also communicated.
- the component 130 like the component 1 10 can apply different predefined policies. For example, the component 1 10 can inform value changes of the outputs 102 at a predefined time interval (for example every N seconds) and / or inform as soon as an activation value has changed, according to thresholds or ranges. thresholds (non-exhaustive).
- the component 120 is a planning component of the calculations. This component 120 is informed or notified in step 1 12 of the arrival of one or more changes by the threading unit component 1 10. The component 120 can then trigger or actuate or solicit or control the component component 130 of broadcast outputs. Depending on the current state of the machine or all the machines, the component 120 is able to affect the calculations to a processor or a heart on a particular machine, to prioritize a calculation or a sub-task calculation (eg thread), etc.
- the set of entries 101 having changed are queued by the threading unit 1 10 (possibly treated according to its policy).
- the threading unit then notifies in step 1 1 2 the planning unit 120 that new entries are available.
- This planning unit 1 then applies its policy and uses the evaluation unit 140 in step 1 22.
- the evaluation unit 140 at the end of the calculation, informs or notifies back (step 1 23) the planning unit 120 that the evaluation is completed.
- the component 1 20 informs in step 1 21 the broadcast unit 130 that it can broadcast the changes of the outputs (if any).
- the component 120 also executes its own policy, if any.
- Figure 2 shows an example of a rule in the form of a graph.
- the rule base of the expert system can be optimized, in particular the representation of this rule base.
- the evaluation unit can also be optimized.
- the evaluation 140 may be selective, that is to say, evaluate the only expressions impacted by the change found for certain inputs 1 01.
- the method according to the invention aims at optimizing the calculations or arithmetic operations to the only necessary operations or calculations.
- the method avoids the execution of a portion of code whose results are not (really or strictly) necessary, (eg it is useless to calculate a result that is not used).
- the method according to the invention is advantageously economical in calculation, improving the associated response times.
- the method according to the invention for calculating an expression or rule of the expert system only when necessary it is advantageous to represent the dependence between all the elements that make up the rule or the expression. In this way, optimizations can be conducted (redundancy deletions, calculations restricted to the only necessary calculations, etc.).
- a rule - within the meaning of the invention - consists of several elements: propositions, expressions (unary, binary, ...) and conclusions.
- Proposals can include inputs (eg linguistic variables in the context of fuzzy logic).
- the rule base can be represented using a graph in which each node represents an entity (eg variable, expression, conclusion, rule, etc.).
- An arc between two nodes A and B, denoted by A ⁇ B, indicate that the evaluation of B depends on the evaluation of A.
- a changes value the value of B must be recalculated.
- a rule is represented by a tree and thus a rule base corresponds to a tree forest.
- a tree is not sufficient because it is possible that rules share entities (for example the same proposal).
- the graph representation advantageously makes it possible to obtain the uniqueness of the representation of each expression or entity. This uniqueness avoids the redundancy of calculations. By means of a graphical representation, it is sufficient to check in all the nodes of the graph if none of them carries the same information.
- This representation of the rule base as a graph combined with rules expressed in natural language is particularly advantageous for the manipulation of a fuzzy expert system. Indeed, for the same physical variable, depending on the membership function, the same fuzzy value can be associated with different values after "fuzzyfication", ie application of fuzzy logic techniques. For example, if the variable under consideration is the temperature, if the membership function is a trapezium whose small base is between the values 15 ° and 25 ° and at 1 on the ordinates, then all the values of temperature between 15 ° and 25 °. ° and 25 ° are worth 1 after fuzzyfication. In this case, there will be no calculation beyond the fuzzyfication of the temperature. This aspect makes the implementation of the method practical the sensors provide values that oscillate slightly or in a limited way.
- Figure 3 illustrates an example of a graph with nodes having priorities.
- the representation of the rule base by a graph may not be sufficient.
- the parent nodes will be evaluated until the evaluation of the expression 220 "the temperature is warm and the air n" is evaluated. is not wet.
- the path between the "humidity" input 202 and this expression 220 is longer than that from the "temperature” input 201.
- the expression 220 "the temperature is hot and the air is not humid” will be evaluated twice: first time as dependent on the expression 215 "the temperature is hot” and a second time as dependent on the expression expression 213 "the air is not wet”.
- a priority queue is created which first processes the nodes whose priority is the lowest and which does not accept that the same object is present twice in the queue.
- a zero priority ie equal to 0 these entries must be evaluated first in all cases
- the expression 201 "temperature sensor” and the expression 202 “humidity sensor” are placed in the queue.
- both expressions being equal priority
- the expression 201 "temperature sensor” will for example be evaluated and the expression 215 "the temperature is hot” will be added to the queue.
- the expression 202 “humidity sensor” will be evaluated and the expression 213 "the air is wet” will be added to the queue.
- the expression “hot temperature” is then evaluated and the expression “the temperature is hot and the air is not humid” is placed in the queue with priority.
- the expression “wet air” has priority (its weight or priority coefficient 2131 is equal to 1 while the other expression 220 is associated with a priority 2201 equal to 3), it is evaluated and the expression 214 "the air is not wet” is added to the queue. Since the 2141 priority of the expression 214 is 2, this expression 214 will be evaluated first and the expression 220 "the temperature is hot and the air is not wet” should be added. However, this expression 220 "the temperature is hot and the air is not wet” is already present in the priority queue so it is not added. Then, the expression 220 is in turn evaluated. In this way, it is avoided to carry out a double evaluation of the expression 220 "the temperature is hot and the air is not humid".
- the unit 1 10 (signal notification of changes in the value of the inputs) watches for each of the entries of the system changes in value. In this case, the changes are put in a queue in a certain order (eg according to the policy of this unit).
- the unit 1 10 for queuing the notifications of the input changes communicates or notifies in step 1 12 the values of the new entries to the planning unit 120.
- a policy may express the need to merge changes in values that have occurred so consecutive.
- a policy may also consider that modifications of two different inputs occurring within a few milliseconds of intervals are actually concomitant ("substantially" concomitant).
- a policy can configure or predefine data assimilations or mergers or aggregations. This last policy can be used when it is known that the values of the inputs are provided by a means of communication with a certain latency (network ).
- the scheduling unit 120 that receives a communication or notification from the unit 110 responds according to its own policy.
- a simple policy may be to immediately trigger the evaluation of the neighboring nodes of each of the nodes representing the entries that have been changed. It is also possible to implement having one or more more sophisticated policies that may consist of, for example, managing parallel computing or calculation distribution.
- the calculations can indeed be spread over several cores and / or multiple multi-core machines. More precisely, either the different times are processed on different cores or machines, or for a given time t, the entities to be evaluated are separated (if this is possible) in order to be evaluated independently.
- this separation can be implemented as follows: in the graph G which represents the rule base, it is selected a graph G 'included in G, so that there is a path starting from the entries that have just been modified. Then it is searched in G ', if they exist, Gi connected graphs for which there is no common edge between these different Gi.
- Each connected graph Gi can then be evaluated in parallel (ie be the subject of parallel calculations).
- other policies may be implemented to take into account, for example, the capacity and the occupancy rate of the machines used.
- time management rules are added and combined with rule base rules.
- a system for which one or more expiration values are associated with the expressions or rules that are manipulated In an expert system for continuously processing data, it is for example advantageous to express an expression in the form: "if an event occurred in the last 10 minutes then ". Assuming that such an event occurred at t0, at t0 + 5 minutes, the proposition is true. On the other hand, it will no longer be true at t0 + 15 minutes because the time window of 10 minutes will have expired. An expression such as "an event has occurred in the last 10 minutes” can therefore evolve, ie change expression or value, without an entry changing its value.
- certain expressions may be "expirable", that is to say that their value has a limited duration and / or that these expressions are aware that they must be recalculated after a certain time (which can be parameterized or parameterizable eg variable function or configured / configurable).
- these expressions are communicated by the planning unit 120 to the evaluation unit 140.
- the scheduling unit 120 decides in particular when the expression should to be reassessed.
- the present invention can be implemented from hardware and / or software elements. It may be available as a computer program product on a computer readable medium.
- the support can be electronic, magnetic, optical or electromagnetic.
- the device can use one or more dedicated electronic circuits or a general purpose circuit.
- the technique of the invention can be realized on a reprogrammable calculation machine (a processor or a microcontroller for example) executing a program comprising a sequence of instructions, or on a dedicated calculation machine (for example a set of logic gates). as an FPGA or an ASIC, or any other hardware module).
- the device comprises a computer readable storage medium (RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, DVD or other optical disk carrier, magnetic cassette, magnetic tape , magnetic storage disk or other storage device, or other non-transitory computer readable storage medium) encoded with a computer program (i.e., multiple executable instructions) which, when executed on a processor or several processors performs the functions of the previously described embodiments.
- a computer program i.e., multiple executable instructions
- a device may comprise a communication bus to which a central processing unit or microprocessor (CPU, acronym for "Central Processing Unit”), which processor can be "multi-core” or “many-core”; a read-only memory (ROM, acronym for “Read Only Memory” in English) that may include the programs necessary for the implementation of the invention; a random access memory or RAM (Random Access Memory) with registers adapted to record variables and parameters created and modified during the execution of the aforementioned programs; and a communication interface or I / O (I / O acronym for "Input / ouput” in English) adapted to transmit and receive data.
- CPU central processing unit
- ROM Read Only Memory
- RAM Random Access Memory
- the corresponding program (that is to say the sequence of instructions) can be stored in or on a removable storage medium (for example an SD card , a DVD or Bluray, a mass storage means such as a hard disk eg SSD) or non-removable, volatile or non-volatile, this storage medium is readable partially or completely by a computer or a processor.
- the computer readable medium may be transportable or communicable or mobile or transmissible (i.e. by a 2G, 3G, 4G, Wifi, BLE, fiber optic or other telecommunication network).
- the reference to a computer program that, when executed, performs any of the functions described above, is not limited to an application program running on a single host computer.
- the terms computer program and software are used herein in a general sense to refer to any type of computer code (for example, application software, firmware, microcode, or any other form of computer code).
- computer instruction that can be used to program one or more processors to implement aspects of the techniques described herein.
- the means or computing resources can be distributed, eg with Cloud Computing, or with peer-to-peer technologies.
- the software code may be executed on any suitable processor (for example, a microprocessor) or a processor core or set of processors, whether provided in a single computing device or distributed among a plurality of computing devices (eg example as possibly accessible in the environment of the device).
- the executable code of each program enabling the programmable device to implement the processes according to the invention can be stored, for example, in the hard disk or in read-only memory.
- the program or programs may be loaded into one of the storage means of the device before being executed.
- the central unit can control and direct the execution of instructions or portions of software code of the program or programs according to the invention, instructions that are stored in the hard disk or in the ROM or in the other storage elements mentioned above.
- the sensors may comprise one or more of the sensors or sensors selected from pressure, flow, temperature, oxygen, velocity, motion, position, location, radioactivity, energy, chemical products or components (eg nitrogen monoxide, ozone, smoke, pollutants, etc.) or biological products or components (eg viruses, contaminants, pollen, etc.).
- the sensors can include one or more MEMS, magnetometers, hygrometers, gyroscopes, accelerometers, biosensors, radars, sonars, cameras, 3D scanners etc.
- the actuators or actuators may be pneumatic, hydraulic, electrical, mechanical, magnetic, pelletier, piezoelectric or electroluminescent, etc. They may for example comprise one or more cylinders, motors, heating resistors, lamps, acoustic enclosures, electromagnets, or even thermo coolers, ionizers, valves, valves, reels, etc.
- the sensors and actuators can be those used in the context of home automation applications.
- the actuators may include switches, keypads, dimmers, temperature sensors, flow sensors, occupancy sensors, humidity sensors, brightness sensors, smoke detectors, and the like.
- the invention will advantageously find application for the management of lighting systems, heating, air conditioning, opening / closing flaps, garden watering, video surveillance, opening / closing of doors, ventilation, lighting, access or any other system that can be controlled by a home automation system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Automation & Control Theory (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Biophysics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1460382A FR3028076B1 (en) | 2014-10-29 | 2014-10-29 | SOFTWARE ARCHITECTURE FOR EXPERT SYSTEM |
PCT/EP2015/072603 WO2016066364A1 (en) | 2014-10-29 | 2015-09-30 | Software architecture for expert system |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3213267A1 true EP3213267A1 (en) | 2017-09-06 |
Family
ID=52692736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP15771155.7A Withdrawn EP3213267A1 (en) | 2014-10-29 | 2015-09-30 | Software architecture for expert system |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170300804A1 (en) |
EP (1) | EP3213267A1 (en) |
FR (1) | FR3028076B1 (en) |
WO (1) | WO2016066364A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10013513B2 (en) | 2014-10-31 | 2018-07-03 | International Business Machines Corporation | Accelerating particle-swarm algorithms |
CN108984843B (en) * | 2018-06-20 | 2021-02-09 | 北京大学 | Interval information analysis method based on guard calculation |
EP3843016A1 (en) | 2019-12-23 | 2021-06-30 | Commissariat à l'Energie Atomique et aux Energies Alternatives | Method for screening data implemented by computer |
DE102020206325A1 (en) * | 2020-05-20 | 2021-11-25 | Robert Bosch Gesellschaft mit beschränkter Haftung | Computer-implemented method for testing a technical system |
CN114004360B (en) * | 2021-12-30 | 2022-04-01 | 北京壬工智能科技有限公司 | Intelligent equipment diagnosis equipment and method based on fuzzy expert model |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778402A (en) * | 1995-06-07 | 1998-07-07 | Microsoft Corporation | Method and system for auto-formatting a document using an event-based rule engine to format a document as the user types |
WO2001030612A1 (en) * | 1999-10-27 | 2001-05-03 | Ims Inc. | Air bag system controlled by fuzzy logic |
US8176527B1 (en) * | 2002-12-02 | 2012-05-08 | Hewlett-Packard Development Company, L. P. | Correlation engine with support for time-based rules |
US8214316B2 (en) | 2009-03-23 | 2012-07-03 | Microsoft Corporation | Notification-based forward chaining |
US9984327B2 (en) * | 2010-06-17 | 2018-05-29 | Palo Alto Research Center Incorporated | System and method for parallel graph searching utilizing parallel edge partitioning |
-
2014
- 2014-10-29 FR FR1460382A patent/FR3028076B1/en active Active
-
2015
- 2015-09-30 WO PCT/EP2015/072603 patent/WO2016066364A1/en active Application Filing
- 2015-09-30 US US15/516,859 patent/US20170300804A1/en not_active Abandoned
- 2015-09-30 EP EP15771155.7A patent/EP3213267A1/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
ER NAVJOT KAUR ET AL: "Review of Expert Systems based on Fuzzy logic", INTERNATIONAL JOURNAL OF ADVANCED RESEARCH IN COMPUTER AND COMMUNICATION ENGINEERING, 31 March 2013 (2013-03-31), pages 2319 - 5940, XP055696806, Retrieved from the Internet <URL:https://www.ijarcce.com/upload/2013/march/4-anand%20nayyar%20-%20Review%20of%20Expert-c.pdf> [retrieved on 20200519] * |
Also Published As
Publication number | Publication date |
---|---|
FR3028076A1 (en) | 2016-05-06 |
US20170300804A1 (en) | 2017-10-19 |
WO2016066364A1 (en) | 2016-05-06 |
FR3028076B1 (en) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11263241B2 (en) | Systems and methods for predicting actionable tasks using contextual models | |
EP3213267A1 (en) | Software architecture for expert system | |
US11157844B2 (en) | Monitoring source code development processes for automatic task scheduling | |
JP6523354B2 (en) | State machine builder with improved interface and handling of state independent events | |
KR102454201B1 (en) | Event stream transformations | |
US20210125083A1 (en) | Edge devices, systems and methods for processing extreme data | |
US11595415B2 (en) | Root cause analysis in multivariate unsupervised anomaly detection | |
EP2364467B1 (en) | Method for recognising sequential patterns for a method for fault message processing | |
US20210158147A1 (en) | Training approach determination for large deep learning models | |
US20190260831A1 (en) | Distributed integrated fabric | |
US11595269B1 (en) | Identifying upgrades to an edge network by artificial intelligence | |
WO2012007489A1 (en) | Processor for situational analysis | |
CA2908951A1 (en) | Task time allocation method allowing deterministic error recovery in real time | |
US12039287B2 (en) | Identifying regulator and driver signals in data systems | |
US20220091897A1 (en) | Rule-based assignment of event-driven application | |
US20210133209A1 (en) | Blockchain-based central repository and analytical platform for communications in the internet of things | |
US20220051112A1 (en) | Automated model pipeline generation with entity monitoring, interaction, and intervention | |
US11556650B2 (en) | Methods and systems for preventing utilization of problematic software | |
Kim et al. | Goal-driven scheduling model in edge computing for smart city applications | |
US11889149B2 (en) | Intelligent mitigation of concentration conflicts | |
US20200311900A1 (en) | Automated trend detection by self-learning models through image generation and recognition | |
US20170315822A1 (en) | Identifying a common action flow | |
EP3881515B1 (en) | System for the formal supervision of communications | |
US12086817B2 (en) | Personalized alert generation based on information dissemination | |
WO2018206871A1 (en) | Method, implemented by computer, for searching for rules of association in a database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20170404 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20200602 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20230825 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20240105 |