Devices, systems, and methods for reducing bandwidth usage by performing provider data object adjustments at intermediary server based on historical data
Through the intermediary server, the historical data of the provider data objects is maintained and adjusted, and the data conversion between GDS and NDC is transformed using programming and machine learning algorithms, which solves the bandwidth and resource waste caused by different standard formats, and improves data exchange efficiency and accuracy.
Patent Information
- Application Number
- CN202380082689.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-31
- Filing Date
- 2023-12-01
- Publication Date
- 2025-08-05
AI Technical Summary
In the prior art, provider systems cause waste of bandwidth usage and processing resources due to differences in different standard formats during data exchange, especially during the conversion process from GDS to NDC.
The historical provider data object data is maintained through the intermediary server, the data objects generated according to the first standard type are adjusted to include information estimation of the second standard type, reducing the need to obtain data directly from the provider system, and data conversion and estimation are used to use programming and machine learning algorithms.
It effectively reduces the waste of bandwidth usage and processing resources between systems, improves the efficiency and accuracy of data exchange, and reduces network traffic.
Smart Images

Figure CN120435720A_ABST
Abstract
Description
Technical Field
[0001] The present description relates generally to intermediation between devices and, more particularly, to devices, systems, and methods for reducing bandwidth usage by performing provider data object adjustments at an intermediation server based on historical data. Background Art
[0002] The provision of various products, including, for example, travel-related goods and services (e.g., flights, hotel reservations, etc.), typically requires various discrete entities to exchange data that defines various aspects of the products. In the context of travel-related products, examples of such entities include airlines, travel agencies, end users, reservation systems, etc. Although such entities can be configured to exchange data according to a standardized format (e.g., in the context of travel-related products, according to the New Distribution Capability (NDC) standard based on Extensible Markup Language (XML), they may still employ different mechanisms to initiate the exchange of data. However, certain mechanisms may result in increased bandwidth usage and / or increased usage of processing resources between components of the system that exchange data related to the various product offerings. Summary of the Invention
[0003] A first aspect of the present specification provides a method comprising: maintaining, via one or more computing devices, historical provider data object data representing differences between provider data objects generated by one or more provider systems according to a first standard type and a second standard type, the provider data objects representing corresponding items provided by the one or more provider systems; receiving, at the one or more computing devices, a request from a client device for a provider data object, the provider data object representing at least one item provided by the provider system; retrieving, via the one or more computing devices, the provider data object generated according to the first standard type from one or more memories; adjusting, via the one or more computing devices, the provider data object generated according to the first standard type based on the historical provider data object data, so that the adjusted provider data object (also referred to as an "adjusted provider data object" within this disclosure) includes an estimate of information provided by the provider system when the provider system generated the provider data object according to the second standard type; and providing the adjusted provider data object from the one or more computing devices to the client device.
[0004] At the method of the first aspect, adjusting the provider data object generated according to the first criteria type may comprise one or more of: adjusting a price of the provider data object; and adjusting content of the provider data object.
[0005] In the method of the first aspect, adjustment of a provider data object generated according to a first standard type may occur according to a programmed adjustment process or a machine learning adjustment process, and the method may further include: maintaining a record of corresponding differences between previous provider data objects adjusted by the programmed adjustment process and the machine learning adjustment process and corresponding previous provider data objects of a second standard type generated by the provider system; and selecting the programmed adjustment process or the machine learning adjustment process to adjust the provider data object based on which of the programmed adjustment process or the machine learning adjustment process results in the smallest corresponding difference relative to the corresponding previous provider data object of the second standard type generated by the provider system.
[0006] At the method of the first aspect, adjusting the provider data object generated according to the first standard type may occur according to a programmed adjustment process or a machine learning adjustment process, and the method may also include: retrieving from the provider system a corresponding provider data object generated by the provider system according to the second standard type and corresponding to the provider data object retrieved from the one or more memories; and updating one or more of the programmed adjustment process and the machine learning adjustment process based on the corresponding differences between the provider data object generated according to the first standard type and retrieved from the one or more memories and the corresponding provider data object generated according to the second standard type.
[0007] At the method of the first aspect, retrieval of provider data objects generated according to the first standard type may occur according to a first retrieval process or a second retrieval process, and the method may further comprise: maintaining a record of respective differences between previous provider data objects generated according to the first standard type retrieved by the first retrieval process and the second retrieval process and corresponding previous provider data objects of the second standard type generated by the provider system; and selecting the first retrieval process or the second retrieval process to retrieve the provider data object generated according to the first standard type based on which of the first retrieval process and the second retrieval process results in the smallest respective difference relative to the corresponding previous provider data object of the second standard type generated by the provider system.
[0008] At the method of the first aspect, adjusting a provider data object generated according to a first standard type may include adjusting the provider data object to generate a plurality of provider data objects, the plurality of adjusted provider data objects including respective estimates of information provided by the provider system when the provider system generated the plurality of provider data objects according to a second standard type, the plurality of adjusted provider data objects including the adjusted provider data objects, and wherein providing the adjusted provider data objects to the client device may include providing the plurality of adjusted provider data objects to the client device.
[0009] The method of the first aspect may further comprise generating, from the adjusted provider data object, a plurality of additional provider data objects according to the second criteria type, said plurality of additional provider data objects comprising further estimates of further information provided by the provider system when the provider system generated the provider data object according to the second criteria type, all said plurality of additional provider data objects and the adjusted provider data object comprising common information; and providing said plurality of additional provider data objects to the client device.
[0010] The method of the first aspect may further comprise: maintaining, via the one or more computing devices, additional historical provider data object data, the additional historical provider data object data representing respective differences between a single provider data object generated by the provider system according to a given standard type and one or more corresponding provider data objects, also generated by the provider system and representing at least one item identical to the corresponding single provider data object, the one or more corresponding provider data objects also representing other items; receiving, at the one or more computing devices, from a client device another request for another provider data object, the another provider data object representing at least one item provided by the provider system; retrieving, via the one or more computing devices, from the one or more memories the another provider data object of the given standard type that satisfies another condition of the another request, the other provider data object representing a given item; adjusting, via the one or more computing devices, the other provider data object retrieved from the one or more memories based on additional historical provider data object data to generate one or more additional provider data objects, the one or more additional provider data objects including corresponding estimates of further information provided by the provider system when the provider system generates one or more corresponding additional provider data objects according to a given criteria type using the other condition of the other request, the additional provider data objects representing the given item of the other provider data object, and one or more other items different from the item of the other provider data object; and providing the other provider data object and the one or more additional provider data objects to the client device from the one or more computing devices.
[0011] At the method of the first aspect, the first standard type may include a data exchange system based on a global distribution system (GDS), and the second standard type may include a data exchange system based on a new distribution capability (NDC).
[0012] A second aspect of the present specification provides a device comprising: a communication interface; and a controller configured to: maintain historical provider data object data representing differences between provider data objects generated by one or more provider systems according to a first standard type and a second standard type, the provider data objects representing corresponding items provided by the one or more provider systems; receive a request for a provider data object from a client device via the communication interface, the provider data object representing at least one item provided by the provider system; retrieve the provider data object generated according to the first standard type from one or more memories; adjust the provider data object generated according to the first standard type based on the historical provider data object data, so that the adjusted provider data object includes an estimate of information provided by the provider system when the provider system generates the provider data object according to the second standard type; and provide the adjusted provider data object to the client device via the communication interface.
[0013] At the device of the second aspect, the controller may be further configured to adjust the provider data object generated according to the first standard type by one or more of: adjusting a price of the provider data object; and adjusting content of the provider data object.
[0014] At the device of the second aspect, the controller may also be configured to adjust the provider data object generated according to the first standard type according to a programmed adjustment process or a machine learning adjustment process, and the controller may also be configured to: maintain a record of the corresponding differences between previous provider data objects adjusted by the programmed adjustment process and the machine learning adjustment process and the corresponding previous provider data objects of the second standard type generated by the provider system; and select the programmed adjustment process or the machine learning adjustment process to adjust the provider data object based on which of the programmed adjustment process or the machine learning adjustment process results in the minimum corresponding difference relative to the corresponding previous provider data object of the second standard type generated by the provider system.
[0015] At the device of the second aspect, the controller may also be configured to adjust the provider data object generated according to the first standard type according to a programmed adjustment process or a machine learning adjustment process, and the controller may also be configured to: retrieve from the provider system a corresponding provider data object generated by the provider system according to the second standard type and corresponding to the provider data object retrieved from the one or more memories; and update one or more of the programmed adjustment process and the machine learning adjustment process based on the corresponding differences between the provider data object generated according to the first standard type and retrieved from the one or more memories and the corresponding provider data object generated according to the second standard type.
[0016] At the device of the second aspect, the controller may further be configured to retrieve provider data objects generated according to the first standard type according to the first retrieval process or the second retrieval process, and the controller may further be configured to: maintain a record of corresponding differences between previous provider data objects generated according to the first standard type retrieved by the first retrieval process and the second retrieval process and the corresponding previous provider data objects of the second standard type generated by the provider system; and select the first retrieval process or the second retrieval process to retrieve the provider data object generated according to the first standard type based on which of the first retrieval process and the second retrieval process results in the smallest corresponding difference relative to the corresponding previous provider data object of the second standard type generated by the provider system.
[0017] At the device of the second aspect, the controller may be further configured to adjust the provider data object generated according to the first criteria type by: adjusting the provider data object to generate a plurality of provider data objects, the plurality of adjusted provider data objects comprising respective estimates of information provided by the provider system when the provider system generated the plurality of provider data objects according to the second criteria type, the plurality of adjusted provider data objects comprising adjusted provider data objects, and wherein providing the adjusted provider data objects to the client device may comprise providing the plurality of adjusted provider data objects to the client device.
[0018] At the device of the second aspect, the controller may further be configured to: generate a plurality of additional provider data objects from the adjusted provider data object according to the second standard type, the plurality of additional provider data objects comprising further estimates of further information provided by the provider system when the provider system generated the provider data object according to the second standard type, all of the plurality of additional provider data objects and the adjusted provider data object comprising common information; and provide the plurality of additional provider data objects to the client device.
[0019] At the apparatus of the second aspect, the controller may be further configured to: maintain additional historical provider data object data, the additional historical provider data object data representing respective differences between a single provider data object generated by the provider system according to a given standard type and one or more corresponding provider data objects, also generated by the provider system, representing at least one item identical to the respective single provider data object, the one or more corresponding provider data objects further representing other items;
[0020] Receiving another request from the client device for another provider data object, the another provider data object representing at least one item provided by the provider system; retrieving the another provider data object of a given standard type that satisfies another condition of the another request from the one or more memories, the another provider data object representing the given item; adjusting the another provider data object retrieved from the one or more memories based on additional historical provider data object data to generate one or more additional provider data objects, the one or more additional provider data objects including corresponding estimates of further information provided by the provider system when the provider system generated one or more corresponding additional provider data objects according to the given standard type using the another condition of the another request, the additional provider data objects representing the given item of the another provider data object and one or more other items different from the item of the another provider data object; and providing the another provider data object and the one or more additional provider data objects to the client device.
[0021] At the apparatus of the second aspect, the first standard type may include a data exchange system based on a Global Distribution System (GDS), and the second standard type may include a data exchange system based on a New Distribution Capability (NDC).
[0022] A third aspect of the present specification provides a non-transitory computer-readable medium storing a computer program, wherein executing the computer program implements a method comprising: maintaining, via one or more computing devices, historical provider data object data representing differences between provider data objects generated by one or more provider systems according to a first standard type and a second standard type, the provider data objects representing corresponding items provided by the one or more provider systems; receiving, at the one or more computing devices, a request from a client device for a provider data object, the provider data object representing at least one item provided by the provider system; retrieving, via the one or more computing devices, the provider data object generated according to the first standard type from one or more memories; adjusting, via the one or more computing devices, the provider data object generated according to the first standard type based on the historical provider data object data, such that the adjusted provider data object includes an estimate of information provided by the provider system when the provider system generates the provider data object according to the second standard type; and providing the adjusted provider data object from the one or more computing devices to the client device.
[0023] At the method of the third aspect, adjusting the provider data object generated according to the first criteria type may comprise one or more of: adjusting a price of the provider data object; and adjusting content of the provider data object.
[0024] In the method of the third aspect, adjustment of the provider data object generated according to the first standard type may occur according to a programmed adjustment process or a machine learning adjustment process, and the method may further include: maintaining a record of the corresponding differences between previous provider data objects adjusted by the programmed adjustment process and the machine learning adjustment process and the corresponding previous provider data objects of the second standard type generated by the provider system; and selecting the programmed adjustment process or the machine learning adjustment process to adjust the provider data object based on which of the programmed adjustment process or the machine learning adjustment process results in the minimum corresponding difference relative to the corresponding previous provider data object of the second standard type generated by the provider system.
[0025] In the method of the third aspect, adjusting the provider data object generated according to the first standard type may occur according to a programmed adjustment process or a machine learning adjustment process, and the method may also include: retrieving from the provider system a corresponding provider data object generated by the provider system according to the second standard type and corresponding to the provider data object retrieved from the one or more memories; and updating one or more of the programmed adjustment process and the machine learning adjustment process based on the corresponding differences between the provider data object generated according to the first standard type and retrieved from the one or more memories and the corresponding provider data object generated according to the second standard type.
[0026] In the method of the third aspect, retrieval of provider data objects generated according to the first standard type may occur according to a first retrieval process or a second retrieval process, and the method may further comprise: maintaining a record of corresponding differences between previous provider data objects generated according to the first standard type retrieved by the first retrieval process and the second retrieval process and corresponding previous provider data objects of the second standard type generated by the provider system; and selecting the first retrieval process or the second retrieval process to retrieve the provider data object generated according to the first standard type based on which of the first retrieval process and the second retrieval process results in the smallest corresponding difference relative to the corresponding previous provider data object of the second standard type generated by the provider system.
[0027] At the method of the third aspect, adjusting the provider data object generated according to the first standard type may include: adjusting the provider data object to generate a plurality of provider data objects, the plurality of adjusted provider data objects including corresponding estimates of information provided by the provider system when the provider system generated the plurality of provider data objects according to the second standard type, the plurality of adjusted provider data objects including the adjusted provider data objects, and, wherein providing the adjusted provider data objects to the client device may include providing the plurality of adjusted provider data objects to the client device.
[0028] The method of the third aspect may further comprise generating, from the adjusted provider data object, a plurality of additional provider data objects according to the second standard type, said plurality of additional provider data objects comprising further estimates of further information provided by the provider system when the provider system generated the provider data object according to the second standard type, all said plurality of additional provider data objects and the adjusted provider data object comprising common information; and providing said plurality of additional provider data objects to the client device.
[0029] The method of the third aspect may further comprise: maintaining, via the one or more computing devices, additional historical provider data object data, the additional historical provider data object data representing respective differences between a single provider data object generated by the provider system according to a given standard type and one or more corresponding provider data objects also generated by the provider system and representing at least one item identical to the corresponding single provider data object, the one or more corresponding provider data objects also representing other items; receiving, at the one or more computing devices, from a client device another request for another provider data object, the another provider data object representing at least one item provided by the provider system; retrieving, via the one or more computing devices, from the one or more memories the another provider data object of the given standard type that satisfies another condition of the another request, the other provider data object representing a given item; adjusting, via the one or more computing devices, the other provider data object retrieved from the one or more memories based on additional historical provider data object data to generate one or more additional provider data objects, the one or more additional provider data objects including corresponding estimates of further information provided by the provider system when the provider system generates one or more corresponding additional provider data objects according to a given criteria type using the other condition of the other request, the additional provider data objects representing the given item of the other provider data object, and one or more other items different from the item of the other provider data object; and providing the other provider data object and the one or more additional provider data objects to the client device from the one or more computing devices.
[0030] At the method of the third aspect, the first standard type may include a data exchange system based on a global distribution system (GDS), and the second standard type may include a data exchange system based on a new distribution capability (NDC). BRIEF DESCRIPTION OF THE DRAWINGS
[0031] For a better understanding of the various examples described herein and to more clearly show how they may be implemented, reference will now be made, by way of example only, to the accompanying drawings, in which:
[0032] Figure 1 Depicted is a system for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data, according to non-limiting examples.
[0033] Figure 2 Depicted is an intermediary server for reducing bandwidth usage by performing provider data object adjustments at the intermediary server based on historical data, according to non-limiting examples.
[0034] Figure 3 Depicted according to non-limiting examples Figure 1 The computational processing flow of the system.
[0035] Figure 4 More detailed description of the non-limiting example Figure 1 system.
[0036] Figure 5 Depicted is a flow chart of a method for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data, according to a non-limiting example.
[0037] Figure 6 Depicted according to non-limiting examples Figure 4 A system implementing aspects of a method for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data is depicted in the disclosure.
[0038] Figure 7 Depicted according to non-limiting examples Figure 4 A system implementing further aspects of a method for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data is depicted in FIG.
[0039] Figure 8 Depicted according to non-limiting examples Figure 1 's system, but with additional historical provider data object data stored in memory.
[0040] Figure 9 Depicted is a flow diagram of a method of reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data (eg, appending historical provider data objects), according to a non-limiting example.
[0041] Figure 10 Depicted according to non-limiting examples Figure 8 A system implementing aspects of a method for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on additional historical provider data objects is depicted in the disclosure.
[0042] Figure 11 Depicted according to non-limiting examples Figure 8 A system implementing further aspects of a method for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on additional historical provider data objects is depicted in FIG. DETAILED DESCRIPTION
[0043] Figure 1A system 100 for intermediating between a provider system (e.g., one or more servers or other suitable computing devices) and a client device is depicted. In the examples discussed herein, provider data objects may include provider data objects and / or data records corresponding to products and / or items offered by the provider system, such as travel-related goods and services (e.g., flights, hotel reservations, car rentals, etc.). More specifically, the products and / or items discussed in the examples below may be airline tickets and related services (e.g., limousine transfers, destination excursions, luggage handling services, in-flight meals, entertainment, pet-related services, etc.). However, as will be appreciated by those skilled in the art, the systems and methods discussed below may also be applied to various other types of data objects and / or items, including, but not limited to, data objects corresponding to any suitable product and / or any suitable item available (e.g., available for purchase, etc.) from any suitable website, etc.
[0044] The delivery of the above-mentioned items is typically controlled by a provider entity, such as, in the case of the items discussed with respect to the tourism-related examples provided herein, by an airline. System 100 includes one or more provider systems 102 (e.g., one or more servers or other suitable computing devices), which in this example are operated by one or more provider entities. System 100 may include multiple client devices 104, but for illustrative purposes, Figure 1 Only one client device 104 is shown.
[0045] System 100 may include multiple provider systems 102, each operated by a respective provider entity (e.g., a respective airline), but for illustrative purposes, only one provider system 102 is shown. Provider data objects may be in any suitable format, including, but not limited to, Edifact recommendations in the context of a global distribution system (GDS)-based data exchange, quote records in the context of a new distribution capability (NDC)-based data exchange, and / or any other suitable format. In practice, provider data objects may include, for example, data objects and / or data records storing Edifact recommendations or NDC quotes, and / or any other suitable data representing at least one item provided by provider system 102.
[0046] A provider data object is understood to define an item or combination of items that can be offered for purchase (e.g., by an end user of the item), including but not limited to one or more of flights, train tickets, hotel accommodations, airport lounge access, seat upgrades, baggage handling services, in-flight meals, entertainment, transfer services, excursion services, pet-related services, and / or associated services. Thus, in the example discussed below, a provider data object may define a flight operated by a provider entity, and / or services associated with the flight or offered as independent services. Thus, each provider data object may contain various fields (e.g., data fields), etc. Certain fields define item attributes, such as a product object identifier (e.g., a service identifier, an item identifier, a product identifier, etc.), the location corresponding to the product, and the date and time (e.g., flight time and other itinerary data). The types of fields and / or data in a provider data object may depend on the type of provider data object. For example, a provider data object corresponding to a flight may include a flight identifier, while a provider data object corresponding to other travel-related items (such as an offer for airport lounge access and / or an offer for a premium seat upgrade) may include information related to the lounge, premium seat, and the like.
[0047] Requests for provider data objects may be received at provider system 102 from other components of system 100. For example, the request may be received from client device 104 via network 106 (e.g., any suitable combination of a local area network and a wide area network, including the Internet) and via intermediary server 108. As will be described below, intermediary server 108 generally acts as an intermediary between client device 104 and provider system 102, e.g., such that client device 104 may request products from provider system 102 and / or more than one provider system 102 via intermediary server 108.
[0048] Furthermore, in some examples, intermediary server 108 can convert data between formats associated with provider systems 102 and client devices 104. For example, a first provider system 102 can transmit and / or provide provider data objects and / or quotes for provider data objects according to a first standard type, and a second provider system 102 can transmit and / or provide provider data objects and / or quotes for provider data objects according to a second standard type (e.g., the second standard type can be the same as or different from the first standard type). Both formats may be incompatible with the format used by client device 104 for communication. Thus, intermediary server 108 can convert data received from provider system 102 in different formats into a format compatible with client device 104, and vice versa.
[0049] The intermediary server 108 is configured to maintain historical provider data object data representing differences between provider data objects generated according to the first standard type and the second standard type. As will be described below, in a specific non-limiting example, the intermediary server 108 may also be configured to adjust provider data objects generated according to the first standard type (including, but not limited to, for example, a GDS-based data exchange format) provided by the first provider system 102 to include an estimate of provider data object data for the provider data object according to the second standard type (including, but not limited to, for example, an NDC-based data exchange format) provided by the second provider system 102 (or the first provider system 102) based on the differences (the estimate also referred to herein as "estimate of information") when the second provider system 102 (or the first provider system 102) generates the provider data object according to the second standard type (including, but not limited to, an NDC-based data exchange format), e.g., before providing the provider data object to the client device 104.
[0050] While GDS and NDC are used as examples of specific standard types, it should be understood that any suitable standard type is within the scope of this specification. Furthermore, the term "format" will be used hereinafter to refer to the format of a provider data object and / or data exchange of a given standard type. Thus, a first provider data object of a first standard type may be in a first format, and a second provider data object of a second standard type may be in a second format.
[0051] To distinguish between the intermediary server 108 converting a provider data object from a format compatible with the provider system 102 to a format compatible with the client device 104 and the intermediary server 108 adapting a (e.g., GDS-based) data exchange format to include an estimate of information provided by the provider system 102 when the provider system 102 generated the provider data object according to, for example, an NDC-based data exchange format, etc., reference will be made below to the intermediary server 108 adapting a provider data object generated according to one standard type to include an estimate of information provided by the provider system 102 when the provider system 102 generated the provider data object according to a second standard type. For example, the intermediary server 108 may adapt a provider data object generated according to an Edifact (e.g., GDS-based) proposal (e.g., of a first standard type) to include an estimate of information provided by the provider system when the provider system generated the provider data object according to an NDC quote (e.g., of a second standard type).
[0052] However, although this document describes, with respect to travel-related provider data objects and standard types, adjusting a provider data object generated according to a first standard type to include an estimate of information provided by provider system 102 when provider system 102 generates a provider data object according to a second standard type, such adjustment may be made with respect to any suitable provider data object generated according to any suitable standard.
[0053] Furthermore, as described herein, the adjustment of a provider data object by the intermediary server 108 includes generating additional provider data objects. Using a travel-related example, the intermediary server 108 may receive a provider data object in GDS format corresponding to an economy class airline ticket from the provider system 102, adjust the provider data object to an NDC format (e.g., using an NDC-based fare), and generate additional provider data objects for similar airline tickets but in one or more higher classes, wherein the associated fares and / or data fields of the additional provider data objects are adjusted accordingly (e.g., based on the NDC-based fare).
[0054] In this example, the client device 104 may be operated by a travel agency entity and, therefore, generate and submit requests for provider data objects (e.g., representing products that can be purchased) and / or requests to purchase products (e.g., represented by provider data objects) to the provider system 102 via the intermediary server 108 on behalf of an end user (e.g., a traveler).
[0055] Thus, in one example, the intermediary server 108 may include an aggregator server that communicates with multiple provider systems 102 and aggregates provider data objects and / or quotes for provider data objects from the multiple provider systems 102 to provide to the client device 104. When the formats of the data used by the provider systems 102 and the client device 104 are compatible, the intermediary server 108, when performing the aggregation function, may not perform the conversion described herein with respect to converting from the provider system format to the client device format.
[0056] Alternatively, the client device 104 may be operated by the provider system 102. In yet another alternative, the provider system 102 may operate the intermediary server 108. Thus, it should be understood that while Figure 1106. Provider system 102, client device 104, and intermediary server 108 are depicted as separate from one another, but they may be associated with various combinations of one or more entities, and / or the functionality of provider system 102, client device 104, and intermediary server 108 may be combined in any suitable manner at one or more computing devices and / or servers and / or cloud computing devices. Thus, herein, reference is not made to components of system 100 communicating via transmitting data therebetween (e.g., such as via network 106). Rather, reference herein to communication between components of system 100 refers to components providing data therebetween, which may include, but is not limited to, transmitting data over network 106, communicating data when components are local to one another, and / or combined, and / or the like.
[0057] Various other mechanisms for initiating the creation of a provider data object are also contemplated. For example, an end user (via client device 104 and / or client device and / or additional computing device, Figure 1 The user (not shown) may initiate the creation of a provider data object via direct interaction with a website hosted by the intermediary server 108. Various mechanisms for creating a provider data object will be apparent to those skilled in the art, such as the "offer" and "order" mechanisms specified by the NDC standard.
[0058] The client device 104 is configured to receive data contained in the provider data object via the intermediary server 108. The data obtained by the client device 104 via the intermediary server 108 can be presented to a user served by the client device 104, for example, via a display screen (not depicted) that can be local to the client device 104; the client device 104 can request more information associated with the item represented by the provider data object, which can include, but is not limited to, the client device 104 placing an order for the item. In other words, the system 100 enables the client device 104 to request more information associated with the item represented by the provider data object via the intermediary server 108. The client device 104 can be configured to provide a request to the provider system 102 via the intermediary server 108 to request more information and / or to initiate such an order.
[0059] The provider data objects provided by the provider system 102 typically include provider data object data representing at least one item provided by the provider system 102. In some examples, the provider data object data may include a provider data object identifier and / or provider data object identifier data that identifies the provider data object to the provider system 102. The provider data object data typically includes information that identifies travel-related products and / or services. Whether the provider data object data includes a particular provider data object identifier may or may not depend on whether the provider data object is in an NDC format or a GDS format. For example, when the provider data object includes an NDC offer, the provider data object identifier data may include an identifier generated by the provider system 102 that specifically identifies the NDC offer. However, when the provider data object includes an Edifact recommendation (which typically does not include a particular identifier), the provider system 102 and / or the intermediary server 108 may identify the Edifact recommendation based on the provider data object identifier data (such as characteristics of the Edifact recommendation, such as the particular order of the Edifact recommendation and / or the format of the data).
[0060] Generally speaking, communication between the client device 104 and the intermediary server 108 occurs via a computing process flow 110 implemented by the client device 104, such as an application programming interface (API). For example, during the ordering of a provider data object (e.g., booking a flight), the client device 104 may implement the computing process flow 110 in the form of an API, and the communication between the client device 104 and the intermediary server 108 may be defined by the API.
[0061] In any case, the steps for ordering provider data objects may occur according to a series of predefined steps that are combined Figure 3Detailed discussion will be provided below, but these predefined steps may include a request step, a selection step, a reservation step, and a payment step. However, when the system 100 is configured such that a provider system 102 responds to each request for a provider data object, the request step (wherein a client device 104 may request a provider data object from one or more provider systems 102 via an intermediary server 108) may result in network traffic being withdrawn at the provider system 102. In particular, in a GDS-based data exchange, the provider system 102 typically (e.g., at a server) publishes and / or provides information describing various provider data objects (e.g., such as flight schedules with corresponding fares) to the intermediary server 108, and, at the request step, the intermediary server 108 may use such information to respond to a client device 104 request for a provider data object without explicitly querying the provider system 102. However, in an NDC-based data exchange, an NDC quote (e.g., a quote for a provider data object) may be based on options associated with the provider system 102; the options may specify various factors that the provider system 102 may use to respond to a request for a provider data object, and may include, but is not limited to (e.g., using a travel-based example) destinations and / or airports served by the provider system 102, connecting airports used by the provider system 102, baggage-related factors used by the provider system 102, etc., among other possibilities.
[0062] Therefore, it is further understood that in some examples, the intermediary server 108 and / or one or more provider systems 102 operate according to NDC standards; however, the provider system 102 operating according to the NDC standard can still publish fares, schedules, etc. according to the GDS standard.
[0063] However, while provider system 102 may receive thousands to millions or even hundreds of millions (sometimes higher) of requests per day in NDC-based data exchange (e.g., when the requesting step occurs at many different client devices 104), very few requests may result in client devices 104 making subscriptions and / or purchases of provider data objects, etc. This situation may result in a significant waste of bandwidth between components of system 100 and / or a significant waste of processing resources at provider system 102.
[0064] As described above, it is further understood that to address this issue, the intermediary server 108 is typically configured to maintain historical provider data object data that represents the differences between provider data objects generated according to a first standard type (such as historical fares, schedules, and / or recommendations based on a GDS) and a second standard type (such as historical NDC-based quotes corresponding to historical fares, schedules, and / or quotes based on a GDS). It should be understood that the historical provider data object data represents provider data objects generated by the provider system 102 according to the first standard type and the second standard type, and will be combined with the historical provider data object data to generate the provider data objects. Figure 4 for a more detailed discussion.
[0065] The intermediary server 108 also typically has access to currently published GDS-based fares, schedules, and / or quotes (e.g., currently published), and may also be configured to adjust these currently published GDS-based fares, schedules, and / or recommendations to include, for example, estimates of information corresponding to NDC quotes when the provider system 102 generated such NDC quotes based on historical provider data object data.
[0066] In particular, such adjustment functionality of the intermediary server 108 generally corresponds to an estimation functionality of the provider system 102 for generating, based on the second standard type (e.g., an NDC quote), provider data objects that the intermediary server 108 can emulate and / or simulate and / or attempt to reproduce. Such adjustment functionality can take the form of one or more programming algorithms and / or one or more machine learning algorithms, etc.
[0067] Thus, when the intermediary server 108 receives a request for a provider data object from the client device 104 (e.g., at a request step), the intermediary server 108 may, for example, retrieve the provider data object generated according to the first criteria type from currently published GDS-based fares, schedules, and / or recommendations, and adjust the provider data object generated according to the first criteria type to include an estimate of the information provided by the provider system 102 when the provider system 102 generated the provider data object according to the second criteria type. In particular, the intermediary server 108 may perform such adjustments rather than requesting the provider data object from the provider system 102.
[0068] Such adjustments may include, but are not limited to, adjusting the price of a provider data object from a first price of the provider data object generated according to the first criteria type to an estimate of a second price of the provider data object (e.g., if the provider system 102 generated the provider data object according to the second criteria type). For example, the published fare for a flight may not represent the actual fare for the flight, and / or the fare may change after being published. Adjusting a provider data object generated according to the first criteria type to include an estimate of information provided by the provider system 102 when the provider system 102 generated the provider data object according to the second criteria type may generally represent an attempt by the intermediary server 108 to mimic and / or simulate and / or replicate the internal processing of the provider system 102 to adjust the published GDS-based fare to an NDC-based fare.
[0069] Such adjustments may include, but are not limited to, adjusting the content of a provider data object from the first content of the provider data object generated according to the first criteria type to an estimate of the content of the provider data object (e.g., if the provider system 102 generated the provider data object according to the second criteria type). For example, the published fare for a flight may not include services that may be offered in an NDC-based quote, such as included checked baggage, lounge passes, etc. The adjustment of the provider data object generated according to the first criteria type may generally represent an attempt by the intermediary server 108 to mimic and / or simulate and / or reproduce the internal processing of the provider system 102 to adjust the published GDS-based flight to an NDC-based quote that includes associated services, etc.
[0070] Thus, when the intermediary server 108 receives a request for a provider data object from the client device 104, the intermediary server 108 may retrieve the provider data object according to a first standard type (e.g., a GDS-based provider data object representing a flight posting), adjust the provider data object to include estimates that may be included in a corresponding provider data object of a second standard type (e.g., an NDC-based quote), and provide the adjusted provider data object (also referred to in this disclosure as an adjusted provider data object) to the client device 104.
[0071] Furthermore, as previously described, the intermediary server 108 receives a request for a provider data object from the client device 104, the intermediary server 108 may retrieve a provider data object according to a first standard type (e.g., a published GDS-based provider data object representing economy class seats on a flight and a GDS-based fare), adjust the provider data object to include estimates that may be included in a corresponding provider data object of a second standard type (e.g., an NDC-based quote with an NDC-based fare), generate additional provider data objects of the second standard type (e.g., for one or more higher class seats on the flight with corresponding NDC-based fares), and provide the provider data objects of the second standard type to the client device 104. While this example is described with respect to a GDS format (and a first standard type) and an NDC format (e.g., a second standard type) and seats on a flight, it should be understood that adjusting a provider data object according to the first standard type to include estimates that may be included in a corresponding provider data object of the second standard type may include generating any suitable number of additional provider data objects of the second standard type.
[0072] Go to Figure 2 Before discussing the functionality of system 100 in more detail, certain components of intermediary server 108 will be discussed in more detail. Although intermediary server 108 is depicted as one device, it may include one or more computing devices and / or one or more servers and / or one or more cloud computing devices that may be geographically distributed.
[0073] like Figure 2 As shown in FIG, the intermediary server 108 includes at least one controller 202, such as a central processing unit (CPU). The controller 202 is interconnected with a memory 204 that stores an application 206. The memory 204 is implemented as a suitable non-transitory computer-readable medium (e.g., a suitable combination of non-volatile and volatile memory subsystems, including any one or more of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic computer storage devices, etc.). The controller 202 and the memory 204 are typically composed of one or more integrated circuits (ICs).
[0074] The controller 202 is also interconnected with a communication interface 208, which enables the intermediary server 108 to communicate with other computing devices of the system 100 (i.e., the provider system 102 and the client device 104) via the network 106, but it should be understood that when the components of the system 100 are combined, such communication can occur locally. Therefore, the communication interface 208 can include any necessary components (e.g., a network interface controller (NIC), a radio unit, etc.) to communicate via the network 106. The specific components of the communication interface 208 can be selected based on the nature of the network 106 and / or the local communication between the components of the system 100. The intermediary server 108 can also include input and output devices such as a keyboard, a mouse, a display, etc. (not shown) connected to the controller 202.
[0075] The components of the intermediary server 108 described above can be deployed in a single housing or in a distributed format. Thus, in some examples, the intermediary server 108 includes multiple processors that either share the memory 204 and the communication interface 208 or each have a different associated memory and communication interface. Thus, it should be understood that the memory 204 and / or portions of the memory 204 can be located internally (e.g., as depicted) or externally to the intermediary server 108; regardless, the controller 202 should be understood to have access to the memory 204.
[0076] The memory 204 also stores a plurality of computer-readable programming instructions that are executable by the controller 202, in the form of various applications, including application 206. As will be understood by those skilled in the art, the controller 202 executes the instructions of application 206 (and any other suitable application) to perform various actions defined by the instructions contained therein. In the following description, the controller 202, and more generally, the intermediary server 108, are referred to as being configured to perform these actions. It should be understood that they are so configured via the execution (by the controller 202) of the instructions of the application stored in the memory 204.
[0077] In some examples, as will be discussed below, execution of application 206 configures intermediary server 108 to implement functionality for reducing bandwidth usage by performing provider data object adjustments based on historical data, including but not limited to Figure 5 The method described in the box.
[0078] As will be described in greater detail below, in some examples, application 206 may include and / or access one or more programmed algorithms 210 for adjusting provider data objects generated according to a first standard type to include estimates of information provided by provider system 102 when provider system 102 generates provider data objects according to a second standard type. In other examples, application 206 may include and / or access one or more machine learning algorithms 212 trained to adjust provider data objects generated according to a first standard type to include estimates of information provided by provider system 102 when provider system 102 generates provider data objects according to a second standard type.
[0079] Although Figure 2 The one or more programming algorithms 210 and the one or more machine learning algorithms 212 are depicted as separate from the application 206, but the one or more programming algorithms 210 and the one or more machine learning algorithms 212 can be integrated with the application 206, and / or the one or more programming algorithms 210 and the one or more machine learning algorithms 212 can include modules of the application 206.
[0080] However, it should be understood that although the present example may be implemented using one or more programming algorithms 210 and one or more machine learning algorithms 212 as described herein, in other examples, one or more programming algorithms 210 may be used, or one or more machine learning algorithms 212 may be used (e.g., one or more machine learning algorithms 212 may be optional, or one or more programming algorithms 210 may be optional).
[0081] Furthermore, although this example is described with respect to one or more programming algorithms 210 and one or more machine learning algorithms 212 adjusting provider data objects generated by one provider system 102, one or more programming algorithms 210 and / or one or more machine learning algorithms 212 may be provided to adjust provider data objects generated by multiple provider systems 102.
[0082] As will be described in greater detail below, in some examples, the application 206 may include and / or access different search processes, such as a first search algorithm 214 and a second search algorithm 216, for searching provider data objects generated according to a first criteria type. For example, the different search algorithms 214 and 216 may represent different algorithms for searching for published GDS-based fares, schedules, and the like based on criteria received from the client device 104 (e.g., such as the date, departure and destination cities and / or airports of a flight). Such search algorithms 214 and 216 may use different corresponding types of search parameters and / or processes to search for provider data objects according to the first criteria type, and / or such search algorithms 214 and 216 may search different corresponding databases that maintain different versions of published GDS-based fares, schedules, and the like.
[0083] For example, the first search algorithm 214 may search a database of published GDS-based fares, schedules, etc. maintained by the provider system 102. Furthermore, the first search algorithm 214 may access the provider system's 102 rules, etc., regarding which flights and / or fares, etc., the provider system 102 may prioritize (e.g., the provider system 102 determines that some flights may be considered better than others).
[0084] In contrast, the second search algorithm 216 may search a database of published GDS-based fares, schedules, etc., which may be maintained by the provider system 102 or another entity (e.g., a third-party entity that retrieves and publishes GDS-based fares, schedules, etc. from the provider system 102). Furthermore, the second search algorithm 216 may not have access to the aforementioned rules, etc., of the provider system 102.
[0085] However, such differences between the retrieval algorithms 214 , 216 are understood to be merely examples, and any suitable differences between the retrieval algorithms 214 , 216 may exist that may result in different search results based on the same criteria received from the client device 104 .
[0086] Although Figure 2 206, the algorithms 214 and 216 may be integrated with the application 206 and / or the retrieval algorithms 214 and 216 may comprise modules of the application 206. Furthermore, while this example is described with respect to two retrieval algorithms 214 and 216, the memory 204 may store more than two retrieval algorithms.
[0087] However, it should be understood that while the present example may be implemented using two retrieval algorithms 214, 216 as described herein, in other examples, a single retrieval algorithm may be used.
[0088] Although the structure of provider system 102 and client device 104 is not described in detail, it should be understood that provider system 102 and client device 104 have a similar structure as intermediary server 108 , but adapted for the functionality of provider system 102 and client device 104 .
[0089] Next, pay attention Figure 3 , which depicts a block diagram of an example of a computing process flow 110. Although the example computing process flow 110 is depicted in the form of a flowchart, it should be understood that the example computing process flow 110 (e.g., hereinafter referred to as computing process flow 110) can show the steps of the API, including steps 302-1, 302-2, 302-3, and 302-4, which are collectively and interchangeably referred to as steps 302 hereinafter, and are generally referred to as steps 302. This specification will use this convention throughout.
[0090] For example, at request step 302-1, a user of client device 104 may enter criteria and / or details, such as the date (e.g., and time), departure airport, arrival airport, and other possibilities, into data fields of a GUI (graphical user interface) for searching for provider data objects representing flights. The criteria may be provided to intermediary server 108, which may provide the criteria and / or details to provider system 102. Provider system 102 may return corresponding offers (e.g., NDC offers) for provider data objects representing flights that meet the criteria and / or details. Generally speaking, such offers for provider data objects may be customized based on options associated with provider system 102. Intermediary server 108 may aggregate offers for provider data objects from multiple provider systems 102 and return the offers for the provider data objects to client device 104. In NDC-based data exchange, it should be understood that offers may be identified by corresponding offer identifiers (e.g., which may be referred to as OfferId and / or OfferID). However, in other examples, the provider system 102 may return an Edifact recommendation (e.g., in a GDS-based data exchange) rather than an NDC quote. Nevertheless, step 302 will be described below with reference to a quote and / or an NDC quote, but it should be understood that any suitable combination of an NDC quote and an Edifact recommendation may be received from the provider system 102 and returned to the client device 104 at request step 302-1 (e.g., including but not limited to only an NDC quote or only an Edifact recommendation).
[0091] At selection step 302-2, a list of quotes (or the like) representing provider data objects for flights returned by provider system 102 via intermediary server 108 may be provided in a GUI on a display screen associated with client device 104, from which the user of client device 104 may select, for example, a flight to book. In some examples, the user of client device 104 may select an electronic button or the like to add a service (such as a transfer) to the quote and / or provider data object. At selection step 302-2, client device 104 may request a "firm" quote for the selected provider data object, such as a "fixed" and / or final price, which may differ from the "published" price. The selection, request, and receipt of a firm quote for a provider data object may occur through any suitable data exchange between client device 104, intermediary server 108, and provider system 102 via network 106. However, when such data exchange includes an NDC-based data exchange (e.g., using a quote identifier for the selected quote), such data exchange is understood to be based on the aforementioned quote identifier.
[0092] Similarly, at the booking step 302-3, information of the selected provider data object (such as the aforementioned flight) may be provided in a GUI at the display screen, and the user of the client device 104 may select an electronic button therefrom to pay for the flight and / or add services to the booking, such as a transfer service, etc. Any suitable data exchange between the client device 104, the intermediary server 108, and the provider system 102 via the network 106 is understood to occur for a fixed quote to book the provider data object, however, when such data exchange includes an NDC-based data exchange, such data exchange is understood to be based on the aforementioned quote identifier.
[0093] Similarly, at the payment step 302-4, a field for entering payment information (such as credit card information) may be provided in the GUI at the display screen to pay for the selected flight reservation. Any suitable data exchange between the client device 104, the intermediary server 108, and the provider system 102 via the network 106 is understood to result in a fixed quote for the payment provider data object.
[0094] While step 302 may be implemented entirely as a purchase of a provider data object (e.g., a flight represented by an offer object), request step 302-1 may be implemented tens to hundreds to thousands (or more) of times for the remaining instances of step 302. For example, a user of client device 104 may request and view many provider data objects before selecting and / or booking and / or paying for a provider data object; indeed, a user of client device 104 may request and view many provider data objects but never select and / or book and / or pay for a provider data object. Furthermore, users of different client devices 104 may request provider data objects using similar and / or identical conditions at corresponding request steps 302-1, which may result in provider system 102 providing similar and / or identical provider data objects to client device 104 (e.g., assuming that client device 104 and / or the request received at request step 302-2 satisfy the same or similar options and / or factors associated with provider system 102 providing the provider data object).
[0095] Now pay attention Figure 4 , which illustrates aspects of an example of a system 100 that includes a provider system 102, a client device 104, and an intermediary server 108 that mediates between them. Although network 106 is not depicted, it should be understood that it exists. For example, the communication links between the components of system 100 are Figure 4 106. Communications links are depicted in and throughout this specification as bidirectional arrows between respective components; communications links may include any suitable combination of wireless and / or wired links, and / or wireless and / or wired communications networks, including but not limited to network 106.
[0096] Figure 4 Also depicted is memory 400 accessible to intermediary server 108. Memory 400 may be separate from intermediary server 108, and / or intermediary server 108 may at least partially comprise memory 400 (e.g., at least a portion of data stored at memory 400 may be stored at memory 204).
[0097] Although memory 400 is depicted in the form of a database, memory 400 may include one or more suitable memories 400 in which provider data objects (e.g., in the form of quotes for provider data objects, and / or in any other suitable format) may be stored. Memory 400 (which may be interchangeably referred to as one or more memories 400 hereinafter) may be separate from intermediary server 108 and / or at least partially integrated with intermediary server 108, for example, at memory 204.
[0098] As depicted, the memory 400 stores historical provider data object data 402, which, as depicted, includes "N" provider data objects 404-1...404-N generated according to a first standard type, "N" corresponding provider data objects 406-1...406-N generated according to a second standard type, and optionally, corresponding differences 408-1...408-N between the provider data objects 404-1...404-N and the corresponding provider data objects 406-1...406-N.
[0099] For simplicity, provider data objects 404-1 ... 404-N will be interchangeably referred to collectively and generally as provider data objects 404 below. This convention will be used elsewhere in this specification. For example, corresponding provider data objects 406-1 ... 406-N will be interchangeably referred to as provider data objects 406 and / or provider data objects 406, and corresponding differences 408-1 ... 408-N will be interchangeably referred to as differences 408 and / or differences 408.
[0100] also, Figure 4 , the association between the provider data object 404, the corresponding provider data object 406, and the corresponding difference 408 is indicated by the dashed line between them. For example, the provider data object 404-1, the provider data object 406-1, and the corresponding difference 408-1 are understood to be associated with each other.
[0101] While corresponding differences 408 may be optional, it should be understood that the pair of provider data objects 404 and associated corresponding provider data objects 406 represents such differences 408 .
[0102] Furthermore, in some examples, one or more subsets of provider data objects 404 may be identical or similar to each other, and one or more corresponding subsets of provider data objects 406 may be identical or similar to each other. Furthermore, when two provider data objects 404 are identical or similar, one of the two provider data objects 404 may be similar to the corresponding provider data object 406 such that the corresponding differences 408 are relatively small, while the other of the two provider data objects 404 may be dissimilar to the corresponding provider data object 406 such that the corresponding differences 408 are relatively large.
[0103] Furthermore, the number "N" of provider data objects 404, 406 (e.g., and corresponding differences 408) can be any suitable number and can be on the order of thousands, millions, hundreds of millions, etc. In practice, the number "N" of provider data objects 404, 406 (e.g., and corresponding differences 408) can vary over time, and the intermediary server 108 can maintain the provider data objects 404, 406 (e.g., and corresponding differences 408) only for a given period of time, such as one week, where provider data objects 404, 406 (e.g., and corresponding differences 408) older than one week are discarded. However, any suitable number of provider data objects 404, 406 (e.g., and corresponding differences 408) stored for any suitable period of time is within the scope of this description.
[0104] In general, it should be understood that the intermediary server 108 can maintain historical provider data object data 402, and that provider data objects 404 include provider data objects generated by the provider system 102 (e.g., any suitable provider system 102) according to a first standard type (such as a GDS-based data exchange), and that provider data objects 406 include provider data objects generated by the provider system 102 (e.g., any suitable provider system 102) according to a second standard type (such as an NDC-based data exchange).
[0105] In particular, provider data object 404 may include an Edifact and / or GDS-based recommendation generated by provider system 102 for a given flight, and corresponding provider data object 406 may include an NDC-based quote generated by provider system 102 for the same given flight.
[0106] For example, in a previous embodiment of computer process flow 110, client device 104 may have requested information about a flight from intermediary server 108, and intermediary server 108 may have provided, at request step 302-2, a particular provider data object 404 based on a GDS-based data exchange (e.g., as generated by provider system 102) to client device 104. At a previous embodiment of computer process flow 110, client device 104 may have selected a particular provider data object 404 to book (e.g., at selection step 302-2 and / or booking step 302-3), and intermediary server 108 may have provided, to client device 104, a corresponding provider data object 406 based on an NDC-based data exchange (e.g., as generated by provider system 102). In this example, the intermediary server 108 may have stored both a particular provider data object 404 and a corresponding provider data object 406 generated by the provider system 102 at the memory 400 for use in later adjusting the provider data object generated based on the GDS-based data exchange to include an estimate of the information provided by the provider system 102 when the provider system generated the provider data object based on the NDC-based data exchange.
[0107] Furthermore, while as depicted, the intermediary server 108 may also determine corresponding differences 408 between the provider data objects 404 , 406 (eg, such as price differences, service differences, etc.), determining and storing the corresponding differences 408 may be optional.
[0108] The historical provider data object data 402 can be used, for example, to train one or more machine learning algorithms 212 in a training mode. Specifically, the provider data objects 404 can be used as training inputs to the one or more machine learning algorithms 212 in the training mode, and the corresponding provider data objects 406 and / or corresponding differences 408 can be used as training outputs to the one or more machine learning algorithms 212 in the training mode. Thus, when provider data objects generated by the provider system 102 based on a GDS-based data exchange are used as inputs to the one or more machine learning algorithms 212, the one or more machine learning algorithms 212 in the training mode can be trained to generate and / or output corresponding provider data objects and / or corresponding differences. Specifically, the corresponding provider data objects and / or corresponding differences generated by the one or more machine learning algorithms 212 can correspond to adjusted provider data objects that include an estimate of the information provided by the provider system 102 when the provider system 102 generated the provider data objects based on the NDC-based data exchange.
[0109] It should also be understood that training of the one or more machine learning algorithms 212 may occur periodically, etc., as newer provider data objects 404, 406 are added to the historical provider data object data 402 (e.g., and / or as older provider data objects 404, 406 are removed from the historical provider data object data 402).
[0110] Furthermore, such training may include, but is not limited to, applying principles of generative modeling to training. For example, in a specific example, one or more machine learning algorithms 212 may include a neural network that is trained to generate NDC-based data exchange results (such as NDC quotes) from GDS-based data exchange inputs (such as Edifact recommendations). In other words, the provider data objects 404 used as training inputs may include Edifact recommendations, etc., and the corresponding provider data objects 406 used as training outputs may include NDC quotes, etc.
[0111] In some of these examples, one or more of the provider data objects 404 and corresponding provider data objects 406 can be vectorized (e.g., placed in a neutral format in which identifiers of the original provider system 102 are removed) before being used as training input and training output, respectively.
[0112] Furthermore, in some of these examples, a discriminator model (e.g., a component of one or more machine learning algorithms 212) can be trained to classify the origin of a provider data object 404, 406 from the provider data object 404, 406 itself, e.g., without needing to know which provider system 102 provided the provider data object 404, 406. Such training can occur by providing multiple sets of provider data objects 404, 406 as training data, along with indicators indicating the formats in which the provider data objects 404, 406 are employed. Thus, the discriminator model will generally "learn" the characteristics of each format, enabling the discriminator model to subsequently identify to which format a provider data object 404, 406 belongs (e.g., to which standard type a provider data object 404, 406 belongs).
[0113] In addition, a generator model (e.g., a component of one or more machine learning algorithms 212) can be trained to adjust (e.g., transform) a provider data object from one standard type to another standard type. Such training can be accomplished by the generator model "competing" with a discriminator model. For example, the generator model can attempt to adjust (e.g., transform) a provider data object from a first standard type to a second standard type, and the discriminator model can classify the resulting provider data object as being of the first standard type or of the second standard type. For example, the discriminator model can output a score, such as a score between 0 and 100, among other possibilities, indicating whether the provider data object output by the generator model is of the first standard type (e.g., a "0" score) or the second standard type (e.g., a "100" score), or somewhere in between. Such a score can be provided as feedback to the generator model, which will "learn" accordingly to better adjust provider data objects of the first standard type to the second standard type.
[0114] Furthermore, such training may be specific to a given provider system 102 (e.g., a given neural network may be specific to a given provider system 102, and one or more machine learning algorithms may include multiple neural networks in a one-to-one relationship with multiple provider systems 102, or any other suitable number).
[0115] Furthermore, such training may be specific to a given provider data object 404, 406 for different dates and times, and / or different combinations of departure and destination airports, and / or any other suitable factors of the provider data object 404, 406. In other words, the one or more machine learning algorithms 212 may be configured to perform the adjustment functions as described herein with respect to, for example, dates and / or times of flights, and / or different combinations of departure and destination airports, associated with the provider data objects used as input to the one or more machine learning algorithms 212.
[0116] It is further understood that the provider data objects 404, 406 (e.g., and the corresponding differences 408) can be used to generate programming instructions for one or more programming algorithms 210 to provide the adjustment functionality described herein. For example, the provider data objects 404, 406 (e.g., and the corresponding differences 408) can be analyzed, and programming instructions can be generated for one or more programming algorithms 210 that receive a provider data object generated according to a first standard type and output a corresponding provider data object that includes an estimate of the information provided by the provider system 102 when the provider system generated the provider data object according to a second standard type. The one or more programming algorithms 210 can be periodically updated when newer provider data objects 404, 406 are added to the historical provider data object data 402 (e.g., and / or when older provider data objects 404, 406 are removed from the historical provider data object data 402), etc. The one or more programming algorithms 210 can perform similar functions as described above with respect to the one or more machine learning algorithms 212.
[0117] Thus, it should be understood that while the historical provider data object data 402 is described with respect to provider data objects 404, 406 generated by the provider system 102, the historical provider data object data 402 may include provider data objects generated by other provider systems 102, and the one or more programming algorithms and / or one or more machine learning algorithms 212 may include programming algorithms and / or machine learning algorithms that are specific to the provider system 102.
[0118] like Figure 4 As depicted in , the system 100 also includes a memory 410 that stores published provider data objects 412 generated by the provider system 102 according to a first standard type, such as a GDS-based data exchange.
[0119] Memory 410 may be separate from intermediary server 108 and / or intermediary server 108 may at least partially comprise memory 410 (eg, at least a portion of data stored at memory 410 may be stored at memory 204 ).
[0120] Similarly, the memory 410 can be separate from the provider system 102 and / or the provider system 102 can at least partially comprise the memory.
[0121] Regardless, the intermediary server 108 can access the memory 410 and / or published provider data objects 412. The intermediary server 108 can receive the search criteria from the client device 104 and use the search criteria to search for the published provider data objects 412 using one or more retrieval algorithms 214, 216, e.g., rather than requesting provider data objects (e.g., generated according to a second criteria type, such as an NDC quote) from the provider system 102 that meet the search criteria.
[0122] As will be described below, the intermediary server 108 adjusts the published provider data object 412 retrieved from the memory 410 to include an estimate of the information provided by the provider system 102 when the provider system 102 generated the provider data object that satisfied the search criteria according to the second criteria type, and, in response to receiving the search criteria, provides the adjusted provider data object to the client device 104. This processing may occur in conjunction with the request step 302-1; when the client device 104 later selects and attempts to subscribe to the provided adjusted provider data object at the selection step 302-2 and / or subscription step 302-3, the intermediary server 108 may then request the provider data object from the provider system 102.
[0123] Now pay attention Figure 5 , which depicts a flow diagram representing a method 500 for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data. Figure 5 The operations of the method 500 correspond to machine-readable instructions executed by the intermediary server 108 (specifically, the controller 202 of the intermediary server 108). In the example shown, Figure 5 The instructions represented by the blocks in are stored at memory 204 , for example, as application 206 . Figure 5 The method 500 is one way in which the controller 202 and / or the intermediary server 108 and / or the system 100 may be configured. Figure 5 A discussion of method 500 will help further understand system 100 and its various components.
[0124] However, the method 500 is further described with respect to implementation by one or more computing devices, as the functionality described with respect to the method 500 may be implemented by the intermediary server 108 and / or one or more cloud computing devices, one or more servers, and the like.
[0125] Similarly, method 500 is further described with respect to an implementation using one or more memories, such as data stored at memories 204, 400, 410 can be stored at one of memories 204, 400, 410, or at two or more of memories 204, 400, 410, and / or memories 204, 400, 410 can be separate from each other, or at least partially integrated.
[0126] Figure 5 The method 500 of the embodiment of the present invention need not be executed in the exact order shown. Likewise, the various blocks may be executed in parallel rather than in sequence. Therefore, the elements of the method 500 are referred to herein as “blocks” rather than “steps”. Figure 5 Method 500 can also be used in Figure 1 and Figure 5 is implemented on a variation of system 100 .
[0127] It should be appreciated that method 500 can generally result in fewer requests for provider data objects being provided to provider system 102 at request step 302-1, thereby reducing bandwidth usage of system 100. In fact, it should be appreciated that request step 302-1 can be replaced with aspects of method 500.
[0128] At block 502, the controller 202 and / or the intermediary server 108 and / or one or more computing devices maintain historical provider data object data 402 representing differences 408 between provider data objects 404, 406 generated by one or more provider systems 102 according to a first standard type and a second standard type, the provider data objects 404, 406 representing respective items provided by the one or more provider systems 102. The provider data objects 404, 406 may be from any provider system 102.
[0129] For example, the intermediary server 108 may maintain historical provider data object data 402 at the memory 400 as described above.
[0130] At block 504, the controller 202 and / or the intermediary server 108 and / or one or more computing devices receive a request from the client device 104 (e.g., via the communication interface 208) for a provider data object 412 representing a provider data object provided by the provider system 102 (e.g., Figure 4 At least one item provided by the provider system 102 depicted in .
[0131] For example, when client device 104 is implementing request step 302-1, intermediary server 108 may receive a request from client device 104 that includes search criteria for provider data objects, which may correspond to criteria for flights between a departure airport and / or city and a destination airport and / or city on a given date (e.g., and / or any other suitable search criteria, including but not limited to searching for return flights).
[0132] At block 506 , the controller 202 and / or the intermediary server 108 and / or one or more computing devices retrieves the provider data object 412 generated according to the first standard type from one or more memories, such as the memory 410 .
[0133] For example, the intermediary server 108 may use one or more retrieval algorithms 214, 216 to search the memory 410 for published provider data objects 412 that satisfy the search criteria received from the client device 104, and retrieve the provider data objects 412 that satisfy the search criteria. Although the following describes the retrieval of one provider data object 412, it should be understood that more than one provider data object 412 may be retrieved.
[0134] It should also be understood that the controller 202 and / or the intermediary server 108 may select a retrieval algorithm 214, 216 for retrieving the provider data object 412 from the memory 410; such selection will be described in greater detail below.
[0135] At box 508, the controller 202 and / or the intermediary server 108 and / or the one or more computing devices adjust the provider data object 412 generated according to the first standard type based on the historical provider data object data 402, so that the adjusted provider data object 412 (also referred to as the adjusted provider data object) includes an estimate of the information provided by the provider system 102 when the provider system 102 generated the provider data object according to the second standard type.
[0136] For example, adjusting a provider data object 412 generated according to a first criteria type based on historical provider data object data 402 such that the adjusted provider data object 412 includes an estimate of information provided by the provider system 102 when the provider system 102 generates a provider data object according to a second criteria type may include, but is not limited to:
[0137] - Adjusting the price of provider data object 412. For example, historical provider data object data 402 may indicate that provider data objects 404, 406 have different prices (these prices may also be indicated in corresponding differences 408). For example, the price of corresponding provider data object 406 generated according to the second standard type may generally be higher (or lower) than provider data object 404 by a given percentage and / or a given amount, etc. Accordingly, the price of provider data object 412 may be adjusted based on the given percentage and / or given amount.
[0138] Adjusting the content of provider data object 412. For example, historical provider data object data 402 may indicate that provider data objects 404 and 406 have different associated services (these services may also be indicated in corresponding differences 408). For example, continuing with the travel-related example, corresponding provider data object 406 generated according to the second standard type may generally include checked luggage, etc., or any other suitable services, while provider data object 412 generated according to the first standard type may not specify checked luggage or other suitable services. Accordingly, the content of provider data object 412 may be adjusted to include such services and / or content.
[0139] However, adjusting the provider data object 412 at block 506 may include any suitable adjustments indicated by the differences 408 in the provider data objects 404 , 406 stored in the historical provider data object data 402 .
[0140] Furthermore, such differences 408 may also be specific to provider data objects 404, 406 that also satisfy the search criteria provided by the client device 104. For example, the controller 202 and / or the intermediary server 108 and / or one or more computing devices (e.g., and / or one or more programming algorithms 210 and / or one or more machine learning algorithms 212) may be more specifically configured to adjust the provider data object 412 based on the provider data objects 404, 406 that also satisfy the search criteria received from the client device 104.
[0141] It should also be understood that one or more programmed algorithms 210 or one or more machine learning algorithms may be selected by the controller 202 and / or the intermediary server 108 and / or one or more computing devices to perform the adjustments; such selection will be described in more detail below.
[0142] At block 510 , the controller 202 and / or the intermediary server 108 and / or one or more computing devices provide the adjusted provider data object 412 to the client device 104 (eg, via the communication interface 208 ).
[0143] In particular, the controller 202 and / or the intermediary server 108 and / or one or more computing devices may return the adjusted provider data object 412 in response to the request received at block 504 .
[0144] Thereafter, the client device 104 may implement a selection step 302-2, which may cause the client device 104 to request the final price, etc., for the provider data object 412 from the intermediary server 108. The intermediary server 108 receives the request for the final price, etc. and requests the provider system 102 for a final provider data object corresponding to the adjusted provider data object 412. The request for the final provider data object may include conditions specific to the adjusted provider data object 412, such as a particular flight number, date and time, departure and destination airports, etc. (e.g., and such conditions may be received from the client device 104 when implementing the selection step 302-2).
[0145] The provider system 102 may then provide the corresponding provider data object to the intermediary server 108 , which returns the corresponding provider data object to the client device 104 for use in the subscription step 302 - 3 and / or the payment step 302 - 4 .
[0146] It should also be understood that the controller 202 and / or the intermediary server 108 and / or the one or more computing devices may store the provider data object 412 retrieved from the memory 410 at block 506 in association with the corresponding provider data object received from the provider system 102 at the memory 400, e.g., as a new provider data object 404 and a new corresponding provider data object 406, respectively, to update the historical provider data object data 402. In these examples, the controller 202 and / or the intermediary server 108 and / or the one or more computing devices may also determine corresponding differences 408 between the new provider data object 404 and the new corresponding provider data object 406 and store them at the historical provider data object data 402.
[0147] Method 500 may include other features.
[0148] For example, returning to block 508, adjusting the provider data object 412 generated according to the first standard type may occur according to a programmatic adjustment process or a machine learning adjustment process, such as by implementing one or more programmatic algorithms 210 and / or one or more machine learning algorithms 212, respectively, as described herein. In these examples, method 500 may also include:
[0149] - maintaining a record of respective differences between previous provider data objects as adjusted by the programmatic adjustment process and the machine learning adjustment process and corresponding previous provider data objects of the second standard type as generated by the provider system 102; and
[0150] -Based on which of the programmed adjustment processing or the machine learning adjustment processing results in the smallest difference relative to the corresponding previous provider data object of the second standard type as generated by the provider system 102, select the programmed adjustment processing or the machine learning adjustment processing to adjust the provider data object 412 (e.g., at box 508).
[0151] For example, the method 500 may have previously been used to adjust a previous provider data object 412 to include an estimate of information provided by the provider system 102 when the provider system generated the provider data object according to the second standard type using a programmatic adjustment process and / or a machine learning adjustment process (e.g., at block 508). Such a previous provider data object 412 may have been provided to the client device 104 (e.g., at block 510), and the client device 104 may have selected the previous provider data object 412 for subscription (e.g., at the selection step 302-2 and / or the subscription step 302-3), which resulted in the intermediary server 108 requesting the provider system 102 for the provider data object corresponding to the adjusted previous provider data object 412 (e.g., at the selection step 302-2 and / or the subscription step 302-3).
[0152] In fact, in some examples, the controller 202 and / or the intermediary server 108 and / or one or more computing devices may have generated two adjusted versions of the previous provider data object 412: a first previous provider data object adjusted using a programmatic adjustment process and a second previous provider data object adjusted using a machine learning adjustment process. The controller 202 and / or the intermediary server 108 and / or one or more computing devices may compare the two versions of the previous provider data object 412, as adjusted according to the programmatic adjustment process and the machine learning adjustment process, with the provider data object requested from and generated by the provider system 102 to determine respective differences therebetween. These differences may be stored, for example, in the memory 400 and / or another memory, as a record of the differences between the previous provider data object, as adjusted by the programmatic adjustment process and the machine learning adjustment process, and the corresponding previous provider data object of the second standard type, as generated by the provider system 102.
[0153] However, in other examples, the controller 202 and / or the intermediary server 108 and / or one or more computing devices may have used programmed adjustment processing and machine learning adjustment processing at different embodiments of the method 500 and stored corresponding records of the differences between the previous provider data object as adjusted by the programmed adjustment processing or the machine learning adjustment processing and the corresponding previous provider data object of the second standard type as generated by the provider system 102, for example, in the memory 400 and / or another memory.
[0154] Regardless, when method 500 is again implemented, the controller 202 and / or the intermediary server 108 and / or the one or more computing devices may select either the programmed adjustment process or the machine-learned adjustment process to adjust the provider data object 412 at block 508 based on which of the programmed adjustment process or the machine-learned adjustment process results in the smallest difference relative to the corresponding previous provider data object of the second standard type as generated by the provider system 102. In other words, one of the programmed adjustment process or the machine-learned adjustment process may provide a more accurate adjustment at block 508, and the controller 202 and / or the intermediary server 108 and / or the one or more computing devices may select whichever of the programmed adjustment process or the machine-learned adjustment process has historically provided the most accurate adjustment.
[0155] In yet other examples of method 500, and returning again to block 508, adjusting the provider data object 412 generated according to the first standard type may occur according to a programmatic adjustment process or a machine learning adjustment process, such as by implementing one or more programmatic algorithms 210 and / or one or more machine learning algorithms 212, respectively, as described herein. In these examples, method 500 may also include:
[0156] - retrieving from the provider system 102 a corresponding provider data object generated by the provider system 102 according to the second standard type, the corresponding provider data object corresponding to the provider data object 412 retrieved from the one or more memories (e.g., at block 506); and
[0157] -Updating one or more of the programmed adjustment processing and the machine learning adjustment processing based on corresponding differences between the provider data object 412 generated according to the first standard type and retrieved from one or more memories (e.g., at box 506) and the corresponding provider data object generated according to the second standard type.
[0158] Thus, in this example, the controller 202 and / or the intermediary server 108 and / or one or more computing devices can retrieve the provider data object 412 at block 506 and further retrieve a corresponding provider data object of the second standard type from the provider system 102, e.g., as received in conjunction with the client device 104 implementing the selection step 302-2 and / or the subscription step 302-3. In a training mode, the provider data object 412 retrieved at block 506 can be used as a training input for one or more machine learning algorithms 212, and the corresponding provider data object of the second standard type generated and retrieved from the provider system 102 can be used as a training output, e.g., to continue training the one or more machine learning algorithms 212.
[0159] It should also be understood that the provider data object 412 retrieved at block 506 and the corresponding provider data object of the second standard type generated and retrieved from the provider system 102 may alternatively be used to update one or more programming algorithms 210 .
[0160] In yet other examples of method 500, returning to block 506, retrieving the provider data object 412 generated according to the first standard type may occur according to a first search process or a second search process corresponding to the first search algorithm 214 and the second search algorithm 216, respectively. In these examples, method 500 may also include:
[0161] - maintaining a record of respective differences between previous provider data objects generated according to the first standard type retrieved by the first retrieval process and the second retrieval process and corresponding previous provider data objects of the second standard type as generated by the provider system; and
[0162] -Based on which of the first retrieval process and the second retrieval process results in the smallest corresponding difference relative to the corresponding previous provider data object of the second standard type as generated by the provider system 102, select the first retrieval process or the second retrieval process to retrieve the provider data object 412 generated according to the first standard type (e.g., at box 506).
[0163] For example, the method 500 may have been previously used to retrieve corresponding provider data objects 412 using the first retrieval process and the second retrieval process at block 506. At least one of these corresponding previous provider data objects 412 may have been provided to the client device 104 (e.g., at block 510), and the client device 104 may have selected the previous provider data object 412 for subscription (e.g., at the selection step 302-2 and / or the subscription step 302-3), which caused the intermediary server 108 to request the provider data object corresponding to the adjusted previous provider data object 412 from the provider system 102 (e.g., at the selection step 302-2 and / or the subscription step 302-3).
[0164] The controller 202 and / or the intermediary server 108 and / or one or more computing devices may compare the two versions of the previous provider data object 412 retrieved using the first retrieval process and the second retrieval process with the provider data object requested and generated by the provider system 102 to determine corresponding differences therebetween. Such differences may be stored, for example, in the memory 400 and / or another memory, as a record of the differences between the previous provider data object 412 of the first standard type, as retrieved, and the corresponding previous provider data object of the second standard type, as generated by the provider system 102.
[0165] Thus, when again implementing the method 500, the controller 202 and / or the intermediary server 108 and / or one or more computing devices may select which of the first retrieval process and the second retrieval process results in a previous provider data object 412 of the first standard type having the smallest corresponding difference relative to a corresponding previous provider data object of the second standard type as generated by the provider system 102. In other words, one of the first retrieval process and the second retrieval process may result in the retrieval of a corresponding provider data object 412 having a smaller difference than a corresponding provider data object subsequently generated by the provider system 102; thus, the first retrieval process or the second retrieval process that historically resulted in such a smaller difference may be selected at block 506.
[0166] In yet other examples of method 500, and returning again to block 508, in some cases, adjusting provider data object 412 can include adjusting provider data object 412 to generate a plurality of provider data objects such that the adjusted plurality of provider data objects includes corresponding estimates of information provided by provider system 102 when provider system 102 generated the plurality of provider data objects according to the second criteria type, the adjusted plurality of provider data objects including the adjusted provider data object (e.g., at block 508). In these examples, block 510 can include providing the adjusted plurality of provider data objects to client device 104.
[0167] For example, instead of using one estimate of information provided by the provider system 102 to adjust the provider data object 412 generated according to the first standard type at box 508, multiple estimates of information provided by the provider system 102 can be used to adjust the provider data object 412 generated according to the first standard type to generate multiple provider data objects of a second standard type, which can be provided to the client device at box 510.
[0168] Thus, rather than adjusting the provider data object 412 retrieved from the memory 410 once at box 508, the controller 202 and / or the intermediary server 108 and / or one or more computing devices may adjust the provider data object 412 retrieved from the memory 410 multiple times, thereby generating multiple provider data objects that include corresponding estimates of information provided by the provider system 102 when the provider system 102 generates the multiple provider data objects according to the second standard type.
[0169] Using the travel-related example again, block 508 may generate multiple “adjusted” provider data objects, e.g., all representing tickets for the same flight (e.g., satisfying the conditions of the request received at block 504), but with different fare classes (e.g., economy class, premium class, first class) and / or including different corresponding services and / or different combinations of services (e.g., one or more of checked baggage, lounge passes, etc.). At block 510, the multiple adjusted provider data objects may be provided to client device 104.
[0170] However, in other examples, the adjusted provider data object produced from block 508 can be used to generate a plurality of additional provider data objects according to the second criteria type (e.g., rather than the provider data object 412 retrieved from memory 410 prior to the adjustment described above). In these examples, method 500 can include controller 202 and / or intermediary server 108 and / or one or more computing devices generating a plurality of additional provider data objects according to the second criteria type from the adjusted provider data object 412, the plurality of additional provider data objects including further evaluations of further information provided by provider system 102 when provider system 102 generated the provider data objects according to the second criteria type, with all of the plurality of additional provider data objects and adjusted provider data object 412 including common information. For example, all of the plurality of additional provider data objects and adjusted provider data object 412 can represent tickets for a given flight, various fare types, and / or service combinations, and such common information can include information defining the flight, including, but not limited to, flight number, date and / or time, departure airport, destination airport, and the like. In such examples, the method 500 includes (eg, at block 510 ) the controller 202 and / or the intermediary server 108 and / or one or more computing devices providing the plurality of additional provider data objects and the adjusted provider data object 412 to the client device 104 .
[0171] In fact, as the following Figure 8 、 Figure 9 、 Figure 10 and Figure 11 As described above, the system 100 may additionally or alternatively be configured to store provider data objects according to a given standard type (e.g., such as a second standard type (e.g., NDC)) at the memory 410, and maintain historical provider data object data representing differences between a single and / or initial provider data object generated by the provider system 102 in response to a previous request according to the given standard type and one or more corresponding provider data objects that represent at least one product and / or item (e.g., such as the same flight) as the single and / or initial provider data object but have been adjusted to include other products and / or items. For example, the single and / or initial provider data object and the one or more corresponding provider data objects share common information representing the same product and / or item (e.g., the same flight), but the single and / or initial provider data object and the multiple provider data objects have differences representing other associated products and / or items (e.g., different fares for different fare classes and / or different services, etc.).
[0172] Thus, in these examples, method 500 may include: maintaining, via the controller 202 and / or the intermediary server 108 and / or the one or more computing devices, additional historical provider data object data representing respective differences between a single provider data object generated by the provider system 102 according to a given standard type (e.g., an exchange based on NDC data, or any other suitable standard type, such as an exchange based on GDS data) and one or more corresponding provider data objects, also generated by the provider system 102, representing at least one item identical to the corresponding single provider data object, the one or more corresponding provider data objects also representing other items; receiving, at the controller 202 and / or the intermediary server 108 and / or the one or more computing devices, another request from the client device 104 for another provider data object, the other provider data object representing at least one item provided by the provider system 102; and receiving, via the controller 202 and / or the intermediary server 108 and / or the one or more computing devices, a request from the one or more storage the controller 202 and / or the intermediary server 108 and / or the one or more computing devices, adjusting the other provider data object retrieved from the one or more memories 410 based on the additional historical provider data object data to generate one or more additional provider data objects, the one or more additional provider data objects including respective estimates of further information provided by the provider system 102 when the provider system 102 generates one or more corresponding additional provider data objects according to the given criteria type using the other condition of the other request, the additional provider data objects representing the given item of the other provider data object and one or more other items different from the item of the other provider data object; and providing the other provider data object and the one or more additional provider data objects from the controller 202 and / or the intermediary server 108 and / or the one or more computing devices to the client device 104.
[0173] Now refer to Figure 6 and Figure 7 To describe an example of aspects of method 500, Figure 6 and Figure 7 and Figure 4 Substantially similar, where like components have like reference numerals.
[0174] Notice Figure 6 , the client device 104 provides a request 602 for provider data objects to the intermediary server 108, for example at shopping step 302-1. The request 602 is understood to include search criteria, for example, for searching for provider data objects corresponding to flights.
[0175] The intermediary server 108 receives (e.g., at block 504 of the method 500) the request 602, and rather than querying the provider system 102 for the provider data object, the intermediary server 108 provides the request 604 to the memory 410 and retrieves (e.g., at block 506 of the method 500) the provider data object 412 from the memory 410. Retrieving the provider data object 412 from the memory 410 is understood to occur using the first retrieval algorithm 214 and / or the second retrieval algorithm 216.
[0176] Provider data objects 412 are understood to contain provider data objects that satisfy the search criteria of request 602, and request 604 may also include the search criteria of request 602. Provider data objects 412 are understood to have been generated according to a first standard type, such as the aforementioned GDS-based interchange format.
[0177] The intermediary server 108 adjusts (e.g., at box 508 of method 500) the provider data object 412 retrieved from the memory 410, for example using one or more programmed algorithms 210 and / or one or more machine learning algorithms 212 (e.g., corresponding to a programmed adjustment process and / or a machine learning adjustment process) to generate an adjusted provider data object 606 (and / or multiple adjusted provider data objects 606), the adjusted provider data object 606 including an estimate of the provider data object 412 retrieved from the memory 410 that is adjusted to include information provided by the provider system 102 when the provider system 102 generates the adjusted provider data object 606 according to the second criteria type using, for example, the search criteria of request 602 and / or request 604. When generating a plurality of adjusted provider data objects 606, the plurality of adjusted provider data objects 606 includes respective estimated provider data objects 412 retrieved from memory 410 that are adjusted to include information provided by provider system 102 when provider system 102 generates the plurality of adjusted provider data objects 606 according to the second criteria type using, for example, the search criteria of request 602 and / or request 604. Such plurality of adjusted provider data objects 606 may be for different fare types and / or include different combinations of one or more services.
[0178] Thus, adjusted provider data object 606 (and / or adjusted provider data objects 606) represents a (e.g., corresponding) estimated provider data object 412 adjusted to include information provided by provider system 102 when provider system 102 generated adjusted provider data object 606 (and / or adjusted provider data objects 606) according to the second criteria type. For example, adjusted provider data object 606 may include an NDC quote and / or a provider data object based on an NDC data exchange format, etc.; however, adjusted provider data object 606 may not include an offer identifier (e.g., such as OfferId and / or OfferID) compared to the NDC quote generated by provider system 102. It is further understood that the price associated with adjusted provider data object 606 may be the same as or different from the corresponding price associated with provider data object 412; for example, when provider data object 412 utilizes a GDS-based exchange format, adjusted provider data object 606 may have the same associated price, or a price that has been adjusted, e.g., to eliminate GDS fees, etc.
[0179] The intermediary server 108 , eg, in response to the request 602 , provides (eg, at block 510 of the method 500 ) the adjusted provider data object(s) 606 to the client device 104 .
[0180] Next, pay attention Figure 7 , the diagram is understood to be in time Figure 6. As depicted, adjusted provider data object(s) 606 have been received at client device 104, and client device 104 provides a request 702 to select an adjusted provider data object 606 (and / or one of the adjusted provider data objects 606) for booking, for example, at selection step 302-2. Request 702 is understood to identify information from adjusted provider data object 606 (and / or the selected adjusted provider data object 606), such as a flight number and / or other information for booking a flight and / or any other suitable information that can be used to book and / or order the item represented by the provider data object. Intermediary server 108 receives request 702 and provides a corresponding request 704 to provider system 102, which returns a corresponding provider data object 706 according to the second standard type; however, compared to adjusted provider data object(s) 606, corresponding provider data object 706 represents the final price and / or final service, etc., for the item represented by the corresponding provider data object 706. The corresponding provider data object 706 may also include an offer identifier (eg, such as OfferId and / or OfferID). The intermediary server 108 provides the corresponding provider data object 706 to the client device 104 so that the client device can subscribe to and / or pay for the corresponding provider data object 706.
[0181] In general, it should be understood that the adjusted provider data object 606 is an estimate of the corresponding provider data object 706. Therefore, any prices and / or services represented by the adjusted provider data object 606 are understood to be estimates of the corresponding prices and / or services represented by the corresponding provider data object 706. However, the corresponding provider data object 706 may still contain prices and / or services that differ from the prices and / or services of the adjusted provider data object 606.
[0182] As depicted, the intermediary server 108 also stores the provider data objects 412 retrieved from the memory 410 and the corresponding provider data objects 706 received from the provider system 102 as a set of new provider data objects 404 and corresponding provider data objects 406, respectively, at the historical provider data object data 402, e.g., for use in updating the one or more programming algorithms 210 and / or the one or more machine learning algorithms 212 (e.g., the provider data objects 412 retrieved from the memory 410 may include the new provider data objects 404, and the corresponding provider data objects 706 received from the provider system 102 may include the corresponding provider data objects 406 stored in association with each other at the historical provider data object data 402). This storage is an example of block 502 of the method 500.
[0183] Thus, one or more programming algorithms 210 and / or one or more machine learning algorithms 212 can be updated in a feedback loop. Such a feedback loop can include a machine learning feedback loop that can include checking the estimated quality of the adjusted provider data object 606. For example, when the one or more machine learning algorithms 212 generate the adjusted provider data object 606, the one or more machine learning algorithms 212 can output a score indicating the quality of the adjusted provider data object 606, which can be used to determine whether to store the provider data object 412 and the corresponding provider data object 706 in the memory 400 (e.g., in the historical provider data object data 402). For example, the score can be between 0 and 100, among other possibilities, with 0 representing the worst quality and 100 representing the highest quality, and when the score is above a threshold score (such as 85, 90, or 95, among other possibilities), the provider data object 412 and the corresponding provider data object 706 can be stored in the memory 400; and when the score is below the threshold score, the provider data object 412 and the corresponding provider data object 706 can not be stored in the memory 400. In some examples, the score may be generated based on feedback received from the client device 104 , such as when an operator of the client device 104 is asked to provide such a score.
[0184] Furthermore, in the event that the score of the adjusted provider data object 606 is above the threshold score, the provider data object 412 and the corresponding provider data object 706 associated with the adjusted provider data object 606 may be stored in the historical provider data object data 402 along with the differences 408 therebetween as examples that may be used to further train one or more machine learning algorithms 212.
[0185] However, in the event that the score of the adjusted provider data object 606 is below the threshold score, the provider data object 412 and the corresponding provider data object 706 associated with the adjusted provider data object 606 may not be stored in the historical provider data object data 402, and / or the provider data object 412 and the corresponding provider data object 706 associated with the adjusted provider data object 606 may be stored in the historical provider data object data 402 as negative training examples (e.g., examples that would not be generated by the one or more machine learning algorithms 212). In addition, when the score is below the threshold score (and / or below a second threshold score that is lower than the threshold score (e.g., 30, 40, 50, and other possibilities)), the one or more machine learning algorithms 212 may be retrained using the provider data objects 404 and 406 stored in the memory 400. In some of these examples, such retraining of the one or more machine learning algorithms 212 may be performed when a given number (e.g., 2, 3, 4, and other possibilities) of adjusted provider data objects 606 whose scores are below the threshold score (and / or below the second threshold score) are generated consecutively.
[0186] Next, pay attention Figure 8 , the figure is similar to Figure 4 are substantially similar, with identical components bearing identical reference numbers. Figure 8 In the embodiment of the present invention, system 100 is adapted to include, for example, additional historical provider data object data 802 stored at memory 400 in addition to historical provider data object data 402; although the details of historical provider data object data 402 are not depicted, they are understood to be present. Furthermore, although historical provider data object data 402 and additional historical provider data object data 802 are depicted as separate from each other, historical provider data object data 402 and additional historical provider data object data 802 may be combined.
[0187] The additional historical provider data object data 802 includes historical provider data object data 802, which, as depicted, includes "M" provider data objects 804-1...804-M (e.g., one provider data object 804 and / or multiple provider data objects 804) generated according to a given standard type (e.g., such as NDC-based data exchange), and "M" corresponding provider data objects 806-1...806-M (e.g., one corresponding provider data object 806 and / or multiple corresponding provider data objects 806) that share common information with the corresponding provider data objects 804.
[0188] Furthermore, the number "M" of provider data objects 804, 806 (e.g., and corresponding differences 808) can be any suitable number and can be on the order of thousands, millions, hundreds of millions, etc. In practice, the number "M" of provider data objects 804, 806 (e.g., and corresponding differences 808) can vary over time, and the intermediary server 108 can maintain the provider data objects 804, 806 (e.g., and corresponding differences 808) only for a given period of time, such as one week, where provider data objects 804, 806 (e.g., and corresponding differences 808) older than one week are discarded. However, it is within the scope of this description for any suitable number of provider data objects 804, 806 (e.g., and corresponding differences 808) to be stored for any suitable period of time.
[0189] A given provider data object 804 may represent a single and / or initial provider data object generated by the provider system 102 according to a given standard type in response to a request from a client device 104, and a corresponding provider data object 804 may represent at least one product and / or item identical to the single and / or initial provider data object, but adjusted to include additional products and / or items, as previously described. Optionally, as depicted, the memory 400 may store corresponding differences 808-1 ... 808-M (e.g., one difference 808 and / or a plurality of differences 808) between the provider data object 804 and the corresponding provider data object 804.
[0190] Using the travel-related example again, a given provider data object 804 may represent a flight ticket generated by provider system 102 that satisfies the conditions previously requested by client device 104, e.g., according to a given fare class that may or may not include additional services, e.g., fare classes and services that satisfy the conditions requested by client device 104. A corresponding provider data object 806 may represent a ticket for the same flight, also generated by provider system 102, but with a different fare class and / or including additional services; for example, in these examples, provider system 102 may have previously provided the given provider data object 804 in response to a request from client device 104, and further provided the corresponding provider data object 806 to client device 104 to offer alternate fare classes and / or services for the flight (e.g., to provide the user of client device 104 with flight options in addition to the options that satisfy the request from client device 104).
[0191] It is further understood that one or more provider data objects 804 may be the same provider data object 804, with different associated corresponding provider data objects 806 representing different combinations of other products and / or services. Alternatively, a given provider data object 804 may be stored in association with more than one corresponding provider data object 806 (and corresponding differences), e.g., because the provider system 102 may provide more than one alternative corresponding provider data object 806 in response to a request from a client device 104.
[0192] In addition, Figure 8 In the example embodiment, the memory 410 stores the provider data object 812 in the same given format as the provider data object 804 that the provider system 102 has previously provided and / or published.
[0193] Furthermore, while as depicted, the intermediary server 108 may also determine corresponding differences 808 between the provider data objects 804 , 806 (eg, such as price differences, service differences, etc.), determining and storing corresponding differences 808 may be optional.
[0194] The additional historical provider data object data 802 can be used, for example, in a training mode to train one or more machine learning algorithms 212. In particular, the provider data objects 804 can be used as training inputs to the one or more machine learning algorithms 212 in the training mode, and the corresponding provider data objects 806 and / or corresponding differences 808 can be used as training outputs to the one or more machine learning algorithms 212 in the training mode, e.g., to generate additional provider data objects in a given format from the provider data objects 812 in a given format retrieved from the memory 410.
[0195] It should also be understood that training of the one or more machine learning algorithms 212 may occur periodically, etc., as newer provider data objects 804, 806 are added to the additional historical provider data object data 802 (e.g., and / or as older provider data objects 804, 806 are removed from the additional historical provider data object data 802).
[0196] Now pay attention Figure 9 , which depicts a flow diagram representing a method 900 for reducing bandwidth usage by performing provider data object adjustments at an intermediary server based on historical data. Figure 9 The operations of the method 900 correspond to machine-readable instructions executed by the intermediary server 108 (specifically, the controller 202 of the intermediary server 108). In the example shown, Figure 9 The instructions represented by the blocks in are stored at memory 204, for example, as application 206 or another application (not depicted). Figure 9 The method 900 is one way in which the controller 202 and / or the intermediary server 108 and / or the system 100 may be configured. Figure 9 A discussion of method 900 will help further understand system 100 and its various components.
[0197] However, the method 900 is further described with respect to implementation by one or more computing devices, as the functionality described with respect to the method 900 may be implemented by the intermediary server 108 and / or one or more cloud computing devices, one or more servers, etc.
[0198] Similarly, method 900 is further described with respect to implementation using one or more memories, such as data stored at memories 204, 400, 410 can be stored at one of memories 204, 400, 410, or at two or more of memories 204, 400, 410, and / or memories 204, 400, 410 can be separated from each other, or at least partially integrated.
[0199] Figure 9 The method 900 of the embodiment of the present invention need not be executed in the exact order shown. Likewise, the various blocks may be executed in parallel rather than in sequence. Therefore, the elements of the method 900 are referred to herein as “blocks” rather than “steps.” Figure 9 The method 900 can also be used in Figure 1 and Figure 9 is implemented on a variation of system 100 .
[0200] It should be appreciated that method 900 can generally result in fewer requests for provider data objects being provided to provider system 102 at request step 302-1, thereby reducing bandwidth usage of system 100. In fact, it should be appreciated that request step 302-1 can be replaced with aspects of method 900.
[0201] Furthermore, in general, method 900 may provide similar functionality as method 500, but using provider data objects that are all in the same given format, and adjusting the details of method 500 accordingly.
[0202] At block 902, the controller 202 and / or the intermediary server 108 and / or one or more computing devices maintain historical provider data object data 802 representing differences between a single provider data object 804 generated by a provider system 102 according to a given standard type and one or more corresponding provider data objects 806, also generated by the provider system 102, representing at least one item identical to the corresponding single provider data object 804, and also representing additional items. The provider data objects 804, 806 may be from any provider system 102. The given standard type may include NDC-based data exchange, GDS-based data exchange, and / or any other suitable standard.
[0203] At block 904 , the controller 202 and / or the intermediary server 108 and / or one or more computing devices receive a request from the client device 104 for a provider data object representing at least one item provided by the provider system 102 .
[0204] At block 906 , the controller 202 and / or the intermediary server 108 and / or the one or more computing devices retrieve from the one or more memories 410 the provider data objects 812 of the given standard type that meet the request conditions.
[0205] At box 908, the controller 202 and / or the intermediary server 108 and / or one or more computing devices adjust the provider data objects retrieved from the one or more memories 410 (e.g., at box 906) based on the historical provider data object data 802 to generate one or more additional provider data objects that include an estimate of the information provided by the provider system 102 when the provider system 102 generates one or more corresponding additional provider data objects according to a given criteria type using the conditions of the request (e.g., of box 904), additional provider data objects that represent at least one item that is the same as the provider data object (e.g., retrieved at box 906), additional provider data objects that represent at least one item that is the same as the provider data object (e.g., retrieved at box 906), and one or more other items that are different from the items of the provider data object.
[0206] At block 910 , the controller 202 and / or the intermediary server 108 and / or one or more computing devices provide the provider data object and one or more additional provider data objects to the client device 104 .
[0207] In some examples, one or more programming algorithms 210 and / or one or more machine learning algorithms 212 can be adapted to implement method 900 and / or at least block 910 and adapt the scores and feedback loops described above accordingly. Similarly, retrieval algorithms 214, 216 can be adapted to implement at least block 906.
[0208] Now about Figure 10 and Figure 11 Describing examples of aspects of method 900, Figure 10 and Figure 11 and Figure 8 In addition, the method 900 is described with respect to the provider data objects 804, 806, 812 being of a given standard type comprising an NDC-based data exchange format, and the provider data object 412 being of a different standard type comprising a GDS-based data exchange format.
[0209] Notice Figure 10 , the client device 104 provides a request 1002 for provider data objects to the intermediary server 108, for example at shopping step 302-1. The request 1002 is understood to include search criteria, for example, for searching for provider data objects corresponding to flights.
[0210] The intermediary server 108 receives (e.g., at block 904 of the method 900) the request 1002, and rather than querying the provider system 102 for the provider data object, the intermediary server 108 provides the request 1004 to the memory 410 and retrieves (e.g., at block 906 of the method 900) the provider data object 812 from the memory 410. Retrieving the provider data object 812 from the memory 410 may occur using the first retrieval algorithm 214 and / or the second retrieval algorithm 216.
[0211] It should be understood in these examples that request 1002 may be provided according to an NDC-based data exchange format (e.g., the same given standard as provider data object 812), and thus, rather than retrieving provider data object 412 (which may be, for example, in a GDS-based data exchange format), request 1004 may be used to retrieve provider data object 812 of an NDC standard type.
[0212] Provider data objects 812 are understood to include provider data objects that satisfy the search criteria of request 1002, and request 1004 may also include the search criteria of request 1002. Provider data objects 812 are understood to represent a given item, such as a flight and / or a flight ticket for a given fare class, and / or represent a combination of one or more services associated with a flight.
[0213] The intermediary server 108 adjusts (e.g., at block 908 of method 900) the provider data objects 812 retrieved from the memory 410, e.g., using one or more programmatic algorithms 210 and / or one or more machine learning algorithms 212 (e.g., corresponding to a programmatic adjustment process and / or a machine learning adjustment process) to generate one or more additional corresponding provider data objects 1006. The one or more adjusted provider data objects 1006 are understood to include an estimate of the information provided by the provider system 102 when the provider system 102 generated the adjusted provider data objects 1006 using, for example, the search criteria of the request 1002 and / or the request 1004.
[0214] However, in general, the one or more additional corresponding provider data objects 1006 represent at least one identical item of the provider data object 812 retrieved from memory 410, such as the same flight, and one or more other corresponding items that are different from the items of the provider data object 812, such as a different fare (e.g., and / or a different fare class) and / or a combination of one or more services that are different from the services represented by the provider data object 812 retrieved from memory 410.
[0215] The intermediary server 108 , eg, in response to the request 1002 , provides (eg, at block 910 of the method 900 ) the provider data object 812 retrieved from the memory 410 , along with one or more additional corresponding provider data objects 1006 , to the client device 104 .
[0216] Next, pay attention Figure 11 , the diagram is understood to be in time Figure 10As depicted, the provider data object 812 retrieved from the memory 410 and one or more additional corresponding provider data objects 1006 have been received at the client device 104, and the client device 104 provides a request 1102 to select the provider data object 812 retrieved from the memory 410, or to select one or more additional corresponding provider data objects 1006 for booking, for example, at the selection step 302-2. The request 1102 is understood to identify information from the selected provider data objects 812, 1006, such as a flight number and / or other information for booking a flight and / or any other suitable information that can be used to book and / or order the item represented by the provider data object. The intermediary server 108 receives the request 1102 and provides a corresponding request 1104 to the provider system 102. The provider system 102 returns a corresponding provider data object 1106 according to the given standard type; however, compared to the selected provider data object 812, 1006, the corresponding provider data object 1106 represents the final price and / or final service, etc., of the item represented by the selected provider data object 812, 1006. The corresponding provider data object 1106 may also include an offer identifier (e.g., such as OfferId and / or OfferID). The intermediary server 108 provides the corresponding provider data object 1106 to the client device 104 so that the client device can reserve and / or pay for the corresponding provider data object 1106.
[0217] In general, it should be understood that the selected provider data object 812, 1006 is an estimate of the corresponding provider data object 1106. Therefore, any prices and / or services represented by the selected provider data object 812, 1006 are understood to be estimates of the corresponding prices and / or services represented by the corresponding provider data object 1106. However, the corresponding provider data object 1106 may still contain prices and / or services that differ from the prices and / or services of the selected provider data object 812, 1006.
[0218] As depicted, the intermediary server 108 also stores the selected provider data objects 812, 1006 retrieved from the memory 410 and the corresponding provider data objects 1106 received from the provider system 102 as a set of new provider data objects 804 and corresponding provider data objects 806, respectively, at the additional historical provider data object data 802, e.g., for use in updating the one or more programming algorithms 210 and / or the one or more machine learning algorithms 212 (e.g., the selected provider data objects 812, 1006 retrieved from the memory 410 may include the new provider data objects 804, and the corresponding provider data objects 1106 received from the provider system 102 may include the corresponding provider data objects 806 stored in association with each other at the additional historical provider data object data 802). This storage is an example of block 902 of the method 900.
[0219] It should now be apparent that the operations and functions of the devices described herein are so complex that they require implementation on a computer system and are not practically performable within the human mind. In particular, computing devices such as those described herein are understood to require and provide for speed, accuracy, and complexity management that is unattainable by human mental processes, as well as the inherent digital nature of such operations (e.g., the human mind cannot directly interact with RAM or other digital storage, cannot transmit or receive electronic messages, and cannot perform the other features and functions described herein).
[0220] Throughout this specification, an element may be described as being "configured to" perform one or more functions or as being "configured for" such functions. Generally speaking, an element configured to perform or configured for performing a function is enabled to perform the function, is suitable for performing the function, is adapted to perform the function, is operable to perform the function, or is otherwise capable of performing the function.
[0221] It should be understood that for the purposes of this specification, the expressions "at least one of X, Y, and Z" and "one or more of X, Y, and Z" can be interpreted as any combination of only X, only Y, only Z, or two or more of X, Y, and Z (e.g., XYZ, XY, YZ, XZ, etc.). Similar logic can be applied to two or more items in any expression of "at least one of..." and "one or more of..."
[0222] The terms "about," "substantially," "essentially," "approximately," and the like are defined as "close to," for example, as understood by one skilled in the art. In some examples, these terms are understood to mean "within 10%," in other examples, "within 5%," in still other examples, "within 1%," and in still other examples, "within 0.5%."
[0223] Those skilled in the art will recognize that, in some examples, the functions of the devices and / or methods and / or processes described herein can be implemented using pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.) or other related components. In other examples, the functions of the devices and / or methods and / or processes described herein can be implemented using a computing device that can access a code memory (not shown) that stores computer-readable program code for the operation of the computing device. The computer-readable program code can be stored on a computer-readable storage medium that is fixed, tangible, and directly readable by these components (e.g., a removable disk, CD-ROM, ROM, fixed disk, USB drive). In addition, it should be recognized that the computer-readable program can be stored as a computer program product that includes a computer-usable medium. In addition, a permanent storage device can include a computer-readable program code. It should also be recognized that the computer-readable program code and / or computer-usable medium can include non-transient computer-readable program code and / or non-transient computer-usable medium. Alternatively, the computer readable program code may be stored remotely but transmitted to the components via a modem or other interface device connected to a network (including but not limited to the Internet) via a transmission medium. The transmission medium may be a non-movable medium (e.g., optical and / or digital and / or analog communication lines) or a moving medium (e.g., microwave, infrared, free space optical or other transmission schemes), or a combination thereof.
[0224] Those skilled in the art will recognize that there are many more possible alternative examples and modifications, and that the above examples are merely illustrations of one or more examples. Accordingly, the scope is limited only by the appended claims.
Claims
1. A method comprising: maintaining, via one or more computing devices, historical provider data object data representing differences between provider data objects generated by one or more provider systems according to a first criteria type and a second criteria type, the provider data objects representing respective items provided by the one or more provider systems; receiving, at the one or more computing devices, a request from a client device for a provider data object, the provider data object representing at least one item provided by a provider system; retrieving, via the one or more computing devices, from one or more memories, a provider data object generated according to a first standard type; adjusting, via the one or more computing devices, a provider data object generated according to the first standard type based on the historical provider data object data, such that the adjusted provider data object includes an estimate of information provided by the provider system when the provider system generated the provider data object according to the second standard type, the estimate of information including an estimate of the provider data object data for the provider data object according to the second standard type based on the difference; as well as The adapted provider data object is provided from the one or more computing devices to the client device.
2. The method of claim 1 , wherein adjusting the provider data object generated according to the first standard type comprises one or more of: Adjusting prices for Provider Data Objects; and Adjust the content of a provider data object.
3. The method of claim 1 or claim 2, wherein adjusting the provider data object generated according to the first standard type occurs according to a programmed adjustment process or a machine learning adjustment process, and the method further comprises: maintaining a record of respective differences between the prior provider data objects adjusted by the programmatic adjustment process and the machine learning adjustment process and the corresponding prior provider data objects of the second standard type generated by the provider system; as well as Based on which of the programmed adjustment process or the machine learning adjustment process results in a minimum corresponding difference relative to a corresponding previous provider data object of a second standard type generated by the provider system, the programmed adjustment process or the machine learning adjustment process is selected to adjust the provider data object.
4. The method of any one of claims 1 to 3, wherein adjusting the provider data object generated according to the first standard type occurs according to a programmed adjustment process or a machine learning adjustment process, and the method further comprises: retrieving from the provider system a corresponding provider data object generated by the provider system according to a second standard type and corresponding to the provider data object retrieved from the one or more memories; as well as One or more of the programmed adjustment process and the machine learning adjustment process are updated based on respective differences between the provider data objects generated according to the first standard type and retrieved from the one or more memories and the corresponding provider data objects generated according to the second standard type.
5. A method according to any one of claims 1 to 4, wherein retrieving provider data objects generated according to the first standard type occurs according to a first retrieval process or a second retrieval process, and the method further comprises: maintaining a record of respective differences between previous provider data objects generated according to the first standard type retrieved by the first retrieval process and the second retrieval process and corresponding previous provider data objects of the second standard type generated by the provider system; as well as Based on which of the first and second retrieval processes results in a smallest corresponding difference with respect to a corresponding previous provider data object of the second standard type generated by the provider system, the first retrieval process or the second retrieval process is selected to retrieve the provider data object generated according to the first standard type.
6. The method of any one of claims 1 to 5, wherein adjusting the provider data object generated according to the first standard type comprises: adjusting the provider data object to generate a plurality of provider data objects, the plurality of adjusted provider data objects comprising respective estimates of information provided by the provider system when the provider system generated the plurality of provider data objects according to the second criteria type, the plurality of adjusted provider data objects comprising the adjusted provider data objects, And, wherein providing the adjusted provider data object to the client device comprises providing the plurality of adjusted provider data objects to the client device.
7. The method according to any one of claims 1 to 6, further comprising: generating, from the adjusted provider data object, a plurality of additional provider data objects according to the second criteria type, said plurality of additional provider data objects comprising a further estimate of further information provided by the provider system when the provider system generated the provider data object according to the second criteria type, all said plurality of additional provider data objects and the adjusted provider data object comprising common information; and providing the plurality of additional provider data objects to the client device.
8. The method according to any one of claims 1 to 7, further comprising: maintaining, via the one or more computing devices, additional historical provider data object data representing respective differences between a single provider data object generated by a provider system according to a given standard type and one or more corresponding provider data objects, also generated by the provider system, that represent at least one same item as the respective single provider data object, the one or more corresponding provider data objects also representing other items; receiving, at the one or more computing devices, another request from a client device for another provider data object, the another provider data object representing at least one item provided by a provider system; retrieving, from the one or more memories, via the one or more computing devices, the further provider data object of a given standard type that satisfies the further condition of the further request, the further provider data object representing the given item; adjusting, via the one or more computing devices, the another provider data object retrieved from the one or more memories based on additional historical provider data object data to generate one or more additional provider data objects, the one or more additional provider data objects including respective estimates of further information provided by the provider system when the provider system generated one or more corresponding additional provider data objects according to a given criteria type using the another condition of the another request, the additional provider data objects representing a given item of the another provider data object and one or more other items different from the items of the another provider data object; as well as The further provider data object and the one or more additional provider data objects are provided from the one or more computing devices to the client device.
9. The method of any one of claims 1 to 8, wherein the first standard type comprises a data exchange system based on a Global Distribution System (GDS), and the second standard type comprises a data exchange system based on a New Distribution Capability (NDC).
10. A device comprising: Communication interface; as well as The controller is configured as: maintaining historical provider data object data representing differences between provider data objects generated by one or more provider systems according to a first criteria type and a second criteria type, the provider data objects representing respective items provided by the one or more provider systems; receiving, via the communication interface, a request from a client device for a provider data object, the provider data object representing at least one item provided by a provider system; retrieving from one or more memories a provider data object generated according to a first standard type; adjusting a provider data object generated according to the first standard type based on the historical provider data object data, such that the adjusted provider data object includes an estimate of information provided by the provider system when the provider system generated the provider data object according to the second standard type, the estimate of information including an estimate of the provider data object data for the provider data object according to the second standard type based on the difference; as well as The adapted provider data object is provided to the client device via the communication interface.
11. The apparatus of claim 10 , wherein the controller is further configured to adjust the provider data object generated according to the first standard type by one or more of: Adjusting prices for Provider Data Objects; and Adjust the content of a provider data object.
12. The apparatus of claim 10 or claim 11, wherein the controller is further configured to adapt the provider data object generated according to the first standard type according to a programmed adaptation process or a machine learning adaptation process, and the controller is further configured to: maintaining a record of respective differences between the prior provider data objects adjusted by the programmatic adjustment process and the machine learning adjustment process and the corresponding prior provider data objects of the second standard type generated by the provider system; and Based on which of the programmed adjustment process or the machine learning adjustment process results in a minimum corresponding difference relative to a corresponding previous provider data object of a second standard type generated by the provider system, the programmed adjustment process or the machine learning adjustment process is selected to adjust the provider data object.
13. The apparatus of any one of claims 10 to 12, wherein the controller is further configured to adapt the provider data object generated according to the first standard type according to a programmed adaptation process or a machine learning adaptation process, and the controller is further configured to: retrieving from the provider system a corresponding provider data object generated by the provider system according to a second standard type and corresponding to the provider data object retrieved from the one or more memories; and One or more of the programmed adjustment process and the machine learning adjustment process are updated based on respective differences between the provider data objects generated according to the first standard type and retrieved from the one or more memories and the corresponding provider data objects generated according to the second standard type.
14. The apparatus according to any one of claims 10 to 13, wherein the controller is further configured to retrieve a provider data object generated according to the first standard type according to the first retrieval process or the second retrieval process, and the controller is further configured to: maintaining a record of respective differences between previous provider data objects generated according to the first standard type retrieved by the first retrieval process and the second retrieval process and corresponding previous provider data objects of the second standard type generated by the provider system; and Based on which of the first and second retrieval processes results in a smallest corresponding difference with respect to a corresponding previous provider data object of the second standard type generated by the provider system, the first retrieval process or the second retrieval process is selected to retrieve the provider data object generated according to the first standard type.
15. The apparatus of any one of claims 10 to 14, wherein the controller is further configured to adjust the provider data object generated according to the first standard type by: adjusting the provider data object to generate a plurality of provider data objects, the plurality of adjusted provider data objects comprising respective estimates of information provided by the provider system when the provider system generated the plurality of provider data objects according to the second criteria type, the plurality of adjusted provider data objects comprising the adjusted provider data objects, And, wherein providing the adjusted provider data object to the client device comprises providing the plurality of adjusted provider data objects to the client device.
16. The apparatus of any one of claims 10 to 15, wherein the controller is further configured to: generating, from the adjusted provider data object, a plurality of additional provider data objects according to the second criteria type, said plurality of additional provider data objects comprising a further estimate of further information provided by the provider system when the provider system generated the provider data object according to the second criteria type, all said plurality of additional provider data objects and the adjusted provider data object comprising common information; and providing the plurality of additional provider data objects to the client device.
17. The apparatus of any one of claims 10 to 16, wherein the controller is further configured to: maintaining additional historical provider data object data representing respective differences between a single provider data object generated by a provider system according to a given standard type and one or more corresponding provider data objects, also generated by the provider system, representing at least one identical item as the respective single provider data object, the one or more corresponding provider data objects also representing other items; receiving, from the client device, another request for another provider data object, the another provider data object representing at least one item provided by the provider system; retrieving from said one or more memories said further provider data object of a given standard type satisfying another condition of said further request, said further provider data object representing a given item; adjusting said another provider data object retrieved from said one or more memories based on additional historical provider data object data to generate one or more additional provider data objects, said one or more additional provider data objects including respective estimates of further information provided by the provider system when the provider system generated one or more corresponding additional provider data objects according to a given criteria type using said another condition of said another request, said additional provider data objects representing a given item of said another provider data object and one or more other items different from the items of said another provider data object; as well as The further provider data object and the one or more additional provider data objects are provided to the client device.
18. The apparatus of any one of claims 10 to 17, wherein the first standard type comprises a data exchange system based on a Global Distribution System (GDS), and the second standard type comprises a data exchange system based on a New Distribution Capability (NDC).