SYSTEME DE RECHERCHE ET D'AIDE AU CHOIX
La présente invention concerne un procédé de traitement de données pour la recherche et l'aide au choix d'objets parmi un ensemble d'objets mémorisés sous forme de fiches dans un système de traitement de données, dans lequel chaque objet est associé au contenu de chacun de plusieurs attributs, ainsi qu'un système de traitement de données et d'interface homme/machine pour la mise en oeuvre de ce procédé.
Dans la suite, le terme objet désigne toute entité matérielle ou immatérielle susceptible d'être décrite par un certain nombre d'attributs, ci-après appelés également contenants, les attributs pouvant présenter l'une de plusieurs valeurs données ci-après appelées contenus. Dans une base de données ordinaire, l'ensemble des attributs ou contenants est commun à toutes les fiches et l'information d'une fiche consiste en la liste des contenus associés. La recherche sur ces bases de données fait par exemple appel à l'utilisation de mots-clés, au croisement de critères, etc. Dans de très nombreux cas, les recherches sur ces bases de données conventionnelles peuvent conduire à l'absence de réponse ou à un trop grand nombre de réponses.
C'est ainsi que, pour trouver un site Web sur le réseau Internet, il faut consulter des moteurs de recherche qui, selon les cas, ne donnent aucune réponse ou proposent plusieurs milliers ou dizaines de milliers de réponses. L'usager, en présence d'une longue liste de réponse, ne peut pas affiner sa question et, de plus, il ne sait pas quelle pertinence attendre des réponses proposées.
L'invention vise à fournir un système de traitement de données pour la recherche d'objets qui garantisse de toujours présenter aux utilisateurs des réponses, et ceci sous forme de listes courtes de réponses pertinentes, tout en faisant appel à des moyens informatiques de puissance limitée et en offrant une grande rapidité de traitement et un- rapport qualité/coût raisonnable.
A cet effet, l'invention a pour objet un système de traitement de données pour la sélection d'objets parmi un ensemble d'objet mémorisés sous forme de fiches dans ledit système, dans lequel chaque objet est identifié par le contenu de chacun de plusieurs attributs, comprenant : ai) des moyens de stockage d'un tableau à structure hiérarchique de l'ensemble des attributs et contenus associés auxdits objets, dans lequel lesdits attributs sont classés hiérarchiquement en plusieurs rangs, chaque attribut d'un rang secondairëTest rattaché à un contenu d'un attribut de rang hiérarchiquement supérieur, et à chaque couple constitué d'un attribut et de son contenu est associé un code spécifique, a2) des moyens de stockage, pour chaque objet mémorisé, d'une fiche dans laquelle chaque attribut dudit objet et son contenu est identifié par le code spécifique assigné audit couple attribut-contenu dans ledit tableau, et
b) des moyens de calcul et d'interface pour, en réponse à une requête de recherche d'un requérant: c) construire une première table (S) contenant l'ensemble des fiches mémorisées relatives à de ladite requête, d) construire, au moyen desdits codes, conformément à ladite structure hiérarchique des couples attribut-contenu, une deuxième table (C) des contenus présents dans l'une quelconque desdites fiches de la première table (S), e) présenter des choix successifs d'attributs et de contenus audit requérant, dans l'ordre hiérarchique défini dans ladite deuxième table (C), f) actualiser ladite première table (S) en réponse au choix par ledit requérant d'un couple attribut-contenu consécutivement à ladite étape e), en sélectionnant dans ladite première table (S) les fiches comportant ledit couple attribut-contenu sélectionné, g) répéter lesdites opérations e) et f) jusqu'à satisfaction d'au moins une condition prédéterminée, et h) présenter le résultat de ladite recherche audit requérant lorsque ladite condition est satisfaite.
Ainsi, selon le système de l'invention, la recherche se déroule par étapes, chaque étape impliquant le choix d'un attribut ou contenant parmi ceux disponibles et le choix d'un contenu parmi ceux disponibles dans l'attribut ou contenant choisi. Chaque étape conduit à ne présenter que des informations pertinentes au requérant puisqu'on ne lui présente que des critères de recherche qui débouchent sur des réponses et que des critères de recherche ne lui sont présentés que tant qu'il y a des réponses.
Suivant une caractéristique de l'invention, lesdits moyens de calcul et d'interface e) pour présenter des choix successifs d'attributs et de contenus audit requérant, dans l'ordre hiérarchique défini dans ladite deuxième table (C), comprennent : e1) des moyens pour établir, par exploration de ladite deuxième table (C) au rang hiérarchique le plus élevé non encore exploré, une liste d'attributs ayant au moins deux contenus représentés dans ladite première table (S), et l'un des deux moyens comprenant : e2) des moyens pour présenter ladite liste d'attributs audit requérant en vue du choix de l'un desdits attributs si ladite liste d'attributs comprend au moins deux attributs, et e3) des moyens pour présenter directement les contenus d'un attribut audit requérant en vue du choix de l'un desdits contenus si ladite liste d'attributs ne comprend que ledit attribut.
Suivant un mode de réalisation de l'invention, lesdits moyens e2) pour présenter ladite liste d'attributs audit requérant en vue du choix de l'un desdits attributs, si ladite liste d'attributs comprend au moins deux attributs, comprennent : e21) des moyens pour établir, en réponse au choix de l'un desdits attributs par ledit requérant, une liste de contenus dudit attribut choisi représentés dans ladite première table (S), e22) des moyens pour présenter ladite liste de contenus audit requérant en vue du choix de l'un desdits contenus. Suivant un autre mode de réalisation de l'invention: - lesdits moyens e1) comprennent des moyens d'établissement, pour chacun desdits attributs de ladite liste d'attributs, d'une liste des contenus de cet attribut qui sont représentés dans ladite première table (S), et lesdits moyens e2) comprennent des moyens de présentation audit requérant de tous les couples attribut-contenu sélectionnés par lesdits moyens e1), en vue du choix de l'un desdits couples par ledit requérant.
L'invention comporte également une ou plusieurs des caractéristiques suivantes considérées seules ou en combinaison : ladite condition de l'opération g) est satisfaite si ladite liste d'attributs établie par lesdits moyens e1) est vide. - ladite condition de l'opération mise en œuvre par lesdits moyens g) est satisfaite si le nombre de fiches de ladite première table (S) est inférieur à une valeur prédéterminée. lesdits moyens de calcul et d'interface comprennent des moyens pour, consécutivement auxdites opérations mises en œuvre par lesdits moyens c) et f), présenter audit requérant le nombre desdites fiches de la première table (S). lesdits moyens de calcul et d'interface comprennent des moyens pour, consécutivement auxdites opérations mises en œuvre par lesdits moyens c) et f), présenter audit requérant la liste des couples attribut-contenu précédemment sélectionnés. - lesdits moyens de calcul et d'interface comprennent des moyens pour, consécutivement auxdites opérations mises en œuvre par lesdits moyens c) et f), présenter audit requérant la liste des couples attribut-contenu qui, bien que n'ayant jamais été sélectionnés par le requérant, sont néanmoins communs à toutes les fiches (F) restantes - lesdits moyens de calcul et d'interface comprennent des moyens pour :
- définir au moins un desdits couples attribut-contenu constituant un critère de recherche prioritaire,
- construire ladite première table (S) et ladite deuxième table (C) desdites opérations mises en œuvre par lesdits moyens c) et d) en sélectionnant, parmi ledit ensemble de fiches, un sous-ensemble desdites fiches satisfaisant audit critère, et - exécuter lesdites opérations mises en œuvre par lesdits moyens e) à h) au moyen dudit sous-ensemble de fiches, - ladite définition d'un critère de recherche prioritaire comprend l'étape consistant à offrir audit requérant de choisir au moins un critère prioritaire consécutivement à ladite étape e), à ajouter ledit critère prioritaire choisi par ledit requérant à une liste de critères prioritaires, et à élaborer ledit sous-ensemble de fiches par sélection des fiches dudit ensemble satisfaisant aux critères prioritaires de ladite liste. lesdits moyens de définition d'un critère de recherche prioritaire comprennent des moyens pour offrir audit requérant de choisir au moins un critère prioritaire consécutivement à ladite opération mise en œuvre par lesdits moyens e), des moyens pour ajouter ledit critère prioritaire choisi par ledit requérant à une liste (P) de critères prioritaires, et des moyens pour élaborer ledit sous-ensemble de fiches par sélection des fiches dudit ensemble satisfaisant aux critères prioritaires de ladite liste (P). ledit système présente une architecture client-serveur, lesdits moyens d'interface comprenant un terminal client. D'autres caractéristiques et avantages de l'invention ressortiront de la description qui va suivre de modes de réalisation donnés uniquement à titre d'exemples et illustrés par les dessins annexés sur lesquels :
- la figure 1 est un tableau illustrant la structure hiérarchique de l'ensemble des attributs ou contenants et des contenus associés aux objets dans un système selon l'invention ;
- la figure 2 est un tableau similaire à celui de la figure 1 illustrant les contenants et contenus dans le cas d'une application pratique ;
- les figures 3 à 9 sont des organigrammes mis en œuvre par le système selon l'invention, et - les figures 10 à 13 sont des tables illustrant un exemple de codage des contenus mis en oeuvre par le système selon selon l'invention.
On se reportera tout d'abord au tableau T de la figure 1~qui illustre la structure hiérarchique de l'ensemble des contenants et contenus associés aux objets stockés dans une ressource informatique et parmi lesquels une recherche est susceptible d'être effectuée.
Ces objets sont représentés par des fiches F constituées :
- d'une part, d'informations diverses sur lesquelles il n'est pas possible d'effectuer des recherches au moyen des mécanismes de l'invention, par exemple des textes, des images, données numériques et/ou autres informations de toute nature ;
- d'autre part, de couples contenants-contenus (cna-cnu) susceptibles d'avoir chacun l'un parmi plusieurs contenus, qui appartiennent au tableau hiérarchique de la figure 1 et qui servent aussi bien d'informations diverses que de critères de recherche.
Les couples cna-cnu d'une fiche F constituent un sous-ensemble du tableau T de la figure 1 et présentent la propriété suivante : si, dans le tableau T, il existe des sous- couples cna-cnu d'un couple cna-cnu déterminé appartenant à la fiche, alors il existe dans la fiche un de ces sous-couples, c'est-à-dire que la fiche est complète.
Ainsi que le montre la figure 1 , dans le tableau T à structure hiérarchique, les contenants et contenus sont classés hiérarchiquement en plusieurs rangs A, B, C ... et chaque contenant d'un rang secondaire est rattaché à un contenu d'un contenant d'un rang hiérarchiquement supérieur. C'est ainsi qu'un niveau ou rang A du tableau sont prévus un Contenant 1 et un Contenant 2 correspondant à des thèmes principaux de classement. Le Contenant 1 peut avoir plusieurs valeurs ou contenus possibles, à savoir cnu 1a, cnu 1b, cnu 1c, Au niveau ou rang hiérarchique B correspondant à des sous- thèmes, il existe quatre contenants. Les contenants cnulal et cnu1a2 sont rattachés au contenu cnu 1a. De même, les contenants cnulbl et cnu1 2 sont rattachés au contenu cnulb. A ce même niveau ou rang hiérarchique B, le contenant cnulal peut présenter deux valeurs ou contenus possibles, à savoir cnulala ou cnulalb. En parcourant l'arborescence du tableau hiérarchique T de la figure 1 , il est ainsi possible de décrire la totalité des couples contenant-contenu de l'une quelconque des fiches F, ainsi que les liens hiérarchiques de ces différents couples dans la fiche. La figure 2 illustre l'application du tableau T de la figure 1 au domaine de l'immobilier. C'est ainsi que les contenants du niveau ou rang A supérieur comprennent le type de bien immobilier, la nature de la transaction sur ce bien et le lieu où est localisé le bien. Pour le contenant "Type de bien", le contenu peut être "Appartement" ou "Maison", pour le contenant "Transaction", le contenu peut être "Vente" ou "Location", etc. Au rang ou niveau hiérarchique B suivant, les contenants (Nombres de pièces, Etage, Terrain, Prix, etc.) sont rattachés chacun à l'un des contenus du rang hiérarchique supérieur : les contenants "Nombre de pièces" et "Etage" sont rattachés au contenu "Appartement" et le contenant "Terrain" est rattaché au contenu "Maison".
Il résulte de ce qui précède que dans le tableau hiérarchique T de la figure 1, chaque couple contenant-contenu est unique et peut être associé à un code spécifique permettant de désigner lesdits couples dans les fiches F.
On se reportera également aux organigrammes des figures 3 à 9 qui illustrent les mécanismes mis en oeuvre pour effectuer une recherche parmi un ensemble de fiches F codées conformément à la structure hiérarchique du tableau de la figure 1.
L'organigramme général de la figure 3 intitulé Sélections successives a pour objet la présentation des choix successifs de contenants et de contenus à un requérant jusqu'à l'obtention d'une liste courte. L'étape 1 correspond au démarrage d'une recherche, c'est- à-dire à la préparation de tables S et C destinées à refléter l'ensemble des fiches F existantes parmi lesquelles la recherche doit être effectuée.
La table S est une table des fiches F sélectionnées et de leurs couples contenant- contenu, cette première table étant constamment actualisée au cours de la recherche.
La deuxième table C est une table des contenus présents dans l'une quelconque des fiches de la première table S. Si chaque fiche F est considérée comme un sous- ensemble de contenus, alors la table C peut être considérée comme l'ensemble constitué par l'union des sous-ensembles F, étant entendu que chaque couple contenant-contenu n'est représenté qu'une fois dans la table C. De plus, cette table est organisée en conformité avec la structure hiérarchique du tableau T pour refléter la hiérarchie des couples contenant-contenu. Cela signifie que les contenants ne sont représentés que de manière implicite dans cette table, du fait que chaque contenu a un code spécifique, d'où peut être déduit son contenant comme le montre le tableau T. Si, à la suite du démarrage de la recherche à l'étape 1, il s'avère que le nombre total de fiches mémorisées parmi lesquelles la recherche est effectuée est inférieur à une valeur prédéterminée, le test 2 conduit directement en 3 à la présentation au requérant de la liste de toutes les fiches existantes.
Si le nombre de fiches de la table S élaborée à l'étape 1 est supérieur à ladite valeur prédéterminée, c'est-à-dire s'il ne s'agit pas d'une liste courte, on passe par le test
2 à l'étape 4 de choix contenant/contenu. Cette étape 4 correspond à un module dont un premier mode de réalisation est illustré à la figure 4 et un second mode de réalisation à la figure 5.
A la suite de l'étape ou module 4, on examine en 5 s'il existe encore une possibilité de choix contenant/contenu. S'il existe encore au moins un choix, le test 5 ramène à l'entrée du test 2. Dans le cas contraire, on passe directement en 3 à la présentation de la liste des fiches trouvées.
Si le nombre de fiches présentées au requérant est supérieur à un paramètre prédéterminé, cela signifie qu'il est souhaitable d'améliorer la recherche en affinant les critères contenant(attribut)-contenu dépendant de ceux choisis. En d'autres termes, il convient d'ajouter des critères de recherche (contenants et leurs contenus) et/ou d'ajouter des contenus pour un ou plusieurs contenants (attributs) existants. En option, il peut être
dans ce cas prévu une commande pour avertir le responsable de la définition des critères.
On se reportera maintenant à la figure 4 illustrant le premier mode de réalisation 4.1 du module 4 de la figure 3. Ce module 4.1 commence par une étape 10 intitulée "Contenants divisibles" et illustrée par les organigrammes des figures 6 et 7. Ce module 10 a pour objet de créer une liste de contenants par recherche hiérarchique dans la deuxième table C des contenants ayant au moins deux contenus représentés dans la première table S.
En se référant à la figure 6, le module 10 débute à l'étape 100 par l'exploration de la deuxième table C au rang hiérarchique le plus élevé non encore exploré pour déterminer quels sont les couples contenant-contenu de ce rang hiérarchique. A l'étape 101 , chaque contenant est traité comme cela sera décrit en regard de la figure 7 et en 102 une liste des contenants est fournie en vue de sa présentation au requérant comme cela sera décrit dans la suite. En se reportant à la figure 7, l'étape ou module 101 débute par l'étape 200 consistant à rechercher si le contenant traité a un contenu représenté dans la table S. Si aucun contenu n'est trouvé en 201 , c'est-à-dire si le résultat est R0, on passe directement en 202 à la fin du traitement du contenant concerné. Si la réponse au test 201 est positive, on passe à l'étape 203 consistant à rechercher si le contenant traité a un second contenu représenté dans la table S. Si le résultat du test 204 est négatif, c'est-à-dire si le contenant n'a qu'un seul contenu R1 , le contenant est ignoré, mais la recherche est prolongée en 205 en traitant également tous les contenants dépendant du contenu trouvé.
Si la réponse au test 204 est positive, le résultat est Rn, c'est-à-dire que l'on a trouvé dans la table S au moins deux contenus différents pour le contenant traité. On ajoute en 206 le contenant traité à la liste des résultats et on arrive ensuite en 202 à la fin du traitement de ce contenant.
Le processus 101 de traitement d'un contenant de la figure 7 est répété pour chacun des contenants sélectionnés à l'étape 100 de la figure 6, jusqu'à épuisement de tous les contenants sélectionnés. On dispose alors en 102 de la liste de tous les contenants ayant au moins deux contenus représentés dans la table S, étant entendu que n'y figurent pas les contenants ayant au moins deux contenus, mais dépendant hiérarchiquement d'un autre contenant qui figure aussi dans la liste.
En revenant à la figure 4, s'il s'avère au test 11 que la liste des contenants 102 est vide, c'est-à-dire qu'il n'existe aucun choix à proposer au requérant comme indiqué en 12, on passe alors en 3 (figure 3) à la présentation de la liste des fiches trouvées.
Si en vertu du test 11 , il s'avère que la liste des contenants 102 n'est pas vide, on examine en 13 si cette liste comporte un seul ou plusieurs contenants. Si cette liste comporte plusieurs contenants, on les présente au requérant en 14 et celui-ci effectue en 15 le choix de l'un des contenants. Lorsque le requérant a choisi un contenant en 15 ou si le test 13 détermine que la liste des contenants 102 ne contient qu'un seul contenant, on passe au module de Sélection de contenus de l'étape 16 consistant à créer une liste de contenus représentés dans la table S pour le contenant unique ou le contenant choisi en 15 par le requérant.
En se référant à la figure 8, la première étape 300 du module 16 de Sélection de contenus consiste à repérer dans la table C le contenant choisi en 15 ou le contenant unique de la liste 102, ci-après appelé CNA, puis à trouver le premier contenu CNU de ce contenant. L'étape suivante 301 consiste à rechercher si le couple CNA-CNU fait partie d'une des fiches de la table S. S'il s'avère en 302 que tel est le cas, on passe ensuite à l'étape 303 où l'on ajoute ce contenu CNU à la liste des contenus du contenant CNA. De manière facultative, on calcule également en 303 le nombre de fiches de la table S comprenant le couple CNA-CNU et on crée une liste des fiches de la table S qui inclut le couple CNA-CNU.
On passe ensuite au test 304 où l'on détermine si le contenant CNA contient d'autres contenus. Dans l'affirmative, on passe en 305 au contenu suivant puis on revient à l'étape 301 pour détermine si le nouveau couple CNA-CNU fait partie d'une des fiches de la table S. On répète ensuite les étapes 302, 303 et 304 jusqu'à ce que tous les contenus du contenant CNA aient été examinés. Si, au cours de ce processus, il s'avère qu'un couple CNA-CNU ne fait pas partie d'une des fiches de la table S, la réponse au test 302 est négative et on passe alors au test 304, ce qui signifie que le contenu en question n'est pas ajouté à la liste des résultats.
Une fois que tous les contenus d'un contenant CNA ont été examinés, la liste des contenus sélectionnés est fournie en 306 et elle est présentée au requérant à l'étape 17 de la figure 4. Le requérant procède en 18 au choix d'un contenu parmi ceux qui lui sont présentés et on passe ensuite à l'étape 19 de réduction qui consiste à supprimer de la table S toutes les fiches qui ne contiennent pas l'un des couples contenant-contenu indiqué par le requérant. De manière facultative, il est possible de présenter au requérant la liste des couples contenant-contenu qui, bien que n'ayant jamais été sélectionnés par le requérant, sont néanmoins communs à toutes les fiches restantes. Il s'agit de couples qui ont été déduits au cours du processus de recherche de façon à éliminer les contenants n'ayant qu'un contenu possible ; cette élimination découle du choix R1 de l'étape 204 de la figure 7.
Après l'étape 20, qui indique que le requérant a effectué un choix de contenant en 15 et de contenu en 18, on revient à l'entrée du test 2 de la figure 3 pour déterminer si la liste des fiches contenue dans la table S est une liste courte ou non. Dans l'affirmative, la recherche est terminée et on passe à l'étape 3 de présentation des fiches trouvées, tandis que dans la négative, on répète le processus du module 4 décrit ci-dessus en explorant successivement les contenants et contenus dans l'ordre hiérarchique jusqu'à l'obtention d'une liste courte. Une liste courte est une liste dont le nombre de fiches est inférieur ou égal à une valeur prédéterminée, par exemple dix fiches.
La figure 5 illustre un second mode de réalisation 4.2 du module 4 de la figure 3 dans lequel on détermine à la fois tous les Contenants divisibles par le module 10 de la figure 6 et tous les contenus possibles de chacun des Contenants divisibles trouvés au moyen du module 16 de la figure 8. Comme dans le mode de réalisation de la figure 4, on passe directement à l'étape 12 ramenant à l'étape 3 s'il s'avère en 11 qu'il n'existe aucun contenant ayant au moins deux contenus représentés dans la table S. Dans le cas contraire, on déroule le module 16 de Sélection de contenus pour chacun des contenants trouvés et on présente ensuite au requérant en 21 tous les couples contenant-contenu, c'est-à-dire les couples offrant un choix.
En 22 le requérant procède au choix d'un couple et en 23, il est procédé à la réduction décrite à l'étape 19 de la figure 4. L'étape 24 indique que le choix d'un couple contenant-contenu a été effectué et, comme pour le module de la figure 4, on revient ensuite à l'entrée du test 2. Comme indiqué précédemment, le processus de Sélections successives se poursuit ensuite jusqu'à l'obtention d'une liste courte.
L'organigramme de la figure 9 illustre une variante de réalisation des mécanismes des figures 3 à 8 selon laquelle le processus de sélections successives peut être initialisé par application de critères prioritaires conduisant nécessairement à une ou plusieurs réponses.
Ces critères de sélection prioritaires (couples contenant/contenu) peuvent être prédéfinis, par exemple :
- au moyen d'un extrait de sélections antérieures comme décrit ci-après en égard de la figure 9 ;
- en fonction d'une dépendance par rapport au moyen utilisé pour entrer dans le système de recherche ;
- en fonction du profil du requérant ;
- en fonction de la localisation géographique du requérant, qu'il a préalablement spécifiée ou qui est détectée en utilisant un système de type GPS ou autre ;
- au moyen d'une recherche libre préliminaire de type "full text" sur l'ensemble des contenants/contenus de l'ensemble des fiches ;
- en réponse à une spécification du requérant de ne traiter que les fiches fournies par un ou plusieurs organismes déterminés, cette liste n'étant pas exhaustive.
En se reportant à la figure 9, l'étape 401 correspond à cette prédéfinition facultative d'un ou plusieurs critères prioritaires. Dans la suite, on appellera P la liste des critères prioritaires.
L'étape suivante 402 consiste à appliquer automatiquement à l'ensemble des fiches F tous les critères prioritaires qui ont été prédéfinis, afin de préparer les tables S et C décrites ci-dessus. Avec les fiches restantes à l'issue de l'étape 402, on exécute alors en 403 l'algorithme "sélections successives" de la figure 3 (les étapes 401 et 402 correspondant à la phase 1 d'initialisation de la recherche), qui implique des choix successifs du requérant comme décrit précédemment.
Après le déroulement de l'algorithme de la figure 3, le requérant a la faculté en 404 de choisir un ou plusieurs critères prioritaires.
Si le requérant choisit en 404 d'appliquer un ou plusieurs critères prioritaires à la recherche, cela signifie qu'il s'est aperçu que ce ou ces critères étaient plus importants que ceux qu'il a éventuellement sélectionnés par l'algorithme de la figure 3. Le requérant souhaite donc appliquer ce ou ces critères prioritaires, déjà obtenus, à l'ensemble des fiches F.
Une réponse positive au test 404 conduit donc à compléter en 405 la liste P des critères prioritaires déjà obtenus par ceux qui viennent d'être nouvellement choisis. Par construction, la liste P de critères prioritaires donne au moins une réponse. On revient ensuite à l'étape 402, c'est-à-dire qu'on applique automatiquement à l'ensemble des fiches F les critères prioritaires de la liste P complétée en 405 et l'on recommence le processus de "sélections successives" jusqu'à ce qu'une réponse négative soit donnée au test 404. On aboutit alors en 406 à la fin de la recherche.
On se référera maintenant aux tables des figures 10 à 13 qui illustrent un exemple de codage des contenus par tables de bits pour la mise en oeuvre du mécanisme décrit ci-dessus.
La figure 10 est une représentation sous forme d'arborescence équivalente au tableau T de la figure 1. Dans cet exemple de réalisation, chaque contenu du tableau hiérarchique arborescent est numéroté dans l'ordre de rencontre selon un balayage récursif de l'arborescence : c'est ainsi que le premier contenu qui dépend du contenant Cna1 de niveau ou rang hiérarchique A porte le numéro 1 (Cnu1 sur la figure 10), les contenus du contenant Cna1.1.1 (rang B) dépendant de Cnu1 portent les numéros 2 et 3 (Cnu2 et Cnu3), etc. Dans l'exemple de la figure 10, il existe neuf contenus.
Comme le montre la figure 11 , la fiche F décrivant chaque objet est constituée d'une table comportant autant d'emplacements mémoire qu'il y a de contenus dans le tableau ou arborescence de la figure 10, en l'espèce 9 dans l'exemple considéré. Chacun de ces emplacements mémoire peut prendre la valeur logique 1 si le contenu correspondant du tableau T est inclus dans la fiche et 0 dans le cas contraire. La position de chaque emplacement mémoire dans la fiche F, c'est-à-dire son adresse, correspond à un numéro de contenu attribué dans le tableau T comme le montre la figure 11. Ainsi, chaque emplacement mémoire de la fiche F est associé de manière biunivoque à un couple contenant-contenu du tableau T. A chaque instant du processus de recherche, la table S est constituée de l'ensemble des fiches F qui ont été sélectionnées jusqu'alors. En se reportant à la figure 12, on supposera qu'après un premier choix d'un contenant Cna1 par un requérant, il reste quatre fiches F1 , F2, F3 et F4 dans la table S. Ces fiches ont les contenus suivants :
- pour F1 : Cnu1 , Cnu3, Cnu7 et Cnuδ ; - pour F2 : Cnu4, Cnu5 , Cnu7 et Cnu9 ;
- pour F3 : Cnu4, Cnu6, Cnu7 et Cnu9 ; et
- pour F4 : Cnu1 , Cnu2, Cnu7 et Cnuδ.
Etant donné que dans la phase précédente le requérant a choisi le contenant Cna1, il lui est maintenant demandé de choisir entre les contenus Cnu1 et Cnu4. En supposant que le requérant choisisse Cnu1, la table S ne sera alors plus constituée que des fiches F1 et F4, et, comme représenté à la figure 13, la table C sera directement déduite de la table S en effectuant sur chacun des bits de même ordre dans chacune des fiches sélectionnées (F1 et F4) une opération de OU inclusif.
La table C est donc organisée de la même manière qu'une fiche F : les bits ou emplacements mémoire constituant cette table sont rangés dans l'ordre d'une exploration hiérarchique des contenus du tableau T. Le numéro d'ordre du bit permet aussi de retrouver dans un ou plusieurs fichiers annexes non représentés (par exemple un fichier par langue) la description du contenu et vice versa. Cet agencement permet aussi de regrouper les bits des contenus qui dépendent d'un même contenant quelle que soit la différence hiérarchique entre le contenant et les contenus considérés. Dans l'exemple considéré, l'ordre est : Cnu1, Cnu2, Cnu3, Cnu4, Cnu5, Cnu6, Cnu7, Cnu8, Cnu9.
Ce mode de codage a pour avantage de permettre une représentation très compacte du tableau T, des fiches F et des tables S et C si le nombre moyen de contenus par contenant du tableau T est faible. On peut en effet représenter plusieurs contenus dans un seul mot machine. Ce mode de codage et d'organisation offre en outre la possibilité de faire un OU logique surtout un mot machine, donc sur plusieurs contenus à la fois, d'où un gain de temps considérable pour trouver les contenus représentés dans
l'une quelconque des fiches restantes. Par ailleurs, lors de la mise en oeuvre du module 16 de Sélection des contenus de la figure 8, il sera possible de tester simultanément plusieurs contenus (autant que de bits dans un mot machine) et ce module s'en trouvera accéléré. L'inconvénient est que l'initialisation de la recherche nécessite le balayage de toutes les fiches, ce qui peut être contourné en constituant des tables auxiliaires prétriées pour analyser le premier critère introduit.
En pratique, la table S de la figure 12 est constituée d'une table de pointeurs vers chacune des fiches F sélectionnée dans l'ensemble des fiches parmi lesquelles la recherche est effectuée. Initialement, la table S contient la liste de toutes les fiches F et un marqueur indique le nombre total de fiches sélectionnées. A chaque étape de la recherche, toutes les fiches jusqu'au marqueur sont analysées, et les fiches retenues sont poussées à une extrémité de la table et le marqueur est déplacé pour indiquer le nouveau nombre de fiches restantes. De manière facultative, les fiches rejetées peuvent être tassées vers l'autre extrémité de la table, ce qui permet de la segmenter en fonction des étapes de recherche et donc de revenir rapidement en arrière sur une étape de recherche.
Il résulte de ce qui précède que le procédé et le système décrits sont particulièrement adaptés à la recherche multicritères lorsque le thème de la recherche permet une hiérarchisation de ces critères. Bien entendu, l'arborescence ou structure hiérarchique du tableau T varie en fonction du thème considéré, c'est-à-dire qu'elle n'est pas la même suivant que ce thème concerne par exemple l'automobile, l'immobilier, l'électroménager, etc. Le procédé de recherche décrit peut être précédé d'une recherche en mode traditionnel, par exemple par mot-clé, pour sélectionner le thème qui constituera la racine R de tous les contenants parmi lesquels la recherche sera menée comme décrit en regard des figures 3 à 9.
Le système de traitement de données pour la mise en oeuvre des mécanismes décrits requiert des moyens de stockage de données pour le stockage du tableau T, des fiches F et des tables C et S, des moyens de calcul pour la mise en oeuvre du processus décrit en regard des figures 3 à 9 et des moyens d'interface pour présenter des choix au requérant, pour lui permettre d'opérer ces choix et pour lui présenter le résultat de ses choix. Le système de traitement de données peut être d'un type quelconque et il peut s'agir en particulier d'un système à architecture client-serveur utilisé via un réseau tel qu'Internet à partir d'un terminal-client tel qu'un ordinateur personnel PC, un téléphone mobile fonctionnant par saisie ou par reconnaissance vocale, etc..
Les choix offerts à un requérant peuvent lui être proposés sur l'écran de son terminal sous forme de pages dynamiques composées par exemple d'une ou plusieurs des fenêtres suivantes :
- une fenêtre présentant une carte géographique réactive avec un camaïeu de couleurs ou des pictogrammes fonctions du nombre de réponse propres à chaque lieu
(pays, région, département, ville) ;
- une fenêtre représentant des histogrammes verticaux réactifs illustrant des prix, mesures ou qualités (poids, taille, surface, superficie, distance, horaire, période, couleur ) ; - une fenêtre de possibilités restantes avec les critères de sélection (attributs ou contenants) encore possibles et, pour chacun de ces critères, la liste des valeurs ou contenus disponibles avec en regard le nombre de réponses, présentées sous forme d'histogrammes horizontaux ou de menus déroulants ;
- une fenêtre représentant les choix déjà effectués par le requérant sous forme d'une fiche virtuelle composée d'une liste de contenants et de contenus qui augmente au fur et à mesure des choix successifs ;
- une fenêtre de résultats synthétisés sous forme de tableau à deux dimensions avec des éléments réactifs (photos, textes, titres, logos, menus déroulants ....) ou sous forme de cumuls dynamiques présentés de façon graphique (camemberts, histogrammes ) ; - etc
Les éléments de ces différentes fenêtres sont réactifs en ce sens qu'ils permettent d'effectuer un choix au moyen d'une souris en déplaçant un pointeur sur ces éléments, comme cela est désormais classique.
Il va de soi que les modes de réalisation décrits ne sont que des exemples et l'on pourrait les modifier, notamment par substitution d'équivalents techniques, sans pour autant sortir du cadre de l'invention.