FR 2917518 A1 20081219 FR 0704194 A 20070613 - 1 - Procédé de tri d'informations La présente invention concerne un procédé de tri d'informations. Elle vise également un système mettant en oeuvre ce procédé. L'invention concerne plus particulièrement un procédé de tri d'informations dans un catalogue électronique selon des critères de tri portant sur des informations relatives aux entités à trier. Actuellement, de nombreux sites Internet proposent des outils de tri d'informations de produits proposés à la vente dans des catalogues électroniques, avec l'objectif de fournir des comparateurs de produits. Ces outils de tri permettent aux utilisateurs de trier les produits d'une même catégorie selon plusieurs de critères de tri proposés, tel que par exemple prix, marque, couleur, etc. Pour chacun des critères de tri proposés plusieurs valeurs de tri sont disponibles, telles que par exemple des tranches de prix lorsque le critère de tri est le prix. Les procédés de tri mis en oeuvre dans les outils de tris actuellement proposés permettent de réaliser un tri d'informations en plusieurs étapes. Dans un premier temps l'utilisateur sélectionne une ou plusieurs valeurs de tri pour un ou plusieurs critères de tri. Dans un second temps, à l'aide d'une requête générée en fonction des valeurs de critères de tris sélectionnées, une base de données catalogue contenant l'ensemble des produits concernés par le tri, est accédée et chaque valeur de tri de chaque critère de tri est testée sur chacun des produits concernés par le tri. Enfin, le résultat du tri est affiché. Cependant, ces procédés de tri présentent plusieurs inconvénients. En effet, il arrive assez fréquemment qu'un utilisateur aboutisse à un résultat nul pour une combinaison de valeurs de tri des critères de tri qu'il a sélectionnées. De plus, ces procédés de tri nécessitent des ressources informatiques très important et le temps pour réaliser un tri augmente avec la fréquentation du site. D'autres procédés de tri, intégrant un pré calcul des combinaisons de valeurs de tris proposées, permettent d'éviter d'aboutir à un résultat de tri nul. Cependant, ces procédés de tris posent des problèmes de volumétries - 2 - et ont des capacités de tri limitées à des combinaisons de tri composées d'une dizaine de valeurs de tri et/ou de critères de tri. Un but de l'invention est de proposer un procédé et un système de détermination du résultat d'un tri d'informations plus rapide, nécessitant moins de ressources informatiques que les procédés de tri actuels. Un autre but de l'invention est de proposer un procédé et un système de tri présentant une plus grande capacité de tri. La présente invention permet d'atteindre les buts précités par un procédé de détermination du résultat d'un tri d'informations portant sur une pluralité d'entités, selon au moins une valeur de tri d'au moins un critère de tri : le critère de tri étant sélectionné parmi une pluralité de critères de tri portant chacun sur une caractéristique de chacune des entités, et ayant une ou plusieurs valeurs de critère de tri, et ladite valeur de tri étant sélectionnée parmi une ou plusieurs valeurs de tri du critère de tri ; caractérisé en ce que chaque critère de tri est associé à une dimension d'une base de données multidimensionnelle, cette base étant construite à partir des caractéristiques des entités, chacune des valeurs de tri d'un critère de tri étant associée à un membre de la dimension associée à ce critère de tri, et le résultat du tri est déterminé en fonction du contenu de la base de données multidimensionnelle ayant pour coordonnées le membre associé à la valeur de tri sur la dimension correspondant au critère de tri. Par tri d'informations portant sur une pluralité d'entités, on entend une sélection informatique des entités satisfaisant des valeurs de tri de critères de tris sélectionnées. Le résultat d'une telle sélection peut être le nombre d'entités satisfaisant les valeurs de tri, l'identifiant des entités ou tout autre données relatives aux entités concernées. Le procédé selon l'invention permet, par l'utilisation d'une base de données multidimensionnelle telle que décrite ci-dessus, de réaliser des tris et de déterminer les résultats des tris réalisés de manière plus rapide, plus 2917518 - 3 - souple, moins coûteuse et en nécessitant moins de ressources informatiques lors des tris. La base de données multidimensionnelle est construite en fonction des caractéristiques des entités sur lesquels porte le tri d'informations et des 5 valeurs et des critères de tri proposés. Ainsi, chaque contenu de la base de données multidimensionnelle correspond au résultat du tri réalisé avec la combinaison de valeurs de tris associées aux membres, coordonnées de ce contenu, pour les critères de tri associés aux dimensions sur lesquelles se trouvent ces membres. Autrement dit, le résultat d'un tri, effectué pour une 10 ou plusieurs valeurs de tri sélectionnées pour un ou plusieurs critères de tris, est déterminé en fonction du contenu de la base multidimensionnelle dont les coordonnées sont les membres associés à chacune desdites valeurs de tri sur toutes les dimensions, associé à chacun desdits critères de tri. Les critères de tri ainsi que les valeurs de tri pour chaque critère de tri 15 peuvent être déterminés, modifiés, supprimés ou ajoutés par un administrateur, grâce à un outil back office, en fonction des données relatives aux entités. Dans un mode de réalisation particulier, dit expert, les valeurs de tri pour chaque critère de tri peuvent être affichées dans un menu déroulant 20 associé au critère de tri. Dans ce mode de réalisation l'utilisateur peut faire une multi sélection de valeurs de tri. Dans un autre mode de réalisation, dit drilldown , les valeurs de tri pour chaque critère de tri peuvent être affichées sous forme d'une arborescence. Dans le mode de réalisation particulier où le résultat du tri peut 25 comprendre le nombre d'entités satisfaisant aux valeurs de tri pour les critères de tris. Dans ce cas, chaque contenu de la base de données multidimensionnelle correspond au nombre d'entités satisfaisant la combinaison de valeurs de tris associées aux membres, coordonnées de ce contenu, pour les critères de tri associés aux dimensions sur lesquelles se 30 trouvent ces membres. Lorsque la combinaison de valeurs de tri sélectionnées aboutit à plusieurs contenus de coordonnées différentes dans la base de données multidimensionnelle, le résultat du tri correspond à la somme de ces contenus. - 4 - Avantageusement, le procédé selon l'invention peut comprendre, pour un tri précédent réalisé selon au moins une valeur de tri précédente, une détermination d'au moins une valeur de tri, dite disponible, pour au moins un autre critère de tri, pouvant être combinée à ladite valeur de tri précédente, pour réaliser un nouveau tri donnant un résultat non nul. Les valeurs de tri donnant un résultat de tri nul en combinaison avec au moins une valeur de tri précédent ne sont pas proposées de manière à ce qu'aucun chaque tri réalisé aboutisse à un résultat nul. Ainsi, le procédé selon l'invention permet de mettre à jour les valeurs de tri pour chaque critère de tri de manière d'éviter une combinaison de valeurs de tri aboutissant à un résultat nul. Autrement dit, quelque soit la combinaison de valeurs de tri sélectionnées, il y aura au moins un produit satisfaisant cette combinaison de valeurs de tri. Le procédé selon l'invention permet d'une part d'éviter la frustration créée chez un utilisateur par un tri de résultat nul et d'autre part d'économiser le temps perdu pour des tris de résultat nul. De plus, le procédé selon l'invention peut en outre comprendre un affichage du résultat d'un nouveau tri pour au moins une valeur de tri disponible. En effet, lorsqu'une valeur de tri est disponible pour être combinée, dans le cadre d'un tri à venir, à au moins une valeur de tri précédente utilisée pour un tri précédent, le procédé selon l'invention permet un affichage du résultat du tri à venir. La base de données multidimensionnelle est accédée par une requête de type Multi Dimensional eXpression (MDX) générée par un générateur de requête MDX à partir de la combinaison de valeurs de tris de critères de tris sélectionnées. Avantageusement, la base de données multidimensionnelle peut être construite à partir d'une base de données, dite intermédiaire, comprenant pour chaque entité un identifiant et une valeur de tri pour chaque critère de tri. Selon un premier mode de réalisation, une telle base de données peut être organisée sous forme d'une table en deux dimensions, pour chaque catégorie d'entités, contenant une colonne pour l'identifiant du produit et une colonne par critère de tri. Selon un deuxième mode de réalisation, la base de données intermédiaire peut être organisée sous forme d'une table par critère de tri. Ce deuxième mode de réalisation offre de meilleures 2917518 - 5 -performances lors de l'alimentation de la base multidimensionnelle à partir de la base intermédiaire. Une telle base de données intermédiaire permet de réaliser une mise à jour de la base de données multidimensionnelle de manière simple, rapide 5 et sans nécessiter de ressources informatiques importantes. La base de données intermédiaire peut être construite à partir d'une base de données, dite catalogue, à l'aide de requêtes de type SQL permettant d'accéder au contenu de la base de données catalogue. Pour chaque entité d'une catégorie d'entités, une valeur de tri pour chaque critère 10 de tri proposé est déterminée en fonction des informations relatives à l'entité contenues dans la base de données catalogue. Le procédé selon l'invention peut comprendre un affichage dans une fenêtre d'affichage du résultat du tri. Cette fenêtre d'affichage peut être celle servant à l'affichage des critères de tri ainsi que des valeurs de tri pour 15 chaque critère de tri. Avantageusement, le procédé selon l'invention peut comprendre lors des différentes étapes de tri un affichage dans une fenêtre d'affichage des entités satisfaisant les valeurs de tri sélectionnées des critères de tri. L'affichage de ces entités peut être réalisé soit de manière automatique, soit 20 déclenché par l'utilisateur en fonction du résultat du tri. Le procédé selon l'invention peut en outre comprendre une mise à jour de la base multidimensionnelle et de la base de données intermédiaire à une fréquence prédéterminée et/ou commandée par un administrateur. La mise à jour peut être réalisée suite par exemple à une modification des 25 critères de tri, des valeurs de tri, de la base de données catalogue, etc. Le procédé selon l'invention peut avantageusement être utilisé pour le tri d'informations de produits, dans un catalogue électronique, proposés à la vente sur un site Internet. Dans ce cas particulier, une catégorie de produits peut être les caméscopes , et les critères de tri ainsi que les valeurs 30 peuvent, par exemple, être les suivants : prix : 300 etc. marque : Sony, Nikkon, Toshiba, etc. support d'enregistrement : MiniDV , DVD , carte mémoire , etc. 2917518 - 6 - Selon un autre aspect de l'invention il est proposé un système mettant en ouvre le procédé selon l'invention. Un tel système comprend une base de données multidimensionnelle, des moyens d'affichage d'au moins un critère de tri et d'au moins une valeur de tri par critère de tri et des moyens 5 d'accès de la base multidimensionnelle en fonction des valeurs de critères de tri choisies. Ainsi, le système selon l'invention peut comprendre un générateur de requête MDX pour accéder la base de données multidimensionnelle. La base de données ainsi que le générateur de requête MDX peuvent se trouver sur un serveur. 10 Le système selon l'invention peut en outre comprendre une base de données intermédiaire accessible depuis la base de données multidimensionnelle et une base de données catalogue accessible depuis la base de données intermédiaire. Le système selon l'invention peut en outre comprendre un outil 15 informatique back office de gestion des critères et des valeurs de tri ainsi que des différentes bases de données et de leur processus de mise à jour. Enfin le système selon l'invention comprend des moyens de mise en relation des différentes bases de données, sous forme de requête de type SQL, de programme informatique, etc. 20 D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de mise en oeuvre nullement limitatif, et des dessins annexés sur lesquels : la figure 1 est une représentation schématique d'un exemple de 25 système selon l'invention ; - la figure 2 est une représentation schématique de l'utilisation d'un cube OLAP selon l'invention ; la figure 3 est une représentation d'une liste de critères de tri ; la figure 4 est une représentation de fenêtres d'affichage permettant à 30 un administrateur d'activer un critère de tri et les valeurs de tri pour ce critère de tri ; la figure 5 est un exemple d'affichage d'une base de données multidimensionnelle selon l'invention à l'aide d'un explorateur de base de données multidimensionnelle ; - 7 - la figure 6 est un exemple de fenêtres d'affichages permettant de réaliser un tri en mode drilldown dont le résultat est déterminé selon l'invention ; et - la figure 7 est un exemple de fenêtres d'affichages permettant de réaliser un tri en mode expert dont le résultat est déterminé selon l'invention ; L'exemple particulier d'application que nous allons décrire dans la suite concerne le tri d'informations de produits proposés à la vente, dans un catalogue électronique sur un site Internet. La figure 1 donne une représentation schématique d'un exemple de système selon l'invention. Le système représenté en figure 1 comprend une base de données multidimensionnelle 11, dont le contenu est calculé à partir d'une base de données intermédiaire 12, constituant la source de données pour la base multidimensionnelle 11. La base de données intermédiaire 12 est construite à partir de données contenues dans une base de données catalogue 13 correspondant au catalogue électronique contenant les produits pouvant être concernés par un tri d'informations réalisé par un internaute. Le système comprend en outre un outil Back Office 14 permettant à un administrateur de configurer les critères de tri, les valeurs de tri pour chaque critère de tri, et la construction des différentes bases de données, leur mise à jour, ainsi que le fonctionnement général du système. La base de données multidimensionnelle comprend une pluralité de cubes OLAP 111, correspondant chacun à une catégorie ou une famille de produits tel que par exemple les micro-ondes, les baladeurs mp3, etc. Chaque critère de tri donne lieu à un axe d'analyse correspondant à une dimension dans chaque cube OLAP. Chaque valeur de tri pour un critère de tri donne lieu à un membre sur la dimension correspondant au critère de tri. Le résultat du tri est le nombre de produit correspondant à une valeur de tri d'un critère de tri. La base de données OLAP contiendra donc l'ensemble des nombres de produits à l'intersection de toutes les combinaisons possibles de toutes les valeurs de tous les critères de tri. La base de données est accédée par des requêtes MDX (Multi Dimensional eXpressions). Ces requêtes sont générés par un générateur de 2917518 - 8 - requête MDX 15 à partir des critères de tri et des valeurs sélectionnées pour chaque critère de tri. Le langage MDX est le langage associé aux bases de données multidimensionnelles employé pour requêter MS SQL Server. Le générateur de requête MDX 15 interroge dynamiquement la base de 5 données multidimensionnelle pour restituer une nouvelle liste de critères de tri et des valeurs de tri disponibles pour ces critères de tri de manière à réaliser un nouveau tri tout en évitant d'avoir un résultat de tri nul. Le système comprend en outre un générateur de requêtes de type SQL 16 interrogeant la base de données catalogue pour afficher les produits 10 correspondant au résultat du tri. Pour mieux assister un utilisateur, ou internaute, dans son processus de choix d'un produit dans le catalogue électronique et pour améliorer son expérience dans la navigation dans le catalogue, le procédé selon l'invention utilise l'ensemble des informations relatives aux produits telles que la 15 marque, le prix, la taille, le code promo, la couleur, etc. Ces informations sont appelées les caractéristiques des produits. Dans la suite de la description nous appellerons filtre une valeur de tri pour un critère de tri. Nous allons maintenant décrire un exemple d'implémentation de 20 l'invention. Dans la suite de la description filtre correspond à une valeur de tri pour un critère de tri. Choix des critères de tri et des filtres Selon la présente invention, chaque catalogue donne lieu à une base 25 de données multidimensionnelle 11. Chaque famille de produit donne lieu à un Cube OLAP 111. Chaque critère de tri donne lieu à un axe d'analyse ou une dimension OLAP. Le résultat du tri est le nombre de produit correspondant à une valeur de tri d'un critère de tri. La base de données multidimensionnelle 11 contient donc l'ensemble des nombres de produits à 30 l'intersection de toutes les combinaisons possibles de toutes les valeurs de tous les critères de tri. La figure 2 donne une représentation schématique d'un cube OLAP 111. La dimension 21, 22, 23, correspondent chacune à un critère de choix tel que par exemple la couleur, la marque et le prix. Chaque dimension 21, - 9 22, 23, à un membre par défaut, respectivement 211, 221, 231, qui est le membre tout ou AIIProducts correspondant au nombre total des produits de la famille de produit associé à ce cube. Les dimensions 21-23 ont également d'autres membres correspondant à des valeurs de tri pour les critères de tri associés aux dimensions 21-23. Par exemple la dimension 21, qui correspond au critère Couleur , a deux autres membres : o le membre 212 est associé à la valeur de tri Rouge et o le membre 213 est associé à la valeur de tri Bleu D'une manière similaire les dimensions 22 et 23, associées respectivement au critères de tri Marque et Prix , ont des membres 222, 223 et 232, 233, 234 qui correspondent à des valeurs de tris pour les critères de tri prix et marque : - 222 : Sony, et 223 : Toshiba ; - 232 : Moins de 100 {, 233: de 100 à 200 {, et 234 : plus de 200{. Ainsi lorsqu'un premier tri est réalisé avec la combinaison suivante : o Marque = Sony ; o Couleur = Rouge ; et o Prix = moins de 100 { Le résultat du tri est donné par le contenu 24 du cube 111, c'est-à-dire 5. Il y a donc 5 produits satisfaisant les critères et Lorsqu'une autre valeur de tri pour un critère de tri est rajouté, par exemple Prix = Moins de 100 { et de 100 à 200 {, alors le résultat du tri est donné par la somme des contenus 24 et 25 du cube 111, c'est-à-dire 5+2=7. Il ya 7 produits qui satisfont l'ensemble des valeurs de tri sélectionnées pour les critères de tri. Les filtres proposés à l'internaute sont paramétrés dans l'outil Back Office 14. Le paramétrage des filtres peut être effectué selon plusieurs étapes qui sont les suivantes : Etape 1: Activation d'une caractéristique présente dans le catalogue ou base de données catalogue. Etape 2 : Choix du type de données : nvarchar, int, decimal, datetime ou bit. 2917518 - 10 - Etape 3 : Activation d'une caractéristique en critère de tri : l'administrateur décide de faire figurer la caractéristique dans les critères proposés à l'internaute : dans un tri en mode drilldown ou monocritère, ou 5 - dans un tri en mode expert ou multicritères Etape 4 : Paramétrage des plages de valeur si la caractéristique est numérique (decimal ou int) ou de type Datetime Etape 5 : Ordonnancement des critères de tris en mode drilldown et expert 10 Etape 6 : publication et génération des données. La figure 3 présente une fenêtre 31 récapitulant les caractéristiques pouvant être activées par l'administrateur en critère de tri. Chaque caractéristique est symbolisée par un cylindre. Pour chaque caractéristique, l'administrateur a la possibilité d'accéder au contenu du catalogue pour une 15 famille de produits et consulter les valeurs associées à cette caractéristique ainsi que le nombre d'occurrence de chaque valeur. Ces valeurs sont présentées dans un tableau 32, permettent de faciliter le travail de l'administrateur dans le choix des filtres associés à cette caractéristique. Ensuite, à l'aide d'une fenêtre 41, représentée en figure 4, 20 l'administrateur active la caractéristique, change son libellé, et indique si celle-ci sera visible dans les différents contextes : la fiche produit, le tableau de comparaison, la liste des résultats d'une recherche, dans un tri en 25 autocompletion, c'est-à-dire dans un mode où l'internaute peut réaliser une recherche textuelle assistée. Par exemple, sous la forme d'une simple zone de texte, l'internaute est invité à rechercher un produit. Au fur et à mesure de sa frappe, les réponses pertinentes lui sont présentées. 30 -en critère de tri simple en mode drilldown , et en critère de tri avancé en mode expert. L'administrateur effectue également le typage, à l'aide d'une fenêtre 42 toujours représentée en figure 4. S'il s'agit d'un critère numérique, l'utilisateur peut également préciser les plages de valeurs à présenter aux - 11 - internautes lors des opérations de tri. Dans le cas de l'exemple présenté en figure 4, les valeurs et plages de valeurs précisées dans la fenêtre 42 génèrent les filtres indiqués dans la fenêtre 43. L'ordre d'apparition des critères de tri peut également être administré dans l'outil Back Office 14. Pour remplir la base de données multidimensionnelle 11, la base de données intermédiaire 12 est générée à partir de la base de données catalogue 13. Cette base de données intermédiaire 12 est en fait la source de données pour la base de données multidimensionnelle 11. Création de la base Intermédiaire 12 Dans la base de données intermédiaire 12, plusieurs modes de présentation des filtres sont possibles. Les valeurs présentées peuvent être de la forme suivante : - Inférieur à XXX -Entre X et Y - Supérieur à YYY - EgalàZ Des mots clés sont utilisés afin de représenter ces opérateurs : - Inf - Between - Sup - Equal Le stockage des valeurs dans la base données intermédiaire 12 est fait sous 25 cette forme avec comme séparateur le caractère pipe : Opérateurlvallival2 Exemple : EqualiSonyl Between 11001150 30 Au moment de la publication d'une famille (après configuration), ce modèle de données est régénéré afin de prendre en compte les dernières valeurs pour chaque critère et pour chaque produit, d'intégrer les nouvelles caractéristiques de tri, d'adapter les plages de valeurs présentées. Dans 2917518 - 12 - l'exemple présent, la base de données intermédiaire 12 est construite selon un schéma mono table par famille contenant : - l'identifiant du produit - une colonne par caractéristique paramétrée en critère de filtre. 5 La base de données intermédiaire 12 peut également être construite selon un schéma en étoile pour de meilleures performances lors de l'alimentation de la base de données multidimensionnelle 11, c'est-à-dire, une table par caractéristique. Mais les impératifs de performance se situent au moment des requêtes lors des tris réalisés par les utilisateurs et non lors 10 de l'alimentation de la base de données multidimensionnelle 11. Lors de la publication des données, une procédure [C_CreateFamiCubeTable] est invoquée pour chaque famille de produits. Cette procédure réalise : - la création d'une table avec l'ensemble des champs pour chaque 15 famille de produits, et - l'alimentation de la base de données intermédiaire 12 à partir de la base de données catalogue 13. La création de la table se fait en fonction de l'ensemble des caractéristiques susceptibles d'être employées en critère de filtre (mode 20 drilldown ou expert). Les colonnes correspondant à l'ensemble des caractéristiques sélectionnées en critère de tri par l'administrateur sont créées pour chaque famille de produit de la base de données intermédiaire 12. A l'exception de l'identifiant produit, tous les champs sont typés chaine de caractères . Le modèle d'une table par famille de produit est donc le suivant : ProdId : identifiant produit ProdK[Identifiant de caractéristique] : valeur calculée du produit pour la caractéristique. ProdKXXX.... Chaque table a un identifiant construit de la manière suivante : X[identifiant de famille]. L'alimentation de la table intermédiaire est réalisée en faisant appel à un code en Assembly.NET (code binaire compilé) écrit en C# ù 13 ù CaraPlagBuilder référencé dans le moteur SQL Server comme fonction GetPlag : CREATE FUNCTION [dbo] [GetPlag](@CaraValue [nvarchar]250, @CaraPlag [int], @CaraMiniPlag [nvarchar](1000) , @CaraType [nvarchar](50)) RETURNS [nvarchar](1000) WITH EXECUTE AS CALLER AS EXTERNAL NAME [CaraPlagBuilder].[CaraPlagBuilder.PlagBuilder][GetPlag] Ceci garanti des performances optimales pour les traitements et calculs effectués. Les paramètres sont les suivants : @CaraValue : Valeur en cours pour la caractéristique pour le produit @CaraPlag : nombre de plages de valeur souhaitées (optionnel) @CaraMiniPlag : bornes des plages de valeur @CaraType : type de données paramétré Pour garantir l'internationalisation d'un moteur tri mettant en ouvre le système selon l'invention, et pour assurer l'indépendance de la langue, les valeurs sont d'abord nettoyées de tous les caractères spéciaux possibles. Ainsi les caractères suivants : ÀÂÂÂÂÂàââââ'âââââQàôôôôrÈÉÊËèéêëiiÎÏiiîiëliêÜùûûü9WiÇç sont respectivement remplacés par ceux-ci : AAAAAAaaaaaa000000000000EEEEeeeeIIIIiiiiUUUUuuuuyNnCc Si la valeur de la caractéristique est à chaîne vide ou NULL ou 0, la valeur renvoyée sera equalj J . Si il n'y a pas de plages définies, la valeur renvoyée sera equal l valeur' . Si des plages ont été précisées en paramètre, les différentes plages précisées sont parcourues pour trouver à laquelle appartient le produit. Si le produit est en dessous de la première valeur de plage, la valeur renvoyée sera inflgère valeur) . Si le produit est au dessus de la dernière valeur de plage, la valeur renvoyée sera supldernière valeur' . Si le produit est situé entre 2 bornes, la valeur renvoyée sera between l bornel l borne2 . Chaque produit n'appartient qu'à 1 seul membre de dimension et donc n'est situé que dans une seule plage de valeurs de caractéristique. L'appel en masse de cette fonction permet donc d'alimenter la table source, dans la base de données intermédiaire, à partir de laquelle les cubes OLAP de la base de données multidimensionnelle seront alimentés. Le tableau ci-dessous donne un 2917518 - 14 - exemple de table source dans la base de données intermédiaire 12 pour la famille de produits caméscope . 5 A partir des données générées, la base de données multidimensionnelle 11 peut être alimentée. Chaque famille de produit ayant ses propres caractéristiques paramétrées en critère de filtre, un cube 111 indépendant par famille est nécessaire. Un module nommé CCubeGenerator permet de construire la structure de chaque cube 111. 10 Celui-ci est appelé à chaque publication de famille afin de rafraîchir : la liste des caractéristiques paramétrées en critère de tri, donc la liste des dimensions du cube correspondant ; equallAdaptateur secteur equal13" DVD-RAM, DVD-R + chargeur de batterie -3", 3" DVD-RW I externe I equallAdaptateur secteur - externel 92540between I6I8 equal I Mini DVI equallAdaptateur secteur - externe I equal I DVD-R 3", 3" DVD-92502 infl3l RW, 3" DVD+RW, 3" supl8l equallDigital8l equallAdaptateur secteur - externe l equal I DVD-R 3", 3" DVD-betweenl3l4 RW, 3" DVD+RW, 3" equall DVD+R DLI equal I DVD-R 3", 3" DVD-equallAdaptateur secteur - externe I equallAdaptateur secteur + chargeur de batterie - externe' equall3" DVD-RAM, DVD-R 92522 between 1416 3", 3" DVD-RW 2917518 - 15 - - les valeurs présentées (les plages ou valeurs brutes) pour chaque produit, donc l'appartenance de chaque produit aux membres de chaque dimension ; - les nombres de produits situés à l'intersection de chaque membre de 5 chaque dimension et leurs agrégats. Le modèle d'objets Microsoft.AnalysisServices permet d'accéder programatiquement à la structure des bases multidimensionnelles SQL Server et donc de créer ou de modifier des bases de manière automatisée. Ainsi les différentes étapes réalisées à ce stade sont les suivantes : 10 Etape 1 Création de la base multidimensionnelle 11 : Si la base multidimensionnelle pour le catalogue n'existe pas, elle est créée. Etape 2 : Suppression d'un cube 111 Si la famille en cours a déjà un cube 111, suppression de celui-ci. 15 Etape 3 Création de la source de données Rafraîchissement de la liste des tables disponibles dans la base intermédiaire pour intégration dans le cube 111. Ajout de la table X[identifiant de famille] au diagramme de données. Etape 4 Création des nouvelles dimensions [All Products] 1. Définition du membre par défaut, de la structure et du mode de stockage : dim.Type = DimensionType.Regular; dim.AttributeAllMemberName = "AII Products". Le membre par défaut correspond à l'ensemble des produits pour un critère de tri. 2. Création de l'attribut racine basé sur l'identifiant : 3. Récupération de la liste des caractéristiques en critère de tri. Pour chacun des critères, création d'une dimension dont les membres seront les valeurs distinctes possibles. Connexion sur le champ Source dans la base de données intermédiaire. 4. Création de la hiérarchie de dimension par défaut basée sur l'attribut Prodld . Etape 5 : Création/ Modification d'un cube 111 20 25 30 2917518 - 16 - Ajout de la Mesure COUNT qui correspond au nombre de produits satisfaisant les critères de filtres de l'internaute. Sauvegarde de la nouvelle configuration du Cube 111. Etape 6 : Rafraîchissement des données 5 C'est une étape de mise à jour incrémentielle ou totale de la base multidimensionnelle 11. La figure 5 est un exemple d'une configuration d'une base de données multidimensionnelle 11 obtenue avec un explorateur de base de données. 10 La problématique essentielle ici est la performance, à cause : - du nombre de requêtes à effectuer afin d'obtenir en permanence le nombre de produits correspondant à chaque valeur de critère - du nombre d'internautes potentiellement présent en même temps 15 - des technologies Internet elles-mêmes : un protocole simple et sans état (http), la multitudes des navigateurs clients (Firefox, Internet Explorer, Opéra..) et leurs versions, les systèmes d'exploitation (Linux, Windows...) et les technologies de développement client embarquées (javascript) 20 Etant donné que le nombre de critères est supérieur à 5 et peut atteindre 25 voire 30 critères, une solution de précalcul / cache client et/ou serveur serait fastidieuse, très complexe et particulièrement lourde à mettre en oeuvre. Le système selon l'invention qui vient d'être décrit présente les 25 avantages suivants : - Rapidité de calcul, - Aggrégats et composition facilités, - Montée en charge assurée, - Facilité d'utilisation 30 La base de données multidimensionnelle 11 est une base de données réalisée avec des modules OLAP Analysis Services du moteur SQL Server 2005 de Microsoft. Nous allons maintenant décrire en référence aux figures 6 et 7 deux exemples de tri réalisés avec le système selon l'invention. La figures 2917518 - 17 - présente trois fenêtres d'affichage, 61-63, présentant les différentes étapes d'un exemple de tri en mode drilldown ou monocritère. L'exemple de tri porte sur les micro-ondes . La fenêtre 61 correspond au point de départ du tri. Quatre premiers critères de tri sont proposés : la marque, le prix, le type 5 et le volume. Les filtres, ou valeur de tri, proposés pour ces critères de tri sont indiqués ci-dessous pour chaque critère de tri : - Marque :Ariston, Moulinex, Panasonic et Russell Hobbs ; Prix : moins de 100 Euros, de 10 à 200 euros, 200 à 300 Euros et de 300 à 400 Euros ; 10 - Type : Micro-ondes et Gril, Microondes chaleur tournante et convection, Micro-ondes chaleur tournante et Convection, Micro-ondes ; et - Volume : 10 à 20 litres, 20 à 30 litres, 30 à 40 litres, et plus de 40 litres ; et 15 Pour chaque filtre, le nombre de produit correspondant est affiché entre parenthèses à coté de ce filtre. Le nombre total de micro-ondes est affiché en haut à gauche de la fenêtre 61. L'internaute clic sur le filtre de 20 à 30 litres . Le nombre total de micro-onde satisfaisant le filtre Volume de 20 à 30 litres est affiché 20 automatiquement en haut à gauche de la fenêtre 62 ainsi que le filtre Volume de 20 à 30 litres . Un nouveau critère de tri, ou critère de filtre est alors proposé sur la fenêtre 62 : la puissance . Toutes les combinaisons de filtres possibles sont alors recalculées et ainsi que le nombre de produits correspondant à ces combinaisons. Seul les filtres 25 disponibles, c'est-à-dire, aboutissant à un résultat non nul sont affichés avec le nombre de micro-ondes correspondant à ces combinaisons. Les filtres disponibles pour le critère de tri Puissance et le nombre de micro-ondes satisfaisant ces filtres sont : - de 500 à 1000 watts (11), et 30 - de 1000 à 1500 watts (1). L'internaute clique sur le filtre de 100 à 200 { . Les combinaisons sont recalculées et affichées sur la fenêtre 63. La combinaison de filtres choisis par l'internaute, à savoir Volume de 100 à 200 et Prix de 100 à 200 { ainsi que le nombre de micro-ondes satisfaisant cette combinaison 2917518 - 18 - de filtres sont affichés en haut à gauche de la fenêtre 63. Remarquons que la marque Ariston n'est plus proposée. Cela vient du fait qu'aucun micro-onde de marque Ariston ne correspond à la combinaison de filtres Volume de 100 à 200 et Prix de 100 à 200 { . Par ailleurs un nouveau critère 5 apparaît : chaleur tournante . De plus, un nouveau filtre pour le critère Marque apparaît : Samsung .Et ainsi de suite. Dans l'exemple qui vient d'être décrit, les critères de tri ainsi que les filtres pour ces critères de tri sont présentés en mode drilldown , c'est-à-dire sous forme d'une arborescence mise à jour avec rechargement de la 10 fenêtre d'affichage. Dans ce mode drilldown un seul filtre peut être sélectionné à chaque étape du tri. Nous allons maintenant décrire un deuxième exemple en référence à la figure 7, qui présente trois fenêtres d'affichage, 71-73 de trois étapes d'un tri en mode expert ou multicritères portant sur une catégorie de 15 produits correspondant aux baladeurs mp3. Dans ce deuxième exemple, l'internaute peut sélectionner plusieurs filtres à la fois. Pour chacun des critères de tri, les filtres sont présentés dans un menu déroulant que l'internaute peut contrôler. Quel que soit le critère, l'invention permet d'afficher les différents filtres disponibles ainsi que le nombre de produits 20 correspondant à chaque filtre. Le nombre total de produits satisfaisant la combinaison de filtre sélectionnés est également calculé et affiché instantanément en haut à gauche des fenêtres 71 à 73. Sur la fenêtre 71, l'utilisateur sélectionne le filtre Indifférent , le nombre total de baladeurs mp3 satisfaisant ce filtre est affiché en temps réel : 56. Sur la fenêtre 72, 25 l'internaute a diminué le menu déroulant correspondant au critère marque et a déroulé le menu déroulant correspondant au critère Prix . Le nombre de baladeurs mp3 satisfaisant chacun des filtres pour le critère prix est calculé et affiché entre parenthèses. L'internaute sélectionne les filtres 50 à 100{ et de 100 à 150{ . Le nombre total de baladeurs 30 mp3 correspondant s'affiche en temps réel. L'internaute a la possibilité de revenir directement sur un des filtres qu'il a sélectionnés lors des différentes étapes du tri sans forcément respecter l'ordre des étapes. Sur la fenêtre d'affichage 73, l'internaute a désélectionné le filtre de prix de 50 à 100{ . Il a réduit le menu déroulant correspondant au critère prix , et a de 2917518 - 19 - nouveau déroulé le menu déroulant correspondant au critère marque . Remarquons que le filtre prix de 100 à 150{ est affiché au niveau du critère prix . Dans ce mode expert l'internaute peut donc effectuer une recherche rapide, tout en restant assuré qu'au moins un produit 5 correspond à la combinaison de filtres qu'il a sélectionnés. Il peut facilement revenir sur certains des critères de filtres très facilement, de manière rapide, simplement en les désélectionnant, et sans avoir à reconstruire la combinaison de filtres depuis le début. Il dispose d'un bouton 74 Afficher les résultats lui permettant d'afficher les baladeurs mp3 satisfaisant la 10 combinaison de filtres qu'il a sélectionnés. Les exemples présentés ci-dessus permettent de constater que l'invention permet de : - faciliter le processus de tri et de choix d'un produit en offrant un nombre de critères élevé s'adressant aussi bien aux spécialistes 15 qu'aux internautes novices, - afficher en permanence et de manière totalement dynamique le nombre de produits restant suite aux filtres appliqués par l'utilisateur. - assurer la disponibilité d'au moins un produit quels que soient les valeurs de tri des critères de tri choisies par l'internaute. 20 - réaliser des tris dans des temps de réponses très bons, par exemple moins d'une seconde, en toutes circonstances et malgré le nombre d'informations à traiter. L'invention n'est pas limitée aux exemples qui viennent d'être décrit 25 et peut s'appliquer au tri de toutes entités pouvant être regroupées en au moins une catégorie ou famille selon les informations relatives à ces entités. REVENDICATIONS 1. Procédé de tri d'informations portant sur une pluralité d'entités, selon au moins une valeur de tri associée à au moins un critère de tri : ledit critère de tri étant sélectionné parmi une pluralité de critères de tri portant chacun sur une caractéristique desdites entités, et ayant une ou plusieurs valeurs de critère de tri, et - ladite valeur de tri étant sélectionnée parmi une ou plusieurs valeurs de tri dudit critère de tri ; caractérisé en ce que chaque critère de tri est associé à une dimension d'une base de données multidimensionnelle (11), ladite base étant construite à partir de données relatives auxdites entités, chacune des valeurs de tri d'un critère de tri étant associée à un membre de la dimension associée audit critère de tri, et le résultat dudit tri est déterminé en fonction du contenu de la base de données multidimensionnelle (11) ayant pour coordonnées le membre associé à la valeur de tri sur la dimension correspondant audit critère de tri. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend pour un tri précédent réalisé selon au moins une valeur de tri précédente, une détermination d'au moins une valeur de tri, dite disponible, pour au moins un autre critère de tri, pouvant être combinée à ladite valeur de tri précédente, pour réaliser un nouveau tri donnant un résultat non nul. 3. Procédé selon la revendication 2, caractérisé en ce qu'il comprend en outre un affichage du résultat d'un nouveau tri pour au moins une valeur de tri disponible. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le résultat d'un tri, effectué pour plusieurs valeurs de tri sélectionnées pour un ou plusieurs critères de tris, est déterminé en fonction du contenu de la base multidimensionnelle (11) dont les 2917518 - 21 - coordonnées sont les membres associés à chacune desdites valeurs de tri sur toutes les dimensions associé à chacun desdits critères de tri. 5. Procédé selon l'une quelconque des revendications précédentes, 5 caractérisé en ce que le résultat du tri comprend le nombre d'entités satisfaisant aux valeurs de tri pour les critères de tris. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la base de données multidimensionnelle (11) est 10 accédée par une requête de type Multi Dimensional eXpression (MDX) relative à la combinaison de valeurs de critères de tris sélectionnées. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la base de données multidimensionnelle (11) est 15 construite à partir d'une base de données (12), dite intermédiaire, comprenant pour chaque entité un identifiant et une valeur de tri pour chaque critère de tri. 8. Procédé selon la revendication 7, caractérisé en ce que la base de 20 données intermédiaire (12) est construite à partir d'une base de données (13), dite catalogue, à l'aide de requêtes de type SQL comprenant pour chaque produit son identifiant et la valeur de tri correspondant à tous les critères de tri. 25 9. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre un affichage dans une fenêtre d'affichage (51-53, 61-63) du résultat du tri. 10. Procédé selon l'une quelconque des revendications précédentes, 30 caractérisé en ce qu'il comprend en outre un affichage dans une fenêtre d'affichage des entités satisfaisant les valeurs de tri sélectionnées des critères de tri. 2917518 - 22 - 11. Procédé selon l'une quelconque des revendications, caractérisé en ce qu'il comprend en outre une modification, par un administrateur d'au moins un critère de tri ou d'au moins une valeur de tri d'un critère de tri. 5 12. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comprend en outre une mise à jour de la base multidimensionnelle (11) à une fréquence prédéterminée et/ou commandée par un administrateur. 10 13. Utilisation du procédé selon l'une quelconque des revendications précédentes pour le tri de produits, dans un catalogue électronique, proposés à la vente sur un site Internet 14. Système mettant en ouvre le procédé selon l'une quelconque des 15 revendications précédentes.