FR 3015073 A1 20150619 FR 1362933 A 20131218 PROCEDE ET DISPOSITIF DE RECOMMANDATION AUTOMATIQUE D'OBJETS COMPLEXES DOMAINE TECHNIQUE DE L'INVENTION Le domaine technique de l'invention est celui des systèmes de recommandation de produits à des utilisateurs, et en particulier à des internautes. La présente invention concerne un procédé et un dispositif de recommandation automatique d'objets complexes. Dans le présent document, on entend par « objet complexe » ou « produit complexe » un objet ou un produit qui dispose d'une description textuelle, potentiellement riche d'informations, mais non formalisée et non normalisée. ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTION II existe différents systèmes de recommandation. Un premier type de systèmes de recommandation concerne un assistant de shopping qui apprend à connaître les préférences d'un utilisateur. Lorsqu'un utilisateur sollicite pour la première fois l'assistant de shopping, un questionnaire lui est soumis afin de déterminer une première orientation de ses préférences. Par la suite, à chaque fois que l'utilisateur choisit un produit, ou indique apprécier un produit, l'assistant de shopping continue d'apprendre les préférences de l'utilisateur. Il s'agit d'une sorte de système d'entonnoir, qui utilise des techniques d'apprentissage par le renforcement. Ce premier type de systèmes de recommandation n'exploite pas une description textuelle des produits. Un deuxième type de systèmes de recommandation concerne cette fois une plateforme d'achat sociale fonctionnant comme un agrégateur de catalogues marchands communautaire. Cette plateforme d'achat sociale met l'accent sur les aspects sociaux plutôt que sur la compréhension des préférences d'un utilisateur. Ainsi, aucun traitement n'est réalisé sur les descriptions et les informations disponibles à propos des produits pour déterminer des préférences des utilisateurs. Un troisième type de systèmes de recommandation concerne un assistant de shopping de produits techniques et non complexes, qui met un ensemble de filtres à la disposition de ses utilisateurs, afin que lesdits utilisateurs puissent personnaliser leurs besoins. Lesdits produits techniques et non complexes sont préalablement analysés et normalisés manuellement. On entend par « produit technique non complexe », ou « produit technique », un produit disposant d'une fiche technique normalisée. Il s'agit par exemple d'un appareil-photo, d'un téléphone, d'un lave-vaisselle, etc. Par exemple, une fiche technique d'un appareil-photo comprend généralement des informations sur le poids, les dimensions, le nombre de pixels et la taille de l'écran dudit appareil-photo. Les systèmes de recommandation actuels n'utilisent donc typiquement que des informations techniques, telles que fournies par des fabricants, et sans réaliser de traitement spécifique sur ces informations techniques. Généralement, seuls le prix et le code-barres sont ainsi utilisés afin de comparer plusieurs offres. Certains sites de vente procèdent, manuellement, à un ajout d'informations supplémentaires, aussi appelées « tag », sur leurs produits. Il n'existe toutefois actuellement aucun système de recommandation d'objets complexes automatisé. RESUME DE L'INVENTION L'invention offre une solution aux problèmes évoqués précédemment, en proposant un procédé de recommandation automatique d'objets complexes permettant de générer automatiquement et de manière précise et rapide, une recommandation personnalisée en fonction d'un besoin exprimé par un utilisateur. Un aspect de l'invention concerne donc un procédé de recommandation automatique d'objets complexes d'un domaine prédéfini à un utilisateur par un moteur de recommandation, le procédé comportant : - une étape selon laquelle l'utilisateur exprime un besoin sous la forme d'une saisie sur une interface ; - une étape selon laquelle le moteur de recommandation calcule, en fonction du besoin exprimé par l'utilisateur, une recommandation ; - une étape selon laquelle un afficheur affiche la recommandation calculée par le moteur de recommandation ; le moteur de recommandation utilisant, pour le calcul de la recommandation, un catalogue normalisé, le catalogue normalisé étant obtenu par : - une étape de réalisation d'un catalogue brut d'objets complexes d'un domaine prédéfini, chaque objet complexe présentant une description textuelle ; - une étape d'identification et de suppression d'éventuels doublons parmi les objets complexes du catalogue brut, pour l'obtention d'un catalogue affiné ; - une étape de réalisation d'une modélisation, dite « ontologie catalogue », du domaine prédéfini, l'ontologie catalogue comportant une hiérarchie de premières caractéristiques ; - une étape d'annotation, selon laquelle on recherche au moins une manifestation de chaque première caractéristique de l'ontologie catalogue dans la description textuelle de chaque objet complexe du catalogue affiné et on annote chaque objet complexe du catalogue affiné avec chaque première caractéristique de l'ontologie catalogue dont au moins une manifestation a été trouvée dans la description textuelle dudit objet complexe, pour l'obtention d'un catalogue formalisé ; - une étape de réalisation d'une modélisation, dite « ontologie utilisateur », des critères de choix d'un objet complexe du domaine prédéfini, l'ontologie utilisateur comportant une hiérarchie de deuxièmes caractéristiques ; - une étape d'alignement de l'ontologie utilisateur avec l'ontologie catalogue, selon laquelle on associe à chaque deuxième caractéristique de l'ontologie utilisateur au moins une première caractéristique de l'ontologie catalogue, avec une valeur normalisée qualifiant le degré de correspondance de ladite première caractéristique à ladite deuxième caractéristique, pour l'obtention du catalogue normalisé. Grâce à l'invention, on permet la génération automatique, précise et rapide d'une 30 recommandation personnalisée d'un objet complexe d'un domaine prédéfini en fonction d'un besoin exprimé par un utilisateur dans ledit domaine prédéfini d'objets complexes. Pour ce faire, le besoin exprimé par l'utilisateur est mis en forme au moyen de l'ontologie utilisateur. Le besoin exprimé par l'utilisateur comporte donc une ou plusieurs deuxièmes caractéristiques de l'ontologie utilisateur. Le moteur de recommandation associe, en utilisant le catalogue normalisé, chaque deuxième caractéristique de l'ontologie utilisateur que comporte le besoin exprimé par l'utilisateur avec une ou plusieurs premières caractéristiques de l'ontologie catalogue. Le moteur de recommandation attribue, en s'appuyant sur le catalogue normalisé, une valeur normalisée à chaque association, ou mise en correspondance, d'une première caractéristique de l'ontologie catalogue avec une deuxième caractéristique de l'ontologie utilisateur, afin de quantifier le degré de correspondance de ladite première caractéristique à ladite deuxième caractéristique. Le moteur de recommandation génère alors, en fonction des correspondances fines et pondérées établies entre la ou les deuxièmes caractéristiques de l'ontologie utilisateur initialement extraites du besoin exprimé par l'utilisateur, et la ou les premières caractéristiques de l'ontologie catalogue, une recommandation personnalisée comportant un ou plusieurs objets complexes du catalogue normalisé, éventuellement hiérarchisés. Dans l'étape d'annotation, on entend par « manifestation » un terme, un mot ou une expression. Une manifestation d'une première caractéristique est ainsi un terme, un mot ou une expression spécifique de ladite première caractéristique. Dans la présente description, on entend par « objet complexe » un objet disposant d'une description textuelle, potentiellement riche d'informations, mais non formalisée et non normalisée. Par opposition, on entend dans la présente description par « objet technique » un objet disposant d'une fiche technique formalisée. On emploie indifféremment, dans la présente description, les expressions « une caractéristique » d'une ontologie et « un concept » d'une ontologie. Outre les caractéristiques qui viennent d'être évoquées dans le paragraphe précédent, le procédé selon l'invention peut présenter une ou plusieurs 30 caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : - Le catalogue brut d'objets complexes du domaine prédéfini est obtenu en compilant une pluralité de catalogues d'objets complexes du domaine prédéfini. - Chaque première caractéristique de l'ontologie catalogue comporte une définition et un ou plusieurs exemples. - Un ensemble de signes linguistiques simples est associé à chaque première caractéristique de l'ontologie catalogue, chaque signe linguistique simple étant une manifestation linguistique pouvant être utilisée pour désigner ou évoquer ladite première caractéristique. Une manifestation linguistique désigne un terme, un mot ou une expression. - Un ensemble de signes linguistiques complexes est associé à chaque première caractéristique de l'ontologie catalogue, chaque signe linguistique complexe permettant de contribuer à différencier plusieurs premières caractéristiques de l'ontologie catalogue. - L'étape d'annotation de chaque objet complexe du catalogue affiné avec au moins une première caractéristique de l'ontologie catalogue comporte avantageusement les sous-étapes suivantes : o une première sous-étape d'annotation de chaque objet complexe du catalogue affiné avec une ou plusieurs annotations candidates, en fonction de correspondances détectées entre au moins un élément textuel de la description textuelle dudit objet complexe et une ou plusieurs premières caractéristiques de l'ontologie catalogue ; o une deuxième sous-étape de détection d'incohérences dans les annotations candidates précédemment établies pour ne conserver que des annotations cohérentes. - La deuxième sous-étape de détection d'incohérences utilise avantageusement une pluralité de règles d'incompatibilité, chaque règle d'incompatibilité définissant : o une contrainte d'incompatibilité entre un premier type d'annotation et un deuxième type d'annotation, o ainsi qu'une priorité, du premier type d'annotation sur le deuxième type d'annotation, ou du deuxième type d'annotation sur le premier type d'annotation, afin de pouvoir choisir le cas échéant l'annotation à conserver et l'annotation à supprimer. - L'étape d'annotation comporte avantageusement une troisième sous-étape de complétion des annotations cohérentes avec des annotations affiliées. - La troisième sous-étape de complétion utilise avantageusement une pluralité de règles d'implication, chaque règle d'implication permettant de tester l'existence d'un premier type d'annotation pour un objet complexe et, le cas échéant, d'annoter ledit objet complexe avec un deuxième type d'annotation complémentaire du premier type d'annotation. - L'étape d'alignement de l'ontologie utilisateur avec l'ontologie catalogue est réalisée manuellement. - Le domaine prédéfini est celui des jeux et des jouets et les objets complexes sont des jeux ou des jouets. Un autre aspect de l'invention concerne un système de recommandation automatique d'objets complexes à un utilisateur comportant : - un premier module de génération d'un catalogue brut d'objets complexes du domaine prédéfini, chaque objet complexe présentant une description textuelle ; - un deuxième module de nettoyage, acceptant en entrée ledit catalogue brut et renvoyant en sortie un catalogue affiné, le deuxième module comportant des moyens pour identifier et supprimer d'éventuels doublons parmi les objets complexes du catalogue brut ; - un troisième module de génération d'une formalisation, dite « ontologie catalogue », du domaine prédéfini, l'ontologie catalogue comportant une hiérarchie de premières caractéristiques ; - un quatrième module de formalisation, acceptant en entrée le catalogue affiné et l'ontologie catalogue et renvoyant en sortie un catalogue formalisé, le quatrième module comportant des moyens pour annoter chaque objet complexe du catalogue affiné avec au moins une première caractéristique de l'ontologie catalogue ; un cinquième module de génération d'une formalisation, dite « ontologie utilisateur », des critères de choix d'un objet complexe du domaine prédéfini, l'ontologie utilisateur comportant une hiérarchie de deuxièmes caractéristiques ; un sixième module de normalisation, acceptant en entrée le catalogue formalisé et l'ontologie utilisateur et renvoyant en sortie un catalogue normalisé, le sixième module comportant des moyens pour associer à chaque deuxième caractéristique de l'ontologie utilisateur au moins une première caractéristique de l'ontologie catalogue, avec une valeur normalisée quantifiant le degré de correspondance de ladite première caractéristique à ladite deuxième caractéristique ; un moteur de recommandation acceptant en entrée le catalogue normalisé et une expression d'un besoin de l'utilisateur dans le domaine prédéfini d'objets complexes, ladite expression comprenant au moins une deuxième caractéristique de la hiérarchie de deuxièmes caractéristiques de l'ontologie utilisateur, et renvoyant en sortie une recommandation en fonction de ladite expression et du catalogue normalisé ; une interface permettant à l'utilisateur de saisir l'expression de son besoin dans le domaine prédéfini d'objets complexes ; un afficheur permettant d'afficher la recommandation renvoyée par le moteur de recommandation. Les troisième et cinquième modules utilisent avantageusement un éditeur d'ontologie. Selon un mode particulier de réalisation de l'invention, le cinquième module est identique au troisième module. Un autre aspect de l'invention concerne un produit programme d'ordinateur qui, 30 lorsqu'il est chargé sur un ordinateur, comporte des moyens pour mettre en oeuvre les étapes du procédé de recommandation automatique d'objets complexes selon un aspect de l'invention. L'invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. BREVE DESCRIPTION DES FIGURES Les figures sont présentées à titre indicatif et nullement limitatif de l'invention. - La figure 1 a montre une représentation schématique d'un système de recommandation automatique d'objets complexes d'un domaine prédéfini à un utilisateur selon un mode de réalisation de l'invention. - La figure 1 b montre une représentation schématique de l'organisation des étapes d'un procédé de recommandation automatique d'objets complexes d'un domaine prédéfini à un utilisateur selon un mode de réalisation de l'invention. - Les figures 2a à 2d illustrent respectivement différentes étapes du procédé de la figure 1 b. - La figure 3a illustre schématiquement une première ontologie du domaine des véhicules. - La figure 3b illustre schématiquement un exemple d'alignement entre la première ontologie de la figure 3a, et une deuxième ontologie. - La figure 4 montre un exemple d'un premier concept d'une ontologie catalogue comportant une définition, des premier et deuxième exemples, et des premier, deuxième, troisième et quatrième signes complexes. - La figure 5 illustre un exemple d'application de trois phases d'une étape d'annotation. - La figure 6 illustre un exemple de représentation vectorielle de quatre objets complexes. DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. La figure 1 a montre une représentation schématique d'un système S de recommandation automatique d'objets complexes d'un domaine prédéfini à un utilisateur U selon un mode de réalisation de l'invention. La figure lb montre une représentation schématique de l'organisation des étapes d'un procédé 100 de recommandation automatique d'objets complexes d'un domaine prédéfini à l'utilisateur U selon un mode de réalisation de l'invention. Les figures la et lb sont décrites conjointement. Dans la présente description, on entend par « objet complexe » un objet disposant d'une description textuelle, potentiellement riche d'informations, mais non formalisée et non normalisée. Par opposition, on entend dans la présente description par « objet technique » un objet disposant d'une fiche technique formalisée. L'utilisateur U exprime, selon une étape 101 du procédé 100, un besoin sous la forme d'une saisie sur une interface Int. L'expression du besoin de l'utilisateur U est transmise à un moteur de recommandation MR. Selon une étape 102 du procédé 100, le moteur de recommandation MR calcule, en fonction du besoin exprimé par l'utilisateur U et en utilisant un catalogue normalisé C_Nrm, une recommandation. La recommandation calculée par le moteur de recommandation MR est transmise à un afficheur D et l'afficheur D affiche, selon une étape 103 du procédé 100, ladite recommandation. L'utilisateur U est alors en mesure de prendre connaissance de la recommandation, automatiquement calculée par le moteur de recommandation MR en réponse au besoin initialement exprimé par l'utilisateur. Le catalogue normalisé C_Nrm est avantageusement obtenu grâce à des étapes 201 à 206 que l'on décrit à présent. Selon l'étape 201, on génère avec un premier module modl un catalogue brut C_b d'objets complexes du domaine prédéfini, chaque objet complexe présentant une description textuelle. Le premier module modl est par exemple un module de compilation d'une pluralité de catalogues d'objets complexes du domaine prédéfini. Selon l'étape 202, on génère avec un deuxième module mod2 un catalogue affiné C_n. Le deuxième module mod2 est un module de nettoyage, qui accepte en entrée le catalogue brut C_b et renvoie en sortie le catalogue affiné C_n. Selon l'étape 203, on génère avec un troisième module mod3 une ontologie catalogue Onto_C. Selon l'étape 204, on génère avec un quatrième module mod4 un catalogue formalisé C_Frm. Le quatrième module mod4 est un module de formalisation, qui accepte en entrée le catalogue affiné C_n et l'ontologie catalogue Onto_C et renvoie en sortie un catalogue formalisé C_Frm. Selon l'étape 205, on génère avec un cinquième module mod5 une ontologie utilisateur Onto_U. Dans le mode particulier de réalisation ici décrit, le cinquième module mod5 est identique au troisième module mod3. Selon l'étape 206, on génère avec un sixième module mod6 le catalogue normalisé C_Nrm. Le sixième module mod6 est un module de normalisation, qui accepte en entrée le catalogue formalisé C_Frm et l'ontologie utilisateur Onto_U et renvoie en sortie le catalogue normalisé C_Nrm. La figure 2a illustre de manière détaillée l'étape 201 de l'obtention du catalogue normalisé C_Nrm selon un mode de réalisation de l'invention. Selon l'étape 201, on réalise un catalogue brut C_b d'objets complexes du domaine prédéfini, chaque objet complexe présentant une description textuelle. Pour ce faire, différents catalogues d'objets complexes d'un domaine prédéfini, provenant par exemple de différents fabricants ou sites marchands, peuvent être compilés. Dans la présente description, le domaine choisi - également appelé « monde » ou « univers » - est celui des jeux et jouets. D'autres domaines d'objets complexes possibles sont par exemple : le domaine des voyages, le domaine des cadeaux, le domaine des activités sportives, artistiques, culturelles, etc. Les différents catalogues peuvent avoir le même format, ou des formats différents. Les formats xml, csv ou txt sont des exemples de formats possibles. Le code-barres de chaque produit pourra être renseigné, ou non, dans les différents catalogues. Dans l'exemple illustré à la figure 2a, on compile ainsi un premier catalogue Cl et un deuxième catalogue C2. Le premier catalogue Cl référence un premier objet complexe obj1 et un deuxième objet complexe obj2, tandis que le deuxième catalogue C2 référence un troisième objet complexe obj3 et un quatrième objet complexe obj4. A l'issue de l'étape 201, on obtient un catalogue brut unique C_b comprenant tous les objets complexes des différents catalogues initiaux, c'est-à- dire en l'occurrence les premier, deuxième, troisième et quatrième objets complexes obj1 à obj4 des premier et deuxième catalogues Cl et C2. La figure 2b illustre de manière détaillée l'étape 202 de l'obtention du catalogue normalisé C_Nrm selon un mode de réalisation de l'invention. Selon l'étape 202, on identifie et on supprime, au moyen d'une pluralité de règles dites « règles de nettoyage » R_n, d'éventuels doublons parmi les objets complexes du catalogue brut C_b, pour l'obtention d'un catalogue affiné C_n sans redondance. Un même objet peut en effet porter différents noms selon les catalogues. Par exemple, le nom « Hochet dent réfrigérant Coccinelle » le nom « Hochet dentition coccinelle » désignent un même produit. Si on identifie un doublon entre un premier objet complexe et un deuxième objet complexe, le doublon est avantageusement éliminé en fusionnant les premier et deuxième objets complexes, et en particulier en fusionnant les descriptions des premier et deuxième objets complexes. De cette manière, chaque objet du catalogue affiné C_n est décrit par un ensemble de descripteurs, issus de la ou des descriptions textuelles associées à cet objet, qui sont compilées dans le catalogue brut C_b. Les règles de nettoyage R_n s'appuient notamment sur les deux techniques suivantes afin de détecter des produits similaires : - une première technique de comparaison des codes-barres, et en particulier des codes-barres EAN (European Article Numbering), des produits. Le code EAN est un système global destiné à l'identification univoque d'objets. Cette première technique est toutefois insuffisante, d'une part car certains catalogues attribuent des codes-barres internes à leurs produits, et d'autre part car certains produits sont dénués de code-barres ; - une deuxième technique de comparaison des noms, ou labels des produits, c'est-à-dire une technique de comparaison de chaînes de caractères, qui utilise des méthodes de traitement automatique des langues (TAL). Une implémentation possible de la deuxième technique de comparaison des labels des produits est maintenant décrite. Selon cette implémentation, les labels des produits sont tout d'abord extraits du catalogue affiné C_n par l'application d'expressions régulières. Une expression régulière est un modèle ou motif, créé à l'aide de caractères ASCII, et permettant de manipuler une chaîne de caractères, c'est-à-dire permettant de trouver la ou les portions de ladite chaîne correspondant au modèle. Par exemple, pour identifier la taille d'un vêtement, par exemple XS, S, M, L, XL ou XXL, dans un label d'un objet de type vêtement, nous pouvons définir l'expression régulière suivante, ici écrite en langage Java Regex : \b(XSISIMILIXXLIXL)\b Une fois extraits, les labels des produits sont ensuite nettoyés de certains mots et/ou caractères. Une liste de mots et de caractères à supprimer des labels des produits peut par exemple comprendre : - les mots « de », « avec », « sans »... - les caractères « - », « + », « [ », « ] »... Enfin, une technique de traitement de textes, appelée racinisation (« stemming » en langue anglaise) est appliquée aux labels nettoyés des produits, afin d'obtenir pour chaque label nettoyé une version réduite dudit label nettoyé. L'algorithme de racinisation décrit dans le document « An algorithm for suffix stripping », Martin F. Porter, Program : Electronic Library & Information Systems, 40(3):211-218, 1980 pourra être utilisé. Les versions réduites sont alors comparées. Dans l'exemple illustré à la figure 2b, les deuxième et troisième objets complexes obj2 et obj3 sont ainsi similaires. Les règles de nettoyage R_n permettent de détecter cette similarité et de ne conserver qu'un seul des deux objets. En l'occurrence, le deuxième objet obj2 est conservé et le troisième objet obj3 est supprimé dans le catalogue affiné C_n. A l'issue de la deuxième étape 102, on obtient ainsi le catalogue affiné C_n qui contient des produits complexes non redondants. Selon l'étape 203 de l'obtention du catalogue normalisé C_Nrm selon un mode de réalisation de l'invention, on réalise une formalisation Onto_C, dite « ontologie catalogue », du domaine prédéfini. Dans le présent document, on entend par « une ontologie d'un domaine » une formalisation des connaissances relatives à ce domaine. Une ontologie d'un domaine définit donc un vocabulaire qui est utilisé pour décrire les données de ce domaine. En l'occurrence, l'ontologie catalogue Onto_C formalise les caractéristiques sémantiques que l'on souhaite identifier dans les descriptions textuelles des objets complexes du catalogue affiné C_n. Une ontologie comprend différentes entités : - des concepts ; - des propriétés ; - des instances ; - et éventuellement, des axiomes. Un concept, également appelé « classe », est une abstraction d'un ensemble d'objets appartenant à un domaine. Par exemple, un concept « moteur » et un concept « voiture » peuvent faire partie d'une ontologie décrivant le domaine de l'automobile, ou le domaine des transports. Les concepts d'une ontologie sont organisés à l'aide de relations hiérarchiques appelées relations de subsomption. En plus des relations hiérarchiques, les concepts d'une ontologie peuvent être reliés par des relations non-hiérarchiques appelées propriétés entre concepts. Les instances sont aussi bien des instances de concepts que des instances de propriétés, par exemple l'expression « la voiture rouge du voisin » est une instance du concept « voiture » tandis que le triplet « la voiture rouge du voisin », « possède », « moteur diesel 4 cylindres » est une instance de la propriété « possède ». Enfin, des axiomes permettent d'exprimer des contraintes entre des instances de concepts, qui ne sont pas modélisables à travers les relations hiérarchiques et non-hiérarchiques. Un axiome permet par exemple de définir qu'une instance d'un concept « personne » ne peut pas être reliée par une relation non-hiérarchique « être marié à » à lui-même. Il est à noter que plusieurs ontologies peuvent être établies pour un même domaine. Un mode de réalisation préférentiel de l'ontologie catalogue Onto_C, dans le cas particulier du domaine des jeux et des jouets, sera détaillé ultérieurement. A titre d'exemple et pour une meilleure compréhension, une première ontologie 01 du domaine des véhicules est illustrée à la figure 3a. La première ontologie 01 comprend : - un premier concept 01_C1 d'un objet ; - un deuxième concept 01_C2 d'une voiture ; - un troisième concept 01_C3 d'une locomotive ; - un quatrième concept 01_C4 d'un moteur ; - un cinquième concept 01_C5 d'un cheval-vapeur. Une voiture est un objet donc le deuxième concept « voiture » 01_C2 est relié au premier concept « objet » 01_C1 par une première propriété P1. Une locomotive est un objet donc le troisième concept « locomotive » 01_C3 est également relié au premier concept « objet » Ol_Cl par la première propriété P1. Une voiture possède un moteur, donc le deuxième concept « voiture » Ol_C2 est relié au quatrième concept « moteur » Ol_C4 par une deuxième propriété P2. Un moteur possède un certain nombre de chevaux-vapeur, donc le quatrième concept « moteur » Ol_C4 est également relié au cinquième concept « cheval-vapeur » 01 C5 par la deuxième propriété P2. Enfin, une locomotive possède aussi un certain nombre de chevaux-vapeur, donc le troisième concept « locomotive » 01 _C3 est relié au cinquième concept « cheval-vapeur » O1_C5 par la deuxième propriété P2. La figure 2c illustre de manière détaillée l'étape 204 de l'obtention du catalogue normalisé C_Nrm selon un mode de réalisation de l'invention. Selon l'étape 204, on formalise le catalogue affiné C_n afin d'obtenir un catalogue formalisé C_Frm. L'étape 204 s'appuie sur l'ontologie catalogue Onto_C réalisée à l'étape 203. Lors de l'étape 204, on recherche chaque premier concept de l'ontologie catalogue Onto_C dans la description textuelle de chaque objet complexe du catalogue affiné C_n. On annote ensuite chaque objet complexe du catalogue affiné C_n avec au moins un premier concept de l'ontologie catalogue Onto_C, pour l'obtention du catalogue formalisé C_Frm. Comme mentionné précédemment, l'ontologie catalogue Onto_C formalise les caractéristiques sémantiques que l'on souhaite identifier dans les descriptions textuelles des objets complexes du catalogue affiné C_n. Chaque objet du catalogue affiné C_n est annoté avec un ou plusieurs concepts de l'ontologie catalogue Onto_C, c'est-à-dire que l'on recherche chaque concept de l'ontologie catalogue Onto_C dans l'ensemble des descripteurs de chaque objet complexe du catalogue affiné C_n. Lorsqu'un concept de l'ontologie catalogue Onto_C est détecté parmi l'ensemble des descripteurs d'un objet complexe du catalogue affiné C_n, ledit objet complexe est annoté avec ledit concept. Cette étape d'annotation est automatisée grâce à des techniques de traitement automatique des langues (TAL) et de classification de texte. Un mode préférentiel de réalisation de cette étape d'annotation sera ultérieurement détaillé. L'étape d'annotation permet finalement d'associer à chaque objet complexe du catalogue affiné C_n un ou plusieurs concepts de l'ontologie catalogue Onto_C, pour l'obtention d'un catalogue formalisé C_Frm. Selon l'étape 205 de l'obtention du catalogue normalisé C_Nrm selon un mode de réalisation de l'invention, on réalise une formalisation Onto_U, dite « ontologie utilisateur », des critères de choix d'un objet complexe du domaine prédéfini. L'ontologie utilisateur Onto_U formalise et définit les critères pouvant être utilisés par un utilisateur afin de choisir un objet complexe du domaine prédéfini. La figure 2d illustre de manière détaillée l'étape 206 de l'obtention du catalogue normalisé C_Nrm selon un mode de réalisation de l'invention. Selon l'étape 206, on normalise le catalogue formalisé C_Frm afin d'obtenir un catalogue normalisé C_Nrm. La normalisation du catalogue formalisé C_Frm s'appuie sur un alignement d'ontologies. L'alignement d'une première ontologie avec une deuxième ontologie consiste à établir des relations d'alignement entre les concepts de la première ontologie et les concepts de la deuxième ontologie, et à attribuer des valeurs normalisées, c'est-à-dire comprises entre 0 et 1, aux relations d'alignement établies. Lors de l'alignement d'une première ontologie avec une deuxième ontologie, on cherche ainsi à réaliser des correspondances, ou appariements, également appelés « mappings », entre les concepts et les propriétés des première et deuxième ontologies. L'ontologie Utilisateur Onto_U est ici alignée avec l'ontologie catalogue Onto_C. Chaque concept de l'ontologie utilisateur Onto_U est aligné, avec une certaine valeur normalisée, avec un ou plusieurs concepts de l'ontologie catalogue Onto_C. Le catalogue normalisé C_Nrm comporte ainsi une pluralité d'objets complexes, chaque objet complexe étant annoté avec un ou plusieurs concepts de l'ontologie catalogue Onto_C, et chaque concept de l'ontologie catalogue Onto_C étant aligné, avec une certaine valeur normalisée, avec un ou plusieurs concepts de l'ontologie utilisateur Onto_U. L'établissement des relations d'alignement entre les concepts de l'ontologie utilisateur Onto_U et les concepts de l'ontologie catalogue Onto_C peut être réalisé à l'aide d'outils semi-automatiques, tels que décrits par exemple dans les références suivantes : - « TaxoMap in the OAEI 2009 alignment contest », Fayçal Hamdi et al., The Fourth International Workshop on Ontology Matching (2009) ; - « Prompt : Algorithm and tool for automated ontology merging and alignment », Natalya Fridman et aL, Proceedings of the Seventeenth National Conference on Artificial Intelligence and Twelfth Conference on Innovative Applications of Artificial Intelligence p. 450-455 (2000) ; - « Optima: Tool for ontology alignment with application to semantic reconciliation of sensor metadata for publication in sensormap », Ravikanth Kolliet al., IEEE International Conference on Semantic Computing p. 484- 485 (2008). Toutefois, l'établissement des relations d'alignement, ou règles d'alignement, est préférentiellement réalisé manuellement. En effet, la qualité des relations d'alignement est particulièrement importante pour assurer une efficacité optimale du procédé 100 de formalisation et de normalisation d'un catalogue brut d'objets complexes de l'invention. Un ou plusieurs experts du domaine considéré sont ainsi avantageusement sollicités lors de l'établissement des relations d'alignement, afin de contribuer à leur finesse et à leur pertinence. On attribue ensuite une valeur normalisée à chaque relation d'alignement précédemment établie. L'attribution des valeurs normalisées est effectuée manuellement, préférentiellement par un ou plusieurs experts du domaine considéré, en l'occurrence le domaine des jeux et des jouets. On contribue ainsi à obtenir un alignement pondéré et fin entre l'ontologie catalogue Onto_C et l'ontologie utilisateur Onto_U. L'étape d'alignement n'étant réalisée qu'une seule et unique fois, le temps potentiellement long qu'elle nécessite est acceptable : un utilisateur final n'est pas pénalisé par la potentielle longueur de l'étape d'alignement. La principale difficulté rencontrée lors de l'alignement de deux ontologies tient au fait que les deux ontologies ne modélisent pas exactement le même domaine, et n'utilisent donc pas le même vocabulaire. Ainsi, une même expression peut présenter un premier sens sémantique pour une première ontologie, et un deuxième sens sémantique différent du premier sens sémantique pour une deuxième ontologie. Dans le cas présent, l'ontologie catalogue Onto_C formalise des concepts relatifs au domaine des jeux et des jouets, tandis que l'ontologie utilisateur Onto_U formalise des critères de choix d'un jouet ou d'un jeu par un utilisateur. Si l'établissement des relations d'alignement est réalisé automatiquement, les relations d'alignement sont typiquement des relations classiques de type : - équivalence, par exemple : un premier concept de la première ontologie équivaut à un deuxième concept de la deuxième ontologie ; - subsomption, par exemple : le premier concept de la première ontologie est un fils du deuxième concept de la deuxième ontologie. Si l'établissement des relations d'alignement est réalisé manuellement, les relations d'alignement comprennent, outre les relations classiques mentionnées ci- dessus, des relations fines telles que des relations de type « évocation », par exemple : le premier concept de la première ontologie évoque le deuxième concept de la deuxième ontologie. Indépendamment du type d'établissement, automatique ou manuel, des relations 15 d'alignements, une valeur normalisée est attribuée manuellement, avantageusement par un ou plusieurs experts du domaine, à chaque relation d'alignement. Pour une meilleure compréhension, la figure 3b illustre schématiquement un exemple d'alignement entre la première ontologie 01 décrite à la figure 3a, et une 20 deuxième ontologie 02. La deuxième ontologie 02 comprend : - un premier concept 02_Cl d'un objet ; - un deuxième concept 02_C2 d'un véhicule ; - un troisième concept 02_C3 d'un train ; - un quatrième concept 02_C4 d'une automobile ; 25 - un cinquième concept 02_C5 d'une puissance moteur. Un véhicule est un objet donc le deuxième concept « véhicule » 02_C2 est relié au premier concept « objet » 02_Cl par la première propriété P1, déjà définie en lien avec la figure 3a. Un train est un véhicule donc le troisième concept « train » 02 _C3 est relié au deuxième concept « véhicule » 02_C2 par la première 30 propriété P1. Une automobile est également un véhicule, donc le quatrième concept « automobile » 02_C4 est aussi relié au deuxième concept « véhicule » 02 C2 par la première propriété P1. Un train et une automobile possèdent chacun une certaine puissance moteur, donc les troisième et quatrième concepts « train » 02 _ C3 et « automobile » 02 _C4 sont reliés au cinquième concept « puissance moteur » 02 _C5 par la deuxième propriété P2, déjà définie en lien avec la figure 3a. Un alignement possible entre la première ontologie 01 et la deuxième ontologie 02 est le suivant : - établissement d'une première relation d'alignement entre le premier concept « objet » 01_C1 de la première ontologie 01 et le premier concept « objet » 02_C1 de la deuxième ontologie 02, avec une valeur normalisée V1 = 1 ; - établissement d'une deuxième relation d'alignement entre le troisième concept « locomotive » 01_C3 de la première ontologie 01 et le troisième concept « train » 02_C3 de la deuxième ontologie 02, avec une valeur normalisée V2 = 0,7 ; - établissement d'une troisième relation d'alignement entre le cinquième concept « cheval-vapeur » 01_C5 de la première ontologie 01 et le cinquième concept « puissance-moteur » 02_C5 de la deuxième ontologie 02, avec une valeur normalisée V3 = 1 ; - établissement d'une quatrième relation d'alignement entre le deuxième concept « voiture » 01_C2 de la première ontologie 01 et le quatrième concept « automobile » 02_C4 de la deuxième ontologie 02, avec une valeur normalisée V4 = 0,9. Il est à noter que deux ontologies peuvent être alignées de plusieurs manières différentes, au moyen de plusieurs alignements distincts par leurs relations d'alignement et/ou par leurs valeurs normalisées. On donne à présent un deuxième exemple d'alignement, cette fois entre l'ontologie utilisateur Onto_U et l'ontologie catalogue Onto_C. Ce deuxième exemple d'alignement est défini en langage XML (de l'anglais « Extensible MarkupLanguage ») : Jeu_de_m ise_en_scène 0.5 Jeu_de_production_graphique 0.8 Jeu_de_construction 0.7 Ce deuxième exemple d'alignement montre comment un concept « La_créativité » de l'ontologie utilisateur Onto_U, qui formalise les critères de choix d'un jeu ou d'un jouet, est aligné avec certains concepts de l'ontologie catalogue Onto_C, qui formalise le domaine des jeux et des jouets. Le concept « La_créativité » de l'ontologie utilisateur Onto_U est ainsi aligné avec : - un concept « Jeu_de_mise_en_scène » de l'ontologie catalogue Onto_C, avec une valeur normalisée de 0,5 ; - un concept « Jeu_de_production_graphique » de l'ontologie catalogue Onto_C, avec une valeur normalisée de 0,8 ; - un concept « Jeu_de_construction » de l'ontologie catalogue Onto_C, avec une valeur normalisée de 0,7. Cet alignement signifie que trois concepts de l'ontologie catalogue Onto_C, à savoir les concepts « Jeu_de_mise_en_scène », « Jeu_de_production_graphique » et « Jeu_de_construction » évoquent une notion de créativité donc évoquent le concept « La_créativité » de l'ontologie utilisateur Onto_U. Les valeurs normalisées indiquent qu'un jeu de production graphique développe plus la créativité qu'un jeu de construction ou qu'un jeu de mise en scène. On rappelle ici qu'à l'issue de la troisième étape 103, précédemment décrite en lien avec la figure 2d, le catalogue formalisé C_Frm était obtenu, dans lequel chaque objet complexe est annoté avec un ou plusieurs concepts de l'ontologie catalogue Onto_C. A l'issue de la quatrième étape 104 que l'on vient de décrire, chaque concept de l'ontologie utilisateur Onto_U a été aligné, avec une certaine valeur normalisée, avec un ou plusieurs concepts de l'ontologie catalogue Onto_C. Dans le cas où plusieurs valeurs normalisées sont attribuées à un objet complexe pour un même concept de l'ontologie utilisateur Onto_U, la valeur normalisée retenue est la valeur maximale. Par exemple, un objet complexe ayant été annoté avec les concepts « Jeu_de_mise_en_scène » et « Jeu_de_construction » de l'ontologie catalogue Onto_C aura, concernant le concept « La_créativité » de l'ontologie utilisateur Onto_U, la valeur normalisée 0,7. Selon un mode de réalisation de l'étape d'alignement de l'ontologie catalogue Onto_C avec l'ontologie utilisateur Onto_U dans le cas particulier où l'ontologie catalogue Onto_C et l'ontologie utilisateur Onto_U sont relatives au domaine d'objets complexes des jeux et des jouets, 17 règles d'alignement en langage XML sont établies entre les concepts de l'ontologie catalogue Onto_U et ceux de l'ontologie utilisateur Onto_U. On a décrit ci-dessus un cas préférentiel de réalisation de l'étape d'alignement selon lequel l'ontologie utilisateur Onto_U est alignée avec l'ontologie catalogue Onto_C, et selon lequel chaque concept de l'ontologie utilisateur Onto_U est aligné, avec une certaine valeur normalisée, avec un ou plusieurs concepts de l'ontologie catalogue Onto_C. On contribue ainsi à garantir que chaque concept de l'ontologie utilisateur Onto_U est effectivement aligné, c'est-à-dire mis en correspondance, avec au moins un concept de l'ontologie catalogue Onto_C. Ce cas préférentiel de réalisation, qui prend l'ontologie utilisateur Onto_U pour référence et passe en revue tous les concepts de l'ontologie utilisateur Onto_U, permet avantageusement d'optimiser le fonctionnement du moteur de recommandation MR. En effet, le moteur de recommandation MR dispose d'un ou plusieurs deuxièmes concepts de l'ontologie utilisateur Onto_U, qui sont extraits du besoin exprimé par l'utilisateur, et recherche pour chaque deuxième concept une mise en correspondance avec un ou plusieurs premiers concepts de l'ontologie catalogue Onto_C. Toutefois la démarche inverse peut alternativement être adoptée, selon laquelle l'ontologie catalogue Onto_C est alignée avec l'ontologie utilisateur Onto_U, chaque concept de l'ontologie catalogue Onto_C étant aligné, avec une certaine valeur normalisée, avec un ou plusieurs concepts de l'ontologie utilisateur Onto_U. Après avoir détaillé les différentes étapes pour l'obtention du catalogue normalisé C_Nrm utilisé par le moteur de recommandation MR du procédé 100 de recommandation automatique d'objets complexes selon un mode de réalisation de l'invention, nous revenons maintenant sur : - un mode préférentiel de réalisation du catalogue affiné C_n ; - un mode préférentiel de réalisation de l'ontologie catalogue Onto_C ; - un mode préférentiel de réalisation de l'étape d'annotation de chaque objet complexe du catalogue affiné C_n avec un ou plusieurs concepts de l'ontologie catalogue Onto_C ; - un mode préférentiel de réalisation de l'ontologie utilisateur Onto_U. Suivant un mode préférentiel de réalisation, la réalisation du catalogue affiné C_n s'appuie sur un module d'identification de produits similaires au sein du catalogue brut C_b. Le module d'identification de produits similaires s'appuie sur : - une comparaison des codes-barres EAN des produits, lorsque lesdits codes-barres sont disponibles ; - une comparaison des chaînes de caractères des labels, c'est-à-dire des noms, des produits. Ce dernier type de comparaison s'appuie sur une pluralité de règles de nettoyage R_n, utilisant des expressions régulières écrites en Java Regex. Dans l'exemple particulier de réalisation présentement décrit, relatif au domaine des jeux et des jouets, 54 expressions régulières sont ainsi définies afin de nettoyer les labels des différents produits répertoriés dans le catalogue brut C_b et de pouvoir construire le catalogue affiné C_n. Les expressions régulières définies permettent notamment de supprimer des labels des produits les informations suivantes : - couleurs : « bleu », « noir », « noir et blanc », ... - indications d'âge : « 5 ans », « 5-8 ans », « à partir de 10 ans », ... - tailles : « M », « taille XL », ... - dimensions : « 42 x 12 cm », 42 x12x13 mm », ... - informations considérées comme inutiles : « promotion 2012 », « exclusivité web », « pack exclusif », ... - informations techniques : « 1.4 Mp », « 32 Ghz », ... Par exemple, l'expression : « (?i)( 1^1,1:)+( )*taille (xsillmislx1)*( )*(\\()*[0-9]+([-I/I ]+[0-9]+)* (moislans)+(\\))*( 1$)+ » permet de repérer la chaîne de caractères « taille M (12/14 ans) » dans un label d'un produit. Suivant le mode préférentiel de réalisation, la construction du catalogue affiné C_n utilise le protocole suivant : - Obtention du catalogue brut d'objets complexes C_b. Le catalogue brut C_b est par exemple un fichier au format csv. Chaque objet complexe disponible sur ledit catalogue brut C_b est également appelé : « offre ». - Suppression, dans chaque offre, des informations considérées comme inutiles. Une offre dont les informations « inutiles » ont été supprimées est appelée : « déclinaison ». - Suppression, dans chaque déclinaison, des informations techniques, dimensions, tailles, indications d'âge, couleurs. Une déclinaison dont on a supprimé informations techniques, les dimensions, les tailles, les indications d'âge et les couleurs est appelée : « produit élémentaire ». Pour identifier des déclinaisons similaires, ou des produits élémentaires similaires : - Les caractères « vides », tels que les chiffres, les parenthèses, les symboles de type : « + », « - », « \ »..., sont supprimés des labels desdites déclinaisons et desdits produits élémentaires. - Les labels ainsi obtenus sont tronqués au moyen de la technique de racinisation (« stemming ») mentionnée plus haut. - Les chaînes de caractères des labels tronqués obtenus après racinisation sont alors comparées. Un mode préférentiel de réalisation de l'ontologie catalogue Onto_C est à présent décrit, dans le cas particulier du domaine des jeux et des jouets. Selon ce mode préférentiel de réalisation, l'ontologie catalogue Onto_C s'appuie sur des travaux du système ESAR (Exercice, Symbolique, Assemblage et Règle). Le système ESAR est notamment décrit dans les références suivantes : - « Le langage et l'affectivité à travers l'analyse des objets de jeu : facettes complémentaires au système ESAR », Rolande Fillon et aL,Documentator (1993) ; - « Le système ESAR : guide d'analyse, de classification et d'organisation d'une collection de jeux et jouets », Denise Garonet aL, Editions ASTED (2002). Le système ESAR se présente sous forme d'une classification, organisée en facettes portant sur le développement intellectuel, moteur, social, langagier et affectif. Le système ESAR, qui est reconnu, utilisé et validé internationalement, permet de se doter d'un outil de classement et d'analyse psychologique des jeux, des jouets et des objets de jeu. Il est donc tout à fait adapté pour être utilisé dans le cas particulier du domaine des jeux et des jouets. Selon le mode de réalisation préférentiel ici décrit, l'ontologie catalogue Onto_C est écrite en langage OWL. Le langage OWL est un langage de représentation des connaissances, notamment utilisé pour des applications relatives au web sémantique. Le langage OWL fournit ainsi des mécanismes pour créer des composants d'une ontologie, c'est-à-dire : des concepts, des propriétés, des instances de concepts et des instances de propriété, des axiomes. Par exemple, « moteur 1.4 TSI VW » est une instance d'un concept « moteur ». Selon le mode de réalisation préférentiel ici décrit, on utilise avantageusement un éditeur d'ontologie, et par exemple l'éditeur d'ontologie « Protégé », pour construire l'ontologie catalogue Onto_C. On construit donc une ontologie catalogue Onto_C relative au domaine des jouets, qui classifie les catégories des jouets, et les caractéristiques des jouets. Les concepts de l'ontologie catalogue Onto_C peuvent donc être, dans le cas présent, des catégories ou des caractéristiques. Les catégories des jouets font référence aux types de jouets : par exemple, un jeu de construction, un jeu de hasard, un jeu de stratégie... Les caractéristiques des jouets font référence : - aux valeurs éducatives transmises par un jouet, par exemple : la concentration, la dextérité, les habiletés cognitives ou fonctionnelles ; - et/ou aux conditions d'utilisation d'un jouet ou d'un jeu, par exemple : jeu coopératif, associatif, individuel, compétitif... Dans l'exemple ici décrit, 33 catégories de jouets et 129 caractéristiques de jouets sont prises en compte. Chaque catégorie de jouets est associée à une ou plusieurs caractéristiques de jouets. On présente dans le tableau ci-dessous un exemple de concept de l'ontologie catalogue Onto_C, obtenu à partir du système ESAR selon le mode de réalisation préférentiel : Concept : Jeu d'énigme Définition : Jeu d'esprit au cours duquel on doit résoudre un problème ou deviner à l'aide d'indices une énigme ou une situation décrite en termes obscurs ou mystérieux. Exemples : Jeu de messages codés, jeu de détective, jeu d'indices menant à une devinette, Clue, Cluedo, Meurtre à l'abbaye. Chaque concept comporte ainsi une définition, et un ou plusieurs exemples. 5 Avantageusement, les exemples associés à chaque concept de l'ontologie catalogue Onto_C sont complétés grâce à des ressources externes. On peut ainsi obtenir un plus grand nombre d'exemples pour chaque concept. Avantageusement, on associe à chaque concept un ensemble de termes, ou plus généralement un ensemble de signes linguistiques, couramment utilisés pour le 10 désigner ou l'évoquer. On crée pour ce faire une propriété appelée « signes linguistiques », par laquelle une pluralité de signes linguistiques sont définis pour chaque concept. Par exemple, on associe au concept « Jeu d'énigme » les signes linguistiques « Enigme » et « Devinette ». Avantageusement, on définit également pour chaque concept, au moyen d'une 15 propriété appelée « signes linguistiques complexes », une pluralité de signes linguistiques complexes. On entend par signe linguistique complexe une expression portant sur des exemples reliés par des opérateurs logiques, par exemple de type « et », « non », et qui contribue à différencier des concepts de produits et à lever des ambiguïtés. En effet, il est possible qu'un exemple 20 considéré de manière isolée ne soit pas suffisant pour différencier deux catégories de produits. Par exemple, le terme « domino », extrait d'une définition d'un jouet et considéré seul, peut être associé à un concept de « jeu d'association » ou à un concept de « jeu de construction ». Il existe en effet au moins deux types de dominos : des dominos numérotés de 1 à 6, que des joueurs cherchent à associer 25 - jeu d'association, et des dominos sans signe distinctif, avec lesquels un ou plusieurs joueurs construisent un parcours, puis font tomber à une extrémité du parcours un premier domino, qui entraîne les dominos suivants - jeu de construction. Un signe linguistique complexe est donc une condition sur une combinaison de plusieurs mots-clés, par exemple : « premier mot-clé ET deuxième mot-clé », ou « premier mot-clé ET deuxième mot-clé ET NON troisième mot-clé », etc. Ainsi, on ne cherche pas simplement la présence d'un seul mot-clé pour effectuer une annotation, mais également la présence et/ou l'absence d'autres mots-clés. Pour le cas des dominos, on peut ainsi établir les signes linguistiques suivants : - « domino ET construction » pour effectuer l'annotation avec le concept « jeu de construction » ; - « domino ET NON construction » pour effectuer l'annotation avec le concept « jeu d'association ». La figure 4 montre un exemple d'un premier concept 1 « Jeu de construction » de l'ontologie catalogue Onto_C visualisée dans l'éditeur d'ontologie « Protégé », le premier concept 1 comportant : - une définition D ; - un premier exemple ex1 « la valise du mécano » et un deuxième exemple ex2 « pièces à juxtaposer » ; - un premier signe complexe Sc1 « dominos ET construction », un deuxième signe complexe Sc2 « domino ET billes », un troisième signe complexe Sc3 « domino ET construction » et un quatrième signe complexe Sc4 « dominos ET billes ». Un mode préférentiel de réalisation de l'étape d'annotation de chaque objet complexe du catalogue affiné C_n avec un ou plusieurs concepts de l'ontologie catalogue Onto_C est à présent décrit. Selon le mode préférentiel de réalisation, l'étape d'annotation comporte trois phases : - une première phase où on annote chaque objet complexe du catalogue affiné C_n avec une ou plusieurs annotations candidates, en fonction de correspondances, ou « matching », détectées entre ledit objet complexe et un ou plusieurs concepts de l'ontologie catalogue Onto_C ; - une deuxième phase où on détecte des éventuelles incohérences dans les annotations candidates précédemment établies pour ne conserver que des annotations cohérentes ; - une troisième phase où les annotations cohérentes sont éventuellement complétées avec des annotations affiliées. Lors de la première phase, les annotations candidates sont identifiées en confrontant et comparant : - d'une part, les concepts ou labels, les signes linguistiques et/ou les signes linguistiques complexes, et les exemples de l'ontologie catalogue Onto_C ; - avec d'autre part, les contenus textuels, ou descriptions textuelles, des objets complexes du catalogue affiné C_n. La première phase, ou phase de matching, consiste donc à retrouver les labels, les exemples et les signes linguistiques, complexes ou non, dans l'ensemble des informations disponibles sur un objet complexe, en l'occurrence un jeu ou un jouet. Si le nom, la catégorie ou la description d'un objet complexe comporte le label, un exemple ou un signe linguistique d'un concept, alors ledit objet complexe est annoté par ledit concept. On considère par exemple que le catalogue affiné C_n comporte un objet complexe dont la description comprend l'expression « pâte-à-modeler », qui est un « exemple » d'un concept « Jeu de production en 3D » de l'ontologie catalogue Onto_C. L'objet complexe est alors annoté avec le concept « Jeu de production en 3D ». Lors de la deuxième phase, d'éventuelles incohérences dans les annotations candidates établies pendant la première phase sont détectées en utilisant un ensemble de règles, permettant de vérifier des contraintes d'incompatibilité entre annotations et, le cas échéant, de faire un choix sur les annotations à garder et celles à supprimer. On considère par exemple un objet complexe dont les informations comportent les mots « ballon » et « figurine ». Le mot « ballon » est relié à un concept « jeu sportif » de l'ontologie catalogue Onto_C, et le mot « figurine » est rattaché à un concept « jeu de mise en scène » de l'ontologie catalogue Onto_C. Suite à la première phase, ledit objet complexe est donc annoté avec les concepts « jeu sportif » et « jeu de mise en scène ». Cependant, dans ce cas, le mot « ballon » a introduit une confusion : il ne s'agit pas d'un véritable ballon, mais d'un ballon miniature associé à une figurine. Les règles de détection des incohérences, appelées également règles d'incompatibilité, appliquée pendant la deuxième phase, permettent de repérer que les concepts « jeu sportif » et « jeu de mise en scène » sont disjoints, et d'indiquer en outre que le concept « jeu de mise en scène » prime sur le concept « jeu sportif ». Les règles d'incompatibilité expriment donc un choix entre des annotations réputées incompatibles. Les règles d'incompatibilité ont typiquement le format suivant : « SI concept A ET concept B ALORS NON concept A ». Dans l'exemple particulier ici décrit, 30 règles d'incompatibilité, écrites en langage XML, ont été définies pour les concepts de l'ontologie catalogue Onto_C. Un exemple de règle d'incompatibilité est ainsi : « SI Jeu_sportif ET Jeu_de_mise_en_scène ALORS NON Jeu_sportif ». A l'issue de la deuxième phase, les annotations erronées sont éliminées. La troisième phase de complétion des annotations permet d'identifier des annotations complémentaires des annotations qui ont été conservées à l'issue de la deuxième phase. Cette troisième étape permet avantageusement d'optimiser le rappel, c'est-à-dire le nombre d'objets complexes annotés de façon pertinente sur le nombre total d'objets complexes à annoter. On utilise pour ce faire un ensemble de règles d'implication du type « SI concept A ALORS concept B ». Dans l'exemple particulier ici décrit, une règle d'implication peut par exemple être : « SI Jeu_sportif ALORS Jeu_moteur ». Ainsi, si un objet complexe a été annoté lors de la deuxième phase avec le concept « Jeu sportif », on lui associe également le concept « Jeu moteur » lors de la troisième phase. Des inférences sont avantageusement effectuées à partir des règles d'implication. Ainsi, si on a défini une première règle d'implication « SI concept A ALORS concept B » et une deuxième règle d'implication « SI concept B ALORS concept C », un objet complexe annoté par le concept A lors de la deuxième phase sera annoté par B lors de la troisième phase, puis annoté par C par inférence. Dans l'exemple particulier ici décrit, 95 règles de complétion, écrite en langage XML, ont été définies. La figure 5 illustre un exemple d'application des trois phases de l'étape d'annotation qui viennent d'être décrites. La figure 5 montre un ensemble 10 d'informations relatives à un objet complexe du catalogue affiné C_n. Dans l'ensemble 10 d'informations, la première phase de matching : - détecte un premier terme tl et annote le premier terme tl avec une annotation tl_A du concept « Jeu_de_mise_en_scène » de l'ontologie catalogue Onto_C ; - détecte un deuxième terme t2 et annote le deuxième terme t2 avec une annotation t2_A du concept « Jeu_moteur » de l'ontologie catalogue Onto_C ; - détecte un troisième terme t3 « Figurines » et annote le troisième terme t3 avec une pluralité t3_A d'annotations des concepts « Créativité_expressive », « Jeu_de_mise_en_scène », « Reproduction_de_rôles » et « Reproduction_d_évènements » de l'ontologie catalogue Onto_C. A l'issue de la première phase de matching, l'objet complexe considéré est annoté avec une pluralité d'annotations candidates A_phl , comprenant : - une première annotation candidate Al « Jeu_de_mise_en_scène ; - une deuxième annotation candidate A2 « Jeu_moteur » ; - une troisième annotation candidate A3 « Créativité_expressive » ; - une quatrième annotation candidate A4 « Reproduction_de_rôles » ; - une cinquième annotation candidate A5 « Reproduction_d_évènements ». La pluralité d'annotations candidates A_phl est la compilation, sans redondance, des annotations tl_A, t2_A et t3_A associées aux premier, deuxième et troisième termes t1, t2 et t3. La pluralité d'annotations candidates A_ph1 peut être considérée comme un contexte d'interprétation de l'objet complexe considéré. On applique lors de la deuxième phase de détection des incohérences une pluralité de règle d'incompatibilité R_inc, ce qui a pour effet, dans cet exemple particulier, de supprimer la deuxième annotation candidate A2. A l'issue de la deuxième phase, l'objet complexe est désormais annoté avec une pluralité d'annotations cohérentes A_ph2, comprenant la première annotation candidate Al et les troisième, quatrième et cinquième annotations candidates A3, A4 et A5. On applique ensuite lors de la troisième phase de complétion des annotations une pluralité de règles de complétion, également appelées règles d'implication, R_imp, ce qui a pour effet dans cet exemple particulier d'ajouter les annotations suivantes : - une sixième annotation A6 « Création_inventive » ; - une septième annotation A7 « Imitation_différée ». A l'issue de la troisième phase, l'objet complexe est finalement annoté avec une pluralité d'annotations cohérentes et complètes A_ph3, comprenant la première annotation candidate A1, les troisième, quatrième et cinquième annotations candidates A3, A4 et A5, ainsi que les sixième et septième annotations A6 et A7 de complétion. En complément de l'étape d'annotation de chaque objet complexe du catalogue affiné C_n avec un ou plusieurs concepts de l'ontologie catalogue Onto_C, dont on vient de décrire un mode préférentiel de réalisation, il est avantageusement possible de réaliser une ou plusieurs étapes complémentaires d'annotation des objets complexes du catalogue affiné C_n. Selon une première étape complémentaire d'annotation, on établit une pluralité de catégories d'objets complexes du catalogue affiné C_n. Chaque catégorie, également appelée « ping », est associée à un ou plusieurs concepts de l'ontologie catalogue Onto_C. On procède alors au classement des objets complexes du catalogue affiné C_n dans les catégories précédemment établies. Lorsqu'un objet complexe est classé dans une catégorie, il est annoté avec les concepts associés à ladite catégorie. Selon une deuxième étape complémentaire d'annotation, un classifieur (« classifier » en anglais) est avantageusement utilisé pour contribuer à améliorer le taux d'annotation des objets complexes du catalogue affiné C_n avec les concepts de l'ontologie catalogue Onto_C. Un classifieur est une technique de classement statistique de données, notamment utilisée dans le domaine de l'apprentissage automatique. Dans le cas ici décrit, le rôle du classifieur est ainsi de classer, dans différentes classes, des objets complexes du catalogue affiné C_n ayant des propriétés similaires. Le classifieur réalise pour ce faire un apprentissage à partir des éléments de type textuel, ou « attributs », disponibles pour chaque objet complexe : label, marque, catégorie, description, etc. Il est par exemple possible d'utiliser un classifieur de type SVM (de l'anglais « Support Vector Machine »), tel que décrit dans les documents : - « Support-vector networks », Corinna Cortes et aL, Mach. Learn., 20(3) :273-297 (1995) ; - « Text categorization with support vector machines: Learning with many relevant features », Thorsten Joachims, Proceedings of the 10th European Conference on Machine Learning, p. 137-142 (1998). Un classifieur tel que « LIBLINEAR », qui est classifieur linéaire de type SVM, décrit en particulier dans le document « LIBLINEAR : A library for large linear classification », Rong-En Fan et al., Journal of Machine Learning Research, 9 :1871-1874 (2008), peut en particulier être utilisé. Afin de mettre en oeuvre la deuxième étape complémentaire d'annotation, on procède tout d'abord à une représentation vectorielle de chaque objet complexe du catalogue affiné C_n. Plusieurs représentations vectorielles de type « sac de mots » ont été testées à cet effet. Une représentation vectorielle de type « sac de mots » utilise un dictionnaire de mots d'une certaine taille. Chaque objet complexe est représenté par un vecteur de même taille que le dictionnaire de mots, chaque élément du vecteur représentant un mot du dictionnaire de mots. Une première représentation vectorielle de type « sac de mots » testée est une représentation binaire, dans laquelle chaque élément du vecteur contient un « 1 » si le mot correspondant audit élément du vecteur est présent parmi les attributs de l'objet complexe considéré, ou un « 0 » si le mot correspondant audit élément du vecteur est absent des attributs de l'objet complexe considéré. Une deuxième représentation vectorielle de type « sac de mots » testée est une représentation TF-IDF (de l'anglais « Term Frequency - Inverse Document Frequency »), qui permet d'évaluer l'importance d'un mot contenu dans un document au sein d'un corpus de documents ; c'est-à-dire dans le cas présent, l'importance d'un attribut d'un objet complexe au sein d'un catalogue d'objets complexes. L'importance, ou le poids, d'un mot varie proportionnellement à la fréquence du mot dans le document. Le poids d'un mot varie également d'une manière inversement proportionnelle à la fréquence du mot dans le corpus de documents, l'idée étant que plus un mot est rare dans le corpus, plus sa présence dans un document a de poids. Les première et deuxième représentations vectorielles testées sont notamment décrites dans le document « Introduction to Modern Information Retrieval », Gerard Salton et al. (1983). On donne ci-dessous les équations typiquement utilisées pour pondérer des mots, dans une représentation vectorielle TF-IDF : v mot E dictionnaire, V document E corpus, T DI D F (mot, document) = T F (mot, document) X IDF(mot) nombre d' occurences du mot dans le document avec T F (mot, document) = nombre de mots dans le document et IDF(mot) = nombre de documents dans le corpus nombre de documents contenant le mot dans le corpus Le dictionnaire utilisé est composé des mots issus des attributs des objets complexes. Les attributs d'un objet complexe peuvent par exemple être, comme mentionné précédemment, un label ou nom, une marque, une catégorie, une description. On ignore a priori si tous les attributs sont également importants, ou si certains attributs sont plus importants que d'autres. Différents ensembles d'attributs sont donc avantageusement testés pour les première et deuxième représentations vectorielles considérées, et notamment : - un premier ensemble d'attributs, noté LM, comporte pour chaque objet complexe son label et sa marque ; - un deuxième ensemble d'attributs, noté LMC, comporte pour chaque objet complexe son label, sa marque et sa catégorie ; - un troisième ensemble d'attributs, noté LMCD, comporte pour chaque objet complexe son label, sa marque, sa catégorie et sa description. Afin d'améliorer le fonctionnement du classifieur, on définit avantageusement une liste de base, également appelée « stop-list », de mots à ne pas prendre en compte. Cette liste de base comprend par exemple, entre autres : les nombres, pronoms, prépositions, déterminants, abréviations et conjonctions. Une liste élaborée, paramétrable par un utilisateur, peut également être avantageusement proposée afin de compléter éventuellement la liste de base, en définissant d'autres types de mots à ne pas prendre en compte. La figure 6 montre un exemple de représentation vectorielle de quatre objets complexes. La figure 6 montre ainsi une représentation vectorielle RV1 d'un premier objet complexe, une représentation vectorielle RV2 d'un deuxième objet complexe, une représentation vectorielle RV3 d'un troisième objet complexe et une représentation vectorielle RV4 d'un quatrième objet complexe. Les quatre représentations vectorielles RV1 à RV4 des premier, deuxième, troisième et quatrième objets complexes constituent, dans l'exemple particulier de la figure 6, un échantillon d'apprentissage d'une classe. Dans le cas présent, les trois premiers caractères de chaque représentation vectorielle indiquent si l'objet complexe considéré appartient ou non à ladite classe : « 1.0 » indique que l'objet complexe appartient à la classe, et « 0.0 » indique que l'objet complexe n'appartient pas à la classe. Les caractères suivants renseignent sur la pondération TF-IDF de chaque mot du dictionnaire effectivement présent dans l'ensemble d'attributs de l'objet complexe considéré. Par exemple, la chaîne de caractères « 20:0.053068508132264526 » dans la représentation vectorielle RV1 du premier objet complexe indique que le mot de rang 20 du dictionnaire est présent dans l'ensemble d'attributs du premier objet complexe avec une pondération TF-IDF de 0.053068508132264526. Selon l'approche du classifieur, l'annotation d'un objet complexe du catalogue affiné C_n avec un ou plusieurs concepts de l'ontologie catalogue Onto_C consiste à associer, pour l'objet complexe considéré, une valeur binaire à chaque concept de l'ontologie catalogue Onto_C. Lorsque la valeur binaire « 1 » est attribuée à un concept de l'ontologie catalogue Onto_C, l'objet complexe est annoté avec ledit concept. Lorsque la valeur binaire « 0 » est attribuée à un concept de l'ontologie catalogue Onto_C, l'objet complexe n'est pas annoté avec ledit concept. Dans l'exemple plus particulièrement décrit dans la présente description, où les objets complexes sont des jeux ou des jouets, l'ontologie catalogue Onto_C établie comporte 162 concepts, un concept pouvant correspondre aussi bien à une catégorie qu'à une caractéristique. Afin de pouvoir discriminer les 162 concepts de l'ontologie catalogue Onto_C avec un seul classifieur, il faut que ledit classifieur soit capable de modéliser 2162 classes de jouets, soit environ 6 x 1048 classes différentes, à partir des exemples d'apprentissage. On préfère, dans le mode de réalisation ici décrit, utiliser un classifieur par concept de l'ontologie catalogue Onto_C, soit 162 classifieurs dans cet exemple particulier où l'ontologie catalogue Onto_C comporte 162 concepts. Chaque classifieur modélise alors 21 classes On a donc décrit ci-dessus un mode de réalisation préférentiel de l'étape d'annotation, comportant la première phase d'établissement d'annotations candidates, la deuxième phase de détection d'éventuelles incohérences dans les annotations candidates pour ne conserver que des annotations cohérentes et la troisième phase de complétion éventuelle des annotations cohérentes avec des annotations affiliées. L'étape d'annotation peut avantageusement être complétée par la première étape complémentaire d'annotation, qui utilise des catégories d'objets complexes et/ou la deuxième étape complémentaire d'annotation, qui utilise un classifieur. L'étape d'annotation et la première étape complémentaire d'annotation correspondent à une approche linguistique, tandis que la deuxième étape complémentaire d'annotation correspond à une approche statistique. Nous évaluons à présent les résultats d'annotation obtenus grâce à l'approche linguistique. Pour tester la méthode d'annotation utilisant l'approche linguistique, on commence par construire de manière aléatoire un échantillon d'objets complexes à partir d'une pluralité de catalogues. L'échantillon comporte par exemple cent objets complexes. Dans l'exemple ici décrit, les objets complexes sont des jouets. On réalise ensuite, manuellement, une annotation de référence pour chaque objet complexe de l'échantillon. Puis on applique la méthode d'annotation utilisant l'approche linguistique à chaque objet complexe de l'échantillon, afin d'obtenir, automatiquement, des annotations automatiques. Les annotations automatiques sont alors comparées aux annotations de référence. Pour ce faire, plusieurs paramètres peuvent être évalués, parmi lesquels : - la précision, que l'on définit dans la présente description comme étant le rapport du nombre d'objets complexes annotés de façon pertinente, sur le nombre total d'objets complexes annotés ; - le rappel, que l'on définit dans la présente description comme étant le rapport du nombre d'objets complexes annotés de façon pertinente, sur le nombre total de jouets qui auraient dû être annotés ; - un indicateur général de performance « F_mesure », défini dans la présente description par la relation : F mesure = 2xprécisionxrappel - précision+rappel On présente dans le tableau ci-dessous des résultats obtenus pour les annotations automatiques, en fonction des trois paramètres précédemment définis, et pour différents degrés de perfectionnement de l'ontologie catalogue Onto_C d'une part et de la méthode d'annotation selon l'approche linguistique d'autre part : Cas 1 Cas 2 Cas 3 Cas 4 Ontologie catalogue Onto_C Exemples et signes Non Oui Oui Oui linguistiques Signes Non Non Oui Oui linguistiques complexes Méthode d'annotation selon l'approche linguistique Détection des incohérences et complétion des annotations candidates Non Non Non Oui Evaluation des annotations automatiques Précision (%) 38 87 88 94 Rappel (%) 20 55 59 64 F_mesure (%) 26 68 71 76 Dans le cas 1, l'ontologie catalogue Onto_C n'a pas été enrichie avec des exemples ou des signes linguistique, ni avec des signes linguistiques complexes, L'ontologie catalogue Onto_C est donc pauvre en information. En outre, dans le cas 1, la méthode d'annotation ne comporte pas les phases de détection des incohérences éventuelles parmi les annotations candidates, ni de de complétion des annotations candidates. Les annotations automatiques sont de qualité médiocre : 38% de précision, 20% de rappel et 26% de F_mesure. Le cas 2 apporte une amélioration significative des annotations automatiques (87% de précision, 55% de rappel, 68% de F_mesure) grâce à l'introduction, par rapport au cas 1, de nouveaux exemples et de signes linguistiques dans l'ontologie catalogue Onto_C. Le cas 3 correspond à l'ajout, par rapport au cas 2, de signes linguistiques complexes dans l'ontologie catalogue Onto_C. La qualité des annotations automatiques est encore améliorée. Enfin, le cas 4 correspond, par rapport au cas 3, à l'implémentation des phases de détection des incohérences et de complétion des annotations candidates dans la méthode d'annotation selon l'approche linguistique. Les résultats obtenus dans ce dernier cas, c'est-à-dire 94% de précision, 64% de rappel et 76% de F_mesure, sont tout à fait intéressants et satisfaisants. On réalise toutefois avantageusement une validation manuelle « humaine » des annotations automatiques obtenues par la méthode ici décrite d'annotation selon l'approche linguistique. On souhaite à présent tester la méthode d'annotation selon l'approche statistique. Un protocole de test possible est le suivant : - on détermine, au sein du catalogue affiné C_n, un premier échantillon représentatif du catalogue C_n. Le premier échantillon comporte une pluralité de premiers objets complexes ; - on annote manuellement la pluralité de premiers objets complexes du premier échantillon ; - on utilise le premier échantillon, dont chaque premier objet complexe a été manuellement annoté, pour la création d'un modèle de classification ; - on utilise le modèle de classification comme une base d'apprentissage pour le classifieur de la méthode d'annotation selon l'approche statistique ; - on détermine un deuxième échantillon, distinct du premier échantillon, au sein du catalogue affiné C_n. Le deuxième échantillon comporte une pluralité de deuxièmes objets complexes et ne comporte aucun premier objet complexe de la pluralité de premiers objets complexes du premier échantillon ; - on utilise le classifieur de la méthode d'annotation selon l'approche statistique pour annoter le deuxième échantillon ; - on évalue la pertinence des annotations automatiques réalisées par le classifieur sur la pluralité de deuxièmes objets complexes du deuxième échantillon. Afin de pouvoir créer le modèle de classification, on détermine le type de représentation vectorielle et l'ensemble d'attributs qui permettront d'obtenir les résultats les plus pertinents avec le classifieur. Les différents types de représentation vectorielle sont par exemple les types de représentation binaire ou TF-IDF précédemment décrits. Les différents ensembles d'attributs sont par exemple les premier, deuxième et troisième ensembles d'attributs précédemment décrits, comportant respectivement, pour chaque objet complexe : son label et sa marque (LM), son label, sa marque et sa catégorie (LMC) ou son label, sa marque, sa catégorie et sa description (LMCD). Un mode préférentiel de réalisation de l'ontologie utilisateur Onto_U est à présent décrit. Selon le mode préférentiel de réalisation, l'ontologie utilisateur Onto_U est modélisée en langage OWL, à l'aide de l'éditeur d'ontologie « Protégé ». L'ontologie utilisateur Onto_U peut avantageusement comporter des critères conceptuels, par exemple identifiés avec un expert du domaine d'objets complexes considéré, et des critères techniques. Dans le cas particulier du domaine des jeux et des jouets, 17 critères conceptuels sont ainsi établis avec un expert pour l'ontologie utilisateur Onto_U, parmi lesquels : l'autonomie, l'imagination, la créativité, la confiance, le perfectionnement, etc. Dans le cas présent, chaque critère conceptuel fait ainsi référence à un type de développement qu'un jeu ou un jouet est susceptible d'apporter. Toujours dans le cas particulier du domaine des jeux et des jouets, 5 critères techniques ont été identifiés pour l'ontologie utilisateur Onto_U : - un âge recommandé, par exemple un âge minimum et un âge maximum ; - un environnement, par exemple un jeu d'intérieur, un jeu d'extérieur ou un jeu aquatique ; - le sexe, par exemple jeu de garçon, jeu de fille ou jeu mixte ; - une marque, par exemple Barbie ou Spiderman (marques déposées) ; - l'origine du jouet, par exemple la France, l'Allemagne ou les Etats-Unis.5 REVENDICATIONS1. Procédé (100) de recommandation automatique d'objets complexes d'un domaine prédéfini à un utilisateur (U) par un moteur de recommandation (MR), le procédé (100) comportant : - une étape (101) selon laquelle l'utilisateur (U) exprime un besoin sous la forme d'une saisie sur une interface (Int) ; - une étape (102) selon laquelle le moteur de recommandation (MR) calcule, en fonction du besoin exprimé par l'utilisateur (U), une recommandation ; - une étape (103) selon laquelle un afficheur (D) affiche la recommandation calculée par le moteur de recommandation (MR) ; le moteur de recommandation (MR) utilisant, pour le calcul de la recommandation, un catalogue normalisé (C_Nrm), le catalogue normalisé étant obtenu par : - une étape (201) de réalisation d'un catalogue brut (C_b) d'objets complexes (obj1, obj2, obj3, obj4) d'un domaine prédéfini, chaque objet complexe présentant une description textuelle ; - une étape (202) d'identification et de suppression d'éventuels doublons parmi les objets complexes du catalogue brut (C_b), pour l'obtention d'un catalogue affiné (C_n) ; - une étape (203) de réalisation d'une modélisation (Onto_C), dite « ontologie catalogue », du domaine prédéfini, l'ontologie catalogue (Onto_C) comportant une hiérarchie de premières caractéristiques ; - une étape (204) d'annotation, selon laquelle on recherche au moins une manifestation de chaque première caractéristique de l'ontologie catalogue (Onto_C) dans la description textuelle de chaque objet complexe du catalogue affiné (C_n) et on annote chaque objet complexe du catalogue affiné (C_n) avec chaque première caractéristique de l'ontologie catalogue (Onto_C) dont au moins une manifestation a été trouvée dans la description textuelle dudit objet complexe, pour l'obtention d'un catalogue formalisé (C_Frm) ; - une étape (205) de réalisation d'une modélisation (Onto_U), dite« ontologie utilisateur », des critères de choix d'un objet complexe du domaine prédéfini, l'ontologie utilisateur (Onto_U) comportant une hiérarchie de deuxièmes caractéristiques ; - une étape (206) d'alignement de l'ontologie utilisateur (Onto_U) avec l'ontologie catalogue (Onto_C), selon laquelle on associe à chaque deuxième caractéristique de l'ontologie utilisateur (Onto_U) au moins une première caractéristique de l'ontologie catalogue (Onto_C), avec une valeur normalisée quantifiant le degré de correspondance de ladite première caractéristique à ladite deuxième caractéristique, pour l'obtention du catalogue normalisé (C_Nrm). 2. Procédé (100) selon la revendication précédente caractérisé en ce que le catalogue brut d'objets complexes (C_b) du domaine prédéfini est obtenu en compilant une pluralité de catalogues d'objets complexes du domaine prédéfini. 3. Procédé (100) selon l'une quelconque des revendications précédentes caractérisé en ce que chaque première caractéristique de l'ontologie catalogue (Onto_C) comporte une définition et un ou plusieurs exemples. 20 4. Procédé (100) selon la revendication précédente caractérisé en ce qu'un ensemble de signes linguistiques simples est associé à chaque première caractéristique de l'ontologie catalogue (Onto_C), chaque signe linguistique simple étant une manifestation linguistique pouvant être utilisée 25 pour désigner ou évoquer ladite première caractéristique. 5. Procédé (100) selon l'une quelconque des revendications 3 ou 4 caractérisé en ce qu'un ensemble de signes linguistiques complexes est associé à chaque première caractéristique de l'ontologie catalogue 30 (Onto_C), chaque signe linguistique complexe permettant de contribuer à différencier plusieurs premières caractéristiques de l'ontologie catalogue. 6. Procédé (100) selon l'une quelconque des revendications précédentescaractérisé en ce que l'étape (204) d'annotation de chaque objet complexe du catalogue affiné (C_n) avec au moins une première caractéristique de l'ontologie catalogue (Onto_C) comporte les sous-étapes suivantes : - une première sous-étape d'annotation de chaque objet complexe du catalogue affiné (C_n) avec une ou plusieurs annotations candidates, en fonction de correspondances détectées entre au moins un élément textuel de la description textuelle dudit objet complexe et une ou plusieurs premières caractéristiques de l'ontologie catalogue (Onto_C) ; - une deuxième sous-étape de détection d'incohérences dans les annotations candidates précédemment établies pour ne conserver que des annotations cohérentes. 7. Procédé (100) selon la revendication précédente caractérisé en ce que la deuxième sous-étape de détection d'incohérences utilise une pluralité de règles d'incompatibilité, chaque règle d'incompatibilité définissant : - une contrainte d'incompatibilité entre un premier type d'annotation et un deuxième type d'annotation, - ainsi qu'une priorité, du premier type d'annotation sur le deuxième type d'annotation, ou du deuxième type d'annotation sur le premier type d'annotation, afin de pouvoir choisir le cas échéant l'annotation à conserver et l'annotation à supprimer. 8. Procédé (100) selon l'une quelconque des revendications 6 ou 7 caractérisé en ce que l'étape (204) étape d'annotation comporte une troisième sous-étape de complétion des annotations cohérentes avec des annotations affiliées. 9. Procédé (100) selon la revendication précédente caractérisé en ce que la troisième sous-étape de complétion utilise une pluralité de règles d'implication, chaque règle d'implication permettant de tester l'existence d'un premier type d'annotation pour un objet complexe et, le cas échéant, d'annoter ledit objet complexe avec un deuxième type d'annotation complémentaire du premier type d'annotation. 10. Procédé (100) selon l'une quelconque des revendications précédentes caractérisé en ce que l'étape (206) d'alignement de l'ontologie utilisateur (Onto_U) avec l'ontologie catalogue (Onto_C) est réalisée manuellement. 11. Procédé (100) selon l'une quelconque des revendications précédentes caractérisé en ce que le domaine prédéfini est celui des jeux et des jouets et en ce que les objets complexes sont des jeux ou des jouets. 12. Système de recommandation automatique d'objets complexes à un utilisateur (U) caractérisé en ce qu'il comporte : - un premier module (mod1) de génération d'un catalogue brut (C_b) d'objets complexes du domaine prédéfini, chaque objet complexe présentant une description textuelle ; - un deuxième module (mod2) de nettoyage, acceptant en entrée ledit catalogue brut (C_b) et renvoyant en sortie un catalogue affiné (C_n), le deuxième module comportant des moyens pour identifier et supprimer d'éventuels doublons parmi les objets complexes du catalogue brut (C_b) ; - un troisième module (mod3) de génération d'une formalisation (Onto_C), dite « ontologie catalogue », du domaine prédéfini, l'ontologie catalogue (Onto_C) comportant une hiérarchie de premières caractéristiques ; - un quatrième module (mod4) de formalisation, acceptant en entrée le catalogue affiné (C_n) et l'ontologie catalogue (Onto_C) et renvoyant en sortie un catalogue formalisé (C_Frm), le quatrième module (mod4) comportant des moyens pour annoter chaque objet complexe du catalogue affiné (C_n) avec au moins une première caractéristique de l'ontologie catalogue (Onto_C) ; - un cinquième module (mod5) de génération d'une formalisation (Onto_U), dite « ontologie utilisateur », des critères de choix d'un objet complexe du domaine prédéfini, l'ontologie utilisateur (Onto_U) comportant une hiérarchie de deuxièmes caractéristiques ; - un sixième module (mod6) de normalisation, acceptant en entrée lecatalogue formalisé (C_Frm) et l'ontologie utilisateur (Onto_U) et renvoyant en sortie un catalogue normalisé (C_Nrm), le sixième module comportant des moyens pour associer à chaque deuxième caractéristique de l'ontologie utilisateur (Onto_U) au moins une première caractéristique de l'ontologie catalogue (Onto_C), avec une valeur normalisée quantifiant le degré de correspondance de ladite première caractéristique à ladite deuxième caractéristique ; un moteur de recommandation (MR) acceptant en entrée le catalogue normalisé (C_Nrm) et une expression d'un besoin de l'utilisateur (U) dans le domaine prédéfini d'objets complexes, ladite expression comprenant au moins une deuxième caractéristique de la hiérarchie de deuxièmes caractéristiques de l'ontologie utilisateur (Onto_U), et renvoyant en sortie une recommandation en fonction de ladite expression et du catalogue normalisé (C_Nrm) ; une interface (Int) permettant à l'utilisateur (U) de saisir l'expression de son besoin dans le domaine prédéfini d'objets complexes ; un afficheur (D) permettant d'afficher la recommandation renvoyée par le moteur de recommandation (MR). 13. Produit programme d'ordinateur qui, lorsqu'il est chargé sur un ordinateur, comporte des moyens pour mettre en oeuvre les étapes du procédé (100) selon l'une quelconque des revendications 1 à 11.