FR3079040A1 - SYSTEM AND METHOD FOR PROVIDING PRODUCTS - Google Patents

SYSTEM AND METHOD FOR PROVIDING PRODUCTS Download PDF

Info

Publication number
FR3079040A1
FR3079040A1 FR1852213A FR1852213A FR3079040A1 FR 3079040 A1 FR3079040 A1 FR 3079040A1 FR 1852213 A FR1852213 A FR 1852213A FR 1852213 A FR1852213 A FR 1852213A FR 3079040 A1 FR3079040 A1 FR 3079040A1
Authority
FR
France
Prior art keywords
auxiliary
products
request
product
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1852213A
Other languages
French (fr)
Other versions
FR3079040B1 (en
Inventor
Muriel Becker
Vincent Laperrousaz
David Pauchet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Priority to FR1852213A priority Critical patent/FR3079040B1/en
Priority to ES19162960T priority patent/ES2900101T3/en
Priority to EP19162960.9A priority patent/EP3540606B1/en
Publication of FR3079040A1 publication Critical patent/FR3079040A1/en
Application granted granted Critical
Publication of FR3079040B1 publication Critical patent/FR3079040B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation

Landscapes

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

Abstract

Il est fourni un système serveur (10) pour déterminer une liste de produits en réponse à une requête client provenant d'un dispositif client lors d'une session de requête/réponse, la requête client comprenant un ou plusieurs paramètres de requête, le système comprenant un estimateur de produit configuré pour déterminer une liste de produits principaux, ladite liste des produits principaux comprenant une estimation de l'un ou plusieurs des produits principaux correspondant à la requête client. Le système coopère par ailleurs avec une base de données d'estimation de produits auxiliaires stockant des données historiques associées à des ensembles de produits auxiliaires, les données historiques étant représentées par une structure de données en arbre (8) composée de nœuds. Le système serveur comprend un estimateur de produit auxiliaire (102) pour déterminer, à partir de la structure de données en arbre, une fréquence d'occurrence et une information de valeur du produit auxiliaire pour chaque ensemble de produits auxiliaires dans une liste d'ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires. Le système serveur fournit une liste de produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client, en utilisant de la fréquence d'occurrence et l'information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de ladite liste d'ensembles de produits auxiliaires.A server system (10) is provided for determining a list of products in response to a client request from a client device during a request / response session, the client request including one or more request parameters, the system comprising a product estimator configured to determine a list of main products, said list of main products including an estimate of one or more of the main products corresponding to the customer request. The system also cooperates with an ancillary product estimation database storing historical data associated with sets of auxiliary products, the historical data being represented by a tree data structure (8) composed of nodes. The server system includes an auxiliary product estimator (102) for determining, from the tree data structure, an occurrence frequency and auxiliary product value information for each set of ancillary products in a list of sets. of auxiliary products, in response to the customer request, the list of auxiliary product sets comprising at least one set of auxiliary products. The server system provides a list of candidate ancillary products for each main product determined in response to the client request, using the occurrence frequency and the auxiliary product value information determined for each set of ancillary products of said list of auxiliary products. sets of auxiliary products.

Description

SYSTÈME ET PROCÉDÉ DE FOURNITURE DE PRODUITSSYSTEM AND METHOD FOR PROVIDING PRODUCTS

DOMAINE TECHNIQUETECHNICAL AREA

L’invention se rapporte généralement aux architectures client/serveur et, en particulier, aux systèmes, procédés et systèmes informatiques pour fournir des produits à un dispositif client en réponse à une requête client.The invention generally relates to client / server architectures and, in particular, to computer systems, methods, and systems for delivering products to a client device in response to a client request.

CONTEXTECONTEXT

Au cours de ces dernières décennies, Internet a considérablement révolutionné l’architecture des systèmes informatisés. En particulier, Internet a transformé les systèmes conventionnels de fournisseurs de contenu en des systèmes en ligne dynamiques et extrêmement interactifs utilisant des architectures client/serveur.In recent decades, the Internet has revolutionized the architecture of computer systems considerably. In particular, the Internet has transformed conventional content provider systems into dynamic and highly interactive online systems using client / server architectures.

Les systèmes modernes de fournisseurs de contenu utilisent un ou plusieurs dispositifs serveurs informatiques (appelés aussi dispositifs serveurs ou serveurs) qui reçoivent des requêtes client provenant de dispositifs informatiques clients (appelés aussi dispositifs client) par l’intermédiaire d’une interface utilisateur dédiée via un réseau de communication. Un utilisateur peut par conséquent soumettre directement une requête pour du contenu (également appelée une interrogation) en utilisant un dispositif client via l’interface utilisateur dédiée pour accéder au contenu tel qu’un produit. Le dispositif du serveur peut rechercher un ou plusieurs produits candidats qui répondent à la requête de l’utilisateur, à l’aide d’un moteur de recherche, et renvoyer une réponse au dispositif client via l’interface dédiée. La réponse peut comporter la liste des produits candidats (appelés aussi propositions de produits ou solutions) déterminée par le moteur de recherche et diverses informations se rapportant à chaque produit candidat. L’utilisateur peut alors sélectionner un produit parmi les produits candidats et initier une transaction d’achat pour acheter le produit.Modern content provider systems use one or more computer server devices (also called server devices or servers) that receive client requests from client computer devices (also called client devices) through a dedicated user interface via a communication network. A user can therefore directly submit a request for content (also called a query) using a client device via the dedicated user interface to access content such as a product. The server device can search for one or more candidate products that respond to the user's request, using a search engine, and return a response to the client device via the dedicated interface. The response may include the list of product candidates (also called product proposals or solutions) determined by the search engine and various information relating to each product candidate. The user can then select a product from among the candidate products and initiate a purchase transaction to purchase the product.

Certains systèmes de fournisseurs de contenu existants fournissent aussi des produits auxiliaires appelés aussi « produits complémentaires » ou « services » en relation avec les produits fournis. Ces services auxiliaires peuvent être fournis directement par le système du fournisseur de contenu ou fournis par un autre système fournisseur de contenu indirect.Certain systems of existing content providers also provide ancillary products also called “complementary products” or “services” in relation to the products supplied. These ancillary services may be provided directly by the content provider's system or provided by another indirect content provider system.

Par exemple, le système du fournisseur de contenu peut être un système fournisseur de voyage qui détermine les meilleures options de voyage en réponse à une requête de l’utilisateur pour un voyage, l’utilisateur spécifiant sur une interface utilisateur un ensemble de paramètres tels qu’une date, un lieu de départ géographique et un lieu d’arrivée géographique, et les préférences supplémentaires éventuelles de l’utilisateur (p. ex. critères de prix, correspondances, etc.) L’utilisateur peut ainsi accéder à l’interface utilisateur dédiée du système de gestion des voyages et soumettre une requête de voyage pour obtenir des renseignements sur le voyage et/ou acheter un produit de voyage (réservation de voyage) tel qu’un produit de vol pour un itinéraire donné, à une date donnée. Dans certaines situations, l’utilisateur peut avoir besoin de services supplémentaires liés au produit de voyage tels que des services optionnels liés au voyage (p. ex. service de repas, services associés au siège, service de transport d’animaux de compagnie, etc.)For example, the content provider system may be a travel provider system which determines the best travel options in response to a user request for a trip, the user specifying on a user interface a set of parameters such as '' a date, a place of geographic departure and a place of geographic arrival, and any additional preferences of the user (e.g. price criteria, connections, etc.) The user can thus access the interface dedicated user of the travel management system and submit a travel request to obtain travel information and / or purchase a travel product (travel reservation) such as a flight product for a given route, on a given date . In some situations, the user may need additional travel product related services such as optional travel related services (e.g. meal service, seat related services, pet transportation service, etc. .)

Le moteur de recherche des systèmes de fournisseurs de contenu classiques utilise d’importantes ressources pour traiter chaque requête utilisateur, ce traitement nécessitant un nombre élevé d’accès aux données stockées dans plusieurs bases de données ou des ressources de mémoire-cache, et pour déterminer les produits candidats, donnant ainsi lieu à des coûts de calcul élevés.The search engine of conventional content provider systems uses significant resources to process each user request, this processing requiring a large number of accesses to data stored in several databases or cache resources, and to determine product candidates, thus giving rise to high calculation costs.

Pour optimiser les coûts de calcul du moteur de recherche, différentes approches ont été proposées. Une première approche repose sur une limitation du domaine de recherche dans lequel le moteur de recherche détermine la solution candidate en utilisant un algorithme de recherche optimisé ou un préfiltrage.To optimize the search engine calculation costs, different approaches have been proposed. A first approach is based on a limitation of the search area in which the search engine determines the candidate solution using an optimized search algorithm or pre-filtering.

Une autre approche existante consiste à utiliser des données précalculées pour limiter les calculs requis afin de traiter chaque requête.Another existing approach consists in using precalculated data to limit the calculations required in order to process each request.

Pour optimiser les ressources du système du fournisseur de contenu (système de réservation ou d’achat par exemple), une autre approche existante a été proposée, qui repose sur l’utilisation d’un système « pré-transactionnel » de fournisseur de contenu (appelé aussi système de «pré-réservation», «préachat», ou de «pré-finalisation d’achat» par exemple) connecté au système de transactions pour fournir des recommandations de produit dans une phase pré-transactionnelle (appelée aussi une « recommandation » ou phase de « prétraitement »). Le système pré-transactionnel du fournisseur de contenu (appelé aussi un système pré-transactionnel ci-après) fournit des informations sur le produit à un dispositif client dérivées de données statistiques en réponse à une requête utilisateur. Plus précisément, au lieu de calculer la réponse à chaque requête en temps réel à partir de bases de données à jour, le système pré-transactionnel du fournisseur de contenu utilise des données statistiques liées à des produits déjà achetés sur une période antérieure. De même pour le système de transactions du fournisseur de contenu, le système pré-transactionnel du fournisseur de contenu renvoie les produits candidats (par exemple, les propositions de voyage) au dispositif client, les informations associées aux produits (comme le prix du produit par exemple) étant ainsi déterminées à partir de transactions antérieures. Par ailleurs, le système pré-transactionnel du fournisseur de contenu peut traiter une requête, même si un nombre limité de paramètres de requête est saisi par l’utilisateur. L’utilisateur a ainsi accès à des informations statistiques sur les produits disponibles, sans recourir au moteur de recherche pour traiter les requêtes en temps réel, ainsi que l’accès à plusieurs bases de données. Si l’utilisateur souhaite effectuer une transaction (acheter ou réserver un produit), il peut sélectionner un produit dans l’interface dédiée au système pré-transactionnel du fournisseur de contenu pour être redirigé vers le système du fournisseur de contenu ou il peut accéder directement au système du fournisseur de contenu.To optimize the resources of the content provider system (reservation or purchase system for example), another existing approach has been proposed, which is based on the use of a “pre-transactional” content provider system ( also called “pre-reservation”, “pre-purchase”, or “pre-finalization of purchase” system, for example) connected to the transaction system to provide product recommendations in a pre-transactional phase (also called a “recommendation” ”Or“ pre-treatment ”phase). The content provider's pre-transaction system (also called a pre-transaction system below) provides product information to a client device derived from statistical data in response to a user request. More specifically, instead of calculating the response to each request in real time from up-to-date databases, the content provider's pre-transaction system uses statistical data related to products already purchased in a previous period. Likewise for the content provider's transaction system, the content provider's pre-transaction system returns the candidate products (for example, travel offers) to the client device, the information associated with the products (such as the price of the product by example) thus being determined from previous transactions. In addition, the content provider’s pre-transaction system can process a request, even if a limited number of request parameters are entered by the user. The user thus has access to statistical information on the products available, without using the search engine to process queries in real time, as well as access to several databases. If the user wishes to make a transaction (buy or reserve a product), he can select a product in the interface dedicated to the pre-transaction system of the content provider to be redirected to the system of the content provider or he can directly access to the content provider's system.

Actuellement, ces systèmes pré-transactionnels ne peuvent fournir que des informations sur les produits directs (produits principaux) envoyées par le système du fournisseur de contenu parce qu’ils traitent un volume conséquent de données liées aux produits. Les systèmes conventionnels pré-transactionnels ne fournissent généralement pas d’information sur les produits complémentaires (c.-à-d. les services) associés à un produit (par exemple la disponibilité du service en rapport à un prix de produit et de service). Dans certains cas, ils peuvent au plus fournir des informations très limitées et pas tout à fait exactes sur les services auxiliaires. Du fait de la relation entre un produit et un service auxiliaire, fixer les valeurs pour un service (les valeurs du service ou les prix) nécessite de corréler ces valeurs à la valeur du produit (prix du produit), ce qui implique une complexité de traitement exponentielle.Currently, these pre-transaction systems can only provide direct product information (main products) sent by the content provider's system because they process a large amount of product-related data. Conventional pre-transaction systems generally do not provide information on complementary products (i.e., services) associated with a product (e.g. availability of service in relation to product and service price) . In some cases, they can at most provide very limited and not entirely accurate information on ancillary services. Because of the relationship between a product and an auxiliary service, fixing the values for a service (the values of the service or the prices) requires correlating these values with the value of the product (price of the product), which implies a complexity of exponential processing.

Toutefois, dans certaines situations, un utilisateur validera/finalisera une transaction (p. ex. l’achat d’un produit) uniquement si certains services sont disponibles. Des services exemplaires dans le domaine des voyages incluent par exemple une chambre supplémentaire, la disponibilité d’un repas végétarien, la disponibilité de la vidéo à la demande durant un vol, les options de voyage pour les animaux, etc. Par conséquent, après avoir accédé au système prétransactionnel, un utilisateur peut soumettre plusieurs requêtes de transaction au système du fournisseur de contenu de transactions, accéder aux propositions de produit et vérifier les options de service. L’utilisateur peut enfin décider de ne pas procéder à la transaction en raison de l’indisponibilité du(des) service(s) spécifique(s), ou soumettre des requêtes supplémentaires au système du fournisseur de contenu de transactions avec des paramètres différents pour essayer de trouver des produits avec le(s) service(s) souhaité(s) au meilleur prix. Cela se traduit par un coût de calcul supplémentaire au niveau du système de transaction. Ce coût supplémentaire est d’autant plus important, qu’une l’association de la sorte à des services à des produits nécessite des ressources de calcul importantes avec plusieurs accès à différentes bases de données du côté du serveur. Cette surcharge du système de transactions peut limiter ses performances, le délai de traitement des requêtes et sa qualité de service. L’expérience de l’utilisateur peut être profondément affectée par une vitesse de traitement aussi lente, dissuadant ainsi les utilisateurs d’effectuer la transaction, ou les incitant à se tourner vers un autre système fournisseur de contenu.However, in certain situations, a user will validate / finalize a transaction (e.g. the purchase of a product) only if certain services are available. Exemplary travel services include, for example, an extra bedroom, the availability of a vegetarian meal, the availability of video on demand during a flight, travel options for animals, etc. Therefore, after accessing the pre-transaction system, a user can submit multiple transaction requests to the transaction content provider system, access product proposals, and check service options. The user can finally decide not to proceed with the transaction due to the unavailability of the specific service (s), or submit additional requests to the system of the transaction content provider with different parameters for try to find products with the desired service (s) at the best price. This results in an additional calculation cost at the transaction system level. This additional cost is all the more important, since associating it in this way with services to products requires significant computing resources with several accesses to different databases on the server side. This overload of the transaction system can limit its performance, the time taken to process requests and its quality of service. The user experience can be deeply affected by such a slow processing speed, dissuading users from completing the transaction, or enticing them to switch to another content provider system.

Des systèmes améliorés et des procédés pour fournir des services et des produits associés aux produits qui limitent la surcharge du système fournisseur de contenu sont par conséquent requis.Improved systems and methods for providing services and products associated with the products which limit the overload of the content provider system are therefore required.

RÉSUMÉABSTRACT

Afin de répondre à ces problèmes et à d’autres, il est fourni un système serveur configuré pour déterminer une liste de produits en réponse à une requête client provenant d’un dispositif client lors d’une session de requête/réponse, la requête client comprenant un ou plusieurs paramètres de requête. Le système serveur comprend un estimateur de produit configuré pour déterminer une liste des principaux produits, la liste des produits principaux comprenant une estimation de l’un ou de plusieurs des produits principaux correspondant à la requête client. Le système serveur coopère par ailleurs avec une base de données d’estimation de produits auxiliaires configurée pour stocker des données historiques associées aux ensembles de produits auxiliaires, les données historiques étant représentées par une structure de données en arbre composée de nœuds. Le système serveur comprend par ailleurs un estimateur de produits auxiliaires configuré pour déterminer à partir de la structure de données en arbre une fréquence d’occurrence et une information de valeur des produits auxiliaires pour chaque produit auxiliaire figurant sur une liste d’ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires, le système serveur étant configuré pour fournir par ailleurs une liste de produits auxiliaires candidats pour chaque produit principal déterminée en réponse à la requête client en utilisant la fréquence d’occurrence et de l’information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires.In order to address these and other problems, there is provided a server system configured to determine a list of products in response to a client request from a client device during a request / response session, the client request. including one or more query parameters. The server system includes a product estimator configured to determine a list of main products, the list of main products including an estimate of one or more of the main products corresponding to the customer request. The server system also cooperates with an auxiliary product estimation database configured to store historical data associated with the sets of auxiliary products, the historical data being represented by a tree data structure composed of nodes. The server system further includes an auxiliary product estimator configured to determine from the tree data structure an occurrence frequency and value information of the auxiliary products for each auxiliary product appearing on a list of sets of auxiliary products. , in response to the customer request, the list of sets of auxiliary products comprising at least one set of auxiliary products, the server system being configured to supply in addition a list of candidate auxiliary products for each main product determined in response to the customer request using the frequency of occurrence and the auxiliary product value information determined for each set of auxiliary products from the list of sets of auxiliary products.

Dans certains modes de réalisation, la requête client est reçue à un instant de traitement donné, chaque ensemble de produits auxiliaires identifiant un ou plusieurs produits auxiliaires associés à un produit principal. Les données historiques peuvent ensuite comporter les données collectées à partir des sessions de requête/réponse précédentes, chaque session de requête/réponse précédente étant implémentée entre un dispositif client et un système fournisseur de produits liés à la base de données d’estimation des produits auxiliaires pendant une période de temps prédéfinie avant le délai de traitement.In certain embodiments, the client request is received at a given processing time, each set of auxiliary products identifying one or more auxiliary products associated with a main product. The historical data can then include the data collected from the previous request / response sessions, each previous request / response session being implemented between a client device and a product supplier system linked to the auxiliary products estimation database. for a predefined period of time before the processing time.

La structure de données en arbre peut comprendre un nœud racine et une pluralité de niveaux, chaque niveau de la structure de données en arbre correspondant à un paramètre dérivé d’un ou de plusieurs paramètres de requête. Chaque nœud d’un niveau donné de la structure de données en arbre peut alors comporter une valeur de nœud représentant une valeur du paramètre correspondant au niveau, la valeur étant attribuée au paramètre de la requête dans l’une ou plusieurs des sessions de requête/réponse précédentes au fil du temps. Le dernier niveau de chaque branche de l’arbre peut comporter des nœuds-feuilles, avec chaque nœud-feuille correspondant à un ensemble donné de produits auxiliaires.The tree data structure may include a root node and a plurality of levels, each level of the tree data structure corresponding to a parameter derived from one or more query parameters. Each node of a given level of the tree data structure can then comprise a node value representing a value of the parameter corresponding to the level, the value being assigned to the parameter of the request in one or more of the request sessions / previous responses over time. The last level of each branch of the tree can have leaf nodes, with each leaf node corresponding to a given set of auxiliary products.

Dans certains modes de réalisation, chaque nœud-feuille de la structure de données en arbre correspondant à un ensemble de produits auxiliaires comprend par ailleurs une valeur de compteur et une information de valeur, ladite valeur de compteur indiquant le nombre d’occurrences de l’ensemble de produits auxiliaires dans les sessions précédentes de requête/réponse, l’estimateur de produit auxiliaire étant configuré pour déterminer la fréquence d’occurrence de chaque ensemble de produits auxiliaires de la liste d’ensembles de produits auxiliaires en utilisant la valeur de compteur du nœud-feuille correspondant audit ensemble de produits auxiliaires dans la structure de données structure de données en arbre, l’estimateur de produit auxiliaire étant par ailleurs configuré pour déterminer I’ information de valeur du produit auxiliaire pour chaque ensemble de produits auxiliaires de ladite liste des ensembles de produits auxiliaires à partir des informations de la valeur du nœud-feuille correspondant à l’ensemble de produits auxiliaires dans la structure de données structure de données en arbre.In certain embodiments, each leaf node of the tree data structure corresponding to a set of auxiliary products also includes a counter value and value information, said counter value indicating the number of occurrences of the set of auxiliary products in previous request / response sessions, the auxiliary product estimator being configured to determine the frequency of occurrence of each set of auxiliary products in the list of sets of auxiliary products using the counter value of the leaf node corresponding to said set of auxiliary products in the data structure of the tree data structure, the auxiliary product estimator being further configured to determine the value information of the auxiliary product for each set of auxiliary products from said list of sets of ancillary products from information of the value of the leaf node corresponding to the set of auxiliary products in the tree structure data structure.

Dans un mode de réalisation, l’information de valeur comprise dans chaque nœudfeuille correspondant à un ensemble donné de produits auxiliaires comprend une fourchette de valeurs définie par un seuil inférieur et un seuil supérieur, le seuil inférieur représentant la valeur inférieure attribuée à l’ensemble des produits auxiliaires dans une session de requête/réponse précédente au cours de la période de temps prédéfinie et le seuil supérieur représentant la valeur la plus élevée attribuée à l’ensemble de produits auxiliaires dans une session de requête/réponse précédente au cours de ladite période de temps prédéfinie.In one embodiment, the value information included in each leaf node corresponding to a given set of auxiliary products comprises a range of values defined by a lower threshold and an upper threshold, the lower threshold representing the lower value assigned to the set ancillary products in a previous request / response session during the predefined period of time and the upper threshold representing the highest value assigned to the set of auxiliary products in a previous request / response session during said period predefined time.

Si la requête client comporte un paramètre de requête spécifiant un ensemble donné de produits auxiliaires, la liste des ensembles de produits auxiliaires peut comprendre l’ensemble de produits auxiliaires, l’estimateur de produit auxiliaire étant configuré pour parcourir la structure de données structure de données en arbre selon un algorithme de recherche d’arbre pour déterminer un nœud correspondant ayant un chemin dans l’arbre correspondant aux paramètres de requête de la requête client, l’estimateur de produit auxiliaire étant par ailleurs configuré pour rechercher un nœud-feuille dans un sous-arbre du nœud correspondant qui correspond à l’ensemble donné de produits auxiliaires et une condition de seuil associée à la fréquence d’occurrence du nœud-feuille, la fréquence d’occurrence et l’information de valeur du produit auxiliaire de l’unique ensemble de produits auxiliaires étant retirées du nœud-feuille.If the customer request includes a request parameter specifying a given set of auxiliary products, the list of sets of auxiliary products can include the set of auxiliary products, the estimator of auxiliary product being configured to browse the data structure data structure in a tree according to a tree search algorithm to determine a corresponding node having a path in the tree corresponding to the request parameters of the customer request, the auxiliary product estimator being also configured to search for a leaf node in a sub-tree of the corresponding node which corresponds to the given set of auxiliary products and a threshold condition associated with the frequency of occurrence of the leaf node, the frequency of occurrence and the value information of the auxiliary product of the single set of auxiliary products being removed from the leaf node.

Si la requête client ne comprend pas un paramètre de requête spécifiant un ensemble de produits auxiliaires défini, l’estimateur de produit auxiliaire est configuré pour parcourir la structure de données structure de données en arbre selon un algorithme de recherche d’arbre pour déterminer un nœud correspondant ayant un chemin dans l’arbre correspondant aux paramètres de requête client, l’estimateur de produit auxiliaire étant par ailleurs configuré pour rechercher tous les nœuds-feuilles dans un sous-arbre du nœud correspondant, l’estimateur de produit auxiliaire étant configuré pour déterminer un indicateur de popularité de l’ensemble du produit auxiliaire associé à chaque nœud-feuille trouvé, et choisir un ou plusieurs ensembles de produits auxiliaires parmi les ensembles de produits auxiliaires associés aux nœuds-feuilles en fonction des indicateurs de popularité, les ensembles de produits auxiliaires étant ajoutés dans la liste des ensembles de produits auxiliaires, la fréquence d’occurrence et les informations de valeur de chaque ensemble de produits auxiliaires dans la liste des ensembles de produits auxiliaires étant retirées du nœud-feuille correspondant.If the customer request does not include a request parameter specifying a defined set of auxiliary products, the auxiliary product estimator is configured to browse the data structure data structure in tree according to a tree search algorithm to determine a node correspondent having a path in the tree corresponding to the client request parameters, the auxiliary product estimator being furthermore configured to search all the leaf nodes in a sub-tree of the corresponding node, the auxiliary product estimator being configured for determine a popularity indicator of the set of auxiliary product associated with each leaf node found, and choose one or more sets of auxiliary product from the sets of auxiliary product associated with the leaf nodes according to the popularity indicators, the sets of auxiliary products being added to the list of sets s of auxiliary products, the frequency of occurrence and the value information of each set of auxiliary products in the list of sets of auxiliary products being removed from the corresponding leaf node.

Dans certains modes de réalisation, le système comprend un calculateur de popularité de produit auxiliaire configuré pour déterminer l’indicateur de la popularité de chaque ensemble de produits auxiliaires d’un nœud-feuille en utilisant de la fréquence d’occurrence associée au nœud-feuille.In some embodiments, the system includes an auxiliary product popularity calculator configured to determine the indicator of the popularity of each set of auxiliary products of a leaf node using the frequency of occurrence associated with the leaf node .

Le système peut comprendre par ailleurs un coordinateur de prétraitement configuré pour mettre à jour les informations de valeur estimées par l’estimateur de produit auxiliaire pour chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires à partir de données en temps réel.The system may further include a preprocessing coordinator configured to update the value information estimated by the auxiliary product estimator for each set of auxiliary products from the list of sets of auxiliary products from real-time data.

Dans un mode de réalisation, le système peut comprendre un corrélateur de produits auxiliaires configuré pour intégrer les informations de valeur de produit auxiliaire de chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires à la valeur d’un produit principal déterminé par l’estimateur de produit, en fonction d’un indicateur d’applicabilité.In one embodiment, the system may include an auxiliary product correlator configured to integrate the auxiliary product value information of each set of auxiliary products from the list of sets of auxiliary products to the value of a main product determined by l product estimator, based on an applicability indicator.

Le système peut comprendre par ailleurs un moteur d’apprentissage de produit auxiliaire configuré pour recueillir des métadonnées d’apprentissage au cours d’une période d’apprentissage prédéfinie, le système comprenant par ailleurs un gestionnaire d’arbre pour gérer la structure de données structure de données en arbre à l’aide des métadonnées d’apprentissage recueillies.The system may further comprise an auxiliary product learning engine configured to collect learning metadata during a predefined learning period, the system further comprising a tree manager for managing the structure data structure. tree data using the collected learning metadata.

Le gestionnaire d’arbre peut être configuré pour créer un nœud dans la structure de données structure de données en arbre en réponse à la spécification d’une nouvelle valeur d’un paramètre correspondant à un niveau de l’arbre, dans une session de requête/réponse en temps réel, et pour régler la valeur de compteur dudit nœud sur la valeur 1.The tree manager can be configured to create a node in the data structure tree data structure in response to the specification of a new value of a parameter corresponding to a level of the tree, in a query session / response in real time, and to set the counter value of said node to the value 1.

Le gestionnaire d’arbre peut être configuré pour mettre à jour un nœud dans la structure des données d’arbre chaque fois que la valeur associée audit nœud est spécifiée dans une session de requête/réponse pour le paramètre correspondant au niveau des nœuds, et pour incrémenter la valeur de compteur dudit nœud.The tree manager can be configured to update a node in the tree data structure each time the value associated with said node is specified in a request / response session for the parameter corresponding to the node level, and for increment the counter value of said node.

Le gestionnaire d’arbre peut être configuré pour vérifier périodiquement la configuration de la structure de données d’arbre et pour appliquer un algorithme d’équilibrage à la structure de données d’arbre si la structure de données d’arbre est déséquilibrée.The tree manager can be configured to periodically check the configuration of the tree data structure and to apply a balancing algorithm to the tree data structure if the tree data structure is unbalanced.

Par ailleurs, un procédé est fourni pour déterminer une liste de produits en réponse à une requête client provenant d’un dispositif client lors d’une session de requête/réponse, la requête client comprenant un ou plusieurs paramètres de requête, le procédé comprenant une phase de détermination d’une liste de produits principaux, la liste des produits principaux comprenant une estimation de l’un ou de plusieurs des produits principaux correspondant à la requête client. Le procédé consiste par ailleurs à déterminer une fréquence d’occurrence et une information de valeur de produit auxiliaire pour un ensemble de produits auxiliaires dans une liste d’ensembles de produits auxiliaires, à partir d’un arbre de données représentant les données historiques liées aux ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires, la structure de données en arbre étant composée de nœuds.Furthermore, a method is provided for determining a list of products in response to a client request coming from a client device during a request / response session, the client request comprising one or more request parameters, the method comprising a phase of determining a list of main products, the list of main products comprising an estimate of one or more of the main products corresponding to the customer request. The method further comprises determining an occurrence frequency and an auxiliary product value information for a set of auxiliary products in a list of sets of auxiliary products, from a data tree representing the historical data linked to the sets of auxiliary products, in response to the customer request, the list of sets of auxiliary products comprising at least one set of auxiliary products, the tree data structure being composed of nodes.

Le procédé comprend par ailleurs une étape consistant à fournir une liste de produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client à l’aide de la fréquence d’occurrence et de l'information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires.The method further comprises a step consisting in providing a list of candidate auxiliary products for each main product determined in response to the customer request using the frequency of occurrence and the auxiliary product value information determined for each set of auxiliary products from the list of sets of auxiliary products.

Par ailleurs, un produit-programme d’ordinateur est fourni pour déterminer une liste de produits en réponse à une requête client provenant d’un dispositif client lors d’une session de requête/réponse, la requête client comprenant un ou plusieurs paramètres de requête, le produit-programme d’ordinateur comprenant :Furthermore, a computer program product is provided to determine a list of products in response to a client request from a client device during a request / response session, the client request comprising one or more request parameters. , the computer program product comprising:

un support non transitoire de stockage de données lisibles par ordinateur; et un code de programme enregistré sur le support non transitoire de stockage lisible par ordinateur qui, lorsqu’il est exécuté par un ou plusieurs des processeurs, amène le ou les plusieurs processeurs à :a non-transient storage medium for computer-readable data; and a program code recorded on the non-transient computer-readable storage medium which, when executed by one or more of the processors, causes the one or more processors to:

-déterminer une liste des produits principaux, la liste des produits principaux comprenant une estimation de l’un ou de plusieurs des produits principaux correspondant à la requête client.-determine a list of main products, the list of main products including an estimate of one or more of the main products corresponding to the customer request.

L’un ou plusieurs des processeurs sont par ailleurs amenés à :One or more of the processors are also required to:

-déterminer une fréquence d’occurrence et une information de valeur de produits auxiliaire pour chaque ensemble de produits auxiliaires dans une liste d’ensembles de produits auxiliaires, à partir d’une structure de données en arbre représentant les données historiques liées aux ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires, la structure de données en arbre étant composée de nœuds.-determine a frequency of occurrence and information of value of auxiliary products for each set of auxiliary products in a list of sets of auxiliary products, from a tree data structure representing the historical data linked to the sets of products auxiliaries, in response to the customer request, the list of sets of auxiliary products comprising at least one set of auxiliary products, the tree data structure being composed of nodes.

L’un ou plusieurs processeurs sont par ailleurs amenés à fournir une liste des produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client à partir de la fréquence d’occurrence et de l’information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires.One or more processors are also required to provide a list of candidate auxiliary products for each main product determined in response to the customer request based on the frequency of occurrence and the auxiliary product value information determined for each set of auxiliary products from the list of sets of auxiliary products.

BRÈVE DESCRIPTION DES DESSINSBRIEF DESCRIPTION OF THE DRAWINGS

Les dessins accompagnant qui sont incorporés et constituent une partie de cette spécification, illustrent des modes variés de réalisation de l’invention et, avec la description générale de l’invention ci-dessus et la description détaillée des modes de réalisation donnée ciaprès, servent à expliquer les modes de réalisation de l’invention.The accompanying drawings which are incorporated and constitute a part of this specification, illustrate various embodiments of the invention and, with the general description of the invention above and the detailed description of the embodiments given below, serve to explain the embodiments of the invention.

- La figure 1 décrit un exemple d’un environnement d’exploitation d’un système fournisseur de contenu pré-transactionnel 10, selon certains modes de réalisation.FIG. 1 describes an example of an operating environment for a pre-transactional content provider system 10, according to certain embodiments.

- La Figure 2 représente un environnement d’exploitation du système prétransactionnel 10 d’un fournisseur de voyage (appelé ci-après «système de préréservation»), selon une application exemplaire de l’invention dans l’industrie du voyage.- Figure 2 shows an operating environment of the pre-transaction system 10 of a travel supplier (hereinafter called "pre-booking system"), according to an exemplary application of the invention in the travel industry.

- La figure 3 représente une implémentation exemplaire d’un système prétransactionnel, selon certains modes de réalisation.- Figure 3 shows an exemplary implementation of a pre-transaction system, according to some embodiments.

- La figure 4 est un diagramme décrivant une plateforme de recherche en masse exemplaire.- Figure 4 is a diagram describing an exemplary mass research platform.

- La figure 5 décrit de façon schématique une structure de données en arbre conforme à certains modes de réalisation.- Figure 5 schematically describes a tree data structure in accordance with certain embodiments.

- La figure 6 est un organigramme séquentiel décrivant le processus de détermination d’un ensemble de services, selon un mode de réalisation en mode ‘pull’.- Figure 6 is a sequential flowchart describing the process of determining a set of services, according to an embodiment in ‘pull’ mode.

- La figure 7 est un organigramme séquentiel décrivant le processus de détermination d’une liste d’ensembles de services, conforme à un mode de réalisation en mode ‘push’.- Figure 7 is a sequential flowchart describing the process of determining a list of service sets, according to an embodiment in ‘push’ mode.

- La figure 8 est un organigramme séquentiel décrivant le processus de commutation d’un mode d’estimation de service, conforme à certains modes de réalisation.- Figure 8 is a sequential flowchart describing the process of switching a service estimation mode, in accordance with certain embodiments.

- La figure 9 est un organigramme séquentiel décrivant le processus de détermination d’ensembles de services, selon certains modes de réalisation.- Figure 9 is a sequential flowchart describing the process of determining service sets, according to certain embodiments.

- La figure 10 est un organigramme séquentiel décrivant le processus de corrélation des services selon certains modes de réalisation.- Figure 10 is a sequential flowchart describing the process of correlation of services according to certain embodiments.

- La figure 11 représente un environnement d’exploitation exemplaire dans lequel un ou plusieurs composants d’un système pré-transactionnel peuvent être implémentés selon un mode de réalisation.- Figure 11 shows an exemplary operating environment in which one or more components of a pre-transaction system can be implemented according to one embodiment.

DESCRIPTION DÉTAILLÉEDETAILED DESCRIPTION

Les modes de réalisation de l’invention fournissent un système serveur et un procédé pour déterminer une liste de produits en réponse à une requête client reçue d’un dispositif client, dans un environnement informatique, au cours d’une session de requête/réponse, la liste des produits (appelée aussi recommandations de produits) comprenant une liste des produits candidats principaux qui satisfont la requête client et, pour au moins un produit principal, un ou plusieurs produits auxiliaires (aussi dénommés ci-après «services» ou «services auxiliaires») associés au produit principal proposé au dispositif client. Les modes de réalisation de l’invention ont des avantages particuliers lorsque la session de requête/réponse correspond à une phase pré-transactionnelle, l’invention permettant l’intégration de recommandations de services associées à chaque recommandation de produit déterminée en réponse à la requête client, au cours de cette phase pré-transactionnelle.The embodiments of the invention provide a server system and a method for determining a list of products in response to a client request received from a client device, in an IT environment, during a request / response session, the list of products (also called product recommendations) including a list of main candidate products which satisfy the customer request and, for at least one main product, one or more auxiliary products (also referred to below as "services" or "auxiliary services ») Associated with the main product offered to the client system. The embodiments of the invention have particular advantages when the request / response session corresponds to a pre-transaction phase, the invention allowing the integration of service recommendations associated with each product recommendation determined in response to the request. client, during this pre-transaction phase.

Tel qu’il est utilisé, le terme « pré-transactionnel » fait référence à une phase antérieure à un flux de transactions implémenté dans un système de transaction, un flux de transaction débutant à partir d’une requête d’utilisateur reçue par le système de transaction pour un produit spécifié par les paramètres de la requête et s’achevant par une opération d’achat d’un produit par l’entremise du système de transaction (le terme « transaction » fait aussi référence à un « achat », une «finalisation d’achat» ou une «réservation»). Dans une architecture de serveur client, une «transaction » correspond à une session de requête/réponse initiée par une requête client et finalisée par l’achat d’un produit (sélection d’un produit principal par l’utilisateur et validation de la sélection par le paiement de la valeur du prix associée au produit). La transaction du produit peut comprendre un ensemble comprenant un produit principal et un produit auxiliaire associé (ensemble de services) comprenant un ou plusieurs produits auxiliaires (les services) associés au produit principal, la valeur globale (prix total) de la transaction comprenant la valeur du produit principal ajoutée à la valeur de l’ensemble de services.As used, the term "pre-transactional" refers to a phase prior to a transaction flow implemented in a transaction system, a transaction flow starting from a user request received by the system transaction for a product specified by the request parameters and ending with a purchase operation of a product through the transaction system (the term "transaction" also refers to a "purchase", a "Finalization of purchase" or "reservation"). In a client server architecture, a "transaction" corresponds to a request / response session initiated by a client request and finalized by the purchase of a product (selection of a main product by the user and validation of the selection by paying the price value associated with the product). The transaction of the product may include a set comprising a main product and an associated auxiliary product (set of services) comprising one or more auxiliary products (the services) associated with the main product, the overall value (total price) of the transaction comprising the value of the main product added to the value of the service package.

Tel qu’il est utilisé, une phase pré-transactionnelle est déclenchée par une ou plusieurs requêtes d’utilisateur (qui peuvent être des requêtes « ouvertes ») et elle renvoie une liste des produits estimés être des produits candidats (également appelés « recommandations » de produits), fournie par le système de transaction en utilisant des données variées pouvant inclure des données statistiques. Ces données statistiques peuvent être utilisées pour fournir plus d’informations au cas où un ensemble donné de services n’aurait pas été précalculé. Une phase pré-transactionnelle renvoie ainsi des informations statistiques sur les produits.As used, a pre-transaction phase is triggered by one or more user requests (which may be “open” requests) and it returns a list of products estimated to be candidate products (also called “recommendations”) of products), provided by the transaction system using various data which may include statistical data. This statistical data can be used to provide more information in case a given set of services has not been pre-calculated. A pre-transaction phase thus returns statistical information on the products.

Faisant référence à la figure 1, il est montré un environnement d’exploitation exemplaire 100 du système d’un fournisseur de contenu pré-transactionnel 10, selon certains modes de réalisation.Referring to Figure 1, an exemplary operating environment 100 of the system of a pre-transactional content provider 10 is shown, according to some embodiments.

Le système 10 du fournisseur de contenu pré-transactionnel (également dénommé ciaprès système pré-transactionnel ou «système serveur») peut être configuré pour déterminer un ensemble de recommandations de produits candidats pour un dispositif d’utilisateur 2 en réponse à une requête d’utilisateur (dénommée requête pré-transactionnelle) identifiant un ou plusieurs paramètres de requête parmi un ensemble de paramètres de requête prédéfinis par un format de requête au cours d’une phase pré-transactionnelle.The pre-transactional content provider system 10 (also referred to as the pre-transactional system or "server system") may be configured to determine a set of product candidate recommendations for a user device 2 in response to a request for user (called pre-transactional request) identifying one or more request parameters from a set of request parameters predefined by a request format during a pre-transactional phase.

Dans un mode de réalisation, le système du fournisseur de contenu prétransactionnel 10 peut héberger un ou plusieurs sites Web et/ou avoir un service d’hébergement qui héberge un ou plusieurs sites Web.In one embodiment, the pre-transactional content provider system 10 can host one or more websites and / or have a hosting service that hosts one or more websites.

Tel qu’il est utilisé, le terme « contenu » fait référence à tout contenu qui peut être fourni à un dispositif d’utilisateur par l’entremise d’une interface d’utilisateur sous la forme de produits, chaque produit étant potentiellement associé à un ou à plusieurs services («services auxiliaires») associés aux produits. Chaque produit peut être défini par un ensemble de paramètres dépendant du champ d’application de l’invention, et par une valeur (le prix). Une représentation de ce contenu peut être générée sur une interface graphique d’utilisateur utilisant des éléments de représentation variés tels que du texte électronique, des images, des photos, des enregistrements audio et d’autres formes de données qui peuvent être traitées, stockées et retournées.As used, the term "content" refers to any content that can be provided to a user device through a user interface in the form of products, each product being potentially associated with one or more services ("ancillary services") associated with the products. Each product can be defined by a set of parameters depending on the field of application of the invention, and by a value (the price). A representation of this content can be generated on a graphical user interface using various elements of representation such as electronic text, images, photos, audio recordings and other forms of data which can be processed, stored and returned.

Chaque dispositif client 2 (également dénommé « dispositif d’utilisateur » peut être un dispositif informatique personnel, une tablette informatique, un terminal client léger (thin client), un smartphone et/ou un autre dispositif informatique de ce genre. Chaque dispositif client 2 peut héberger des navigateurs Web et/ou un logiciel d’applications personnalisées (p. ex. un système client), et peut inclure une interface d’utilisateur client.Each client device 2 (also known as a “user device” can be a personal computing device, a tablet computer, a thin client terminal, a smartphone and / or another such computing device. Each client device 2 may host web browsers and / or custom application software (eg client system), and may include a client user interface.

Chaque dispositif d’utilisateur 2 peut par ailleurs inclure une application de navigateur Web qui communique avec une application de serveur Web hébergée par le système prétransactionnel 10.Each user device 2 can also include a web browser application which communicates with a web server application hosted by the pre-transaction system 10.

Le système pré-transactionnel 10 peut communiquer avec un ou plusieurs systèmes de « transaction » de fournisseurs de contenu 12 (également appelé « système de transaction » 12) par l’entremise d’un réseau dédié 21 pour permettre au système pré-transactionnel 10 d’accéder à des données historiques conservées par chaque système de transaction 12.The pre-transaction system 10 can communicate with one or more content provider "transaction" systems 12 (also called "transaction system" 12) through a dedicated network 21 to enable the pre-transaction system 10 access historical data kept by each transaction system 12.

Chaque système de transaction 12 peut être configuré pour traiter en temps réel les requêtes d’utilisateurs (également appelées requêtes de « transaction ») en utilisant un moteur de recherche configuré pour accéder en temps réel à un ou à plusieurs contenus de bases de données. Il est par ailleurs adapté pour mettre en œuvre des transactions avec un utilisateur (telles que la réservation ou l’achat d’un produit et potentiellement de services associés au produit). Une transaction pour un produit est finalisée lorsqu’un utilisateur procède au paiement du produit et des services optionnels. Dans certains modes de réalisation, le système de transaction 12 peut être configuré pour ne traiter que les requêtes d’utilisateur qui comprennent un ensemble de paramètres de recherche obligatoires.Each transaction system 12 can be configured to process user requests in real time (also called "transaction" requests) using a search engine configured to access one or more database contents in real time. It is also suitable for implementing transactions with a user (such as booking or purchasing a product and potentially services associated with the product). A transaction for a product is finalized when a user pays for the product and optional services. In some embodiments, the transaction system 12 can be configured to process only user requests that include a set of mandatory search parameters.

Un utilisateur faisant fonctionner un des dispositifs d’utilisateur 2 peut faire interface directement avec le système pré-transactionnel 10 en utilisant une interface d’utilisateur prétransactionnelle dédiée au cours d’une session client/serveur. Dans certains modes de réalisation, le système pré-transactionnel 10 peut être configuré pour rediriger un dispositif d’utilisateur 2 vers une interface dédiée du système de transaction 12, en réponse à une sélection d’un produit par un utilisateur. L’utilisateur peut par ailleurs faire interface directement avec le système du fournisseur de contenu de transaction 12 en utilisant l’interface d’utilisateur pré-transactionnelle dédiée.A user operating one of the user devices 2 can interface directly with the pre-transaction system 10 using a dedicated pre-transaction user interface during a client / server session. In certain embodiments, the pre-transaction system 10 can be configured to redirect a user device 2 to a dedicated interface of the transaction system 12, in response to a selection of a product by a user. The user can also interface directly with the transaction content provider system 12 using the dedicated pre-transactional user interface.

Le système du fournisseur de contenu de transaction 12 peut stocker un compte d’utilisateur si l’utilisateur est déjà enregistré ou peut autrement ne comprendre aucune donnée liée à l’utilisateur si l’utilisateur n’a pas créé un compte d’utilisateur précédemment.The transaction content provider system 12 can store a user account if the user is already registered or may otherwise not understand any user related data if the user has not previously created a user account .

Le système pré-transactionnel 10 et le système de transaction 12 sont dédiés au même domaine d’application (par exemple, l’industrie du voyage). Le système pré-transactionnel 10 et le système transactionnel 12 peuvent être configurés pour déterminer des produits candidats du même type. Cependant, ils font référence à des phases de transaction différentes. Par ailleurs, alors que le système du fournisseur de contenu de transaction 12 peut comprendre un moteur de recherche qui implémente un algorithme de recherche pour rechercher des produits correspondants à une requête dans une ou plusieurs bases de données de contenu, le système pré-transactionnel 10 peut comprendre un estimateur de produit 101 configuré pour estimer les solutions de produits (les produits candidats) pour une requête d’utilisateur en recherchant des données statistiques liées à des transactions passées, réalisées par le système de transaction 12, sans avoir besoin d’accéder à de multiples bases de données de contenu. Par conséquent, alors que les réponses retournées par le système pré-transactionnel 10 peuvent être basées sur des données historiques, les réponses retournées par le système du fournisseur de contenu de transaction 12 peuvent être basées sur des données en temps réel récupérées à partir des bases de données de contenu. Le système pré-transactionnel 10 limite ainsi la charge du système du fournisseur de contenu de transaction 12, un utilisateur désirant avoir une vue des options de produits possibles étant capable de soumettre une requête ouverte au système pré-transactionnel 10, d’affiner sa requête en fonction des résultats retournés par le système pré-transactionnel 10 et de soumettre la requête affinée au système du fournisseur de contenu de transaction 12 si l’utilisateur décide de poursuivre avec une transaction.The pre-transaction system 10 and the transaction system 12 are dedicated to the same field of application (for example, the travel industry). The pre-transaction system 10 and the transaction system 12 can be configured to determine candidate products of the same type. However, they refer to different transaction phases. Furthermore, while the transaction content provider system 12 may include a search engine which implements a search algorithm to search for products corresponding to a query in one or more content databases, the pre-transaction system 10 may include a product estimator 101 configured to estimate product solutions (product candidates) for a user query by searching for statistical data related to past transactions, performed by the transaction system 12, without the need to access to multiple content databases. Therefore, while the responses returned by the pre-transaction system 10 may be based on historical data, the responses returned by the transaction content provider system 12 may be based on real-time data retrieved from the databases. content data. The pre-transaction system 10 thus limits the load on the system of the transaction content provider 12, a user wishing to have a view of the possible product options being able to submit an open request to the pre-transaction system 10, to refine his request based on the results returned by the pre-transaction system 10 and submitting the refined request to the transaction content provider system 12 if the user decides to proceed with a transaction.

Dans certains modes de réalisation, le système pré-transactionnel 10 (système serveur) peut comprendre un moteur d’estimation de service 1 (aussi dénommé « moteur d’estimation de produit auxiliaire ») configuré pour estimer les recommandations de services en réponse à une requête pré-transactionnelle. Le moteur d’estimation de services 1 peut comprendre une base de données d’estimation de services 103 configurés pour stocker des données historiques liées aux ensembles de services (aussi dénommés « produits auxiliaires » ou « produits complémentaires »), les données historiques étant représentées par une structure de données en arbre comprenant des nœuds. Le moteur d’estimation de services 1 peut par ailleurs comprendre un estimateur de service 102 (également dénommé « estimateur de produit auxiliaire») configuré pour déterminer à partir de la structure de données en arbre une fréquence d’occurrence et une information de valeur d’un produit auxiliaire pour chaque ensemble de services dans une liste d’ensembles de produits auxiliaires, en réponse à la requête client. La liste d’ensembles de service peut comprendre au moins un ensemble de services (un ensemble de services peut aussi être dénommé ci-après « ensemble de produits auxiliaires»), le système pré-transactionnel 10 étant configuré pour fournir par ailleurs une liste des produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client en utilisant la fréquence d’occurrence et la valeur du service déterminée pour chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires.In certain embodiments, the pre-transaction system 10 (server system) may include a service estimation engine 1 (also called “auxiliary product estimation engine”) configured to estimate the service recommendations in response to a pre-transaction request. The service estimation engine 1 can comprise a service estimation database 103 configured to store historical data linked to the sets of services (also called “auxiliary products” or “complementary products”), the historical data being represented. by a tree data structure comprising nodes. The service estimation engine 1 can moreover comprise a service estimator 102 (also called “auxiliary product estimator”) configured to determine from the tree data structure an frequency of occurrence and information of value d 'an auxiliary product for each set of services in a list of sets of auxiliary products, in response to the customer request. The list of service packages may include at least one service package (a service package may also be referred to hereinafter as "ancillary product package"), the pre-transaction system 10 being configured to further provide a list of the Auxiliary products candidates for each main product determined in response to the customer request using the frequency of occurrence and the value of the service determined for each set of auxiliary products from the list of sets of auxiliary products.

Le système pré-transactionnel 10 peut être configuré pour fournir des recommandations de services pour chaque produit candidat en utilisant la fréquence d’occurrence et la valeur de service déterminée pour chaque ensemble de services de la liste des ensembles de services.The pre-transaction system 10 can be configured to provide service recommendations for each product candidate using the frequency of occurrence and the service value determined for each set of services from the list of service sets.

Dans un mode de réalisation, la requête client peut être reçue par le système prétransactionnel 10 à un instant de traitement donné et chaque ensemble de services peut identifier un ou plusieurs produits auxiliaires associés à un produit principal. Dans ce mode de réalisation, les données historiques comprennent des données collectées à partir de sessions de requête/réponse antérieures (transactions antérieures), chaque transaction antérieure étant implémentée entre un dispositif client et un système fournisseur d’un produit connecté à la base de données d’estimation de service 103 au cours d’une période prédéfinie avant l’instant du traitement.In one embodiment, the client request can be received by the pre-transaction system 10 at a given processing time and each set of services can identify one or more auxiliary products associated with a main product. In this embodiment, the historical data includes data collected from previous request / response sessions (previous transactions), each previous transaction being implemented between a client device and a system supplying a product connected to the database. service estimate 103 during a predefined period before the time of processing.

Dans une application exemplaire de l’invention dans l’industrie du voyage, le système de préréservation 10 peut être configuré pour fournir des recommandations de voyage pour des produits de voyage (les produits de voyage candidats), tels que les produits de voyage d’une compagnie aérienne.In an exemplary application of the invention in the travel industry, the pre-booking system 10 can be configured to provide travel recommendations for travel products (candidate travel products), such as travel products. airline company.

Une requête de voyage a un format prédéfini définissant un ensemble de paramètres de requête incluant :A travel request has a predefined format defining a set of request parameters including:

- des paramètres d’heure/date/lieu de départ ;- parameters of time / date / place of departure;

- des paramètres d’heure/date/lieu d’arrivée ;- time / date / place of arrival parameters;

- des paramètres additionnels relatifs au voyage.- additional parameters relating to the trip.

Les paramètres de requête pour le système du système de transaction du fournisseur de voyage 12 (également appelé ci-après «système de “réservation » ou système de «finalisation d’achat») peuvent inclure des paramètres de requête « optionnels » et/ou « obligatoires », les paramètres de requête obligatoires étant requis par le système de « réservation » pour être capables de traiter la requête. Les paramètres optionnels de requête peuvent inclure par exemple la langue préférée de l’utilisateur, ou des paramètres d’affinage (p. ex. l’heure du jour, la compagnie préférée). Généralement, le système pré-transactionnel du fournisseur de voyage 10 (également appelé ci-après système de « préréservation » ou système de « préachat » peut lancer une requête sans aucune exigence concernant les paramètres obligatoires de requête. Par exemple, le traitement d’une requête peut être déclenché par toute requête comprenant au moins un paramètre de requête.Request parameters for the travel provider transaction system 12 system (also referred to hereinafter as "reservation" system or "finalize purchase" system) may include "optional" and / or request parameters "Mandatory", the mandatory request parameters being required by the "reservation" system to be able to process the request. Optional query parameters can include, for example, the user's preferred language, or refinement parameters (e.g. time of day, preferred company). Generally, the pre-transaction system of the travel provider 10 (also called hereinafter "pre-reservation" or "pre-purchase" system can initiate a request without any requirement regarding the mandatory request parameters. For example, processing a request can be triggered by any request comprising at least one request parameter.

Un paramètre de requête de voyage peut avoir une typologie (par exemple « le lieu de départ», «lieu d’arrivée»), une catégorie de données (p. ex. lieu, date), un type de donnée (p. ex., caractère) et/ou un format de donnée (défini par exemple par la norme IATA, IATA étant « l’association internationale de transport aérien »).A travel request parameter can have a typology (for example “the place of departure”, “place of arrival”), a category of data (eg place, date), a type of data (eg ., character) and / or a data format (defined for example by the IATA standard, IATA being "the international air transport association").

Les modes de réalisation de l’invention peuvent être mis en œuvre sur un ou plusieurs systèmes informatiques comprenant un ou plusieurs ordinateurs ou serveurs en réseau. Les systèmes informatiques peuvent fournir le traitement et les fonctions de base de données pour les systèmes de pré-transaction et de fournisseur de contenu de transaction 10 et 12.The embodiments of the invention can be implemented on one or more computer systems comprising one or more networked computers or servers. Computer systems can provide processing and database functions for pre-transaction and transaction content provider systems 10 and 12.

Le système pré-transactionnel 10 et le système du fournisseur de contenu de transaction 12 peuvent héberger un ou plusieurs sites Web et/ou avoir un service d’hébergement hébergeant un ou plusieurs sites Web.The pre-transaction system 10 and the transaction content provider system 12 can host one or more websites and / or have a hosting service hosting one or more websites.

Chaque réseau de communication 21 peut inclure un ou plusieurs réseaux privés et/ou publics (p. ex. Internet) qui permettent l’échange de données, tels qu’internet, un réseau de zone locale (LAN), un réseau de zone étendue (WAN), un réseau cellulaire voix/données, une ou plusieurs connexions par bus à haute vitesse et/ou d’autres types de réseaux de communication de ce genre. Chaque réseau de communication 21, 22 peut utiliser des technologies de communication normales et/ou des protocoles tels que 4G, Ethernet, 802.11, TCP/IP (Protocole de contrôle de transmission/Protocole Internet), HTTP (Protocole de transport hypertexte), FTP (Protocole de transfert de fichier), etc. Les données peuvent être échangées sur chaque réseau 21, 22 selon des technologies d’échange de données différentes et/ou des formats tels que le langage de balisage hypertexte (HTML), le modèle JSON et le langage de balisage étendu (XML).Each communication network 21 can include one or more private and / or public networks (eg Internet) which allow the exchange of data, such as the Internet, a local area network (LAN), a wide area network (WAN), a cellular voice / data network, one or more high speed bus connections and / or other types of such communication networks. Each communication network 21, 22 can use normal communication technologies and / or protocols such as 4G, Ethernet, 802.11, TCP / IP (Transmission control protocol / Internet protocol), HTTP (Hypertext transport protocol), FTP (File Transfer Protocol), etc. Data can be exchanged on each network 21, 22 according to different data exchange technologies and / or formats such as the hypertext markup language (HTML), the JSON model and the extended markup language (XML).

Le système pré-transactionnel 10 peut comprendre une fonction de redirection pour rediriger l’utilisateur vers le domaine Internet du système de transaction 12 en utilisant une URL associée, en réponse à une sélection faite par l’utilisateur pour un produit candidat afin de lui permettre de finaliser une transaction. Dans certains modes de réalisation, le dispositif de système pré-transactionnel 10 peut envoyer une requête correspondant à la sélection de l’utilisateur au système de transaction 12 en utilisant une URL d’un type prédéfini qui peut comprendre un ensemble de champs tel qu’un Corps, le champ d’identifiant de système fournisseur de contenu tel qu’un champ de Chaîne, des champs additionnels liés aux paramètres de la requête (nom/paires de valeurs) ainsi que sélectionnés par l’utilisateur. L’homme de métier comprendra aisément que l’invention n’est pas limitée à ces champs spécifiques dans la requête URL et peut inclure des champs différents selon l’application de l’invention.The pre-transaction system 10 may include a redirection function to redirect the user to the Internet domain of the transaction system 12 using an associated URL, in response to a selection made by the user for a product candidate in order to allow him to to finalize a transaction. In certain embodiments, the pre-transactional system device 10 can send a request corresponding to the user's selection to the transaction system 12 using a URL of a predefined type which can include a set of fields such as a Body, the content provider system identifier field such as a String field, additional fields linked to the request parameters (name / value pairs) as well as selected by the user. Those skilled in the art will readily understand that the invention is not limited to these specific fields in the URL request and may include different fields depending on the application of the invention.

La figure 2 représente l’environnement opérationnel du système pré-transactionnel d’un fournisseur de voyage 10 (dénommé ci-après «système de préréservation») conforme à une application exemplaire de l’invention pour l’industrie du voyage. L’environnement peut inclure un système de distribution globale (GDS) 200, un ou plusieurs systèmes de fournisseurs indirects de produits 20, tels que les systèmes des transporteurs 201, un ou plusieurs systèmes de vendeurs indirects ou de préachat de voyage (systèmes de fournisseurs de contenu auxiliaire), tels qu’un système d’agence de voyages 202, un système pré-transactionnel d’un fournisseur 10, un système d’un fournisseur de transaction 12 et un ou plusieurs dispositifs clients 2. Chacun d’eux, le GDS 200, les systèmes des transporteurs 201, le système du vendeur indirect 202, le système pré-transactionnel 10 et le système de transaction 12 ainsi que le dispositif d’utilisateur 2 peuvent communiquer par l’entremise du réseau 21. Les systèmes des transporteurs 201 peuvent chacun inclure un système de réservation informatique (CRS) et/ou un système de facturation pour la compagnie aérienne respective qui permet au GDS 200 et/ou au système du vendeur indirect 202 de réserver et de payer des billets d’avion. Les systèmes des transporteurs 201 peuvent aussi interagir les uns avec les autres ou via le GDS 200, afin de permettre au transporteur émetteur de vendre des sièges fournis par le transporteur de fait. Le transporteur de fait peut ensuite facturer le transporteur émetteur pour les services fournis.FIG. 2 represents the operational environment of the pre-transaction system of a travel supplier 10 (hereinafter referred to as “pre-reservation system”) conforming to an exemplary application of the invention for the travel industry. The environment may include a global distribution system (GDS) 200, one or more systems of indirect product suppliers 20, such as carrier systems 201, one or more systems of indirect sellers or travel pre-purchase (supplier systems auxiliary content), such as a travel agency system 202, a pre-transaction system of a provider 10, a system of a transaction provider 12, and one or more client devices 2. Each of them, GDS 200, carrier systems 201, indirect seller system 202, pre-transaction system 10 and transaction system 12 as well as user device 2 can communicate through network 21. carriers 201 may each include a computer reservation system (CRS) and / or a billing system for the respective airline that allows the GDS 200 and / or the air system indirect provider 202 to book and pay for airline tickets. Carrier 201 systems can also interact with each other or via the GDS 200 to allow the transmitting carrier to sell seats supplied by the actual carrier. The de facto carrier can then bill the originating carrier for the services provided.

Le GDS 200 peut être configuré pour faciliter la communication entre les systèmes des transporteurs 201 et les systèmes des vendeurs indirects 202 en permettant aux agents de voyage, aux transporteurs émetteurs, ou à d’autres vendeurs indirects de rechercher des segments disponibles et de finaliser des réservations sur un ou plusieurs systèmes de transporteur 21, via le GDS 200. Dans ce but, le GDS 200 peut entretenir des liens avec chacun des systèmes des transporteurs 201 via le réseau 62. Ces liens peuvent permettre au GDS 200 d’obtenir des données de planification et de disponibilité pour des segments à partir des systèmes des transporteurs 201, et des requêtes de réservation de propositions de voyage aux systèmes des transporteurs 201. Les systèmes des transporteurs et des agences de voyagesThe GDS 200 can be configured to facilitate communication between carrier 201 systems and indirect seller systems 202 by allowing travel agents, originating carriers, or other indirect sellers to search for available segments and finalize reservations on one or more conveyor systems 21, via the GDS 200. For this purpose, the GDS 200 can maintain links with each of the conveyor systems 201 via the network 62. These links can enable the GDS 200 to obtain data Planning and Availability for Segments from Carrier Systems 201, and Travel Proposal Reservation Requests to Carrier Systems 201. Carrier and Travel Agency Systems

201, 202 peuvent ainsi réserver des vols auprès de multiples transporteurs via une seule connexion au GDS 200. Le GDS 200 peut stocker et/ou conserver un enregistrement de nom de passager (PNR) qui inclut un ensemble complet des données pour l’itinéraire d’un voyage, incluant les segments de multiples transporteurs et/ou d’autres services de voyage comprenant le voyage, tels que les réservations d’hôtel et de voiture de location.201, 202 can thus book flights with multiple carriers via a single connection to the GDS 200. The GDS 200 can store and / or keep a passenger name record (PNR) which includes a complete set of data for the itinerary of a trip, including segments of multiple carriers and / or other travel services including travel, such as hotel and rental car reservations.

Un système d’agence de voyages 202 peut inclure un serveur Web qui fournit un site Web accessible au grand public. Ce site Web peut être configuré pour fournir un accès à des éléments de planification de voyage, tels que la capacité à rechercher des produits de voyage correspondant à une requête de voyage. Dans ce but, le système de l’agence de voyages 202 peut fournir au voyageur un accès à des données à partir d’une ou de plusieurs bases de données hébergées par le GDS 200, les systèmes des transporteurs 201 et le système de l’agence de voyages 202. Dans un autre mode de réalisation de l’invention, le système de l’agence de voyages 202 peut être un système propriétaire qui limite l’accès aux fournisseurs de services de voyage ou aux agents de voyage, dans ce cas l’accès peut être fourni par l’entremise d’un site Web privé ou une autre application.A travel agency system 202 may include a web server that provides a website accessible to the general public. This website can be configured to provide access to travel planning elements, such as the ability to search for travel products that match a travel request. For this purpose, the travel agency system 202 can provide the traveler with access to data from one or more databases hosted by the GDS 200, the carrier systems 201 and the carrier system. travel agency 202. In another embodiment of the invention, the travel agency system 202 may be a proprietary system that limits access to travel service providers or travel agents, in this case access can be provided through a private website or other application.

Le système de transaction du fournisseur de voyage 12 peut être en communication avec le système de l’agence de voyages 202 via le réseau 62 ou une autre connexion adaptée. Dans d’autres modes de réalisation de l’invention, tout le système du fournisseur de voyage 2 ou une portion, peut être intégré dans un ou plusieurs des autres systèmes 200, 201, 202. Les voyageurs les agents de voyage peuvent utiliser le système de l’agence de voyages 202 pour générer et/ou rechercher des propositions de voyage qui satisfont une requête de voyage reçue de la part du voyageur en utilisant le système du fournisseur de voyage 2.The travel provider 12 transaction system may be in communication with the travel agency 202 system via network 62 or other suitable connection. In other embodiments of the invention, the entire system of the travel supplier 2 or a portion thereof, can be integrated into one or more of the other systems 200, 201, 202. Travelers, travel agents, can use the system from the travel agency 202 to generate and / or search for travel proposals that satisfy a travel request received from the traveler using the travel provider system 2.

Le GDS 200, les systèmes des transporteurs 201, le système de l’agence de voyages 202, le système du fournisseur de voyage 12 et les dispositifs d’utilisateur 2 de l’environnement d’exploitation peuvent être implémentés sur un ou plusieurs dispositifs informatiques ou systèmes, dénommés collectivement un ordinateur.GDS 200, carrier systems 201, travel agency system 202, travel provider system 12 and user devices 2 of the operating environment can be implemented on one or more computing devices or systems, collectively referred to as a computer.

La figure 3 représente une implémentation exemplaire du système prétransactionnel 10. Comme le montre la figure 3, le système pré-transactionnel 10 peut comprendre, ou être connecté à, une plateforme de recherche distribuée MSP 11 (MSP est l’acronyme de Massive Search Platform) configurée pour stocker des valeurs précalculées de produits. La plateforme MSP 11 peut comprendre une ou plusieurs machines distribuées, chaque machine comprenant un ou plusieurs systèmes informatiques. La figure 3 décrit seulement une vue logique de la plateforme alors que la plateforme MSP peut être physiquement répartie sur un ensemble de machines distribuées. La plateforme MSP 11 peut être configurée pour stocker les meilleures valeurs de produits d’un ensemble de systèmes de fournisseurs de contenu 12 fournissant des produits pour tous les jours de l’année à venir, ce qui peut inclure plusieurs valeurs de produits possibles par jour.FIG. 3 represents an exemplary implementation of the pre-transactional system 10. As shown in FIG. 3, the pre-transactional system 10 can comprise, or be connected to, a distributed search platform MSP 11 (MSP is the acronym for Massive Search Platform ) configured to store pre-calculated product values. The MSP platform 11 may include one or more distributed machines, each machine comprising one or more computer systems. Figure 3 only describes a logical view of the platform while the MSP platform can be physically distributed over a set of distributed machines. The MSP platform 11 can be configured to store the best product values of a set of content provider systems 12 supplying products for every day of the coming year, which may include several possible product values per day .

La figure 4 montre une plateforme exemplaire MSP 11 dans l’industrie du voyage. Dans cet exemple, la plateforme MSP 11 peut être configurée pour stocker et rechercher des recommandations de voyage, chaque recommandation de voyage identifiant un produit candidat (p. ex. un vol), le produit candidat étant associé à une valeur de produit (ou « prix » du produit) selon un mode de réalisation exemplaire de la présente invention. Les recommandations de voyage stockées peuvent être réparties sur toutes les machines qui sont connectées à la plateforme MSP. La plateforme MSP 11 peut comprendre une ou plusieurs bases de données 113 pour stocker des recommandations de transport aérien qui peuvent logiquement être groupées en groupes de recommandations. Bien qu’une vue statique soit montrée dans la figure 4, l’homme de métier comprendra aisément que les bases de données 113 peuvent être physiquement stockées entre les différentes machines.Figure 4 shows an exemplary MSP 11 platform in the travel industry. In this example, the MSP platform 11 can be configured to store and search for travel recommendations, each travel recommendation identifying a candidate product (eg a flight), the candidate product being associated with a product value (or " price "of the product) according to an exemplary embodiment of the present invention. The stored travel recommendations can be distributed over all the machines that are connected to the MSP platform. The MSP platform 11 can include one or more databases 113 for storing air transport recommendations which can logically be grouped into groups of recommendations. Although a static view is shown in Figure 4, those skilled in the art will readily understand that the databases 113 can be physically stored between the different machines.

La plateforme MSP 11 peut par ailleurs comprendre un moteur de chargement 115 configurée pour indexer les groupes de recommandations précalculées de transport aérien (par exemple, les voyages correspondant à un même itinéraire défini par une paire de villes) et pour les stocker dans une des machines dans le système distribué.The MSP platform 11 can moreover comprise a loading engine 115 configured to index the groups of pre-calculated recommendations for air transport (for example, journeys corresponding to the same route defined by a pair of cities) and to store them in one of the machines. in the distributed system.

La plateforme MSP 11 peut aussi comprendre un moteur de recherche 117 configuré pour localiser des groupes de données parmi les machines physiques et fournir des informations de recherche indexées pour traiter les requêtes provenant des dispositifs d’utilisateurs 2.The MSP platform 11 can also include a search engine 117 configured to locate groups of data among the physical machines and provide indexed search information to process requests coming from user devices 2.

Dans certains modes de réalisation, la plateforme MSP 11 peut comprendre un ensemble de moteurs d’analyse orientés-commerce 108. Chaque moteur d’analyse orientécommerce108 peut être configuré pour optimiser les coûts matériels de la plateforme en déterminant le nombre optimal de recommandations pour recalculer chaque jour, avec autant d’exactitude que possible, les prix précalculés en utilisant des processus variés tels qu’une analyse d’opération de chargement et de recherche, diverses données telles que des métriques générées sur la volatilité et la qualité des données stockées dans le système. Une implémentation exemplaire d’une MSP 11 est décrite dans la demande du brevet US20130073586 A1.In certain embodiments, the MSP platform 11 can comprise a set of trade-oriented analysis engines 108. Each trade-oriented analysis engine 108 can be configured to optimize the hardware costs of the platform by determining the optimal number of recommendations for recalculating every day, with as much accuracy as possible, the prices precalculated using various processes such as an analysis of loading and search operations, various data such as metrics generated on the volatility and quality of the data stored in the system. An exemplary implementation of an MSP 11 is described in the patent application US20130073586 A1.

Revenant à la figure 3, dans certains modes de réalisation, l’environnement peut par ailleurs comprendre une plateforme de calcul massive 13 ou MCP. Les moteurs d’analyse de la MSP 11 peuvent transmettre des données à la MCP 13. Le système pré-transactionnel 10 peut être connecté à la MCP 13, ou peut la comprendre. La MCP 13 peut être configurée pour calculer les produits candidats (p. ex. des vols) et des informations de valeurs de produits, telles que des prix, à une échelle massive. Plus spécifiquement, la MCP 13 peut être configurée pour traiter les requêtes pré-transactionnelles même si le nombre de paramètres fournis dans la requête est limité. Dans une application exemplaire de l’invention pour l’industrie du voyage, la MCP 13 peut interagir avec d’autres services internes fournis par un GDS 200. La MCP 13 peut traiter une requête avec un degré de liberté élevé, même si aucun paramètre obligatoire de requête n’est spécifié (p. ex. le paramètre de date de voyage ou le lieu d’origine et/ou de destination, ou le transporteur de fait dans une application exemplaire de l’invention pour l’industrie du voyage). La MCP 13 peut effectuer une optimisation de traitement de données sur la base d’une analyse globale de requête.Returning to FIG. 3, in certain embodiments, the environment can moreover comprise a massive computing platform 13 or MCP. The MSP 11 analysis engines can transmit data to the MCP 13. The pre-transaction system 10 can be connected to the MCP 13, or can understand it. MCP 13 can be configured to calculate product candidates (eg flights) and product value information, such as prices, on a massive scale. More specifically, the MCP 13 can be configured to process pre-transactional requests even if the number of parameters supplied in the request is limited. In an exemplary application of the invention for the travel industry, the MCP 13 can interact with other internal services provided by a GDS 200. The MCP 13 can process a request with a high degree of freedom, even if no parameters Mandatory request is not specified (eg the travel date parameter or the place of origin and / or destination, or the carrier in fact in an exemplary application of the invention for the travel industry) . MCP 13 can perform data processing optimization based on global query analysis.

La MCP 13 peut être organisée selon un modèle comprenant des ressources qui peuvent être instanciées de façon dynamique. Le sous-système effectue l’optimisation de traitement de données sur la base d’une analyse globale des interrogations.MCP 13 can be organized according to a model comprising resources which can be instantiated dynamically. The subsystem performs data processing optimization based on a global analysis of the queries.

Dans un exemple d’application de l’invention pour l’industrie du voyage, la MCP 13 peut inclure un ou plusieurs Maîtres Massifs (‘Massive Master’) et une pluralité de Moteurs de travail Massifs (‘Massive Working Engines’). Les maîtres massifs peuvent être configurés pour analyser les requêtes globalement lesquelles sont ensuite décomposées en requêtes optimisées. Les requêtes optimisées obtenues ainsi peuvent ensuite être traitées par un ou plusieurs des Moteurs de travail Massif. Chaque Moteur de travail Massif peut renvoyer le résultat du traitement de la requête optimisée au(x) Maître(s) Massif(s) qui assemble(nt) les résultats en produits candidats (tels que des solutions de voyage), chaque produit candidat incluant une valeur de produit (p. ex. le prix du voyage).In an example application of the invention for the travel industry, MCP 13 can include one or more Massive Masters (et Massive Master ’) and a plurality of Massive Working Engines. The massive masters can be configured to analyze the queries globally which are then broken down into optimized queries. The optimized queries obtained in this way can then be processed by one or more of the Massive Work Engines. Each Massive Work Engine can send the result of the processing of the optimized request to the Massive Master (s) who assemble the results into candidate products (such as travel solutions), each candidate product including a product value (eg the price of the trip).

La MCP 13 peut par ailleurs être configurée pour effectuer une analyse globale afin d’identifier les redondances (redondances de requêtes) entre les requêtes reçues afin d’éviter un retraitement inutile. Ceci peut inclure le fusionnement de parties d’interrogations redondantes en fonction d’exigences de performance prédéfinies.MCP 13 can also be configured to perform a global analysis in order to identify redundancies (request redundancies) between received requests in order to avoid unnecessary reprocessing. This may include merging redundant query parts based on predefined performance requirements.

La MSP 11 et la MCP 13 peuvent faire partie d’une plateforme de recherche distribuée, connectée à un ensemble du système de transaction du fournisseur de voyage 12 (tel que les systèmes de compagnies aériennes, les systèmes d’agences de voyages, etc.). Chaque système de transaction de fournisseur de voyage 12 peut définir quelle partie de son secteur de produits doit être intégrée dans la plateforme de recherche. Dans une application exemplaire pour l’industrie du voyage, chaque système de transaction de fournisseur de voyage 12 peut ensuite envoyer à la MCP 11 une interrogation «massive» comprenant une série d’ordres de calculs, chaque ordre définissant les marchés pris en compte (tels qu’une liste de paires de villes pour tous les jours de l’année à venir dans l’industrie du voyage) et le type de recommandation de produits à générer (p. ex. pour chaque jour, les meilleures recommandations pour des voyages d’une durée de 1 à 20 jours). Ces ordres peuvent être mis à jour par le système de transaction du fournisseur de voyage 12 ou peuvent servir comme base pour un calcul périodique. La MCP 13 peut utiliser des fonctions internes du GDS 200 pour calculer les recommandations demandées, telles que la fonction de récupération d’un voyage pour récupérer une liste de vols existants, une fonction de prix pour trouver la meilleure combinaison de tarifs et de produits (p. ex. des vols), une fonction de disponibilité pour déterminer les produits disponibles à réserver ou à acheter.The MSP 11 and MCP 13 can be part of a distributed search platform, connected to an entire transaction system of the travel provider 12 (such as airline systems, travel agency systems, etc. ). Each travel supplier transaction system 12 can define which part of its product sector is to be integrated into the search platform. In an exemplary application for the travel industry, each travel supplier transaction system 12 can then send to the MCP 11 a “massive” interrogation comprising a series of calculation orders, each order defining the markets taken into account ( such as a list of city pairs for every day of the year to come in the travel industry) and the type of product recommendation to generate (e.g. for each day, the best recommendations for travel from 1 to 20 days). These orders can be updated by the transaction system of the travel supplier 12 or can serve as a basis for a periodic calculation. MCP 13 can use internal functions of the GDS 200 to calculate the recommendations requested, such as the trip retrieval function to retrieve a list of existing flights, a price function to find the best combination of fares and products ( e.g. flights), an availability function to determine which products are available to book or buy.

Puisque les recommandations sont générées pour le système de transaction du fournisseur de voyage 12, les recommandations peuvent être stockées dans une mémoirecache globale (le Référentiel Massif 113) de recommandations de voyage précalculées devenant ainsi disponibles pour de futures requêtes de recherche de la part des utilisateurs. Le Référentiel Massif 113 peut être utilisé pour stocker les recommandations calculées par la MCP 13. La recherche parmi les solutions possibles est réalisée par la MSP 11.Since the recommendations are generated for the travel provider's transaction system 12, the recommendations can be stored in a global cache memory (Massive Repository 113) of precalculated travel recommendations thus becoming available for future search queries from the users. . The Massive Repository 113 can be used to store the recommendations calculated by the MCP 13. The search among the possible solutions is carried out by the MSP 11.

Le système pré-transactionnel 10 permet à un utilisateur de soumettre des requêtes ouvertes à partir d’une interface d’utilisateur dédiée, affichée sur un dispositif d’utilisateur. Une requête ouverte de pré-transaction soumise par un utilisateur au système pré-transactionnel de voyage peut, par exemple, être « Où puis-je aller ? », « Que puis-je faire pour ce que je veux dépenser?». Tel qu’il est utilisé, une requête « ouverte » fait référence à une requête définie par un ensemble de paramètres de requête, une valeur de paramètre de requête étant spécifiée par l’utilisateur seulement pour un sous-ensemble limité de paramètres de requête qui peut ne comprendre qu’un seul paramètre de requête. Le système pré-transactionnel 10 peut ensuite renvoyer une réponse sous forme de produits candidats qui satisfont la requête ouverte. L’utilisateur peut sélectionner un produit candidat sur la même page de recherche, sans avoir besoin de se connecter directement au système de transaction du fournisseur de voyage et de spécifier tous les paramètres de requête obligatoires (p. ex. le lieu de destination, la date de départ, etc.).The pre-transaction system 10 allows a user to submit open requests from a dedicated user interface, displayed on a user device. An open pre-transaction request submitted by a user to the pre-transaction travel system could, for example, be "Where can I go?" "," What can I do for what I want to spend? ". As used, an "open" query refers to a query defined by a set of query parameters, a query parameter value being specified by the user only for a limited subset of query parameters that may include only one query parameter. The pre-transaction system 10 can then return a response in the form of candidate products which satisfy the open request. The user can select a product candidate on the same search page, without the need to connect directly to the travel provider's transaction system and to specify all the mandatory query parameters (e.g. place of destination, departure date, etc.).

Le système pré-transactionnel 10, selon certains modes de réalisation de l’invention, rend possible la sélection d’un produit par un utilisateur en fonction de la disponibilité estimée et du prix associé au(x) service(s) donné(s) au cours d’une phase de pré-transaction.The pre-transaction system 10, according to certain embodiments of the invention, makes it possible to select a product by a user according to the estimated availability and the price associated with the given service (s). during a pre-transaction phase.

Dans un mode de réalisation, l’utilisateur peut spécifier les services désirés dans la requête de pré-transaction soumise en mode « pull » (signifiant « mode tiré »). Autrement, des recommandations de services (aussi dénommées « recommandations » de services) peuvent être retournées à l’utilisateur de façon dynamique, lesquelles sont associées à un produit, sans qu’un ensemble de services soit spécifié par l’utilisateur, sur la base d’indicateurs de popularité précalculés associés à chaque service (« mode ‘push’ » signifiant « mode poussé »).In one embodiment, the user can specify the desired services in the pre-transaction request submitted in "pull" mode (meaning "pulled mode"). Alternatively, service recommendations (also referred to as "service recommendations") may be dynamically returned to the user, which are associated with a product, without a set of services being specified by the user, based on precalculated popularity indicators associated with each service (“push mode” meaning “pushed mode”).

Un produit (appelé aussi « produit principal ») peut être associé à des informations de produits identifiant le produit (par exemple, un produit de transport aérien est associé à une paire de villes, une date de départ/d’arrivée, une heure de départ/d’arrivée) et à une valeur de produits représentant le prix d’un produit disponible pour achat. Un produit peut être par ailleurs associé à un ensemble de services comprenant au moins un service.A product (also called “main product”) can be associated with product information identifying the product (for example, an air transport product is associated with a city pair, a departure / arrival date, a time of departure / arrival) and a product value representing the price of a product available for purchase. A product can also be associated with a set of services comprising at least one service.

Un service ou un « service auxiliaire » (appelé aussi « produit auxiliaire » ou « produit complémentaire ») lié à un produit principal donné peut être associé à des informations de service identifiant le service, des informations de disponibilité indiquant si le service est disponible pour le produit et une valeur de service représentant le prix du service.A service or “ancillary service” (also called “ancillary product” or “complementary product”) linked to a given main product can be associated with service information identifying the service, availability information indicating whether the service is available for the product and a service value representing the price of the service.

Un «ensemble de services» fait référence à une pluralité de services qui peuvent être achetés ou réservés ensemble avec un produit par un utilisateur au cours d’une transaction entre le dispositif client de l’utilisateur et un système de transaction 12.A "service package" refers to a plurality of services that can be purchased or reserved together with a product by a user during a transaction between the user's client device and a transaction system 12.

La valeur du service (prix du service) associé à un service auxiliaire lié à un produit donné peut être dépendante du produit. Par exemple, le prix d’un service auxiliaire lié à un produit de voyage peut dépendre de plusieurs paramètres tels que :The value of the service (price of the service) associated with an auxiliary service linked to a given product may be dependent on the product. For example, the price of an auxiliary service linked to a travel product may depend on several parameters such as:

- la complexité initiale du nombre de résultats de prix de produits dans le système de préréservation 10 ; par exemple, considérant pour un client, 500 destinations, 300 dates, 10 durées de séjour, le nombre de prix de produits est égal à :- the initial complexity of the number of product price results in the pre-reservation system 10; for example, considering for a client, 500 destinations, 300 dates, 10 lengths of stay, the number of product prices is equal to:

destinations x 300 dates x 10 durées de séjour = 1.500.000 prix ;destinations x 300 dates x 10 length of stay = 1,500,000 prices;

la dimension du service auxiliaire ; par exemple, considérant la recherche d’une compagnie aérienne proposant 20 services différents et considérant que le client peut être intéressé par tout ensemble de services parmi ces 20 services, la dimension du service auxiliaire correspondant peut être égale à 220 = 106 services auxiliaires ; la combinaison de la dimension des résultats de prix (1.500.000) avec la dimension des services auxiliaires (106) donne 1,5 x 1012 prix, dans cet exemple.the size of the auxiliary service; for example, considering the search for an airline offering 20 different services and considering that the customer can be interested in any set of services among these 20 services, the dimension of the corresponding auxiliary service can be equal to 2 20 = 10 6 auxiliary services ; the combination of the dimension of the price results (1,500,000) with the dimension of the auxiliary services (10 6 ) gives 1.5 x 10 12 prices, in this example.

On notera que d’autres paramètres liés aux produits de voyage, associés à un service auxiliaire, peuvent influencer le prix du service auxiliaire de sorte que par exemple :It should be noted that other parameters linked to travel products, associated with an auxiliary service, can influence the price of the auxiliary service so that for example:

- le type de produit auquel le service auxiliaire est lié (p. ex. l’équipement, le type d’aéronef) ;- the type of product to which the auxiliary service is linked (eg equipment, type of aircraft);

- l’information de localisation du produit (les informations de localisation d’un produit peuvent impacter le prix) ;- product location information (product location information can affect the price);

- la stratégie de vente du fournisseur du produit (campagne de promotion par exemple) ;- the sales strategy of the product supplier (promotion campaign for example);

- La catégorie du produit (une catégorie peut inclure par exemple des vols long-courriers, une classe affaires, une classe économique).- The product category (a category can include, for example, long-haul flights, business class, economy class).

Calculer tous les prix possibles conformément aux approches conventionnelles exige un nombre immense de ressources avec un traitement long dû à la volatilité des données.Calculating all possible prices according to conventional approaches requires an immense number of resources with long processing due to the volatility of the data.

Le système pré-transactionnel 10, selon certains modes de réalisation de l’invention, fournit des recommandations de services dans le flux pré-transactionnel tout en limitant le nombre de résultats de prix devant être traités afin de calquer les contraintes opérationnelles.The pre-transaction system 10, according to certain embodiments of the invention, provides recommendations for services in the pre-transaction flow while limiting the number of price results to be processed in order to match the operational constraints.

Dans certains modes de réalisation, le moteur d’estimation de service 1 peut être configuré pour déterminer des recommandations de services auxiliaires pour chaque produit candidat retourné en réponse à une requête de recommandation de produit.In some embodiments, the service estimation engine 1 can be configured to determine ancillary service recommendations for each product candidate returned in response to a product recommendation request.

Dans certains modes de réalisation, l’estimateur de service 102 du moteur de service 1 peut être configuré pour précalculer les informations associées au service telles que la disponibilité du service et le prix du service en utilisant l’information conservée dans la base de données d’expériences de services 103. L’estimateur de service 102 peut recevoir le contexte d’une requête de pré-transaction (p. ex. définie par un paramètre de destination et un paramètre de date pour une requête de prétraitement d’un voyage) et utiliser une structure de recherche en arbre pour déterminer une fréquence d’occurrence et une information de valeur d’un service (information de prix) pour un ensemble de services spécifiés si la requête de pré-transaction comprend une spécification d’un ensemble de services (mode «tirer»), ou pour une liste d’ensembles de services (l’ensemble de services les plus populaires) si la requête de prétransaction ne comprend aucun ensemble de services spécifié (mode « push »).In certain embodiments, the service estimator 102 of the service engine 1 can be configured to precalculate the information associated with the service such as the availability of the service and the price of the service using the information stored in the database d service experiences 103. The service estimator 102 can receive the context of a pre-transaction request (eg defined by a destination parameter and a date parameter for a trip pre-processing request) and using a tree search structure to determine a frequency of occurrence and value information of a service (price information) for a set of specified services if the pre-transaction request includes a specification of a set of services (“pull” mode), or for a list of service packages (the most popular service package) if the pre-transaction request does not include a specified set of services (push mode).

Dans un mode de réalisation préféré, le système de pré-transaction 10 peut aussi comprendre un dispositif de commutation de détermination de services 104 (également appelé « dispositif de commutation » en réponse à une requête pré-transactionnelle d’un utilisateur. Les modes de détermination de services auxiliaires peuvent inclure un des modes suivants :In a preferred embodiment, the pre-transaction system 10 may also include a service determination switching device 104 (also called a “switching device” in response to a pre-transactional request from a user. determination of ancillary services may include one of the following modes:

- Un mode d’extraction d’informations du service, cette sélection de mode par le dispositif de commutation de détermination de service 104 déclenche la récupération d’informations prétraitées liées à un ensemble de services tel qu’il peut être stocké dans une base de données 113 par le MSP 11 ;A service information extraction mode, this mode selection by the service determination switching device 104 triggers the recovery of preprocessed information linked to a set of services as it can be stored in a database. data 113 by the MSP 11;

- Un mode de détermination de services, ce mode de sélection par le dispositif de commutation 104 déclenche le traitement d’une requête pré-transactionnelle par l’estimateur de service 102.- A service determination mode, this selection mode by the switching device 104 triggers the processing of a pre-transactional request by the service estimator 102.

Le dispositif de commutation 104 permet une optimisation du coût de calcul d’un traitement de requête en identifiant les valeurs de service (prix du service) devant être calculées par rapport aux valeurs de service qui peuvent être estimées en utilisant le trafic réel. Dans certains modes de réalisation, le dispositif de commutation de détermination de services 104 peut être activé en réponse à une requête de recommandation reçue par le système prétransactionnel 10 pour déterminer un mode d’estimation de service. Le dispositif de commutation de détermination de services 104 peut être configuré pour transmettre des données contextuelles dérivées d’une requête de recommandation reçue, soit par le MCP 11, ou par l’estimateur de service 102, selon le mode d’estimation de service déterminé. Le dispositif de commutation de détermination de services 104 peut recevoir en retour des informations liées aux services auxiliaires à la MCP 11 ou à l’estimateur de service 102, ces informations étant utilisées pour générer des recommandations de services auxiliaires pour chaque produit candidat, les recommandations de produits candidats étant déterminées par la Plateforme de Recherche Massive (MSP pour ‘Massive Search Plateform’) 13.The switching device 104 allows the cost of calculating a request processing to be optimized by identifying the service values (price of the service) to be calculated relative to the service values which can be estimated using real traffic. In some embodiments, the service determination switching device 104 may be activated in response to a recommendation request received by the pre-transaction system 10 to determine a service estimation mode. The service determination switching device 104 can be configured to transmit contextual data derived from a recommendation request received, either by the MCP 11, or by the service estimator 102, according to the determined service estimation mode. . The service determination switching device 104 can receive in return information related to the auxiliary services to the MCP 11 or to the service estimator 102, this information being used to generate recommendations of auxiliary services for each candidate product, the recommendations of product candidates being determined by the Massive Search Platform (MSP) 13.

Dans un mode de réalisation, la Plateforme de Recherche Massive (MSP) 13 peut comprendre un coordinateur de prétraitement 130 configuré pour calculer des requêtes provenant de données de trafic réel afin d’alimenter le Référentiel Massif, pour toutes les origines/destinations et ensembles de services, à un coût minimum.In one embodiment, the Massive Search Platform (MSP) 13 can comprise a preprocessing coordinator 130 configured to calculate requests coming from real traffic data in order to supply the Massive Repository, for all the origins / destinations and sets of services, at minimum cost.

Le moteur d’estimation de service 1 peut par ailleurs comprendre une unité d’apprentissage 105 (également dénommée unité d’« apprentissage d’expériences de service ou “SEL”) configurée pour collecter des données de méta-apprentissage liées à la disponibilité et à la valeur (prix) des services auxiliaires provenant de transactions en temps réel.The service estimation engine 1 can also comprise a learning unit 105 (also called a “service experience learning or“ SEL ”unit) configured to collect meta-learning data related to availability and the value (price) of ancillary services from real-time transactions.

Dans certains modes de réalisation, la base de données d’expériences de service 103 peut être organisée selon une structure de données en arbre. L’estimateur de service 102 peut utiliser cette structure de données en arbre pour rechercher des services auxiliaires devant être recommandés à un utilisateur en association à un produit candidat satisfaisant la requête. L’estimateur de service 102 peut implémenter un algorithme de recherche basé sur cette structure de données en arbre, l’algorithme de recherche étant tel qu’il optimise les coûts de calcul de la recherche. L’estimateur de service 102 peut comprendre un gestionnaire d'arbre 800 configuré pour gérer de façon dynamique la structure de données en arbre 8. L’homme de métier comprendra aisément que même si le gestionnaire d’arbre 800 est implémenté dans l’estimateur de service 102 de la figure 3, dans d’autres modes de réalisation, le gestionnaire d’arbre 800 peut être implémenté comme un bloc séparé du moteur d’estimation de service 1 ou être implémenté dans un autre bloc du moteur d’estimation de service 1.In some embodiments, the service experience database 103 can be organized according to a tree data structure. The service estimator 102 can use this tree data structure to search for auxiliary services to be recommended to a user in association with a product candidate satisfying the request. The service estimator 102 can implement a search algorithm based on this tree data structure, the search algorithm being such that it optimizes the calculation costs of the search. The service estimator 102 can include a tree manager 800 configured to dynamically manage the data structure in tree 8. Those skilled in the art will easily understand that even if the tree manager 800 is implemented in the estimator service 102 of FIG. 3, in other embodiments, the tree manager 800 can be implemented as a separate block from the service estimation engine 1 or can be implemented in another block from the service estimation engine service 1.

La figure 5 décrit de façon schématique une structure de données en arbre 8 selon certains modes de réalisation.FIG. 5 schematically describes a tree data structure 8 according to certain embodiments.

La structure de données en arbre 8 (appelée également « arbre ») peut comprendre une pluralité de nœuds 80 (appelés également « couches ») à chaque niveau de l’arbre, correspondant à un paramètre lié à l'un ou à plusieurs des paramètres de requête prédéfinis par le format de la requête tel qu’il est pris en charge par les systèmes des fournisseurs de contenu de transaction 12. La structure de données en arbre 8 modélise ainsi les différentes dimensions d’une requête de client.The tree data structure 8 (also called “tree”) can comprise a plurality of nodes 80 (also called “layers”) at each level of the tree, corresponding to a parameter linked to one or more of the parameters of query predefined by the format of the query as it is supported by the systems of transaction content providers 12. The data structure in tree 8 thus models the different dimensions of a client query.

Plus spécifiquement, chaque niveau de l’arbre pouvant être associé à une combinaison de paramètres qui peuvent correspondre :More specifically, each level of the tree can be associated with a combination of parameters which may correspond:

- exactement à un paramètre de requête, ou- exactly one request parameter, or

- à plusieurs paramètres de requête, ou à un sous-ensemble d’un paramètre de requête, ou- to several query parameters, or to a subset of a query parameter, or

- à un sous-ensemble de plusieurs paramètres de requête.- a subset of several request parameters.

Chaque nœud à un niveau donné de l'arbre, le niveau étant associé à une combinaison donnée de paramètres de requête, peut ainsi correspondre à une valeur (« valeur de nœud ») de la combinaison de paramètres de requête et peut être associé à la valeur d’un nombre entier (« une valeur de compteur ») représentant le nombre d’occurrences de la valeur de combinaison de paramètres de requête parmi les requêtes reçues par le système de transaction 12 au cours d’une période passée prédéfinie T par rapport à un temps de traitement. Le premier nœud de l’arbre 80-0- est également appelé nœud racine. Un nœud qui n’a pas de nœud-fils est appelé nœud-feuille (par exemple 80-N). Chaque nœud a au plus un nœud-parent situé au-dessus de lui dans l’arbre (c.-à-d. au niveau précédent du nœud). Le nœud racine étant le nœud le plus élevé dans l'arbre, il n’a pas de nœud-parent. La profondeur (également appelée dimension) d’un nœud donné désigne la longueur du chemin à partir du nœud considéré jusqu’au nœud racine de l’arbre. Chaque chemin du nœud racine à un nœud-feuille représente un ensemble de valeurs correspondant aux critères (ou aux paramètres) d’une requête et représente ainsi une requête dans le passé pour le produit. La profondeur du nœud-feuille est inférieure ou égale au nombre maximal de paramètres de requête qui peuvent être spécifiés dans une requête d’utilisateur selon le format de la requête défini par les systèmes de transaction 12. Un nœud peut être désigné par sa valeur de nœud (valeurs de combinaison de paramètres d’une requête). Un nœud 80 peut aussi être dénommé ci-après par n/,-avec i représentant le niveau de l’arbre (i = 0 correspondant au nœud-racine) et k représentant le fc-è nœud du niveau i. La valeur de compteur d’un nœud sera n/ dénotée cn.k Ainsi, la valeur du nœud n/ a été spécifiée cn.k fois au cours de la période passée. Selon les notations utilisées, les nœuds-fils d’un nœud nt k sont désignés par les nœuds ni+11,ni+12, ...,ni+1 p , avecp représentant un nombre de valeurs spécifiées par les utilisateurs au cours de la période passée T pour la combinaison de paramètres de requête correspondant au niveau i — 1.Each node at a given level of the tree, the level being associated with a given combination of query parameters, can thus correspond to a value ("node value") of the combination of query parameters and can be associated with the value of an integer ("a counter value") representing the number of occurrences of the value of combination of request parameters among the requests received by the transaction system 12 during a predefined past period T with respect to at a processing time. The first node in the 80-0- tree is also called the root node. A node that does not have a child node is called a leaf node (for example 80-N). Each node has at most one parent node located above it in the tree (i.e. at the previous level of the node). Since the root node is the highest node in the tree, it has no parent node. The depth (also called dimension) of a given node designates the length of the path from the node considered to the root node of the tree. Each path from the root node to a leaf node represents a set of values corresponding to the criteria (or parameters) of a query and thus represents a query in the past for the product. The depth of the leaf node is less than or equal to the maximum number of request parameters that can be specified in a user request according to the request format defined by transaction systems 12. A node can be designated by its value of node (combination values of parameters of a query). A node 80 can also be named below by n /, - with i representing the level of the tree (i = 0 corresponding to the root node) and k representing the fc-è node of level i. The counter value of a node will be n / denoted c n .k Thus, the value of the node n / has been specified c n .k times during the past period. According to the notations used, the child nodes of a node n t k are designated by the nodes ni + 1 1 , ni + 1 2 , ..., n i + 1 p , with p representing a number of values specified by the users during the past period T for the combination of query parameters corresponding to level i - 1.

Une requête de client exemplaire pour les systèmes des fournisseurs de produits dans l’industrie du voyage peut par exemple être :An exemplary customer request for the systems of product suppliers in the travel industry can for example be:

« de fournir toutes les recommandations d'aller-retour pour le Canada, pour un passager de niveau tiers or, partant un samedi ou un dimanche avec un séjour de 2 semaines, avec une température mensuelle moyenne à destination supérieure à 25°, avec les services={animal en cabine, repas végétarien}»"To provide all round trip recommendations for Canada, for a passenger of a third or gold level, departing on a Saturday or Sunday with a stay of 2 weeks, with an average monthly temperature at destination greater than 25 °, with the services = {animal in cabin, vegetarian meal} "

En réponse à la finalisation de la transaction déclenchée par cette requête d’un client, le gestionnaire d’arbre 800 peut mettre à jour la structure de données en arbre. Pour mettre à jour la structure de données en arbre, le gestionnaire d’arbre 800 peut être configuré par exemple pour diviser la requête client reçue en unités lexicales suivantes :In response to the finalization of the transaction triggered by this client request, the tree manager 800 can update the tree data structure. To update the tree data structure, the tree manager 800 can be configured for example to divide the customer request received into the following lexical units:

A- «Aller-retour»A- "Round trip"

B- «un passager de niveau tiers or»B- "a passenger of third gold level"

C- « Départ un samedi ou un dimanche »C- "Departure on a Saturday or a Sunday"

D- «Séjour de 2 semaines»D- "2 weeks stay"

E- «destination Amérique du Nord»E- "destination North America"

F- «destination Canada»F- “destination Canada”

G- «destination Canada avec une température > 20 degrés»G- "destination Canada with a temperature> 20 degrees"

H- «Température > 2 5 degrés»H- "Temperature> 2 5 degrees"

I- «Services = {animal de compagnie en cabine, repas végétarien}».I- "Services = {pet in cabin, vegetarian meal}".

Le gestionnaire d’arbre 800 peut ensuite mettre à jour les valeurs des différents niveaux à partir de ces unités lexicales.The tree manager 800 can then update the values of the different levels from these lexical units.

Comme le montre cet exemple, les niveaux de l’arbre peuvent correspondre exactement à un critère de recherche [A, C, D, E, H, I], correspondre à plusieurs critères de requête [B], correspondre à un sous-ensemble d’un critère de requête [F], ou correspondre à un sousensemble de plusieurs critères de requête [G],As this example shows, the levels of the tree can correspond exactly to a search criterion [A, C, D, E, H, I], correspond to several query criteria [B], correspond to a subset of a query criterion [F], or correspond to a subset of several query criteria [G],

La structure de données en arbre 8 capture ainsi le contexte de la transaction des requêtes d’utilisateur du trafic réel [appelé également trafic « en temps réel »] au niveau du système de transaction 12 à l’intérieur des nœuds et des branches de l’arbre. La structure de données en arbre 8 peut être par ailleurs configurée de sorte que les nœuds-feuilles de l’arbre sont associés au paramètre de l’ensemble de services représentant un ensemble de services acheté en association au produit défini par les niveaux supérieurs. Chaque nœud de l’arbre peut aussi correspondre à un ensemble de services [comprenant un ou plusieurs services] acheté au cours de la période passée T ensemble avec le produit défini par le chemin du nœud racine au nœud précédant le nœud-feuille considéré. L’ensemble de services peut être défini par une combinaison de services {[service 1] et [service 2] et... [service p]}.The tree data structure 8 thus captures the context of the transaction of user requests for real traffic [also called “real time” traffic] at the transaction system 12 inside the nodes and branches of the 'tree. The data structure in tree 8 can also be configured so that the leaf nodes of the tree are associated with the parameter of the set of services representing a set of services purchased in association with the product defined by the upper levels. Each node of the tree can also correspond to a set of services [comprising one or more services] purchased during the period spent T together with the product defined by the path from the root node to the node preceding the leaf node considered. The set of services can be defined by a combination of services {[service 1] and [service 2] and ... [service p]}.

L’estimation de services auxiliaires peut être encore plus exacte au fur et à mesure que la profondeur de l’arbre s'accroît.The estimate of ancillary services may be even more accurate as the depth of the tree increases.

Dans certains modes de réalisation, des informations supplémentaires peuvent être associées à chaque nœud. Ces informations supplémentaires peuvent être utilisées pour maximiser la factorisation et par conséquent le temps requis pour effectuer une recherche en utilisant l’arbre.In some embodiments, additional information may be associated with each node. This additional information can be used to maximize factorization and therefore the time required to perform a search using the tree.

Dans un mode de réalisation, un ensemble de critères d’arbre peut être ajouté ou supprimé de façon dynamique sur la base du nombre de nœuds-fils.In one embodiment, a set of tree criteria can be dynamically added or removed based on the number of child nodes.

La structure de données en arbre 8 peut être configurée de sorte que plus le niveau de l’arbre est élevé, plus le paramètre de requête associé au niveau est discriminatoire. Cela limite le coût de calcul d’une recherche en utilisant l’arbre.The data structure in tree 8 can be configured so that the higher the level of the tree, the more the query parameter associated with the level is discriminatory. This limits the cost of calculating a search using the tree.

Par exemple, dans une application de l’invention pour la livraison de produits de voyage, la structure de données en arbre peut par exemple comprendre :For example, in an application of the invention for the delivery of travel products, the tree data structure may for example include:

- Un premier niveau (i = 1) correspondant à la paire continentale d’une requête de voyage définie par une « origine continentale » et une « destination continentale » [p. ex. une valeur de la paire continentale peut être « Europe, Europe »] ;- A first level (i = 1) corresponding to the continental pair of a travel request defined by a "continental origin" and a "continental destination" [p. ex. a value of the continental pair can be "Europe, Europe"];

- Un second niveau (i = 2) correspondant au [x] transporteur [x] contrôlant le paramètre de voyage [p. ex. une valeur du transporteur contrôlant le voyage peut être « LH », nom standard pour Lufthansa] ;- A second level (i = 2) corresponding to the [x] transporter [x] controlling the travel parameter [p. ex. a value of the carrier controlling the journey can be “LH”, standard name for Lufthansa];

- Un troisième niveau (i = 3) correspondant à la paire de points géographiques d’une requête de voyage définie par un « point d’origine » et un « point de destination » [p. ex. une valeur de la paire de pays peut être » BER » - France, BER étant le nom standard pour Berlin] ;- A third level (i = 3) corresponding to the pair of geographic points of a travel request defined by a "point of origin" and a "destination point" [p. ex. a country pair value can be "BER" - France, BER being the standard name for Berlin];

- Un quatrième niveau (i = 4) correspondant à l’ensemble des services associés avec un produit défini par les valeurs de nœuds du niveau précédent [p. ex. une valeur de l’ensemble de services peut être le service [« animal en cabine »] et le service [« repas végétarien »].- A fourth level (i = 4) corresponding to all of the services associated with a product defined by the node values of the previous level [p. ex. a value of the set of services can be the service [“animal in cabin”] and the service [“vegetarian meal”].

Dans certains modes de réalisation, chaque nœud-feuille nL k de la structure de données en arbre correspondant à un ensemble de services demandés précédemment peut comprendre en plus :In certain embodiments, each leaf node n L k of the tree data structure corresponding to a set of services previously requested can also comprise:

- un compteur cn^ définissant le nombre de fois que la valeur de l’ensemble de services a été demandée au système du fournisseur de contenu de transaction 12 par un utilisateur au cours d’une période passée T; et/ou- a counter c n ^ defining the number of times that the value of the set of services has been requested from the system of the transaction content provider 12 by a user during a past period T; and or

- Une pluralité de valeurs d’ensembles de services ; chaque valeur d’ensemble de services [aussi appelée « prix de l’ensemble de services »] peut comprendre une information tarifaire liée au prix auquel l’ensemble de services correspondant, dénoté {[service 1] et [service 2] et ... [service p]} a été acheté au cours d’une transaction d’achat liée au produit défini par le chemin du nœud racine au nœud-feuille nN k au cours de la période passée?; dans un mode de réalisation, chaque valeur d’ensemble de services [prix de l’ensemble de services] peut comprendre une liste de valeurs des prix auxquels l’ensemble de services a été acheté au cours de la période passée ; dans un autre mode de réalisation, chaque valeur d’ensemble de services [prix de l’ensemble de services] peut comprendre une liste de fourchettes des prix auxquels la valeur d’ensemble de services a été achetée au cours de la période passée, la fourchette des prix étant définie par un seuil inférieur représentant le prix d’achat le plus bas de l’ensemble de services et un seuil supérieur représentant le prix d’achat le plus élevé de l’ensemble de services.- A plurality of values of service packages; each service bundle value [also called “service bundle price”] may include price information linked to the price at which the corresponding service bundle, denoted {[service 1] and [service 2] and .. . [service p]} was purchased during a purchase transaction linked to the product defined by the path from the root node to the leaf node n N k in the past period ?; in one embodiment, each set of services value [price of the set of services] may include a list of values of the prices at which the set of services was purchased during the past period; in another embodiment, each service bundle value [service bundle price] may include a list of price ranges at which the service bundle value was purchased in the past period, the price range being defined by a lower threshold representing the lowest purchase price of the set of services and an upper threshold representing the highest purchase price of the set of services.

La description suivante de certains modes de réalisation sera faite en référence aux I nœuds-feuille comprenant chacun une valeur d’ensemble de services sous la forme d’une fourchette de valeurs [ou fourchette de prix].The following description of certain embodiments will be made with reference to the I leaf nodes each comprising a value of set of services in the form of a range of values [or price range].

Chaque nœud-feuille nL k de la structure de données en arbre, correspondant à un ensemble donné de services, peut par ailleurs comprendre un horodatage représentant l’instant de la dernière mise à jour du nœud-feuille qui est la dernière date à laquelle un prix a été déterminé pour l’ensemble de services associé au nœud-feuille [l’horodatage peut inclure la date et l’heure de la mise à jour].Each leaf node n L k of the tree data structure, corresponding to a given set of services, can moreover include a time stamp representing the time of the last update of the leaf node which is the last date on which a price has been determined for the set of services associated with the leaf node [the time stamp can include the date and time of the update].

La figure 5 montre, à titre d’exemple, des données 81 comprises à chaque nœud-feuille qui sont associées à un ensemble de services exemplaire A = {animal en cabine, repas végétarien} incluant :FIG. 5 shows, by way of example, data 81 included in each leaf node which are associated with an exemplary set of services A = {animal in cabin, vegetarian meal} including:

Une fréquence d’occurrence : 6 % [une requête pour un ensemble de services 6 % du temps pour la requête définie par le chemin du nœud-feuille]Frequency of occurrence: 6% [a request for a set of services 6% of the time for the request defined by the path of the leaf node]

- Une fourchette de prix : [34 euros ; 41 euros]- A price range: [34 euros; 41 euros]

- Un horodatage Ts : 09/31/2017.- A time stamp Ts: 09/31/2017.

Dans certains modes de réalisation, chaque nœud 80 de la structure de données en arbre [différent des nœuds-feuilles] peut par ailleurs être associé à des données agrégées de nœudsfeuilles 82 qui peuvent être stockées localement au niveau du nœud ou stockées dans une unité de stockage connectée au gestionnaire d’arbre 800. Bien que la figure 5 montre, à titre d’exemple, des données de nœuds-feuilles 82 pour seulement deux nœuds 80, par souci de simplification, l’homme de métier comprendra aisément que des données similaires peuvent être comprises au niveau d’autres nœuds de l’arbre [différents des nœuds-feuilles]. Les données de nœud-feuille comprennent des données agrégées provenant de nœuds-feuilles situés dans le sous-arbre défini par le nœud 80 [en dessous du nœud 80], Les données du nœud-feuille comprennent ainsi des données agrégées liées à l’ensemble des services associés au sousarbre défini par le nœud 80, telles que les données suivantes pour chaque ensemble de services :In certain embodiments, each node 80 of the tree data structure [different from leaf nodes] can moreover be associated with aggregated data of leaf nodes 82 which can be stored locally at the level of the node or stored in a unit of storage connected to the tree manager 800. Although FIG. 5 shows, by way of example, leaf node data 82 for only two nodes 80, for the sake of simplification, the skilled person will easily understand that data similar can be understood at other tree nodes [different from leaf nodes]. Leaf node data includes aggregated data from leaf nodes located in the subtree defined by node 80 [below node 80], Leaf node data thus includes aggregated data related to the set services associated with the subtree defined by node 80, such as the following data for each set of services:

- une fréquence d’occurrence agrégée Occ.- an aggregated frequency of occurrence Occ.

- une information de valeurs agrégées V (appelée également « information de prix agrégés »), par exemple une fourchette de valeurs agrégées et potentiellement- information on aggregated values V (also called “information on aggregated prices”), for example a range of aggregated values and potentially

- un horodatage agrégé représentant la dernière mise à jour de l’ensemble de services.- an aggregated timestamp representing the last update of the set of services.

Pour un ensemble donné de services, la fréquence d’occurrence agrégée fait référence à la somme des fréquences d’occurrence associées à l’ensemble de services pour tous les nœuds-feuilles situés en dessous du nœud 80.For a given set of services, the aggregated frequency of occurrence refers to the sum of the frequencies of occurrence associated with the set of services for all leaf nodes located below node 80.

Dans un mode de réalisation, les informations agrégées de valeurs V comprises dans un nœud-feuille peuvent être une fourchette de valeurs agrégées [également dénommée «fourchette de prix agrégés»] dénotée [Pmin, Pmax], définie pour l’ensemble des services associés au nœud-feuille. La fourchette de prix peut être définie par un seuil plus bas Pmin et un seuil plus élevé Pmax, le seuil le plus bas Pmin représentant la plus basse valeur [prix] attribuée à l’ensemble de services parmi les valeurs [prix] associées à l’ensemble de services dans les nœuds-feuilles situés en dessous du nœud 80 et le seuil le plus élevé Pmax représentant la valeur la plus élevée attribuée à l’ensemble de services parmi les valeurs [les prix] associées à l’ensemble de services dans les nœuds-feuilles situés en dessous du nœud 80.In one embodiment, the aggregated information of values V included in a leaf node can be a range of aggregated values [also called “range of aggregated prices”] denoted [Pmin, Pmax], defined for all of the associated services at the leaf node. The price range can be defined by a lower threshold Pmin and a higher threshold Pmax, the lowest threshold Pmin representing the lowest value [price] attributed to the set of services among the values [price] associated with the set of services in the leaf nodes located below node 80 and the highest threshold Pmax representing the highest value assigned to the set of services among the values [prices] associated with the set of services in leaf nodes located below node 80.

On notera que l’invention n’est pas limitée à une information de valeurs agrégées V implémentée comme fourchette de valeurs agrégées [Pmin, Pmax], Autrement, l’information de valeurs agrégées V peut être :Note that the invention is not limited to information on aggregated values V implemented as a range of aggregated values [Pmin, Pmax], Otherwise, the information on aggregated values V can be:

une valeur moyenne [également dénommée « moyenne de prix »], ou une valeur médiane [également dénommée « prix médian »], ouan average value [also known as a "price average"], or a median value [also known as a "median price"], or

- une fourchette basée sur des valeurs unitaires [également dénommées « prix unitaires »] dans laquelle les valeurs extrêmes sont retirées [par exemple, les percentiles 0-10 et 90100 peuvent être retirés] ou une liste ordonnée de valeurs [prix] comprenant des valeurs classées par fréquences d’occurrence décroissantes.- a range based on unit values [also known as “unit prices”] from which extreme values are removed [eg percentiles 0-10 and 90100 can be removed] or an ordered list of values [price] including values classified by decreasing frequencies of occurrence.

Dans un autre mode de réalisation, l’information de valeurs agrégées V stockée par un nœud-feuille peut comprendre toutes les valeurs possibles [ou « prix »] en association à leur nombre d’occurrencesIn another embodiment, the information of aggregated values V stored by a leaf node can include all the possible values [or “price”] in association with their number of occurrences

La description suivante de certains modes de réalisation de l’invention sera faite en référence à l’information de valeurs agrégées V implémentée comme une fourchette de valeurs agrégées [Pmin, Pmax], uniquement à titre d’illustration.The following description of certain embodiments of the invention will be made with reference to the information of aggregated values V implemented as a range of aggregated values [Pmin, Pmax], only by way of illustration.

Pour un ensemble donné de services, la valeur d’horodatages agrégés fait référence aux horodatages les plus récents parmi les horodatages associés aux ensembles de services qui correspondent aux nœuds-feuilles en dessous du nœud 80.For a given set of services, the aggregated timestamp value refers to the most recent timestamps among the timestamps associated with the service sets that correspond to leaf nodes below node 80.

En agrégeant à chaque nœud de l’arbre les données liées aux ensembles de services associés aux nœuds-feuilles situés en dessous du nœud, les coûts de calcul de l’estimation de services auxiliaires peuvent être réduits.By aggregating at each node of the tree the data related to the service sets associated with the leaf nodes located below the node, the costs of calculating the estimate of ancillary services can be reduced.

Dans un mode de réalisation, en réponse à une requête de pré-transaction spécifiant un ensemble donné de services, l’estimateur de service 102 peut être configuré pour explorer la structure de données en arbre 8 selon un algorithme de recherche [par exemple un algorithme de recherche meilleur-premier [Best-First]] pour déterminer un nœud correspondant ayant un chemin dans l'arbre qui correspond aux paramètres d’une requête de pré-transaction et pour rechercher un nœud-feuille dans le sous-arbre du nœud correspondant qui correspond à l’ensemble donné de services et qui a une fréquence d’occurrence satisfaisant une condition de seuil au niveau le plus bas possible de la structure de données en arbre. Le produit associé à l’ensemble donné de services est ainsi défini par le chemin partant du nœud racine jusqu’au nœud correspondant. L’estimateur de service 102 peut déterminer l’information de valeur de service à partir des données comprises dans le nœud-feuille déterminé. Dans un mode de réalisation, la fréquence d’occurrence d’un nœud-feuille peut être déterminée pour satisfaire le seuil. Si la fréquence d’occurrence est supérieure ou égale à un seuil prédéfini.In one embodiment, in response to a pre-transaction request specifying a given set of services, the service estimator 102 can be configured to explore the data structure in tree 8 according to a search algorithm [for example an algorithm best-first search to determine a corresponding node having a path in the tree that corresponds to the parameters of a pre-transaction request and to search for a leaf node in the sub-tree of the corresponding node which corresponds to the given set of services and which has a frequency of occurrence satisfying a threshold condition at the lowest possible level of the tree data structure. The product associated with the given set of services is thus defined by the path from the root node to the corresponding node. The service estimator 102 can determine the service value information from the data included in the determined leaf node. In one embodiment, the frequency of occurrence of a leaf node can be determined to satisfy the threshold. If the frequency of occurrence is greater than or equal to a predefined threshold.

Plus spécifiquement, l’estimateur de service 102 peut être configuré pour rechercher un nœud-feuille nL k dans le sous-arbre du nœud correspondant qui correspond au service donné au dernier niveau possible L de la structure de données en arbre et ayant assez d’occurrences [c.-à-d. que le nœud-feuille a une fréquence d’occurrence qui satisfait la condition de seuil].More specifically, the service estimator 102 can be configured to search for a leaf node n L k in the sub-tree of the corresponding node which corresponds to the service given at the last possible level L of the tree data structure and having enough d 'occurrences [i.e. that the leaf node has a frequency of occurrence that satisfies the threshold condition].

Dans un mode de réalisation, pour déterminer l’information de valeur de service, s’il est déterminé qu’une feuille d'arbre nL k à un niveau L (avec L> N) correspond à l’ensemble donné de services {[service 1] et [service 2] et... [service p]}, l’estimateur de service 102 peut être configuré pour déterminer la fourchette de valeurs de l’ensemble de services (prix de l’ensemble des services) associée à l’ensemble des services {[service 1] et [service 2] et... [service p]} dans la feuille de l’arbre nk au cours de la période passée T.In one embodiment, to determine the service value information, if it is determined that a tree leaf n L k at a level L (with L> N) corresponds to the given set of services { [service 1] and [service 2] and ... [service p]}, the service estimator 102 can be configured to determine the range of values of the set of services (price of the set of services) associated to the set of services {[service 1] and [service 2] and ... [service p]} in the leaf of the tree n k during the past period T.

La fourchette de valeur de l’ensemble de services peut ainsi correspondre à la fourchette de prix payés par les utilisateurs pour ce produit au cours de la période passée T.The value range of the set of services can therefore correspond to the price range paid by users for this product during the past period T.

Par exemple, une fourchette de prix de [34 euros - 41 euros] peut être associée à l’ensemble de services {[service animal en cabine »] et [service repas végétarien]}.For example, a price range of [34 euros - 41 euros] can be associated with the set of services {[animal service in cabin "] and [vegetarian meal service]}.

Dans certains modes de réalisation, le compteurcU[k associé à un nœud-feuille de l’arbre peut être utilisé par l’estimateur de service 102 pour dériver une valeur statistique représentant la fréquence d’occurrence d’un ensemble de services au cours de la période passée?. Par exemple, une fréquence d’occurrence de l’ensemble de services {[service animal en cabine »] et [service repas végétarien]} peut être égale à 6 % du temps.In some embodiments, the counterc U [ k associated with a leaf node of the tree can be used by the service estimator 102 to derive a statistical value representing the frequency of occurrence of a set of services during of the past period ?. For example, a frequency of occurrence of the set of services {[animal service in the cabin »] and [vegetarian meal service]} can be equal to 6% of the time.

Dans un mode de réalisation, un algorithme de reconstruction d’un arbre [également dénommé « algorithme d’équilibrage »] peut être appliqué à la structure de données en arbre 8 pour obtenir une structure de données en arbre aussi équilibrée que possible en commençant à partir d’un nœud quelconque. Un arbre est équilibré ici :In one embodiment, a tree reconstruction algorithm [also known as a “balancing algorithm”] can be applied to the tree data structure 8 to obtain a tree data structure as balanced as possible by starting at from any node. A tree is balanced here:

- Pour chaque nœud de l’arbre, les hauteurs du sous-arbre de gauche et les hauteurs du sous-arbre de droite diffèrent au plus d’un, et- For each node of the tree, the heights of the left subtree and the heights of the right subtree differ by more than one, and

- le sous-arbre de gauche est équilibré, et- the subtree on the left is balanced, and

- le sous-arbre de droite est équilibré.- the subtree on the right is balanced.

Pour en revenir à la figure 3, l’unité d’apprentissage d’expériences de service 105 peut être configurée pour capturer la valeur de service et le statut de disponibilité de chaque service auxiliaire associé aux produits offerts par le système de transaction 12 en utilisant des données transactionnelles en temps réel. L’unité d’apprentissage d’expériences de service 105 peut stocker les informations collectées sous la forme de structure de données en arbre de la base de données d’expériences de service 103. Dans certains modes de réalisation, l’unité d’apprentissage d’expériences de service 105 peut être configurée pour collecter des données sur les requêtes de service, lorsque la MSP 11 ne parvient pas à fournir des informations.Returning to FIG. 3, the service experience learning unit 105 can be configured to capture the service value and the availability status of each auxiliary service associated with the products offered by the transaction system 12 using transactional data in real time. The service experience learning unit 105 can store the information collected in the form of a tree data structure of the service experience database 103. In some embodiments, the learning unit Service Experiments 105 can be configured to collect data on service requests when the MSP 11 fails to provide information.

L’unité d’apprentissage d’expériences de service 105 peut être programmée pour autoréorganiser la base de données d’expériences de service 103 selon une période prédéfinie ou automatiquement en réponse à la détection d’une condition de mise à jour.The service experience learning unit 105 can be programmed to auto-organize the service experience database 103 according to a predefined period or automatically in response to the detection of an update condition.

Dans un mode de réalisation, l’unité d’apprentissage d’expériences de service 105 peut collecter des informations à partir d’une phase de révision tarifaire du flux de transactions, exécutée par le système de transaction 12. Tel qu’utilisé dans les présentes, la révision tarifaire fait référence à la phase qui précède la validation d’une transaction par un utilisateur au cours de laquelle il est demandé à un utilisateur de réviser les informations tarifaires liées à un achat de produit (avant l’étape au cours de laquelle il est demandé à un utilisateur de saisir des informations personnelles d’utilisateur). Dans cette phase, le contexte d’une requête de transaction est connu au niveau du système de transaction 12, permettant ainsi d’utiliser le paramètre de la requête pour mettre à jour la structure de données en arbre dans la base de données d’expériences de service 103. Cela permet par ailleurs de recueillir des informations suffisamment tard dans le flux de transaction pour obtenir un produit suffisamment spécifié (par exemple un itinéraire fixe pour un produit de voyage) et recueillir ainsi des informations de service précises. Par ailleurs, cela permet de recueillir des informations suffisamment tôt dans le flux de transaction pour obtenir un trafic de transactions maximum.In one embodiment, the service experience learning unit 105 can collect information from a tariff revision phase of the transaction flow, executed by the transaction system 12. As used in the present, the tariff revision refers to the phase preceding the validation of a transaction by a user during which a user is asked to revise the tariff information linked to a product purchase (before the step during which a user is asked to enter personal user information). In this phase, the context of a transaction request is known at the transaction system 12 level, thus making it possible to use the request parameter to update the tree data structure in the experience database. 103. This also makes it possible to collect information sufficiently late in the transaction flow to obtain a sufficiently specified product (for example a fixed route for a travel product) and thus collect precise service information. In addition, this allows information to be gathered early enough in the transaction flow to obtain maximum transaction traffic.

Pour chaque requête de transaction soumise au système de transaction 12, l’unité d’apprentissage d’expériences de service 105 peut être configuré pour parcourir l’arbre de la base de données d’expériences de services 103 du nœud racine jusqu’au nœud-feuille, pour déterminer si les paramètres de la requête correspondent à une valeur de nœud à chaque niveau jusqu’à ce que le dernier nœud avant les feuilles soit atteint i = N -1), l’unité d’apprentissage d’expériences de service 105 étant configurée pour mettre à jour un nœud si une correspondance est trouvée ou pour créer un nouveau nœud si les valeurs des paramètres ne sont pas créées dans l’arbre.For each transaction request submitted to the transaction system 12, the service experience learning unit 105 can be configured to browse the tree of the service experience database 103 from the root node to the node -sheet, to determine if the parameters of the query correspond to a node value at each level until the last node before the leaves is reached i = N -1), the learning unit of experiences of service 105 being configured to update a node if a match is found or to create a new node if the parameter values are not created in the tree.

En particulier, l’unité d’apprentissage d’expériences de service 105 peut être configurée pour incrémenter le compteur associé à une valeur de nœud de l’arbre, en réponse à la recherche d’une correspondance entre un paramètre (p. ex., le site Web d’une compagnie aérienne, le transporteur régulateur, la paire de lieux, etc.) de la requête et la valeur de nœud, permettant ainsi le stockage du contexte intégral dans l’arbre.In particular, the service experience learning unit 105 can be configured to increment the counter associated with a node value of the tree, in response to the search for a correspondence between a parameter (e.g. , the website of an airline, the regulator carrier, the pair of places, etc.) of the request and the node value, thus allowing the storage of the full context in the tree.

Dans un mode de réalisation, pour déterminer si une correspondance existe dans l’arbre pour un paramètre (p. ex., le site web d’une compagnie aérienne, le transporteur régulateur, la paire d’emplacements, etc.) d’une requête de transaction donnée soumise au système de transaction 12 spécifiant un produit donné et un ensemble donné de services, l’unité d’apprentissage d’expériences de service 105 peut déterminer si une feuille existe déjà pour l’ensemble donné de services dans l’arbre qui possède un chemin d’accès associé correspondant aux paramètres de la requête se rapportant au produit. Si une correspondance est trouvée, le nœud correspondant à la feuille peut être mis à jour en incrémentant le compteur associé à la feuille. L’unité d’apprentissage d’expériences de service 105 peut être également configurée pour stocker les données supplémentaires associées à l’ensemble de services telles que le contexte intégral et une ou plusieurs valeurs d’ensemble de services (p. ex., le prix élémentaire pour chaque service [service k] de l’ensemble de services). Si aucune correspondance n’a été trouvée entre une feuille de l’arbre et l’ensemble de services spécifié dans la requête de transaction, l’unité d’apprentissage d’expériences de service 105 peut créer une nouvelle feuille (nouveau nœud) pour l’ensemble de services de la requête de transaction, régler le compteur du nœud créé sur 1. Il peut par ailleurs stocker dans le fil nouvellement créé des données supplémentaires se rapportant à l’ensemble de services telles que le contexte intégral et une ou plusieurs valeurs d’ensembles de services (p. ex., le prix élémentaire pour chaque service [service k] de l’ensemble de services).In one embodiment, to determine if a match exists in the tree for a parameter (eg, an airline's website, the regulator, the pair of locations, etc.) of a given transaction request submitted to the transaction system 12 specifying a given product and a given set of services, the service experience learning unit 105 can determine if a sheet already exists for the given set of services in the tree which has an associated path corresponding to the parameters of the query relating to the product. If a match is found, the node corresponding to the sheet can be updated by incrementing the counter associated with the sheet. The service experience learning unit 105 can also be configured to store additional data associated with the service set such as the full context and one or more service set values (e.g., the elementary price for each service [service k] of the set of services). If no correspondence has been found between a sheet of the tree and the set of services specified in the transaction request, the service experience learning unit 105 can create a new sheet (new node) for the set of services of the transaction request, set the counter of the created node to 1. It can also store in the newly created thread additional data relating to the set of services such as the full context and one or more service bundle values (eg, the elementary price for each service [service k] in the service bundle).

Dans un mode de réalisation, l’unité d’apprentissage d’expériences de service 105 peut lancer un processus de vérification de l’arbre pour vérifier la configuration de l’arbre et identifier si l’arbre est déséquilibré, selon une période de vérification prédéfinie, comme à chaque M mise à jour de l’arbre. Le processus de vérification échoue lorsqu’un déséquilibre de l’arbre est détecté. Dans certains modes de réalisation, un algorithme de reconstruction de l’arbre peut être appliqué pour équilibrer l’arbre.In one embodiment, the service experience learning unit 105 can initiate a tree verification process to verify the tree configuration and identify if the tree is unbalanced, according to a verification period predefined, as with each M tree update. The verification process fails when an imbalance of the tree is detected. In some embodiments, a tree reconstruction algorithm can be applied to balance the tree.

Dans un mode de réalisation, la période de vérification de l’arbre peut être prédéfinie par un administrateur système. Dans certains modes de réalisation, la période de vérification de l’arbre peut être mise à jour pendant le fonctionnement de l’unité d’apprentissage d’expériences de service 105 ou ajustée dynamiquement en fonction des critères de mise à jour. Si l’unité d’apprentissage d’expériences de service 105 détecte que l’arbre est déséquilibré, il peut appliquer un algorithme d’équilibrage pour réorganiser l’arbre.In one embodiment, the tree verification period can be predefined by a system administrator. In some embodiments, the tree verification period can be updated during operation of the service experience learning unit 105 or dynamically adjusted according to the update criteria. If the service learning unit 105 detects that the tree is unbalanced, it can apply a balancing algorithm to rearrange the tree.

Dans certaines applications de l’invention, la plateforme classique de calcul massif MCP 13 ne peut pas prétraiter toutes les possibilités de services auxiliaires en raison de la complexité du calcul. Afin de limiter les coûts de calcul des informations de services auxiliaires (disponibilité du service, prix du service), le moteur 1 d’estimation du service, selon certains modes de réalisation, peut comporter un calculateur de popularité de service 108. Le calculateur de popularité de service 108 peut être configuré pour calculer uniquement des recommandations destinées aux services auxiliaires associés à chaque produit candidat parmi un sous-ensemble de services (« sous-ensemble de services populaires »), chaque service du sous-ensemble populaire étant sélectionné à partir de un indicateur de popularité calculé pour le service qui représente la probabilité de requête de service par les utilisateurs.In certain applications of the invention, the conventional massive computing platform MCP 13 cannot pre-process all the possibilities of auxiliary services because of the complexity of the computation. In order to limit the costs of calculating the auxiliary service information (availability of the service, price of the service), the engine 1 for estimating the service, according to certain embodiments, may include a service popularity calculator 108. The service calculator service popularity 108 can be configured to calculate only recommendations for ancillary services associated with each product candidate among a subset of services ("popular service subset"), each service of the popular subset being selected from a popularity indicator calculated for the service that represents the probability of users requesting a service.

Le calculateur de popularité de service 108 peut être configuré pour recevoir le contexte de la requête de prétraitement (également désignée par « recommandation » ou requête « pré transactionnelle»), et pour utiliser la structure de données en arbre afin de déterminer les ensembles de services les plus demandés sur une période écoulée (services les plus populaires).The service popularity calculator 108 can be configured to receive the context of the preprocessing request (also referred to as "recommendation" or "pre-transactional" request), and to use the tree data structure to determine the service sets most requested over a period of time (most popular services).

Le calculateur de popularité de service 108 peut utiliser la base de données d’expériences de service 103 pour déterminer les indicateurs de popularité associés à chaque service. Dans certains modes de réalisation, le calculateur de popularité de service 108 peut appliquer des critères (également désignés par « contexte d’entrée » pour le calculateur de popularité de service 108) associés aux produits spécifiés pour chaque système de transaction 12 afin de déterminer les indicateurs de popularité (p. ex., critères associés aux dates et/ou durée du séjour, et/ou compagnie aérienne, ou paire de villes, etc. pour un produit de voyage). En conséquence, l’indicateur de popularité d’un service peut être réglé sur une valeur élevée si le produit associé est fréquemment demandé sur une période de temps donnée.The service popularity calculator 108 can use the service experience database 103 to determine the popularity indicators associated with each service. In some embodiments, the service popularity calculator 108 may apply criteria (also referred to as "input context" for the service popularity calculator 108) associated with the products specified for each transaction system 12 to determine the popularity indicators (e.g. criteria associated with dates and / or length of stay, and / or airline, or city pair, etc. for a travel product). Consequently, the popularity indicator of a service can be set to a high value if the associated product is frequently requested over a given period of time.

Dans un mode de réalisation, considérant n types t1 de transactions possibles..., tn pour demander un ensemble de services S, l’indicateur de popularité peut être déterminé à partir du paramètre de popularité (S) défini comme étant :In one embodiment, considering n types t1 of possible transactions ..., tn to request a set of services S, the popularity indicator can be determined from the popularity parameter (S) defined as:

Popularité (S) = Σ-Ξ” Wjocci (1 )Popularity (S) = Σ-Ξ ”Wjocci (1)

Dans la formule (1), désigne le poids associé à ti, occ, désigne la fréquence d’occurrence des requêtes ayant le type de transaction ti et ayant demandé S sur la période de temps.In formula (1), designate the weight associated with ti, occ, designate the frequency of occurrence of requests having the transaction type ti and having requested S over the period of time.

Par exemple, si l’on considère un système fournisseur de voyage, les types de transactions peuvent inclure :For example, when considering a travel supplier system, transaction types may include:

- un type T4 de requête avant la phase de préachat ;- a type T 4 of request before the pre-purchase phase;

un type T2 de requête de préachat ;a type T 2 of pre-purchase request;

un type T3 de requête de prix ;a type T 3 of price request;

Tel qu’il est utilisé dans les présentes, un «contexte-nœud» pour un nœud donné fait référence aux informations définissant le chemin d’accès du nœud depuis le nœud racine jusqu’au nœud donné.As used herein, a "node context" for a given node refers to information defining the path to the node from the root node to the given node.

Pour chaque contexte d’entrée défini par les critères de requête d’une requête reçue de l’utilisateur, le calculateur de popularité de service 108 peut parcourir la structure de données en arbre 8 de l’arbre de la base de données d’expériences de service 103 en commençant par le nœud racine selon un algorithme de recherche d’arbre pour trouver un nœud Nd (« nœud actuel ») au dernier niveau possible de l’arbre :For each input context defined by the request criteria of a request received from the user, the service popularity calculator 108 can browse the data structure in tree 8 of the tree of the experience database. service 103 starting with the root node according to a tree search algorithm to find a node Nd ("current node") at the last possible level of the tree:

- ayant un nœud-fils correspondant aux critères de requête (première condition) et un nœud-feuille au-dessous du nœud-fils associé à un ensemble de services ayant une fréquence d’occurrence qui est au moins égale à un seuil prédéfini Q (deuxième condition).- having a child node corresponding to the request criteria (first condition) and a leaf node below the child node associated with a set of services having an frequency of occurrence which is at least equal to a predefined threshold Q ( second condition).

Le calculateur jde popularité de service 108 peut être configuré pour déterminer ensuite les fréquences d’occurrence cn.k de tous les ensembles de services (mode ‘pull’) ou de l’ensemble des services spécifié (mode ‘push’) à partir du nœud Nd actuel sélectionné. Dans certains modes de réalisation, le calculateur de popularité de service 108 peut envoyer les fréquences d’occurrence du ou des ensemble(s) de services ainsi déterminé(s) à la MCP 11.The service popularity calculator 108 can be configured to then determine the frequencies of occurrence c n .k of all the sets of services ('pull' mode) or of the set of specified services ('push' mode) from of the currently selected Nd node. In certain embodiments, the service popularity calculator 108 can send the frequencies of occurrence of the set or sets of services thus determined to the MCP 11.

La MCP 11 peut être configurée pour affiner le contexte d’entrée en ajoutant les ensembles de services déterminés par le calculateur de popularité de service 108 et la fréquence d’occurrence associée à chaque ensemble de services déterminé.The MCP 11 can be configured to refine the input context by adding the sets of services determined by the service popularity calculator 108 and the frequency of occurrence associated with each set of services determined.

L’estimateur de service 102 peut être configuré afin de déterminer les services auxiliaires en utilisant les données historiques stockées dans la base de données d’expériences de service 103 pour chaque produit recommandé (ou candidat) fourni par un système de traitement de contenu de transaction 12.The service estimator 102 can be configured to determine ancillary services using historical data stored in the service experience database 103 for each recommended product (or candidate) provided by a transaction content processing system 12.

L’estimateur de service 102 peut recevoir du dispositif de commutation de détermination de services 104 une entrée, en réponse à un mode d’estimation de service activé par le dispositif de commutation de détermination de services 104. L’entrée envoyée par de détermination de services 104 à l’estimateur de service 102 peut comporter des données contextuelles (p. ex., ID Office, marché pour une application exemplaire de l’invention de fourniture de voyage) provenant d’une demande de recommandation soumise au système prétransactionnel 10, et les informations potentielles associées à un ensemble de services auxiliaires comprenant au moins un service, si un « mode ‘pull’ » est activé par l’utilisateur (l’utilisateur spécifie ainsi dans la requête de recommandation qu’il souhaite des recommandations pour le produit candidat associé à l'ensemble de services auxiliaires). Alternativement, le traitement de l’estimateur de service 102 peut être déclenché dynamiquement en mode ‘push’, sans que l’utilisateur spécifie un ensemble de services.The service estimator 102 may receive an input from the service determination switching device 104 in response to a service estimation mode activated by the service determination switching device 104. The input sent by service determination services 104 to the service estimator 102 may include contextual data (e.g., ID Office, market for an exemplary application of the travel supply invention) from a request for recommendation submitted to the pre-transaction system 10, and the potential information associated with a set of auxiliary services comprising at least one service, if a “pull mode” is activated by the user (the user thus specifies in the recommendation request that he wishes recommendations for the product candidate associated with the set of auxiliary services). Alternatively, the processing of the service estimator 102 can be triggered dynamically in push mode, without the user specifying a set of services.

La figure 6 est un organigramme illustrant le processus de détermination de recommandation d’un ensemble de services candidats, qui peut être implémenté par l’estimateur de service 102, selon un mode de réalisation en mode ‘pull’.FIG. 6 is a flow diagram illustrating the process for determining the recommendation of a set of candidate services, which can be implemented by the service estimator 102, according to an embodiment in "pull" mode.

À l’étape 600, une entrée est reçue du dispositif de commutation de détermination de services 104 comprenant des données contextuelles définissant les paramètres d’un produit demandé et la spécification d’un ensemble de services provenant d’une demande de recommandation soumise par un dispositif utilisateur à un dispositif de traitement prétransactionnel 10.In step 600, an input is received from the service determination switching device 104 comprising contextual data defining the parameters of a requested product and the specification of a set of services originating from a recommendation request submitted by a user device to a pre-transaction processing device 10.

À l’étape 602, la structure de données en arbre 8 de la base de données d'expériences de service 103 est parcourue en utilisant un algorithme de recherche d’arbre à partir du nœud racine jusqu’à ce qu’un nœud Nd ait été atteint qui satisfasse l’ensemble des conditions de nœuds (bloc 603) comprenant :In step 602, the tree data structure 8 of the service experience database 103 is traversed using a tree search algorithm from the root node until a node Nd has been reached which satisfies all the node conditions (block 603) including:

- la première condition qui est remplie si un nœud-fils du nœud Nd possède un contexte correspondant au contexte d’entrée, ou en d’autres termes, si ce nœud-fils correspond aux critères de la requête reçue de l’utilisateur (requête d’entrée) ; et- the first condition which is fulfilled if a child node of the node Nd has a context corresponding to the input context, or in other words, if this child node corresponds to the criteria of the request received from the user (request input); and

- la deuxième condition qui est remplie si le nœud-fils du nœud Nd actuel possède l’ensemble de services spécifié, et si l’ensemble de services est associé à une fréquence d’occurrence supérieure ou égale à un nombre minimal Q.- the second condition which is fulfilled if the child node of the current node Nd has the specified set of services, and if the set of services is associated with an occurrence frequency greater than or equal to a minimum number Q.

Dans une réalisation en mode ‘PULL’, les critères de requête utilisés pour évaluer la condition première comprennent l’ensemble de services spécifié par l’utilisateur.In an implementation in ‘PULL’ mode, the query criteria used to evaluate the first condition include the set of services specified by the user.

Le paramètre Q désigne le nombre minimal d’occurrences. Le paramètre Q peut être prédéfini, configurable par un administrateur, ou mis à jour dynamiquement.The Q parameter designates the minimum number of occurrences. The Q parameter can be predefined, configurable by an administrator, or updated dynamically.

Dans un mode de réalisation, pour tester la première condition, les données des nœudsfeuilles associées à chaque nœud peuvent être utilisées pour optimiser le coût de la recherche, les données des nœuds-feuilles 82 fournissant des données relatives à chaque ensemble de services associés à un nœud-feuille dans le sous-arbre défini par un nœud donné dans l’arbre (p. ex., pour chaque ensemble de services associé à un nœud-feuille dans un sous-arbre du nœud, la fréquence d’occurrence Occ, fourchette de prix V, horodatage Ts). Dans ce mode de réalisation, chaque nœud-parent agrège les données de l’ensemble de services stockées dans les nœuds-feuilles situés au-dessous du nœud-parent.In one embodiment, to test the first condition, the data of the leaf nodes associated with each node can be used to optimize the cost of the search, the data of the leaf nodes 82 providing data relating to each set of services associated with a leaf-node in the sub-tree defined by a given node in the tree (e.g., for each set of services associated with a leaf-node in a sub-tree of the node, the frequency of occurrence Occ, range of price V, time stamp Ts). In this embodiment, each parent node aggregates the data of the set of services stored in the leaf nodes located below the parent node.

Si le nœud Nd actuel satisfait les première et deuxième conditions, le parcours dans l’arbre se poursuit (étape 604).If the current node N d satisfies the first and second conditions, the search in the tree continues (step 604).

Dans le cas contraire, si les première et deuxième conditions ne sont pas remplies, le dernier nœud Nd parcouru est sélectionné, et à l’étape 606, la fourchette de prix unitaires [Pmin; Pmax] de l’ensemble des services demandé peut être déterminée à partir des informations de valeur de service associées à l’ensemble de services dans les données agrégées associées au nœud Nd ou récupérées à partir d’une mémoire de stockage si la fourchette a été précalculée. Chaque fourchette de prix unitaires [Pmin-, Pmax] peut comporter une limite inférieure Pmin représentant le prix minimal des services élémentaires qui constituent l’ensemble de services demandé et une limite supérieure Pmax représentant le prix maximum des services élémentaires qui constituent l’ensemble de services.Otherwise, if the first and second conditions are not met, the last node Nd traversed is selected, and in step 606, the range of unit prices [Pmin; Pmax] of the set of services requested can be determined from the service value information associated with the set of services in the aggregated data associated with the node N d or retrieved from a storage memory if the range has been pre-calculated. Each unit price range [Pmin-, Pmax] may include a lower limit Pmin representing the minimum price of the elementary services which constitute the set of services requested and an upper limit Pmax representing the maximum price of the elementary services which constitute the set of services.

À l’étape 608, la fourchette de prix unitaires [Pmin; Pmax] déterminée pour l’ensemble de services demandé, à partir de la structure de données en arbre 8, peut être retournée au dispositif de commutation de détermination de service 104.In step 608, the unit price range [Pmin; Pmax] determined for the requested set of services, from the data structure in tree 8, can be returned to the service determination switching device 104.

Le procédé peut comprendre par ailleurs l’étape 610 d’incrémentation de la fréquence d’occurrence associée à l’ensemble de services dans le nœud-feuille correspondant, et de mise à jour en conséquence des données agrégées associées aux nœuds dans les niveaux supérieurs de l’arbre de ce nœud-feuille.The method may also comprise step 610 of incrementing the frequency of occurrence associated with the set of services in the corresponding leaf node, and updating accordingly the aggregated data associated with the nodes in the upper levels of the tree of this leaf node.

La figure 7 est un organigramme illustrant le processus de détermination d’une liste d’ensembles de services candidats, qui peut être implémentée par l’estimateur de services 102, selon un mode de réalisation en mode ‘push’.FIG. 7 is a flow diagram illustrating the process for determining a list of candidate service sets, which can be implemented by the service estimator 102, according to an embodiment in "push" mode.

En mode ‘push’, aucun ensemble de service n’est spécifié dans la requête de recommandation soumise au système pré-transactionnel 10.In push mode, no service set is specified in the recommendation request submitted to the pre-transaction system 10.

Les paramètres des modes ‘push’ peuvent être prédéfinis tels que le nombre maximal d’ensembles de services retournés à l’utilisateur.The parameters of the push modes can be predefined such as the maximum number of service sets returned to the user.

À l’étape 700, une entrée est reçue du dispositif de commutation de détermination de service 104 comprenant des données contextuelles définissant les paramètres d’un produit demandé provenant d’une requête de recommandation soumise par un dispositif d’utilisateur à un dispositif de traitement pré-transactionnel 10, sans que soit spécifié un quelconque ensemble de services (MODE ‘PUSH’). L’entrée peut comporter par ailleurs le nombre escompté N d’ensembles de services devant être poussés.In step 700, an input is received from the service determination switching device 104 comprising contextual data defining the parameters of a requested product originating from a recommendation request submitted by a user device to a processing device pre-transaction 10, without specifying any set of services (MODE 'PUSH'). The entry may also include the expected number N of service packages to be pushed.

Les étapes 702 à 704 sont similaires aux étapes 602 à 604 de la figure 6. Cependant, comme aucun ensemble de services n’est spécifié dans la requête d’entrée en mode ‘push’, les critères de la requête utilisés pour déterminer un nœud-fils à l’étape 702 (première condition) n’incluent pas un ensemble de services spécifié.The steps 702 to 704 are similar to the steps 602 to 604 of FIG. 6. However, since no set of services is specified in the entry request in 'push' mode, the criteria of the request used to determine a node -wires in step 702 (first condition) do not include a specified set of services.

En conséquence, à l’étape 702, la structure de données en arbre 8 de la base de données d’expériences de service 103 est parcourue en utilisant un algorithme de recherche d’arbre à partir du nœud racine jusqu’à ce qu’un nœud Nd ait été atteint qui satisfasse l’ensemble des conditions de nœuds (bloc 703) comprenant :Consequently, in step 702, the tree data structure 8 of the service experience database 103 is traversed using a tree search algorithm from the root node until a node Nd has been reached which satisfies all the node conditions (block 703) including:

- la première condition qui est remplie si un nœud-fils du nœud Nd possède un contexte correspondant au contexte d’entrée, ou en d’autres termes, si ce nœud-fils correspond aux critères de la requête reçue de l’utilisateur (requête d’entrée) ; et- the first condition which is fulfilled if a child node of the node Nd has a context corresponding to the input context, or in other words, if this child node corresponds to the criteria of the request received from the user (request input); and

- la deuxième condition, qui est remplie si le nœud-fils du nœud actuel Nd possède au moins N des ensembles de services associés à une fréquence d’occurrence supérieure ou égale à un nombre minimal Q.- the second condition, which is fulfilled if the child node of the current node Nd has at least N sets of services associated with an occurrence frequency greater than or equal to a minimum number Q.

Cela permet de sélectionner le nœud Nd qui satisfait les première et deuxième conditions au niveau le plus bas possible de l’arbre.This makes it possible to select the node Nd which satisfies the first and second conditions at the lowest possible level of the tree.

Si les première et deuxième conditions ne sont pas remplies, le dernier nœud Nd parcouru satisfaisant les deux conditions est sélectionné.If the first and second conditions are not fulfilled, the last node Nd traversed satisfying the two conditions is selected.

À l’étape 706, les fréquences d’occurrence des ensembles de services associés aux nœuds-feuilles situés sous le nœud Nd sélectionné peuvent être déterminées, en utilisant par exemple les données du nœud-feuille 82 associées au nœud Nd. Dans certains modes de réalisation, si deux ensembles de services différents possèdent la même fréquence d’occurrence, l’horodatage associé aux ensembles de services peut être utilisé pour sélectionner l’ensemble de services ayant le dernier horodatage (pour lequel une valeur tarifaire a été déterminée plus récemment).In step 706, the frequencies of occurrence of the sets of services associated with the leaf nodes located under the selected node Nd can be determined, using for example the data of the leaf node 82 associated with the node Nd. In some embodiments, if two different service sets have the same frequency of occurrence, the time stamp associated with the service sets can be used to select the service set having the last time stamp (for which a tariff value has been determined more recently).

À l’étape 708, un ou plusieurs ensembles de services peuvent être sélectionnés selon la fréquence d’occurrence associée aux ensembles de services. Ceci fournit une liste filtrée des ensembles de services (les ensembles de services les plus populaires). Dans un mode de réalisation, l’étape 708 peut comprendre de sélectionner les ensembles de services associés à une fréquence d’occurrence supérieure ou égale à un seuil prédéfini.In step 708, one or more sets of services can be selected according to the frequency of occurrence associated with the sets of services. This provides a filtered list of service sets (the most popular service sets). In one embodiment, step 708 may include selecting the sets of services associated with an occurrence frequency greater than or equal to a predefined threshold.

À l’étape 710, la fourchette des prix unitaires [Pmin; Pmax] associée à chaque ensemble de services sélectionné à l’étape 708 peut être déterminée, par exemple à partir des données des nœuds-feuilles 82. Chaque fourchette de prix unitaires [Pmin; Pmax] comporte une limite inférieure Pmin représentant le prix minimal de l’ensemble de services et une limite supérieure Pmax représentant le prix maximum de l’ensemble de services sur la période T révolue.In step 710, the unit price range [Pmin; Pmax] associated with each set of services selected in step 708 can be determined, for example from the data of the leaf nodes 82. Each unit price range [Pmin; Pmax] has a lower limit Pmin representing the minimum price of the set of services and an upper limit Pmax representing the maximum price of the set of services over the completed period T.

Au lieu de déterminer les fréquences d’occurrence et les fourchettes de prix des étapes 706 à 710 à partir des données de nœud-feuille 82 associées au nœud Nd actuel, dans certains modes de réalisation, l’arbre peut être parcouru plusieurs fois, en particulier pour chaque ensemble de services, pour déterminer avec plus de précision ces informations directement à partir des nœuds-feuilles.Instead of determining the frequencies of occurrence and the price ranges of steps 706 to 710 from the leaf node data 82 associated with the current node Nd, in some embodiments, the tree can be traversed multiple times, particular for each set of services, to determine more precisely this information directly from the leaf nodes.

À l’étape 712, les fréquences d’occurrence et la fourchette de prix unitaires [Pmin; Pmax] déterminée pour chaque ensemble de services de la liste des ensembles de services sélectionnée peut être retournée au dispositif de commutation de détermination de service 104. Les services auxiliaires les plus populaires et les estimations de prix des services associés à ces services auxiliaires sont donc déterminés dans le contexte d’entrée.In step 712, the frequencies of occurrence and the unit price range [Pmin; Pmax] determined for each set of services in the list of selected service sets can be returned to the service determination switching device 104. The most popular ancillary services and the price estimates of the services associated with these ancillary services are therefore determined in the input context.

Alors que dans le mode de réalisation du mode ‘pull’ de la figure 6, la fréquence d’occurrence et la fourchette de prix sont retournées pour un seul ensemble de services correspondant à l’ensemble demandé, dans le mode de réalisation du mode ‘push’ représentée à la figure 7, la fréquence d’occurrence et la fourchette des prix sont déterminées pour la liste des ensembles de services sélectionnés.While in the embodiment of the 'pull' mode of Figure 6, the frequency of occurrence and the price range are returned for a single set of services corresponding to the set requested, in the embodiment of the mode ' push 'shown in Figure 7, the frequency of occurrence and the price range are determined for the list of selected service packages.

La figure 8 est un diagramme illustrant le processus du mode d’échange d’estimation de service qui peut être implémenté par le dispositif de commutation de détermination de service 104, selon certains modes de réalisation.FIG. 8 is a diagram illustrating the process of the service estimation exchange mode which can be implemented by the service determination switching device 104, according to certain embodiments.

À l’étape 800, une requête client (également désignée par « pré-transaction » ou une requête de «recommandation») est reçue par le système pré-transactionnel 10 d’un dispositif utilisateur 2.In step 800, a client request (also known as a “pre-transaction” or a “recommendation” request) is received by the pre-transaction system 10 of a user device 2.

Si la requête client est reçue en mode ‘pull’ (bloc 801), c’est-à-dire que la requête de recommandation spécifie un ensemble de services particulier, à l’étape 802, il est déterminé si l’ensemble des services spécifié a déjà été traité pour des produits similaires en utilisant des paramètres liés par la requête de recommandation (p. ex., dans une application de l’invention au produit de voyage, il peut être déterminé si l’ensemble des services spécifié a déjà été traité pour un même itinéraire [défini par une origine/destination]). Dans un mode de réalisation, cette étape peut être effectuée par un coordinateur de prétraitement 130 fourni dans la MCP 11 en réponse à un appel du dispositif de commutation de détermination de service 104.If the client request is received in 'pull' mode (block 801), that is to say that the recommendation request specifies a particular set of services, in step 802, it is determined whether the set of services specified has already been processed for similar products using parameters linked by the recommendation request (e.g., in an application of the invention to the travel product, it can be determined whether the specified set of services has already been processed for the same route [defined by an origin / destination]). In one embodiment, this step can be carried out by a preprocessing coordinator 130 provided in the MCP 11 in response to a call from the service determination switching device 104.

S’il est déterminé qu’une requête pour l’ensemble de services a déjà été faite, à l’étape 804, les données relatives à l’ensemble de services peuvent être récupérées à partir des données prétraitées (ou précalculées) en utilisant la plateforme de recherche massive (MSP) 13 ou depuis l’estimateur de service 102.If it is determined that a request for the service set has already been made, in step 804, the data relating to the service set can be retrieved from the preprocessed (or precomputed) data using the massive search platform (MSP) 13 or from the service estimator 102.

Dans le cas contraire, les données contextuelles de service liées à la requête de recommandation et l’ensemble de services spécifié peuvent être envoyées à l’estimateur de service à l’étape 806.Otherwise, the contextual service data linked to the recommendation request and the specified set of services can be sent to the service estimator in step 806.

Si la requête de recommandation est reçue en mode ‘push’ (bloc 801 ), c’est-à-dire la requête de recommandation ne spécifie aucun ensemble de services en particulier, à l’étape 806, l’estimateur de service 102 peut être appelé. Cela inclut la transmission des données contextuelles de service associées à la requête de recommandation et l’ensemble de services spécifié à l’estimateur de service 102. L’estimateur de service 102 peut déterminer les services auxiliaires les plus populaires et les prix estimés de service associés aux services auxiliaires, comme décrit en relation avec la figure 6.If the recommendation request is received in 'push' mode (block 801), that is to say the recommendation request does not specify any set of services in particular, in step 806, the service estimator 102 can to be called. This includes transmitting contextual service data associated with the recommendation request and the specified set of services to the service estimator 102. The service estimator 102 can determine the most popular ancillary services and the estimated service prices. associated with auxiliary services, as described in relation to Figure 6.

Dans un mode de réalisation, il est par ailleurs possible de faire appel au coordinateur de prétraitement 130 pour déterminer si les ensembles de services retournés par l’estimateur de service 102 (les services auxiliaires les plus populaires) ont déjà été prétraités en utilisant des données en temps réel (par la MCP 13) dans l’exemple d’un produit de voyage. Si oui, les prix estimatifs associés aux ensembles de services retournés par l’estimateur de service 102 peuvent être remplacés par ces prix prétraités (prix de service précis).In one embodiment, it is also possible to call on the preprocessing coordinator 130 to determine whether the sets of services returned by the service estimator 102 (the most popular auxiliary services) have already been pretreated using data. in real time (by MCP 13) in the example of a travel product. If so, the estimated prices associated with the service packages returned by the service estimator 102 can be replaced by these pretreated prices (precise service price).

La figure 9 est un diagramme illustrant le processus de prédétermination des ensembles de services qui peut être implémenté par le coordinateur de prétraitement 130 de la MCP 13 pour alimenter le référentiel massif 113, pour tous les points d’origine/de destination et l’ensemble de services, à un coût minimal, selon certains modes de réalisation.FIG. 9 is a diagram illustrating the process of predetermining the service sets which can be implemented by the preprocessing coordinator 130 of the MCP 13 to supply the massive repository 113, for all the origin / destination points and the set of services, at minimum cost, according to certain embodiments.

À l’étape 900, une requête de transaction (requête client) est reçue par un système de transaction 12. L’ensemble des j paramètres de requête obligatoires prédéfinis pour le format de la requête de transaction (p. ex., itinéraire, date de départ, durée du séjour pour une demande de voyage) et défini par un j - uplet est supposé être connu (il peut être rempli par l’utilisateur ou le système de transaction 12). La requête client peut comprendre par ailleurs des ensembles de services auxiliaires devant être prétraités, pour chacun des j paramètres de la requête.In step 900, a transaction request (client request) is received by a transaction system 12. All of the j mandatory request parameters predefined for the format of the transaction request (eg route, date departure, length of stay for a travel request) and defined by a tuple is assumed to be known (it can be filled in by the user or the transaction system 12). The client request can also comprise sets of auxiliary services to be preprocessed, for each of the j parameters of the request.

Dans un mode de réalisation, un prétraitement des K ensembles de services les plus populaires peut être déterminé par le calculateur de popularité de service 108 en utilisant les indicateurs de popularité déterminés pour chaque ensemble de services, pour tout ce qui précède j - uplet à l’étape 902. Par ailleurs, le prétraitement peut être effectué pour un ensemble de services auxiliaires spécifiques spécifié dans la requête de la transaction par un client.In one embodiment, a preprocessing of the K most popular service sets can be determined by the service popularity calculator 108 using the popularity indicators determined for each service set, for all of the above j - tuple to l step 902. Furthermore, the preprocessing can be carried out for a set of specific auxiliary services specified in the request for the transaction by a client.

Afin de minimiser le coût du calcul, le prétraitement peut comprendre les étapes suivantes :In order to minimize the cost of the calculation, the preprocessing can include the following steps:

-À l’étape 904, la plate-forme de recherche massive (MSP) 13 peut être appelée pour récupérer la valeur du produit (prix) associée aux produits (p. ex. les itinéraires pour une demande de voyage) identifiée par la requête client, sans tenir compte des valeurs de service (prix du service) ;-In step 904, the massive search platform (MSP) 13 can be called to retrieve the value of the product (price) associated with the products (eg the itineraries for a travel request) identified by the request customer, regardless of service values (price of service);

- À l’étape 906, le service de la MCP 16 peut être appelé pour calculer le prix des services pour tous les services spécifiés dans la requête client, en mode indépendant (indépendamment du produit) ;- In step 906, the MCP 16 service can be called to calculate the price of the services for all the services specified in the customer request, in independent mode (regardless of the product);

- À l’étape 908, pour le prix de chaque produit et pour chaque service demandé par la requête client, une étape de corrélation de service peut être effectuée afin de déterminer si les services tarifés en mode indépendant peuvent être ajoutés au prix du produit. Dans l’affirmative, le prix total du produit (qui comprend le principal produit et le service défini) peut être retourné à l’étape 910. Dans un mode de réalisation, le montant ainsi déterminé peut être stocké dans le référentiel massif 113, à l’étape 912 ;- In step 908, for the price of each product and for each service requested by the customer request, a service correlation step can be performed to determine if the services priced in independent mode can be added to the price of the product. If so, the total price of the product (which includes the main product and the defined service) can be returned to step 910. In one embodiment, the amount thus determined can be stored in the massive repository 113, at step 912;

- À l’étape 909, si les services tarifés en mode indépendant ne peuvent être ajoutés au prix du produit (prix de service applicable au prix du produit), il peut être déterminé un prix corrélé (pour le produit et le service défini) par le produit MCP 13. Le résultat ainsi obtenu peut être conservé dans le référentiel massif 13 à l’étape 912.- In step 909, if the services priced in independent mode cannot be added to the price of the product (service price applicable to the price of the product), a correlated price can be determined (for the product and the defined service) by the MCP product 13. The result thus obtained can be kept in the massive repository 13 in step 912.

Le processus de l’exécution de corrélation de service peut être effectué par un Service corrélateur 18 (présenté dans la figure 3). Le corrélateur de service 18 peut être configuré pour déterminer si un prix de service indépendant peut être attaché à un prix de produit (p. ex., prix d’itinéraire). Le corrélateur de service 18 peut fournir un service de corrélation au coordinateur du prétraitement 130.The process of performing service correlation can be performed by a Correlator Service 18 (shown in Figure 3). The service correlator 18 can be configured to determine whether an independent service price can be attached to a product price (e.g., route price). The service correlator 18 can provide a correlation service to the preprocessing coordinator 130.

La figure 10 est un diagramme illustrant le processus de corrélation entre les services implémentés par le Service corrélateur 18, selon certains modes de réalisation.FIG. 10 is a diagram illustrating the correlation process between the services implemented by the correlator Service 18, according to certain embodiments.

À l’étape 950, une entrée est reçue qui comprend des informations associées à un produit (p. ex., itinéraire complet) et un service à associer aux prix des produits.In step 950, an input is received which includes information associated with a product (eg, complete itinerary) and a service to be associated with product prices.

À l’étape 952, le résultat de la MCP 16 de services est utilisé pour extraire (ou récupérer), pour le service demandé, le prix indépendant du service et des données supplémentaires associées au service.In step 952, the result of the MCP 16 of services is used to extract (or recover), for the requested service, the independent price of the service and additional data associated with the service.

À l’étape 954, il est déterminé si le prix associé au service est applicable aux prix des produits (c’est-à-dire valable) en utilisant un indicateur d’applicabilité précalculé pour le service (l’indicateur d’applicabilité peut être aussi appelé « indicateur de validité »). Dans l’affirmative, le prix du service est retourné au coordinateur de prétraitement 130 à l’étape 956. Sinon, s’il est déterminé que le service n’est pas applicable au prix du produit, aucun prix n’est retourné au coordinateur de prétraitement 130.In step 954, it is determined whether the price associated with the service is applicable to the prices of the products (that is to say valid) by using a precalculated applicability indicator for the service (the applicability indicator can also be called "validity indicator"). If so, the price of the service is returned to the pretreatment coordinator 130 in step 956. Otherwise, if it is determined that the service is not applicable to the price of the product, no price is returned to the coordinator pretreatment 130.

La MCP 16 de services peut être configurée pour déterminer un indicateur d’applicabilité en association avec chaque service dans une phase de prétraitement, dans un mode de fonctionnement « indépendant » (indépendamment de toute demande de recommandation et donc indépendamment de tout contexte de produit). Le service corrélateur 18 peut utiliser cet indicateur d’applicabilité pour déterminer l’applicabilité d’un prix de service à un prix de produit (comme décrit dans le cadre de la Figure 9).The MCP 16 of services can be configured to determine an applicability indicator in association with each service in a preprocessing phase, in an “independent” operating mode (independently of any request for recommendation and therefore independently of any product context) . The correlating service 18 can use this applicability indicator to determine the applicability of a service price to a product price (as described in the context of Figure 9).

Dans un mode de réalisation, la MCP 16 de services peut comporter une base de données de prix pour stocker le prix de service indépendant et les indicateurs d’applicabilité associés aux services.In one embodiment, the service MCP 16 may include a price database for storing the independent service price and the applicability indicators associated with the services.

Pour chaque prix indépendant de service demandé par le coordinateur de prétraitement 130, la MCP 16 de service peut être configurée pour calculer le prix du service, en utilisant des règles prédéfinies et/ou des hypothèses. La MCP 16 de service peut stocker le prix indépendant déterminé pour le service en association avec le service dans la base de données de prix de service de la MCP 16 de services, et éventuellement d’autres contraintes liées au service (par exemple « géographie », » cabine », « prix », « restriction de vols » dans une application de l’invention à la fourniture de voyage). Ces contraintes supplémentaires peuvent servir à déterminer une correspondance avec les prix des produits.For each independent service price requested by the preprocessing coordinator 130, the service MCP 16 can be configured to calculate the service price, using predefined rules and / or assumptions. The service MCP 16 may store the independent price determined for the service in association with the service in the service price database of the service MCP 16, and possibly other constraints related to the service (eg "geography" , "Cabin", "price", "flight restriction" in an application of the invention to the supply of travel). These additional constraints can be used to determine a correspondence with product prices.

Le système pré-transactionnel 10 selon les modes de réalisation de l’invention permet de fournir des recommandations de services auxiliaires aux dispositifs clients, dans une phase prétransactionnelle, tout en limitant les coûts de calcul nécessaires pour produire ces recommandations de service. Cela permet ainsi une réduction des demandes des utilisateurs soumis au système de transaction 12, l’utilisateur recueillant suffisamment d’informations au cours de la phase pré-transactionnelle pour mieux définir les requêtes à soumettre au système de transaction 12. En conséquence, l’utilisateur final n’a pas besoin d’aller et venir dans le flux de transaction implémenté par le système de transaction pour détecter si un service souhaité est disponible et/ou si un service souhaité est trop cher. La charge du système de transaction 12 peut être ainsi considérablement réduite. Par ailleurs, le système pré-transactionnel 10 selon les modes de réalisation de l’invention est capable de fournir des informations exactes à l’utilisateur lors de la phase pré-transactionnelle.The pre-transaction system 10 according to the embodiments of the invention makes it possible to provide recommendations for auxiliary services to client devices, in a pre-transaction phase, while limiting the computation costs necessary to produce these service recommendations. This thus allows a reduction in the requests from users subjected to the transaction system 12, the user collecting sufficient information during the pre-transaction phase to better define the requests to be submitted to the transaction system 12. Consequently, the end user does not need to go back and forth in the transaction flow implemented by the transaction system to detect if a desired service is available and / or if a desired service is too expensive. The load of the transaction system 12 can thus be considerably reduced. Furthermore, the pre-transaction system 10 according to the embodiments of the invention is capable of providing exact information to the user during the pre-transaction phase.

En se référant maintenant à la figure 11, les différents blocs du système prétransactionnel 10 et les dispositifs 2 de l’utilisateur de l’environnement d’exploitation peuvent être implémentés sur un ou plusieurs dispositifs ou systèmes informatiques, appelés collectivement ordinateur, tel que l’ordinateur 30. L’ordinateur 30 peut comprendre un processeur 32, une mémoire 34, un dispositif de mémoire de stockage de masse 36, une interface 38 entrée/sortie (I/O), et une interface homme machine (IHM) 39. L’ordinateur 30 peut aussi être couplé de façon opérationnelle à une ou plusieurs ressources externes 42 par l’intermédiaire du réseau 6 (qui peut être le réseau 21 par exemple) et/ou de l’interface I/O 38. Les ressources externes peuvent inclure, sans s’y limiter, des serveurs, des bases de données, des dispositifs de stockage en masse, des dispositifs périphériques, des services de réseau en nuage (cloud), ou toute autre ressource informatique appropriée pouvant être utilisée avec l’ordinateur 30.Referring now to FIG. 11, the different blocks of the pre-transaction system 10 and the devices 2 of the user of the operating environment can be implemented on one or more computer devices or systems, collectively called computer, such as the computer 30. The computer 30 may include a processor 32, a memory 34, a mass storage memory device 36, an input / output interface (I / O), and a man-machine interface (HMI) 39. The computer 30 can also be operatively coupled to one or more external resources 42 via the network 6 (which may be the network 21 for example) and / or the I / O interface 38. The external resources may include, but are not limited to, servers, databases, mass storage devices, peripheral devices, cloud network services (cloud), or any other computing resource suitable for use with computer 30.

Le processeur 32 peut inclure un ou plusieurs dispositifs sélectionnés à partir de microprocesseurs, de microcontrôleurs, de processeurs de signal numérique, de microordinateurs, d’unités centrales de traitement, de réseaux de portes programmables, de dispositifs logiques programmables, de machines à état défini, de circuits logiques, de circuits analogiques, de circuits numériques, ou tout autre dispositif servant à manipuler des signaux (analogues ou numériques) à partir des instructions de fonctionnement qui sont enregistrées dans la mémoire 34. La mémoire 34 peut inclure un seul dispositif ou une pluralité de dispositifs de mémoire, notamment, mais sans s’y limiter, la mémoire à lecture seule (ROM), la mémoire à accès aléatoire (RAM), la mémoire volatile, la mémoire non volatile, la mémoire vive statique (SRAM), la mémoire dynamique à accès aléatoire (DRAM), la mémoire flash, la mémoire-cache ou tout autre dispositif capable de stocker des informations. Le dispositif de mémoire de masse 36 peut inclure des dispositifs de stockage de données tels qu’un disque dur, un disque optique, un dérouleur de bande magnétique, un circuit à l’état solide volatile ou non volatile, ou tout autre dispositif capable de stocker des informations. Une base de données 44 peut résider sur le dispositif de mémoire de masse 36, et peut être utilisée pour collecter et organiser les données utilisées par les différents systèmes et modules décrits dans les présentes.Processor 32 may include one or more devices selected from microprocessors, microcontrollers, digital signal processors, microcomputers, central processing units, programmable door networks, programmable logic devices, state machines , logic circuits, analog circuits, digital circuits, or any other device used to manipulate signals (analog or digital) from operating instructions which are stored in memory 34. Memory 34 can include a single device or a plurality of memory devices, including, but not limited to, read only memory (ROM), random access memory (RAM), volatile memory, non-volatile memory, static random access memory (SRAM) , dynamic random access memory (DRAM), flash memory, cache memory or any other device capable of storing information rmation. The mass memory device 36 can include data storage devices such as a hard disk, an optical disk, a magnetic tape drive, a volatile or non-volatile solid state circuit, or any other device capable of store information. A database 44 can reside on the mass memory device 36, and can be used to collect and organize the data used by the various systems and modules described herein.

Le processeur 32 peut fonctionner sous le contrôle d’un système d’exploitation 46 qui réside dans la mémoire 34. Le système d’exploitation 46 peut gérer les ressources de l’ordinateur de telle façon que le code de programme de l’ordinateur, intégré sous forme d’un ou plusieurs logiciels d’application, tels que l’application 48 qui réside dans la mémoire 34, puissent disposer d’instructions exécutées par lé processeur 32. Dans un mode de réalisation alternatif, le processeur 32 peut exécuter directement l’application 48 ; dans ce cas le système d’exploitation 46 peut être omis. Une ou plusieurs structures de donnée 50 peuvent également résider dans la mémoire 34, et peuvent être utilisées par le processeur 32, le système d’exploitation 46, ou l’application 48 pour stocker ou manipuler des données.The processor 32 can operate under the control of an operating system 46 which resides in the memory 34. The operating system 46 can manage the resources of the computer in such a way that the program code of the computer, integrated in the form of one or more application software, such as the application 48 which resides in the memory 34, can have instructions executed by the processor 32. In an alternative embodiment, the processor 32 can execute directly application 48; in this case the operating system 46 can be omitted. One or more data structures 50 can also reside in memory 34, and can be used by processor 32, operating system 46, or application 48 to store or manipulate data.

L’interface I/O 38 peut fournir une interface machine qui couple le processeur 32 de façon fonctionnelle avec d’autres dispositifs et systèmes, tels que le réseau 6 ou la ressource externe 42. Le serveur d’application 48 peut ainsi collaborer avec le réseau 6 et/ou avec la ressource externe 42 en communiquant par l’intermédiaire de l’interface I/O 38 pour fournir les divers éléments, fonctions, applications, processus, modules composant les modes de réalisation de l’invention. L’application 48peut aussi comporter un code de programme qui est exécuté par une ou plusieurs ressources externes 42, ou repose autrement sur les fonctions et/ou signaux fournis par d’autres composants de système ou de réseau externes à l’ordinateur 30. En effet, au vu des configurations presque infinies de matériel informatique et de logiciel possibles, les hommes de métier comprendront que les modes de réalisation de l’invention peuvent inclure des applications situées à l’extérieur de l’ordinateur 30, distribuées à des ordinateurs multiples ou à d’autres ressources externes 42 ou fournies par des ressources informatiques (matériel et logiciel) qui sont fournies par un service tel qu’un service informatique cloud, par l’intermédiaire du réseau 6.The I / O interface 38 can provide a machine interface which couples the processor 32 functionally with other devices and systems, such as the network 6 or the external resource 42. The application server 48 can thus collaborate with the network 6 and / or with the external resource 42 by communicating via the I / O interface 38 to provide the various elements, functions, applications, processes, modules making up the embodiments of the invention. The application 48 can also include a program code which is executed by one or more external resources 42, or is otherwise based on the functions and / or signals provided by other system or network components external to the computer 30. In Indeed, in view of the almost infinite configurations of possible computer hardware and software, those skilled in the art will understand that the embodiments of the invention can include applications located outside of computer 30, distributed to multiple computers. or to other external resources 42 or supplied by IT resources (hardware and software) which are supplied by a service such as a cloud IT service, via the network 6.

Le HMI 39 (tel que le HMI 30 dans l’implémentation de la figure 1 du dispositif client 3) peut être couplé de façon fonctionnelle au processeur 32 de l’ordinateur 30 d’une façon connue pour permettre un utilisateur de l’ordinateur 30 d’interagir directement avec l’ordinateur 30. Le HMI 39 peut inclure un affichage vidéo et/ou alphanumérique, un écran tactile, un haut-parleur et tout autre indicateur visuel et audio capable de communiquer des données à l’utilisateur. Le HMI 39 peut aussi inclure des dispositifs d'entrée et des contrôles tels qu’un clavier alphanumérique, un dispositif de pointage, des claviers, des boutons-poussoirs, des boutons de commande, des microphones, etc., capables d’accepter des commandes ou des saisies de l’utilisateur, et de les transmettre au processeur 32.The HMI 39 (such as the HMI 30 in the implementation of FIG. 1 of the client device 3) can be operatively coupled to the processor 32 of the computer 30 in a known manner to allow a user of the computer 30 interact directly with the computer 30. The HMI 39 can include a video and / or alphanumeric display, a touch screen, a loudspeaker and any other visual and audio indicator capable of communicating data to the user. The HMI 39 can also include input devices and controls such as an alphanumeric keyboard, pointing device, keyboards, push buttons, control buttons, microphones, etc., capable of accepting user commands or input, and pass them to processor 32.

Une base de données 44 peut résider sur le dispositif de mémoire de masse 36, et peut être utilisée pour collecter et organiser les données utilisées par les différents systèmes et modules décrits dans les présentes. La base de données 44 peut inclure des données et accommoder les structures de données associées qui stockent et organisent les données. En particulier, la base de données 44 peut être aménagée avec toute organisation ou structure de base de données, notamment, mais de façon non restrictive, une base de données relationnelle, une base de données de type hiérarchique, une base de données en réseau, une base de données orientée objet, ou des combinaisons de celles-là. Un système de gestion de base de données sous forme de logiciel informatique d’application qui s’exécute sous la forme d’instructions sur le processeur 32 peut être utilisé pour accéder à l’information ou aux données stockées dans des fichiers de la base de données 44 en réponse à une interrogation, lorsqu’une interrogation peut être déterminée de façon dynamique et exécutée par le système d’exploitation 46, les autres applications 48, ou un ou plusieurs modules. Bien que des modes de réalisation de l’invention puissent être décrits dans les présentes en utilisant une terminologie de base de données relationnelle, hiérarchique, de réseau, orientée-objet, ou autre terminologie dans des cas spécifiques, les hommes de métier comprendront que les modes de réalisation de l’invention peuvent utiliser tout modèle de gestion de base de données approprié, et ne sont pas limités à tout type particulier de base de données.A database 44 can reside on the mass memory device 36, and can be used to collect and organize the data used by the various systems and modules described herein. The database 44 can include data and accommodate the associated data structures that store and organize the data. In particular, the database 44 can be set up with any database organization or structure, in particular, but not limited to, a relational database, a hierarchical type database, a networked database, an object-oriented database, or combinations thereof. A database management system in the form of application computer software which is executed in the form of instructions on the processor 32 can be used to access information or data stored in files of the database. data 44 in response to a query, when a query can be dynamically determined and executed by the operating system 46, other applications 48, or one or more modules. Although embodiments of the invention may be described herein using relational, hierarchical, network, object-oriented, or other terminology in specific cases, those skilled in the art will understand that Embodiments of the invention may use any suitable database management model, and are not limited to any particular type of database.

Alors que l’invention a des avantages particuliers pour les systèmes fournisseurs de contenus prenant en charge les requêtes comportant au moins certains paramètres de requête associés à une date, une heure et/ou un emplacement, tel qu’un système fournisseur de voyages, l’homme du métier comprendra facilement que l’invention n’est pas limitée à ces systèmes fournisseurs de contenus et qu’elle peut être appliquée à divers systèmes de fournisseurs de contenus.While the invention has particular advantages for content provider systems supporting queries with at least some query parameters associated with a date, time and / or location, such as a travel provider system, Those skilled in the art will readily understand that the invention is not limited to these content provider systems and that it can be applied to various content provider systems.

En général les routines exécutées pour mettre en œuvre les modes de réalisation de l’invention, qu’elles soient implémentées dans le cadre d’un système d’exploitation ou d’une application spécifique, d’un composant, d’un programme, d’un objet, d’un module ou d’une séquence d’instructions, ou même un sous-ensemble de ceux-là, peuvent être désignées dans les présentes comme « code de programme informatique » ou simplement « code de programme». Un code de programme comporte typiquement des instructions lisibles par ordinateur qui résident à divers instants dans divers dispositifs de mémoire et de stockage dans un ordinateur et qui, lorsqu’elles sont lues et exécutées par un ou plusieurs processeurs dans un ordinateur, amènent l’ordinateur à effectuer des d’opérations nécessaires à l’exécution d’opérations et/ou d’éléments propres à la mise en œuvre des aspects variés des modes de réalisation de l’invention. Les instructions d’un programme, lisibles par ordinateur, pour effectuer les opérations des modes de réalisation de l’invention peuvent être, par exemple, le langage d’assemblage, ou encore un code source ou un code objet écrit en combinaison avec un ou plusieurs langages de programmation.In general, the routines executed to implement the embodiments of the invention, whether they are implemented within the framework of a specific operating system or application, of a component, of a program, of an object, module, or sequence of instructions, or even a subset of them, may be referred to herein as "computer program code" or simply "program code". Program code typically includes computer readable instructions which reside at various times in various memory and storage devices in a computer and which, when read and executed by one or more processors in a computer, bring the computer to perform operations necessary for the execution of operations and / or elements specific to the implementation of the various aspects of the embodiments of the invention. The instructions of a program, readable by computer, to carry out the operations of the embodiments of the invention can be, for example, the assembly language, or even a source code or an object code written in combination with one or several programming languages.

Divers codes de programme décrits dans les présentes peuvent être identifiés, selon l’application dans laquelle ils sont implémentés, dans des modes de réalisation spécifiques de l’invention. Cependant, on notera qu’une quelconque nomenclature d’un programme particulier dans les présentes est utilisée uniquement par commodité ; ainsi l’invention ne peut être limitée à un seul usage dans toute application spécifique identifiée et/ou sous-entendue par ladite nomenclature. Par ailleurs, au vu du nombre généralement infini de moyens par lesquels les programmes informatiques peuvent être organisés selon des sous-programmes, procédures, procédés, modules, objets, et ainsi de suite, ainsi que les façons variées d’affecter les fonctionnalités d’un programme parmi diverses couches de logiciels qui sont résidents dans un ordinateur typique [p. ex., les systèmes d’exploitation, les bibliothèques, les interfaces d’application de programme (API), les applications, les petites applications « (applets)], etc.; on notera que les modes de réalisation de l’invention ne sont pas limités à l’organisation spécifique et à l’affectation spécifique des fonctionnalités de programme telles qu’elles sont décrites dans les présentes.Various program codes described herein can be identified, depending on the application in which they are implemented, in specific embodiments of the invention. However, it should be noted that any nomenclature of a particular program herein is used only for convenience; thus the invention cannot be limited to a single use in any specific application identified and / or implied by said nomenclature. Furthermore, in view of the generally infinite number of means by which computer programs can be organized according to subroutines, procedures, processes, modules, objects, and so on, as well as the various ways of affecting the functionality of a program among various layers of software that are resident on a typical computer [p. eg, operating systems, libraries, program application interfaces (APIs), applications, small applications "(applets)], etc .; it will be noted that the embodiments of the invention are not limited to the specific organization and to the specific allocation of the program functionalities as described herein.

Le code de programme mis en œuvre dans toute application/module décrit dans les présentes peut être distribué individuellement ou collectivement comme un produit programme d’ordinateur, sous une variété de formes. En particulier, le code de programme peut être distribué en utilisant un support de stockage lisible par ordinateur, disposant d’instructions de programme lisibles par ordinateur en soi, permettant à un processeur de mettre en œuvre des aspects des modes de réalisation de l’invention.The program code implemented in any application / module described herein may be distributed individually or collectively as a computer program product, in a variety of forms. In particular, the program code can be distributed using a computer-readable storage medium, having computer-readable program instructions per se, allowing a processor to implement aspects of the embodiments of the invention .

Les supports de stockage lisibles par ordinateur, étant intrinsèquement non transitoires, peuvent inclure des supports tangibles volatiles et non volatiles, amovibles et non amovibles, implémentés dans tout procédé ou technologie de stockage d’information, tels que des instructions de programme lisibles par ordinateur, des structures de données, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent aussi comprendre une mémoire à accès aléatoire (RAM), une mémoire à lecture seule (ROM), une mémoire à lecture exclusivement, programmable et effaçable (EPROM), une mémoire à lecture exclusivement, programmable et effaçable électriquement (EEPROM), une mémoire flash, ou toute technologie de support solide de mémoire, (un disque compact portable doté d’une mémoire à lecture seule (CD-ROM), ou tout autre stockage optique, cassettes magnétiques, bandes d’enregistrement magnétique, disque de stockage magnétique, autres dispositifs de stockage magnétique, ou tout autre support pouvant être utilisé pour stocker l’information désirée et apte à être lu par un ordinateur. Un support de stockage lisible par ordinateur ne peut être interprété comme signaux transitoires en soi (p. ex., des ondes radio ou toutes autres ondes électromagnétiques se propageant, des ondes électromagnétiques se propageant par l’entremise d’un support de transmission tel qu’un guide d’ondes, ou des signaux électriques transmis par câble). Les instructions de programme lisibles par ordinateur peuvent être téléchargées sur un ordinateur, un autre type d’appareil de traitement de données programmable ou sur tout autre dispositif de support de stockage lisible par ordinateur, ou vers un ordinateur externe ou vers un dispositif de stockage externe par un réseau.The computer-readable storage media, being intrinsically non-transitory, can include volatile and non-volatile, removable and non-removable tangible media, implemented in any process or technology for storing information, such as computer-readable program instructions, data structures, program modules, or other data. Computer readable storage media may also include random access memory (RAM), read only memory (ROM), read only, programmable and erasable memory (EPROM), read only memory, programmable and erasable electrically (EEPROM), flash memory, or any solid memory support technology, (a portable compact disc with read-only memory (CD-ROM), or any other optical storage, magnetic tapes, recording tapes magnetic disk, magnetic storage disk, other magnetic storage devices, or any other medium which can be used to store the desired information and which can be read by a computer A computer-readable storage medium cannot be interpreted as transient signals in self (e.g. radio waves or other propagating electromagnetic waves, electromagnetic waves propagating p through a transmission medium such as a waveguide, or electrical signals transmitted by cable). Computer-readable program instructions can be downloaded to a computer, another type of programmable data processor, or any other computer-readable storage medium, or to an external computer or to an external storage device through a network.

Les instructions de programme lisibles par ordinateur, enregistrées sur un support lisible par ordinateur, peuvent être utilisées pour amener un ordinateur, d’autres types d’appareils programmables de traitement de données, ou d’autres dispositifs, à fonctionner d’une façon particulière, de sorte que les instructions stockées sur le support lisible par ordinateur produisent un article de fabrication incluant les instructions qui mettent en œuvre les fonctions, les actions et/ou les opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d’un ordinateur à usage général, un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu’elles sont exécutées en utilisant le ou les processeurs, accomplissent une série de calculs pour mettre en œuvre les fonctions, actions, et/ou les opérations spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs.Computer readable program instructions, recorded on computer readable media, can be used to cause a computer, other types of programmable data processing devices, or other devices, to operate in a particular way , so that the instructions stored on the computer-readable medium produce an article of manufacture including the instructions that implement the functions, actions and / or operations specified in the flowcharts, sequence diagrams, and / or block diagrams. The computer program instructions may be supplied to one or more processors of a general purpose computer, a dedicated computer or other programmable data processing apparatus to produce a machine, so that the instructions, when executed in using the processor (s), perform a series of calculations to implement the functions, actions, and / or operations specified in the flowcharts, sequential diagrams and / or block diagrams.

Bien que l’invention ait été illustrée par une description de divers modes de réalisation et bien que ces modes de réalisation aient été décrits de façon très détaillée, il n’est pas de l'intention du demandeur de restreindre ou de limiter, de quelque façon que ce soit, l’étendue des revendications des présentes à ces détails. Des avantages supplémentaires et des modifications possibles apparaîtront aisément aux hommes de métier. Tandis que les modes de réalisation des figures 6 à 10 ont été décrits selon un ordre de traitement particulier, l’homme du métier comprendra facilement que l’invention n’est pas limitée à une telle succession d’étapes et que des mesures peuvent être appliquées dans un ordre différent. Plus généralement, dans certains autres modes de réalisation, les fonctions, les actions et/ou les opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être réordonnées, traitées en série, et/ou traitées en même temps en collaboration avec des modes de réalisation de l’invention. De plus, tout organigramme, diagramme séquentiel, et/ou diagramme bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés, tout en restant conformes avec les modes de réalisation de l’invention.Although the invention has been illustrated by a description of various embodiments and although these embodiments have been described in great detail, it is not the intention of the applicant to restrict or limit, in any way however, the scope of the claims herein to these details. Additional advantages and possible modifications will be readily apparent to those skilled in the art. While the embodiments of FIGS. 6 to 10 have been described according to a particular order of treatment, those skilled in the art will readily understand that the invention is not limited to such a succession of steps and that measurements can be taken. applied in a different order. More generally, in certain other embodiments, the functions, actions and / or operations specified in the flowcharts, sequence diagrams, and / or block diagrams can be reordered, processed in series, and / or processed at the same time. in collaboration with embodiments of the invention. In addition, any flowchart, sequential diagram, and / or block diagram can include more or less blocks than those which are illustrated, while remaining consistent with the embodiments of the invention.

Claims (16)

REVENDICATIONS 1. Un système serveur (10) configuré pour déterminer une liste de produits en réponse à une requête client provenant d’un dispositif client lors d’une session de requête/réponse, la requête client comprenant un ou plusieurs paramètres de requête, ledit système serveur comprenant un estimateur de produit (11) configuré pour déterminer une liste de produits principaux, ladite liste de produits principaux comprenant une estimation d’un ou plusieurs produits principaux correspondant à la requête client, dans lequel le système serveur (10) coopère par ailleurs avec une base de données d’estimation de produits auxiliaires (103) configurée pour stocker des données historiques relatives à des ensembles de produits auxiliaires, lesdites données historiques étant représentées par une structure de données en arbre (8) composée de nœuds, le système serveur comprenant par ailleurs un estimateur de produit auxiliaire (102) configuré pour déterminer à partir de la structure de données en en arbre une fréquence d’occurrence et une information de valeur du produit auxiliaire pour chaque ensemble de produits auxiliaires dans une liste d’ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires, le système serveur étant configuré pour fournir par ailleurs une liste de produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client en utilisant la fréquence d’occurrence et l’information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de ladite liste d’ensembles de produits auxiliaires.1. A server system (10) configured to determine a list of products in response to a client request from a client device during a request / response session, the client request comprising one or more request parameters, said system server comprising a product estimator (11) configured to determine a list of main products, said list of main products comprising an estimate of one or more main products corresponding to the customer request, in which the server system (10) also cooperates with an auxiliary product estimation database (103) configured to store historical data relating to sets of auxiliary products, said historical data being represented by a tree data structure (8) composed of nodes, the server system further comprising an auxiliary product estimator (102) configured to determine from e the tree structure of a frequency of occurrence and information of value of the auxiliary product for each set of auxiliary products in a list of sets of auxiliary products, in response to the customer request, the list of sets of products auxiliaries comprising at least one set of auxiliary products, the server system being configured to also provide a list of candidate auxiliary products for each main product determined in response to the customer request using the frequency of occurrence and the value information of auxiliary product determined for each set of auxiliary products from said list of sets of auxiliary products. 2. Système serveur selon la revendication 1, dans lequel ladite requête est reçue à un instant de traitement donné, et dans lequel chaque ensemble de produits auxiliaires identifie un ou plusieurs produits auxiliaires associés à un produit principal, lesdites données historiques comprenant des données collectées à partir de sessions précédentes de requête/réponse, chaque session précédente de requête/réponse étant implémentée entre un dispositif client et un système fournisseur de produit relié à ladite base de données d’estimation de produit auxiliaire sur une période de temps prédéfinie avant ledit temps de traitement.2. Server system according to claim 1, in which said request is received at a given processing time, and in which each set of auxiliary products identifies one or more auxiliary products associated with a main product, said historical data comprising data collected from starting from previous request / response sessions, each previous request / response session being implemented between a client device and a product supplier system linked to said auxiliary product estimation database over a predefined period of time before said treatment. 3. Système serveur selon l’une quelconque des revendications précédentes 1 et 2, dans lequel la structure de données en en arbre (8) comprend un nœud racine et une pluralité de niveaux, chaque niveau de la structure de données en arbre correspondant à un paramètre dérivé d’un ou plusieurs paramètres de requête, chaque nœud d’un niveau donné de la structure de données en arbre comportant une valeur de nœud représentant une valeur du paramètre correspondant au dit niveau, ladite valeur étant attribuée au paramètre de requête dans lesdites une ou plusieurs sessions de requête/réponse précédentes dans ladite période de temps, le dernier niveau de chaque branche de l’arbre comprenant les nœuds-feuilles, chaque nœud-feuille correspondant à un ensemble donné de produits auxiliaires.3. Server system according to claim 1, in which the tree data structure (8) comprises a root node and a plurality of levels, each level of the tree data structure corresponding to a parameter derived from one or more request parameters, each node of a given level of the tree data structure comprising a node value representing a value of the parameter corresponding to said level, said value being assigned to the request parameter in said one or more previous request / response sessions in said period of time, the last level of each branch of the tree comprising leaf nodes, each leaf node corresponding to a given set of auxiliary products. 4. Système serveur selon la revendication 3, dans lequel chaque nœud-feuille de la structure de données en arbre correspondant à un ensemble de produits auxiliaires comprend par ailleurs une valeur de compteur et des informations de valeur, ladite valeur de compteur indiquant le nombre d’occurrences dudit ensemble de produits auxiliaires dans lesdites sessions précédentes de requête/réponse, l’estimateur de produit auxiliaire (102) étant configuré pour déterminer la fréquence d’occurrence de chaque ensemble de produits auxiliaires de ladite liste d’ensembles de produits auxiliaires en utilisant la valeur de compteur du nœud-feuille correspondant audit ensemble de produits auxiliaires dans ladite structure de données en arbre, l’estimateur de produit auxiliaire (102) étant par ailleurs configuré pour déterminer l’information de valeur du produit auxiliaire pour chaque ensemble de produits auxiliaires de ladite liste des ensembles de produits auxiliaires à partir de l’information de valeur du nœud-feuille correspondant au dit ensemble de produits auxiliaires dans la structure de données en arbre.4. Server system according to claim 3, in which each leaf node of the tree data structure corresponding to a set of auxiliary products also comprises a counter value and value information, said counter value indicating the number of occurrences of said set of auxiliary products in said previous request / response sessions, the auxiliary product estimator (102) being configured to determine the frequency of occurrence of each set of auxiliary products from said list of sets of auxiliary products in using the counter value of the leaf node corresponding to said set of auxiliary products in said tree data structure, the auxiliary product estimator (102) being further configured to determine the value information of the auxiliary product for each set of auxiliary products from said list of sets of auxiliary products to p from the value information of the leaf node corresponding to the said set of auxiliary products in the tree data structure. 5. Système serveur selon la revendication 4, dans lequel ladite information de valeur comprise dans chaque nœud-feuille correspondant à un ensemble donné de produits auxiliaires comprend une fourchette de valeurs définies par un seuil inférieur et un seuil supérieur, le seuil inférieur représentant la valeur inférieure attribuée à l’ensemble des produits auxiliaires dans une session de requête/réponse précédente au cours de ladite période de temps prédéfinie et le seuil supérieur représentant la valeur la plus élevée attribuée à l’ensemble de produits auxiliaires dans une session de requête/réponse précédente au cours de ladite période de temps prédéfinie.5. Server system according to claim 4, wherein said value information included in each leaf node corresponding to a given set of auxiliary products comprises a range of values defined by a lower threshold and an upper threshold, the lower threshold representing the value assigned to the set of auxiliary products in a previous request / response session during said predefined period of time and the upper threshold representing the highest value assigned to the set of auxiliary products in a request / response session previous during said predefined time period. 6. Système serveur selon la revendication 5, dans lequel, si la requête client comporte un paramètre de requête spécifiant un ensemble donné de produits auxiliaires, ladite liste des ensembles de produits auxiliaires comprend ledit ensemble de produits auxiliaires, l’estimateur de produit auxiliaire (102) étant configuré pour parcourir la structure de données en arbre selon un algorithme de recherche d’arbre pour déterminer un nœud correspondant ayant un chemin dans l’arbre correspondant aux paramètres de requête de la requête client, l’estimateur de produit auxiliaire (102) étant par ailleurs configuré pour rechercher un nœud-feuille dans un sous-arbre du nœud correspondant qui correspond audit ensemble donné de produits auxiliaires et une condition de seuil liée à la fréquence d’occurrence du nœud-feuille, la fréquence d’occurrence et l’information de valeur du produit auxiliaire de l’unique ensemble de produits auxiliaires étant retirées dudit nœud-feuille.The server system according to claim 5, in which, if the client request includes a request parameter specifying a given set of auxiliary products, said list of sets of auxiliary products comprises said set of auxiliary products, the estimator of auxiliary product ( 102) being configured to browse the data structure in a tree according to a tree search algorithm to determine a corresponding node having a path in the tree corresponding to the query parameters of the client query, the auxiliary product estimator (102 ) being further configured to search for a leaf node in a sub-tree of the corresponding node which corresponds to said given set of auxiliary products and a threshold condition related to the frequency of occurrence of the leaf node, the frequency of occurrence and the auxiliary product value information of the single set of auxiliary products being removed from the said leaf node. 7. Système serveur selon la revendication 5, dans lequel, si la requête client ne comprend pas un paramètre de requête spécifiant un ensemble de produits auxiliaires défini, l’estimateur de produit auxiliaire (102) est configuré pour parcourir la structure de données en arbre selon un algorithme de recherche d’arbre pour déterminer un nœud correspondant ayant un chemin dans l’arbre correspondant aux paramètres de requête client, l’estimateur de produit auxiliaire (102) étant par ailleurs configuré pour rechercher tous les nœuds-feuilles dans un sous-arbre du nœud correspondant, l’estimateur de produit auxiliaire (102) étant configuré pour déterminer un indicateur de popularité de l’ensemble de produits auxiliaires associé à chaque nœud-feuille trouvé et pour choisir un ou plusieurs ensembles de produits auxiliaires parmi les ensembles de produits auxiliaires associés aux dits nœuds-feuilles trouvés en fonction desdits indicateurs de popularité, lesdits ensembles sélectionnés de produits auxiliaires étant ajoutés dans ladite liste des ensembles de produits auxiliaires, la fréquence d’occurrence et l’information de valeur de chaque ensemble de produits auxiliaires dans ladite liste des ensembles de produits auxiliaires étant retirées du nœud-feuille correspondant.The server system of claim 5, wherein, if the client request does not include a request parameter specifying a defined set of auxiliary products, the auxiliary product estimator (102) is configured to traverse the data structure in a tree. according to a tree search algorithm to determine a corresponding node having a path in the tree corresponding to the customer request parameters, the auxiliary product estimator (102) being further configured to search all the leaf nodes in a sub - tree of the corresponding node, the auxiliary product estimator (102) being configured to determine a popularity indicator of the set of auxiliary products associated with each leaf node found and to choose one or more sets of auxiliary products from the sets ancillary products associated with said leaf nodes found according to said popularity indicators, the Said selected sets of auxiliary products being added to said list of sets of auxiliary products, the frequency of occurrence and the value information of each set of auxiliary products in said list of sets of auxiliary products being removed from the corresponding leaf node. 8. Système serveur selon la revendication 7, dans lequel le système comprend un calculateur de popularité de produits auxiliaires (108) configuré pour déterminer l’indicateur de popularité de chaque ensemble de produits auxiliaires d’un nœud-feuille en utilisant la fréquence d’occurrence associée au nœud-feuille.The server system of claim 7, wherein the system includes an auxiliary product popularity calculator (108) configured to determine the popularity indicator of each set of auxiliary products of a leaf node using the frequency of occurrence associated with the leaf node. 9. Système serveur selon l’une quelconque des revendications précédentes, dans lequel le système comprend un coordinateur de prétraitement (130) configuré pour mettre à jour les informations de valeur estimées par l’estimateur de produit auxiliaire (102) pour chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires à partir de données en temps réel.The server system according to any of the preceding claims, wherein the system includes a preprocessing coordinator (130) configured to update the value information estimated by the auxiliary product estimator (102) for each set of products. auxiliaries from the list of auxiliary product sets based on real-time data. 10. Système serveur selon l’une quelconque des revendications précédentes, dans lequel le système comprend un corrélateur de produit auxiliaire (8) configuré pour intégrer l’information de valeur de produit auxiliaire de chaque ensemble de produits auxiliaires de la liste des ensembles de produits auxiliaires à la valeur d’un produit principal déterminé par l’estimateur de produit (11), en fonction d’un indicateur d’applicabilité.10. Server system according to any one of the preceding claims, in which the system comprises an auxiliary product correlator (8) configured to integrate the auxiliary product value information of each set of auxiliary products from the list of sets of products. auxiliary to the value of a main product determined by the product estimator (11), according to an applicability indicator. 11. Système serveur selon l’une quelconque des revendications précédentes, dans lequel par ailleurs le système comprend un moteur d’apprentissage de produits auxiliaires (105) configuré pour recueillir des métadonnées d’apprentissage au cours d’une période d’apprentissage prédéfinie, le système comprenant par ailleurs un gestionnaire d’arbre (800) pour gérer la structure de données en arbre en utilisant des métadonnées d'apprentissage recueillies.11. Server system according to any one of the preceding claims, in which the system further comprises an auxiliary product learning engine (105) configured to collect learning metadata during a predefined learning period, the system further comprising a tree manager (800) for managing the tree data structure using collected training metadata. 12. Système serveur selon la revendication 11, dans lequel le gestionnaire d’arbre (800) est configuré pour créer un nœud dans la structure des données d’arbre en réponse à la spécification d’une nouvelle valeur d’un paramètre correspondant à un niveau de l’arbre, dans une session de requête/réponse en temps réel, et pour régler la valeur de compteur dudit nœud sur la valeur 1.The server system of claim 11, wherein the tree manager (800) is configured to create a node in the tree data structure in response to the specification of a new value of a parameter corresponding to a level of the tree, in a request / response session in real time, and to set the counter value of said node to the value 1. 13. Système serveur selon la revendication 11, dans lequel le gestionnaire d’arbre est configuré pour mettre à jour un nœud dans la structure des données d’arbre chaque fois que la valeur associée au dit nœud est spécifiée dans une session de requête/réponse pour le paramètre correspondant au niveau des nœuds, et pour incrémenter la valeur de compteur dudit nœud.13. The server system of claim 11, wherein the tree manager is configured to update a node in the tree data structure each time the value associated with said node is specified in a request / response session. for the parameter corresponding to the level of the nodes, and to increment the counter value of said node. 14. Système serveur selon l’une quelconque des revendications précédentes 11 à 13, dans lequel le gestionnaire d’arbre est configuré pour vérifier périodiquement la configuration de la structure de données en arbre et pour appliquer un algorithme d’équilibrage à la structure de données en arbre, si la structure de données en arbre est déséquilibrée.14. Server system according to any one of the preceding claims 11 to 13, in which the tree manager is configured to periodically check the configuration of the tree data structure and to apply a balancing algorithm to the data structure in tree, if the data structure in tree is unbalanced. 15. Procédé de détermination d’une liste de produits en réponse à une requête client provenant d’un dispositif client lors d’une session de requête/réponse, ladite requête client comprenant un ou plusieurs paramètres de requête, ledit procédé comprenant une * étape de détermination d’une liste de produits principaux, ladite liste des produits principaux comprenant une estimation de l’un ou plus des produits principaux correspondant à ladite requête client, dans laquelle le procédé comprend par ailleurs la détermination d’une fréquence d’occurrence et d’une information de valeur des produits auxiliaires pour chaque ensemble de produits auxiliaires dans une liste d’ensembles de produits auxiliaires, à partir d'une structure de données d’arbre représentant des données historiques associées à des ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires, ladite structure de données d’arbre comprenant des nœuds, le procédé comprenant par ailleurs la fourniture d’une liste de produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client en utilisant la fréquence d’occurrence et l’information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de ladite liste des ensembles de produits auxiliaires.15. Method for determining a list of products in response to a client request from a client device during a request / response session, said client request comprising one or more request parameters, said method comprising a * step determining a list of main products, said list of main products comprising an estimate of one or more of the main products corresponding to said customer request, in which the method also comprises determining a frequency of occurrence and auxiliary product value information for each set of auxiliary products in a list of sets of auxiliary products, from a tree data structure representing historical data associated with sets of auxiliary products, in response at customer request, the list of sets of auxiliary products comprising at least one set of auxiliary products, said tree data structure comprising nodes, the method further comprising providing a list of candidate auxiliary products for each main product determined in response to the customer request using the frequency of occurrence and l auxiliary product value information determined for each set of auxiliary products from said list of sets of auxiliary products. 16. Programme informatique pour déterminer une liste de produits en réponse à une requête client provenant d’un dispositif client lors d’une session de requête/réponse, ladite requête client comprenant un ou plusieurs paramètres de requête, le produit de programme informatique comprenant :16. Computer program for determining a list of products in response to a customer request from a client device during a request / response session, said customer request comprising one or more request parameters, the computer program product comprising: un support non transitoire de stockage de données lisibles par ordinateur; et un code de programme enregistré sur le support non transitoire de stockage lisible par ordinateur qui, lorsqu’il est exécuté par un ou plusieurs processeurs, amène le ou plusieurs processeurs à :a non-transient storage medium for computer-readable data; and a program code recorded on the non-transient computer-readable storage medium which, when executed by one or more processors, causes the processor (s) to: -déterminer une liste des produits principaux, ladite liste de produits principaux comprenant une estimation de l’un ou plusieurs des produits principaux correspondant à ladite requête client, dans laquelle lesdits un ou plusieurs processeurs sont par ailleurs amenés à :-determine a list of main products, said list of main products comprising an estimate of one or more of the main products corresponding to said customer request, in which said one or more processors are also required to: - déterminer une fréquence d’occurrence et une information de valeur des produits auxiliaires pour chaque ensemble de produits auxiliaires dans une liste d’ensembles de produits auxiliaires, à partir d’une structure de données en arbre représentant les données historiques associées aux ensembles de produits auxiliaires, en réponse à la requête client, la liste des ensembles de produits auxiliaires comprenant au moins un ensemble de produits auxiliaires, ladite structure de données en arbre comprenant des nœuds,- determine a frequency of occurrence and value information of the auxiliary products for each set of auxiliary products in a list of sets of auxiliary products, from a tree data structure representing the historical data associated with the sets of products auxiliaries, in response to the client request, the list of sets of auxiliary products comprising at least one set of auxiliary products, said tree data structure comprising nodes, Lesdits un ou plusieurs processeurs étant amenés à fournir une liste de produits auxiliaires candidats pour chaque produit principal déterminé en réponse à la requête client en utilisant la fréquence d’occurrence et l’information de valeur de produit auxiliaire déterminée pour chaque ensemble de produits auxiliaires de ladite liste des ensembles de produits auxiliaires.Said one or more processors being led to supply a list of candidate auxiliary products for each main product determined in response to the customer request using the frequency of occurrence and the auxiliary product value information determined for each set of auxiliary products of said list of sets of auxiliary products.
FR1852213A 2018-03-15 2018-03-15 SYSTEM AND METHOD FOR PROVIDING PRODUCTS Active FR3079040B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1852213A FR3079040B1 (en) 2018-03-15 2018-03-15 SYSTEM AND METHOD FOR PROVIDING PRODUCTS
ES19162960T ES2900101T3 (en) 2018-03-15 2019-03-14 Product supply system and method
EP19162960.9A EP3540606B1 (en) 2018-03-15 2019-03-14 Product delivery system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1852213 2018-03-15
FR1852213A FR3079040B1 (en) 2018-03-15 2018-03-15 SYSTEM AND METHOD FOR PROVIDING PRODUCTS

Publications (2)

Publication Number Publication Date
FR3079040A1 true FR3079040A1 (en) 2019-09-20
FR3079040B1 FR3079040B1 (en) 2022-05-13

Family

ID=63722454

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1852213A Active FR3079040B1 (en) 2018-03-15 2018-03-15 SYSTEM AND METHOD FOR PROVIDING PRODUCTS

Country Status (1)

Country Link
FR (1) FR3079040B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115115430A (en) * 2022-07-14 2022-09-27 北京女娲补天科技信息技术有限公司 Tree structure-based purchase order generation method and device and computer equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130073586A1 (en) * 2011-05-02 2013-03-21 Amadeus S.A.S. Database system using batch-oriented computation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130073586A1 (en) * 2011-05-02 2013-03-21 Amadeus S.A.S. Database system using batch-oriented computation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HANS-PETER KRIEGEL: "Performance comparison of index structures for multi-key retrieval", MANAGEMENT OF DATA, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 1 June 1984 (1984-06-01), pages 186 - 196, XP058240079, ISBN: 978-0-89791-128-3, DOI: 10.1145/602259.602284 *
YAGOUB K ET AL: "Caching Strategies for Data-Intensive Web Sites", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON VERY LARGEDATA BASES, XX, XX, 10 September 2000 (2000-09-10), pages 1 - 12, XP002242551 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115115430A (en) * 2022-07-14 2022-09-27 北京女娲补天科技信息技术有限公司 Tree structure-based purchase order generation method and device and computer equipment

Also Published As

Publication number Publication date
FR3079040B1 (en) 2022-05-13

Similar Documents

Publication Publication Date Title
AU2012378630B2 (en) Categorizing and ranking travel-related search results
JP6138915B2 (en) A database system using batch-oriented computing.
US20130290324A1 (en) Categorizing and ranking travel-related database query results
US20170052652A1 (en) System for high volume data analytics and data ingestion
US20140067469A1 (en) Travel demand forecast using shopping data
US20140304116A1 (en) Life advisor application for task completion
US20190228347A1 (en) Computerized Travel Itinerary Recommendation Tool and Method Using Contextual Information
EP3822902A1 (en) Systems and methods for customization of reviews
US8903872B1 (en) NoSql online analytical processing architecture
US10740824B2 (en) Product delivery system and method
FR3079040A1 (en) SYSTEM AND METHOD FOR PROVIDING PRODUCTS
WO2007086684A1 (en) Method and system for calculating advertising-fee of local advertising information
EP3540606B1 (en) Product delivery system and method
US20210150593A1 (en) Systems and methods for customization of reviews
FR3078189A1 (en) EXCHANGES WITH AUTOMATIC ACCOUNTING OF FACTORS ASSOCIATED WITH EXCHANGES
FR3052898A1 (en)
US20160104173A1 (en) Real-time economic indicator
FR3070781A1 (en) IDENTIFIERS BASED ON AN INTERROGATION FOR THE FOLLOWING OF CROSS SESSION RESPONSES
FR3090960A1 (en) AUTOMATIC LEARNING FOR FRAUD DETECTION IN A COMPUTER RESERVATION SYSTEM
FR3062228A1 (en) AGREGATIVE DATABASE OF RECORDINGS CONTEXT
FR3055056A1 (en) GENERATION OF RECOMMENDATIONS FOR ROUTES HAVING TWO OR MORE SEGMENTS
CA3134673C (en) Methods and systems for generating search results
US11898858B2 (en) System and method for determining a set of routes, in a computerized environment
FR3055995A1 (en) DATABASE MANAGEMENT SYSTEM
FR3045901A1 (en) TREATMENT OF TRANSACTIONS INVOLVING THE EXCHANGE OF AN ELECTRONIC TICKET

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20190920

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7