WO2005004003A1 - Method and device for analysing a data stream - Google Patents

Method and device for analysing a data stream Download PDF

Info

Publication number
WO2005004003A1
WO2005004003A1 PCT/FR2004/050296 FR2004050296W WO2005004003A1 WO 2005004003 A1 WO2005004003 A1 WO 2005004003A1 FR 2004050296 W FR2004050296 W FR 2004050296W WO 2005004003 A1 WO2005004003 A1 WO 2005004003A1
Authority
WO
WIPO (PCT)
Prior art keywords
pattern
patterns
detected
hereinafter called
algorithm
Prior art date
Application number
PCT/FR2004/050296
Other languages
French (fr)
Inventor
Aurélien LETEINTURIER
Jean-Luc Stehle
Original Assignee
Everbee Networks
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from FR0307876A external-priority patent/FR2856818B1/en
Application filed by Everbee Networks filed Critical Everbee Networks
Priority to EP04767858A priority Critical patent/EP1639506A1/en
Publication of WO2005004003A1 publication Critical patent/WO2005004003A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Definitions

  • the present invention relates to a method and a system intended for analyzing a data flow passing over a network, with a view, in particular, to collecting information necessary for filtering transmissions so as to improve network security.
  • Today's communication networks make a very large number of information and / or applications available to an ever-increasing number of users. This wealth of possibilities nevertheless has some drawbacks.
  • the global Internet network indeed includes as many pornographic pages as documents dealing with academic subjects, if not more. Unwanted mail invades mailboxes, by advertising messages, often of a pornographic nature, which represents a considerable discomfort and loss of time for users, not to mention the cost, in terms of IT resources, of these mails unwanted.
  • the content of pages available on the global network, and more generally of applications accessible by network (reservation services, banking operations,) evolves rapidly and network access providers often store pages or applications with various content on the same machine. . It is therefore impossible to give rules allowing a user to filter information by using as sole data the address of origin of this information. With regard to electronic mail, such filtering poses an insoluble problem.
  • “on the fly” means that the symbols constituting the data stream • are taken into account sequentially as they are encountered, none of them being stored in memory.
  • this analysis uses only limited computer resources, both in memory and in computing power and can therefore be implemented in particular on a small device placed in break between the network and a particular workstation or more generally between the network and a computer system connected to this network.
  • This device can be an independent unit and it can also be integrated into a modem, a network card, a router or any other communication unit. Network security can thus be ensured within the network itself, and not on the user's workstation.
  • the invention which is the subject of this patent therefore prevents a significant part of the computer resources of the workstation from being used by security applications. On the other hand, it makes it possible to filter unwanted content before it enters the user's workstation. Among the many applications of the invention, it should be noted that it thus makes it possible to produce an antivirus which detects harmful codes, even before they have reached the computer, and which can thus block their passage, as opposed to antiviruses classics that can only detect viruses once they have entered the workplace.
  • the invention also makes it possible to carry out parental control functions, filtering texts which are not desired to be read by children. Likewise, it could allow, within a company, to filter network accesses and to avoid that employees are tempted to pass too much time on websites unrelated to their missions.
  • the data flow passing over the network is composed of symbols (for example bytes), and we will call pattern a sequence of symbols whose presence must be sought within the flow.
  • symbols for example bytes
  • patterns a sequence of symbols whose presence must be sought within the flow.
  • the first entity is a dictionary, called the pattern dictionary, containing the patterns to be searched for, and providing for some of them, additional information useful for determining the protocol and / or classifying the flow.
  • the pattern dictionary can be made up a priori, for example using a corpus of texts whose classification is known, and • it can be enriched by self-learning as the invention is used.
  • the pattern dictionary can relate to one or more themes.
  • the second entity is an algorithm making it possible to detect on the fly if there are patterns in the pattern dictionary in the data stream. For each symbol constituting the data flow, this algorithm implements a small software unit which we will call, thereafter, a first syntactic analysis process, and which is responsible for detect whether or not there is a pattern starting at this symbol and equal to a pattern in the dictionary.
  • the pattern dictionary is stored computer in a specific format, in the form of a tree structure which makes it possible to optimize both the memory space occupied and the computer resources necessary for syntactic and semantic algorithms.
  • the third entity is a semantic analysis realizing the classification of all or part of the data flow by a semantic algorithm. It uses evaluation variables linked to the patterns detected, as well as their frequencies of appearance and / or the mutual positions of the patterns detected. These evaluation variables then make it possible to determine the probabilities of belonging of the data flow to a given theme. Learning mechanisms make it possible to improve the relevance of the results of the invention, this learning being done either in a supervised manner, thanks to the provision of data streams whose classification is known in advance, or in an unsupervised manner , during the operational operation of the invention.
  • the fourth entity performs the protocol search by determining whether the patterns detected by the syntactic algorithm are arranged with respect to each other in accordance with the syntax of one of the protocols sought (IP, FTP, application protocol ...) c ' that is, if they check the grammar of this protocol. From a more abstract point of view, it is a question of recognizing whether the stream analyzed (or a part of it) conforms to one grammar or to several grammars among a family of grammars to be analyzed. This grammatical analysis collects certain semantic information in passing. Classically, we use a compiler to decide if a text conforms to a given grammar (cf. for example A. Aho, R. Sethi, J.
  • the use of a battery-powered automaton even for a rational grammar can lead to significant savings in computer resources (memory, computing power / processing time) compared to the use of a finite automaton.
  • One of the original ideas of the present invention lies in the way in which these theoretical concepts are implemented, allowing simultaneous and on-the-fly taking into account of several grammars while minimizing computer resources (computation time, memory space) implemented. More specifically, the invention relates to a method of on-the-fly analysis of a data stream which is presented as a series of symbols taken from a set of symbols called hereinafter the alphabet of symbols.
  • the method which is the subject of the present invention implements a dictionary hereinafter called the pattern dictionary, composed of certain particular sequences of symbols hereinafter called patterns.
  • the pattern dictionary is represented in the form of a tree structure made up of branches and nodes. Each branch of the tree structure starts from a node of the tree structure, hereinafter called the start node of the branch, and arrives at another node of the tree structure below called the end node of the branch. A node in the tree from which no branch of the tree leaves is hereinafter called a terminal node.
  • the tree structure is such that there is one and only one node to which no branch arrives, this node to which no branch arrives is hereinafter called the root.
  • Each branch of the tree structure is assigned a symbol from the alphabet of symbols, hereinafter called the branch label.
  • Each node of the tree is associated with a series of symbols hereinafter called the prefix of this node, composed of the labels of the branches connecting the root to this node, these labels being taken in the order in which they are encountered.
  • the prefix of the root is the sequence containing no elements.
  • Each node is also associated with a family of patterns formed by the patterns which are contained in the dictionary of patterns and which begin with the prefix of this node. The number of patterns contained in this family is hereinafter called the richness of the knot. No tree node has a wealth equal to zero.
  • Every terminal node of the tree has a prefix equal to a pattern contained in the dictionary of patterns and for any pattern contained in the dictionary of patterns, there is one and only one node of the tree whose prefix is equal. on this ground.
  • Each node in the tree is associated with a number called the address of that node so that the addresses of two different nodes are different numbers.
  • the method comprises a first preliminary step of constituting the dictionary of patterns.
  • the method comprises a first phase consisting in detecting the presence or not, within the data stream, of patterns belonging to the dictionary of patterns. This first phase operates on the fly and successively takes into account the symbols constituting the data flow.
  • the first phase implements the first syntactic analysis processes operating in parallel, with each of them being associated - on the one hand, one of the symbols constituting the data flow, this symbol being hereinafter called the start symbol of this first parsing process and never being modified during the execution of the first parsing process, - on the other hand a number equal to the address of a node in the tree structure, this number being hereinafter called the position of this first parsing process and being intended to be modified during the execution of the first parsing process.
  • Each of the first syntactic analysis processes begins to run as soon as its start symbol is taken into account and is responsible for detecting, for all successive values of the integer N, if the sequence of N symbols consecutive, extracted from the data stream, this extraction starting at this start symbol, is equal to one of the patterns from the dictionary of patterns.
  • its position is equal to the address of the root of the tree.
  • the execution of a first syntactic analysis process includes, when taking into account each of the symbols constituting the data flow, the following steps: - the step of identifying whether there is, in the tree structure, one or more branch (es) starting from the node whose address is equal to the position of this first syntactic analysis process and whose label is equal to the symbol taken into account, this or these branch (es) being above after called (s) the active branch (es) for this first parsing process, - the step - if there is no active branch for this first parsing process, d 'stop the execution of this first parsing process, - if there is only one active branch for this first parsing process, give as value the position of the first parsing process the address of the arrival node of this active branch, - if there are several active branches for this first process of an syntactic analysis, to duplicate this first syntactic analysis process as many times as necessary, so as to associate with each of these active branches, a copy of this first syn
  • the first phase further comprises, after taking into account each of the symbols constituting the data stream, a first complementary step consisting in providing a list of all the patterns detected, when this symbol is taken into account, by the at least one of the first parsing processors running.
  • This list is hereinafter called the list of detected patterns and therefore includes all the patterns present in the stream to be analyzed, which end at the symbol taken into account and which are equal to a pattern from the dictionary of patterns.
  • the pattern dictionary associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information.
  • the first phase is then such that if the dictionary of patterns associates with a pattern coefficients of patterns and / or information of patterns, these coefficients of patterns and / or this information of patterns are provided by the first phase at the same time as the presence of this pattern is detected.
  • the method also uses one or more variables hereinafter called evaluation variables, and it further comprises a preliminary step consisting in initializing these evaluation variables to values fixed in advance. and hereinafter called initial values of the evaluation variables.
  • the method then further comprises a second phase, implementing an analysis algorithm, which takes into account one or more arguments and which has the effect, depending on the value of these arguments, of modifying the value of all or part of the variables devaluation.
  • the method is then such that the first phase and the second phase are executed on the fly, in a nested fashion, the analysis algorithm being executed as soon as the first phase has provided a detected pattern, this detected pattern then being one of the arguments of the analysis algorithm.
  • the pattern dictionary associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information, the first phase then being such that if the pattern dictionary associates with a pattern pattern coefficients and / or pattern information, these pattern coefficients and / or this pattern information are provided by the first phase at the same time as the presence of this is detected pattern, these pattern coefficients and / or this pattern information then being arguments of the analysis algorithm.
  • the analysis algorithm is also executed as soon as the first phase has completed taking into account a symbol of the data stream, this symbol taken into account then being an argument of the analysis algorithm.
  • the first preliminary step further comprises a sub-step consisting in marking all or part of the patterns as being priority patterns, and in associating with each of these priority patterns at least one action to be executed.
  • the first complementary step then further comprises the sub-step of launching the execution of the action (s) associated with all of the priority patterns contained in the list of detected patterns.
  • the implementation of the analysis algorithm is inhibited when one of the detected patterns is a priority pattern with which an action is associated having the effect of inhibiting this analysis algorithm.
  • the method comprises the prior step of modifying the dictionary of patterns, the result of this modification being hereinafter called the modified pattern dictionary, and of modifying the tree structure, by adding new branches. and new nodes, and / or by removal of branches and nodes.
  • the result of this modification is hereinafter called the modified tree structure.
  • the modified tree structure is such that any terminal node in this modified tree structure has a prefix equal to a pattern contained in the modified pattern dictionary and that, for any pattern contained in the modified pattern dictionary, there is one and only one node. of the modified tree structure whose prefix is equal to this pattern.
  • the analysis algorithm of the second phase consists in determining the probability or the probabilities that all or part of the data constituting the data flow belongs to one or more particular thematic (s) ), these probabilities being hereinafter called membership probabilities and forming part of the evaluation variables.
  • the membership probabilities are calculated using a function, hereinafter called the evaluation function, which takes into account the patterns detected during the first phase.
  • the analysis algorithm of the second phase modifies the values of all or part of the evaluation variables, in particular the values of the probabilities of belonging, by applying, for each symbol taken into account, the following steps: - the step , if, at the end of the first phase, a pattern, belonging to the dictionary of patterns and ending with the symbol taken into account, has been detected in the data flow, modify all or part of the evaluation variables by setting implements an algorithm hereafter called re-evaluation algorithm, this re-evaluation algorithm taking into account the pattern which has been detected, the method which is the subject of the present invention being such that, if the dictionary of patterns associates with the pattern having been detected coefficients of patterns and / or pattern information, the reassessment algorithm also takes into account these pattern coefficients and / or this pattern information, - the step, if, at the end of the first phase, no pattern, belonging to the dictionary of patterns and ending with the symbol taken into account, has been detected in the data flow, to modify all or part of the variables evaluation by implementing an algorithm hereinafter
  • the evaluation function then consists in calculating these probabilities of belonging, for each particular thematic, by taking into account the successive values of the local probabilities, provided by the algorithm of final calculation of the probability, after taking into account all the symbols constituting the data flow.
  • the re-evaluation algorithm is reduced to a first family of functions taking as variables all or part of the evaluation variables and such that if the dictionary of patterns associates with the pattern which has been detected coefficients of patterns and / or pattern information, this first family of functions also takes as variables these pattern coefficients and / or this pattern information.
  • This first family of functions then provides as a result the new values of all or part of the evaluation variables.
  • the function (s) constituting this first family of functions are functions dependent on a family of parameters hereinafter called parameters of the re-evaluation algorithm.
  • the relaxation algorithm then boils down to a second family of functions taking as variables all or part of the evaluation variables and providing as a result the new values of all or part of these evaluation variables.
  • the function (s) constituting this second family of functions are functions dependent on a family of parameters hereinafter called parameters of the relaxation algorithm.
  • the algorithm for the final calculation of probabilities then boils down to a third family of functions taking as variables the evaluation variables and providing as a result the local probabilities.
  • the function (s) constituting this third family of functions are functions dependent on a family of parameters hereinafter called parameters of the final probability calculation algorithm.
  • the method further comprises the additional preliminary step of associating with each symbol of the alphabet of symbols, a weighting coefficient hereinafter called symbol weighting coefficient.
  • symbol weighting coefficient hereinafter called symbol weighting coefficient.
  • the second family of functions and / or the third family of functions then also take as an additional variable the symbol weighting coefficient associated with the symbol taken into account and the calibration parameters further comprising these symbol weighting coefficients.
  • the method comprising an additional step, hereinafter called recalibration, consisting, after the analysis of the data flow and depending on the results provided by the evaluation function, to execute one or more of the following sub-steps: - the sub-step of adding one or more patterns to the pattern dictionary, - the sub-step of removing one or more patterns from the pattern dictionary, - the sub-step of varying all or part of the calibration parameters.
  • recalibration consisting, after the analysis of the data flow and depending on the results provided by the evaluation function, to execute one or more of the following sub-steps: - the sub-step of adding one or more patterns to the pattern dictionary, - the sub-step of removing one or more patterns from the pattern dictionary, - the sub-step of varying all or part of the calibration parameters.
  • the method comprising a preliminary phase hereinafter called the learning phase, consisting in repeatedly repeating the following steps: the step of operating the first phase and the second phase on flow of data for which the probabilities of belonging to particular themes are known in advance, - the step of performing the recalibration, so that the probabilities of belonging determined during the second phase of the process are the closest possible values set in advance.
  • the dictionary of patterns and the calibration parameters can be modified using information from an external source.
  • the patterns contained in the pattern dictionary are classified into three categories of patterns hereinafter called category of operational patterns, category of candidate patterns and category of learning patterns.
  • the pattern dictionary is then such that it associates pattern coefficients at least with each of the candidate patterns and with each of the learning patterns.
  • the method is such that the possible presence in the data stream of patterns belonging to the category of candidate patterns is detected during the first phase but is not taken into account during the second phase. It also includes a self-learning phase taking place in parallel of the first phase and the second phase. This self-learning phase itself comprising two parts called below selection of apprentices and training of apprentices. The selection of apprentices consists, when the presence of a pattern belonging to the category of candi ats patterns was detected during the first phase, to modify all or part of the pattern coefficients of the pattern thus detected, this modification taking into account all or part of the evaluation variables.
  • the training of apprentices consists, when the presence of a pattern belonging to the category of patterns in learning is detected during the first phase, to give new values to the pattern coefficients of the pattern thus detected, these new values being determined at from the evaluation variables and the prior values of the pattern coefficients of the pattern thus detected, the training of the apprentices being able, moreover, depending on the evolution of the values of the pattern coefficients of the pattern thus detected, to modify the category of this pattern .
  • the method implements a family of grammars, composed of grammars, each of these grammars comprising one or more rules capable of being verified or not by a series of patterns, a series of patterns verifying all the rules of a grammar belonging to this family of grammars being hereinafter grammatically correct for this grammar.
  • the objective of the second phase analysis algorithm is then to perform a grammatical analysis of the sequences of patterns formed from all or part of the patterns detected by the first syntactic analysis processes implemented during the first phase, such a series of patterns being hereinafter called the detected series. This grammatical analysis checks, for each of the detected sequences and for each of the grammars belonging to the grammar family, whether the detected sequence is grammatically correct for this grammar.
  • the family of grammars being represented by an automaton.
  • This automaton is made up of states and transitions.
  • Each state of the PLC is associated with a number called the address of this state, so that the addresses of two different states are different numbers.
  • At least one of the states of the PLC is called the final state of this PLC.
  • Each grammar taken from the grammar family is associated with a state of the automaton, called the initial state of the automaton for this grammar, and with each transition of the automaton there are associated two states of the automaton, hereinafter called transition start state and transition finish state.
  • a grammar taken from the grammar family is associated with each of the final states of the automaton, and each transition of the automaton is assigned a set composed of one or more sequences of symbols, hereinafter called the label. total of this transition, one of these symbol sequences of the total label being a pattern belonging to the dictionary of patterns and being hereinafter called the lexical label of the transition.
  • the method comprises a second preliminary step consisting in building this automaton.
  • the second phase implements, second grammatical analysis processes operating in parallel, with each of them being associated: - a pattern detected during the first phase, hereinafter called the reason for starting this second process of grammatical analysis and never being modified during the execution of the second grammatical analysis process, a grammar belonging to the grammar family, a number equal to the address of a state of the automaton, this number forming part of the evaluation variables and being hereinafter called the position of the second grammatical analysis process and being intended to be modified during the execution of this second grammatical analysis process.
  • the second grammatical analysis process begins to run as soon as the start pattern is detected and is responsible for analyzing whether a sequence of detected patterns starting at this start pattern is grammatically correct for the grammar associated with this second process.
  • the execution of the second grammatical analysis process includes, when taking into account each of the detected patterns: - a) a filtering step consisting in deciding whether one or more of the transitions of the automaton will be used when taking into account account of the detected pattern, this filtering step successively considering all the transitions whose starting state is the state whose address is equal to the position of the second grammatical analysis process, and applying to each of the transitions thus considered a decision algorithm which aims to decide whether this transition will be used when taking into account the detected pattern, such a transition being then subsequently called an active transition for this detected pattern, this decision algorithm taking as arguments all or part of the total transition label as well as the detected pattern taken into account, - b) a consistent execution step, - if there is no tr active ansition for
  • the second phase then further comprises, after taking into account each of the detected patterns, a second complementary step consisting in providing a list of all the final states whose address is equal to the position of at least one of the second processors grammar analysis in progress, this list being hereinafter called list of detected final states. It results from the combination of the technical features of the invention that each final state of the list of detected final states corresponds to a detected sequence, grammatically correct for the grammar associated with this final state, and ending with the detected pattern taken into account.
  • each of the second grammatical analysis processes is associated a series of symbols called the stack of this second grammatical analysis process; this stack being part of the evaluation variables, having an initial value defined in advance at the time when the second grammar analysis process begins to run, and being intended to be modified during the execution of the second process grammatical analysis.
  • the decision algorithm implemented during the filtering step and applied to a transition, then also takes as argument the value of the stack, and, when the transition is an active transition, it also determines a sequence of symbols called new stack this active transition.
  • the execution stage also performs - if there is only one active transition for the second grammatical analysis process, the operation of replacing the stack with the new stack for this active transition, - if there is had duplication, the operation, for each of the second grammatical analysis process from the duplication (s), to replace the stack of the second grammatical analysis process from the duplication (s), with the new stack for the active transition with which this second grammatical analysis process associated with the duplication (s) is associated.
  • the stop algorithm implemented in the absence of active transitions then also takes the stack as an argument.
  • the result variable which forms part of the evaluation variables and which is, when this second grammatical analysis process is started, an initial value defined in advance.
  • the execution of the second grammatical analysis process then including, when taking into account each of the detected patterns, an additional calculation step having for the purpose of modifying the value of the result variable, this calculation step taking as arguments: - the detected pattern, - the value, before modification, of the result variable, - the total label of the active transition, or, if the second grammatical analysis process comes from a duplication, the total label of the active transition with which it is associated, and providing as result a value which will then be assigned as new value to the variable result.
  • the method applies to a data flow passing over a communications network, and it further comprises a final phase consisting, depending on the values taken by the evaluation variables, of letting the data flow without any modification or to execute one or more of the following actions: - modify the content of the data flow, - modify the destination address of the data flow, - send information to a previously specified address, - block the passage of the data flow.
  • the method further comprises an initial phase of temporary storage of all or part of the data flow, the data flow or the part of the data flow thus stored, being destocked and transmitted, with or without modification, at the end of the final phase.
  • the invention also relates to a system for analyzing a data flow, this analysis being carried out on the fly, the data flow being presented as a series of symbols taken from a set of symbols called hereinafter the alphabet symbols, the system implementing a dictionary below called a pattern dictionary and composed of certain particular sequences of symbols hereinafter called patterns.
  • the pattern dictionary is represented in the form of a tree structure made up of branches and nodes. Each branch of the tree structure starts from a node of the tree structure, hereinafter called the start node of this branch, and arrives at another node of the tree structure below called the end node of the branch. A node in the tree from which no branch of the tree leaves is hereinafter called a terminal node.
  • the tree structure is such that there is one and only one node to which no branch arrives, this node to which no branch arrives being hereinafter called the root.
  • Each branch of the tree is assigned a symbol from the alphabet of symbols, hereinafter called the label of this branch and each node of the tree is associated with a series of symbols hereinafter called the prefix of this node, this prefix being composed of the labels of the branches connecting the root to this node, these labels being taken in the order in which they are encountered.
  • the prefix of the root is the sequence containing no elements.
  • Each node is also associated with a family of patterns formed of the patterns contained in the dictionary of patterns and which begin with the prefix of this node, the number of patterns contained in the family associated with this node being hereinafter called the richness of the node.
  • the tree structure is such that none of its nodes has a richness equal to zero and it is further such that any terminal node of the tree structure has a prefix equal to a pattern contained in the dictionary of patterns and that for all motif contained in the motif dictionary, there is one and only one node in the tree structure whose prefix is equal to this motif.
  • Each node in the tree is associated with a number called the address of that node, so that the addresses of two different nodes are different numbers.
  • the system includes first storage means for storing this tree structure.
  • the system comprises first processing means making it possible to detect the presence or not, within the data flow, of patterns belonging to the pattern dictionary, these first processing means operating on the fly and successively taking into account the symbols constituting the flow of data.
  • the first processing means are such that if a pattern, belonging to the dictionary of patterns, is present in the data stream, the first processing means detect its presence as soon as the last symbol constituting this pattern is taken into account.
  • the first processing means make it possible to implement the first syntactic analysis processes operating in parallel, with each of them being associated - on the one hand, one of the symbols constituting the data flow, this symbol being hereinafter called symbol of starting this first parsing process and never being modified during the execution of the first parsing process, - on the other hand storage means intended to contain a number equal to the address d a node of the tree structure, this number being hereinafter called the position of the first parsing process and being intended to be modified during the execution of the first parsing process.
  • the first syntactic analysis process begins to run as soon as the start symbol is taken into account and is responsible for detecting, for all the successive values of the integer N, if the sequence of N consecutive symbols, extracted from the stream of data, this extraction starting at the start symbol, is equal to one of the patterns in the pattern dictionary.
  • the position of the first parsing process is, when this first parsing process begins to run, equal to the address of the root of the tree.
  • the first processing means allowing, taking into account each of the symbols constituting the flow of data, for each first syntactic analysis process, to carry out the following operations: the operation of locating whether there is, in the tree structure, one or more branch (es) starting from the node whose address is equal to the position of this first syntactic analysis process and whose label is equal to the symbol taken into account, this or these branch (es) being hereinafter called (s) the active branch (s) for this first syntactic analysis process, - the operation - if there is no active branch for this first syntactic analysis process, to stop the execution of this first syntactic analysis process, - s 'there is only one active branch for this first syntactic analysis process, to give as value to the position of this first syntactic analysis process the address of the arrival node of this active branch, - if there has several active branches for this first parsing process, to duplicate this first process of a parsing as many times as necessary, so as to associate with each
  • the first processing means also making it possible, after taking into account each of the symbols constituting the data stream, to carry out a first complementary operation consisting in providing a list of all the patterns detected, when the symbol is taken into account, by at least one of the parsing processors running, this list being hereinafter called the list of detected patterns. It results from the combination of the technical features of the invention that the list of detected patterns includes all the patterns present in the stream to be analyzed, ending at the symbol taken into account and equal to a pattern from the dictionary of patterns.
  • the dictionary of patterns associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information
  • the system comprising means for storing these pattern coefficients and / or this pattern information, the first processing means then being such that if the pattern dictionary associates pattern coefficients and / or pattern information with a pattern, these pattern coefficients and / or this pattern information is supplied by the first processing means at the same time as the presence of the pattern is detected.
  • the system comprises storage means making it possible to store one or more variables called hereinafter evaluation variables and processing means making it possible to initialize these evaluation variables at values fixed at l 'advance and hereinafter called initial values of the evaluation variables.
  • the system then further comprises second processing means making it possible to implement an analysis algorithm, this analysis algorithm taking into account one or more arguments and having the effect, depending on the value of these arguments, of modifying the value of all or part of the evaluation variables.
  • the system is such that the first processing means and the second processing means are executed at the stolen, nested, the analysis algorithm being implemented as soon as the first processing means have provided a detected pattern, this detected pattern then being one of the arguments of the analysis algorithm.
  • the pattern dictionary associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information, and the system comprises means for storing pattern coefficients and / or pattern information.
  • the first processing means are then such that if the dictionary of patterns associates with a pattern pattern coefficients and / or pattern information, these pattern coefficients and / or this pattern information are provided by the first processing means. at the same time as the presence of this pattern is detected, the pattern coefficients and / or the pattern information then being arguments of the analysis algorithm.
  • the analysis algorithm is also implemented as soon as the first processing means have completed taking into account a symbol constituting the data stream, this symbol taken into account then being an argument of the analysis algorithm.
  • the first processing means further comprise a functionality making it possible to mark all or part of the patterns as being priority patterns, and to associate with each of these priority patterns at least one action to be executed.
  • the system which is the subject of the present invention further comprises processing means making it possible to execute the actions associated with these priority patterns.
  • the first complementary operation then also consists in launching the execution of the action (s) associated with all of the priority patterns contained in the list of detected patterns.
  • the system further comprises processing means making it possible to inhibit the implementation of the analysis algorithm when one of the patterns detected is a priority pattern which is associated an action having the effect of inhibiting the analysis algorithm.
  • the system further comprises processing means making it possible to carry out the prior operation of modifying the dictionary of patterns, the result of this modification being hereinafter called the dictionary of modified patterns, and of modifying the tree, by adding new branches and new nodes, and / or by deleting branches and nodes.
  • the modified tree structure is further such that any terminal node of the modified tree structure has a prefix equal to a pattern contained in the modified pattern dictionary and that for any pattern contained in the modified pattern dictionary, there is one and one only node of the modified tree structure whose prefix is equal to this pattern.
  • the analysis algorithm consists in determining the probability or the probabilities that all or part of the data constituting the data flow belongs to one or more particular thematic (s), these probabilities being hereinafter called membership probabilities and forming part of the evaluation variables. These membership probabilities are calculated using a function, hereinafter called the evaluation function, which takes into account the patterns detected by the first processing means.
  • the system includes processing means making it possible to modify the values of all or part of the evaluation variables, in particular the value of the probabilities of belonging, by applying, for each symbol taken into account, the following operations: the operation, if a pattern, belonging to the dictionary of patterns and ending with the symbol taken into account, was detected in the data stream by the first processing means, to modify all or part of these evaluation variables by implementing an algorithm.
  • the re-evaluation algorithm this re-evaluation algorithm taking into account the pattern which has been detected, the system being such that, if the dictionary of patterns associates with the pattern which has been detected, coefficients of patterns and / or information of patterns, the reassessment algorithm also takes into account these pattern coefficients and / or this pattern information, the operation, if no pattern, belonging to the pattern dictionary and ending with the symbol taken into account, has been detected in the data flow by the first processing means, to modify all or part of the evaluation variables by implementing an algorithm hereinafter called relaxation algorithm, - the operation, after implementation as appropriate , the reassessment algorithm or the relaxation algorithm, to apply an algorithm, hereinafter called the final probability calculation algorithm, which takes as arguments the values of all o u part of the evaluation variables and provides as a result provisional values of the probability or probabilities that the part of the data flow which ends at the symbol taken into account belongs to the particular thematic or to the particular thematic, the values then taken by the probability or probabilities being
  • the system further comprises processing means making it possible to calculate, using the evaluation function, the probabilities of belonging, for each particular thematic, by taking into account the successive values of the local probabilities, provided by the algorithm of final probability calculation, after taking into account all the symbols constituting the data flow.
  • the re-evaluation algorithm is reduced to a first family of functions taking as variables all or part of the variables evaluation, this first family of functions being such that if the dictionary of patterns associates with the pattern which has been detected patterns coefficients and / or pattern information, the first family of functions also takes as variables these pattern coefficients and / or this reason information.
  • the first family of functions provides as a result the new values of all or part of the evaluation variables, the function (s) constituting this first family of functions being functions dependent on a family of parameters called hereinafter parameters of the reassessment algorithm.
  • the relaxation algorithm is reduced to a second family of functions taking as variables all or part of the evaluation variables and providing as result the new values of all or part of the evaluation variables, the function (s) constituting the second family of functions being functions dependent on a family of parameters hereinafter called parameters of the relaxation algorithm.
  • the final probability calculation algorithm is reduced to a third family of functions taking as variables the evaluation variables and providing as a result the local probabilities, the function (s) constituting the third family of functions being functions dependent on 'a family of parameters hereinafter called parameters of the final probability calculation algorithm.
  • the pattern coefficients, the initial values of the evaluation variables, the parameters of the re-evaluation algorithm, the parameters of the relaxation algorithm, the parameters of the final probability calculation algorithm are hereinafter called so the calibration parameters.
  • the system includes storage means for storing the values of the calibration parameters.
  • the system further comprises processing means making it possible to carry out an additional operation consisting in associating with each symbol of the alphabet of symbols, a weighting coefficient hereinafter called symbol weighting coefficient.
  • symbol weighting coefficient hereinafter called symbol weighting coefficient.
  • the second family of functions and / or the third family of functions then also take the symbol weighting coefficient associated with the symbol taken into account as an additional variable.
  • the calibration parameters further include the symbol weighting coefficients.
  • the system further comprises processing means making it possible to carry out an additional operation, hereinafter called recalibration, consisting, after the analysis of the data flow and as a function of the results provided by the function evaluation, to execute one or more of the following sub-operations: - the sub-operation of adding one or more patterns to the pattern dictionary, - the sub-operation of removing one or more patterns from the pattern dictionary, - the sub-operation to vary all or part of the calibration parameters.
  • recalibration additional operation
  • the system comprises processing means making it possible to carry out a prior operation hereinafter called learning, consisting in repeatedly repeating the following sub-operations: - the sub-operation of operating the first means of processing and the second processing means on data streams whose probabilities of belonging to particular themes are known in advance, - the sub-operation of performing the recalibration so that the probabilities of belonging determined by the second processing means are as close as possible to values fixed in advance.
  • the system comprises processing means making it possible to modify the dictionary of patterns and the calibration parameters using information coming from an external source.
  • the patterns contained in the pattern dictionary are classified into three categories of patterns hereinafter called category of operational patterns, category of candidate patterns and category of learning patterns.
  • the pattern dictionary is such that it associates pattern coefficients at least with each of the candidate patterns and with each of the learning patterns.
  • the system is then such that the possible presence, in the data flow, of patterns belonging to the category of candidate patterns is detected by the first processing means but is not taken into account by the second processing means.
  • the system further comprises processing means making it possible to carry out a self-learning operation, this self-learning operation itself comprising two parts called hereinafter selection of apprentices and training of apprentices.
  • the selection of apprentices consists, when the presence of a pattern belonging to the category of candidate patterns has been detected by the first processing means, to modify all or part of the pattern coefficients of the pattern thus detected, this modification taking into account all or part of the evaluation variables.
  • the selection of apprentices also consists, according to the values taken by the pattern coefficients of the pattern thus detected, in passing or not passing this pattern thus detected in the category of patterns in learning.
  • the training of apprentices consists, when the presence of a pattern belonging to the category of patterns in learning is detected by the first processing means, to give new values to the coefficients of patterns of the pattern thus detected, these new values being determined from evaluation variables and prior values of the pattern coefficients of the pattern thus detected, this training of the apprentices being able, depending on the evolution of the values of the pattern coefficients of the pattern pattern thus detected, modify the category of this pattern thus detected.
  • the system comprises processing means making it possible to implement a family of grammars, composed of grammars, each of these grammars comprising one or more rules capable of being verified or not by a series of patterns .
  • a series of patterns verifying all the rules of a grammar belonging to this family of grammars is described below grammatically correct for this grammar.
  • the objective of the analysis algorithm implemented by the second processing means is then to perform a grammatical analysis of the sequences of patterns formed of all or part of the patterns detected by the first processing means, such a sequence of patterns being hereinafter called detected sequence, this grammatical analysis verifying, for each of the detected sequences and for each of the grammars belonging to the grammar family, whether the detected sequence is grammatically correct for this grammar.
  • the family of grammars is represented by an automaton consisting of states and transitions.
  • Each state of the PLC is associated with a number called the address of this state, so that the addresses of two different states are different numbers.
  • At least one of the states of the controller is called the final state of the controller.
  • Each grammar taken from the grammar family is associated with a state of the automaton, called the initial state of the automaton for this grammar.
  • Each transition of the PLC is associated with two states of the PLC, hereinafter called the start state of the transition and the arrival state of the transition.
  • a grammar taken from the grammar family is associated with each of the final states of the automaton, and each transition of the automaton is assigned a set composed of one or more sequences of symbols, hereinafter called the label.
  • the system includes storage means for storing the machine and processing means for performing a second preliminary operation of building the machine.
  • the system ⁇ includes processing means making it possible to implement second grammatical analysis processes operating in parallel, with each of them being associated: - a pattern detected by the first processing means, this pattern being hereinafter called the starting pattern of this second grammatical analysis process and never being modified during the execution of the second grammatical analysis process, - a grammar belonging to the family of grammars, - a number equal to the address of a state of the automaton, this number forming part of the evaluation variables and being hereinafter called the position of this second grammatical analysis process and being intended to be modified during the execution of the second grammatical analysis process.
  • the system comprises processing means making it possible to start the execution of a second grammatical analysis process as soon as its start reason is detected, this second grammatical analysis process being responsible for analyzing whether a series of detected patterns beginning to this start pattern is grammatically correct for the grammar associated with the second grammatical analysis process.
  • the position of the second grammatical analysis process is, at the time when it begins to execute, equal to the address of the initial state of the automaton for the grammar associated with this second grammatical analysis process.
  • processing means also make it possible to implement the second grammatical analysis processes and make it possible, when taking into account each of the detected patterns, to carry out the following operations: - a) a filtering operation consisting in deciding whether a or more of the transitions of the automaton will be used when the detected pattern is taken into account, this filtering step successively considering all the transitions whose starting state is the state whose address is equal to the position of the second grammatical analysis process, and applying to each of the transitions thus considered a decision algorithm having the object of deciding whether this transition will be used when taking into account the detected pattern, such a transition being then subsequently called an active transition for this detected reason, the decision algorithm taking as argument all or part of the total label of the transition thus that the detected pattern taken into account, - b) an execution operation consisting, - if there is no active transition for the second grammatical analysis process, to implement a stop algorithm having for object decide if this second grammatical analysis process should be stopped and if so, to end this second gram
  • the system further comprises processing means allowing, after taking into account each of the detected patterns, to carry out a second complementary operation consisting in providing a list of all the final states whose address is equal to the position of a at least second grammar analysis processors running, this list being hereinafter called list of detected final states. It results from the combination of the technical features of the invention that each final state in this list of detected final states corresponds to a detected sequence, grammatically correct for the grammar associated with this final state, and ending with the detected pattern taken into account.
  • each of the second grammatical analysis processes is associated with a series of symbols called stack of this second grammatical analysis process, this stack being part of the evaluation variables, having an initial value defined at the advance at the time when the second grammar analysis process begins to execute, and being intended to be modified during the execution of the second grammatical analysis process.
  • the system then comprises storage means making it possible to store this stack and the decision algorithm implemented during the filtering step and applied to a transition, also takes as argument the value of the stack, and, when the transition is an active transition, the decision algorithm also determines a series of symbols called new stack for this active transition.
  • the execution stage also performs - if there is only one active transition for the second grammatical analysis process, the operation of replacing the stack with the new stack for this active transition, - if there is had duplication, the operation, for each of the second grammatical analysis process resulting from this or these duplication (s), to replace the stack of this second grammatical analysis process resulting from the duplication (s), by the new stack for the active transition with which this second grammatical analysis process associated with the duplication (s) is associated.
  • the stop algorithm implemented in the absence of active transitions also takes the stack as an argument.
  • to each of the second grammatical analysis processes is associated a variable called result variable, this result variable being part of the evaluation variables.
  • the system then comprises storage means making it possible to store the value of the result variable and processing means making it possible, when starting a second grammatical analysis process, to set the result variable to an initial value defined at advance, and also making it possible to modify the value of the result variable when taking into account each of the detected patterns, this modification taking into account the detected pattern as well as the total label of an active transition for this second process of grammatical analysis, or if the second grammatical analysis process comes from a duplication, the total label of the active transition with which it is associated.
  • the system applies to a data flow passing over a communications network, and further comprising processing means making it possible, depending on the values taken by the evaluation variables, to let the data flow without any modification or to execute one or more of the following actions: - modify the content of the data flow, - modify the destination address of the data flow, - send information to a previously specified address, - block the passage of the data flow.
  • the system further comprises means for temporary storage of all or part of the data stream, and means for retransmission, with or without modification, of the stream thus stored. The analysis is carried out, as we have seen, on the fly.
  • the symbols that make up the data flow are taken into account one after the other, as they arrive.
  • the analysis is carried out in two phases which run in a nested fashion.
  • the first phase first phase is responsible for identifying the patterns, the presence of a pattern being detected when the last symbol making up this pattern is taken into account. This allows, if it is a priority reason, to perform various actions attached to this priority reason, going as far as, in certain cases (viruses, harmful codes, ...) blocking communication or stopping the analysis.
  • This first phase implements the first syntactic analysis processes which operate in parallel, each of them being responsible for detecting the presence of one or more patterns starting at a particular symbol of the data flow, the start symbol.
  • each first syntactic analysis process starts when its start symbol is taken into account, and stops as soon as the series of symbols encountered since this start symbol is no longer part of one of the patterns in the dictionary.
  • first syntactic analysis processes operating simultaneously (it is exceptional that this number exceeds ten).
  • each of them requires only very limited IT resources. It must keep in memory on the one hand the position of its start symbol within the data flow, (or what is equivalent, the number of symbols which have been taken into account since this start symbol) and of on the other hand the address of a node of the tree structure, that is to say two whole numbers.
  • the operations that a first syntactic analysis process must carry out for each symbol taken into account are limited to a very small number of elementary instructions described above.
  • the first phase of the analysis therefore consumes only a small part of the power of a processor embedded in a device that is broken on the network.
  • the first parsing processes can easily be implemented on one or more specific hardware blocks, operating in parallel with the main processor of the device.
  • the second phase takes this pattern into account and is executed nested with the first phase.
  • This second phase has two modes of operation. One of them consists of a semantic analysis in order to classify the thematic of all or part of the data flow.
  • the other determines whether the flow conforms to a protocol among a set of given protocols.
  • these two operating modes are implemented simultaneously, the semantic analysis then taking place only if the data flow conforms to certain protocols.
  • the invention is implemented in a device through which passes the entire data flow connecting a computer to the network, this device being broken on a cable of a computer network, or, in other modes implementation, integrated into the computer or connected to a communication port thereof. All the information passing through this device is then analyzed in accordance with the method which is the subject of the present invention.
  • all or part of the workstations or computer units making up the network are equipped with such a device.
  • Each of these devices contains a processor implementing the method of the invention, and storage means making it possible to store the dictionary of patterns and the calibration parameters.
  • This dictionary of patterns and these calibration parameters can be modified from a central computer server which sends updates.
  • a buffer memory is provided in the device temporarily storing the information until the moment when the analysis revealed that the information is authorized to circulate.
  • the device uses a processor capable of analyzing on the fly a flow of several tens of megabits per second.
  • the fact of blocking a few kilobytes in buffer memory introduces a minimal and totally invisible delay for a user of a computer workstation equipped with this device.
  • One of the great advantages of the invention, in this example of application is that, as soon as a new virus is known, a central computer server can send updates to their dictionary of patterns to all the devices on the network. allow them to prevent the spread of this new virus.
  • the invention is deployed on a global network such as the Internet, it therefore provides significantly better protection against viruses than all existing systems. In the example described above, the invention only detects already known viruses.
  • this code contains instructions for writing and / or erasing files it can do considerable damage. If it contains instructions for opening and then reading a file, followed by instructions for sending mail, the code could be a virus, which duplicates itself and sends itself to a family of correspondents. It could also simply have the objective of spying on the content of a workstation without the knowledge of its authorized user.
  • the process which is the subject of the invention can, in its second phase, analyze the frequencies of appearance and / or mutual positions of the patterns detected during its first phase. Coefficients of patterns relating to each of the themes that we seek to detect are associated with each motif.
  • each theme has specific evaluation variables associated with it, initialized to zero when the process is started (here the initial values of the evaluation variables are zero) and modified for each pattern detected.
  • the new value of the evaluation variable is determined as being a weighted sum of its old value and of the pattern coefficients provided by the dictionary of patterns (the weighting coefficients of this sum being part of the parameters of the re-evaluation algorithm) . If a symbol of the information to be analyzed is processed without any reason being detected, the relaxation algorithm multiplies the evaluation variables by coefficients between 0 and 1, (these coefficients being one of the parameters of the relaxation algorithm), so that the evaluation variables decrease by exponential decay when no pattern is detected during the successive passage of the symbols of the analyzed information.
  • the evaluation variable associated with the family is therefore linked to the number and positions of the patterns detected in the near past.
  • the final probability calculation algorithm uses, in this implementation example, weighted sums of the values of the different evaluation variables, associated with thresholds (certain intermediate variables are only taken into account if they are greater than a threshold particular), the thresholds and the weighting coefficients that are part of the parameters of the final probability calculation algorithm.
  • Information here will be all the more likely to be considered as belonging to a particular thematic as it will detect a significant number of patterns, and / or pairs of patterns, which are close to each other and significant for the analyzed theme. .
  • the candidate patterns which are added to the pattern dictionary can be words which we think could be related to the theme and be relevant in the detection of this theme, or also words generated automatically by checking certain rules ( minimum number of letters, the proportion of vowels and consonants, the arrangement of these ).
  • the invention is then made to function by analyzing a large number of texts, the subject of which can be known and provided in advance (supervised learning), or the subject of which is not known in advance and is determined by l invention (unsupervised learning).
  • the possible presence of candidate patterns in the data stream is detected during the first phase of the process which is the subject of the present invention, but this information is not taken into account during the second phase of this process.
  • each pattern its frequency of appearance is determined in the various themes to which the data supplied to the invention are attached, the intermediate results necessary for determining these frequencies of occurrence being stored in the coefficients of patterns of the pattern analyzed.
  • the pattern is more or less correlated with one or other of the themes, and whether it is likely to contribute to the detection of this thematic, or on the contrary to its elimination. In this case, the pattern is selected and goes into the pattern category in training.
  • the adjustment algorithm uses as input, on the one hand, the probabilities of belonging as calculated during the second phase of the process, as well as the thematic of the text analyzed in the case where this is known (case of supervised learning), and, on the other hand, the prior values of the pattern coefficients which had made it possible to calculate these probabilities of belonging.
  • the adjustment algorithm outputs the new values of the pattern coefficients.
  • the second phase When the second phase performs a grammatical analysis (therefore checks whether the analyzed flow respects a grammar among a given family of grammars), then, for each of these grammars and for each of the patterns detected during the first phase, second grammatical analysis process. Each of them consumes little IT resources. In addition to the information linked to the symbol and / or the reason for starting and the address of a state of the PLC, it must, in certain cases, keep a battery and / or a result variable intended to receive the information of semantic order (port number, sender address, type of encryption used etc. etc.) required by the application. This represents only a few tens or hundreds of bytes, and the computer processing that must be carried out by the second grammatical analysis processes remains extremely limited.
  • the second grammatical analysis processes can easily operate on a specific hardware block, or better, on several specific hardware blocks, operating as auxiliary processors in parallel with the main processor of this device.
  • a specific hardware component with a massively parallel architecture is produced comprising, next to a main processor, and on the same component, a large number of specialized elementary coprocessors, each of them having only a small memory space, these specialized processors being intended to host syntactic and grammatical analysis processes and to make them work in parallel.
  • FIG. 1 which schematically illustrates the way in which a data stream 1 composed of symbols S is analyzed by the method which is the subject of the present invention
  • FIG. 2 which illustrates how a dictionary of patterns can be represented by a tree structure 6
  • FIG. 3 illustrates a particular case of an automaton representing a family of grammars.
  • FIG. 1 schematically represents, on an illustrative and nonlimiting example of the possibilities of the present invention, the way in which a data stream 1 composed of symbols S is analyzed by the method which is the subject of the present invention.
  • the first phase of the method makes it possible to detect, within this data stream, various patterns M1, M2, M3,, M15 belonging to a dictionary of patterns.
  • the second phase of the method then analyzes the sequences of patterns thus detected and checks whether these sequences are grammatically correct for one or more grammars. Some patterns like M2, M4, M9 do not belong to a grammatically correct sequence. On the other hand, the sequence of consecutive patterns ⁇ M7, M8, M10, Mil, M12 ⁇ , (in dotted lines in FIG. 1) form a grammatically correct sequence.
  • the sequence of patterns ⁇ M1, M3, M5, M6, M13, M14, MIS ⁇ also forms a grammatically correct sequence, this sequence being interrupted between the patterns M6 and M13, patterns between which is nested the grammatically correct sequence ⁇ M7 , M8, M10, Mil, M12 ⁇ .
  • FIG. 2 explains on an illustrative and nonlimiting example of the possibilities of the present invention, the way in which a pattern dictionary can be represented by a tree structure 6. This tree structure is made up of branches 7 (represented by large arrows in FIG. 2 ) and nodes 8 (represented by circles in Figure 2). Each branch 7 is associated on the one hand with a starting node 9
  • Root 12 is the only node to which no branch arrives.
  • the prefix of a node 8 in the tree structure is the series of symbols made up of the labels 13 of the branches connecting the root to this node, these labels 13 being taken in the order in which they are encountered.
  • the pattern dictionary includes 10 patterns which are ⁇ ai, axis, axes, axial, bottom, bottom, ci, neck, glue, neck ⁇ , and each of these patterns corresponds to one and only one node, the prefix is this pattern.
  • FIG. 3 illustrates a particular case of automaton 34 representing a family of grammars, this automaton 34 being composed of states 35 (represented by circles in FIG. 3) and transitions 36 (represented by arrows in FIG.
  • each transition 39 being associated a starting state 40 and a finishing state 41 (which, in FIG. 3, are the state which is represented at the origin and the state which is represented at the end of the arrow representing this transition).
  • Certain states are qualified initial states 48 and final states 38, and are represented in FIG. 3 by double arrows entering or leaving this state. There is exactly one initial state per grammar.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

The invention relates to a method and device for analysing a data stream transmitting through a network in order to determine the stream conformity to one or several protocols or grammars and/or to classify said stream in one or several particular topics and/or to collect information necessary for transmission filtering, in particular in order to improve the network safety. Said invention uses limited information resources and can be used by a device for cutting a liaison between the network and a workstation. Symbols forming said stream are successively taken into account during the passage thereof, the analysis being carried out on-the-fly in two nested phases one of which consists in locating patterns and the other in analysing respective positions and/or relative frequencies. Apprenticeship mechanism makes it possible to improve the relevance of result.

Description

PROCEDE ET SYSTEME POUR L'ANALYSE D'UN FLUX DE DONNEES METHOD AND SYSTEM FOR ANALYZING A DATA STREAM
La présente invention concerne un procédé et un système destinés à analyser un flux de données transitant sur un réseau, en vue, notamment, de recueillir des informations nécessaires au filtrage des transmissions de façon à améliorer la sécurité du réseau. Les réseaux de communication actuels mettent à la disposition d'un nombre toujours croissant d'utilisateurs de très nombreuses informations et/ou applications. Cette richesse de possibilités présente néanmoins quelques inconvénients. Le réseau mondial Internet comporte en effet autant de pages pornographiques que de documents traitant de sujets académiques, si ce n'est plus. Des courriers non désirés envahissent les boites aux lettres, par des messages publicitaires, souvent à caractère pornographique, ce qui représente un inconfort et une perte de temps non négligeables pour les utilisateurs, sans parler du coût, en termes de ressources informatiques, de ces courriers non désirés. Mentionnons aussi les virus informatiques et autres codes malfaisants susceptibles de contaminer l'ordinateur de l'utilisateur lorsqu'il va consulter des informations sur le réseau ou tout simplement lorsqu'il reçoit des courriers électroniques infectés. Certains de ces codes malfaisants peuvent être détectés en constatant simplement la présence de certains motifs (signatures virales...) dans le flux de données, mais une simple détection de ces motifs est en général très insuffisante pour assurer une protection efficace. Le contenu des pages disponibles sur le réseau mondial, et plus généralement des applications accessibles par réseau (services de réservations, opérations bancaires, ) évolue rapidement et les fournisseurs d'accès réseau stockent souvent sur une même machine des pages ou des applications aux contenus divers. Il est donc impossible de donner des règles permettant à un utilisateur de filtrer des informations en utilisant comme seule donnée l'adresse d'origine de ces informations. En ce qui concerne le courrier électronique, un tel filtrage pose un problème insoluble. Pour filtrer efficacement les contenus indésirables, il faut donc analyser l'intégralité du flux de données circulant sur le réseau ou entre le réseau et un poste de travail, puis décider, en fonction du résultat de cette analyse, s'il faut délivrer le flux à l'utilisateur ou non. Le filtrage doit s'effectuer non seulement par rapport à l'adresse de l'émetteur ou par rapport à un numéro de port mais aussi et surtout par rapport au contenu de l'information qui circule. La classification par mot clé se révèle insuffisante, puisque certains mots peuvent être interprétés différemment suivant le contexte, ou encore être racine de mots différentsThe present invention relates to a method and a system intended for analyzing a data flow passing over a network, with a view, in particular, to collecting information necessary for filtering transmissions so as to improve network security. Today's communication networks make a very large number of information and / or applications available to an ever-increasing number of users. This wealth of possibilities nevertheless has some drawbacks. The global Internet network indeed includes as many pornographic pages as documents dealing with academic subjects, if not more. Unwanted mail invades mailboxes, by advertising messages, often of a pornographic nature, which represents a considerable discomfort and loss of time for users, not to mention the cost, in terms of IT resources, of these mails unwanted. Mention should also be made of computer viruses and other harmful codes which may contaminate the user's computer when they consult information on the network or simply when they receive infected e-mail. Some of these harmful codes can be detected by simply noting the presence of certain patterns (viral signatures, etc.) in the data flow, but a simple detection of these patterns is generally very insufficient to ensure effective protection. The content of pages available on the global network, and more generally of applications accessible by network (reservation services, banking operations,) evolves rapidly and network access providers often store pages or applications with various content on the same machine. . It is therefore impossible to give rules allowing a user to filter information by using as sole data the address of origin of this information. With regard to electronic mail, such filtering poses an insoluble problem. To effectively filter unwanted content, it is therefore necessary to analyze the entire flow of data circulating on the network or between the network and a workstation, then decide, depending on the result of this analysis, whether to deliver the flow to the user or not. Filtering must be carried out not only in relation to the address of the transmitter or in relation to a port number but also and above all in relation to the content of the information which circulates. The classification by keyword turns out to be insufficient, since certain words can be interpreted differently depending on the context, or even be root of different words
(comme porn et pornichet, ou sexagénaire, ou analyse) . Il ne faut pas léser l'accès à des documentations anodines par des règles trop strictes, ni avoir une classification trop laxiste. D'une façon générale, on désignera par thématique la classe dans laquelle on veut classifier le flux de données ou une partie de celui-ci. Dans le cas d'un texte en langue naturelle, ce pourrait être des thèmes ou champs sémantiques tels que violence, armes, pornographie ou texte à caractère scientifique, juridique, religieux, etc. Si le flux de données contient un code exécutable, la thématique est liée aux caractéristiques de ce code ? Est-il susceptible d'accéder en lecture et/ou en écriture à certains fichiers ? Est-il susceptible de se dupliquer pour se propager dans le réseau ? Contient-il un virus informatique déjà référencé ? Précisons qu'un flux de données peut appartenir à plusieurs thématiques. Les algorithmes de classification habituellement utilisés font appel à un référentiel important de documents, nécessitent de larges quantités de mémoire, et exigent bien sûr d'avoir au préalable trouvé et classifié les documents pertinents. Pour réaliser une analyse efficace du flux réseau, il faut aussi déterminer quel est le protocole utilisé par tel ou tel flux de communication, et, le cas échéant, analyser le flux pour en extraire diverses informations de nature sémantique (port utilisé, adresse de l'émetteur, type de cryptage utilisé...) informations qui seront utilisées pour décider de l'action à exécuter pour assurer la sécurité du réseau. Notons que plusieurs protocoles peuvent être imbriqués. On peut éventuellement transmettre via un protocole donné, un texte contenant une partie respectant un autre protocole, ce texte pouvant lui-même contenir des codes malfaisants (Virus, chevaux de Troie...) contenus par exemple dans des macros de certains fichiers bureautiques (Word, Excel) ou dans un programme exécutable. Une telle imbrication est appelée une encapsulation. L' encapsulation des protocoles joue un rôle similaire aux guillemets qui permettent, dans un texte, de citer un autre texte, dont la structure grammaticale peut être fort différente du premier. Le problème posé est donc complexe. Il faut d'une part reconnaître quel est, parmi un grand nombre de protocoles possibles, le protocole particulier utilisé dans telle ou telle partie du flux. D'autre part, en fonction de ce protocole, il faut déterminer la ou les thématiques auxquelles se rattache le tout ou partie du contenu du flux de données. L'invention, objet du présent brevet, apporte une solution originale à ce problème. Elle permet d'analyser, à la volée, des flux de données transitant sur un réseau. Au sens de la présente invention, « à la volée » signifie que les symboles constituant le flux de données • sont pris en compte séquentiellement au fur et à mesure de leur rencontre, aucun d'entre eux n'étant stocké en mémoire. De plus, et c'est un des intérêts majeurs de la présente invention, cette analyse n'utilise que des ressources informatiques limitées, tant en mémoire qu'en puissance de calcul et peut donc être mise en œuvre notamment sur un petit dispositif placé en coupure entre le réseau et un poste de travail particulier ou plus généralement entre le réseau et un système informatique connecté à ce réseau. Ce dispositif peut être une unité indépendante et il peut aussi être intégré dans un modem, une carte réseau, un routeur ou dans toute autre unité de communication. La sécurisation du réseau peut ainsi être assurée au sein du réseau lui-même, et non sur le poste de travail de l'utilisateur. L'invention, objet du présent brevet évite donc qu'une part significative des ressources informatiques du poste de travail soit utilisée par des applications de sécurisation. D'autre part, elle permet de filtrer les contenus indésirables avant leur entrée dans le poste de travail de l'utilisateur. Parmi les nombreuses applications de l'invention, notons qu'elle permet ainsi de réaliser un antivirus qui détecte les codes malfaisants, avant même qu'ils n'aient atteint l'ordinateur, et qui peut ainsi bloquer leur passage, par opposition aux antivirus classiques qui ne peuvent détecter les virus qu'une fois que ceux-ci ont pénétré dans le poste de travail. L'invention permet aussi de réaliser des fonctions de contrôle parental, filtrant les textes dont on ne souhaite pas qu'ils soient lus par des enfants. De même, elle pourrait permettre, au sein d'une entreprise, de filtrer les accès réseaux et d'éviter que les employés ne soient tentés de passer trop de temps sur des sites Internet sans aucun rapport avec leurs missions. Dans toute la suite, nous dirons que le flux de données transitant sur le réseau est composé de symboles (par exemple des octets) , et nous appellerons motif une séquence de symboles dont il faudra rechercher la présence au sein du flux. Ces motifs incluent les mots dont la présence dans le flux de données analysé peut fournir des indications utiles à détermination du protocole et/ou à la classification du texte. Par ailleurs certains motifs (comme par exemple des URL interdites, ou des signatures de virus et plus généralement des codes exécutables malfaisants,...) sont tels que leur présence doit provoquer le déclenchement d'actions immédiates, pouvant aller, dans certains cas jusqu'à provoquer la rupture de la communication et/ou l'arrêt de l'analyse. Ces motifs seront ci- après appelés motifs prioritaires. L' invention, objet du présent brevet, est articulée autour de quatre entités. La première entité est un dictionnaire, appelé dictionnaire des motifs, contenant les motifs à rechercher, et fournissant pour certains d'entre eux, des informations complémentaires utiles à détermination du protocole et/ou à la classification du flux. Le dictionnaire des motifs peut être constitué a priori, par exemple à l'aide d'un corpus de textes dont on connaît la classification, et il peut s'enrichir par auto-apprentissage au fur et à mesure de l'utilisation de l'invention. Le dictionnaire des motifs peut être relatif à une ou à plusieurs thématiques. La seconde entité est un algorithme permettant de détecter à la volée si dans le flux de données sont présents des motifs du dictionnaire des motifs. Pour chaque symbole constituant le flux de données, cet algorithme met en œuvre une petite unité logicielle que nous appellerons, par la suite, un premier processus d'analyse syntaxique, et qui est chargée de détecter s'il existe ou non un motif démarrant à ce symbole et égal à un motif du dictionnaire. Le dictionnaire des motifs est stocké informatique ent dans un format spécifique, sous la forme d'une arborescence qui permet d'optimiser tant la place mémoire occupée que les ressources informatiques nécessaires aux algorithmes syntaxiques et sémantiques. La troisième entité est une analyse sémantique réalisant la classification de tout ou partie du flux de données par un algorithme sémantique. Elle utilise des variables d'évaluation liées aux motifs détectés, ainsi qu'à leurs fréquences d'apparition et/ou aux positions mutuelles des motifs détectés. Ces variables d'évaluation permettent alors de déterminer des probabilités d'appartenance du flux de données à une thématique donnée. Des mécanismes d'apprentissage permettent d'améliorer la pertinence des résultats de l'invention, cet apprentissage se faisant soit de façon supervisée, grâce à la fourniture de flux de données dont la classification est connue à l'avance, soit de façon non supervisée, au cours du fonctionnement opérationnel de l'invention. La quatrième entité réalise la recherche de protocole en déterminant si les motifs détectés par l'algorithme syntaxique sont disposés les uns par rapport aux autres conformément à la syntaxe d'un des protocoles recherchés (IP, FTP, protocole applicatif ...) c'est-à-dire s'ils vérifient la grammaire de ce protocole. D'un point de vue plus abstrait, il s'agit de reconnaître si le flux analysé (ou une partie de celui-ci) est conforme à une grammaire ou à plusieurs grammaires parmi une famille de grammaires à analyser. Cette analyse grammaticale recueille au passage certaines informations d'ordre sémantique. Classiquement on utilise un compilateur pour décider si un texte est conforme à une grammaire donnée (cf. par exemple A. Aho, R. Sethi, J. Ull an : Compilateurs, Principes, Techniques et Outils, InterEditions 1989 pour la traduction française) . Plus précisément, cette tâche est réalisée par les deux premières étapes de la compilation que sont l'analyse lexicale (découpage du flux en unités lexicales) et l'analyse syntaxique (regroupant ces unités lexicales en structures grammaticales) . La collecte des informations recherchées relève de la troisième étape de la compilation, qui est l'analyse sémantique. Ces techniques classiques ne sont pas applicables dans le cas présent, car elles ne permettent pas de réaliser à la volée, en un seul passage du flux à analyser, la recherche de motifs, l'analyse sémantique et la recherche de protocoles. De plus elle ne permet pas l'analyse simultanée, lors de cet unique passage, de plusieurs protocoles conformément à plusieurs grammaires. En effet, la mise en œuvre d'autant de compilateurs qu'il y a de grammaires prises en compte aboutirait à une augmentation des ressources informatiques nécessaires (temps de calculs et des espaces mémoire) qui deviendrait rapidement prohibitive, en particulier en cas de mise en œuvre sur un processeur embarqué placé en rupture sur le réseau. Le principe de l'utilisation d'un automate pour reconnaître si un texte (suite de symboles) appartient à un langage donné (donc respecte une grammaire) est classique (cf. par exemple J.-L. Stehlé, P. Hochard : Ordinateurs et Langages, Éditions Ellipses 1989) . Lorsque la grammaire est rationnelle, un automate fini est suffisant. Lorsque la grammaire est algébrique et non rationnelle, il faut un automate à pile. Notons que, dans certains cas, l'utilisation d'un automate à pile même pour une grammaire rationnelle peut aboutir à des économies significatives en ressources informatiques (mémoire, puissance de calcul/temps de traitement) par rapport à l'utilisation d'un automate fini. Nous renvoyons aux ouvrages cités pour des détails sur les notions de grammaire. L'une des idées originales de la présente invention réside dans la façon dont sont mis en œuvre ces concepts théoriques, permettant la prise en compte simultanée et à la volée de plusieurs grammaires tout en minimisant les ressources informatiques (temps de calcul, espace mémoire) mises en œuvre. De façon plus précise, l'invention concerne un procédé d'analyse à la volée d'un flux de données celui-ci se présentant comme une suite de symboles pris dans un ensemble de symboles appelé ci-après l'alphabet des symboles. Le procédé, objet de la présente invention, met en œuvre un dictionnaire ci- après appelé dictionnaire des motifs, composé de certaines séquences particulières de symboles appelées ci-après des motifs. Le dictionnaire des motifs est représenté sous forme d'une arborescence constituée de branches et de nœuds. Chaque branche de l'arborescence part d'un nœud de l'arborescence, ci- après appelé nœud de départ de la branche, et arrive à un autre nœud de l'arborescence ci-après appelé nœud d'arrivée de la branche. Un nœud de l'arborescence dont ne part aucune branche de l'arborescence est ci-après appelé un nœud terminal. L'arborescence est telle qu'il existe un et un seul nœud auquel n'arrive aucune branche, ce nœud auquel n'arrive aucune branche est ci-après dénommé la racine. À chaque branche de l'arborescence est attribué un symbole de l'alphabet des symboles, ci-après appelé l'étiquette de la branche. À chaque nœud de l'arborescence est associée une suite de symboles ci-après dénommée le préfixe de ce nœud, composée des étiquettes des branches reliant la racine à ce nœud, ces étiquettes étant prises dans l'ordre où elles sont rencontrées. Le préfixe de la racine est la suite ne comprenant aucun élément. À chaque nœud est par ailleurs associée une famille de motifs formée des motifs qui sont contenus dans le dictionnaire des motifs et qui commencent par le préfixe de ce nœud. Le nombre de motifs contenus dans cette famille est ci- après appelé la richesse du nœud. Aucun nœud de l'arborescence n'a une richesse égale à zéro. De plus tout nœud terminal de l'arborescence a un préfixe égal à un motif contenu dans le dictionnaire des motifs et pour tout motif contenu dans le dictionnaire des motifs, il y a un et un seul nœud de l'arborescence dont le préfixe soit égal à ce motif. À chaque nœud de l'arborescence est associé un nombre appelé adresse de ce nœud de telle sorte que les adresses de deux nœuds différents soient des nombres différents. Le procédé comprend une première étape préliminaire de constitution du dictionnaire des motifs. Le procédé comprend une première phase consistant à détecter la présence ou non, au sein du flux de données, de motifs appartenant au dictionnaire des motifs. Cette première phase fonctionne à la volée et prend en compte successivement les symboles constituant le flux de données. Elle est telle que si un motif, appartenant au dictionnaire des motifs, est présent dans le flux de données, cette présence est détectée dès la prise en compte du dernier symbole constituant ce motif. La première phase met en œuvre des premiers processus d'analyse syntaxique fonctionnant en parallèle, à chacun d'eux étant associé - d'une part un des symboles constituant le flux de données, ce symbole étant ci-après appelé symbole de démarrage de ce premier processus d'analyse syntaxique et n'étant jamais modifié au cours de l'exécution du premier processus d'analyse syntaxique, - d'autre part un nombre égal à l'adresse d'un nœud de l'arborescence, ce nombre étant ci-après appelé la position de ce premier processus d'analyse syntaxique et étant destiné à être modifié au cours de l'exécution du premier processus d'analyse syntaxique. Chacun des premiers processus d'analyse syntaxique commence à s'exécuter dès la prise en compte de son symbole de démarrage et est chargé de détecter, pour toutes les valeurs successives de l'entier N, s'i la séquence de N symboles consécutifs, extraite du flux de données, cette extraction débutant à ce symbole de démarrage, est égale à un des motifs du dictionnaire des motifs. Au moment où un premier processus d'analyse syntaxique commence à s'exécuter, sa position est égale à l'adresse de la racine de l'arborescence. L'exécution d'un premier processus d'analyse syntaxique inclut, à la prise en compte de chacun des symboles constituant le flux de données, les étapes suivantes : - l'étape de repérer s'il y a, dans l'arborescence, une ou plusieurs branche (s) partant du nœud dont l'adresse est égale à la position de ce premier processus d'analyse syntaxique et dont l'étiquette est égale au symbole pris en compte, cette ou ces branche (s) étant ci-après appelée (s) la ou les branche (s) active (s) pour ce premier processus d'analyse syntaxique, - l'étape - s'il n'y a aucune branche active pour ce premier processus d'analyse syntaxique, d'arrêter l'exécution de ce premier processus d'analyse syntaxique, - s' il y a une seule branche active pour ce premier processus d'analyse syntaxique, de donner comme valeur à la position du premier processus d'analyse syntaxique l'adresse du nœud d'arrivée de cette branche active, - s'il y a plusieurs branches actives pour ce premier processus d'analyse syntaxique, de dupliquer ce premier processus d'analyse syntaxique autant de fois que nécessaire, de façon à associer à chacune de ces branches actives, une copie de ce premier processus d'analyse syntaxique, la position de cette copie étant alors égale à l'adresse du nœud d'arrivée de la branche active à laquelle il est associé - l'étape, pour ce premier processus d'analyse syntaxique, si son exécution n'a pas été arrêtée au cours de l'étape précédente, ou, dans le cas où il y a eu duplication lors de l'étape précédente, l'étape, pour chacune des copies de ce premier processus d'analyse syntaxique, de signaler si le préfixe du nœud dont l'adresse est égale à la position de ce premier processus d'analyse syntaxique est égal à un motif contenu dans le dictionnaire des motifs, ce motif étant alors ci-après appelé un motif détecté par ce premier processus d'analyse syntaxique. La première phase comprend en outre, après la prise en compte de chacun des symboles constituant le flux de données, une première étape complémentaire consistant à fournir une liste de tous les motifs détectés, lors de la prise en compte de ce symbole, par l'un au moins des premiers processeurs d'analyse syntaxique en cours d'exécution. Cette liste est ci-après appelée liste des motifs détectés et elle comprend donc tous les motifs présents dans le flux à analyser, qui se terminent au symbole pris en compte et qui sont égaux à un motif du dictionnaire des motifs . De préférence, selon l'invention, le dictionnaire des motifs associe à tout ou partie des motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif. La première phase est alors telle que si le dictionnaire des motifs associe à un motif des coefficients de motifs et/ou des informations de motifs, ces coefficients de motifs et/ou ces informations de motif sont fournis par la première phase en même temps qu'est détectée la présence de ce motif. De préférence, selon l'invention, le procédé utilise en outre une ou plusieurs variables appelées ci-après variables d'évaluation, et il comprend en outre une étape préalable consistant à initialiser ces variables d'évaluation à des valeurs fixées à l'avance et ci-après appelées valeurs initiales des variables d'évaluation. Le procédé comprend alors en outre une seconde phase, mettant en œuvre un algorithme d'analyse, qui prend en compte un ou plusieurs arguments et qui a pour effet, selon la valeur de ces arguments, de modifier la valeur de tout ou partie des variables d'évaluation. Le procédé est alors tel que la première phase et la seconde phase s'exécutent à la volée, de façon imbriquée, l'algorithme d'analyse étant exécuté dès que la première phase a fourni un motif détecté, ce motif détecté étant alors l'un des arguments de l'algorithme d' analyse. De préférence, selon l'invention, le dictionnaire des motifs associe à tout ou partie des motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif, la première phase étant alors telle que si le dictionnaire des motifs associe à un motif des coefficients de motifs et/ou des informations de motifs, ces coefficients de motifs et/ou ces informations de motif sont fournis par la première phase en même temps qu'est détectée la présence de ce motif, ces coefficients de motifs et/ou ces informations de motif étant alors des arguments de l'algorithme d'analyse. De préférence, selon l'invention, l'algorithme d'analyse est en outre exécuté dès que la première phase a achevé la prise en compte d'un symbole du flux de données, ce symbole pris en compte étant alors un argument de l'algorithme d' analyse. De préférence, selon l'invention, la première étape préliminaire comprend en outre une sous-étape consistant à marquer tout ou partie des motifs comme étant des motifs prioritaires, et à associer à chacun de ces motifs prioritaires au moins une action à exécuter. La première étape complémentaire comprend alors en outre la sous-étape de lancer l'exécution de la ou des action (s) associée (s) à tous les motifs prioritaires contenus dans la liste des motifs détectés. La mise en œuvre de l'algorithme d'analyse est inhibée lorsque l'un des motifs détectés est un motif prioritaire auquel est associée une action ayant pour effet d'inhiber cet algorithme d'analyse. De préférence, selon l'invention, le procédé comprend l'étape préalable de modifier le dictionnaire des motifs, le résultat de cette modification étant ci-après appelé le dictionnaire des motifs modifié, et de modifier l'arborescence, par ajout de nouvelles branches et de nouveaux nœuds, et/ou par suppression de branches et de nœuds. Le résultat de cette modification est ci-après appelé l'arborescence modifiée. L'arborescence modifiée est telle que tout nœud terminal de cette arborescence modifiée a un préfixe égal à un motif contenus dans le dictionnaire des motifs modifié et que, pour tout motif contenu dans le dictionnaire des motifs modifié, il y a un et un seul nœud de l'arborescence modifiée dont le préfixe est égal à ce motif. De préférence, selon l'invention, l'algorithme d'analyse de la seconde phase consiste à déterminer la probabilité ou les probabilités que tout ou partie des données constituant du flux de données appartienne à une ou à plusieurs thématique (s) particulière (s) , ces probabilités étant ci-après appelées probabilités d'appartenance et faisant partie des variables d'évaluation. Les probabilités d'appartenance sont calculées à l'aide d'une fonction, ci-après appelée fonction d'évaluation, qui prend en compte les motifs détectés lors de la première phase. L'algorithme d'analyse de la seconde phase modifie les valeurs de toutes ou partie des variables d'évaluation, notamment les valeurs des probabilités d'appartenance, en appliquant, pour chaque symbole pris en compte, les étapes suivantes : - l'étape, si, au terme de la première phase, un motif, appartenant au dictionnaire des motifs et se terminant par le symbole pris en compte, a été détecté dans le flux de données, de modifier tout ou partie des variables d'évaluation en mettant en œuvre un algorithme ci-après appelé algorithme de réévaluation, cet algorithme de réévaluation prenant en compte le motif qui a été détecté, le procédé objet de la présente invention étant tel que, si le dictionnaire des motifs associe au motif ayant été détecté des coefficients de motifs et/ou des informations de motifs, l'algorithme de réévaluation prend en compte en outre ces coefficients de motifs et/ou ces informations de motif, - l'étape, si, au terme de la première phase, aucun motif, appartenant au dictionnaire des motifs et se terminant par le symbole pris en compte, n'a été détecté dans le flux de données, de modifier tout ou partie des variables d'évaluation en mettant en œuvre un algorithme ci-après appelé algorithme de relaxation, - l'étape, après mise en œuvre selon le cas, de l'algorithme de réévaluation ou de l'algorithme de relaxation, d'appliquer un algorithme, ci-après appelé algorithme de calcul final des probabilités, qui prend comme arguments les valeurs de tout ou partie des variables d'évaluation et fournit comme résultat des valeurs provisoires de la probabilité ou des probabilités que la partie du flux de données qui se termine au symbole pris en compte appartienne à la thématique particulière ou aux thématiques particulières, les valeurs prises alors par cette ou ces probabilité (s) étant ci-après appelée (s) probabilités locales. La fonction d'évaluation consiste alors à calculer ces probabilités d'appartenance, pour chaque thématique particulière, en prenant en compte les valeurs successives des probabilités locales, fournies par l'algorithme de calcul final de la probabilité, après prise en compte de tous les symboles constituant le flux de données. De préférence, selon l'invention, l'algorithme de réévaluation se ramène à une première famille de fonctions prenant comme variables tout ou partie des variables d'évaluation et telle que si le dictionnaire des motifs associe au motif qui a été détecté des coefficients de motifs et/ou des informations de motifs, cette première famille de fonctions prend en outre comme variables ces coefficients de motifs et/ou ces informations de motif. Cette première famille de fonctions fournit alors comme résultat les nouvelles valeurs de tout ou partie des variables d'évaluation. La ou les fonction (s) constituant cette première famille de fonctions sont des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de réévaluation. L'algorithme de relaxation se ramène alors à une seconde famille de fonctions prenant comme variables tout ou partie des variables d'évaluation et fournissant comme résultat les nouvelles valeurs de tout ou partie de ces variables d'évaluation. La ou les fonction (s) constituant cette seconde famille de fonctions sont des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de relaxation. L'algorithme de calcul final des probabilités se ramène alors à une troisième famille de fonctions prenant comme variables les variables d'évaluation et fournissant comme résultat les probabilités locales. La ou les fonction(s) constituant cette troisième famille de fonctions sont des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de calcul final des probabilités. Les coefficients de motif, les valeurs initiales des variables d'évaluation, les paramètres de l'algorithme de réévaluation, les paramètres de l'algorithme de relaxation, les paramètres de l'algorithme de calcul final des probabilités sont ci-après appelés de façon générale les paramètres de calibrage. De préférence, selon l'invention, le procédé comprend en outre l'étape préalable supplémentaire d'associer à chaque symbole de l'alphabet des symboles, un coefficient de pondération appelé ci-après coefficient de pondération de symbole. La seconde famille de fonctions et/ou la troisième famille de fonctions prennent alors en outre comme variable supplémentaire le coefficient de pondération de symbole associé au symbole pris en compte et les paramètres de calibrage comprenant en outre ces coefficients de pondération de symbole. De préférence, selon l'invention, le procédé comprenant une étape supplémentaire, appelée ci-après le recalibrage, consistant, après l'analyse du flux de données et en fonction des résultats fournis par la fonction d'évaluation, à exécuter une ou plusieurs des sous-étapes suivantes : - la sous-étape d'ajouter un ou plusieurs motifs au dictionnaire des motifs, - la sous-étape de retirer un ou plusieurs motifs du dictionnaire des motifs, - la sous-étape de faire varier tout ou partie des paramètres de calibrage. De préférence, selon l'invention, le procédé comprenant une phase préalable ci-après dénommée phase d'apprentissage, consistant à réitérer à plusieurs reprises les étapes suivantes : l'étape de faire fonctionner la première phase et la seconde phase sur des flux de données dont les probabilités d'appartenance à des thématiques particulières sont connues à 1' avance, - l'étape d'exécuter le recalibrage, de façon à ce que les probabilités d'appartenance déterminées lors de la seconde phase du procédé soient le plus proche possible de valeurs fixées à l'avance. De préférence, selon l'invention, le dictionnaire des motifs et les paramètres de calibrage peuvent être modifiés à l'aide d'informations provenant d'une source externe. De préférence, selon l'invention, les motifs contenus dans le dictionnaire des motifs sont classifiés en trois catégories de motifs appelées ci-après catégorie des motifs opérationnels, catégorie des motifs candidats et catégorie des motifs en apprentissage. Le dictionnaire des motifs est alors tel qu'il associe des coefficients de motifs au moins à chacun des motifs candidats et à chacun des motifs en apprentissage. Le procédé est tel que l'éventuelle présence, dans le flux de données, de motifs appartenant à la catégorie des motifs candidats est détectée au cours de la première phase mais n'est pas prise en compte au cours de la seconde phase. Il comporte en outre une phase d'auto apprentissage se déroulant en parallèle de la première phase et de la seconde phase. Cette phase d'auto apprentissage comprenant elle-même deux parties appelées ci- après sélection des apprentis et formation des apprentis. La sélection des apprentis consiste, lorsque la présence d'un motif appartenant à la catégorie des motifs candi ats a été détectée au cours de la première phase, à modifier tout ou partie des coefficients de motif du motif ainsi détectés, cette modification prenant en compte tout ou partie des variables d'évaluation. Elle consiste en outre, selon les valeurs prises par les coefficients de motifs du motif ainsi détecté, à faire passer ou non ce motif ainsi détecté dans la catégorie des motifs en apprentissage. La formation des apprentis consiste, lorsque la présence d'un motif appartenant à la catégorie des motifs en apprentissage est détectée au cours de la première phase, à donner de nouvelles valeurs aux coefficients de motifs du motif ainsi détecté, ces nouvelles valeurs étant déterminées à partir des variables d'évaluation et des valeurs préalables des coefficients de motifs du motif ainsi détecté, la formation des apprentis pouvant en outre, en fonction de l'évolution des valeurs des coefficients de motifs du motif ainsi détecté, modifier la catégorie de ce motif. De préférence, selon l'invention, le procédé met en œuvre une famille de grammaires, composée de grammaires, chacune de ces grammaires comprenant une ou plusieurs règles susceptibles d'être vérifiées ou non par une suite de motifs, une suite de motifs vérifiant toutes les règles d'une grammaire appartenant à cette famille de grammaires étant ci-après qualifiée grammaticalement correcte pour cette grammaire. L'algorithme d'analyse de la seconde phase a alors pour objectif d'effectuer une analyse grammaticale des suites de motifs formées de tout ou partie des motifs détectés par les premiers processus d'analyse syntaxique mis en œuvre au cours de la première phase, une telle suite de motifs étant ci-après appelée suite détectée. Cette analyse grammaticale vérifie, pour chacune des suites détectées et pour chacune des grammaires appartenant à la famille de grammaires, si la suite détectée est grammaticalement correcte pour cette grammaire. De préférence, selon l'invention, la famille de grammaires étant représentée par un automate. Cet automate est constitué d'états et de transitions. À chaque état de l'automate est associé un nombre appelé adresse de cet état, de telle sorte que les adresses de deux états différents soient des nombres différents. L'un au moins des états de l'automate est appelé état final de cet automate. À chaque grammaire prise dans la famille de grammaires est associé un état de l'automate, appelé l'état initial de l'automate pour cette grammaire et à chaque transition de l'automate sont associés deux états de l'automate, ci-après appelés état de départ de la transition et état d'arrivée de la transition. À chacun des états finaux de l'automate est associée une grammaire prise dans la famille de grammaires et à chaque transition de l'automate est en outre attribué un ensemble composé d'une ou plusieurs séquences de symboles, ci-après appelé l'étiquette totale de cette transition, l'une de ces séquences de symboles de l'étiquette totale étant un motif appartenant au dictionnaire des motifs et étant ci-après appelé l'étiquette lexicale de la transition. Le procédé comprend une seconde étape préliminaire consistant à construire cet automate. La seconde phase met en œuvre, des seconds processus d'analyse grammaticale fonctionnant en parallèle, à chacun d'eux étant associés : - un motif détecté au cours de la première phase, ci- après appelé motif de démarrage de ce second processus d'analyse grammaticale et n'étant jamais modifié au cours de l'exécution du second processus d'analyse grammaticale, une grammaire appartenant à la famille de grammaires, - un nombre égal à l'adresse d'un état de l'automate, ce nombre faisant partie des variables d'évaluation et étant ci- après appelé la position du second processus d'analyse grammaticale et étant destiné à être modifié au cours de l'exécution de ce second processus d'analyse grammaticale. Le second processus d'analyse grammaticale commence à s'exécuter dès la détection du motif de démarrage et est chargé d'analyser si une suite de motifs détectés commençant à ce motif de démarrage est grammaticalement correcte pour la grammaire associée à ce second processus d'analyse grammaticale. La position du second processus d'analyse grammaticale étant, au moment où ce second processus d'analyse grammaticale commence à s'exécuter, égale à l'adresse de l'état initial de l'automate pour la grammaire associée au second processus d'analyse grammaticale. L'exécution du second processus d'analyse grammaticale inclut, à la prise en compte de chacun des motifs détectés : - a) une étape de filtrage consistant à décider si une ou plusieurs des transitions de l'automate seront utilisées lors de la prise en compte du motif détecté, cette étape de filtrage considérant successivement toutes les transitions dont l'état de départ est l'état dont l'adresse est égale à la position du second processus d'analyse grammaticale, et appliquant à chacune des transitions ainsi considérées un algorithme de décision qui a pour objet de décider si cette transition sera utilisée lors de la prise en compte du motif détecté, une telle transition étant alors par la suite appelée une transition active pour ce motif détecté, cet algorithme de décision prenant comme arguments tout ou partie de l'étiquette totale de la transition ainsi que le motif détecté pris en compte, - b) une étape d'exécution consistant, - s'il n'y a aucune transition active pour le second processus d'analyse grammaticale, à mettre en œuvre un algorithme d'arrêt ayant pour objet de décider si ce second processus d'analyse grammaticale, doit être arrêté et si oui, de mettre fin à ce second processus d'analyse grammaticale, - s'il y a une seule transition active pour le second processus d'analyse grammaticale, à donner comme valeur à la position du second processus d'analyse grammaticale l'adresse de l'état d'arrivée de la transition active, - s'il y a plusieurs transitions actives pour le second processus d'analyse grammaticale, à effectuer autant de duplications que nécessaire de ce second processus d'analyse grammaticale, de façon à associer à chacune de ces transitions actives, l'une copie de ce second processus d'analyse grammaticale issue de la ou des duplication (s) , la position de cette copie étant alors égale à l'adresse de l'état d'arrivée de la transition à laquelle cette copie est associée, - c) une étape de signalisation consistant, pour le second processus d'analyse grammaticale ou, dans le cas où il y a eu duplication lors de l'étape précédente, pour chacune des copies du second processus d'analyse grammaticale issues de cette ou de ces duplication (s) , à signaler si l'état dont l'adresse est égale à la position du second processus d'analyse grammaticale est un état final de l'automate. La seconde phase comprend alors en outre, après la prise en compte de chacun des motifs détectés, une seconde étape complémentaire consistant à fournir une liste de tous les états finaux dont l'adresse est égale à la position d'un au moins des seconds processeurs d'analyse grammaticale en cours d'exécution, cette liste étant ci-après appelée liste des états finaux détectés. Il résulte de la combinaison des traits techniques de l'invention que chaque état final de la liste des états finaux détectés correspond à une suite détectée, grammaticalement correcte pour la grammaire associée à cet état final, et se terminant au motif détecté pris en compte. De préférence, selon l'invention, à chacun des seconds processus d'analyse grammaticale est associée une suite de symboles appelée pile de ce second processus d'analyse grammaticale; cette pile faisant partie des variables d'évaluation, ayant une valeur initiale définie à l'avance au moment où le second processus d'analyse grammaticale commence à s'exécuter, et étant destinée à être modifiée au cours de l'exécution du second processus d'analyse grammaticale. L'algorithme de décision, mis en œuvre lors de l'étape de filtrage et appliqué à une transition, prend alors en outre comme argument la valeur de la pile, et, lorsque la transition est une transition active, il détermine en outre une suite de symboles appelée nouvelle pile cette transition active. L'étape d'exécution réalise en outre - s'il y a une seule transition active pour le second processus d'analyse grammaticale, l'opération de remplacer la pile par la nouvelle pile pour cette transition active, - s'il y a eu duplication, l'opération, pour chacun des seconds processus d'analyse grammaticale issus de la ou des duplication(s) , de remplacer la pile du second processus d'analyse grammaticale issu de la ou des duplication (s) , par la nouvelle pile pour la transition active à laquelle est associé ce second processus d'analyse grammaticale issu de la ou des duplication (s) . L'algorithme d'arrêt mis en œuvre en l'absence de transitions actives prend alors en outre comme argument la pile. De préférence, selon l'invention, à chacun des seconds processus d'analyse grammaticale est associée une variable appelée variable résultat qui fait partie des variables d'évaluation et qui est, lors du démarrage de ce second processus d'analyse grammaticale, mise à une valeur initiale définie à l'avance. L'exécution du second processus d'analyse grammaticale incluant alors, lors la prise en compte de chacun des motifs détectés, une étape de calcul supplémentaire ayant pour objet de modifier la valeur de la variable résultat, cette étape de calcul prenant comme arguments : - le motif détecté, - la valeur, avant modification, de la variable résultat, - l'étiquette totale de la transition active, ou, si le second processus d'analyse grammaticale est issu d'une duplication, l'étiquette totale de la transition active à laquelle il est associé, et fournissant comme résultat une valeur qui sera ensuite affectée comme nouvelle valeur à la variable résultat. De préférence, selon l'invention, le procédé s'applique à un flux de données transitant sur un réseau de communications, et il comporte en outre une phase finale consistant, selon les valeurs prises par les variables d'évaluation, à laisser passer le flux de données sans aucune modification ou à exécuter une ou plusieurs des actions suivantes : - modifier le contenu du flux de données, - modifier l'adresse de destination du flux de données, - envoyer une information à une adresse préalablement spécifiée, - bloquer le passage du flux de données. De préférence, selon l'invention, le procédé comprend en outre une phase initiale de stockage temporaire de tout ou partie du flux de données, le flux de données ou la partie du flux de données ainsi stockée, étant déstocké et transmis, avec ou sans modification, à l'issue de la phase finale. L'invention concerne aussi un système pour l'analyse d'un flux de données, cette analyse se faisant à la volée, le flux de données se présentant comme une suite de symboles pris dans un ensemble de symboles appelé ci-après l'alphabet des symboles, le système mettant en œuvre un dictionnaire ci-après appelé dictionnaire des motifs et composé de certaines séquences particulières de symboles appelées ci-après des motifs. Le dictionnaire des motifs est représenté sous forme d'une arborescence constituée de branches et de nœuds. Chaque branche de l'arborescence part d'un nœud de l'arborescence, ci- après appelé nœud de départ de cette branche, et arrive à un autre nœud de l'arborescence ci-après appelé nœud d'arrivée de la branche. Un nœud de l'arborescence dont ne part aucune branche de l'arborescence est ci-après appelé un nœud terminal. L'arborescence est telle qu'il existe un et un seul nœud auquel n'arrive aucune branche, ce nœud auquel n'arrive aucune branche étant ci-après dénommé la racine. À chaque branche de l'arborescence est attribué un symbole de l'alphabet des symboles, ci-après appelé l'étiquette de cette branche et à chaque nœud de l'arborescence est associé une suite de symboles ci-après dénommée le préfixe de ce nœud, ce préfixe étant composé des étiquettes des branches reliant la racine à ce nœud, ces étiquettes étant prises dans l'ordre où elles sont rencontrées. Le préfixe de la racine est la suite ne comprenant aucun élément. À chaque nœud est par ailleurs associée une famille de motifs formée des motifs contenus dans le dictionnaire des motifs et qui commencent par le préfixe de ce nœud, le nombre de motifs contenus dans la famille associée à ce nœud étant ci-après appelé la richesse du nœud. L'arborescence est telle qu'aucun de ses noeuds n'ait une richesse égale à zéro et elle est en outre telle que tout nœud terminal de l'arborescence ait un préfixe égal à un motif contenu dans le dictionnaire des motifs et que pour tout motif contenu dans le dictionnaire des motifs, il y ait un et un seul nœud de l'arborescence dont le préfixe soit égal à ce motif. À chaque nœud de l'arborescence est associé un nombre appelé adresse de ce nœud, de telle sorte que les adresses de deux nœuds différents soient des nombres différents. Le système comprend des premiers moyens de stockage permettant de stocker cette arborescence. Le système comprend des premiers moyens de traitement permettant de détecter la présence ou non, au sein du flux de données, de motifs appartenant au dictionnaire des motifs, ces premiers moyens de traitement fonctionnant à la volée et prenant en compte successivement les symboles constituant le flux de données. Les premiers moyens de traitement sont tels que si un motif, appartenant au dictionnaire des motifs, est présent dans le flux de données, les premiers moyens de traitement en détectent la présence dès la prise en compte du dernier symbole constituant ce motif. Les premiers moyens de traitement permettent de mettre en œuvre des premiers processus d'analyse syntaxique fonctionnant en parallèle, à chacun d'eux étant associés - d'une part un des symboles constituant le flux de données, ce symbole étant ci-après appelé symbole de démarrage de ce premier processus d'analyse syntaxique et n'étant jamais modifié au cours de l'exécution du premier processus d'analyse syntaxique, - d'autre part des moyens de stockage destinés à contenir un nombre égal à l'adresse d'un nœud de l'arborescence, ce nombre étant ci-après appelé la position du premier processus d'analyse syntaxique et étant destiné à être modifié au cours de l'exécution du premier processus d'analyse syntaxique. Le premier processus d'analyse syntaxique commence à s'exécuter dès la prise en compte du symbole de démarrage et est chargé de détecter, pour toutes les valeurs successives de l'entier N, si la séquence de N symboles consécutifs, extraite du flux de données, cette extraction débutant au symbole de démarrage, est égale à un des motifs du dictionnaire des motifs. La position du premier processus d'analyse syntaxique est, au moment où ce premier processus d'analyse syntaxique commence à s'exécuter, égale à l'adresse de la racine de 1'arborescence. Les premiers moyens de traitement permettant, à la prise en compte de chacun des symboles constituant le flux de données, pour chaque premier processus d'analyse syntaxique, de réaliser les opérations suivantes : l'opération de repérer s'il y a, dans l'arborescence, une ou plusieurs branche (s) partant du nœud dont l'adresse est égale à la position de ce premier processus d'analyse syntaxique et dont l'étiquette est égale au symbole pris en compte, cette ou ces branche (s) étant ci-après appelée (s) la ou les branche (s) active (s) pour ce premier processus d'analyse syntaxique, - l'opération - s'il n'y a aucune branche active pour ce premier processus d'analyse syntaxique, d'arrêter l'exécution de ce premier processus d'analyse, syntaxique, - s'il y a une seule branche active pour ce premier processus d'analyse syntaxique, de donner comme valeur à la position de ce premier processus d'analyse syntaxique l'adresse du nœud d'arrivée de cette branche active, - s'il y a plusieurs branches actives pour ce premier processus d'analyse syntaxique, de dupliquer ce premier processus d'analyse syntaxique autant de fois que nécessaire, de façon à associer à chacune de ces branches actives, une copie de ce premier processus d'analyse syntaxique, la position de cette copie étant alors égale à l'adresse du nœud d'arrivée de la branche active à laquelle elle est associée, - l'opération, pour ce premier processus d'analyse syntaxique, si son exécution n'a pas été arrêtée au cours de l'étape précédente, ou, dans le cas où il y a eu duplication lors de l'étape précédente, l'opération, pour chacune des copies du premier processus d'analyse syntaxique, de signaler si le préfixe du nœud dont l'adresse est égale à la position de ce premier processus d'analyse syntaxique est égal à un motif contenu dans le dictionnaire des motifs, ce motif étant alors ci-après appelé un motif détecté par ce premier processus d'analyse syntaxique. Les premiers moyens de traitement permettant en outre, après la prise en compte de chacun des symboles constituant le flux de données, de réaliser une première opération complémentaire consistant à fournir une liste de tous les motifs détectés, lors de la prise en compte du symbole, par l'un au moins des processeurs d'analyse syntaxique en cours d'exécution, cette liste étant ci-après appelée liste des motifs détectés. Il résulte de la combinaison des traits techniques de l' invention que la liste des motifs détectés comprend tous les motifs présents dans le flux à analyser, se terminant au symbole pris en compte et égaux à un motif du dictionnaire des motifs. De préférence, selon l'invention, le dictionnaire des motifs associe à tout ou partie des motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif, et le système comprenant des moyens de stockage de ces coefficients de motifs et/ou de ces informations de motifs, les premiers moyens de traitement étant alors tels que si le dictionnaire des motifs associe à un motif des coefficients de motifs et/ou des informations de motifs, ces coefficients de motifs et/ou ces informations de motif sont fournis par les premiers moyens de traitement en même temps qu'est détectée la présence du motif. De préférence, selon l'invention, le système comprend des moyens de stockage permettant de stocker une ou plusieurs variables appelées ci-après variables d'évaluation et des moyens de traitement permettant d' initialiser ces variables d'évaluation à des valeurs fixées à l'avance et ci-après appelées valeurs initiales des variables d'évaluation. Le système comprend alors, en outre, des seconds moyens de traitement permettant de mettre en œuvre un algorithme d'analyse, cet algorithme d'analyse prenant en compte un ou plusieurs arguments et ayant pour effet, selon la valeur de ces arguments, de modifier la valeur de tout ou partie des variables d'évaluation. Le système est tel que les premiers moyens de traitement et les seconds moyens de traitement s'exécutent à la volée, de façon imbriquée, l'algorithme d'analyse étant mis en oeuvre dès que les premiers moyens de traitement ont fourni un motif détecté, ce motif détecté étant alors l'un des arguments de l'algorithme d'analyse. De préférence, selon l'invention, le dictionnaire des motifs associe à tout ou partie des motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif, et le système comprend des moyens de stockage des coefficients de motifs et/ou des informations de motifs. Les premiers moyens de traitement sont alors tels que si le dictionnaire des motifs associe à un motif des coefficients de motifs et/ou des informations de motifs, ces coefficients de motifs et/ou ces informations de motif sont fournis par les premiers moyens de traitement en même temps qu'est détectée la présence de ce motif, les coefficients de motifs et/ou les informations de motif étant alors des arguments de l'algorithme d'analyse. De préférence, selon l'invention, l'algorithme d'analyse est en outre mis en oeuvre dès que les premiers moyens de traitement ont achevé la prise en compte d'un symbole constituant le flux de données, ce symbole pris en compte étant alors un argument de l'algorithme d'analyse. De préférence, selon l'invention, les premiers moyens de traitement comprennent en outre une fonctionnalité permettant de marquer tout ou partie des motifs comme étant des motifs prioritaires, et d'associer à chacun de ces motifs prioritaires au moins une action à exécuter. Le système objet de la présente invention comprend en outre des moyens de traitement permettant d'exécuter les actions associées à ces motifs prioritaires. La première opération complémentaire consiste alors en outre à lancer l'exécution de la ou des action (s) associée (s) à tous les motifs prioritaires contenus dans la liste des motifs détectés. Le système comprend en outre des moyens de traitement permettant d'inhiber la mise en œuvre de l'algorithme d'analyse lorsque l'un des motifs détectés est un motif prioritaire auquel est associée une action ayant pour effet d'inhiber l'algorithme d' analyse. De préférence, selon l'invention, le système comprend en outre des moyens de traitement permettant de réaliser l'opération préalable de modifier le dictionnaire des motifs, le résultat de cette modification étant ci-après appelé le dictionnaire des motifs modifié, et de modifier l'arborescence, par ajout de nouvelles branches et de nouveaux nœuds, et/ou par suppression de branches et de nœuds. Le résultat de cette modification est ci-après appelé l'arborescence modifiée. L'arborescence modifiée est en outre telle que tout nœud terminal de l'arborescence modifiée ait un préfixe égal à un motif contenus dans le dictionnaire des motifs modifié et que pour tout motif contenu dans le dictionnaire des motifs modifié, il y ait un et un seul nœud de l'arborescence modifiée dont le préfixe soit égal à ce motif. De préférence, selon l'invention, l'algorithme d'analyse consiste à déterminer la probabilité ou les probabilités que tout ou partie des données constituant le flux de données appartienne à une ou à plusieurs thématique (s) particulière (s) , ces probabilités étant ci-après appelées probabilités d'appartenance et faisant partie des variables d'évaluation. Ces probabilités d'appartenance sont calculées à l'aide d'une fonction, ci-après appelée fonction d'évaluation, qui prend en compte les motifs détectés par les premiers moyens de traitement. Le système comprend des moyens de traitement permettant de modifier les valeurs de toutes ou partie des variables d'évaluation, notamment la valeur des probabilités d'appartenance, en appliquant, pour chaque symbole pris en compte, les opérations suivantes : l'opération, si un motif, appartenant au dictionnaire des motifs et se terminant par le symbole pris en compte, a été détecté dans le flux de données par les premiers moyens de traitement, de modifier tout ou partie de ces variables d' évaluation en mettant en œuvre un algorithme . ci- après appelé algorithme de réévaluation, cet algorithme de réévaluation prenant en compte le motif qui a été détecté, le système étant tel que, si le dictionnaire des motifs associe au motif ayant a été détecté des coefficients de motifs et/ou des informations de motifs, l'algorithme de réévaluation prend en compte en outre ces coefficients de motifs et/ou ces informations de motif, l'opération, si aucun motif, appartenant au dictionnaire des motifs et se terminant par le symbole pris en compte, n'a été détecté dans le flux de données par les premiers moyens de traitement, de modifier tout ou partie des variables d'évaluation en mettant en œuvre un algorithme ci-après appelé algorithme de relaxation, - l'opération, après mise en œuvre selon le cas, de l'algorithme de réévaluation ou de l'algorithme de relaxation, d'appliquer un algorithme, ci-après appelé algorithme de calcul final des probabilités, qui prend comme arguments les valeurs de tout ou partie des variables d'évaluation et fournit comme résultat des valeurs provisoires de la probabilité ou des probabilités que la partie du flux de données qui se termine au symbole pris en compte appartienne à la thématique particulière ou aux thématiques particulières, les valeurs prises alors par la ou les probabilités étant ci-après appelée (s) probabilités locales. Le système comprend en outre des moyens de traitement permettant de calculer à l'aide de la fonction d'évaluation les probabilités d'appartenance, pour chaque thématique particulière, en prenant en compte les valeurs successives des probabilités locales, fournies par l'algorithme de calcul final de la probabilité, après prise en compte de tous les symboles constituant le flux de données. De préférence, selon l'invention, l'algorithme de réévaluation se ramène à une première famille de fonctions prenant comme variables tout ou partie des variables d'évaluation, cette première famille de fonctions étant telle que si le dictionnaire des motifs associe au motif qui a été détecté des coefficients de motifs et/ou des informations de motifs, la première famille de fonctions prend en outre comme variables ces coefficients de motifs et/ou ces informations de motif. La première famille de fonctions fournit comme résultat les nouvelles valeurs de tout ou partie des variables d'évaluation, la ou les fonction (s) constituant cette première famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de réévaluation. L'algorithme de relaxation se ramène à une seconde famille de fonctions prenant comme variables tout ou partie des variables d'évaluation et fournissant comme résultat les nouvelles valeurs de tout ou partie des variables d'évaluation, la ou les fonction (s) constituant la seconde famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de relaxation. L'algorithme de calcul final des probabilités se ramène à une troisième famille de fonctions prenant comme variables les variables d'évaluation et fournissant comme résultat les probabilités locales, la ou les fonction (s) constituant la troisième famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de calcul final des probabilités. Les coefficients de motif, les valeurs initiales des variables d'évaluation, les paramètres de l'algorithme de réévaluation, les paramètres de l'algorithme de relaxation, les paramètres de l'algorithme de calcul final des probabilités sont ci-après appelés de façon générale les paramètres de calibrage. Le système comprend des moyens de stockage permettant de stocker les valeurs des paramètres de calibrage. De préférence, selon l'invention, le système comprend en outre des moyens de traitement permettant de réaliser une opération supplémentaire consistant à associer à chaque symbole de l'alphabet des symboles, un coefficient de pondération appelé ci-après coefficient de pondération de symbole. La seconde famille de fonctions et/ou la troisième famille de fonctions prennent alors en outre comme variable supplémentaire le coefficient de pondération de symbole associé au symbole pris en compte. Les paramètres de calibrage comprennent en outre les coefficients de pondération de symbole. De préférence, selon l'invention, le système comprend en outre des moyens de traitement permettant de réaliser une opération supplémentaire, appelée ci-après le recalibrage, consistant, après l'analyse du flux de données et en fonction des résultats fournis par la fonction d'évaluation, à exécuter une ou plusieurs des sous-opérations suivantes : - la sous-opération d'ajouter un ou plusieurs motifs au dictionnaire des motifs, - la sous-opération de retirer un ou plusieurs motifs du dictionnaire des motifs, - la sous-opération de faire varier tout ou partie des paramètres de calibrage. De préférence, selon l'invention, le système comprend des moyens de traitement permettant de réaliser une opération préalable ci-après dénommée apprentissage, consistant à réitérer à plusieurs reprises les sous-opérations suivantes : - la sous-opération de faire fonctionner les premiers moyens de traitement et les seconds moyens de traitement sur des flux de données dont les probabilités d'appartenance à des thématiques particulières sont connues à l'avance, - la sous-opération d'exécuter le recalibrage de façon à ce que les probabilités d'appartenance déterminées par les seconds moyens de traitement soient le plus proche possible de valeurs fixées à l'avance. De préférence, selon l'invention, le système comprend des moyens de traitement permettant de modifier le dictionnaire des motifs et les paramètres de calibrage à l'aide d'informations provenant d'une source externe. De préférence, selon l'invention, les motifs contenus dans le dictionnaire des motifs sont classifiés en trois catégories de motifs appelées ci-après catégorie des motifs opérationnels, catégorie des motifs candidats et catégorie des motifs en apprentissage. Le dictionnaire des motifs est tel qu'il associe des coefficients de motifs au moins à chacun des motifs candidats et à chacun des motifs en apprentissage. Le système est alors tel que l'éventuelle présence, dans le flux de données, de motifs appartenant à la catégorie des motifs candidats est détectée par les premiers moyens de traitement mais n'est pas prise en compte par les seconds moyens de traitement. Le système comprend en outre des moyens de traitement permettant de réaliser une opération d'auto apprentissage, cette opération d'auto apprentissage comprenant elle-même deux parties appelées ci-après sélection des apprentis et formation des apprentis . La sélection des apprentis consiste, lorsque la présence d'un motif appartenant à la catégorie des motifs candidats a été détectée par les premiers moyens de traitement, à modifier tout ou partie des coefficients de motif du motif ainsi détecté, cette modification prenant en compte tout ou partie des variables d'évaluation. La sélection des apprentis consiste en outre, selon les valeurs prises par les coefficients de motifs du motif ainsi détecté, à faire passer ou non ce motif ainsi détecté dans la catégorie des motifs en apprentissage. La formation des apprentis consiste, lorsque la présence d'un motif appartenant à la catégorie des motifs en apprentissage est détectée par les premiers moyens de traitement, à donner de nouvelles valeurs aux coefficients de motifs du motif ainsi détecté, ces nouvelles valeurs étant déterminées à partir des variables d'évaluation et des valeurs préalables des coefficients de motifs du motif ainsi détecté, cette formation des apprentis pouvant, en fonction de l'évolution des valeurs des coefficients de motifs du motif ainsi détecté, modifier la catégorie de ce motif ainsi détecté. De préférence, selon l'invention, le système comprend des moyens de traitement permettant de mettre en œuvre une famille de grammaires, composée de grammaires, chacune de ces grammaires comprenant une ou plusieurs règles susceptibles d'être vérifiées ou non par une suite de motifs. Une suite de motifs vérifiant toutes les règles d'une grammaire appartenant à cette famille de grammaires est ci-après qualifiée grammaticalement correcte pour cette grammaire. L'algorithme d'analyse mis en œuvre par les seconds moyens de traitement a alors pour objectif d'effectuer une analyse grammaticale des suites de motifs formées de tout ou partie des motifs détectés par les premiers moyens de traitement, une telle suite de motifs étant ci-après appelée suite détectée, cette analyse grammaticale vérifiant, pour chacune des suites détectées et pour chacune des grammaires appartenant à la famille de grammaires, si la suite détectée est grammaticalement correcte pour cette grammaire. De préférence, selon l'invention, la famille de grammaires est représentée par un automate constitué d'états et de transitions. À chaque état de l'automate est associé un nombre appelé adresse de cet état, de telle sorte que les adresses de deux états différents soient des nombres différents. L'un au moins des états de l'automate est appelé état final de l'automate. À chaque grammaire prise dans la famille de grammaires est associé un état de l'automate, appelé l'état initial de l'automate pour cette grammaire. À chaque transition de l'automate sont associés deux états de l'automate, ci-après appelés état de départ de la transition et état d'arrivée de la transition. À chacun des états finaux de l'automate est associée une grammaire prise dans la famille de grammaires et à chaque transition de l'automate est en outre attribué un ensemble composé d'une ou plusieurs séquences de symboles, ci-après appelé l'étiquette totale de cette transition, l'une des séquences de symboles de l'étiquette totale étant un motif appartenant au dictionnaire des motifs et étant ci-après appelé l'étiquette lexicale de la transition. Le système comprend des moyens de stockage permettant de stocker l'automate et des moyens de traitement permettant de réaliser une seconde opération préliminaire consistant à construire l'automate. Le système ^comprend des moyens de traitement permettant de mettre en œuvre des seconds processus d'analyse grammaticale fonctionnant en parallèle, à chacun d'eux étant associé : - un motif détecté par les premiers moyens de traitement, ce motif étant ci-après appelé motif de démarrage de ce second processus d'analyse grammaticale et n'étant jamais modifié au cours de l'exécution du second processus d'analyse grammaticale, - une grammaire appartenant à la famille de grammaires, - un nombre égal à l'adresse d'un état de l'automate, ce nombre faisant partie des variables d'évaluation et étant ci- après appelé la position de ce second processus d'analyse grammaticale et étant destiné à être modifié au cours de l'exécution du second processus d'analyse grammaticale. Le système comprend des moyens de traitement permettant de démarrer l'exécution d'un second processus d'analyse grammaticale dès la détection de son motif de démarrage, ce second processus d'analyse grammaticale étant chargé d'analyser si une suite de motifs détectés commençant à ce motif de démarrage est grammaticalement correcte pour la grammaire associée au second processus d'analyse grammaticale. La position du second processus d'analyse grammaticale est, au moment où il commence à s'exécuter, égale à l'adresse de l'état initial de l'automate pour la grammaire associée à ce second processus d'analyse grammaticale. Ces moyens de traitement permettant en outre de mettre en œuvre les seconds processus d'analyse grammaticale et permettent, à la prise en compte de chacun des motifs détectés, de réaliser les opérations suivantes : - a) une opération de filtrage consistant à décider si une ou plusieurs des transitions de l'automate seront utilisées lors de la prise en compte du motif détecté, cette étape de filtrage considérant successivement toutes les transitions dont l'état de départ est l'état dont l'adresse est égale à la position du second processus d'analyse grammaticale, et appliquant à chacune des transitions ainsi considérées un algorithme de décision ayant pour objet de décider si cette transition sera utilisée lors de la prise en compte du motif détecté, une telle transition étant alors par la suite appelée une transition active pour ce motif détecté, l'algorithme de décision prenant comme argument tout ou partie de l'étiquette totale de la transition ainsi que le motif détecté pris en compte, - b) une opération d'exécution consistant, - s'il 'y a aucune transition active pour le second processus d'analyse grammaticale, à mettre en œuvre un algorithme d'arrêt ayant pour objet de décider si ce second processus d'analyse grammaticale, doit être arrêté et si oui, de mettre fin à ce second processus d'analyse grammaticale, - s'il y a une seule transition active pour ce second processus d'analyse grammaticale, à donner comme valeur à la position de ce second processus d'analyse grammaticale l'adresse de l'état d'arrivée de cette transition active, - s'il y a plusieurs transitions actives pour le second processus d'analyse grammaticale, à effectuer autant de duplications que nécessaire du second processus d'analyse grammaticale, de façon à associer à chacune de ces transitions actives, une copie de ce second processus d'analyse grammaticale issue de cette ou de ces duplication (s) , la position de cette copie étant alors égale à l'adresse de l'état d'arrivée de la transition à laquelle cette copie est associée, - c) une opération de signalisation consistant, pour le second processus d'analyse grammaticale ou, dans le cas où il y a eu duplication lors de l'étape précédente, pour chacune des copies du second processus d'analyse grammaticale issues de cette ou de ces duplication (s) , à signaler si l'état dont l'adresse est égale à la position du second processus d'analyse grammaticale est un état final de l'automate. Le système comprend en outre des moyens de traitement permettant, après la prise en compte de chacun des motifs détectés, de réaliser une seconde opération complémentaire consistant à fournir une liste de tous les états finaux dont l'adresse est égale à la position d'un au moins des seconds processeurs d'analyse grammaticale en cours d'exécution, cette liste étant ci-après appelée liste des états finaux détectés. Il résulte de la combinaison des traits techniques de l' invention que chaque état final de cette liste des états finaux détectés correspond à une suite détectée, grammaticalement correcte pour la grammaire associée à cet état final, et se terminant au motif détecté pris en compte. De préférence, selon l'invention, à chacun des seconds processus d'analyse grammaticale est associée une suite de symboles appelée pile de ce second processus d'analyse grammaticale, cette pile faisant partie des variables d'évaluation, ayant une valeur initiale définie à l'avance au moment où le second processus d'analyse grammaticale commence à s'exécuter, et étant destinée à être modifiée au cours de l'exécution du second processus d'analyse grammaticale. Le système comprend alors des moyens de stockage permettant de stocker cette pile et l'algorithme de décision mis en œuvre lors de l'étape de filtrage et appliqué à une transition, prend en outre comme argument la valeur de la pile, et, lorsque la transition est une transition active, l'algorithme de décision détermine en outre une suite de symboles appelée nouvelle pile pour cette transition active. L'étape d'exécution réalise en outre - s'il y a une seule transition active pour le second processus d'analyse grammaticale, l'opération de remplacer la pile par la nouvelle pile pour cette transition active, - s'il y a eu duplication, l'opération, pour chacun des seconds processus d'analyse grammaticale issus de cette ou de ces duplication (s) , de remplacer la pile de ce second processus d'analyse grammaticale issu de la ou des duplication (s) , par la nouvelle pile pour la transition active à laquelle est associé ce second processus d'analyse grammaticale issu de la ou des duplication (s) . L'algorithme d'arrêt mis en œuvre en l'absence de transitions actives prend en outre comme argument la pile. De préférence, selon l'invention, à chacun des seconds processus d'analyse grammaticale est associée une variable appelée variable résultat, cette variable résultat faisant partie des variables d'évaluation. Le système comprend alors des moyens de stockage permettant de stocker la valeur de la variable résultat et des moyens de traitement permettant, lors du démarrage d'un second processus d'analyse grammaticale, de mettre la variable résultat à une valeur initiale définie à l'avance, et permettant en outre de modifier la valeur de la variable résultat lors la prise en compte de chacun des motifs détectés, cette modification prenant en compte le motif détecté ainsi que l'étiquette totale d'une transition active pour ce second processus d'analyse grammaticale, ou si le second processus d'analyse grammaticale est issu d'une duplication, l'étiquette totale de la transition active à laquelle il est associé. De préférence, selon l'invention, le système s'applique à un flux de données transitant sur un réseau de communications, et comportant en outre des moyens de traitement permettant, selon les valeurs prises par les variables d'évaluation, de laisser passer le flux de données sans aucune modification ou d'exécuter une ou plusieurs des actions suivantes : - modifier le contenu du flux de données, - modifier l'adresse de destination du flux de données, - envoyer une information à une adresse préalablement spécifiée, - bloquer le passage du flux de données. De préférence, selon l'invention, le système comprend en outre des moyens de stockage temporaire de tout ou partie du flux de données, et des moyens de retransmission, avec ou sans modification, du flux ainsi stocké. L'analyse est réalisée, nous l'avons vu, à la volée.(like porn and pornichet, or sexagenarian, or analysis). Access to harmless documentation should not be prejudiced by too strict rules, nor should the classification be too lax. In general, we will designate by theme the class in which we want to classify the data flow or a part of it. In the case of a text in natural language, it could be themes or semantic fields such as violence, weapons, pornography or text of a scientific, legal, religious nature, etc. If the data flow contains an executable code, the theme is linked to characteristics of this code? Is it likely to have read and / or write access to certain files? Is it likely to duplicate to spread in the network? Does it contain a computer virus already referenced? Note that a data flow can belong to several themes. The classification algorithms usually used use a large repository of documents, require large amounts of memory, and of course require having previously found and classified the relevant documents. To perform an effective analysis of the network flow, you must also determine which protocol is used by a particular communication flow, and, if necessary, analyze the flow to extract various information of a semantic nature (port used, address of the 'sender, type of encryption used ...) information which will be used to decide what action to take to ensure network security. Note that several protocols can be nested. One can possibly transmit via a given protocol, a text containing a part respecting another protocol, this text itself being able to contain harmful codes (Viruses, Trojans ...) contained for example in macros of certain office files ( Word, Excel) or in an executable program. Such nesting is called encapsulation. The encapsulation of the protocols plays a role similar to the quotation marks which make it possible, in a text, to quote another text, whose grammatical structure can be very different from the first. The problem posed is therefore complex. On the one hand, it is necessary to recognize which, among a large number of possible protocols, is the particular protocol used in such or such part of the flow. On the other hand, depending on this protocol, it is necessary to determine the theme or themes to which all or part of the content of the data flow is related.  The invention which is the subject of this patent provides an original solution to this problem. It makes it possible to analyze, on the fly, data flows passing over a network. For the purposes of the present invention, "on the fly" means that the symbols constituting the data stream • are taken into account sequentially as they are encountered, none of them being stored in memory. In addition, and this is one of the major interests of the present invention, this analysis uses only limited computer resources, both in memory and in computing power and can therefore be implemented in particular on a small device placed in break between the network and a particular workstation or more generally between the network and a computer system connected to this network. This device can be an independent unit and it can also be integrated into a modem, a network card, a router or any other communication unit. Network security can thus be ensured within the network itself, and not on the user's workstation. The invention which is the subject of this patent therefore prevents a significant part of the computer resources of the workstation from being used by security applications. On the other hand, it makes it possible to filter unwanted content before it enters the user's workstation. Among the many applications of the invention, it should be noted that it thus makes it possible to produce an antivirus which detects harmful codes, even before they have reached the computer, and which can thus block their passage, as opposed to antiviruses classics that can only detect viruses once they have entered the workplace. The invention also makes it possible to carry out parental control functions, filtering texts which are not desired to be read by children. Likewise, it could allow, within a company, to filter network accesses and to avoid that employees are tempted to pass too much time on websites unrelated to their missions. In the following, we will say that the data flow passing over the network is composed of symbols (for example bytes), and we will call pattern a sequence of symbols whose presence must be sought within the flow. These reasons include words whose presence in the analyzed data stream can provide useful indications for determining the protocol and / or classifying the text. In addition, certain reasons (such as for example prohibited URLs, or virus signatures and more generally harmful executable codes, etc.) are such that their presence must cause immediate actions to be triggered, possibly in some cases up to '' to cause communication breakdown and / or analysis stop. These reasons will hereinafter be called priority reasons. The invention which is the subject of this patent is structured around four entities. The first entity is a dictionary, called the pattern dictionary, containing the patterns to be searched for, and providing for some of them, additional information useful for determining the protocol and / or classifying the flow. The pattern dictionary can be made up a priori, for example using a corpus of texts whose classification is known, and it can be enriched by self-learning as the invention is used. The pattern dictionary can relate to one or more themes. The second entity is an algorithm making it possible to detect on the fly if there are patterns in the pattern dictionary in the data stream. For each symbol constituting the data flow, this algorithm implements a small software unit which we will call, thereafter, a first syntactic analysis process, and which is responsible for detect whether or not there is a pattern starting at this symbol and equal to a pattern in the dictionary. The pattern dictionary is stored computer in a specific format, in the form of a tree structure which makes it possible to optimize both the memory space occupied and the computer resources necessary for syntactic and semantic algorithms. The third entity is a semantic analysis realizing the classification of all or part of the data flow by a semantic algorithm. It uses evaluation variables linked to the patterns detected, as well as their frequencies of appearance and / or the mutual positions of the patterns detected. These evaluation variables then make it possible to determine the probabilities of belonging of the data flow to a given theme. Learning mechanisms make it possible to improve the relevance of the results of the invention, this learning being done either in a supervised manner, thanks to the provision of data streams whose classification is known in advance, or in an unsupervised manner , during the operational operation of the invention. The fourth entity performs the protocol search by determining whether the patterns detected by the syntactic algorithm are arranged with respect to each other in accordance with the syntax of one of the protocols sought (IP, FTP, application protocol ...) c ' that is, if they check the grammar of this protocol. From a more abstract point of view, it is a question of recognizing whether the stream analyzed (or a part of it) conforms to one grammar or to several grammars among a family of grammars to be analyzed. This grammatical analysis collects certain semantic information in passing. Classically, we use a compiler to decide if a text conforms to a given grammar (cf. for example A. Aho, R. Sethi, J. Ull an: Compilers, Principles, Techniques et Outils, InterEditions 1989 for French translation). More precisely, this task is carried out by the first two stages of compilation, which are lexical analysis (division of the flow into lexical units) and syntactic analysis (grouping these lexical units into grammatical structures). Collecting the information sought is the third step in the compilation, which is semantic analysis. These conventional techniques are not applicable in the present case, because they do not make it possible to carry out on the fly, in a single pass of the stream to be analyzed, the search for patterns, the semantic analysis and the search for protocols. In addition, it does not allow the simultaneous analysis, during this single passage, of several protocols in accordance with several grammars. Indeed, the implementation of as many compilers as there are grammars taken into account would lead to an increase in the necessary computer resources (computation time and memory spaces) which would quickly become prohibitive, in particular in the event of implementation implemented on an embedded processor placed on the network. The principle of using an automaton to recognize if a text (series of symbols) belongs to a given language (therefore respects a grammar) is classic (cf. for example J.-L. Stehlé, P. Hochard: Computers et Langages, Éditions Ellipses 1989). When the grammar is rational, a finite automaton is sufficient. When the grammar is algebraic and not rational, a battery-powered automaton is required. Note that, in certain cases, the use of a battery-powered automaton even for a rational grammar can lead to significant savings in computer resources (memory, computing power / processing time) compared to the use of a finite automaton. We refer to the works cited for details on grammar concepts.  One of the original ideas of the present invention lies in the way in which these theoretical concepts are implemented, allowing simultaneous and on-the-fly taking into account of several grammars while minimizing computer resources (computation time, memory space) implemented. More specifically, the invention relates to a method of on-the-fly analysis of a data stream which is presented as a series of symbols taken from a set of symbols called hereinafter the alphabet of symbols. The method which is the subject of the present invention implements a dictionary hereinafter called the pattern dictionary, composed of certain particular sequences of symbols hereinafter called patterns. The pattern dictionary is represented in the form of a tree structure made up of branches and nodes. Each branch of the tree structure starts from a node of the tree structure, hereinafter called the start node of the branch, and arrives at another node of the tree structure below called the end node of the branch. A node in the tree from which no branch of the tree leaves is hereinafter called a terminal node. The tree structure is such that there is one and only one node to which no branch arrives, this node to which no branch arrives is hereinafter called the root. Each branch of the tree structure is assigned a symbol from the alphabet of symbols, hereinafter called the branch label. Each node of the tree is associated with a series of symbols hereinafter called the prefix of this node, composed of the labels of the branches connecting the root to this node, these labels being taken in the order in which they are encountered. The prefix of the root is the sequence containing no elements. Each node is also associated with a family of patterns formed by the patterns which are contained in the dictionary of patterns and which begin with the prefix of this node. The number of patterns contained in this family is hereinafter called the richness of the knot. No tree node has a wealth equal to zero. In addition, every terminal node of the tree has a prefix equal to a pattern contained in the dictionary of patterns and for any pattern contained in the dictionary of patterns, there is one and only one node of the tree whose prefix is equal. on this ground. Each node in the tree is associated with a number called the address of that node so that the addresses of two different nodes are different numbers. The method comprises a first preliminary step of constituting the dictionary of patterns. The method comprises a first phase consisting in detecting the presence or not, within the data stream, of patterns belonging to the dictionary of patterns. This first phase operates on the fly and successively takes into account the symbols constituting the data flow. It is such that if a pattern, belonging to the dictionary of patterns, is present in the data stream, this presence is detected as soon as the last symbol constituting this pattern is taken into account. The first phase implements the first syntactic analysis processes operating in parallel, with each of them being associated - on the one hand, one of the symbols constituting the data flow, this symbol being hereinafter called the start symbol of this first parsing process and never being modified during the execution of the first parsing process, - on the other hand a number equal to the address of a node in the tree structure, this number being hereinafter called the position of this first parsing process and being intended to be modified during the execution of the first parsing process. Each of the first syntactic analysis processes begins to run as soon as its start symbol is taken into account and is responsible for detecting, for all successive values of the integer N, if the sequence of N symbols consecutive, extracted from the data stream, this extraction starting at this start symbol, is equal to one of the patterns from the dictionary of patterns. When a first parsing process begins to execute, its position is equal to the address of the root of the tree. The execution of a first syntactic analysis process includes, when taking into account each of the symbols constituting the data flow, the following steps: - the step of identifying whether there is, in the tree structure, one or more branch (es) starting from the node whose address is equal to the position of this first syntactic analysis process and whose label is equal to the symbol taken into account, this or these branch (es) being above after called (s) the active branch (es) for this first parsing process, - the step - if there is no active branch for this first parsing process, d 'stop the execution of this first parsing process, - if there is only one active branch for this first parsing process, give as value the position of the first parsing process the address of the arrival node of this active branch, - if there are several active branches for this first process of an syntactic analysis, to duplicate this first syntactic analysis process as many times as necessary, so as to associate with each of these active branches, a copy of this first syntactic analysis process, the position of this copy then being equal to l address of the arrival node of the active branch with which it is associated - the step, for this first parsing process, if its execution was not stopped during the previous step, or, in the case where there was duplication during the previous step, the step, for each of the copies of this first syntactic analysis process, to indicate whether the prefix of the node whose address is equal to the position of this first parsing process is equal to a pattern contained in the pattern dictionary, this pattern then being hereinafter called a pattern detected by this first parsing process. The first phase further comprises, after taking into account each of the symbols constituting the data stream, a first complementary step consisting in providing a list of all the patterns detected, when this symbol is taken into account, by the at least one of the first parsing processors running. This list is hereinafter called the list of detected patterns and therefore includes all the patterns present in the stream to be analyzed, which end at the symbol taken into account and which are equal to a pattern from the dictionary of patterns. Preferably, according to the invention, the pattern dictionary associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information. The first phase is then such that if the dictionary of patterns associates with a pattern coefficients of patterns and / or information of patterns, these coefficients of patterns and / or this information of patterns are provided by the first phase at the same time as the presence of this pattern is detected. Preferably, according to the invention, the method also uses one or more variables hereinafter called evaluation variables, and it further comprises a preliminary step consisting in initializing these evaluation variables to values fixed in advance. and hereinafter called initial values of the evaluation variables. The method then further comprises a second phase, implementing an analysis algorithm, which takes into account one or more arguments and which has the effect, depending on the value of these arguments, of modifying the value of all or part of the variables devaluation. The method is then such that the first phase and the second phase are executed on the fly, in a nested fashion, the analysis algorithm being executed as soon as the first phase has provided a detected pattern, this detected pattern then being one of the arguments of the analysis algorithm. Preferably, according to the invention, the pattern dictionary associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information, the first phase then being such that if the pattern dictionary associates with a pattern pattern coefficients and / or pattern information, these pattern coefficients and / or this pattern information are provided by the first phase at the same time as the presence of this is detected pattern, these pattern coefficients and / or this pattern information then being arguments of the analysis algorithm. Preferably, according to the invention, the analysis algorithm is also executed as soon as the first phase has completed taking into account a symbol of the data stream, this symbol taken into account then being an argument of the analysis algorithm. Preferably, according to the invention, the first preliminary step further comprises a sub-step consisting in marking all or part of the patterns as being priority patterns, and in associating with each of these priority patterns at least one action to be executed. The first complementary step then further comprises the sub-step of launching the execution of the action (s) associated with all of the priority patterns contained in the list of detected patterns. The implementation of the analysis algorithm is inhibited when one of the detected patterns is a priority pattern with which an action is associated having the effect of inhibiting this analysis algorithm. Preferably, according to the invention, the method comprises the prior step of modifying the dictionary of patterns, the result of this modification being hereinafter called the modified pattern dictionary, and of modifying the tree structure, by adding new branches. and new nodes, and / or by removal of branches and nodes. The result of this modification is hereinafter called the modified tree structure. The modified tree structure is such that any terminal node in this modified tree structure has a prefix equal to a pattern contained in the modified pattern dictionary and that, for any pattern contained in the modified pattern dictionary, there is one and only one node. of the modified tree structure whose prefix is equal to this pattern. Preferably, according to the invention, the analysis algorithm of the second phase consists in determining the probability or the probabilities that all or part of the data constituting the data flow belongs to one or more particular thematic (s) ), these probabilities being hereinafter called membership probabilities and forming part of the evaluation variables. The membership probabilities are calculated using a function, hereinafter called the evaluation function, which takes into account the patterns detected during the first phase. The analysis algorithm of the second phase modifies the values of all or part of the evaluation variables, in particular the values of the probabilities of belonging, by applying, for each symbol taken into account, the following steps: - the step , if, at the end of the first phase, a pattern, belonging to the dictionary of patterns and ending with the symbol taken into account, has been detected in the data flow, modify all or part of the evaluation variables by setting implements an algorithm hereafter called re-evaluation algorithm, this re-evaluation algorithm taking into account the pattern which has been detected, the method which is the subject of the present invention being such that, if the dictionary of patterns associates with the pattern having been detected coefficients of patterns and / or pattern information, the reassessment algorithm also takes into account these pattern coefficients and / or this pattern information,  - the step, if, at the end of the first phase, no pattern, belonging to the dictionary of patterns and ending with the symbol taken into account, has been detected in the data flow, to modify all or part of the variables evaluation by implementing an algorithm hereinafter called the relaxation algorithm, - the step, after implementation as appropriate, of the re-evaluation algorithm or of the relaxation algorithm, of applying an algorithm, hereinafter called the final probability calculation algorithm, which takes as arguments the values of all or part of the evaluation variables and provides as a result provisional values of the probability or probabilities as the part of the data stream which ends at symbol taken into account belongs to the particular thematic or particular thematics, the values then taken by this or these probability (s) being hereinafter called (s) local probabilities. The evaluation function then consists in calculating these probabilities of belonging, for each particular thematic, by taking into account the successive values of the local probabilities, provided by the algorithm of final calculation of the probability, after taking into account all the symbols constituting the data flow. Preferably, according to the invention, the re-evaluation algorithm is reduced to a first family of functions taking as variables all or part of the evaluation variables and such that if the dictionary of patterns associates with the pattern which has been detected coefficients of patterns and / or pattern information, this first family of functions also takes as variables these pattern coefficients and / or this pattern information. This first family of functions then provides as a result the new values of all or part of the evaluation variables. The function (s) constituting this first family of functions are functions dependent on a family of parameters hereinafter called parameters of the re-evaluation algorithm. The relaxation algorithm then boils down to a second family of functions taking as variables all or part of the evaluation variables and providing as a result the new values of all or part of these evaluation variables. The function (s) constituting this second family of functions are functions dependent on a family of parameters hereinafter called parameters of the relaxation algorithm. The algorithm for the final calculation of probabilities then boils down to a third family of functions taking as variables the evaluation variables and providing as a result the local probabilities. The function (s) constituting this third family of functions are functions dependent on a family of parameters hereinafter called parameters of the final probability calculation algorithm. The pattern coefficients, the initial values of the evaluation variables, the parameters of the re-evaluation algorithm, the parameters of the relaxation algorithm, the parameters of the final probability calculation algorithm are hereinafter called so the calibration parameters. Preferably, according to the invention, the method further comprises the additional preliminary step of associating with each symbol of the alphabet of symbols, a weighting coefficient hereinafter called symbol weighting coefficient. The second family of functions and / or the third family of functions then also take as an additional variable the symbol weighting coefficient associated with the symbol taken into account and the calibration parameters further comprising these symbol weighting coefficients. Preferably, according to the invention, the method comprising an additional step, hereinafter called recalibration, consisting, after the analysis of the data flow and depending on the results provided by the evaluation function, to execute one or more of the following sub-steps: - the sub-step of adding one or more patterns to the pattern dictionary, - the sub-step of removing one or more patterns from the pattern dictionary, - the sub-step of varying all or part of the calibration parameters. Preferably, according to the invention, the method comprising a preliminary phase hereinafter called the learning phase, consisting in repeatedly repeating the following steps: the step of operating the first phase and the second phase on flow of data for which the probabilities of belonging to particular themes are known in advance, - the step of performing the recalibration, so that the probabilities of belonging determined during the second phase of the process are the closest possible values set in advance. Preferably, according to the invention, the dictionary of patterns and the calibration parameters can be modified using information from an external source. Preferably, according to the invention, the patterns contained in the pattern dictionary are classified into three categories of patterns hereinafter called category of operational patterns, category of candidate patterns and category of learning patterns. The pattern dictionary is then such that it associates pattern coefficients at least with each of the candidate patterns and with each of the learning patterns. The method is such that the possible presence in the data stream of patterns belonging to the category of candidate patterns is detected during the first phase but is not taken into account during the second phase. It also includes a self-learning phase taking place in parallel of the first phase and the second phase. This self-learning phase itself comprising two parts called below selection of apprentices and training of apprentices. The selection of apprentices consists, when the presence of a pattern belonging to the category of candi ats patterns was detected during the first phase, to modify all or part of the pattern coefficients of the pattern thus detected, this modification taking into account all or part of the evaluation variables. It also consists, depending on the values taken by the pattern coefficients of the pattern thus detected, in passing or not passing this pattern thus detected in the category of patterns in learning. The training of apprentices consists, when the presence of a pattern belonging to the category of patterns in learning is detected during the first phase, to give new values to the pattern coefficients of the pattern thus detected, these new values being determined at from the evaluation variables and the prior values of the pattern coefficients of the pattern thus detected, the training of the apprentices being able, moreover, depending on the evolution of the values of the pattern coefficients of the pattern thus detected, to modify the category of this pattern . Preferably, according to the invention, the method implements a family of grammars, composed of grammars, each of these grammars comprising one or more rules capable of being verified or not by a series of patterns, a series of patterns verifying all the rules of a grammar belonging to this family of grammars being hereinafter grammatically correct for this grammar. The objective of the second phase analysis algorithm is then to perform a grammatical analysis of the sequences of patterns formed from all or part of the patterns detected by the first syntactic analysis processes implemented during the first phase, such a series of patterns being hereinafter called the detected series.  This grammatical analysis checks, for each of the detected sequences and for each of the grammars belonging to the grammar family, whether the detected sequence is grammatically correct for this grammar. Preferably, according to the invention, the family of grammars being represented by an automaton. This automaton is made up of states and transitions. Each state of the PLC is associated with a number called the address of this state, so that the addresses of two different states are different numbers. At least one of the states of the PLC is called the final state of this PLC. Each grammar taken from the grammar family is associated with a state of the automaton, called the initial state of the automaton for this grammar, and with each transition of the automaton there are associated two states of the automaton, hereinafter called transition start state and transition finish state. A grammar taken from the grammar family is associated with each of the final states of the automaton, and each transition of the automaton is assigned a set composed of one or more sequences of symbols, hereinafter called the label. total of this transition, one of these symbol sequences of the total label being a pattern belonging to the dictionary of patterns and being hereinafter called the lexical label of the transition. The method comprises a second preliminary step consisting in building this automaton. The second phase implements, second grammatical analysis processes operating in parallel, with each of them being associated: - a pattern detected during the first phase, hereinafter called the reason for starting this second process of grammatical analysis and never being modified during the execution of the second grammatical analysis process, a grammar belonging to the grammar family,  a number equal to the address of a state of the automaton, this number forming part of the evaluation variables and being hereinafter called the position of the second grammatical analysis process and being intended to be modified during the execution of this second grammatical analysis process. The second grammatical analysis process begins to run as soon as the start pattern is detected and is responsible for analyzing whether a sequence of detected patterns starting at this start pattern is grammatically correct for the grammar associated with this second process. grammatical analysis. The position of the second grammar analysis process being, at the moment when this second grammar analysis process begins to run, equal to the address of the initial state of the automaton for the grammar associated with the second grammar process grammatical analysis. The execution of the second grammatical analysis process includes, when taking into account each of the detected patterns: - a) a filtering step consisting in deciding whether one or more of the transitions of the automaton will be used when taking into account account of the detected pattern, this filtering step successively considering all the transitions whose starting state is the state whose address is equal to the position of the second grammatical analysis process, and applying to each of the transitions thus considered a decision algorithm which aims to decide whether this transition will be used when taking into account the detected pattern, such a transition being then subsequently called an active transition for this detected pattern, this decision algorithm taking as arguments all or part of the total transition label as well as the detected pattern taken into account, - b) a consistent execution step, - if there is no tr active ansition for the second grammatical analysis process, to implement a stop algorithm intended to decide whether this second grammatical analysis process should be stopped and if so, to end this second grammatical analysis process, - if there is only one active transition for the second grammatical analysis process, to give as value to the position of the second grammatical analysis process the address of the arrival state of the active transition, - if there are several active transitions for the second process of grammatical analysis, to perform as many duplicates as necessary of this second grammatical analysis process, so as to associate with each of these active transitions, one copy of this second grammatical analysis process resulting from the duplication (s) ), the position of this copy then being equal to the address of the arrival state of the transition with which this copy is associated, - c) a signaling step consisting, for the second grammatical analysis process or, in L e case where there was duplication during the previous step, for each of the copies of the second grammatical analysis process resulting from this or these duplication (s), to be reported if the state whose address is equal to the position of the second grammatical analysis process is a final state of the automaton. The second phase then further comprises, after taking into account each of the detected patterns, a second complementary step consisting in providing a list of all the final states whose address is equal to the position of at least one of the second processors grammar analysis in progress, this list being hereinafter called list of detected final states. It results from the combination of the technical features of the invention that each final state of the list of detected final states corresponds to a detected sequence, grammatically correct for the grammar associated with this final state, and ending with the detected pattern taken into account.  Preferably, according to the invention, to each of the second grammatical analysis processes is associated a series of symbols called the stack of this second grammatical analysis process; this stack being part of the evaluation variables, having an initial value defined in advance at the time when the second grammar analysis process begins to run, and being intended to be modified during the execution of the second process grammatical analysis. The decision algorithm, implemented during the filtering step and applied to a transition, then also takes as argument the value of the stack, and, when the transition is an active transition, it also determines a sequence of symbols called new stack this active transition. The execution stage also performs - if there is only one active transition for the second grammatical analysis process, the operation of replacing the stack with the new stack for this active transition, - if there is had duplication, the operation, for each of the second grammatical analysis process from the duplication (s), to replace the stack of the second grammatical analysis process from the duplication (s), with the new stack for the active transition with which this second grammatical analysis process associated with the duplication (s) is associated. The stop algorithm implemented in the absence of active transitions then also takes the stack as an argument. Preferably, according to the invention, to each of the second grammatical analysis processes is associated a variable called the result variable which forms part of the evaluation variables and which is, when this second grammatical analysis process is started, an initial value defined in advance. The execution of the second grammatical analysis process then including, when taking into account each of the detected patterns, an additional calculation step having for the purpose of modifying the value of the result variable, this calculation step taking as arguments: - the detected pattern, - the value, before modification, of the result variable, - the total label of the active transition, or, if the second grammatical analysis process comes from a duplication, the total label of the active transition with which it is associated, and providing as result a value which will then be assigned as new value to the variable result. Preferably, according to the invention, the method applies to a data flow passing over a communications network, and it further comprises a final phase consisting, depending on the values taken by the evaluation variables, of letting the data flow without any modification or to execute one or more of the following actions: - modify the content of the data flow, - modify the destination address of the data flow, - send information to a previously specified address, - block the passage of the data flow. Preferably, according to the invention, the method further comprises an initial phase of temporary storage of all or part of the data flow, the data flow or the part of the data flow thus stored, being destocked and transmitted, with or without modification, at the end of the final phase. The invention also relates to a system for analyzing a data flow, this analysis being carried out on the fly, the data flow being presented as a series of symbols taken from a set of symbols called hereinafter the alphabet symbols, the system implementing a dictionary below called a pattern dictionary and composed of certain particular sequences of symbols hereinafter called patterns. The pattern dictionary is represented in the form of a tree structure made up of branches and nodes. Each branch of the tree structure starts from a node of the tree structure, hereinafter called the start node of this branch, and arrives at another node of the tree structure below called the end node of the branch. A node in the tree from which no branch of the tree leaves is hereinafter called a terminal node. The tree structure is such that there is one and only one node to which no branch arrives, this node to which no branch arrives being hereinafter called the root. Each branch of the tree is assigned a symbol from the alphabet of symbols, hereinafter called the label of this branch and each node of the tree is associated with a series of symbols hereinafter called the prefix of this node, this prefix being composed of the labels of the branches connecting the root to this node, these labels being taken in the order in which they are encountered. The prefix of the root is the sequence containing no elements. Each node is also associated with a family of patterns formed of the patterns contained in the dictionary of patterns and which begin with the prefix of this node, the number of patterns contained in the family associated with this node being hereinafter called the richness of the node. The tree structure is such that none of its nodes has a richness equal to zero and it is further such that any terminal node of the tree structure has a prefix equal to a pattern contained in the dictionary of patterns and that for all motif contained in the motif dictionary, there is one and only one node in the tree structure whose prefix is equal to this motif. Each node in the tree is associated with a number called the address of that node, so that the addresses of two different nodes are different numbers. The system includes first storage means for storing this tree structure.  The system comprises first processing means making it possible to detect the presence or not, within the data flow, of patterns belonging to the pattern dictionary, these first processing means operating on the fly and successively taking into account the symbols constituting the flow of data. The first processing means are such that if a pattern, belonging to the dictionary of patterns, is present in the data stream, the first processing means detect its presence as soon as the last symbol constituting this pattern is taken into account. The first processing means make it possible to implement the first syntactic analysis processes operating in parallel, with each of them being associated - on the one hand, one of the symbols constituting the data flow, this symbol being hereinafter called symbol of starting this first parsing process and never being modified during the execution of the first parsing process, - on the other hand storage means intended to contain a number equal to the address d a node of the tree structure, this number being hereinafter called the position of the first parsing process and being intended to be modified during the execution of the first parsing process. The first syntactic analysis process begins to run as soon as the start symbol is taken into account and is responsible for detecting, for all the successive values of the integer N, if the sequence of N consecutive symbols, extracted from the stream of data, this extraction starting at the start symbol, is equal to one of the patterns in the pattern dictionary. The position of the first parsing process is, when this first parsing process begins to run, equal to the address of the root of the tree. The first processing means allowing, taking into account each of the symbols constituting the flow of data, for each first syntactic analysis process, to carry out the following operations: the operation of locating whether there is, in the tree structure, one or more branch (es) starting from the node whose address is equal to the position of this first syntactic analysis process and whose label is equal to the symbol taken into account, this or these branch (es) being hereinafter called (s) the active branch (s) for this first syntactic analysis process, - the operation - if there is no active branch for this first syntactic analysis process, to stop the execution of this first syntactic analysis process, - s 'there is only one active branch for this first syntactic analysis process, to give as value to the position of this first syntactic analysis process the address of the arrival node of this active branch, - if there has several active branches for this first parsing process, to duplicate this first process of a parsing as many times as necessary, so as to associate with each of these active branches, a copy of this first syntactic analysis process, the position of this copy then being equal to the address of the arrival node of the branch active with which it is associated, - the operation, for this first parsing process, if its execution was not stopped during the previous step, or, in the event of duplication during from the previous step, the operation, for each copy of the first parsing process, to indicate whether the prefix of the node whose address is equal to the position of this first parsing process is equal to one motif contained in the dictionary of motifs, this motif then being hereinafter called a motif detected by this first syntactic analysis process.  The first processing means also making it possible, after taking into account each of the symbols constituting the data stream, to carry out a first complementary operation consisting in providing a list of all the patterns detected, when the symbol is taken into account, by at least one of the parsing processors running, this list being hereinafter called the list of detected patterns. It results from the combination of the technical features of the invention that the list of detected patterns includes all the patterns present in the stream to be analyzed, ending at the symbol taken into account and equal to a pattern from the dictionary of patterns. Preferably, according to the invention, the dictionary of patterns associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information, and the system comprising means for storing these pattern coefficients and / or this pattern information, the first processing means then being such that if the pattern dictionary associates pattern coefficients and / or pattern information with a pattern, these pattern coefficients and / or this pattern information is supplied by the first processing means at the same time as the presence of the pattern is detected. Preferably, according to the invention, the system comprises storage means making it possible to store one or more variables called hereinafter evaluation variables and processing means making it possible to initialize these evaluation variables at values fixed at l 'advance and hereinafter called initial values of the evaluation variables. The system then further comprises second processing means making it possible to implement an analysis algorithm, this analysis algorithm taking into account one or more arguments and having the effect, depending on the value of these arguments, of modifying the value of all or part of the evaluation variables. The system is such that the first processing means and the second processing means are executed at the stolen, nested, the analysis algorithm being implemented as soon as the first processing means have provided a detected pattern, this detected pattern then being one of the arguments of the analysis algorithm. Preferably, according to the invention, the pattern dictionary associates with all or part of the patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information, and the system comprises means for storing pattern coefficients and / or pattern information. The first processing means are then such that if the dictionary of patterns associates with a pattern pattern coefficients and / or pattern information, these pattern coefficients and / or this pattern information are provided by the first processing means. at the same time as the presence of this pattern is detected, the pattern coefficients and / or the pattern information then being arguments of the analysis algorithm. Preferably, according to the invention, the analysis algorithm is also implemented as soon as the first processing means have completed taking into account a symbol constituting the data stream, this symbol taken into account then being an argument of the analysis algorithm. Preferably, according to the invention, the first processing means further comprise a functionality making it possible to mark all or part of the patterns as being priority patterns, and to associate with each of these priority patterns at least one action to be executed. The system which is the subject of the present invention further comprises processing means making it possible to execute the actions associated with these priority patterns. The first complementary operation then also consists in launching the execution of the action (s) associated with all of the priority patterns contained in the list of detected patterns. The system further comprises processing means making it possible to inhibit the implementation of the analysis algorithm when one of the patterns detected is a priority pattern which is associated an action having the effect of inhibiting the analysis algorithm. Preferably, according to the invention, the system further comprises processing means making it possible to carry out the prior operation of modifying the dictionary of patterns, the result of this modification being hereinafter called the dictionary of modified patterns, and of modifying the tree, by adding new branches and new nodes, and / or by deleting branches and nodes. The result of this modification is hereinafter called the modified tree structure. The modified tree structure is further such that any terminal node of the modified tree structure has a prefix equal to a pattern contained in the modified pattern dictionary and that for any pattern contained in the modified pattern dictionary, there is one and one only node of the modified tree structure whose prefix is equal to this pattern. Preferably, according to the invention, the analysis algorithm consists in determining the probability or the probabilities that all or part of the data constituting the data flow belongs to one or more particular thematic (s), these probabilities being hereinafter called membership probabilities and forming part of the evaluation variables. These membership probabilities are calculated using a function, hereinafter called the evaluation function, which takes into account the patterns detected by the first processing means. The system includes processing means making it possible to modify the values of all or part of the evaluation variables, in particular the value of the probabilities of belonging, by applying, for each symbol taken into account, the following operations: the operation, if a pattern, belonging to the dictionary of patterns and ending with the symbol taken into account, was detected in the data stream by the first processing means, to modify all or part of these evaluation variables by implementing an algorithm. hereinafter called the re-evaluation algorithm, this re-evaluation algorithm taking into account the pattern which has been detected, the system being such that, if the dictionary of patterns associates with the pattern which has been detected, coefficients of patterns and / or information of patterns, the reassessment algorithm also takes into account these pattern coefficients and / or this pattern information, the operation, if no pattern, belonging to the pattern dictionary and ending with the symbol taken into account, has been detected in the data flow by the first processing means, to modify all or part of the evaluation variables by implementing an algorithm hereinafter called relaxation algorithm, - the operation, after implementation as appropriate , the reassessment algorithm or the relaxation algorithm, to apply an algorithm, hereinafter called the final probability calculation algorithm, which takes as arguments the values of all o u part of the evaluation variables and provides as a result provisional values of the probability or probabilities that the part of the data flow which ends at the symbol taken into account belongs to the particular thematic or to the particular thematic, the values then taken by the probability or probabilities being hereinafter called local probabilities. The system further comprises processing means making it possible to calculate, using the evaluation function, the probabilities of belonging, for each particular thematic, by taking into account the successive values of the local probabilities, provided by the algorithm of final probability calculation, after taking into account all the symbols constituting the data flow. Preferably, according to the invention, the re-evaluation algorithm is reduced to a first family of functions taking as variables all or part of the variables evaluation, this first family of functions being such that if the dictionary of patterns associates with the pattern which has been detected patterns coefficients and / or pattern information, the first family of functions also takes as variables these pattern coefficients and / or this reason information. The first family of functions provides as a result the new values of all or part of the evaluation variables, the function (s) constituting this first family of functions being functions dependent on a family of parameters called hereinafter parameters of the reassessment algorithm. The relaxation algorithm is reduced to a second family of functions taking as variables all or part of the evaluation variables and providing as result the new values of all or part of the evaluation variables, the function (s) constituting the second family of functions being functions dependent on a family of parameters hereinafter called parameters of the relaxation algorithm. The final probability calculation algorithm is reduced to a third family of functions taking as variables the evaluation variables and providing as a result the local probabilities, the function (s) constituting the third family of functions being functions dependent on 'a family of parameters hereinafter called parameters of the final probability calculation algorithm. The pattern coefficients, the initial values of the evaluation variables, the parameters of the re-evaluation algorithm, the parameters of the relaxation algorithm, the parameters of the final probability calculation algorithm are hereinafter called so the calibration parameters. The system includes storage means for storing the values of the calibration parameters.  Preferably, according to the invention, the system further comprises processing means making it possible to carry out an additional operation consisting in associating with each symbol of the alphabet of symbols, a weighting coefficient hereinafter called symbol weighting coefficient. The second family of functions and / or the third family of functions then also take the symbol weighting coefficient associated with the symbol taken into account as an additional variable. The calibration parameters further include the symbol weighting coefficients. Preferably, according to the invention, the system further comprises processing means making it possible to carry out an additional operation, hereinafter called recalibration, consisting, after the analysis of the data flow and as a function of the results provided by the function evaluation, to execute one or more of the following sub-operations: - the sub-operation of adding one or more patterns to the pattern dictionary, - the sub-operation of removing one or more patterns from the pattern dictionary, - the sub-operation to vary all or part of the calibration parameters. Preferably, according to the invention, the system comprises processing means making it possible to carry out a prior operation hereinafter called learning, consisting in repeatedly repeating the following sub-operations: - the sub-operation of operating the first means of processing and the second processing means on data streams whose probabilities of belonging to particular themes are known in advance, - the sub-operation of performing the recalibration so that the probabilities of belonging determined by the second processing means are as close as possible to values fixed in advance.  Preferably, according to the invention, the system comprises processing means making it possible to modify the dictionary of patterns and the calibration parameters using information coming from an external source. Preferably, according to the invention, the patterns contained in the pattern dictionary are classified into three categories of patterns hereinafter called category of operational patterns, category of candidate patterns and category of learning patterns. The pattern dictionary is such that it associates pattern coefficients at least with each of the candidate patterns and with each of the learning patterns. The system is then such that the possible presence, in the data flow, of patterns belonging to the category of candidate patterns is detected by the first processing means but is not taken into account by the second processing means. The system further comprises processing means making it possible to carry out a self-learning operation, this self-learning operation itself comprising two parts called hereinafter selection of apprentices and training of apprentices. The selection of apprentices consists, when the presence of a pattern belonging to the category of candidate patterns has been detected by the first processing means, to modify all or part of the pattern coefficients of the pattern thus detected, this modification taking into account all or part of the evaluation variables. The selection of apprentices also consists, according to the values taken by the pattern coefficients of the pattern thus detected, in passing or not passing this pattern thus detected in the category of patterns in learning. The training of apprentices consists, when the presence of a pattern belonging to the category of patterns in learning is detected by the first processing means, to give new values to the coefficients of patterns of the pattern thus detected, these new values being determined from evaluation variables and prior values of the pattern coefficients of the pattern thus detected, this training of the apprentices being able, depending on the evolution of the values of the pattern coefficients of the pattern pattern thus detected, modify the category of this pattern thus detected. Preferably, according to the invention, the system comprises processing means making it possible to implement a family of grammars, composed of grammars, each of these grammars comprising one or more rules capable of being verified or not by a series of patterns . A series of patterns verifying all the rules of a grammar belonging to this family of grammars is described below grammatically correct for this grammar. The objective of the analysis algorithm implemented by the second processing means is then to perform a grammatical analysis of the sequences of patterns formed of all or part of the patterns detected by the first processing means, such a sequence of patterns being hereinafter called detected sequence, this grammatical analysis verifying, for each of the detected sequences and for each of the grammars belonging to the grammar family, whether the detected sequence is grammatically correct for this grammar. Preferably, according to the invention, the family of grammars is represented by an automaton consisting of states and transitions. Each state of the PLC is associated with a number called the address of this state, so that the addresses of two different states are different numbers. At least one of the states of the controller is called the final state of the controller. Each grammar taken from the grammar family is associated with a state of the automaton, called the initial state of the automaton for this grammar. Each transition of the PLC is associated with two states of the PLC, hereinafter called the start state of the transition and the arrival state of the transition.  A grammar taken from the grammar family is associated with each of the final states of the automaton, and each transition of the automaton is assigned a set composed of one or more sequences of symbols, hereinafter called the label. total of this transition, one of the symbol sequences of the total label being a pattern belonging to the dictionary of patterns and being hereinafter called the lexical label of the transition. The system includes storage means for storing the machine and processing means for performing a second preliminary operation of building the machine. The system^includes processing means making it possible to implement second grammatical analysis processes operating in parallel, with each of them being associated: - a pattern detected by the first processing means, this pattern being hereinafter called the starting pattern of this second grammatical analysis process and never being modified during the execution of the second grammatical analysis process, - a grammar belonging to the family of grammars, - a number equal to the address of a state of the automaton, this number forming part of the evaluation variables and being hereinafter called the position of this second grammatical analysis process and being intended to be modified during the execution of the second grammatical analysis process. The system comprises processing means making it possible to start the execution of a second grammatical analysis process as soon as its start reason is detected, this second grammatical analysis process being responsible for analyzing whether a series of detected patterns beginning to this start pattern is grammatically correct for the grammar associated with the second grammatical analysis process.  The position of the second grammatical analysis process is, at the time when it begins to execute, equal to the address of the initial state of the automaton for the grammar associated with this second grammatical analysis process. These processing means also make it possible to implement the second grammatical analysis processes and make it possible, when taking into account each of the detected patterns, to carry out the following operations: - a) a filtering operation consisting in deciding whether a or more of the transitions of the automaton will be used when the detected pattern is taken into account, this filtering step successively considering all the transitions whose starting state is the state whose address is equal to the position of the second grammatical analysis process, and applying to each of the transitions thus considered a decision algorithm having the object of deciding whether this transition will be used when taking into account the detected pattern, such a transition being then subsequently called an active transition for this detected reason, the decision algorithm taking as argument all or part of the total label of the transition thus that the detected pattern taken into account, - b) an execution operation consisting, - if there is no active transition for the second grammatical analysis process, to implement a stop algorithm having for object decide if this second grammatical analysis process should be stopped and if so, to end this second grammatical analysis process, - if there is only one active transition for this second grammatical analysis process, to give as value at the position of this second grammatical analysis process the address of the arrival state of this active transition, - if there are several active transitions for the second grammatical analysis process, to perform as many duplications of the second grammar analysis process as necessary, so as to associate with each of these active transitions, a copy of this second grammar analysis process resulting from this or these duplication (s), the position of this copy then being equal to the address of the state of arrival of the transition to which this copy is associated, - c) a signaling operation consisting, for the second grammatical analysis process or, in the case of duplication during the previous step, for each of the copies of the second grammatical analysis process resulting from this or these duplication (s), to report if the state whose address is equal to the position of the second analysis process grammatical is an end state of the automaton. The system further comprises processing means allowing, after taking into account each of the detected patterns, to carry out a second complementary operation consisting in providing a list of all the final states whose address is equal to the position of a at least second grammar analysis processors running, this list being hereinafter called list of detected final states. It results from the combination of the technical features of the invention that each final state in this list of detected final states corresponds to a detected sequence, grammatically correct for the grammar associated with this final state, and ending with the detected pattern taken into account. Preferably, according to the invention, each of the second grammatical analysis processes is associated with a series of symbols called stack of this second grammatical analysis process, this stack being part of the evaluation variables, having an initial value defined at the advance at the time when the second grammar analysis process begins to execute, and being intended to be modified during the execution of the second grammatical analysis process.  The system then comprises storage means making it possible to store this stack and the decision algorithm implemented during the filtering step and applied to a transition, also takes as argument the value of the stack, and, when the transition is an active transition, the decision algorithm also determines a series of symbols called new stack for this active transition. The execution stage also performs - if there is only one active transition for the second grammatical analysis process, the operation of replacing the stack with the new stack for this active transition, - if there is had duplication, the operation, for each of the second grammatical analysis process resulting from this or these duplication (s), to replace the stack of this second grammatical analysis process resulting from the duplication (s), by the new stack for the active transition with which this second grammatical analysis process associated with the duplication (s) is associated. The stop algorithm implemented in the absence of active transitions also takes the stack as an argument. Preferably, according to the invention, to each of the second grammatical analysis processes is associated a variable called result variable, this result variable being part of the evaluation variables. The system then comprises storage means making it possible to store the value of the result variable and processing means making it possible, when starting a second grammatical analysis process, to set the result variable to an initial value defined at advance, and also making it possible to modify the value of the result variable when taking into account each of the detected patterns, this modification taking into account the detected pattern as well as the total label of an active transition for this second process of grammatical analysis, or if the second grammatical analysis process comes from a duplication, the total label of the active transition with which it is associated. Preferably, according to the invention, the system applies to a data flow passing over a communications network, and further comprising processing means making it possible, depending on the values taken by the evaluation variables, to let the data flow without any modification or to execute one or more of the following actions: - modify the content of the data flow, - modify the destination address of the data flow, - send information to a previously specified address, - block the passage of the data flow. Preferably, according to the invention, the system further comprises means for temporary storage of all or part of the data stream, and means for retransmission, with or without modification, of the stream thus stored. The analysis is carried out, as we have seen, on the fly.
Les symboles qui composent le flux de données sont pris en compte l'un après l'autre, au fur et à mesure de leur arrivée. L'analyse s'effectue en deux phases qui s'exécutent de façon imbriquée. La première phase première phase est chargée de repérer les motifs, la présence d'un motif étant détectée lors de la prise en compte du dernier symbole composant ce motif. Cela permet, si c'est un motif prioritaire, de réaliser diverses actions attachées à ce motif prioritaire, allant jusqu'à, dans certains cas (virus, codes malfaisants, ...) bloquer la communication ou d'arrêter l'analyse. Cette première phase met en œuvre des premiers processus d'analyse syntaxique qui fonctionnent en parallèle, chacun d'eux étant chargé de détecter la présence d'un ou plusieurs motifs démarrant à un symbole particulier du flux de données, le symbole de démarrage. Le seul cas où plusieurs motifs sont détectés à partir du même symbole de démarrage est le cas où l'un de ces motifs est le début d'autre de ces motifs. Chaque premier processus d'analyse syntaxique démarre lors de la prise en compte de son symbole de démarrage, et s'arrête dès que la suite des symboles rencontrés depuis ce symbole de démarrage n'est plus une partie d'un des motifs du dictionnaire. Dans des applications réelles, il n'y a en général qu'un petit nombre de premiers processus d'analyse syntaxique fonctionnant simultanément (il est exceptionnel que ce nombre dépasse la dizaine) . Par ailleurs chacun d'eux ne nécessite que des ressources informatiques très limitées. Il lui faut conserver en mémoire d'une part la position de son symbole de démarrage au sein du flux de données, (ou ce qui est équivalent, le nombre de symboles qui ont été pris en compte depuis ce symbole de démarrage) et d'autre part l'adresse d'un nœud de l'arborescence, soit au total deux nombres entiers. Les opérations que doit effectuer un premier processus d'analyse syntaxique à chaque symbole pris en compte se limitent à un tout petit nombre d'instructions élémentaires décrites précédemment. La première phase de l'analyse ne consomme donc qu'une faible part de la puissance d'un processeur embarqué dans un dispositif en rupture sur le réseau. De plus les premiers processus d'analyse syntaxiques peuvent facilement être implémentés sur un ou plusieurs blocs matériels spécifiques, fonctionnant parallèlement au processeur principal du dispositif. Dès qu'un motif est détecté, si aucune des éventuelles actions attachées à ce motif n'a arrêté l'analyse, la seconde phase prend en compte ce motif et s'exécute de façon imbriquée avec la première phase. Cette seconde phase comporte deux modes de fonctionnement. L'un d'eux consiste en une analyse sémantique en vue de classifier la thématique de tout ou partie du flux de données. L'autre détermine si le flux est conforme à un protocole parmi un ensemble de protocoles donnés. Dans certaines réalisations citées ici uniquement à titre d'exemple non limitatif des possibilités de la présence invention, ces deux modes de fonctionnement sont mis en œuvre simultanément, l'analyse sémantique n'ayant alors lieu que si le flux de données est conforme à certains protocoles. Nous présentons ci-après, à titre illustratif et nullement limitatif des possibilités de la présente invention, quelques exemples de mise en œuvre. Dans ces exemples, l' invention est mise en œuvre dans un dispositif que traverse l'intégralité du flux de données reliant un ordinateur au réseau, ce dispositif étant en rupture sur un câble d'un réseau informatique, ou, dans d'autres modes de réalisation, intégré à l'ordinateur ou connecté sur un port de communication de celui- ci. Toutes les informations transitant par ce dispositif sont alors analysées conformément au procédé objet de la présente invention. Dans certains réseaux, tout ou partie des postes de travail ou des unités informatiques composant le réseau sont équipés d'un tel dispositif. Chacun de ces dispositifs contient un processeur mettant en œuvre le procédé de l'invention, et des moyens de stockage permettant de stocker le dictionnaire des motifs et les paramètres de calibrage. Ce dictionnaire des motifs et ces paramètres de calibrages peuvent être modifiés depuis un serveur informatique central qui envoie des mises à jour. Les applications sont nombreuses. L'une d'elle est la détection de virus : dès que la première phase a détecté la présence d'une chaîne de symboles caractéristique d'un virus connu (ce que nous appellerons par la suite l'empreinte du virus) , le dispositif peut bloquer le passage de l'information pour éviter que le virus détecté ne puisse se propager dans le résea . Notons que, dans cet exemple, la présence d'un virus n'est détectée qu'une fois que l'empreinte tout entière du virus, ou tout au moins une partie significative, a été analysée par le dispositif. Pour assurer un blocage efficace de l'information, on prévoit dans le dispositif une mémoire tampon stockant provisoirement l'information jusqu'au moment où l'analyse a révélé que l'information est autorisée à circuler. Dans un exemple particulier de réalisation de l'invention, le dispositif utilise un processeur capable d'analyser à la volée un flux de plusieurs dizaines de Mégabits par seconde. Le fait de bloquer quelques kilooctets en mémoire tampon introduit un retard minime et totalement invisible pour un utilisateur d'un poste de travail informatique équipé de ce dispositif. Un des grands intérêts de l'invention, dans cet exemple d'application- est que, dès qu'un nouveau virus est connu, un serveur informatique central peut envoyer à tous les dispositifs du réseau des mises à jour de leur dictionnaire de motifs pour leur permettre d'empêcher la propagation de ce nouveau virus. Si l'invention est déployée sur un réseau mondial comme le réseau Internet, elle assure donc contre les virus une protection significativement meilleure que tous les systèmes existants . Dans l'exemple décrit ci-dessus, l'invention ne détecte que des virus déjà connus. Dans un autre exemple de mise en œuvre, présenté ici à titre illustratif et nullement limitatif des possibilités de la présente invention, on peut obtenir des indications sur le caractère malfaisant d'un code exécutable. Si ce code contient des instructions d'écriture et/ou effacement de fichiers il peut faire des dégâts considérables. S'il contient des instructions d'ouverture puis de lecture d'un fichier, suivies d'instructions d'envoi de courriers, le code pourrait être un virus, qui se duplique et s'envoie à une famille des correspondants. Il pourrait aussi avoir tout simplement comme objectif d'espionner le contenu d'un poste de travail à l'insu de son utilisateur autorisé. Pour déterminer la thématique d'une information transitant que le réseau, que ce soit un caractère malfaisant, comme précédemment, ou encore un caractère pornographique, politique, religieux, le procédé objet de l'invention peut, dans sa seconde phase, analyser les fréquences d'apparition et/ou les positions mutuelles des motifs détectés lors de sa première phase. A chaque motif sont associés des coefficients de motifs relatifs à chacune des thématiques qu'on cherche à détecter. A chaque thématique sont par ailleurs associées des variables d'évaluation spécifique, initialisées à zéro lors du démarrage du procédé (ici les valeurs initiales des variables d'évaluations sont nulles) et modifiées pour chaque motif détecté. La nouvelle valeur de la variable d'évaluation est déterminée comme étant une somme pondérée de son ancienne valeur et des coefficients de motifs fournis par le dictionnaire des motifs (les coefficients de pondération de cette somme faisant partie des paramètres de l'algorithme de réévaluation) . Si un symbole de l'information à analyser est traité sans qu'aucun motif ne soit détecté, l'algorithme de relaxation multiplie les variables d'évaluation par des coefficients compris entre 0 et 1, (ces coefficients étant un des paramètres de l'algorithme de relaxation), de sorte que les variables d'évaluation diminuent par décroissance exponentielle quand aucun motif n' est détecté lors du passage successif des symboles de l'information analysée. La variable d'évaluation associée à la famille est donc liée au nombre et aux positions des motifs détectés dans un passé proche. Lorsqu'il est pertinent de repérer un couple de motifs séparés ou non par des symboles intermédiaires, un mécanisme analogue permet de tenir à jour une variable d'évaluation liée à la présence dans un passé proche du premier ou des deux motifs du couple, cette variable étant d'autant plus élevée que les deux motifs sont proches, et prenant des valeurs encore plus importantes si le couple à détecter était présent à plusieurs reprises dans un passé récent. La même technique peut s'appliquer à un couple formé d'un premier motif appartenant à une première famille et d'un second motif appartenant à une seconde famille (ou à la même famille) . On peut, dans certains exemples, travailler sur des configurations plus complexes, comme des triplets ou des quadruplets de motifs ou autres. L' algorithme de calcul final des probabilités utilise, dans cet exemple d' implémentation, des sommes pondérées des valeurs des différentes variables d'évaluation, associée à des seuillages (certaines variables intermédiaires ne sont prises en compte que si elles sont supérieures à un seuil particulier) , les seuils et les coefficients de pondération des sommes faisant partie des paramètres de l'algorithme de calcul final des probabilités. Une information aura ici d'autant plus de chances d'être considérée comme appartenant à une thématique particulière qu'on y détectera un nombre significatif de motifs, et/ou de couples de motifs, voisins les uns des autres et significatifs pour la thématique analysée. Indiquons, à titre d'exemple illustratif et nullement limitatif des possibilités de la présente invention, une méthode de mise en œuvre des mécanismes d'auto apprentissage en vue d'améliorer la pertinence des résultats. Dans cet exemple on ne parlera que de flux de données contenant des textes dont on recherche à détecter s'il appartient à une thématique particulière (violence, pornographie, ...) mais le principe est generalisable à tout type de thématique sur tout type de flux de données. Les motifs candidats qui sont ajoutés au dictionnaire des motifs peuvent être des mots dont on pense qu'ils pourraient avoir un rapport avec la thématique et être pertinents dans la détection de cette thématique, ou aussi des mots générés de façon automatique en vérifiant certaines règles (nombre minimal de lettres, la proportion de voyelles et de consonnes, l'agencement de celles-ci...). On fait alors fonctionner l'invention en analysant un grand nombre de textes, dont la thématique peut être connue et fournie à l'avance (apprentissage supervisé), ou dont la thématique n'est pas connue à l'avance et est déterminée par l' invention (apprentissage non supervisé) . La présence éventuelle de motifs candidats dans le flux de données est détectée lors de la première phase du procédé objet de la présente invention, mais cette information n'est pas prise en compte au cours de la seconde phase de ce procédé. Pour chaque motif, on détermine sa fréquence d'apparition dans les diverses thématiques auxquelles sont rattachées les données fournies à l'invention, les résultats intermédiaires nécessaires à la détermination de ces fréquences d'apparition étant stockés dans les coefficients de motifs du motif analysé. En fonction des valeurs prises par ces fréquences après analyse d'un grand nombre de textes, on estimera si le motif est plus ou moins corrélé avec l'une ou l'autre des thématiques, et s'il est susceptible de contribuer à la détection de cette thématique, ou au contraire à son élimination. Dans ce cas, le motif est sélectionné et passe dans la catégorie motif en apprentissage. Il sera alors pris en compte dans la seconde phase du procédé objet de la présente invention, et ses coefficients de motif seront peu à peu ajustés de façon à améliorer la pertinence des probabilités d'appartenance trouvées lors de cette seconde phase. Cet ajustage des coefficients de motifs se fait à l'aide d'un algorithme spécifique d'ajustage. L'algorithme d'ajustage utilise en entrée, d'une part, les probabilités d'appartenance telles que calculées lors de la seconde phase du procédé, ainsi que la thématique du texte analysé dans le cas où celle-ci est connue (cas de l'apprentissage supervisé), et, d'autre part, les valeurs préalables des coefficients de motifs qui avaient permis de calculer ces probabilités d'appartenance. L'algorithme d'ajustage fournit en sortie les nouvelles valeurs des coefficients de motif. Les applications pratiques du procédé et du système objets de la présente invention sont nombreuses. On peut citer, à titre d'exemple illustratif et nullement limitatif des applications possibles, une aide à la sélection et à la classification des lettres de candidatures et curriculum vit-_e. Certains gros cabinets de conseil en recrutement ou services de recrutement de grandes entreprises reçoivent en effet, par courrier électronique, un nombre important de candidatures, souvent spontanées. La présente invention permet alors de faire une première classification et de réorienter chaque candidature vers les personnes ou les services susceptibles d'être particulièrement intéressés par le profil de cette candidature. La pertinence de la classification est contrôlée en permanence par les destinataires des candidatures, et les résultats de ce contrôle sont utilisés pour alimenter les mécanismes d'auto apprentissage . Lorsque la seconde phase effectue une analyse grammaticale (donc vérifie si le flux analysé respecte une grammaire parmi une famille donnée de grammaires) , alors, pour chacune de ces grammaires et pour chacun des motifs détectés lors de la première phase, sont mis en service des seconds processus d'analyse grammaticale. Chacun d'eux ne consomme que peu de ressources informatiques. Outre les informations liées au symbole et/ou au motif de démarrage et à l'adresse d'un état de l'automate, il doit, dans certain cas, conserver une pile et/ou une variable résultat destinée à accueillir les informations d'ordre sémantique (N° de port, adresse de l'expéditeur, type de cryptage utilisé etc. etc.) nécessitées par l'application. Cela ne représente qu'en tout quelques dizaines ou centaines d'octet, et les traitements informatiques que doivent réaliser les seconds processus d'analyse grammaticale restent extrêmement limités. De même que les premiers processus d'analyse syntaxiques, les seconds processus d'analyse grammaticale peuvent facilement fonctionner sur un bloc matériel spécifique, ou mieux, sur plusieurs blocs matériels spécifiques, fonctionnant comme des processeurs auxiliaires parallèlement au processeur principal de ce dispositif. Dans un cas particulier de réalisation de l' invention, cité ici uniquement à titre d'exemple, on réalise un composant matériel spécifique à architecture massivement parallèle comprenant, à côté d'un processeur principal, et sur le même composant, un grand nombre de coprocesseurs élémentaires spécialisés, chacun d'eux ne disposant que d'un faible espace mémoire, ces processeurs spécialisés étant destinés à héberger les processus d'analyse syntaxique et grammaticale et à les faire fonctionner en parallèle. D'autres caractéristiques de l'invention apparaîtront avec la description de figures faite ci-dessous. Cette dernière est effectuée à titre descriptif et non limitatif en faisant référence à : La figure 1 qui illustre schématiquement la façon dont un flux de données 1 composé de symboles S est analysé par le procédé objet de la présente invention ; La figure 2 qui illustre la façon dont un dictionnaire de motifs peut être représenté par une arborescence 6 ; La figure 3 illustre un cas particulier d'automate représentant une famille de grammaires. La figure 1 représente schématiquement, sur un exemple illustratif et non limitatif des possibilités de la présente invention, la façon dont un flux de données 1 composé de symboles S est analysé par le procédé objet de la présente invention. La première phase du procédé permet de détecter, au sein de ce flux de données, divers motifs Ml, M2, M3, , M15 appartenant à un dictionnaire de motifs. On notera que ces motifs détectés peuvent se superposer totalement ou partiellement, et que certains motifs (comme Mil) peuvent se limiter à un seul symbole. La seconde phase du procédé analyse alors les suites de motifs ainsi détectés et vérifie si ces suites sont grammaticalement correctes pour une ou plusieurs grammaires. Certains motifs comme M2, M4, M9 n'appartiennent pas à une suite grammaticalement correcte. Par contre la suite de motifs consécutifs {M7, M8, MlO, Mil, M12}, (en pointillé sur la figure 1) forment une suite grammaticalement correcte. La suite de motifs { Ml, M3, M5, M6, M13, M14, MIS } forme elle aussi une suite grammaticalement correcte, cette suite s'interrompant entre les motifs M6 et M13, motifs entre lesquels est imbriquée la suite grammaticalement correcte { M7, M8, M10, Mil, M12 }. Cet exemple illustre le cas de protocoles encapsulés. La situation est similaire à ce qui se passe dans un texte citant, entre guillemets, un autre texte, les symboles M6 et M13 jouant ici le même rôle que les guillemets ouvrants et fermants . La figure 2 explique sur un exemple illustratif et non limitatif des possibilités de la présente invention, la façon dont un dictionnaire de motifs peut être représenté par une arborescence 6. Cette arborescence se compose de branches 7 (représentées par de grosses flèches sur la figure 2) et de nœuds 8 (représentés par des cercles sur la figure 2) . A chaque branche 7 sont associés d'une part un nœud de départ 9The symbols that make up the data flow are taken into account one after the other, as they arrive. The analysis is carried out in two phases which run in a nested fashion. The first phase first phase is responsible for identifying the patterns, the presence of a pattern being detected when the last symbol making up this pattern is taken into account. This allows, if it is a priority reason, to perform various actions attached to this priority reason, going as far as, in certain cases (viruses, harmful codes, ...) blocking communication or stopping the analysis. This first phase implements the first syntactic analysis processes which operate in parallel, each of them being responsible for detecting the presence of one or more patterns starting at a particular symbol of the data flow, the start symbol. The only case where several patterns are detected from the same start symbol is the case where one of these patterns is the start of another of these patterns. Each first syntactic analysis process starts when its start symbol is taken into account, and stops as soon as the series of symbols encountered since this start symbol is no longer part of one of the patterns in the dictionary. In real applications, there are generally only a small number of first syntactic analysis processes operating simultaneously (it is exceptional that this number exceeds ten). In addition, each of them requires only very limited IT resources. It must keep in memory on the one hand the position of its start symbol within the data flow, (or what is equivalent, the number of symbols which have been taken into account since this start symbol) and of on the other hand the address of a node of the tree structure, that is to say two whole numbers. The operations that a first syntactic analysis process must carry out for each symbol taken into account are limited to a very small number of elementary instructions described above. The first phase of the analysis therefore consumes only a small part of the power of a processor embedded in a device that is broken on the network. In addition, the first parsing processes can easily be implemented on one or more specific hardware blocks, operating in parallel with the main processor of the device. As soon as a pattern is detected, if none of the possible actions attached to this pattern has stopped the analysis, the second phase takes this pattern into account and is executed nested with the first phase. This second phase has two modes of operation. One of them consists of a semantic analysis in order to classify the thematic of all or part of the data flow. The other determines whether the flow conforms to a protocol among a set of given protocols. In certain embodiments cited here only by way of nonlimiting example of the possibilities of the invention presence, these two operating modes are implemented simultaneously, the semantic analysis then taking place only if the data flow conforms to certain protocols. We present below, by way of illustration and in no way limit the possibilities of the present invention, some examples of implementation. In these examples, the invention is implemented in a device through which passes the entire data flow connecting a computer to the network, this device being broken on a cable of a computer network, or, in other modes implementation, integrated into the computer or connected to a communication port thereof. All the information passing through this device is then analyzed in accordance with the method which is the subject of the present invention. In some networks, all or part of the workstations or computer units making up the network are equipped with such a device. Each of these devices contains a processor implementing the method of the invention, and storage means making it possible to store the dictionary of patterns and the calibration parameters. This dictionary of patterns and these calibration parameters can be modified from a central computer server which sends updates. There are many applications. One of them is the detection of viruses: as soon as the first phase has detected the presence of a chain of symbols characteristic of a known virus (what we will call thereafter the footprint of the virus), the device can block the flow of information to prevent the detected virus from spreading through the network. Note that, in this example, the presence of a virus is only detected once the entire fingerprint of the virus, or at least a significant part, has been analyzed by the device. To ensure effective blocking of the information, a buffer memory is provided in the device temporarily storing the information until the moment when the analysis revealed that the information is authorized to circulate. In a particular embodiment of the invention, the device uses a processor capable of analyzing on the fly a flow of several tens of megabits per second. The fact of blocking a few kilobytes in buffer memory introduces a minimal and totally invisible delay for a user of a computer workstation equipped with this device. One of the great advantages of the invention, in this example of application, is that, as soon as a new virus is known, a central computer server can send updates to their dictionary of patterns to all the devices on the network. allow them to prevent the spread of this new virus. If the invention is deployed on a global network such as the Internet, it therefore provides significantly better protection against viruses than all existing systems. In the example described above, the invention only detects already known viruses. In another exemplary implementation, presented here by way of illustration and in no way limiting the possibilities of the present invention, one can obtain indications on the harmful nature of an executable code. If this code contains instructions for writing and / or erasing files it can do considerable damage. If it contains instructions for opening and then reading a file, followed by instructions for sending mail, the code could be a virus, which duplicates itself and sends itself to a family of correspondents. It could also simply have the objective of spying on the content of a workstation without the knowledge of its authorized user. To determine the theme of information passing through the network, whether it be a harmful character, as before, or a pornographic, political, religious character, the process which is the subject of the invention can, in its second phase, analyze the frequencies of appearance and / or mutual positions of the patterns detected during its first phase. Coefficients of patterns relating to each of the themes that we seek to detect are associated with each motif. In addition, each theme has specific evaluation variables associated with it, initialized to zero when the process is started (here the initial values of the evaluation variables are zero) and modified for each pattern detected. The new value of the evaluation variable is determined as being a weighted sum of its old value and of the pattern coefficients provided by the dictionary of patterns (the weighting coefficients of this sum being part of the parameters of the re-evaluation algorithm) . If a symbol of the information to be analyzed is processed without any reason being detected, the relaxation algorithm multiplies the evaluation variables by coefficients between 0 and 1, (these coefficients being one of the parameters of the relaxation algorithm), so that the evaluation variables decrease by exponential decay when no pattern is detected during the successive passage of the symbols of the analyzed information. The evaluation variable associated with the family is therefore linked to the number and positions of the patterns detected in the near past. When it is relevant to identify a couple of patterns separated or not by intermediate symbols, a similar mechanism makes it possible to keep up to date an evaluation variable linked to the presence in the near past of the first or two patterns of the couple, this variable being all the higher as the two patterns are close, and taking even greater values if the couple to be detected was present several times in the recent past. The same technique can be applied to a couple formed by a first motif belonging to a first family and a second motif belonging to a second family (or to the same family). We can, in some examples, work on more complex configurations, such as triplets or quadruplets of patterns or others. The final probability calculation algorithm uses, in this implementation example, weighted sums of the values of the different evaluation variables, associated with thresholds (certain intermediate variables are only taken into account if they are greater than a threshold particular), the thresholds and the weighting coefficients that are part of the parameters of the final probability calculation algorithm. Information here will be all the more likely to be considered as belonging to a particular thematic as it will detect a significant number of patterns, and / or pairs of patterns, which are close to each other and significant for the analyzed theme. . Let us indicate, by way of illustrative example and in no way limiting the possibilities of the present invention, a method of implementing self-learning mechanisms with a view to improving the relevance of the results. In this example, we will only talk about data flows containing texts which we seek to detect if it belongs to a particular theme (violence, pornography, ...) but the principle can be generalized to any type of theme on any type of data flow. The candidate patterns which are added to the pattern dictionary can be words which we think could be related to the theme and be relevant in the detection of this theme, or also words generated automatically by checking certain rules ( minimum number of letters, the proportion of vowels and consonants, the arrangement of these ...). The invention is then made to function by analyzing a large number of texts, the subject of which can be known and provided in advance (supervised learning), or the subject of which is not known in advance and is determined by l invention (unsupervised learning). The possible presence of candidate patterns in the data stream is detected during the first phase of the process which is the subject of the present invention, but this information is not taken into account during the second phase of this process. For each pattern, its frequency of appearance is determined in the various themes to which the data supplied to the invention are attached, the intermediate results necessary for determining these frequencies of occurrence being stored in the coefficients of patterns of the pattern analyzed. Depending on the values taken by these frequencies after analysis of a large number of texts, it will be estimated whether the pattern is more or less correlated with one or other of the themes, and whether it is likely to contribute to the detection of this thematic, or on the contrary to its elimination. In this case, the pattern is selected and goes into the pattern category in training. It will then be taken into account in the second phase of the method which is the subject of the present invention, and its pattern coefficients will be gradually adjusted so as to improve the relevance of the probabilities of belonging found during this second phase. This adjustment of the pattern coefficients is done using a specific adjustment algorithm. The adjustment algorithm uses as input, on the one hand, the probabilities of belonging as calculated during the second phase of the process, as well as the thematic of the text analyzed in the case where this is known (case of supervised learning), and, on the other hand, the prior values of the pattern coefficients which had made it possible to calculate these probabilities of belonging. The adjustment algorithm outputs the new values of the pattern coefficients. The practical applications of the method and system which are the subject of the present invention are numerous. We can cite, by way of illustrative and in no way limitative example of the possible applications, assistance in the selection and classification of letters of application and curriculum vitae. Certain large recruitment consultancy firms or recruiting services of large companies indeed receive, by e-mail, a large number of applications, often spontaneous. The present invention then makes it possible to make a first classification and to redirect each application to people or services likely to be particularly interested in the profile of this application. The relevance of the classification is constantly checked by the recipients of the applications, and the results of this check are used to feed the self-learning mechanisms. When the second phase performs a grammatical analysis (therefore checks whether the analyzed flow respects a grammar among a given family of grammars), then, for each of these grammars and for each of the patterns detected during the first phase, second grammatical analysis process. Each of them consumes little IT resources. In addition to the information linked to the symbol and / or the reason for starting and the address of a state of the PLC, it must, in certain cases, keep a battery and / or a result variable intended to receive the information of semantic order (port number, sender address, type of encryption used etc. etc.) required by the application. This represents only a few tens or hundreds of bytes, and the computer processing that must be carried out by the second grammatical analysis processes remains extremely limited. Like the first syntactic analysis processes, the second grammatical analysis processes can easily operate on a specific hardware block, or better, on several specific hardware blocks, operating as auxiliary processors in parallel with the main processor of this device. In a particular embodiment of the invention, cited here only by way of example, a specific hardware component with a massively parallel architecture is produced comprising, next to a main processor, and on the same component, a large number of specialized elementary coprocessors, each of them having only a small memory space, these specialized processors being intended to host syntactic and grammatical analysis processes and to make them work in parallel. Other characteristics of the invention will appear with the description of figures given below. The latter is carried out by way of description and without limitation, with reference to: FIG. 1 which schematically illustrates the way in which a data stream 1 composed of symbols S is analyzed by the method which is the subject of the present invention; FIG. 2 which illustrates how a dictionary of patterns can be represented by a tree structure 6; FIG. 3 illustrates a particular case of an automaton representing a family of grammars. FIG. 1 schematically represents, on an illustrative and nonlimiting example of the possibilities of the present invention, the way in which a data stream 1 composed of symbols S is analyzed by the method which is the subject of the present invention. The first phase of the method makes it possible to detect, within this data stream, various patterns M1, M2, M3,, M15 belonging to a dictionary of patterns. It will be noted that these detected patterns can be totally or partially superimposed, and that certain patterns (like Mil) can be limited to a single symbol. The second phase of the method then analyzes the sequences of patterns thus detected and checks whether these sequences are grammatically correct for one or more grammars. Some patterns like M2, M4, M9 do not belong to a grammatically correct sequence. On the other hand, the sequence of consecutive patterns {M7, M8, M10, Mil, M12}, (in dotted lines in FIG. 1) form a grammatically correct sequence. The sequence of patterns {M1, M3, M5, M6, M13, M14, MIS} also forms a grammatically correct sequence, this sequence being interrupted between the patterns M6 and M13, patterns between which is nested the grammatically correct sequence {M7 , M8, M10, Mil, M12}. This example illustrates the case of encapsulated protocols. The situation is similar to what happens in a text quoting, between quotation marks, another text, the symbols M6 and M13 playing here the same role as the opening and closing quotation marks. FIG. 2 explains on an illustrative and nonlimiting example of the possibilities of the present invention, the way in which a pattern dictionary can be represented by a tree structure 6. This tree structure is made up of branches 7 (represented by large arrows in FIG. 2 ) and nodes 8 (represented by circles in Figure 2). Each branch 7 is associated on the one hand with a starting node 9
(l'origine de la flèche) et un nœud d'arrivée 10 (l'extrémité de la flèche) et d'autre part une étiquette 13 qui est un symbole de l'alphabet des symboles (dans l'exemple présent l'alphabet des symboles se compose des 26 lettres minuscules de l'alphabet latin) . La racine 12 est l'unique nœud auquel n'arrive aucune branche. Le préfixe d'un nœud 8 de l'arborescence est la suite de symboles composée des étiquettes 13 des branches reliant la racine à ce nœud, ces étiquettes 13 étant prises dans l'ordre où elles sont rencontrées. Dans le présent exemple, le dictionnaire des motifs comprend 10 motifs qui sont {ai, axe, axes, axial, bas, basse, ci, col, colle, cou}, et à chacun de ces motifs correspond un et un seul nœud dont le préfixe est ce motif. Sur la figure 2, ces nœuds, dont les préfixes sont des motifs du dictionnaire, sont colorés en gris. Les nœuds terminaux 11 sont ceux dont ne part aucune branche, et le préfixe d'un nœud terminal est toujours un motif appartenant au dictionnaire des motifs. Lorsque le préfixe d'un nœud non terminal est un motif du dictionnaire, cela signifie que ce motif est le début d'au moins un autre motif du dictionnaire (comme on peut le constater dans le présent exemple avec « bas » et « basse » ou « col » et « colle ») . La figure 3 illustre un cas particulier d'automate 34 représentant une famille de grammaires, cet automate 34 étant composé d'états 35 (représentés par des cercles sur la figure 3) et de transitions 36 (représentées par des flèches sur la figure 3) , à chaque transition 39 étant associé un état de départ 40 et un état d'arrivée 41 (qui, sur la figure 3, sont l'état qui est représenté à l'origine et l'état qui est représenté à l' extrémité de la flèche qui représente cette transition) . Certains états sont qualifiés états initiaux 48 et états finaux 38, et sont représentés sur la figure 3 par des doubles flèches entrant ou sortant de cet état. Il y a exactement un état initial par grammaire. (the origin of the arrow) and a destination node 10 (the end of the arrow) and on the other hand a label 13 which is a symbol of the alphabet of symbols (in the present example the alphabet of symbols consists of the 26 lowercase letters of the Latin alphabet). Root 12 is the only node to which no branch arrives. The prefix of a node 8 in the tree structure is the series of symbols made up of the labels 13 of the branches connecting the root to this node, these labels 13 being taken in the order in which they are encountered. In the present example, the pattern dictionary includes 10 patterns which are {ai, axis, axes, axial, bottom, bottom, ci, neck, glue, neck}, and each of these patterns corresponds to one and only one node, the prefix is this pattern. In Figure 2, these nodes, whose prefixes are patterns in the dictionary, are colored in gray. The terminal nodes 11 are those from which no branch leaves, and the prefix of a terminal node is always a pattern belonging to the dictionary of patterns. When the prefix of a non-terminal node is a pattern in the dictionary, this means that this pattern is the start of at least one other pattern in the dictionary (as we can see in this example with "low" and "low" or "collar" and "glue"). FIG. 3 illustrates a particular case of automaton 34 representing a family of grammars, this automaton 34 being composed of states 35 (represented by circles in FIG. 3) and transitions 36 (represented by arrows in FIG. 3) , with each transition 39 being associated a starting state 40 and a finishing state 41 (which, in FIG. 3, are the state which is represented at the origin and the state which is represented at the end of the arrow representing this transition). Certain states are qualified initial states 48 and final states 38, and are represented in FIG. 3 by double arrows entering or leaving this state. There is exactly one initial state per grammar.

Claims

REVENDICATIONS
1. Procédé d'analyse d'un flux de données (1) ; ladite analyse se faisant à la volée ; ledit flux de données (1) se présentant comme une suite de symboles pris dans un ensemble de symboles appelé ci-après l'alphabet des symboles ; ledit procédé mettant en œuvre un dictionnaire ci- après appelé dictionnaire des motifs ; ledit dictionnaire des motifs étant composé de certaines séquences particulières de symboles appelées ci-après des motifs ; ledit dictionnaire des motifs étant représenté sous forme d'une arborescence (6) ; ladite arborescence (6) étant constituée de branches (7) et de nœuds (8) ; chaque branche (7) de ladite arborescence (6) partant d'un nœud de ladite arborescence (6), ci-après appelé nœud de départ (9) de ladite branche, et arrivant à un autre nœud de ladite arborescence (6) ci-après appelé nœud d'arrivée (10) de ladite branche ; un nœud de ladite arborescence (6) dont ne part aucune branche de ladite arborescence (6) étant ci-après appelé un nœud terminal (11) ; ladite arborescence (6) étant telle qu'il existe un et un seul nœud auquel n'arrive aucune branche, le nœud auquel n'arrive aucune branche étant ci-après dénommé la racine (12) ; à chaque branche de ladite arborescence (6) étant attribué un symbole dudit alphabet des symboles, ce symbole étant ci-après appelé l'étiquette de ladite branche (13) ; à chaque nœud de ladite arborescence (6) étant associée une suite de symboles ci-après dénommée le préfixe dudit nœud ; ledit préfixe dudit nœud étant composé des étiquettes des branches (7) reliant ladite racine (12) audit nœud, ces étiquettes étant prises dans l'ordre où elles sont rencontrées ; le préfixe de ladite racine (12) étant la suite ne comprenant aucun élément ; à chaque nœud étant par ailleurs associée une famille de motifs formée des motifs contenus dans ledit dictionnaire des motifs et qui commencent par le préfixe dudit nœud, le nombre de motifs contenus dans 'ladite famille associée audit nœud étant ci-après appelé la richesse dudit nœud ; ladite arborescence (6) étant telle qu'aucun nœud de ladite arborescence (6) n'ait une richesse égale à zéro ; ladite arborescence (6) étant en outre telle que tout nœud terminal (11) de ladite arborescence (6) ait un préfixe égal à un motif contenu dans ledit dictionnaire des motifs ; ladite arborescence (6) étant en outre telle que pour tout motif contenu dans ledit dictionnaire des motifs, il y ait un et un seul nœud de l'arborescence (6) dont le préfixe soit égal à ce motif ; à chaque nœud de ladite arborescence (6) étant associé un nombre appelé adresse dudit nœud de telle sorte que les adresses de deux nœuds différents soient des nombres différents ; ledit procédé comprenant une première étape préliminaire de constitution dudit dictionnaire des motifs ; ledit procédé comprenant une première phase consistant à détecter la présence ou non, au sein dudit flux de données (1) , de motifs appartenant audit dictionnaire des motifs ; ladite première phase fonctionnant à la volée et prenant en compte successivement les symboles constituant ledit flux de données (1) ; ladite première phase étant telle que si un motif, appartenant audit dictionnaire des motifs, est présent dans ledit flux de données (1) , cette présence est détectée dès la prise en compte du dernier symbole constituant ledit motif ; ladite première phase mettant en œuvre des premiers processus d'analyse syntaxique fonctionnant en parallèle ; à chacun desdits premiers processus d'analyse syntaxique étant associé - d'une part un des symboles constituant ledit flux de données (1) , ledit symbole étant ci-après appelé symbole de démarrage dudit premier processus d'analyse syntaxique et n'étant jamais modifié au cours de l'exécution dudit premier processus d'analyse syntaxique, - d'autre part un nombre égal à l'adresse d'un nœud de ladite arborescence (6) , ledit nombre étant ci-après appelé la position dudit premier processus d'analyse syntaxique et étant destiné à être modifié au cours de l'exécution dudit premier processus d'analyse syntaxique, ledit premier processus d'analyse syntaxique commençant à s'exécuter dès la prise en compte dudit symbole de démarrage et étant chargé de détecter, pour toutes les valeurs successives de l'entier N, si la séquence de N symboles consécutifs, extraite dudit flux de données (1), cette extraction débutant audit symbole de démarrage, est égale à un des motifs dudit dictionnaire des motifs ; ladite position dudit premier processus d'analyse syntaxique étant, au moment où ledit premier processus d'analyse syntaxique commence à s'exécuter, égale à l'adresse de la racine (12) de ladite arborescence (6) ; l'exécution dudit premier processus d'analyse syntaxique incluant, à la prise en compte de chacun des symboles constituant ledit flux de données (1) , les étapes suivantes : - l'étape de repérer s'il y a, dans ladite arborescence (6), une ou plusieurs branche (s) partant du nœud dont l'adresse est égale à la position dudit premier processus d'analyse syntaxique et dont l'étiquette est égale audit symbole pris en compte, cette ou ces branche (s) étant ci-après appelée (s) la ou les branche (s) active (s) pour ledit premier processus d'analyse syntaxique, - l'étape - s'il n'y a aucune branche active pour ledit premier processus d'analyse syntaxique, d'arrêter l'exécution dudit premier processus d'analyse syntaxique, - s'il y a une seule branche active pour ledit premier processus d'analyse syntaxique, de donner comme valeur à la position dudit premier processus d'analyse syntaxique l'adresse du nœud d'arrivée (10) de ladite branche active, - s'il y a plusieurs branches actives pour ledit premier processus d'analyse syntaxique, de dupliquer ledit premier processus d'analyse syntaxique autant de fois que nécessaire, de façon à associer à chacune desdites branches actives, une copie dudit premier processus d'analyse syntaxique, la position de ladite copie étant alors égale à l'adresse du nœud d'arrivée (10) de la branche active à laquelle il est associé, - l'étape, pour ledit premier processus d'analyse syntaxique, si son exécution n'a pas été arrêtée au cours de l'étape précédente, ou, dans le cas où il y a eu duplication lors de l'étape précédente, l'étape, pour chacune desdites copies dudit premier processus d'analyse syntaxique, de signaler si le préfixe du nœud dont l'adresse est égale à la position dudit premier processus d'analyse syntaxique est égal à un motif contenu dans ledit dictionnaire des motifs, ce motif étant alors ci-après appelé un motif détecté par ledit premier processus d'analyse syntaxique ; ladite première phase comprenant en outre, après la prise en compte de chacun des symboles constituant ledit flux de données (1) , une première étape complémentaire consistant à fournir une liste de tous les motifs détectés, lors de la prise en compte dudit symbole, par l'un au moins desdits premiers processeurs d'analyse syntaxique en cours d'exécution ; ladite liste étant ci-après appelée liste des motifs détectés ; de sorte que ladite liste des motifs détectés comprend tous les motifs présents dans ledit flux à analyser, se terminant audit symbole pris en compte, et égaux à un motif dudit dictionnaire des motifs. 1. Method for analyzing a data flow (1); said analysis being carried out on the fly; said data stream (1) presenting itself as a series of symbols taken from a set of symbols hereinafter called the alphabet of symbols; said method implementing a dictionary hereinafter called a pattern dictionary; said pattern dictionary being composed of certain particular sequences of symbols called patterns below; said dictionary of patterns being represented in the form of a tree structure (6); said tree (6) consisting of branches (7) and nodes (8); each branch (7) of said tree (6) starting from a node of said tree (6), hereinafter called the start node (9) of said branch, and arriving at another node of said tree (6) ci -after called arrival node (10) of said branch; a node of said tree (6) from which does not share any branch of said tree (6) being hereinafter called a terminal node (11); said tree structure (6) being such that there is one and only one node to which no branch arrives, the node to which no branch arrives being hereinafter called the root (12); to each branch of said tree structure (6) being assigned a symbol of said alphabet of symbols, this symbol being hereinafter called the label of said branch (13); each node of said tree (6) being associated with a series of symbols hereinafter called the prefix of said node; said prefix of said node being composed of the labels of the branches (7) connecting said root (12) to said node, these labels being taken in the order in which they are encountered; the prefix of said root (12) being the sequence comprising no element; each node also being associated with a family of patterns formed by the patterns contained in said dictionary of patterns and which begin with the prefix of said node, the number of patterns contained in 'said associated family said node being hereinafter called the richness of said node; said tree structure (6) being such that no node of said tree structure (6) has a richness equal to zero; said tree structure (6) being further such that any terminal node (11) of said tree structure (6) has a prefix equal to a pattern contained in said dictionary of patterns; said tree structure (6) being further such that for any pattern contained in said dictionary of patterns, there is one and only one node of the tree structure (6) whose prefix is equal to this pattern; each node of said tree (6) being associated with a number called address of said node so that the addresses of two different nodes are different numbers; said method comprising a first preliminary step of constituting said dictionary of patterns; said method comprising a first phase consisting in detecting the presence or not, within said data stream (1), of patterns belonging to said dictionary of patterns; said first phase operating on the fly and successively taking into account the symbols constituting said data stream (1); said first phase being such that if a pattern, belonging to said dictionary of patterns, is present in said data stream (1), this presence is detected as soon as the last symbol constituting said pattern is taken into account; said first phase implementing first syntactic analysis processes operating in parallel; each of said first parsing processes being associated - on the one hand, one of the symbols constituting said data flow (1), said symbol being hereinafter called the symbol for starting said first parsing process and never being modified during the execution of said first parsing process, - on the other hand, a number equal to the address of a node of said tree structure (6), said number being hereinafter called the position of said first syntactic analysis process and being intended to be modified during the execution of said first parsing process, said first parsing process starting to run as soon as said start symbol is taken into account and being responsible for detecting, for all the successive values of the integer N, whether the sequence N consecutive symbols, extracted from said data stream (1), this extraction starting at said start symbol, is equal to one of the patterns of said dictionary of patterns; said position of said first parsing process being, when said first parsing process begins to run, equal to the address of the root (12) of said tree (6); the execution of said first syntactic analysis process including, when taking into account each of the symbols constituting said data flow (1), the following steps: - the step of identifying if there is, in said tree structure ( 6), one or more branch (s) starting from the node whose address is equal to the position of said first syntactic analysis process and whose label is equal to said symbol taken into account, this or these branch (s) being hereinafter called (s) the active branch (es) for said first parsing process, - the step - if there is no active branch for said first parsing process , to stop the execution of said first parsing process, - if there is only one active branch for said first parsing process, to give as value to the position of said first parsing process the address of the arrival node (10) of said active branch, - if there are several active branches for said first parsing process, duplicate said first parsing process as many times as necessary, so as to associate with each of said active branches, a copy of said first process syntactic analysis, the position of said copy then being equal to the address of the arrival node (10) of the active branch with which it is associated, - the step, for said first syntactic analysis process, if its execution was not stopped during the previous step, or, in the case of duplication in the previous step, the step, for each of said copies of said first syntax analysis process, to report if the prefix of the node whose address is equal to the position of said first parsing process is equal to a pattern contained in said dictionary of patterns, this pattern then being hereinafter called a pattern detected by said first process known syntactic analysis; said first phase further comprising, after taking into account each of the symbols constituting said data flow (1), a first complementary step consisting in providing a list of all the patterns detected, when taking into account said symbol, by at least one of said first parsing processors running; said list being hereinafter called list of detected patterns; so that said list of detected patterns includes all the patterns present in said stream to be analyzed, ending at said symbol taken into account, and equal to a pattern of said dictionary of patterns.
2. Procédé selon la revendication 1 ; ledit dictionnaire des motifs associant à tout ou partie desdits motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif ; ladite première phase étant telle que si ledit dictionnaire des motifs associe audit motif des coefficients de motifs et/ou des informations de motifs, lesdits coefficients de motifs et/ou lesdites informations de motif sont fournis par ladite première phase en même temps qu'est détectée la présence dudit motif. 2. Method according to claim 1; said dictionary of patterns associating with all or part of said patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information; said first phase being such that if said pattern dictionary associates with said pattern pattern coefficients and / or pattern information, said pattern coefficients and / or said pattern information are supplied by said first phase at the same time as is detected the presence of said motif.
3. Procédé selon la revendication 1 ; ledit procédé utilisant en outre une ou plusieurs variables appelées ci-après variables d'évaluation ; ledit procédé comprenant en outre une étape préalable d' initial!ser lesdites variables d'évaluation à des valeurs fixées à l'avance et ci-après appelées valeurs initiales des variables d'évaluation ; ledit procédé comprenant en outre une seconde phase, mettant en œuvre un algorithme d'analyse, ledit algorithme d'analyse prenant en compte un ou plusieurs arguments et ayant pour effet, selon la valeur desdits arguments, de modifier la valeur de tout ou partie desdites variables d'évaluation ; ledit procédé étant tel que ladite première phase et ladite seconde phase s'exécutent à la volée, de façon imbriquée, ledit algorithme d'analyse étant exécuté dès que ladite première phase a fourni un motif détecté, ledit motif détecté étant alors l'un des arguments dudit algorithme d'analyse. 3. Method according to claim 1; said method further using one or more variables hereinafter called evaluation variables; said method further comprising a preliminary step of initializing said evaluation variables to values fixed in advance and hereinafter called initial values of evaluation variables; said method further comprising a second phase, implementing an analysis algorithm, said analysis algorithm taking into account one or more arguments and having the effect, according to the value of said arguments, of modifying the value of all or part of said evaluation variables; said method being such that said first phase and said second phase are executed on the fly, in a nested fashion, said analysis algorithm being executed as soon as said first phase has provided a detected pattern, said detected pattern then being one of the arguments of said analysis algorithm.
4. Procédé selon la revendication 3 ; ledit dictionnaire des motifs associant à tout ou partie desdits motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif ; ladite première phase étant telle que si ledit dictionnaire des motifs associe audit motif des coefficients de motifs et/ou des informations de motifs, lesdits coefficients de motifs et/ou lesdites informations de motif sont fournis par ladite première phase en même temps qu'est détectée la présence dudit motif, lesdits coefficients de motifs et/ou lesdites informations de motif étant alors des arguments dudit algorithme d'analyse. 4. Method according to claim 3; said dictionary of patterns associating with all or part of said patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information; said first phase being such that if said pattern dictionary associates with said pattern pattern coefficients and / or pattern information, said pattern coefficients and / or said pattern information are supplied by said first phase at the same time as is detected the presence of said pattern, said pattern coefficients and / or said reason information then being arguments of said analysis algorithm.
5. Procédé selon la revendication 3 ; ledit algorithme d'analyse étant en outre exécuté dès que ladite première phase a achevé la prise en compte d'un symbole constituant ledit flux de données (1) , ledit symbole pris en compte étant alors un argument dudit algorithme d' analyse. 5. Method according to claim 3; said analysis algorithm being further executed as soon as said first phase has completed taking into account a symbol constituting said data flow (1), said symbol taken into account then being an argument of said analysis algorithm.
6. Procédé selon l'une quelconque des revendications 3 à 5; ladite première étape préliminaire comprenant en outre une sous-étape consistant à marquer tout ou partie desdits motifs comme étant des motifs prioritaires, et à associer à chacun desdits motifs prioritaires au moins une action à exécuter ; ladite première étape complémentaire comprenant en outre la sous-étape de lancer l'exécution de la ou des actio (s) associée (s) à tous les motifs prioritaires contenus dans ladite liste des motifs détectés ; la mise en oeuvre dudit algorithme d'analyse étant inhibée lorsque l'un desdits motifs détectés est un motif prioritaire auquel est associée une action ayant pour effet d'inhiber ledit algorithme d'analyse. 6. Method according to any one of claims 3 to 5; said first preliminary step further comprising a sub-step consisting in marking all or part of said patterns as being priority patterns, and in associating with each of said priority patterns at least one action to be executed; said first additional step further comprising the sub-step of launching the execution of the action (s) associated with all of the priority patterns contained in said list of detected patterns; the implementation of said analysis algorithm being inhibited when one of said detected patterns is a priority pattern with which an action is associated having the effect of inhibiting said analysis algorithm.
7. Procédé selon l'une quelconque des revendications 3 à 6 ; ledit procédé comprenant l'étape préalable de modifier ledit dictionnaire des motifs, le résultat de cette modification étant ci-après appelé le dictionnaire des motifs modifié, et de modifier ladite arborescence, par ajout de nouvelles branches et de nouveaux nœuds, et/ou par suppression de branches et de nœuds ; le résultat de cette modification étant ci-après appelé l'arborescence modifiée ; ladite arborescence modifiée étant en outre telle que tout nœud terminal de ladite arborescence modifiée ait un préfixe égal à un motif contenus dans ledit dictionnaire des motifs modifié ; ladite arborescence modifiée étant en outre telle que pour tout motif contenu dans ledit dictionnaire des motifs modifié, il y ait un et un seul nœud de ladite arborescence modifiée dont le préfixe soit égal à ce motif. 7. Method according to any one of claims 3 to 6; said method comprising the prior step of modifying said dictionary of patterns, the result of this modification being hereinafter called the modified pattern dictionary, and of modifying said tree structure, by adding new branches and new nodes, and / or by removal of branches and nodes; the result of this modification being hereinafter called the modified tree structure; said modified tree structure being further such that any terminal node of said modified tree structure has a prefix equal to a pattern contained in said dictionary of patterns modified; said modified tree structure further being such that for any pattern contained in said dictionary of modified patterns, there is one and only one node of said modified tree structure whose prefix is equal to this pattern.
8. Procédé selon la revendication 4 ; ledit algorithme d'analyse de ladite seconde phase consistant à déterminer la probabilité ou les probabilités que tout ou partie des données constituant ledit flux de données appartienne à une ou à plusieurs thématique (s) particulière (s) ; lesdites probabilités étant ci-après appelées probabilités d'appartenance ; lesdites probabilités d'appartenance faisant partie desdites variables d'évaluation ; lesdites probabilités d'appartenance étant calculées à l'aide d'une fonction, ci-après appelée fonction d'évaluation ; ladite fonction d'évaluation prenant en compte les motifs détectés lors de ladite première phase ; ledit algorithme d'analyse de ladite seconde phase modifiant les valeurs de toutes ou partie desdites variables d'évaluation, notamment la valeur desdites probabilités d'appartenance, en appliquant, pour chaque symbole pris en compte, les étapes suivantes : - l'étape, si, au terme de ladite première phase, un motif, appartenant audit dictionnaire des motifs et se terminant par ledit symbole pris en compte, a été détecté dans ledit flux de données, de modifier tout ou partie desdites variables d'évaluation en mettant en œuvre un algorithme ci- après appelé algorithme de réévaluation, ledit algorithme de réévaluation prenant en compte ledit motif ayant été détecté ; ledit procédé étant tel que, si ledit dictionnaire des motifs associe audit motif ayant été détecté des coefficients de motifs et/ou des informations de motifs, ledit algorithme de réévaluation prend en compte en outre lesdits coefficients de motifs et/ou lesdites informations de motif ; - l'étape, si, au terme de ladite première phase, aucun motif, appartenant audit dictionnaire des motifs et se terminant par ledit symbole pris en compte, n'a été détecté dans ledit flux de données, de modifier tout ou partie desdites variables d'évaluation en mettant en œuvre un algorithme ci- après appelé algorithme de relaxation ; - l'étape, après mise en œuvre selon le cas, de l'algorithme de réévaluation ou de l'algorithme de relaxation, d'appliquer un algorithme, ci-après appelé algorithme de calcul final des probabilités, qui prend comme arguments les valeurs de tout ou partie desdites variables d'évaluation et fournit comme résultat des valeurs provisoires de la probabilité ou des probabilités que la partie dudit flux de données qui se termine audit symbole pris en compte appartienne à ladite thématique particulière ou auxdites thématiques particulières, les valeurs prises alors par ladite ou lesdites probabilités étant ci-après appelée (s) probabilités locales ; ladite fonction d'évaluation consistant à calculer lesdites probabilités d'appartenance, pour chaque thématique particulière, en prenant en compte les valeurs successives desdites probabilités locales, fournies par ledit algorithme de calcul final de la probabilité, après prise en compte de tous les symboles constituant ledit flux de données. 8. The method of claim 4; said algorithm for analyzing said second phase consisting in determining the probability or probabilities that all or part of the data constituting said data flow belongs to one or more particular thematic (s); said probabilities being hereinafter called membership probabilities; said membership probabilities being one of said assessment variables; said membership probabilities being calculated using a function, hereinafter called the evaluation function; said evaluation function taking into account the patterns detected during said first phase; said analysis algorithm of said second phase modifying the values of all or part of said evaluation variables, in particular the value of said probabilities of belonging, by applying, for each symbol taken into account, the following steps: the step, if, at the end of said first phase, a pattern, belonging to said dictionary of patterns and ending with said symbol taken into account, has been detected in said data flow, to modify all or part of said evaluation variables by implementing an algorithm hereinafter called the re-evaluation algorithm, said re-evaluation algorithm taking into account said pattern having been detected; said method being such that, if said pattern dictionary associates with said pattern having been detected pattern coefficients and / or pattern information, said reassessment algorithm further takes into account said pattern coefficients and / or said pattern information; - the step, if, at the end of said first phase, no pattern, belonging to said dictionary of patterns and ending with said symbol taken into account, has been detected in said data flow, to modify all or part of said variables evaluation by implementing an algorithm hereinafter called relaxation algorithm; the step, after implementation, as the case may be, of the reassessment algorithm or of the relaxation algorithm, of applying an algorithm, hereinafter called the final probability calculation algorithm, which takes the values as arguments of all or part of said evaluation variables and provides as a result provisional values of the probability or probabilities that the part of said data flow which ends at said symbol taken into account belongs to said particular thematic or to said particular thematic, the values taken then by said one or more probabilities being hereinafter called local probabilities; said evaluation function consisting in calculating said probabilities of belonging, for each particular thematic, taking into account the successive values of said local probabilities, provided by said algorithm for final calculation of the probability, after taking into account all the symbols constituting said data flow.
9. Procédé selon la revendication 8 ; ledit algorithme de réévaluation se ramenant à une première famille de fonctions prenant comme variables tout ou partie desdites variables d'évaluation ; ladite première famille de fonctions, étant telle que si ledit dictionnaire des motifs associe audit motif qui a été détecté des coefficients de motifs et/ou des informations de motifs, ladite première famille de fonctions prend en outre comme variables lesdits coefficients de motifs et/ou lesdites informations de motif ; ladite première famille de fonctions fournissant comme résultat les nouvelles valeurs de tout ou partie desdites variables d'évaluation ; la ou les fonction (s) constituant ladite première famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de réévaluation ; ledit algorithme de relaxation se ramenant à une seconde famille de fonctions prenant comme variables tout ou partie desdites variables d'évaluation et fournissant comme résultat les nouvelles valeurs de tout ou partie desdites variables d'évaluation ; la ou les fonction (s) constituant ladite seconde famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de relaxation ; ledit algorithme de calcul final des probabilités se ramenant à une troisième famille de fonctions prenant comme variables lesdites variables d'évaluation et fournissant comme résultat lesdites probabilités locales ; la ou les fonction (s) constituant ladite troisième famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de calcul final des probabilités ; lesdits coefficients de motif, lesdites valeurs initiales des variables d'évaluation, lesdits paramètres de l'algorithme de réévaluation, lesdits paramètres de l'algorithme de relaxation, lesdits paramètres de l'algorithme de calcul final des probabilités étant ci-après appelés de façon générale les paramètres de calibrage. 9. The method of claim 8; said re-evaluation algorithm being reduced to a first family of functions taking as variables all or part of said evaluation variables; said first family of functions, being such that if said dictionary of patterns associates with said pattern which has been detected pattern coefficients and / or pattern information, said first family of functions also takes as variables said pattern coefficients and / or said reason information; said first family of functions providing as a result the new values of all or part of said evaluation variables; the function or functions constituting said first family of functions being functions dependent on a family of parameters hereinafter called parameters of the re-evaluation algorithm; said relaxation algorithm being reduced to a second family of functions taking as variables all or part of said evaluation variables and supplying as result the new values of all or part of said evaluation variables; the function or functions constituting said second family of functions being functions dependent on a family of parameters hereinafter called parameters of the relaxation algorithm; said algorithm for final calculation of probabilities being reduced to a third family of functions taking as variables said evaluation variables and providing as a result said local probabilities; the function or functions constituting said third family of functions being functions dependent on a family of parameters hereinafter called parameters of the algorithm for final calculation of probabilities; said pattern coefficients, said initial values of the evaluation variables, said parameters of the re-evaluation algorithm, said parameters of the relaxation algorithm, said parameters of the algorithm for final calculation of probabilities being hereinafter called so the calibration parameters.
10. Procédé selon la revendication 9 ; ledit procédé comprenant en outre l'étape préalable supplémentaire d'associer à chaque symbole dudit alphabet des symboles, un coefficient de pondération appelé ci-après coefficient de pondération de symbole ; ladite seconde famille de fonctions et/ou ladite troisième famille de fonctions prenant en outre comme variable supplémentaire ledit coefficient de pondération de symbole associé audit symbole pris en compte ; lesdits paramètres de calibrage comprenant en outre lesdits coefficients de pondération de symbole. 10. The method of claim 9; said method further comprising the additional preliminary step of associating with each symbol of said alphabet of symbols, a weighting coefficient hereinafter called symbol weighting coefficient; said second family of functions and / or said third family of functions also taking as additional variable said symbol weighting coefficient associated with said symbol taken into account; said calibration parameters further comprising said symbol weighting coefficients.
11. Procédé selon l'une quelconque des revendications 9 ou 10 ; ledit procédé comprenant une étape supplémentaire, appelée ci-après le recalibrage, consistant, après l'analyse dudit flux de données et en fonction des résultats fournis par ladite fonction d'évaluation, à exécuter une ou plusieurs des sous-étapes suivantes : - la sous-étape d'ajouter un ou plusieurs motifs audit dictionnaire des motifs, - la sous-étape de retirer un ou plusieurs motifs dudit dictionnaire des motifs, - la sous-étape de faire varier tout ou partie desdits paramètres de calibrage. 11. Method according to any one of claims 9 or 10; said method comprising an additional step, hereinafter called recalibration, consisting, after the analysis of said data flow and as a function of the results provided by said evaluation function, in executing one or more of the following sub-steps: sub-step of adding one or more patterns to said dictionary of patterns, - the sub-step of removing one or more patterns from said dictionary of patterns, - the sub-step of varying all or part of said calibration parameters.
12. Procédé selon la revendication 11 ; ledit procédé comprenant une phase préalable ci-après dénommée phase d'apprentissage, consistant à réitérer à plusieurs reprises les étapes suivantes : l'étape de faire fonctionner ladite première phase et ladite seconde phase sur des flux de données dont les probabilités d'appartenance à des thématiques particulières sont connues à l'avance, - l'étape d'exécuter ledit recalibrage, de façon à ce que lesdites probabilités d'appartenance déterminées lors de ladite seconde phase dudit procédé soient le plus proche possible de valeurs fixées à l'avance. 12. The method of claim 11; said method comprising a prior phase hereinafter called learning phase, consisting of repeatedly repeating the following steps: the step of operating said first phase and said second phase on data streams including the probabilities of belonging to specific themes are known in advance, - the step of executing said recalibration, so that said probabilities of belonging determined during said second phase of said process are as close as possible to values fixed in advance .
13. Procédé selon la revendication 11 ; ledit dictionnaire des motifs et lesdits paramètres de calibrage pouvant être modifiés à l'aide d'informations provenant d'une source externe. 13. The method of claim 11; said pattern dictionary and said calibration parameters can be modified using information from an external source.
14. Procédé selon la revendication 8 ; les motifs contenus dans ledit dictionnaire des motifs étant classifiés en trois catégories de motifs appelées ci-après catégorie des motifs opérationnels, catégorie des motifs candidats et catégorie des motifs en apprentissage ; ledit dictionnaire des motifs étant tel qu'il associe des coefficients de motifs au moins à chacun desdits motifs candidats et à chacun desdits motifs en apprentissage ; ledit procédé étant tel que l'éventuelle présence, dans ledit flux de données, de motifs appartenant à ladite catégorie des motifs candidats est détectée au cours de ladite première phase mais n'est pas prise en compte au cours de ladite seconde phase ; ledit procédé comportant en outre une phase d'auto apprentissage ; ladite phase d'auto apprentissage se déroulant en parallèle de ladite première phase et de ladite seconde phase ; ladite phase d'auto apprentissage comprenant elle-même deux parties appelées ci-après sélection des apprentis et formation des apprentis ; ladite sélection des apprentis consistant, lorsque la présence d'un motif appartenant à la catégorie des motifs candidats a été détectée au cours de ladite première phase, à modifier tout ou partie des coefficients de motif du motif ainsi détecté, cette modification prenant en compte tout ou partie desdites variables d'évaluation ; ladite sélection des apprentis consistant en outre, selon les valeurs prises par lesdits coefficients de motifs dudit motif ainsi détecté, à faire passer ou non ledit motif ainsi détecté dans la catégorie des motifs en apprentissage ; ladite formation des apprentis consistant, lorsque la présence d'un motif appartenant à la catégorie des motifs en apprentissage est détectée au cours de ladite première phase, à donner de nouvelles valeurs aux coefficients de motifs du motif ainsi détecté, lesdites nouvelles valeurs étant déterminées à partir desdites variables d'évaluation et des valeurs préalables desdits coefficients de motifs dudit motif ainsi détecté, ladite formation des apprentis pouvant, en fonction de l'évolution des valeurs desdits coefficients de motifs dudit motif ainsi détecté, modifier la catégorie dudit motif ainsi détecté. 14. The method of claim 8; the patterns contained in said pattern dictionary being classified into three categories of patterns hereinafter called category of operational patterns, category of candidate patterns and category of learning patterns; said pattern dictionary being such that it associates pattern coefficients at least with each of said candidate patterns and with each of said learning patterns; said method being such that the possible presence, in said data stream, of patterns belonging to said category of candidate patterns is detected during said first phase but is not taken into account during said second phase; said method further comprising a self-learning phase; said self-learning phase taking place in parallel with said first phase and said second phase; said self-learning phase itself comprising two parts called hereinafter selection of apprentices and training of apprentices; said selection of the apprentices consisting, when the presence of a pattern belonging to the category of candidate patterns was detected during said first phase, in modifying all or part of the pattern coefficients of the pattern thus detected, this modification taking into account all or part of said evaluation variables; said selection of apprentices further consisting, according to the values taken by said coefficients of patterns of said pattern thus detected, to pass or not said pattern thus detected in the category of patterns in learning; said training of the apprentices consisting, when the presence of a pattern belonging to the category of patterns in learning is detected during said first phase, in giving new values to the pattern coefficients of the pattern thus detected, said new values being determined at from said evaluation variables and from the prior values of said pattern coefficients of said pattern thus detected, said training of the apprentices being able, depending on the evolution of the values of said pattern coefficients of said pattern thus detected, to modify the category of said pattern thus detected.
15. Procédé selon l'une quelconque des revendications 3 à 14 ; ledit procédé mettant en œuvre une famille de grammaires, composée de grammaires, chacune desdites grammaires comprenant une ou plusieurs règles susceptibles d'être vérifiées ou non par une suite de motifs ; une suite de motifs vérifiant toutes les règles d'une grammaire appartenant à ladite famille de grammaires étant ci- après qualifiée grammaticalement correcte pour ladite grammaire r ledit algorithme d'analyse de ladite seconde phase ayant pour objectif d'effectuer une analyse grammaticale des suites de motifs formées de tout ou partie des motifs détectés par lesdits premiers processus d'analyse syntaxique mis en œuvre au cours de ladite première phase, une telle suite de motifs étant ci-après appelée suite détectée ; ladite analyse grammaticale vérifiant, pour chacune desdites suites détectées et pour chacune des grammaires appartenant à ladite famille de grammaires, si ladite suite détectée est grammaticalement correcte pour ladite grammaire. 15. Method according to any one of claims 3 to 14; said method implementing a family of grammars, composed of grammars, each of said grammars comprising one or more rules capable of being verified or not by a series of patterns; a series of patterns verifying all the rules of a grammar belonging to said family of grammars being hereinafter qualified grammatically correct for said grammar r said analysis algorithm of said second phase having the objective of carrying out a grammatical analysis of the sequences of patterns formed by all or part of the patterns detected by said first syntactic analysis processes implemented during said first phase, such a sequence of patterns being hereinafter called detected sequence; said grammatical analysis verifying, for each of said detected sequences and for each of the grammars belonging to said family of grammars, whether said detected sequence is grammatically correct for said grammar.
16. Procédé selon la revendication 15 ; ladite famille de grammaires étant représentée par un automate (34) ; ledit automate (34) étant constitué d'états (35) et de transitions (36) ; à chaque état dudit automate (34) étant associé un nombre appelé adresse dudit état, de telle sorte que les adresses de deux états (35) différents soient des nombres différents ; l'un au moins des états (35) dudit automate (34) étant appelé état final (38) dudit automate (34) ; à chaque grammaire prise dans ladite famille de grammaires étant associé un état dudit automate (34), appelé l'état initial (48) dudit automate pour ladite grammaire ; à chaque transition (39) dudit automate (34) étant associés deux états (35) dudit automate (34), ci-après appelés état de départ (40) de la transition (39) et état d'arrivée (41) de la transition (39) ; à chacun desdits états finaux (38) dudit automate (34) étant associé une grammaire prise dans ladite famille de grammaires ; à chaque transition (39) dudit automate (34) étant en outre attribué un ensemble composé d'une ou plusieurs séquences de symboles, ci-après appelé l'étiquette totale de ladite transition (39), l'une des dites séquences de symboles de ladite étiquette totale étant un motif appartenant audit dictionnaire des motifs et étant ci-après appelé l'étiquette lexicale de ladite transition (39) ; ledit procédé comprenant une seconde étape préliminaire consistant à construire ledit automate (34) ; ladite seconde phase mettant en œuvre, des seconds processus d'analyse grammaticale fonctionnant en parallèle ; à chacun desdits seconds processus d'analyse grammaticale étant associés : - un motif détecté au cours de ladite première phase, ledit motif détecté étant ci-après appelé motif de démarrage dudit second processus d'analyse grammaticale et n'étant jamais modifié au cours de l'exécution dudit second processus d'analyse grammaticale, - une grammaire appartenant à ladite famille de grammaires, - un nombre égal à l'adresse d'un état dudit automate (34) , ledit nombre faisant partie desdites variables d'évaluation, ledit nombre étant ci-après appelé la position dudit second processus d'analyse grammaticale et étant destiné à être modifié au cours de l'exécution dudit second processus d'analyse grammaticale, ledit second processus d'analyse grammaticale commençant à s'exécuter dès la détection dudit motif de démarrage et étant chargé d'analyser si une suite de motifs détectés commençant audit motif de démarrage est grammaticalement correcte pour ladite grammaire associée audit second processus d'analyse grammaticale ; ladite position dudit second processus d'analyse grammaticale étant, au moment où ledit second processus d'analyse grammaticale commence à s'exécuter, égale à l'adresse de l'état initial (48) dudit automate (34) pour la grammaire associée audit second processus d'analyse grammaticale ; l'exécution dudit second processus d'analyse grammaticale incluant, à la prise en compte de chacun des motifs détectés : - a) une étape de filtrage consistant à décider si une ou plusieurs des transitions (36) dudit automate (34) seront utilisées lors de ladite prise en compte dudit motif détecté, ladite étape de filtrage considérant successivement toutes les transitions (36) dont l'état de départ (40) est l'état dont l'adresse est égale à la position dudit second processus d'analyse grammaticale, et appliquant à chacune des transitions (36) ainsi considérées un algorithme de décision, ledit algorithme de décision ayant pour objet de décider si ladite transition (39) sera utilisée lors de ladite prise en compte dudit motif détecté pris en compte, une telle transition (39) étant alors par la suite appelée une transition active pour ledit motif détecté, ledit algorithme de décision prenant comme argument tout ou partie de l'étiquette totale de ladite transition (39) ainsi que ledit motif détecté pris en compte, - b) une étape d'exécution consistant, - s'il n'y a aucune transition active pour ledit second processus d'analyse grammaticale, à mettre en œuvre un algorithme d'arrêt ayant pour objet de décider si ledit second processus d'analyse grammaticale doit être arrêté et si oui, de mettre fin audit second processus d'analyse grammaticale, - s'il y a une seule transition active pour ledit second processus d'analyse grammaticale, à donner comme valeur à la position dudit second processus d'analyse grammaticale l'adresse de l'état d'arrivée (41) de ladite transition (39) active, - s'il y a plusieurs transitions actives pour ledit second processus d'analyse grammaticale, à effectuer autant de duplications que nécessaire dudit second processus d'analyse grammaticale, de façon à associer à chacune desdites transitions actives, une copie dudit second processus d'analyse grammaticale issue de ladite ou desdites duplication (s) , la position de ladite copie étant alors égale à l'adresse de l'état d'arrivée (41) de la transition (39) à laquelle ladite copie est associée, - c) une étape de signalisation consistant, pour ledit second processus d'analyse grammaticale ou, dans le cas où il y a eu duplication lors de l'étape précédente, pour chacune desdites copie dudit second processus d'analyse grammaticale issues de ladite ou desdites duplicatio (s) , à signaler si l'état dont l'adresse est égale à la position dudit second processus d'analyse grammaticale est un état final (38) dudit automate (34) ; ladite seconde phase comprenant en outre, après la prise en compte de chacun desdits motifs détectés, une seconde étape complémentaire consistant à fournir une liste de tous les états (35) finaux dont l'adresse est égale à la position d'un au moins desdits seconds processeurs d'analyse grammaticale en cours d'exécution; ladite liste étant ci-après appelée liste des états finaux détectés ; de sorte que chaque état final (38) de ladite liste des états finaux détectés correspond à une suite détectée, grammaticalement correcte pour la grammaire associée à cet état final (38), et se terminant audit motif détecté pris en compte. 16. The method of claim 15; said family of grammars being represented by an automaton (34); said automaton (34) consisting of states (35) and transitions (36); each state of said automaton (34) being associated with a number called address of said state, so that the addresses of two different states (35) are different numbers; at least one of the states (35) of said automaton (34) being called final state (38) of said automaton (34); each grammar taken from said family of grammars being associated with a state of said automaton (34), called the initial state (48) of said automaton for said grammar; each transition (39) of said automaton (34) being associated with two states (35) of said automaton (34), hereinafter called start state (40) of the transition (39) and end state (41) of the transition (39); each of said final states (38) of said automaton (34) being associated with a grammar taken from said family of grammars; each transition (39) of said automaton (34) is also assigned a set composed of one or more symbol sequences, hereinafter called the total label of said transition (39), one of said symbol sequences of said total label being a pattern belonging to said dictionary of patterns and being hereinafter called the lexical label of said transition (39); said method comprising a second preliminary step consisting in building said automaton (34); said second phase implementing, second grammatical analysis processes operating in parallel; each of said second grammatical analysis process being associated with: - a pattern detected during said first phase, said detected pattern being hereinafter called the reason for starting said second grammatical analysis process and never being modified during the execution of said second grammatical analysis process, - a grammar belonging to said family of grammars, - a number equal to the address of a state of said automaton (34), said number being part of said evaluation variables, said number being hereinafter called the position of said second grammatical analysis process and being intended to be modified during the execution of said second grammatical analysis process, said second grammatical analysis process starting to run upon detection said start pattern and being responsible for analyzing whether a series of detected patterns starting from said start pattern is grammatically correct for said grammar associated with said second grammatical analysis process; said position of said second grammar analysis process being, at the time when said second grammar analysis process begins to run, equal to the address of the initial state (48) of said automaton (34) for the grammar associated with said grammar second grammatical analysis process; the execution of said second grammatical analysis process including, when taking into account each of the detected patterns: - a) a filtering step consisting in deciding whether one or more of the transitions (36) of said automaton (34) will be used during of said taking into account of said detected pattern, said filtering step successively considering all the transitions (36) whose starting state (40) is the state whose address is equal to the position of said second grammatical analysis process , and applying to each of the transitions (36) thus considered a decision algorithm, said decision algorithm having for its object to decide whether said transition (39) will be used during said taking into account of said detected pattern taken into account, such a transition (39) then being subsequently called an active transition for said detected pattern, said decision algorithm taking as argument all or part of the total label of said trans ition (39) as well as said detected pattern taken into account, - b) an execution step consisting, - if there is no active transition for said second grammatical analysis process, in implementing an algorithm d stop intended to decide if said second grammatical analysis process should be stopped and if so, to end said second grammatical analysis process, - if there is only one active transition for said second analysis process grammatical, to give as value to the position of said second grammatical analysis process the address of the arrival state (41) of said active transition (39), - if there are several active transitions for said second grammatical analysis process, to be carried out as many duplicates as necessary of said second grammatical analysis process, so as to associate with each of said active transitions, a copy of said second grammatical analysis process resulting from said duplication (s), the position of said copy being then equal at the address of the arrival state (41) of the transition (39) with which said copy is associated, - c) a signaling step consisting, for said second grammatical analysis process or, in the case where there was duplication during the previous step, for each of said copies of said second grammatical analysis process from said duplicate (s), to be reported if the state whose address is equal to the position of said second d grammatical analysis process is a final state (38) of said automaton (34); said second phase further comprising, after taking into account each of said detected patterns, a second complementary step consisting in providing a list of all final states (35) whose address is equal to the position of at least one of said second grammar analysis processors running; said list being hereinafter called list of detected final states; so that each final state (38) of said list of detected final states corresponds to a detected sequence, grammatically correct for the grammar associated with this final state (38), and ending at said detected pattern taken into account.
17. Procédé selon la revendication 16 ; à chacun desdits seconds processus d'analyse grammaticale étant associée une suite de symboles appelée pile dudit second processus d'analyse grammaticale; ladite pile faisant partie desdites variables d'évaluation, ladite pile ayant une valeur initiale définie à l'avance au moment où ledit second processus d'analyse grammaticale commence à s'exécuter, ladite pile étant destinée à être modifiée au cours de l'exécution dudit second processus d'analyse grammaticale ; ledit algorithme de décision, mis en œuvre lors de ladite étape de filtrage et appliqué à une transition (39) , prenant en outre comme argument la valeur de ladite pile, et, lorsque ladite transition (39) est une transition active, déterminant en outre une suite de symboles appelée nouvelle pile pour ladite transition active ; ladite étape d'exécution réalisant en outre - s'il y a une seule transition (39) active pour ledit second processus d'analyse grammaticale, l'opération de remplacer ladite pile par ladite nouvelle pile pour ladite transition (39) active, - s'il y a eu duplication, l'opération, pour chacun desdits seconds processus d'analyse grammaticale issus de ladite ou desdites duplication (s) , de remplacer ladite pile dudit second processus d'analyse grammaticale issu de ladite ou desdites duplication (s) , par ladite nouvelle pile pour la transition (39) active à laquelle est associé ledit second processus d'analyse grammaticale issus de ladite ou desdites duplication (s) , ledit algorithme d'arrêt mis en œuvre en l'absence de transitions (36) actives prenant en outre comme argument ladite pile. 17. The method of claim 16; each of said second grammatical analysis process being associated with a series of symbols called stack of said second grammatical analysis process; said pile being part of said evaluation variables, said stack having an initial value defined in advance at the time when said second grammatical analysis process begins to execute, said stack being intended to be modified during the execution of said second grammatical analysis process; said decision algorithm, implemented during said filtering step and applied to a transition (39), further taking as argument the value of said stack, and, when said transition (39) is an active transition, further determining a series of symbols called a new stack for said active transition; said execution step further realizing - if there is a single active transition (39) for said second grammatical analysis process, the operation of replacing said stack with said new stack for said active transition (39), - if there has been duplication, the operation, for each of said second grammatical analysis process originating from said duplication (s), to replace said stack of said second grammatical analysis process originating from said duplication (s) ), by said new stack for the active transition (39) with which is associated said second grammatical analysis process originating from said duplication (s), said stop algorithm implemented in the absence of transitions (36 ) active taking as argument the said stack.
18. Procédé selon l'une quelconque des revendications 16 ou 17 ; à chacun desdits seconds processus d'analyse grammaticale étant associée une variable appelée variable résultat, ladite variable résultat faisant partie des dites variables d'évaluation ; ladite variable résultat étant, lors du démarrage dudit second processus d'analyse grammaticale, mise à une valeur initiale définie à l'avance ; l'exécution dudit second processus d'analyse grammaticale incluant, lors la prise en compte de chacun des motifs détectés, une étape de calcul supplémentaire ayant pour objet de modifier la valeur de ladite variable résultat ; ladite étape de calcul prenant comme arguments - ledit motif détecté, - la valeur, avant modification, de ladite variable résultat, - l'étiquette totale de ladite transition active, ou, si ledit second processus d'analyse grammaticale est issu d'une duplication, l'étiquette totale de la transition active à laquelle il est associé, et fournissant comme résultat une valeur qui sera ensuite affectée comme nouvelle valeur à ladite variable résultat. 18. Method according to any one of claims 16 or 17; each of said second grammatical analysis processes being associated with a variable called result variable, said result variable being part of said evaluation variables; said result variable being, at the start of said second grammatical analysis process, set to an initial value defined in advance; the execution of said second grammatical analysis process including, when taking into account each of the detected patterns, an additional calculation step intended to modify the value of said result variable; said calculation step taking as arguments - said detected pattern, - the value, before modification, of said result variable, - the total label of said active transition, or, if said second grammatical analysis process is the result of a duplication , the total label of the active transition with which it is associated, and providing as result a value which will then be assigned as a new value to said variable result.
19. Procédé selon l'une quelconque des revendications 3 à 18 ; ledit procédé s'appliquant à un flux de données transitant sur un réseau de communications, ledit procédé comportant en outre une phase finale consistant, selon les valeurs prises par lesdites variables d'évaluation, à laisser passer ledit flux de données sans aucune modification ou à exécuter une ou plusieurs des actions suivantes : - modifier le contenu dudit flux de données, - modifier l'adresse de destination dudit flux de données, - envoyer une information à une adresse préalablement spécifiée, - bloquer le passage dudit flux de données. 19. Method according to any one of claims 3 to 18; said method applying to a data flow passing over a communications network, said method further comprising a final phase consisting, according to the values taken by said evaluation variables, of letting said data flow pass without any modification or execute one or more of the following actions: - modify the content of said data flow, - modify the destination address of said data flow, - send information to a previously specified address, - block the passage of said data flow.
20. Procédé selon la revendication 19 ; ledit procédé comprenant en outre une phase initiale de stockage temporaire de tout ou partie dudit flux de données, ledit flux de données ou la partie du flux de données ainsi stocké, étant déstocké et transmis, avec ou sans modification, à l'issue de ladite phase finale. 20. The method of claim 19; said method further comprising an initial phase of temporary storage of all or part of said data flow, said data flow or the part of the data flow thus stored, being destocked and transmitted, with or without modification, at the end of said final phase.
21. Système pour l'analyse d'un flux de données (1) ; ladite analyse se faisant à la volée ; ledit flux de données (1) se présentant comme une suite de symboles pris dans un ensemble de symboles appelé ci-après l'alphabet des symboles ; ledit système mettant en œuvre un dictionnaire ci- après appelé dictionnaire des motifs ; ledit dictionnaire des motifs ' étant composé de certaines séquences particulières de symboles appelées ci-après des motifs ; ledit dictionnaire des motifs étant représenté sous forme d'une arborescence (6) ; ladite arborescence (6) étant constituée de branches (7) et de nœuds (8) ; chaque branche (7) de ladite arborescence (6) partant d'un nœud de ladite arborescence (6), ci-après appelé nœud de départ (9) de ladite branche, et arrivant à un autre nœud de ladite arborescence (6) ci-après appelé nœud d'arrivée (10) de ladite branche ; un nœud de ladite arborescence (6) dont ne part aucune branche de ladite arborescence (6) étant ci-après appelé un nœud terminal (11) ; ladite arborescence (6) étant telle qu'il existe un et un seul nœud auquel n'arrive aucune branche, le nœud auquel n'arrive aucune branche étant ci-après dénommé la racine (12) ; à chaque branche de ladite arborescence (6) étant attribué un symbole dudit alphabet des symboles, ce symbole étant ci-après appelé l'étiquette de ladite branche (13) ; à chaque nœud de ladite arborescence (6) étant associée une suite de symboles ci-après dénommée le préfixe dudit nœud ; ledit préfixe dudit nœud étant composé des étiquettes des branches (7) reliant ladite racine (12) audit nœud, ces étiquettes étant prises dans l'ordre où elles sont rencontrées ; le préfixe de ladite racine (12) étant la suite ne comprenant aucun élément ; à chaque nœud étant par ailleurs associée une famille de motifs formée des motifs contenus dans ledit dictionnaire des motifs et qui commencent par le préfixe dudit nœud, le nombre de motifs contenus dans ladite famille associée audit nœud étant ci-après appelé la richesse dudit nœud ; ladite arborescence (6) étant telle qu'aucun nœud de ladite arborescence (6) n'ait une richesse égale à zéro ; ladite arborescence (6) étant en outre telle que tout nœud terminal (11) de ladite arborescence (6) ait un préfixe égal à un motif contenu dans ledit dictionnaire des motifs ; ladite arborescence (6) étant en outre telle que pour tout motif contenu dans ledit dictionnaire des motifs, il y ait un et un seul nœud de l'arborescence (6) dont le préfixe soit égal à ce motif ; à chaque nœud de ladite arborescence (6) étant associé un nombre appelé adresse dudit nœud de telle sorte que les adresses de deux nœuds différents soient des nombres différents ; ledit système comprenant des premiers moyens de stockage permettant de stocker ladite arborescence ; ledit système comprenant des premiers moyens de traitement permettant de détecter la présence ou non, au sein dudit flux de données (1), de motifs appartenant audit dictionnaire des motifs ; lesdits premiers moyens de traitement fonctionnant à la volée et prenant en compte successivement les symboles constituant ledit flux de données (1) ; lesdits premiers moyens de traitement étant tels que si un motif, appartenant audit dictionnaire des motifs, est présent dans ledit flux de données (1) , lesdits premiers moyens de traitement en détectent la présence dès la prise en compte du dernier symbole constituant ledit motif ; lesdits premiers moyens de traitement permettant de mettre en œuvre des premiers processus d'analyse syntaxique fonctionnant en parallèle ; à chacun desdits premiers processus d'analyse syntaxique étant associés : - d'une part un des symboles constituant ledit flux de données (1) , ledit symbole étant ci-après appelé symbole de démarrage dudit premier processus d'analyse syntaxique et n'étant jamais modifié au cours de l'exécution dudit premier processus d'analyse syntaxique, - d'autre part des moyens de stockage destinés à contenir un nombre égal à l'adresse d'un nœud de ladite arborescence (6) , ledit nombre étant ci-après appelé la position dudit premier processus d'analyse syntaxique et étant destiné à être modifié au cours de l'exécution dudit premier processus d'analyse syntaxique, ledit premier processus d'analyse syntaxique commençant à s'exécuter dès la prise en compte dudit symbole de démarrage et étant chargé de détecter, pour toutes les valeurs successives de l'entier N, si la séquence de N ..symboles consécutifs, extraite dudit flux de données (1) , cette extraction débutant audit symbole de démarrage, est égale à un des motifs dudit dictionnaire des motifs ; ladite position dudit premier processus d'analyse syntaxique étant, au moment où ledit premier processus d'analyse syntaxique commence à s'exécuter, égale à l'adresse de la racine (12) de ladite arborescence (6) ; lesdits premiers moyens de traitement permettant, à la prise en compte de chacun des symboles constituant ledit flux de données (1), pour chaque premier processus d'analyse syntaxique, de réaliser les opérations suivantes : - l'opération de repérer s'il y a, dans ladite arborescence (6), une ou plusieurs branche (s) partant du nœud dont l'adresse est égale à la position dudit premier processus d'analyse syntaxique et dont l'étiquette est égale audit symbole pris en compte, cette ou ces branche (s) étant ci-après appelée (s) la ou les branche (s) active (s) pour ledit premier processus d'analyse syntaxique, - l'opération - s'il n'y a aucune branche active pour ledit premier processus d'analyse syntaxique, d'arrêter l'exécution dudit premier processus d'analyse syntaxique, - s'il y a une seule branche active pour ledit premier processus d'analyse syntaxique, de donner comme valeur à la position dudit premier processus d'analyse syntaxique l'adresse du nœud d'arrivée (10) de ladite branche active, - s'il y a plusieurs branches actives pour ledit premier processus d'analyse syntaxique, de dupliquer ledit premier processus d'analyse syntaxique autant de fois que nécessaire, de façon à associer à chacune desdites branches actives, une copie dudit premier processus d'analyse syntaxique, la position de ladite copie étant alors égale à l'adresse du nœud d'arrivée (10) de la branche active à laquelle elle est associée, - l'opération, pour ledit premier processus d'analyse syntaxique, si son exécution n'a pas été arrêtée au cours de l'étape précédente, ou, dans le cas où il y a eu duplication lors de l'étape précédente, l'opération, pour chacune desdites copies dudit premier processus d'analyse syntaxique, de signaler si le préfixe du n ud dont l'adresse est égale à la position dudit premier processus d'analyse syntaxique est égal à un motif contenu dans ledit dictionnaire des motifs, ce motif étant alors ci-après appelé un motif détecté par ledit premier processus d'analyse syntaxique ; lesdits premiers moyens de traitement permettant en outre, après la prise en compte de chacun des symboles constituant ledit flux de données (1) , de réaliser une première opération complémentaire consistant à fournir une liste de tous les motifs détectés, lors de la prise en compte dudit symbole, par l'un au moins desdits premiers processeurs d'analyse syntaxique en cours d'exécution ; ladite liste étant ci-après appelée liste des motifs détectés ; de sorte que ladite liste des motifs détectés comprend tous les motifs présents dans ledit flux à analyser, se terminant audit symbole pris en compte, et égaux à un motif dudit dictionnaire des motifs. 21. System for the analysis of a data flow (1); said analysis being carried out on the fly; said data stream (1) presenting itself as a series of symbols taken from a set of symbols hereinafter called the alphabet of symbols; said system implementing a dictionary hereinafter called a pattern dictionary; said dictionary of patterns ' being composed of certain particular sequences of symbols hereinafter called patterns; said dictionary of patterns being represented in the form of a tree structure (6); said tree (6) consisting of branches (7) and nodes (8); each branch (7) of said tree (6) starting from a node of said tree (6), hereinafter called the start node (9) of said branch, and arriving at another node of said tree (6) ci -after called arrival node (10) of said branch; a node of said tree (6) from which does not share any branch of said tree (6) being hereinafter called a terminal node (11); said tree structure (6) being such that there is one and only one node to which no branch arrives, the node to which no branch arrives being hereinafter called the root (12); to each branch of said tree structure (6) being assigned a symbol of said alphabet of symbols, this symbol being hereinafter called the label of said branch (13); each node of said tree (6) being associated with a series of symbols hereinafter called the prefix of said node; said prefix of said node being composed of the labels of the branches (7) connecting said root (12) to said node, these labels being taken in the order in which they are encountered; the prefix of said root (12) being the sequence comprising no element; each node also being associated with a family of patterns formed by the patterns contained in said dictionary of patterns and which begin with the prefix of said node, the number of patterns contained in said family associated with said node being hereinafter called the richness of said node; said tree structure (6) being such that no node of said tree structure (6) has a richness equal to zero; said tree structure (6) being further such that any terminal node (11) of said tree structure (6) has a prefix equal to a pattern contained in said dictionary of patterns; said tree structure (6) being further such that for any pattern contained in said dictionary of patterns, there is one and only one node of the tree structure (6) whose prefix is equal to this pattern; each node of said tree (6) being associated with a number called address of said node so that the addresses of two different nodes are different numbers; said system comprising first storage means making it possible to store said tree structure; said system comprising first processing means making it possible to detect the presence or not, within said data stream (1), of patterns belonging to said dictionary of patterns; said first processing means operating on the fly and successively taking into account the symbols constituting said data stream (1); said first processing means being such that if a pattern, belonging to said dictionary of patterns, is present in said data stream (1), said first processing means detect its presence as soon as the last symbol constituting said pattern is taken into account; said first processing means making it possible to implement first syntactic analysis processes operating in parallel; each of said first syntactic analysis processes being associated: - on the one hand, one of the symbols constituting said data flow (1), said symbol being hereinafter called symbol of starting of said first parsing process and never being modified during the execution of said first parsing process, - on the other hand storage means intended to contain a number equal to the address of a node of said tree structure (6), said number being hereinafter called the position of said first parsing process and being intended to be modified during the execution of said first parsing process, said first parsing process syntactic starting to execute as soon as said start symbol is taken into account and being responsible for detecting, for all the successive values of the integer N, if the sequence of N .. consecutive symbols, extracted from said data stream (1) , this extraction starting at said start symbol, is equal to one of the patterns of said dictionary of patterns; said position of said first parsing process being, when said first parsing process begins to run, equal to the address of the root (12) of said tree (6); said first processing means making it possible, when taking into account each of the symbols constituting said data stream (1), for each first syntactic analysis process, to carry out the following operations: - the operation of locating whether there has, in said tree structure (6), one or more branch (es) starting from the node whose address is equal to the position of said first syntactic analysis process and whose label is equal to said symbol taken into account, this or these branch (s) being hereinafter called (s) the branch (s) active (s) for said first syntactic analysis process, - the operation - if there is no active branch for said first parsing process, to stop the execution of said first parsing process, - if there is only one active branch for said first syntactic analysis process, to give as value to the position of said first syntactic analysis process the address of the arrival node (10) of said active branch, - if there are several active branches for said first parsing process, duplicating said first parsing process as many times as necessary, so as to associate with each of said active branches, a copy of said first parsing process syntactic, the position of said copy then being equal to the address of the arrival node (10) of the active branch with which it is associated, - the operation, for said first syntactic analysis process, if its execution n 'was not stopped during the previous step, or, in the case where there was duplication in the previous step, the operation, for each of said copies of said first syntax analysis process, to indicate whether the prefix of node whose address is equal to the position of said first parsing process is equal to a pattern contained in said pattern dictionary, this pattern then being hereinafter called a pattern detected by said first parsing process; said first processing means further allowing, after taking into account each of the symbols constituting said data flow (1), to perform a first complementary operation consisting in providing a list of all the patterns detected, when taking into account of said symbol, by at least one of said first parsing processors running; said list being hereinafter called list of detected patterns; so that said list of detected patterns includes all the patterns present in said stream to be analyzed, ending at said symbol taken into account, and equal to a pattern of said dictionary of patterns.
22. Système selon la revendication 21 ; ledit dictionnaire des motifs associant à tout ou partie desdits motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif ; ledit système comprenant des moyens de stockage desdits coefficients de motifs et/ou desdites informations de motifs ; lesdits premiers moyens de traitement étant tels que si ledit dictionnaire des motifs associe audit motif des coefficients de motifs et/ou des informations de motifs, lesdits coefficients de motifs et/ou lesdites informations de motif sont fournis par lesdits premiers moyens de traitement en même temps qu'est détectée la présence dudit motif. 22. The system of claim 21; said dictionary of patterns associating with all or part of said patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information; said system comprising means for storing said pattern coefficients and / or said pattern information; said first processing means being such that if said pattern dictionary associates with said pattern pattern coefficients and / or pattern information, said pattern coefficients and / or said pattern information are supplied by said first processing means at the same time that the presence of said pattern is detected.
23. Système selon la revendication 21 ; ledit système comprenant des moyens de stockage permettant de stocker une ou plusieurs variables appelées ci- après variables d'évaluation ; ledit système comprenant en outre des moyens de traitement permettant d'initial!ser lesdites variables d'évaluation à des valeurs fixées à l'avance et ci- après appelées valeurs initiales des variables d'évaluation ; ledit système comprenant en outre des seconds moyens de traitement permettant de mettre en œuvre un algorithme d'analyse, ledit algorithme d'analyse prenant en compte un ou plusieurs arguments et ayant pour effet, selon la valeur desdits arguments, de modifier la valeur de tout ou partie desdites variables d'évaluation ; ledit système étant tel que lesdits premiers moyens de traitement et lesdits seconds moyens de traitement- s'exécutent à la volée, de façon imbriquée, ledit algorithme d'analyse étant mis en oeuvre dès que lesdits premiers moyens de traitement ont fourni un motif détecté, ledit motif détecté étant alors l'un des arguments dudit algorithme d'analyse. 23. The system of claim 21; said system comprising storage means making it possible to store one or more variables called hereinafter evaluation variables; said system further comprising processing means making it possible to initialize said evaluation variables to values fixed in advance and hereinafter called initial values of evaluation variables; said system further comprising second processing means making it possible to implement an analysis algorithm, said analysis algorithm taking into account one or more arguments and having the effect, according to the value of said arguments, of modifying the value of any or part of said evaluation variables; said system being such that said first processing means and said second processing means are executed on the fly, in a nested manner, said analysis algorithm being implemented as soon as said first processing means have provided a detected pattern, said detected pattern then being one of the arguments of said analysis algorithm.
24. Système selon la revendication 23 ; ledit dictionnaire des motifs associant à tout ou partie desdits motifs une ou plusieurs valeurs numériques appelées ci-après coefficients de motif et/ou des informations appelées ci-après informations de motif ; ledit système comprenant des moyens de stockage desdits coefficients de motifs et/ou desdites informations de motifs ; lesdits premiers moyens de traitement étant tels que si ledit dictionnaire des motifs associe audit motif des coefficients de motifs et/ou des informations de motifs, lesdits coefficients de motifs et/ou lesdites informations de motif sont fournis par lesdits premiers moyens de traitement en même temps qu'est détectée la présence dudit motif, lesdits coefficients de motifs et/ou lesdites informations de motif étant alors des arguments dudit algorithme d'analyse. 24. The system of claim 23; said dictionary of patterns associating with all or part of said patterns one or more numerical values hereinafter called pattern coefficients and / or information hereinafter called pattern information; said system comprising means for storing said pattern coefficients and / or said pattern information; said first processing means being such that if said pattern dictionary associates with said pattern pattern coefficients and / or pattern information, said pattern coefficients and / or said pattern information are supplied by said first processing means at the same time that the presence of said pattern is detected, said pattern coefficients and / or said pattern information then being arguments of said analysis algorithm.
25. Système selon la revendication 23 ; ledit algorithme d'analyse étant en outre mis en oeuvre dès que lesdits premiers moyens de traitement ont1 achevé la prise en compte d'un symbole constituant ledit flux de données (1) , ledit symbole pris en compte étant alors un argument dudit algorithme d'analyse. 25. The system of claim 23; said analysis algorithm being further implemented as soon as said first processing means 1 have completed taking into account a symbol constituting said data stream (1), said symbol taken into account then being an argument of said algorithm 'analysis.
26. Système selon l'une quelconque des revendications 23 à 25 ; lesdits premiers moyens de traitement comprenant en outre une fonctionnalité permettant de marquer tout ou partie desdits motifs comme étant des motifs prioritaires, et d'associer à chacun desdits motifs prioritaires au moins une action à exécuter ; ledit système comprenant en outre des moyens de traitement permettant d'exécuter lesdites actions associées auxdits motifs prioritaires ; ladite première opération complémentaire consistant en outre à lancer l'exécution de la ou des action (s) associée (s) à tous les motifs prioritaires contenus dans ladite liste des motifs détectés ; ledit système comprenant en outre des moyens de traitement permettant d'inhiber la mise en œuvre dudit algorithme d'analyse lorsque l'un desdits motifs détectés est un motif prioritaire auquel est associée une action ayant pour effet d'inhiber ledit algorithme d'analyse. 26. System according to any one of claims 23 to 25; said first processing means further comprising a functionality making it possible to mark all or part of said patterns as being priority patterns, and to associate with each of said priority patterns at least one action to be executed; said system further comprising processing means making it possible to execute said actions associated with said priority patterns; said first additional operation further consisting in launching the execution of the action (s) associated with all of the priority patterns contained in said list of detected patterns; said system further comprising processing means making it possible to inhibit the implementation of said analysis algorithm when one of said detected patterns is a priority pattern with which an action is associated having the effect of inhibiting said analysis algorithm.
27. Système selon l'une quelconque des revendications 23 à 26 ; ledit système comprenant en outre des moyens de traitement permettant de réaliser l'opération préalable de modifier ledit dictionnaire des motifs, le résultat de cette modification étant ci-après appelé le dictionnaire des motifs modifié, et de modifier ladite arborescence, par ajout de nouvelles branches et de nouveaux nœuds, et/ou par suppression de branches et de nœuds ; le résultat de cette modification étant ci-après appelé l'arborescence modifiée ; ladite arborescence modifiée étant en outre telle que tout nœud terminal de ladite arborescence modifiée ait un préfixe égal à un motif contenus dans ledit dictionnaire des motifs modifié ; ladite arborescence modifiée étant en outre telle que pour tout motif contenu dans ledit dictionnaire des motifs modifié, il y ait un et un seul nœud de ladite arborescence modifiée dont le préfixe soit égal à ce motif. 27. System according to any one of claims 23 to 26; said system further comprising processing means making it possible to carry out the prior operation of modifying said dictionary of patterns, the result of this modification being hereinafter called the modified pattern dictionary, and of modifying said tree structure, by adding new branches and new nodes, and / or by deleting branches and nodes; the result of this modification being hereinafter called the modified tree structure; said modified tree structure being further such that any terminal node of said modified tree structure has a prefix equal to a pattern contained in said modified pattern dictionary; said modified tree structure being further such that for any pattern contained in said dictionary of modified patterns, there is one and only one node of said modified tree structure whose prefix is equal to this pattern.
28. Système selon la revendication 24 ; ledit algorithme d'analyse consistant à déterminer la probabilité ou les probabilités que tout ou partie des données constituant ledit flux de données appartienne à une ou à plusieurs thématique (s) particulière (s) ; lesdites probabilités étant ci-après appelées probabilités d'appartenance ; les dites probabilités d'appartenance faisant partie desdites variables d'évaluation ; lesdites probabilités d'appartenance étant calculées à l'aide d'une fonction, ci-après appelée fonction d'évaluation ; ladite fonction d'évaluation prenant en compte les motifs détectés par lesdits premiers moyens de traitement ; ledit système comprenant des moyens de traitement permettant de modifier les valeurs de toutes ou partie desdites variables d'évaluation, notamment la valeur desdites probabilités d'appartenance, en appliquant, pour chaque symbole pris en compte, les opérations suivantes : - l'opération, si un motif, appartenant audit dictionnaire des motifs et se terminant par ledit symbole pris en compte, a été détecté dans ledit flux de données par lesdits premiers moyens de traitement, de modifier tout ou partie desdites variables d'évaluation en mettant en œuvre un algorithme ci-après appelé algorithme de réévaluation, ledit algorithme de réévaluation prenant en compte ledit motif ayant été détecté ; ledit système étant tel que, si ledit dictionnaire des motifs associe audit motif ayant été détecté des coefficients de motifs et/ou des informations de motifs, ledit algorithme de réévaluation prend en compte en outre lesdits coefficients de motifs et/ou lesdites informations de motif ; - l'opération, si aucun motif, appartenant audit dictionnaire des motifs et se terminant par ledit symbole pris en compte, n'a été détecté dans ledit flux de données par lesdits premiers moyens de traitement, de modifier tout ou partie desdites variables d'évaluation en mettant en œuvre un algorithme ci-après appelé algorithme de relaxation ; - l'opération, après mise en œuvre selon le cas, de l'algorithme de réévaluation ou de l'algorithme de relaxation, d'appliquer un algorithme, ci-après appelé algorithme de calcul final des probabilités, qui prend comme arguments les valeurs de tout ou partie desdites variables d'évaluation et fournit comme résultat des valeurs provisoires de la probabilité ou des probabilités que la partie dudit flux de données qui se termine audit symbole pris en compte appartienne à ladite thématique particulière ou auxdites thématiques particulières, les valeurs prises alors par ladite ou lesdites probabilités étant ci-après appelée (s) probabilités locales ; ledit système comprenant des moyens de traitement permettant de calculer à l'aide de la fonction d'évaluation lesdites probabilités d'appartenance, pour chaque thématique particulière, en prenant en compte les valeurs successives desdites probabilités locales, fournies par ledit algorithme de calcul final de la probabilité, après prise en compte de tous les symboles constituant ledit flux de données. 28. The system of claim 24; said analysis algorithm consisting in determining the probability or probabilities that all or part of the data constituting said data flow belongs to one or more particular thematic (s); said probabilities being hereinafter called membership probabilities; said membership probabilities forming part of said evaluation variables; said membership probabilities being calculated using a function, hereinafter called the evaluation function; said evaluation function taking into account the patterns detected by said first processing means; said system comprising processing means making it possible to modify the values of all or part of said evaluation variables, in particular the value of said probabilities of belonging, by applying, for each symbol taken into account, the following operations: the operation, if a pattern, belonging to said pattern dictionary and ending with said symbol taken into account, has been detected in said data flow by said first processing means, to modify all or part of said evaluation variables by implementing an algorithm hereinafter called the re-evaluation algorithm, said re-evaluation algorithm taking into account said pattern having been detected; said system being such that, if said pattern dictionary associates with said pattern having been detected pattern coefficients and / or pattern information, said reevaluation algorithm also takes into account said pattern coefficients and / or said pattern information; - the operation, if no pattern, belonging to said dictionary of patterns and ending with said symbol taken into account, has been detected in said data stream by said first processing means, to modify all or part of said variables of evaluation by implementing an algorithm hereinafter called relaxation algorithm; the operation, after implementation, as the case may be, of the re-evaluation algorithm or of the relaxation algorithm, of applying an algorithm, hereinafter called the final probability calculation algorithm, which takes the values as arguments of all or part of said evaluation variables and provides as a result provisional values of the probability or probabilities that the part of said data flow which ends at said symbol taken into account belongs to said particular thematic or to said particular thematic, the values taken then by said one or more probabilities being hereinafter called local probabilities; said system comprising processing means making it possible to calculate using the evaluation function said probabilities of belonging, for each particular thematic, taking into account the successive values of said local probabilities, provided by said final calculation algorithm of the probability, after taking into account all the symbols constituting said data stream.
29. Système selon la revendication 28 ; ledit algorithme de réévaluation se ramenant à une première famille de fonctions prenant comme variables tout ou partie desdites variables d'évaluation ; ladite première famille de fonctions, étant telle que si ledit dictionnaire des motifs associe audit motif qui a été détecté des coefficients de motifs et/ou des informations de motifs, ladite première famille de fonctions prend en outre comme variables lesdits coefficients de motifs et/ou lesdites informations de motif ; ladite première famille de fonctions fournissant comme résultat les nouvelles valeurs de tout ou partie desdites variables d'évaluation ; la ou les fonction (s) constituant ladite première famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de réévaluation ; ledit algorithme de relaxation se ramenant à une seconde famille de fonctions prenant comme variables tout ou partie desdites variables d'évaluation et fournissant comme résultat les nouvelles valeurs de tout ou partie desdites variables d'évaluation ; la ou les fonction (s) constituant ladite seconde famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de relaxation ; ledit algorithme de calcul final des probabilités se ramenant à une troisième famille de fonctions prenant comme variables lesdites variables d'évaluation et fournissant comme résultat lesdites probabilités locales ; la ou les fonction (s) constituant ladite troisième famille de fonctions étant des fonctions dépendant d'une famille de paramètres appelés ci-après paramètres de l'algorithme de calcul final des probabilités ; lesdits coefficients de motif, lesdites valeurs initiales des variables d'évaluation, lesdits paramètres de l'algorithme de réévaluation, lesdits paramètres de l'algorithme de relaxation, lesdits paramètres de l'algorithme de calcul final des probabilités étant ci-après appelés de façon générale les paramètres de calibrage ; ledit système comprenant des moyens de stockage permettant de stocker les valeurs desdits paramètres de calibrage. 29. The system of claim 28; said re-evaluation algorithm being reduced to a first family of functions taking as variables all or part of said evaluation variables; said first family of functions, being such that if said dictionary of patterns associates with said pattern which has been detected pattern coefficients and / or pattern information, said first family of functions also takes as variables said pattern coefficients and / or said reason information; said first family of functions providing as a result the new values of all or part of said evaluation variables; the function or functions constituting said first family of functions being functions dependent on a family of parameters hereinafter called parameters of the re-evaluation algorithm; said relaxation algorithm being reduced to a second family of functions taking as variables all or part of said evaluation variables and supplying as result the new values of all or part of said evaluation variables; the function or functions constituting said second family of functions being functions dependent on a family of parameters hereinafter called parameters of the relaxation algorithm; said algorithm for final calculation of probabilities being reduced to a third family of functions taking as variables said evaluation variables and providing as a result said local probabilities; the function (s) constituting said third family of functions being functions dependent on a family of parameters hereinafter called parameters of the algorithm for final calculation of probabilities; said pattern coefficients, said initial values of the evaluation variables, said parameters of the re-evaluation algorithm, said parameters of the relaxation algorithm, said parameters of the algorithm for final calculation of probabilities being hereinafter called so general calibration parameters; said system comprising storage means making it possible to store the values of said calibration parameters.
30. Système selon la revendication 29 ; ledit système comprenant en outre des moyens de traitement permettant en outre de réaliser une opération supplémentaire consistant à associer à chaque symbole dudit alphabet des symboles, un coefficient de pondération appelé ci- après coefficient de pondération de symbole ; ladite seconde famille de fonctions et/ou ladite troisième famille de fonctions prenant en outre comme variable supplémentaire ledit coefficient de pondération de symbole associé audit symbole pris en compte ; lesdits paramètres de calibrage comprenant en outre lesdits coefficients de pondération de symbole. 30. The system of claim 29; said system further comprising processing means further making it possible to carry out an additional operation consisting in associating with each symbol of said alphabet of symbols, a weighting coefficient hereinafter called symbol weighting coefficient; said second family of functions and / or said third family of functions also taking as additional variable said symbol weighting coefficient associated with said symbol taken into account; said calibration parameters further comprising said symbol weighting coefficients.
31. Système selon l'une quelconque des revendications 29 ou 30 ; ledit système comprenant en outre des moyens de traitement permettant de réaliser une opération supplémentaire, appelée ci-après le recalibrage, consistant, après l'analyse dudit flux de données et en fonction des résultats fournis par ladite fonction d'évaluation, à exécuter une ou plusieurs des sous-opérations suivantes : - la sous-opération d'ajouter un ou plusieurs motifs audit dictionnaire des motifs, - la sous-opération de retirer un ou plusieurs motifs dudit dictionnaire des motifs, - la sous-opération de faire varier tout ou partie desdits paramètres de calibrage. 31. System according to any one of claims 29 or 30; said system further comprising processing means making it possible to carry out an additional operation, hereinafter called recalibration, consisting, after the analysis of said data flow and according to the results provided by said evaluation function, in executing one or more several of the following sub-operations: - the sub-operation of adding one or more patterns to said pattern dictionary, - the sub-operation of removing one or more patterns from said dictionary of patterns, - the sub-operation of varying all or part of said calibration parameters.
32. Système selon la revendication 31 ; ledit système comprenant des moyens de traitement permettant de réaliser une opération préalable ci-après dénommée apprentissage, consistant à réitérer à plusieurs reprises les sous-opérations suivantes : - la sous-opération de faire fonctionner lesdits premiers moyens de traitement et lesdits seconds moyens de traitement sur des flux de données dont les probabilités d'appartenance à des thématiques particulières sont connues à l'avance, - la sous-opération d' exécuter ledit recalibrage de façon à ce que lesdites probabilités d'appartenance déterminées par lesdits seconds moyens de traitement soient le plus proche possible de valeurs fixées à l'avance. 32. The system of claim 31; said system comprising processing means making it possible to carry out a prior operation hereinafter called learning, consisting of repeatedly repeating the following sub-operations: - the sub-operation of operating said first processing means and said second processing means on data streams whose probabilities of belonging to particular themes are known in advance, - the sub-operation of executing said recalibration so that said probabilities of belonging determined by said second processing means are as close as possible to values fixed in advance.
33. Système selon la revendication 31 ; ledit système comprenant des moyens de traitement permettant de modifier ledit dictionnaire des motifs et lesdits paramètres de calibrage à l'aide d'informations provenant d'une source externe. 33. The system of claim 31; said system comprising processing means making it possible to modify said dictionary of patterns and said calibration parameters using information coming from an external source.
34. Système selon la revendication 28 ; les motifs contenus dans ledit dictionnaire des motifs étant classifiés en trois catégories de motifs appelées ci-après catégorie des motifs opérationnels, catégorie des motifs candidats et catégorie des motifs en apprentissage ; ledit dictionnaire des motifs étant tel qu'il associe des coefficients de motifs au moins à chacun desdits motifs candidats et à chacun desdits motifs en apprentissage ; ledit système étant tel que l'éventuelle présence, dans ledit flux de données, de motifs appartenant à ladite catégorie des motifs candidats est détectée par lesdits premiers moyens de traitement mais n'est pas prise en compte par lesdits seconds moyens de traitement ; ledit système comportant en outre des moyens de traitement permettant de réaliser une opération d'auto apprentissage ; ladite opération d'auto apprentissage comprenant elle-même deux parties appelées ci-après sélection des apprentis et formation des apprentis ; ladite sélection des apprentis consistant, lorsque la présence d'un motif appartenant à la catégorie des motifs candidats a été détectée par lesdits premiers moyens de traitement, à modifier tout ou partie des coefficients de motif du motif ainsi détecté, cette modification prenant en compte tout ou partie desdites variables d'évaluation ; ladite sélection des apprentis consistant en outre, selon les valeurs prises par lesdits coefficients de motifs dudit motif ainsi détecté, à faire passer ou non ledit motif ainsi détecté dans la catégorie des motifs en apprentissage ; ladite formation des apprentis consistant, lorsque la présence d'un motif appartenant à la catégorie des motifs en apprentissage est détectée par lesdits premiers moyens de traitement, à donner .de nouvelles valeurs aux coefficients de motifs du motif ainsi détecté, lesdites nouvelles valeurs étant déterminées à partir desdites variables d'évaluation et des valeurs préalables desdits coefficients de motifs dudit motif ainsi détecté, ladite formation des apprentis pouvant, en fonction de l'évolution des valeurs desdits coefficients de motifs dudit motif ainsi détecté, modifier la catégorie dudit motif ainsi détecté. 34. The system of claim 28; the patterns contained in said pattern dictionary being classified into three categories of patterns hereinafter called category of operational patterns, category of candidate patterns and category of learning patterns; said pattern dictionary being such that it associates pattern coefficients at least with each of said candidate patterns and with each of said learning patterns; said system being such that the possible presence, in said data flow, of patterns belonging to said category of candidate patterns is detected by said first processing means but is not taken into account by said second processing means; said system further comprising processing means making it possible to carry out a self-learning operation; said self-learning operation itself comprising two parts called hereinafter selection of apprentices and training of apprentices; said selection of apprentices consisting, when the presence of a pattern belonging to the category of candidate patterns has been detected by said first processing means, to modify all or part of the pattern coefficients of the pattern thus detected, this modification taking into account all or part of said evaluation variables; said selection of apprentices further consisting, according to the values taken by said coefficients of patterns of said pattern thus detected, to pass or not said pattern thus detected in the category of patterns in learning; said training of apprentices consisting, when the presence of a pattern belonging to the category of patterns in learning is detected by said first processing means, to give new values to the pattern coefficients of the pattern thus detected, said new values being determined from said evaluation variables and from the prior values of said pattern coefficients of said pattern thus detected, said training of the apprentices being able, depending on the evolution of the values of said pattern coefficients of said pattern thus detected, to modify the category of said pattern thus detected .
35. Système selon l'une quelconque des revendications 23 à 34 ; ledit système comprenant des moyens de traitement permettant de mettre en œuvre une famille de grammaires, composée de grammaires, chacune desdites grammaires comprenant une ou plusieurs règles susceptibles d'être vérifiées ou non par une suite de motifs ; une suite de motifs vérifiant toutes les règles d'une grammaire appartenant à ladite famille de grammaires étant ci- après qualifiée grammaticalement correcte pour ladite grammaire r ledit algorithme d'analyse mis en oeuvre par lesdits seconds moyens de traitement ayant pour objectif d'effectuer une analyse grammaticale des suites de motifs formées de tout ou partie des motifs détectés par lesdits premiers moyens de traitement, une telle suite de motifs étant ci-après appelée suite détectée ; ladite analyse grammaticale vérifiant, pour chacune desdites suites détectées et pour chacune des grammaires appartenant à ladite famille de grammaires, si ladite suite détectée est grammaticalement correcte pour ladite grammaire. 35. System according to any one of claims 23 to 34; said system comprising processing means making it possible to implement a family of grammars, composed of grammars, each of said grammars comprising one or more rules capable of being verified or not by a series of patterns; a series of patterns verifying all the rules of a grammar belonging to said family of grammars being hereinafter qualified grammatically correct for said grammar r said analysis algorithm implemented by said second processing means having the objective of performing a grammatical analysis of the sequences of patterns formed of all or part of the patterns detected by said first processing means, such a sequence of patterns being hereinafter called detected sequence; said grammatical analysis verifying, for each of said detected sequences and for each of the grammars belonging to said family of grammars, whether said detected sequence is grammatically correct for said grammar.
36. Système selon la revendication 35 ; ladite famille de grammaires étant représentée par un automate (34) ; ledit automate (34) étant constitué d'états (35) et de transitions (36) ; à chaque état dudit automate (34) étant associé un nombre appelé adresse dudit état, de telle sorte que les adresses de deux états (35) différents soient des nombres différents ; l'un au moins des états (35) dudit automate (34) étant appelé état final (38) dudit automate (34) ; à chaque grammaire prise dans ladite famille de grammaires étant associé un état dudit automate (34) , appelé l'état initial (48) dudit automate pour ladite grammaire ; à chaque transition (39) dudit automate (34) étant associés deux états (35) dudit automate (34), ci-après appelés état de départ (40) de la transition (39) et état d'arrivée (41) de la transition (39) ; à chacun desdits états finaux (38) dudit automate (34) étant associé une grammaire prise dans ladite famille de grammaires ; à chaque transition (39) dudit automate (34) étant en outre attribué un ensemble composé d'une ou plusieurs séquences de symboles, ci-après appelé l'étiquette totale de ladite transition (39), l'une des dites séquences de symboles de ladite étiquette totale étant un motif appartenant audit dictionnaire des motifs et étant ci-après appelé l'étiquette lexicale de ladite transition (39) ; ledit système comprenant des moyens de stockage permettant de stocker ledit automate ledit système comprenant des moyens de traitement permettant de réaliser une seconde opération préliminaire consistant à construire ledit automate (34)' ; ledit système comprenant des moyens de traitement permettant de mettre en œuvre des seconds processus d'analyse grammaticale fonctionnant en parallèle ; à chacun desdits seconds processus d'analyse grammaticale étant associés : - un motif détecté par lesdits premiers moyens de traitement, ledit motif détecté étant ci-après appelé motif de démarrage dudit second processus d'analyse grammaticale et n'étant jamais modifié au cours de l'exécution dudit second processus d'analyse grammaticale, - une grammaire appartenant à ladite famille de grammaires, - un nombre égal à l'adresse d'un état dudit automate (34), ledit nombre faisant partie desdites variables d'évaluation, ledit nombre étant ci-après appelé la position dudit second processus d'analyse grammaticale et étant destiné à être modifié au cours de l'exécution dudit second processus d'analyse grammaticale ; ledit système comprenant des moyens de traitement permettant de démarrer l'exécution dudit second processus d'analyse grammaticale dès la détection dudit motif de démarrage ; ledit second processus d'analyse grammaticale étant chargé d'analyser si une suite de motifs détectés commençant audit motif de démarrage est grammaticalement correcte pour ladite grammaire associée audit second processus d'analyse grammaticale ; ladite position dudit second processus d'analyse grammaticale étant, au moment où ledit second processus d'analyse grammaticale commence à s'exécuter, égale à l'adresse de l'état initial (48) dudit automate (34) pour la grammaire associée audit second processus d'analyse grammaticale ; lesdits moyens de traitement permettant de mettre en œuvre lesdits seconds processus d'analyse grammaticale permettant, à la prise en compte de chacun des motifs détectés, de réaliser les opérations suivantes : - a) une opération de filtrage consistant à décider si une ou plusieurs des transitions (36) dudit automate (34) seront utilisées lors de ladite prise en compte dudit motif détecté, ladite étape de filtrage considérant successivement toutes les transitions (36) dont l'état de départ (40) est l'état dont l'adresse est égale à la position dudit second processus d'analyse grammaticale, et appliquant à chacune des transitions (36) ainsi considérées un algorithme de décision, ledit algorithme de décision ayant pour objet de décider si ladite transition (39) sera utilisée lors de ladite prise en compte dudit motif détecté pris en compte, une telle transition (39) étant alors par la suite appelée une transition active pour ledit motif détecté, ledit algorithme de décision prenant comme argument tout ou partie de l'étiquette totale de ladite transition (39) ainsi que ledit motif détecté pris en compte - b) une opération d'exécution consistant, - s'il n'y a aucune transition active pour ledit second processus d'analyse grammaticale, à mettre en œuvre un algorithme d'arrêt ayant pour objet de décider si ledit second processus d'analyse grammaticale, doit être arrêté et si oui, de mettre fin audit second processus d'analyse grammaticale, - s'il y a une seule transition active pour ledit second processus d'analyse grammaticale, à donner comme valeur à la position dudit second processus d'analyse grammaticale l'adresse de l'état d'arrivée (41) de ladite transition (39) active, - s'il y a plusieurs transitions actives pour ledit second processus d'analyse grammaticale, à effectuer autant de duplications que nécessaire dudit second processus d'analyse grammaticale, de façon à associer à chacune desdites transitions actives, une copie dudit second processus d'analyse grammaticale issue de ladite ou desdites duplication (s) , la position de ladite copie étant alors égale à l'adresse de l'état d'arrivée (41) de la transition (39) à laquelle ladite copie est associée, - c) une opération de signalisation consistant, pour ledit second processus d'analyse grammaticale ou, dans le cas où il y a eu duplication lors de l'étape précédente, pour chacune desdites copies dudit second processus d'analyse grammaticale issues de ladite ou desdites duplication (s) , à signaler si l'état dont l'adresse est égale à la position dudit second processus d'analyse grammaticale est un état final (38) dudit automate (34) ; ledit système comprenant en outre des moyens de traitement permettant, après la prise en compte de chacun desdits motifs détectés, de réaliser une seconde opération complémentaire consistant à fournir une liste de tous les états (35) finaux dont l'adresse est égale à la position d'un au moins desdits seconds processeurs d'analyse grammaticale en cours d' exécution; ladite liste étant ci-après appelée liste des états finaux détectés ; de sorte que chaque état final (38) de ladite liste des états finaux détectés correspond à une suite détectée, grammaticalement correcte pour la grammaire associée à cet état final (38), et se terminant audit motif détecté pris en compte. 36. The system of claim 35; said family of grammars being represented by an automaton (34); said automaton (34) consisting of states (35) and transitions (36); each state of said automaton (34) being associated with a number called address of said state, so that the addresses of two different states (35) are different numbers; at least one of the states (35) of said automaton (34) being called final state (38) of said automaton (34); each grammar taken from said family of grammars being associated with a state of said automaton (34), called the initial state (48) of said automaton for said grammar; with each transition (39) of said automaton (34) being associated with two states (35) of said automaton (34), hereinafter called start state (40) of the transition (39) and arrival state (41) of the transition (39); each of said final states (38) of said automaton (34) being associated with a grammar taken from said family of grammars; each transition (39) of said automaton (34) is also assigned a set composed of one or more symbol sequences, hereinafter called the total label of said transition (39), one of said symbol sequences of said total label being a pattern belonging to said dictionary of patterns and being hereinafter called the lexical label of said transition (39); said system comprising storage means making it possible to store said automatic device said system comprising processing means making it possible to carry out a second preliminary operation consisting in building said automatic device (34) '; said system comprising processing means making it possible to implement second grammatical analysis processes operating in parallel; each of said second grammatical analysis process being associated: - a pattern detected by said first processing means, said detected pattern being hereinafter called the reason for starting said second grammatical analysis process and never being modified during the execution of said second grammatical analysis process, - a grammar belonging to said family of grammars, - a number equal to the address of a state of said automaton (34), said number being part of said evaluation variables, said number being hereinafter called the position of said second grammatical analysis process and being intended to be modified during the execution of said second grammatical analysis process; said system comprising processing means making it possible to start the execution of said second grammatical analysis process as soon as said starting reason is detected; said second grammatical analysis process being responsible for analyzing whether a series of detected patterns starting from said start pattern is grammatically correct for said grammar associated with said second grammatical analysis process; said position of said second grammar analysis process being, at the time when said second grammar analysis process begins to run, equal to the address of the initial state (48) of said automaton (34) for the grammar associated with said grammar second grammatical analysis process; said processing means making it possible to implement said second grammatical analysis processes allowing, when taking into account each of the detected patterns, to carry out the following operations: - a) a filtering operation consisting in deciding whether one or more of the transitions (36) of said automaton (34) will be used during said taking into account of said detected pattern, said filtering step successively considering all the transitions (36) whose starting state (40) is the state whose address is equal to the position of said second grammatical analysis process, and applying to each of the transitions (36) thus considered a decision algorithm, said decision algorithm having for its object to decide whether said transition (39) will be used during said taking taking into account said detected pattern taken into account, such a transition (39) then being subsequently called an active transition for said detected pattern, said algo decision rithm taking as argument all or part of the total label of said transition (39) as well as said detected pattern taken into account - b) a consistent execution operation, - if there is no active transition for said second grammatical analysis process, to implement a stop algorithm having as its object to decide whether said second grammatical analysis process should be stopped and if so, to end said second grammatical analysis process, - if there is only one active transition for said second grammatical analysis process, to give as value to the position of said second grammatical analysis process the address of the arrival state (41) of said transition ( 39) active, - if there are several active transitions for said second grammatical analysis process, to make as many duplicates as necessary of said second grammatical analysis process, so as to associate with each of said active transitions, a copy of said second grammatical analysis process resulting from said duplication (s), the position of said copy then being equal to the address of the arrival state (41) of the transition (39) with which said copy is associated , - c) a signaling operation consisting, for said second grammatical analysis process or, in the case of duplication during the previous step, for each of said copies of said second grammatical analysis process resulting from said duplication (s), to be reported if the state whose address is equal to the position of said second grammatical analysis process is a final state (38) of said automaton (34); said system further comprising processing means allowing, after taking into account each of said detected patterns, to perform a second complementary operation consisting in providing a list of all final states (35) whose address is equal to the position at least one of said second grammar analysis processors being executed; said list being hereinafter called list of detected final states; so that each final state (38) of said list of detected final states corresponds to a detected sequence, grammatically correct for the grammar associated with this final state (38), and ending at said detected pattern taken into account.
37. Système selon la revendication 36 ; à chacun desdits seconds processus d'analyse grammaticale étant associée une suite de symboles appelée pile dudit second processus d'analyse grammaticale; ladite pile faisant partie desdites variables d'évaluation, ladite pile ayant une valeur initiale définie à l'avance au moment où ledit second processus d'analyse grammaticale commence à s'exécuter, ladite pile étant destinée à être modifiée au cours de l'exécution dudit second processus d'analyse grammaticale ; ledit système comprenant des moyens de stockage permettant de stocker ladite pile ; ledit algorithme de décision, mis en œuvre lors de ladite étape de filtrage et appliqué à une transition (39) , prenant en outre comme argument la valeur de ladite pile, et, lorsque ladite transition (39) est une transition active, déterminant en outre une suite de symboles appelée nouvelle pile pour ladite transition active ; ladite étape d'exécution réalisant en outre - s'il y a une seule transition (39) active pour ledit second processus d'analyse grammaticale, l'opération de remplacer ladite pile par ladite nouvelle pile pour ladite transition (39) active, - s'il y a eu duplication, l'opération, pour chacun desdits seconds processus d'analyse grammaticale issus de ladite ou desdites duplication(s) , de remplacer ladite pile dudit second processus d'analyse grammaticale issus de ladite ou desdites duplication (s) , par ladite nouvelle pile pour la transition (39) active à laquelle est associé ledit second processus d'analyse grammaticale issus de ladite ou desdites duplication (s) , ledit algorithme d'arrêt mis en œuvre en l'absence de transitions (36) actives prenant en outre comme argument ladite pile. 37. The system of claim 36; each of said second grammatical analysis process being associated with a series of symbols called stack of said second grammatical analysis process; said stack being part of said evaluation variables, said stack having an initial value defined in advance at the time when said second grammatical analysis process begins to execute, said stack being intended to be modified during execution said second grammatical analysis process; said system comprising storage means for storing said stack; said decision algorithm, implemented during said filtering step and applied to a transition (39), further taking as argument the value of said stack, and, when said transition (39) is an active transition, further determining a series of symbols called a new stack for said active transition; said execution step further realizing - if there is a single active transition (39) for said second grammatical analysis process, the operation of replacing said stack with said new stack for said active transition (39), - if there has been duplication, the operation, for each of said second grammatical analysis process originating from said duplication (s), to replace said stack of said second grammatical analysis process originating from said duplication (s) ), by said new stack for the active transition (39) with which is associated said second grammatical analysis process originating from said duplication (s), said stop algorithm implemented in the absence of transitions (36 ) active taking as argument the said stack.
38. Système selon l'une quelconque des revendications 36 ou 37 ; à chacun desdits seconds processus d'analyse grammaticale étant associée une variable appelée variable résultat, ladite variable résultat faisant partie des dites variables d' évaluation ; ledit système comprenant des moyens de stockage permettant de stocker la valeur de ladite variable résultat et des moyens de traitement permettant, lors du démarrage dudit second processus d'analyse grammaticale, de mettre ladite variable résultat à une valeur initiale définie à l'avance, et permettant en outre de modifier la valeur de ladite variable résultat lors la prise en compte de chacun des motifs détectés, cette modification prenant en compte ledit motif détecté ainsi que l'étiquette totale de ladite transition active pour ledit second processus d'analyse grammaticale, ou si ledit second processus d'analyse grammaticale est issu d'une duplication, l'étiquette totale de la transition active à laquelle il est associé. 38. System according to any one of claims 36 or 37; each of said second grammatical analysis processes being associated with a variable called result variable, said result variable being part of said evaluation variables; said system comprising storage means making it possible to store the value of said result variable and processing means making it possible, when starting said second grammatical analysis process, to set said result variable to an initial value defined in advance, and further allowing the value of said result variable to be modified when each of the detected patterns is taken into account, this modification taking into account said detected pattern as well as the total label of said active transition for said second grammatical analysis process, or if said second grammatical analysis process comes from a duplication, the total label of the active transition with which it is associated.
39. Système selon l'une quelconque des revendications 23 à 38 précédentes ; ledit système s'appliquant à un flux de données transitant sur un réseau de communications, ledit système comportant en outre des moyens de traitement permettant, selon les valeurs prises par lesdites variables d'évaluation, de laisser passer ledit flux de données sans aucune modification ou d'exécuter une ou plusieurs des actions suivantes : - modifier le contenu dudit flux de données, - modifier l'adresse de destination dudit flux de données, - envoyer une information à une adresse préalablement spécifiée, - bloquer le passage dudit flux de données. 39. System according to any one of the preceding claims 23 to 38; said system applying to a data flow passing over a communications network, said system further comprising processing means making it possible, depending on the values taken by said evaluation variables, to allow said data flow to pass without any modification or to execute one or more of the following actions: - modify the content of said data flow, - modify the destination address of said data flow, - send information to a previously specified address, - block the passage of said data flow.
40. Système selon la revendication 39 ; ledit système comprenant en outre des moyens de stockage temporaire de tout ou partie dudit flux de données, et de retransmission, avec ou sans modification, du flux ainsi stocké. 40. The system of claim 39; said system further comprising means for temporarily storing all or part of said data stream, and for retransmission, with or without modification, of the stream thus stored.
PCT/FR2004/050296 2003-06-30 2004-06-29 Method and device for analysing a data stream WO2005004003A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP04767858A EP1639506A1 (en) 2003-06-30 2004-06-29 Method and device for analysing a data stream

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR0307876A FR2856818B1 (en) 2003-06-30 2003-06-30 METHOD AND SYSTEM FOR SEMANTICALLY CONTROLLING A DATA STREAM
FR0307876 2003-06-30
FR0315607A FR2856868B1 (en) 2003-06-30 2003-12-31 METHOD AND SYSTEM FOR ANALYZING A DATA STREAM
FR0315607 2003-12-31

Publications (1)

Publication Number Publication Date
WO2005004003A1 true WO2005004003A1 (en) 2005-01-13

Family

ID=33518424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2004/050296 WO2005004003A1 (en) 2003-06-30 2004-06-29 Method and device for analysing a data stream

Country Status (3)

Country Link
EP (1) EP1639506A1 (en)
FR (1) FR2856868B1 (en)
WO (1) WO2005004003A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768580A (en) * 1995-05-31 1998-06-16 Oracle Corporation Methods and apparatus for dynamic classification of discourse
US6253169B1 (en) * 1998-05-28 2001-06-26 International Business Machines Corporation Method for improvement accuracy of decision tree based text categorization
US6266664B1 (en) * 1997-10-01 2001-07-24 Rulespace, Inc. Method for scanning, analyzing and rating digital information content
CA2307529A1 (en) * 2000-03-29 2001-09-29 Pmc-Sierra, Inc. Method and apparatus for grammatical packet classifier
EP1291790A2 (en) * 2001-08-15 2003-03-12 Siemens Corporate Research, Inc. Text-based automatic content classification and grouping

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6778949B2 (en) * 1999-10-18 2004-08-17 Sony Corporation Method and system to analyze, transfer and generate language expressions using compiled instructions to manipulate linguistic structures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768580A (en) * 1995-05-31 1998-06-16 Oracle Corporation Methods and apparatus for dynamic classification of discourse
US6266664B1 (en) * 1997-10-01 2001-07-24 Rulespace, Inc. Method for scanning, analyzing and rating digital information content
US6253169B1 (en) * 1998-05-28 2001-06-26 International Business Machines Corporation Method for improvement accuracy of decision tree based text categorization
CA2307529A1 (en) * 2000-03-29 2001-09-29 Pmc-Sierra, Inc. Method and apparatus for grammatical packet classifier
EP1291790A2 (en) * 2001-08-15 2003-03-12 Siemens Corporate Research, Inc. Text-based automatic content classification and grouping

Also Published As

Publication number Publication date
EP1639506A1 (en) 2006-03-29
FR2856868B1 (en) 2005-09-02
FR2856868A1 (en) 2004-12-31

Similar Documents

Publication Publication Date Title
Shibahara et al. Efficient dynamic malware analysis based on network behavior using deep learning
Opara et al. HTMLPhish: Enabling phishing web page detection by applying deep learning techniques on HTML analysis
Lin et al. Malicious URL filtering—A big data application
Weir et al. Password cracking using probabilistic context-free grammars
Buber et al. NLP based phishing attack detection from URLs
US8078625B1 (en) URL-based content categorization
Kiruthiga et al. Phishing websites detection using machine learning
CN111444330A (en) Method, device and equipment for extracting short text keywords and storage medium
FR2694984A1 (en) Method for identifying, recovering and classifying documents.
JP2006004417A (en) Method and device for recognizing specific type of information file
CN106997367A (en) Sorting technique, sorter and the categorizing system of program file
US20170193098A1 (en) System and method for topic modeling using unstructured manufacturing data
Das et al. Network intrusion detection using natural language processing and ensemble machine learning
Alharthi et al. A real-time deep-learning approach for filtering Arabic low-quality content and accounts on Twitter
Van Der Merwe et al. Turning evil regexes harmless
Beleveslis et al. A hybrid method for sentiment analysis of election related tweets
Khan Detection of phishing websites using deep learning techniques
Jin et al. Payload-based web attack detection using deep neural network
CN115238799A (en) AI-based random forest malicious traffic detection method and system
Gong et al. Model uncertainty based annotation error fixing for web attack detection
Queiroz et al. Detecting Hacker Threats: Performance of Word and Sentence Embedding Models in Identifying Hacker Communications.
CN109672586A (en) A kind of DPI service traffics recognition methods, device and computer readable storage medium
Guermazi et al. Using a semi-automatic keyword dictionary for improving violent web site filtering
CN115314268A (en) Malicious encrypted traffic detection method and system based on traffic fingerprints and behaviors
WO2005004003A1 (en) Method and device for analysing a data stream

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004767858

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004767858

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2004767858

Country of ref document: EP