[go: up one dir, main page]

FR2799855A1 - Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items - Google Patents

Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items Download PDF

Info

Publication number
FR2799855A1
FR2799855A1 FR9912887A FR9912887A FR2799855A1 FR 2799855 A1 FR2799855 A1 FR 2799855A1 FR 9912887 A FR9912887 A FR 9912887A FR 9912887 A FR9912887 A FR 9912887A FR 2799855 A1 FR2799855 A1 FR 2799855A1
Authority
FR
France
Prior art keywords
node
data
level
string
order
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR9912887A
Other languages
French (fr)
Inventor
Goff Jean Francois Le
Thierry Poullain
Eric Poullain
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SUAL E
Original Assignee
SUAL E
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
Application filed by SUAL E filed Critical SUAL E
Priority to FR9912887A priority Critical patent/FR2799855A1/en
Priority to AU78006/00A priority patent/AU7800600A/en
Priority to PCT/FR2000/002865 priority patent/WO2001029703A1/en
Priority to EP00968042A priority patent/EP1222575A1/en
Publication of FR2799855A1 publication Critical patent/FR2799855A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The system uses a series of keys in order to aid classification of products within a structured diagram. The method provides a variable hierarchical structure in an information processing system. The method includes creation of a two-dimensional data table with one action corresponding to each line. At least two columns of keys are provided containing data relating to categories of actions, with one column of actions which the process is intended to trigger. An order is defined for navigating the key columns, and using this order, a tree structure is created with a number of node levels equal to the number of key columns plus one. Each node contains at least one heading corresponding to a category or action data item from the data table and an identifier. It thus possible to display menus using the headings contained in the different nodes, or a graphical representation of the tree structure created.

Description

La présente invention concerne d'une façon générale la consultation de bases de données informatiques. The present invention relates generally to the consultation of computer databases.

La consultation de données telles que celles d'un un catalogue de produits destinées à audience large pose un certain nombre de problemes, liés à la présentation de ces données, leur hierarchisation, et l'optimisation des ressources informatiques mises en #uvre. A l'heure actuelle, la présentation des données est généralement effectuée par l'intermédiaire d'un tableau bi-dimensionnel, chaque ligne concernant une donnée, et chaque colonne contenant dans la ligne considérée un attribut ou propriété de cette donnee Cette approche présente des inconvénients majeurs dès l'ensemble des données présenté dépasse quelque dizaines, et devient humainement impraticable avec quelques centaines de données. De plus, certains utilisateurs seront intéressés par certaines propriétés des données et d'autres, cet intérêt pouvant d'ailleurs varier tres vite dans le temps, même pour un même utilisateur. Consulting data such as that of a catalog of products intended for wide audience poses a number of problems related to the presentation of these data, their hierarchization, and the optimization of the computer resources implemented. At present, the presentation of data is usually done via a two-dimensional table, each row for a given data, and each column containing in the line considered an attribute or property of this data. major drawbacks as soon as the set of data presented exceeds some tens, and becomes humanly impractical with a few hundred data. In addition, some users will be interested in certain properties of data and others, this interest can also vary very quickly over time, even for the same user.

Les techniques d'hiérarchisation permettent de façon connue de classifier les données en catégories et sous-catégories, et pour permettre de retrouver une information, divers regroupements, l'intermédiaire d'un langage de requête, comme ( Syntax Query Language ) permettront à l'utilisateur averti d'effectuer divers classements qui lui conviennent. Cette approche est malheureusement un travail de spécialiste, très peu adaptée au grand public qui est en général pas capable de construire facilement rapidement une requête SQL ou autre. C'est pourquoi utilisateur n'a en général à sa disposition qu'un nombre limité de types de requêtes prédéterminées, auxquelles il n'a aucun accès permettant de les modifier. Hierarchization techniques make it possible, in a known way, to classify data into categories and subcategories, and to enable information to be retrieved, various groupings, via a query language, such as (Syntax Query Language), will enable the user to informed user to perform various classifications that suit him. This approach is unfortunately a specialist work, very little adapted to the general public who is generally not able to quickly build a SQL query or other. This is why the user generally has at his disposal only a limited number of predetermined types of requests, to which he has no access to modify them.

L'un des problèmes de cette approche est qu'il est souvent pratiquement impossible de prévoir au départ les besoins exacts de l'utilisateur, et donc de créer toutes requêtes adéquates. Il est alors courant d'arriver à situation aberrante, où l'utilisateur doit virtuellement déjà connaître la réponse à sa question, et l'endroit où l'information est stockée. One of the problems with this approach is that it is often almost impossible to predict the exact needs of the user at the outset, and therefore to create any appropriate queries. It is then common to arrive at an aberrant situation, where the user must virtually already know the answer to his question, and where the information is stored.

I1 ressort de ce qui précède que l'optimisation des ressources informatiques est un problème majeur, souvent eludé, et qui devient fondamental dans une architecture ient/serveur mise en #uvre par exemple sur l'Internet. Ainsi deux types de problèmes existent et doivent être traités. Le premier est lié à la quantité d'informations envoyées du serveur au client. Le deuxième est lié à 'accès de bases de données présente dans le serveur, qui 'avère extrêmement coûteux en temps processeur en mémoire vive, ce qui ralentit fortement les temps de réponse dans un environnement client/serveur lorsque le nombre de clients en cours de session est élevé. From the foregoing, it can be seen that the optimization of computing resources is a major problem, often eluded, and which becomes fundamental in an architecture / server implemented for example on the Internet. Thus two types of problems exist and must be dealt with. The first is related to the amount of information sent from the server to the client. The second is related to 'database access present in the server, which is extremely expensive in processor time in RAM, which significantly slows response times in a client / server environment when the number of clients in the process of session is high.

La présente invention vise à pallier ces limitations de l'état de l'art et à proposer un procédé permette d'organiser une table de données de manière hiérarchisée à partir du contenu des colonnes la table. Plus précisément, l'invention a pour obj de réorganiser la hiérarchie des données présentées, en attribuant un ordre quelconque aux colonnes de la table, ceci de manière interactive et autonome, par exemple en présentant ces données hiérarchisées par menus déroulants. A cet effet, la présente invention propose un procédé pour créer une structure hiérarchique variable permettant à un utilisateur de déclencher par choix successifs une action parmi une pluralité actions dans système informatique, le procédé étant caractérisé en qu'il comprend les étapes consistant à - créer une table de données à plusieurs lignes à plusieurs colonnes, à chaque ligne correspondant action respective, tandis qu'au moins deux colonnes de clés contiennent des données de catégories desdites actions et qu'une colonne d'action contient des données désignant les différentes actions que la structure hiérarchique doit permettre de déclencher ; - définir un ordre de parcours d'au moins un sous- ensemble de l'ensemble des colonnes de clés ; et - en utilisant ledit ordre de parcours, créer une structure arborescente de noeuds comportant un nombre niveaux noeuds égal au nombre de colonnes de clés dudit sous-ensemble augmenté de un, chaque n#ud contenant moins rubrique correspondant à une donnée catégorie ou d'action de la table de données et identificateur, un premier niveau de la structure de noeuds contenant un n#ud unique dont une pluralité rubriques correspondent à une pluralité de données catégories présentes dans la colonne de catégorie de la table données figurant en premier dans l'ordre de parcours, et chaque niveau suivant le premier niveau contenant, rattachés respectivement au n#ud ou à chaque n#ud du niveau immédiatement inférieur, un ensemble de noeuds égal au nombre de rubriques dans ledit n#ud auquel ils sont rattachés, et chaque identificateur de n#ud niveau supérieur au premier niveau étant construit une combinaison de l'identificateur du n#ud du niveau immédiatement inférieur auquel il est rattaché et d'une rubrique contenue dans ce même n#ud. The present invention aims to overcome these limitations of the state of the art and to provide a method for organizing a table of data in a hierarchical manner from the contents of the table columns. More precisely, the object of the invention is to reorganize the hierarchy of the presented data, by assigning any order to the columns of the table, this in an interactive and autonomous manner, for example by presenting these data hierarchized by drop-down menus. For this purpose, the present invention proposes a method for creating a variable hierarchical structure allowing a user to trigger by successive choices an action among a plurality of actions in a computer system, the method being characterized in that it comprises the steps of - creating a multi-row data table with several columns, with each line corresponding respective action, while at least two key columns contain category data of said actions and an action column contains data designating the different actions that the hierarchical structure must be able to trigger; define a browse order of at least a subset of the set of key columns; and - using said browse order, creating a tree structure of nodes having a number of nodes levels equal to the number of key columns of said subset increased by one, each n # ud containing less heading corresponding to a category datum or of data table action and identifier, a first level of the node structure containing a single node of which a plurality of items correspond to a plurality of category data present in the category column of the data table first in the table. a browse order, and each level following the first level containing, respectively attached to the node or each node of the level immediately below, a set of nodes equal to the number of items in said node to which they are attached, and each identifier of n # ud level higher than the first level being constructed a combination of the identifier of the node of the level immediately inferior to which it is attached and a heading contained in this same node.

Des aspects préférés, mais non limitatifs, du procède selon l'invention sont les suivants le procédé comprend en outre l'étape consistant à afficher sélectivement des menus de sélection en utilisant les rubriques contenues dans les différents n#uds. le procédé comprend en outre l'étape consistant afficher une représentation de la structure arborescente avec rubriques. Preferred, but not limiting, aspects of the method according to the invention are the following: the method further comprises the step of selectively displaying selection menus using the items contained in the different nodes. the method further comprises the step of displaying a representation of the tree structure with items.

* chaque n#ud contient un ou plusieurs éléments chaque élément contenant une rubrique, des données associees à un n#ud de niveau inférieur, et des données associees à un n#ud de niveau supérieur. * Each node contains one or more elements, each element containing a topic, data associated with a lower-level node, and data associated with a higher-level node.

* pour le n#ud de premier niveau, les données éléments contenus dans ce n#ud comprennent une donnée indiquant qu'il n'existe pas de n#ud de niveau inférieur. * for the first-level node, the data elements contained in this node include data indicating that there is no lower-level node.

* pour chaque n#ud de dernier niveau, les données des éléments contenus dans ce n#ud comprennent une donnée indiquant qu'il n'existe pas de n#ud de niveau supérieur * le procédé comprend une étape intermédiaire consistant, pour chaque n#ud, à élaborer une chaîne caractères constituée par la concaténation des contenus de la table de données pour une ligne donnée et dans ordre de colonnes indiqué par l'ordre défini. * for each last-level node, the data of the elements contained in this node include data indicating that there is no higher-level node * the method includes an intermediate step consisting of, for each n #ud, to develop a string consisting of the concatenation of the contents of the data table for a given row and in column order indicated by the defined order.

le procédé comprend en outre les étapes consistant pour chaque nouvelle chaîne de caractères élaborée, à associer à cette chaîne un n#ud de niveau immédiatement inférieur, et à mémoriser le couple chaîne/n#ud, - à chaque élaboration d' une chaîne de caractères, à verifier si un couple chaîne/nceud contenant cette même chaine a déjà été mémorisé, - dans l'affirmative, à associer à la chaîne élaborée le n#ud de niveau immédiatement inférieur constitué par le second élément du couple dejà mémorisé. the method further comprises the steps of each new character string being constructed, associating therewith a node of a level immediately below, and storing the string / n # ud pair, - each time a string of characters is generated. characters, to check if a string / node pair containing this same string has already been memorized, if so, to associate with the elaborated string the next level node consisting of the second element of the pair already stored.

D'autres aspects, buts et avantages la présente invention apparaîtront mieux à la lecture de la description détaillée suivante d'une forme réalisation préférée de celle-ci, donnée à titre exemple non limitatif et faite en référence aux dessins annexés, sur lesquels les figures la et lb illustrent schématiquement deux types de parcours d'une structure arborescente, la figure 2 est un logigramme illustrant un algorithme de génération de noms pour une ligne d'une table suivant un ordre donné, la figure 3 est un logigramme illustrant un algorithme d'organisation de données utilisant l'algorithme de génération de la figure 2, les figures 4a à 4c illustre le contenu des noeuds obtenus avec l'algorithme de la figure 3 pour les quatre produits d'une table de données indiquée plus loin à titre d'exemple, et les figures 5a à 5d illustrent le déroulement des menus pour quatre classements possibles définissant quatre modes de consultation. Other aspects, objects and advantages of the present invention will become more apparent on reading the following detailed description of a preferred embodiment thereof, given by way of nonlimiting example and with reference to the appended drawings, in which the figures 1a and 1b schematically illustrate two types of paths of a tree structure, FIG. 2 is a logic diagram illustrating a name generation algorithm for a row of a table in a given order, FIG. 3 is a logic diagram illustrating an algorithm for data organization using the generation algorithm of FIG. 2, FIGS. 4a to 4c illustrate the contents of the nodes obtained with the algorithm of FIG. 3 for the four products of a data table indicated below as FIG. example, and Figures 5a to 5d illustrate the menu flow for four possible rankings defining four modes of consultation.

Par convention dans la description qui suit, on indiquera ci-dessous avec la première lettre en majuscules le nom d'une variable, et avec première lettre en minuscules le contenu ou valeur d' variable. <U>Définitions</U> <I>a) Table de</I> données Une table de données, dans le contexte de la présente invention, est un tableau à deux dimensions, chaque ligne correspondant à une donnée, et chaque colonne de la ligne considérée contenant une caracteristique ou propriété de cette donnée. On notera ici le procédé de stockage de ces informations n'est pas à considérer ici. Ainsi la table de données peut provenir d'un fichier texte ou binaire, résulter de l'exécution d'une procédure locale ou déportée, être directement constituée d'une table appartenant à une base de données, ou encore résulter d'une requête type SQL ( Syntax Query Language ) par exemple. <I>Table de données</I> homogènes table de données, dans le contexte utilisé ici, est dite homogène si toutes les caractéristiques d'une donnée existent pour toutes les autres données. Par exemple, si une caractéristique est nommée "Couleur", et si toutes les données présentées possedent une caractéristique "Couleur" non vide, alors la table est homogène. Dans le cas ou une table de données n'est pas homogène, il est possible de la rendre homogène en étendant la définition d'une ou plusieurs caractéristiques. By convention in the following description, we will indicate below with the first letter in uppercase the name of a variable, and with the first letter in lowercase the content or value of variable. <U> Definitions </ U> <I> a) Data table </ I> A data table, in the context of the present invention, is a two-dimensional array, each row corresponding to one datum, and each column of the considered line containing a characteristic or property of this datum. Note here the method of storage of this information is not to be considered here. Thus the data table can come from a text or binary file, result from the execution of a local or remote procedure, be directly constituted of a table belonging to a database, or result from a standard query SQL (Syntax Query Language) for example. <I> Table of Data </ I> homogeneous table of data, in the context used here, is said homogeneous if all the characteristics of a data exist for all the other data. For example, if a feature is named "Color", and all the data presented has a non-empty "Color" characteristic, then the table is homogeneous. In the case where a data table is not homogeneous, it is possible to make it homogeneous by extending the definition of one or more characteristics.

Par exemple, pour la caractéristique "Couleur", si l'ensemble des couleurs disponible est Rouge , Vert ou Bleu , la notion "Pas de couleur" peut être attribuée à toutes les données pour lesquelles la caractéristique couleur n'a pas de sens. L'ensemble des couleurs disponibles devient alors Rouge, Vert, Bleu, Pas de couleur . Ce processus peut en général être appliqué pour tout type de données. For example, for the "Color" feature, if all available colors are Red, Green, or Blue, the "No color" concept can be assigned to all data for which the color feature is meaningless. All available colors become Red, Green, Blue, No color. This process can usually be applied for any type of data.

Selon un autre exemple, avec une donnée Booléenne (de type Oui / Non ), la valeur Non peut être attribuée dans le cas ou elle n'a pas de sens. De même, pour une donnée numérique, la valeur 0 peut servir de marqueur particulier. <I>c) Table de hachage</I> Une table de hachage permet d'associer une donnée à valeur, créant ainsi des paires (clé, valeur). Une table de hachage est généralement utilisée dans le contexte de bases de données, permettant un accès rapide, voire immédiat, à une ou plusieurs colonnes jugées importantes, et généralement nommées clés. Cette organisation favorise la vitesse d'exécution liée à une recherche, au détriment de l'espace utilisé pour stocker données. Elle permet de répondre aux questions est- que la donnée X existe ? ou encore quelle est la valeur de la clé Y ? sans avoir à effectuer une boucle explicite sur l'ensemble des données existantes. According to another example, with a Boolean data (of type Yes / No), the value No can be assigned in the case where it does not make sense. Similarly, for a numeric datum, the value 0 can serve as a particular marker. <I> c) Hash table </ I> A hash table is used to associate data with value, thus creating pairs (key, value). A hash table is generally used in the context of databases, allowing quick or immediate access to one or more columns deemed important, and usually called keys. This organization promotes the speed of execution linked to a search, to the detriment of the space used to store data. It makes it possible to answer the questions is that the data X exists? or what is the value of the key Y? without having to make an explicit loop on all the existing data.

d) Dictionnaire Un dictionnaire, dans le contexte la présente invention, est une table de hachage associant un code à une chaîne de caractères. L'utilisation d` dictionnaire peut permettre dans la plupart des de réduire l'espace nécessaire au stockage ou à la transmission d'une table de données, dans le cas ou celle-ci contient une répétition importante de chaînes de caractères longues toutes identiques. Un dictionnaire peut aussi permettre d'étendre le nombre de langues d'interface pour une table de données, sans avoir à modifier les données elles-mêmes. e) Menu<I>Déroulant</I> Un menu déroulant est un objet graphique permettant d'afficher un espace données hiérarchisé suivant une organisation fixe. Il composé d'un ou de plusieurs menus, chacun contenant ou plusieurs éléments de menu. Ces éléments de menu peuvent être liés à d'autres menus, qui sont alors considerés comme des sous-menus du menu contenant cet élément menu. Cet objet est généralement réactif au clavier ou la souris, permettant d'afficher ou de masquer les sous menus au gré de l'utilisateur, par le passage du pointeur de la souris sur un élément donné, ou le clic d'un bouton la souris. A chaque instant, il existe au plus un menu affiché pour chaque niveau de hiérarchie, ce qui principe, permet d'afficher à l'écran la structure d'un espace de données important dans un espace très réduit. On va maintenant décrire en détail un système et un procédé pour l'organisation automatique du contenu d'une table de données, la hiérarchie étant directement établie par le contenu des colonnes. De plus, l'ordre des colonnes peut être modifié ou spécifié à souhait, sans nécessiter d'accès à la source de donnée externe ou locale d'origine: Ces deux points répondent directement aux contraintes d'hiérarchisation et d'optimisation évoquées plus haut. d) Dictionary A dictionary, in the context of the present invention, is a hash table associating a code with a string of characters. In most cases, the use of a dictionary can reduce the space required for the storage or transmission of a data table, in the case where it contains a large repetition of identical long character strings. A dictionary can also be used to extend the number of interface languages for a data table, without having to modify the data itself. e) <I> Drop-down menu </ I> A drop-down menu is a graphic object for displaying a hierarchical data space according to a fixed organization. It consists of one or more menus, each containing or several menu items. These menu items can be linked to other menus, which are then considered as submenus of the menu containing this menu item. This object is generally responsive to the keyboard or the mouse, allowing to display or hide the sub menus at the discretion of the user, by the passage of the mouse pointer on a given element, or the click of a mouse button . At each moment, there is at most one menu displayed for each level of hierarchy, which principle, allows to display on the screen the structure of an important data space in a very small space. A system and method for automatically organizing the contents of a data table will now be described in detail, the hierarchy being directly established by the contents of the columns. In addition, the order of the columns can be modified or specified as desired, without requiring access to the original external or local data source: These two points directly respond to the prioritization and optimization constraints mentioned above. .

Dans la description qui suit, on a choisi à titre d'exemple de présenter les données sous forme menu déroulant. Il est également possible de les présenter par exemple sous forme d'arbre, la différence entre deux structures étant principalement liée à l'ordre de parcours des éléments, l'ordre étant dit depth-first (priorité à la profondeur, voir figure la) pour un arbre, et breadth-first (priorité à la largeur, voir figure lb) pour un menu. Le passage d'une représentation à l'autre ne posera aucun problème particulier en pratique. In the following description, an example has been chosen to present the data in drop-down menu form. It is also possible to present them for example in the form of a tree, the difference between two structures being mainly related to the order of travel of the elements, the order being said depth-first (priority to the depth, see figure la) for a tree, and breadth-first (for width, see Figure lb) for a menu. The transition from one representation to another will not pose any particular problem in practice.

Un aspect essentiel de la présente invention repose sur l'utilisation de tables de hachage, et d'un nommage adéquat des menus en cours de création. L'utilisation de tables de hachage optimise la recherche d'un objet en fonction d'une clé ou catégorie, la clé utilisee ici étant précisément la dénomination utilisée dans les menus. La donnée Di peut être représentée par suite de chaînes de caractères, correspondant à la valeur de chaque colonne c(i,j), placées suivant un ordre donné, arbitraire. An essential aspect of the present invention relies on the use of hash tables, and proper naming of the menus being created. The use of hash tables optimizes the search for an object according to a key or category, the key used here being precisely the name used in the menus. The data Di can be represented as a result of strings of characters, corresponding to the value of each column c (i, j), placed in a given order, arbitrary.

Ainsi une table de m colonnes sur n lignes adoptera, avec la définition donnée plus haut, la configuration suivante

Figure img00090006
Thus a table of m columns on n lines will adopt, with the definition given above, the following configuration
Figure img00090006

Donnée <SEP> Colonne <SEP> 0 <SEP> Colonne <SEP> 1 <SEP> Colonne <SEP> j <SEP> Colonne <SEP> m
<tb> c(0,0) <SEP> c(0,1) <SEP> c(O,j) <SEP> c <SEP> m)
<tb> c(1,0) <SEP> c(1,1) <SEP> c(l,j) <SEP> c <SEP> m)
<tb> c(i,0) <SEP> c(i,l) <SEP> c(i,j) <SEP> c <SEP> ' <SEP> m)
<tb> c(n,0) <SEP> c(n,l) <SEP> c(n,j) <SEP> c <SEP> m) Par ailleurs, pour chaque ligne du tableau correspondant à une donnée Di, on établit une variable noms(Di) de la façon suivante :.
Data <SEP> Column <SEP> 0 <SEP> Column <SEP> 1 <SEP> Column <SEP> j <SEP> Column <SEP> m
<tb> c (0,0) <SEP> c (0,1) <SEP> c (O, j) <SEP> c <SEP> m)
<tb> c (1,0) <SEP> c (1,1) <SEP> c (l, j) <SEP> c <SEP> m)
<tb> c (i, 0) <SEP> c (i, l) <SEP> c (i, j) <SEP> c <SEP>'<SEP> m)
<tb> c (n, 0) <SEP> c (n, l) <SEP> c (n, j) <SEP> c <SEP> m) Moreover, for each row of the table corresponding to a datum Di, we establish a variable names (Di) as follows:.

noms(Di) = {c(1,0), c(1,0)-c(i,l), ..., c(i,0)-c(i,l)-...-c(ij), ..., c(i,0)-c(i,l)-.., c(i,m)} On comprend qu'il s'agit d'une variable multidimensionnelle contenant, en une position j donnée, la concatenation des chaînes de caractères correspondant aux valeurs des cellules des colonnes 0 à j pour ligne considérée, séparées deux à deux par des tirets.  names (Di) = {c (1,0), c (1,0) -c (i, l), ..., c (i, 0) -c (i, l) -...- c (ij), ..., c (i, 0) -c (i, l) - .., c (i, m)} We understand that this is a multidimensional variable containing, in one position j data, the concatenation of the character strings corresponding to the values of the cells of the columns 0 to j for the considered line, separated two by two by dashes.

Pour prendre un exemple concret, on ici considérer un extrait d'une table de données qui pourrait correspondre au produits du catalogue d'un magasin électronique d'articles de sport

Figure img00100010
To take a concrete example, here we consider an extract from a data table that could correspond to the products in the catalog of an electronic sporting goods store.
Figure img00100010

<U>Table <SEP> I <SEP> (n <SEP> = <SEP> 4, <SEP> m <SEP> = <SEP> 3 <SEP> )</U>
<tb> <U>Numéro <SEP> article <SEP> Type <SEP> Produit <SEP> Marque <SEP> Nom</U>
<tb> 1 <SEP> Chaussures <SEP> Reebok <SEP> <SEP> The <SEP> Answer <SEP>
<tb> 2 <SEP> Chaussures <SEP> Reebok <SEP> <SEP> After <SEP> Shock <SEP> Mid <SEP>
<tb> 3 <SEP> Chaussures <SEP> Adidas <SEP> <SEP> Real <SEP> Deal <SEP>
<tb> 4 <SEP> Accessoires <SEP> Shimano <SEP> <SEP> VTT <SEP> Rider <SEP> (Note : toutes les marques citées ici sont des marques déposées.
<U> Table <SEP> I <SEP> (n <SEP> = <SEP> 4, <SEP> m <SEP> = <SEP> 3 <SEP>) </ U>
<tb><U> Number <SEP> Article <SEP> Type <SEP> Product <SEP> Brand <SEP> Name </ U>
<tb> 1 <SEP> Shoes <SEP> Reebok <SEP><SEP> The <SEP> Answer <SEP>
<tb> 2 <SEP> Shoes <SEP> Reebok <SEP><SEP> After <SEP> Shock <SEP> Mid <SEP>
<tb> 3 <SEP> Shoes <SEP> Adidas <SEP><SEP> Real <SEP> Deal <SEP>
<tb> 4 <SEP> Accessories <SEP> Shimano <SEP><SEP> ATV <SEP> Rider <SEP> (Note: All trademarks mentioned here are registered trademarks.

On comprend que, pour l'article numéro 1, on a Noms(l) =<B>{"</B>Chaussures<B>",</B> "Chaussures-Reebok"," Chaussures-Reebok-ne Answer"} Cette dénomination met en évidence que le produit No. 1 devrait se trouver dans le menu "Chaussures", qui permet lui-même d'accéder au menu "Chaussures-Reebok", et enfin au nom du produit. Le résultat obtenu est un regroupement automatique en fonction des caractéristiques des produits, mis en évidence directement par la fonction dénomination. Ainsi l'on peut voir très clairement que produit No. 2, dont les noms sont: Noms(2) = {<B>"</B>Chaussures<B>","</B> Chaussures-Reebok"," Chaussures-Reebok-After Shock Mid " appartient au même groupe que le produit No. 1. We understand that for item number 1, we have Names (l) = <B> {"</ B> Shoes <B>", </ B> "Shoes-Reebok", "Shoes-Reebok-ne Answer "} This denomination highlights that the product No. 1 should be in the menu" Shoes ", which allows itself to access the menu" Shoes-Reebok ", and finally the name of the product. The result obtained is an automatic grouping according to the characteristics of the products, highlighted directly by the denomination function. Thus it can clearly be seen that Item No. 2, whose names are: Names (2) = {<B> "</ B> Shoes <B>", "</ B> Shoes-Reebok", " Shoes-Reebok-After Shock Mid "belongs to the same group as unit number 1.

Selon la présente invention, on forme les variables <U>Noms</U> en utilisant soit l'ordre croissant des colonnes 0 à 1, comme effectué ci-dessus, soit en utilisant un ordre de colonnes fixé par une variable Ordre, que l' detaillera plus loin, de façon à pouvoir parcourir catégories définies dans ces colonnes selon toute priorité souhaitée. According to the present invention, the <U> Names </ U> variables are formed by using either the increasing order of columns 0 to 1, as performed above, or by using a column order fixed by an Order variable, which will further detail it, so as to be able to browse categories defined in these columns according to any desired priority.

Plus particulièrement, en considérant deux colonnes, quatre classements sont possibles, à savoir deux classements en prenant chaque colonne une à une, sans tenir compte de l'autre colonne, et deux classements considérant chaque colonne, puis avec une priorité inférieure l'autre colonne. More particularly, considering two columns, four rankings are possible, namely two rankings by taking each column one by one, without taking into account the other column, and two rankings considering each column, then with a lower priority the other column. .

Dans le cas général, le nombre N(m) d'ordres possible est la somme de tous les arrangements de m objets pris p à p, pour p variant de 1 à m, soit

Figure img00120001

nombre augmente très rapidement avec le nombre de colonnes; en effet, N(2) = 4, N(3) = 15, N(4) = 64... In the general case, the number N (m) of possible orders is the sum of all the arrangements of m objects taken p to p, for p varying from 1 to m, ie
Figure img00120001

number increases very rapidly with the number of columns; indeed, N (2) = 4, N (3) = 15, N (4) = 64 ...

algorithmes utilisés selon la présente invention seront plus compréhensibles en introduisant la notion objet, présente dans les langages orientés objet, comme le langage Java (marque déposée) de Sun Microsystems, ou le langage C++ par exemple. The algorithms used according to the present invention will be more comprehensible by introducing the notion object, present in object-oriented languages, such as the Java language (registered trademark) of Sun Microsystems, or the C ++ language for example.

Deux objets sont utilisés ici, à savoir un objet de type Noeud, et un objet de type Elément. Ces ets adoptent une structure arborescente : un N#ud donné possède un N#ud Parent unique (sauf s'il s'agit noeud de niveau le plus élevé) et un ou plusieurs Noeuds enfants (sauf s'il s'agit d'un n#ud de niveau le plus ). Un objet de type Elément possède - un Message, qui constitue ce qui doit etre affiché dans un menu, - un N#ud Parent, - un N#ud Enfant. Two objects are used here, namely an object of type Node, and an object of type Element. These ets adopt a tree structure: a given N # ud has a unique N # parent (unless it is the highest level node) and one or more child nodes (unless it is a node of the highest level). An element of type Element has - a Message, which constitutes what must be displayed in a menu, - A Parent N #, - A Child N #.

On le représente sous la forme {Message, Parent, Enfant} On notera ici que, dans le cas où un Elément n'a pas d'enfant, alors la variable Nom (voir ci-dessous du N#ud Enfant prend la valeur pull . It is represented in the form {Message, Parent, Child} It will be noted here that, in the case where an Element has no child, then the variable Name (see below of the N # ud Child takes the value pull .

Un objet de type N#ud possède un Nom, - un Niveau de profondeur positif, commençant à 0, un Lien, constitué d'un objet de type Elément, - une Liste, constituée par un tableau d'Eléments. Le Lien est en fait l'Elément dans le N#ud Parent qui permet d'arriver à ce Noeud. An N # ud type object has a Name, - a Positive Depth Level, starting at 0, a Link, consisting of an Element type object, - a List, consisting of an array of Elements. The Link is actually the Element in the N # Parent that allows you to get to that Node.

On représente ici un objet N#ud sous la forme {Nom, Niveau, Lien, {Liste} } En référence maintenant à la figure 2, va décrire un algorithme de génération de la variable multidimensionnelle Noms telle que décrite plus haut pour une ligne i d'une table donnée. We represent here an object N # ud in the form {Name, Level, Link, {List}} Referring now to Figure 2, will describe an algorithm for generating the multidimensional variable Names as described above for a line i of a given table.

utilise ici les conventions suivantes est le nombre de colonnes de la table ; (i,j) est la valeur de la colonne j à la ligne i, comme indiqué plus haut; chaîne{x} est une fonction créant une chaîne de caractère constituée par x ; concaténation (x, y) est une fonction créant un chaîne caractères constituée par chaîne{x} suivi de chaîne ; Ordre indique un ordre donné de parcours de tout ou partie des différentes colonnes 0 à m-1 d'une table, et Ordre désigne la numéro de la colonne au kième emplacement de Ordre, k variant entre 0 et m-1 (ou entre 0 et entier inférieur à m-1 si l'ordre concerne seulement un sous-ensemble des colonnes de catégories). uses the following conventions here is the number of columns in the table; (i, j) is the value of column j at line i, as indicated above; string {x} is a function that creates a string consisting of x; concatenation (x, y) is a function that creates a string consisting of string {x} followed by string; Order indicates a given order of the course of all or part of the different columns 0 to m-1 of a table, and Order is the number of the column at the kth place of Order, where k varies between 0 and m-1 (or between 0 and integer less than m-1 if the order concerns only a subset of the category columns).

L'étape 210 de la figure 2 est une étape de création d'un premier élément liste[0] d'une liste pour la ligne i, l'élément liste[0] étant constitué par chaîne{c(i, ordre[0]}, à savoir la chaîne de caractères constituée par l'élément contenu dans la ligne i et dans la colonne fixée par la valeur ordre[0]. A l'étape 220 est effectuée une incrémentation progressive d'une variable Col, en partant de 1 jusqu à m-1. Step 210 of FIG. 2 is a step of creating a first list element [0] of a list for line i, the list element [0] being constituted by string {c (i, order [0 ]}, that is the character string constituted by the element contained in the line i and in the column fixed by the value order [0]. At the step 220 is carried out a progressive incrementation of a variable Col, starting with from 1 to m-1.

L'étape 230 consiste à mettre à jour la liste, construisant l'élément liste[col] par concaténation de la valeur précédemment établie liste[col-1] et en effectuant l'opération consistant à compléter la chaîne liste[col-1] par un tiret puis par la chaîne chaîne{c(i, ordre[col] , c'est-à-dire par le contenu de la table dans la i-' ligne et dans la colonne fixée par la valeur ordre[col]. Step 230 consists in updating the list, building the list element [col] by concatenation of the previously established value list [col-1] and performing the operation of completing the list string [col-1] by a dash and then by the string string {c (i, order [col], that is to say by the contents of the table in the i-line and in the column fixed by the value order [col].

L'etape 240 constitue un test pour déterminer si toutes colonnes pour la ligne i ont été parcourues (dans ordre fixé par la valeur de Ordre). Dans la négative le programme retourne à l'étape 220 pour compléter l'élément Liste. Dans l'affirmative, la liste (égale à liste[m-1]) est retournée (étape 250).  Step 240 is a test to determine whether all columns for row i have been traversed (in order set by the Order value). If not, the program returns to step 220 to complete the list item. If yes, the list (equal to list [m-1]) is returned (step 250).

Pour prendre un exemple concret, on va considérer la troisième ligne de la table donnée plus haut, avec une valeur Ordre égale à (2,l,3). To take a concrete example, we will consider the third line of the table given above, with an order value equal to (2, l, 3).

valeur de liste[3] délivrée par l'algorithme de la figure 2 est alors égale à Adidas-Chaussures-Real Deal . list value [3] delivered by the algorithm of Figure 2 is then equal to Adidas-Shoes-Real Deal.

On comprend donc que l'algorithme de la figure 2 est capable d'engendrer successivement tous les éléments de la variable multidimensionnelle Noms pour la ligne i considérée. It is therefore understood that the algorithm of FIG. 2 is capable of successively generating all the elements of the multidimensional variable Names for the line i considered.

La figure 3 illustre l'algorithme principal d'organisation de données selon la présente invention. Dans la case 310, on applique à l'algorithme informations suivantes - une table de données de n lignes x m colonnes , - une variable Ordre désiré, à savoir un ordre donné de nombres entiers successifs compris entre 1 et m- 1 L'étape 320 est une étape d'initialisation consistant - à créer un Noeud racine appelé root , dont le est 0 , dont le niveau est 0, dont le Lien adopte valeur pull (absence de lien), et enfin dont Liste d'Eléments est vide, et - à créer une table de hachage h(nom,n#ud), - à ajouter dans la table de hachage un couple ( 0 , root) (par une fonction d'ajout dénommée h. add) L'étape 330 permet de parcourir successivement toutes les lignes i de la table, de la première à la dernière. Figure 3 illustrates the main data organization algorithm according to the present invention. In box 310, the following information algorithm is applied - a data table of n rows xm columns, - a desired Order variable, namely a given order of successive integers between 1 and m- 1 Step 320 is an initialization step consisting of - creating a root node called root, whose is 0, whose level is 0, whose Link has pull value, and finally whose List of Elements is empty, and - to create a hash table h (name, n # ud), - to add in the hash table a pair (0, root) (by an add function called h.add) Step 330 allows you to browse successively all the lines i of the table, from the first to the last.

Pour chaque ligne, l'étape 340 fait appel à l'algorithme de génération de noms de la figure 2 pour créer un ensemble de Noms noms(i, Ordre) constitué liste[0], ..., liste[m-1]. Chacun de ces noms est dénomme nom (j), avec j variant de 0 à m-1. Cette étape indique également que le Noeud Parent pour les Eléments qui seront créés à chaque étape 380 (voir ci-dessous) est le Noeud root défini plus haut. For each line, step 340 uses the name generation algorithm of FIG. 2 to create a set of Name Names (i, Order) consisting of list [0], ..., list [m-1] . Each of these names is named name (j), with j varying from 0 to m-1. This step also indicates that the Parent Node for the Elements that will be created at each step 380 (see below) is the root node defined above.

L'étape 350 permet de traiter successivement les m valeurs de Nom(j). Step 350 makes it possible to successively process the m values of Name (j).

Pour chaque valeur nom(j), l'étape 360 détermine il existe dans la table de hachage un couple contenant (j) comme premier élément du couple, c'est-à-dire si l'on a déjà associé un objet Noeud à nom (j) dans la table de hachage. For each name value (j), step 360 determines that there exists in the hash table a pair containing (j) as the first element of the pair, that is, if a node object has already been associated with name (j) in the hash table.

Dans l'affirmative, le programme passe à l'étape 370, où l'on établit que le Noeud Parent de l'élément en question est celui figurant dans la table de hachage association avec nom(j). If so, the program proceeds to step 370, where it is determined that the Parent Node of the element in question is the one in the association hash with name (j).

Dans la négative, le programme passe à l'étape dans laquelle - on crée un Elément e = élémentIc (i, Ordre<B>(j)</B> parent, null}, c'est-à-dire un élément dont le Message est la chaîne de caractères c(i,Ordre(j)), dont le N#ud Parent parent, et dont le Noeud Enfant est pull (absence Noeud Enfant) ; - on fixe une valeur de Niveau (valeur niveau) égale à la valeur de Niveau du N#ud Parent incrémentée de 1 (niveau - parent.niveau+l) ; - crée un Noeud n égal à {nom (j), niveau, e, {vide}}, c'est-à-dire un Noeud qui possède comme Nom nom (j , comme Niveau la valeur niveau indiquée ci- dessus, comme Lien l'élément e créé plus haut, et comme Liste un contenu vide ; - on ajoute l'Elément dans la Liste du N#ud Parent ; - on assigne à e un Noeud Enfant constitué par (fonction e.enfant = n) ; - enfin on effectue la fonction h.add d'ajout noeud n associé à nom (j) dans la table de hachage par la fonction h.add(nom(j),n). If not, the program proceeds to the step in which - we create an Element e = elementIc (i, Order <B> (j) </ B> parent, null}, that is, an element whose the Message is the string of characters c (i, Order (j)), whose N # parent Parent, and whose Child Node is pull (absence Child Node) - we set a Level value (value level) equal to the Level value of the Parent N # incremented by 1 (level - parent.level + l) - create a N node equal to {name (j), level, e, {blank}}, that is, say a Node that has the Name name (j, as Level the level value indicated above, as Link the element e created above, and as List empty content; - add the Element in the List of N #ud Parent - we assign to e a Child Node constituted by (child function = n) - finally we perform the function h.add of adding node n associated with name (j) in the hash table by the h.add function (name (j), n).

Le programme passe ensuite à l'étape 370 décrite plus haut. The program then proceeds to step 370 described above.

Après l'étape 370, le programme teste en 390 toute la liste de Noms<U>nom</U> (j) a été parcourue. Dans négative, le programme retourne à l'étape 350 pour traiter le nom suivant. Dans l'affirmative, le programme passe à une étape 400 dans laquelle - on crée l'élément e = élément(c ',m), parent, null , c'est-à-dire l'Elément qui possède comme Nom la chaîne c(i,m) de la table, comme Nceud Parent parent, et comme Noeud Enfant la valeur null (absence de noeud enfant) ; - on ajoute l'Elément e dans la Liste du N#ud Parent. After step 370, the program tests in 390 the entire list of Names <U> name </ U> (j) has been traversed. In negative, the program returns to step 350 to process the next name. If so, the program proceeds to a step 400 in which - we create the element e = element (c ', m), parent, null, that is, the Element that has the string name c (i, m) of the table, like Ncode Parent parent, and as Node Child null (no child node); - Element e is added to the Parent N # List.

L'étape suivante 410 teste si toutes lignes de la table ont été parcourues. Dans la négative, on repasse à 1 étape 330 pour traiter la ligne suivante et dans l'affirmative, le programme passe à l'étape 420 dans laquelle on peut maintenant créer les differents menus à partir des éléments créés à l'étape 4 ces menus répondant par exemple à l'action d'une souris. The next step 410 tests whether all rows of the table have been traversed. If not, we go back to step 330 to process the next line and if so, the program proceeds to step 420 in which we can now create the different menus from the elements created in step 4 these menus. responding for example to the action of a mouse.

En référence maintenant aux figures 4a à 4c, on a illustré la construction progressive des n#uds correspondant à la table à quatre lignes indiquée plus haut avec l'algorithme décrit en référence à la figure 3. Referring now to FIGS. 4a to 4c, there is illustrated the progressive construction of the nodes corresponding to the four-line table indicated above with the algorithm described with reference to FIG.

Chaque rectangle correspond à un N#ud, la partie supérieure du rectangle contenant le Nom du Noeud et sa partie inférieure contenant le ou les messages du ou des éléments associés à ce noeud, c'est-à-dire figurant dans Liste pour ce N#ud, messages qui seront affichés comme articles sélectionnables individuellement dans les menus. Each rectangle corresponds to a N # ud, the upper part of the rectangle containing the Node Name and its lower part containing the message or messages of the element or elements associated with this node, that is to say listed in List for this N #ud, messages that will be displayed as individually selectable items in the menus.

La structure de n#uds complète est illustrée dans le bas de la figure 4c. The complete node structure is shown at the bottom of Figure 4c.

La figure 5a illustre la structure de menus obtenus en appliquant les algorithmes décrits ci-dessus en utilisant comme ordre (1, 2, 3) c'est-à-dire l'ordre de la table originale. Figure 5a illustrates the menu structure obtained by applying the algorithms described above using as order (1, 2, 3) that is to say the order of the original table.

La figure 5b illustre quant à elle la structure de menus obtenue en utilisant comme Ordre (2,1,3). La figure 5c illustre la structure obtenue en utilisant comme Ordre<B>(1,3).</B> Figure 5b illustrates the menu structure obtained by using as Order (2,1,3). Figure 5c illustrates the structure obtained using as Order <B> (1,3). </ B>

Enfin la figure 5d illustre la structure obtenue en utilisant comme Ordre<B>(2,3).</B> Finally Figure 5d illustrates the structure obtained using as Order <B> (2,3). </ B>

On notera ainsi que la variable Ordre peut presenter une dimension égale à m-1 (cas figures 5a et 5b), mais qu'elle peut aussi présenter dimension inférieure à m-1 (cas des figures 5c et , auquel cas le nombre de niveaux dans la hiérarchie menus est diminué d'autant. It will thus be noted that the variable Order may have a dimension equal to m-1 (in the case of FIGS. 5a and 5b), but that it may also have a dimension of less than m-1 (the case of FIGS. 5c and in which case the number of levels in the hierarchy menus is decreased by as much.

Avantageusement, dans une mise en oeuvre pratique, on propose à l'utilisateur, par exemple dans un menu indépendant ou par dialogue et sélection dans une fenêtre specifique, l'ordre à utiliser, celui-ci étant indiqué en clair à l'utilisateur. Dans l'exemple indiqué ci-dessus, si l'utilisateur souhaite utiliser l'ordre (2,1,3), on peut lui désigner le choix correspondant par choix par marque, puis par produit, puis par nom de produit ? . Advantageously, in a practical implementation, it is proposed to the user, for example in an independent menu or by dialogue and selection in a specific window, the order to be used, the latter being indicated in clear to the user. In the example shown above, if the user wishes to use the order (2,1,3), it can be designated the corresponding choice by choice by brand, then by product, then by product name? .

Bien entendu, la présente invention est nullement limitée à la forme de réalisation décrite, mais l'homme du métier saura y apporter toute variante modification conforme à son esprit. Of course, the present invention is not limited to the embodiment described, but the skilled person will be able to make any modification variant consistent with his mind.

En particulier, bien que la description qui précède ait fait référence à des produits classés selon différentes clés ou catégories (ici type de produit et marque), l'invention s'applique à toute sorte d'informations déclenchant des actions dans un système informatique local ou en réseau) et organisées selon au moins deux groupes de catégories.In particular, although the foregoing description has referred to products classified according to different keys or categories (here product type and brand), the invention applies to any kind of information triggering actions in a local computer system or in a network) and organized according to at least two groups of categories.

Claims (8)

REVENDICATIONS 1. Procédé pour créer une structure hiérarchique variable permettant à un utilisateur de déclencher par choix successifs une action parmi une pluralité d'actions dans un système informatique comprenant un processeur et une memoire, le procédé étant caractérisé en ce qu'il comprend les étapes consistant à créer dans le système informatique et y mémoriser une table de données (c(i,j)) à plusieurs lignes (i) et à plusieurs colonnes (j), à chaque ligne correspondant une action respective, tandis qu'au moins deux colonnes de clés contiennent des données de catégories desdites actions et qu'une colonne d'action contient des données désignant les différentes actions que la structure hiérarchique doit permettre de déclencher ; - définir par interaction entre le système informatique et l'utilisateur un ordre de parcours (Ordre) d'au moins un sous-ensemble de l'ensemble des colonnes de clés ; et - en utilisant ledit ordre de parcours, créer à l'aide du processeur, et mémoriser dans la mémoire, une structure arborescente de noeuds (Noeuds) comportant un nombre de niveaux de n#uds égal au nombre de colonnes de clés dudit sous-ensemble augmenté de un, chaque noeud contenant au moins une rubrique (Message) correspondant à une donnée de catégorie ou d'action de la table données et un identificateur (Nom), un premier niveau la structure de noeuds contenant un noeud unique dont pluralité de rubriques correspondent à une pluralité de données de catégories présentes dans la colonne de catégorie de la table de données figurant en premier dans l'ordre de parcours, et chaque niveau suivant le premier niveau contenant, rattachés respectivement au noeud ou à chaque noeud du niveau immédiatement inférieur, un ensemble de nceuds égal au nombre de rubriques dans ledit noeud auquel ils sont rattachés, et chaque identificateur de noeud de niveau supérieur au premier niveau étant construit par une combinaison de l'identificateur du noeud du niveau immédiatement inférieur auquel il est rattaché et d'une rubrique contenue dans ce même noeud.A method for creating a variable hierarchical structure allowing a user to successively trigger one of a plurality of actions in a computer system comprising a processor and a memory, the method being characterized by comprising the steps of to create in the computer system and store therein a data table (c (i, j)) with several lines (i) and with several columns (j), with each line corresponding a respective action, while at least two columns keys contain category data of said actions and an action column contains data designating the different actions that the hierarchical structure must allow to trigger; define by interaction between the computer system and the user a browse order (Order) of at least one subset of the set of key columns; and - using said browse command, using the processor to create and store in the memory a tree structure of nodes (Nodes) having a number of levels of nodes equal to the number of key columns of said sub-node. set increased by one, each node containing at least one item (Message) corresponding to a category or action datum of the data table and an identifier (Name), a first level the node structure containing a single node whose plurality of items correspond to a plurality of category data present in the category column of the data table first in the browse order, and each level following the first containing level, respectively attached to the node or node of the level immediately lower, a set of nodes equal to the number of items in said node to which they are attached, and each level node identifier superior to the first level being constructed by a combination of the node identifier of the next lower level to which it is attached and a topic contained in that same node. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape consistant à afficher sélectivement dans le système informatique des menus de sélection en utilisant les rubriques contenues dans les différents noeuds.2. Method according to claim 1, characterized in that it further comprises the step of selectively displaying in the computer system selection menus using the items contained in the different nodes. 3. Procédé selon la revendication caractérisé en ce il comprend en outre l'étape consistant à afficher dans le système informatique une représentation de la structure arborescente avec ses rubriques.3. Method according to the claim characterized in that it further comprises the step of displaying in the computer system a representation of the tree structure with its items. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que chaque noeud contient un ou plusieurs éléments (Élément), chaque élément contenant une rubrique (Message), des données (Parent associées à un noûud niveau inférieur, et des données (Enfant) associées a un noeud de niveau supérieur.4. Method according to one of claims 1 to 3, characterized in that each node contains one or more elements (Element), each element containing a section (Message), data (Parent associated with a lower level node, and data (Child) associated with a higher level node. 5. Procédé selon la revendication 4 caractérisé en ce que, pour le noeud de premier niveau, les données des éléments contenus dans ce noeud comprennent une donnée ( 0 ) indiquant qu'il n'existe pas de n#ud de niveau inférieur5. Method according to claim 4, characterized in that, for the first-level node, the data of the elements contained in this node comprise a datum (0) indicating that there is no lower-level node. 6. Procédé selon l'une des revendications 4 et 5, caractérisé en ce que, pour chaque n#ud de dernier niveau, données des éléments contenus dans ce n#ud comprennent une donnée (null) indiquant qu'il n'existe pas de n#ud de niveau supérieur.6. Method according to one of claims 4 and 5, characterized in that, for each last-level node, data elements contained in this node include a data (null) indicating that it does not exist. Node of higher level. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce qu'il comprend une étape intermédiaire consistant, pour chaque n#ud, à élaborer à aide du processeur et à mémoriser une chaîne de caracteres (Nom) constituée par la concaténation des contenus (i, j) ) de la table de données pour une ligne donnée dans un ordre de colonnes indiqué par l'ordre défini.7. Method according to one of claims 1 to 6, characterized in that it comprises an intermediate step consisting, for each n # ud to develop using the processor and to store a string of characters (Name) constituted by the concatenating the contents (i, j)) of the data table for a given row in a column order indicated by the defined order. 8. Procédé selon la revendication 7, caractérisé en ce qu'il comprend en outre les étapes effectuées par le processeur et consistant - pour chaque nouvelle chaîne de caractères élaborée, à associer à cette chaîne un n#ud de niveau immédiatement inférieur (N#ud Parent), et à mémoriser dans la mémoire, le couple chaîne/n#ud (h (nom, n#ud)), - à chaque élaboration d'une chaîne de caractères, à vérifier si un couple chaîne/n#ud contenant cette même chaîne a déjà été mémorisé, - dans l'affirmative, à associer à la chaîne élaborée le n#ud de niveau immédiatement inférieur constitué par le second élément du couple déjà mémorisé.8. Method according to claim 7, characterized in that it further comprises the steps performed by the processor and consisting - for each new string of characters elaborated, to associate with this string a node of immediately lower level (N # ud Parent), and to memorize in the memory, the pair string / n # ud (h (name, n # ud)), - at each elaboration of a string, to check if a pair string / n # ud containing the same string has already been memorized, if so, to associate with the elaborated string the next level node consisting of the second element of the already memorized pair.
FR9912887A 1999-10-15 1999-10-15 Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items Withdrawn FR2799855A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR9912887A FR2799855A1 (en) 1999-10-15 1999-10-15 Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items
AU78006/00A AU7800600A (en) 1999-10-15 2000-10-13 Method for creating a variable hierarchical structure for accessing actions in an information processing system
PCT/FR2000/002865 WO2001029703A1 (en) 1999-10-15 2000-10-13 Method for creating a variable hierarchical structure for accessing actions in an information processing system
EP00968042A EP1222575A1 (en) 1999-10-15 2000-10-13 Method for creating a variable hierarchical structure for accessing actions in an information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9912887A FR2799855A1 (en) 1999-10-15 1999-10-15 Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items

Publications (1)

Publication Number Publication Date
FR2799855A1 true FR2799855A1 (en) 2001-04-20

Family

ID=9550981

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9912887A Withdrawn FR2799855A1 (en) 1999-10-15 1999-10-15 Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items

Country Status (4)

Country Link
EP (1) EP1222575A1 (en)
AU (1) AU7800600A (en)
FR (1) FR2799855A1 (en)
WO (1) WO2001029703A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706386B2 (en) * 2005-10-26 2010-04-27 Cisco Technology, Inc. Fast 2-key scheduler

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630125A (en) * 1994-05-23 1997-05-13 Zellweger; Paul Method and apparatus for information management using an open hierarchical data structure
WO1999014651A2 (en) * 1997-09-17 1999-03-25 Tenfold Corporation Method and system for database application software creation requiring minimal programming

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630125A (en) * 1994-05-23 1997-05-13 Zellweger; Paul Method and apparatus for information management using an open hierarchical data structure
WO1999014651A2 (en) * 1997-09-17 1999-03-25 Tenfold Corporation Method and system for database application software creation requiring minimal programming

Also Published As

Publication number Publication date
EP1222575A1 (en) 2002-07-17
AU7800600A (en) 2001-04-30
WO2001029703A1 (en) 2001-04-26

Similar Documents

Publication Publication Date Title
US9547923B2 (en) Methods for generating visual data from nodes containing identify data for individuals from a set view point
RU2368948C2 (en) Automatic query clustering
EP1045314A2 (en) Search engine user interface
JP2005010854A (en) Information presenting method and system
EP1550944A2 (en) Systems and methods for co-axial navigation of a user interface
CN110442584B (en) Method for retrieving tree-structure resources based on asynchronous loading
WO2014198595A1 (en) Method for automatic thematic classification of a digital text file
WO2009044087A1 (en) Installation for managing a database
FR2807849A1 (en) METHOD AND SYSTEM FOR SEARCHING AND HELPING CHOICE
KR20000023961A (en) Information modeling method and database search system
US7765208B2 (en) Keyword analysis and arrangement
CA2419377C (en) Interface system for accessing data in a database
FR2859801A1 (en) Data processing method for managing individuals competency and knowledge in enterprise, involves processing multiple information carrying entities by using information of dynamic structure
EP1903483A1 (en) Method and device for encoding a note with semantic and spatial similarity between concepts of an ontology memorised in the form of a hierarchically numbered lattice
Fenlon Thematic research collections: Libraries and the evolution of alternative digital publishing in the humanities
FR2799855A1 (en) Variable hierarchical data processing method includes two dimensional data tables leading to tree structure for analysis of merchandise items
FR2843640A1 (en) Method for communicating structured information, e.g. reports, between two users in the industrial or administrative fields, involves data sorting the data and reorganising it prior to sending to second user
EP1170677A9 (en) Method and system of weighted context feedback for result improvement in information retrieval
US20240202573A1 (en) Generation of data transformations using fingerprints
EP1774441A1 (en) Method for processing associated software data
FR2917518A1 (en) METHOD FOR SORTING INFORMATION
EP1408428A1 (en) System and procedure in the processing and visualisation of search results produced by an index based search engine, interface model and corresponding meta-models
EP0938699A1 (en) Cd-rom interface
FR2969332A1 (en) PERFECTED PROCESSING OF GRAPHIC INTERFACE DATA.
CN116304098A (en) Intelligent generation matching theme and information method based on commodity

Legal Events

Date Code Title Description
ST Notification of lapse
RN Application for restoration
FC Decision of inpi director general to approve request for restoration
ST Notification of lapse