ES2824472T3 - Procesamiento de consulta de búsqueda - Google Patents
Procesamiento de consulta de búsqueda Download PDFInfo
- Publication number
- ES2824472T3 ES2824472T3 ES17194137T ES17194137T ES2824472T3 ES 2824472 T3 ES2824472 T3 ES 2824472T3 ES 17194137 T ES17194137 T ES 17194137T ES 17194137 T ES17194137 T ES 17194137T ES 2824472 T3 ES2824472 T3 ES 2824472T3
- Authority
- ES
- Spain
- Prior art keywords
- response
- end data
- notification
- search query
- responses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Un método implementado por ordenador para procesar una consulta de búsqueda (60), comprendiendo el método: recibir (102), en uno o más procesadores informáticos (28), la consulta de búsqueda, comprendiendo la consulta de búsqueda criterios de búsqueda; almacenar (104), por el uno o más procesadores informáticos, la consulta de búsqueda en uno o más dispositivos de almacenamiento persistente (32); y realizar periódica y automáticamente, por el uno o más procesadores informáticos, las siguientes operaciones: recuperar (108) la consulta de búsqueda del uno o más dispositivos de almacenamiento persistente, recuperar (110) primeros datos de origen que se refieren la consulta de búsqueda de una o más fuentes de datos de extremo trasero (58), generar (112) una pluralidad de respuestas (62) para la consulta de búsqueda basándose en los primeros datos de origen, determinar si cada una de las respuestas es elegible para notificación (64) basándose en los criterios de búsqueda, y notificar a un usuario de cada notificación de respuesta determinada elegible, caracterizado por que recuperar los primeros datos de origen de la una o más fuentes de datos de extremo trasero usa un algoritmo de optimización iterativo que comprende: recuperar (202) primeros datos de extremo trasero desde una primera de la una o más fuentes de datos de extremo trasero basándose en uno primero de los criterios de búsqueda; filtrar (204) los primeros datos de extremo trasero basándose en un primer umbral de satisfacción y una primera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero; recuperar (206) segundos datos de extremo trasero de una segunda de la una o más fuentes de datos de extremo trasero basándose en uno segundo de los criterios de búsqueda y los primeros datos de extremo trasero filtrados; y filtrar (208) los segundos datos de extremo trasero basándose en un segundo umbral de satisfacción y una segunda porción de los criterios de búsqueda que es relevante para los segundos datos de extremo trasero, en donde los primeros datos de origen están basados en los primeros datos de extremo trasero filtrados y los segundos datos de extremo trasero filtrados.
Description
DESCRIPCIÓN
Procesamiento de consulta de búsqueda
Campo técnico
La presente invención se refiere en general a procesamiento de búsquedas de consulta y, más particularmente, a sistemas, métodos, y productos de programa informático para generar notificaciones para consultas de búsqueda previamente enviadas y almacenadas.
Antecedentes
Internet ha posibilitado un acceso de nivel de información que era anteriormente inalcanzable. Por ejemplo, en la sociedad post Internet, cuando un usuario desea información relacionada con un objeto particular, tal como vuelos disponibles entre un origen y un destino en fechas específicas, él o ella puede simplemente enviar una consulta de búsqueda que describe el objeto a un motor de búsqueda de Internet. En respuesta a la recepción de la consulta de búsqueda, el motor de búsqueda puede rastrear diversas fuentes de datos en Internet de los datos pertinentes a la consulta de búsqueda, procesar los datos y proporcionar los datos procesados al usuario para su revisión. Como alternativa, el motor de búsqueda puede buscar y almacenar en caché datos de las diversas fuentes de datos con antelación de la recepción de la consulta de búsqueda, y a continuación proporcionar los datos almacenados en caché al usuario cuando se recibe la consulta de búsqueda. Bajo cualquier enfoque, desde la perspectiva del usuario, el motor de búsqueda de Internet proporciona al usuario acceso casi instantáneo a varias fuentes de datos remotas mediante una única pasarela. El documento US 2006/0064333 A1 se refiere a un método para procesar una consulta de búsqueda. Un sistema de rastreo y notificación de disponibilidad de producto alerta automáticamente a los clientes de la disponibilidad del producto. El método incluye almacenar y recuperar periódicamente la consulta de búsqueda. El documento US 2016/0239765 A1 se refiere a métodos, sistemas y productos de programa informático para procesar resultados de consulta de base de datos relacionados con viajes. Los resultados de consulta se clasifican basándose en un perfil probabilístico de un viajero. El documento US 2009/0234682 se refiere a un sistema de disponibilidad usado para un sistema de planificación de viaje.
A pesar de estos beneficios, surgen ciertos problemas cuando se utiliza Internet para buscar fuentes de datos remotas. Por ejemplo, mientras que la cantidad de datos disponible mediante Internet es masiva, la cantidad de recursos informáticos y la infraestructura de Internet disponible para comunicar, almacenar y procesar tales datos es relativamente limitada. En consecuencia, existe una tensión inherente entre el suministro de tiempos de respuesta rápidos y el suministro de resultados comprensivos precisos para cada consulta de búsqueda. Adicionalmente, puesto que las fuentes de datos de Internet pueden verse afectadas o ser cambiadas por procesos informáticos originados por cualquier número de usuarios, en prácticamente cualquier ubicación geográfica, y en cualquier momento, los datos devueltos por un motor de búsqueda de Internet pueden ya estar desactualizados o desactualizarse pronto posteriormente.
Por consiguiente, existe una necesidad de sistemas métodos y productos de programa informático mejorados para actualizar consultas de búsqueda previamente enviadas y almacenadas y generar notificaciones basándose en las mismas.
Sumario
En una realización ejemplar, un método para procesar una consulta de búsqueda de acuerdo con la reivindicación 1 incluye recibir la consulta de búsqueda en uno o más procesadores informáticos, y almacenar, por el uno o más procesadores informáticos, la consulta de búsqueda en uno o más dispositivos de almacenamiento persistente. Periódica y automáticamente de manera posterior, el uno o más procesadores informáticos recuperan la consulta de búsqueda del uno o más dispositivos de almacenamiento persistente, recuperan, usando un algoritmo de optimización iterativo, datos de origen que se refieren a la consulta de búsqueda de una o más de las fuentes de datos de extremo trasero, y generan respuestas para la consulta de búsqueda basándose en los datos de origen recuperados. El método incluye adicionalmente determinar si cada una de las respuestas es elegible para notificación basándose en criterios de búsqueda incluidos en la consulta de búsqueda, y notificar a un usuario de cada notificación de respuesta determinada elegible. La una o más fuentes de datos de extremo trasero incluyen múltiples fuentes de datos de extremo trasero, y recuperar los primeros datos de origen de la una o más fuentes de datos de extremo trasero usando el algoritmo de optimización iterativo incluye recuperar primeros datos de extremo trasero de una primera de la una o más fuentes de datos de extremo trasero basándose en uno primero de los criterios de búsqueda. Además, recuperar los primeros datos de origen incluye filtrar los primeros datos de extremo trasero basándose en un primer umbral de satisfacción y una primera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero, recuperar segundos datos de extremo trasero de una segunda de la una o más fuentes de datos de extremo trasero basándose en uno segundo de los criterios de búsqueda y los primeros datos de extremo trasero filtrados, y filtrar los segundos datos de extremo trasero basándose en un segundo umbral de satisfacción y una segunda porción de los criterios de búsqueda que es relevante para los segundos datos de extremo trasero. Los primeros datos de origen están basados en los primeros datos de extremo
trasero filtrados y en los segundos datos de extremo trasero filtrados.
En algunas realizaciones, la consulta de búsqueda puede incluir un punto de terminación, y las operaciones pueden realizarse periódica y automáticamente hasta que se alcance el punto de terminación.
Los primeros datos de extremo trasero pueden incluir múltiples resultados, y filtrar los primeros datos de extremo trasero basándose en el primer umbral de satisfacción y la primera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero puede incluir aplicar una o más primeras funciones difusas que se derivan de la primera porción de los criterios de búsqueda a cada uno de los primeros resultados para calcular un primer valor de satisfacción para cada primer resultado. Filtrar los primeros datos de extremo trasero puede incluir también comparar el primer valor de satisfacción para cada primer resultado con el primer umbral de satisfacción, y filtrar los primeros resultados determinando, como segundos resultados, cada primer resultado para el que el primer valor de satisfacción es mayor que el primer umbral de satisfacción. Además, cada uno de los criterios de búsqueda de la consulta de búsqueda puede estar asociado con un peso, y cada una de la una o más primeras funciones difusas puede estar asociada con una de la primera porción de los criterios de búsqueda. En este caso, aplicar la una o más primeras funciones difusas a cada primer resultado para calcular el primer valor de satisfacción para cada primer resultado puede incluir multiplicar una salida de cada primera función difusa por el peso asociado con el criterio de búsqueda que está asociado con la respectiva primera función difusa.
Filtrar los primeros datos de extremo trasero puede incluir adicionalmente aplicar una o más segundas funciones difusas que se derivan de una tercera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero a cada uno de los segundos resultados para calcular un segundo valor de satisfacción para cada segundo resultado. Filtrar los primeros datos de extremo trasero puede incluir también comparar el segundo valor de satisfacción para cada segundo resultado con un tercer umbral de satisfacción, y filtrar los segundos resultados determinando, como terceros resultados, cada segundo resultado para el que el segundo valor de satisfacción es mayor que el tercer umbral de satisfacción. Los primeros datos de extremo trasero filtrados pueden incluir los terceros resultados.
Además, los segundos datos de extremo trasero pueden incluir múltiples resultados, y filtrar los segundos datos de extremo trasero basándose en el segundo umbral de satisfacción y la segunda porción de los criterios de búsqueda que es relevante para los segundos datos de extremo trasero puede incluir aplicar una o más funciones difusas que se derivan de la segunda porción de los criterios de búsqueda a cada uno de los resultados para calcular un valor de satisfacción para cada resultado. Filtrar los segundos datos de extremo trasero puede incluir también comparar el valor de satisfacción para cada resultado con el segundo umbral de satisfacción, y determinar cada resultado para el que el valor de satisfacción es mayor que el segundo umbral de satisfacción. Los segundos datos de extremo trasero filtrados pueden incluir cada resultado de determinación.
En algunas realizaciones, generar respuestas a la consulta de búsqueda basándose en los primeros datos de origen puede incluir calcular un valor de satisfacción para cada respuesta basándose en los criterios de búsqueda. En este caso, determinar si cada una de las respuestas es elegible para notificación basándose en los criterios de búsqueda puede incluir, para cada respuesta, determinar si el valor de satisfacción para la respectiva respuesta es mayor que un umbral de notificación, y en respuesta a la determinación de que el valor de satisfacción para la respectiva respuesta es mayor que el umbral de notificación, etiquetar la respectiva respuesta como elegible para una notificación extra. En respuesta a la determinación de que el valor de satisfacción para la respectiva respuesta es menor que el umbral de notificación, determinar si la respectiva respuesta es elegible para notificación puede incluir determinar si la respectiva respuesta está dentro de un subconjunto de las respuestas. El valor de satisfacción para cada una de las respuestas en el subconjunto de las respuestas puede ser mayor que el valor de satisfacción para cada una de las respuestas que no está en el subconjunto. En respuesta a la determinación de que la respectiva respuesta está dentro del subconjunto, la respectiva respuesta puede etiquetarse como elegible para una notificación periódica. En respuesta a la determinación de que la respectiva respuesta no está dentro del subconjunto, la respectiva respuesta puede determinarse como no elegible para notificación.
En algunas realizaciones, el método incluye adicionalmente almacenar las respuestas en el uno o más dispositivos de almacenamiento persistente, y después de que se almacenan las respuestas, recibir automáticamente, mediante un mecanismo de envío, o recuperar, mediante un mecanismo de extracción, segundos datos de origen de la una o más fuentes de datos de extremo trasero que se refieren a al menos una de las respuestas. El método puede incluir adicionalmente recuperar la al menos una de las respuestas del uno o más dispositivos de almacenamiento persistente, actualizar una o más de la al menos una de las respuestas recuperadas basándose en los segundos datos de origen, y determinar si cada una de la una o más respuestas actualizadas es elegible para notificación. El método puede incluir también notificar al usuario de cada respuesta actualizada elegible para notificación determinada.
Además, determinar si cada una de la una o más respuestas actualizadas es elegible para notificación puede incluir, para cada respuesta actualizada, determinar si la respectiva respuesta actualizada incluye una suscripción. En respuesta a la determinación de que la respectiva respuesta actualizada incluye la suscripción, la respectiva respuesta actualizada puede añadirse a una cola de prioridad alta. En respuesta a la determinación de que la
respectiva respuesta actualizada no incluye la suscripción, la respectiva respuesta actualizada puede añadirse a una cola de prioridad baja. El método puede incluir adicionalmente determinar si cada respuesta actualizada en la cola de prioridad alta es elegible para notificación, y posteriormente, determinar si cada respuesta actualizada en la cola de prioridad baja es elegible para notificación.
Determinar si cada una de las respuestas en la cola de prioridad alta es elegible para notificación puede incluir, para cada respuesta actualizada en la cola de prioridad alta, determinar si la respectiva respuesta actualizada satisface un umbral de notificación de suscripción para la respectiva respuesta. En respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación de suscripción para la respectiva respuesta, la respectiva respuesta actualizada puede etiquetarse como elegible para una notificación de suscripción. Como alternativa, en respuesta a la determinación de que la respectiva respuesta actualizada no satisface el umbral de notificación de suscripción para la respectiva respuesta, el método puede incluir determinar si la respectiva respuesta actualizada satisface un umbral de notificación extra para la consulta de búsqueda. En respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación extra para la consulta de búsqueda, la respectiva respuesta actualizada puede etiquetarse como elegible para una notificación extra. En respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación extra para la consulta de búsqueda, el método puede incluir determinar si la respectiva respuesta actualizada satisface un umbral de notificación periódica para la consulta de búsqueda. En respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación periódica para la consulta de búsqueda, la respectiva respuesta actualizada puede etiquetarse como elegible para una notificación periódica. En respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación periódica para la consulta de búsqueda, el método puede incluir determinar que la respectiva respuesta actualizada no es elegible para notificación.
De manera similar, determinar si cada respuesta actualizada en la cola de prioridad baja es elegible para notificación puede incluir, para cada respuesta actualizada en la cola de prioridad baja, determinar si la respectiva respuesta actualizada satisface un umbral de notificación extra para la consulta de búsqueda. En respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación extra para la consulta de búsqueda, la respectiva respuesta actualizada puede etiquetarse como elegible para una notificación extra. En respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación extra para la consulta de búsqueda, el método puede incluir determinar si la respectiva respuesta actualizada satisface un umbral de notificación periódica para la consulta de búsqueda. En respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación periódica para la consulta de búsqueda, la respectiva respuesta actualizada puede etiquetarse como elegible para una notificación periódica. En respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación periódica para la consulta de búsqueda, el método puede incluir determinar que la respectiva respuesta actualizada no es elegible para notificación.
En otra realización ejemplar, un sistema para procesar una consulta de búsqueda de acuerdo con la reivindicación 12 incluye uno o más procesadores informáticos y una memoria que almacena instrucciones que tras la ejecución por el uno o más procesadores informáticos hace que el sistema, en respuesta a recibir la consulta de búsqueda, almacene la consulta de búsqueda en uno o más dispositivos de almacenamiento persistente. Periódica y automáticamente de manera posterior, las instrucciones tras la ejecución provocan que el sistema recupere la consulta de búsqueda del uno o más dispositivos de almacenamiento persistente, recupere, usando un algoritmo de optimización iterativo, datos de origen que se refieren a la consulta de búsqueda de una o más de las fuentes de datos de extremo trasero, y genere una pluralidad de respuestas para la consulta de búsqueda basándose en los datos de origen recuperados. Las instrucciones tras su ejecución hacen adicionalmente que el sistema determine si cada una de las respuestas es elegible para notificación basándose en criterios de búsqueda incluidos en la consulta de búsqueda, y notifique a un usuario de cada notificación de respuesta determinada elegible.
En realizaciones adicionales, las instrucciones almacenadas en la memoria pueden, tras su ejecución, hacer que el sistema realice una o más cualquiera de las funciones y/o implemente una o más cualquiera de las características descritas anteriormente en relación con el método ejemplar
En una realización ejemplar adicional, un producto de programa informático para procesar una consulta de búsqueda de acuerdo con la reivindicación 14 incluye un medio legible por ordenador no transitorio e instrucciones almacenadas en el medio legible por ordenador no transitorio que tras su ejecución por uno o más procesadores informáticos hacen que el uno o más procesadores informáticos, en respuesta a recibir la consulta de búsqueda, almacenen la consulta de búsqueda en uno o más dispositivos de almacenamiento persistente. Periódica y automáticamente de manera posterior, las instrucciones tras la ejecución provocan que el uno o más procesadores informáticos recuperen la consulta de búsqueda del uno o más dispositivos de almacenamiento persistente, recuperen, usando un algoritmo de optimización iterativo, datos de origen que se refieren a la consulta de búsqueda de una o más de las fuentes de datos de extremo trasero, y generen una pluralidad de respuestas para la consulta de búsqueda basándose en los datos de origen. Las instrucciones tras su ejecución hacen adicionalmente que el uno o más procesadores informáticos determinen si cada una de las respuestas es elegible para notificación basándose en criterios de búsqueda incluidos en la consulta de búsqueda, y notifiquen a un usuario de cada
notificación de respuesta determinada elegible.
En realizaciones adicionales, las instrucciones almacenadas en el medio legible por ordenador no transitorio pueden hacer que, tras su ejecución, el uno o más procesadores realicen una o más cualquiera de las funciones y/o implementen una o más cualquiera de las características descritas en conexión con el método ejemplar.
El sumario anterior puede presentar una visión de conjunto simplificada de algunas realizaciones de la invención para proporcionar un entendimiento básico de ciertos aspectos la invención analizada en este documento. El resumen no se pretende que proporcione una vista general extensiva de la invención, ni se pretende que identifique ningún elemento clave o crítico o delinee el alcance de la invención. El único fin del sumario es presentar meramente algunos conceptos de una forma simplificada como una introducción a la descripción detallada presentada a continuación.
Breve descripción de los dibujos
Los dibujos adjuntos ilustran diversas realizaciones de la invención y, junto con la descripción general de la invención proporcionada anteriormente, y la descripción detallada de las realizaciones proporcionada anteriormente, sirven para explicar las realizaciones de la invención.
La Figura 1 es una vista esquemática de un entorno de operación ejemplar para procesar una consulta de búsqueda que incluye una pluralidad de sistemas informáticos en comunicación mediante una red.
La Figura 2 es una vista esquemática de un sistema informático ilustrativo de la Figura 1.
La Figura 3 es una vista esquemática de una arquitectura de procesamiento que puede implementarse por uno o más de los sistemas informáticos de la Figura 1.
La Figura 4 es un diagrama de flujo de un proceso ejemplar para generar respuestas para una consulta de búsqueda previamente enviada y almacenada que puede realizarse mediante la arquitectura de procesamiento de la Figura 3.
La Figura 5 es un diagrama de flujo de un proceso ejemplar para recuperar datos de origen de una o más de las fuentes de datos de extremo trasero usando un algoritmo de optimización iterativo que puede realizarse por la arquitectura de procesamiento de la Figura 3.
La Figura 6 es un gráfico de una función difusa ejemplar que puede utilizarse en el proceso de la Figura 5.
La Figura 7 es una ilustración de un ejemplo del proceso de la Figura 5.
La Figura 8 es un diagrama de flujo de un proceso ejemplar para refrescar respuestas previamente generadas y almacenadas para una consulta de búsqueda que puede realizarse por la arquitectura de procesamiento de la Figura 3.
La Figura 9 es un diagrama de flujo de un proceso ejemplar para determinar si las respuestas generadas para una nueva consulta de búsqueda son elegibles para notificación que pueden realizarse por la arquitectura de procesamiento de la Figura 3.
La Figura 10 es un diagrama de flujo de un proceso ejemplar para determinar si respuestas actualizadas o nuevas respuestas generadas para consultas de búsqueda ya procesadas son elegibles para notificación que pueden realizarse por la arquitectura de procesamiento de la Figura 3.
La Figura 11 es un gráfico de una función ejemplar que puede utilizarse para determinar un umbral de suscripción para el proceso de la Figura 10.
La Figura 12 es una ilustración de una escala ejemplar que puede utilizarse para determinar si una respuesta es elegible para una notificación extra o una notificación periódica en el proceso de la Figura 10.
Descripción detallada
Las realizaciones descritas en el presente documento se refieren en general a sistemas, métodos, y productos de programa informático para procesar consultas de búsqueda previamente enviadas y almacenadas y generar notificaciones basándose en tal procesamiento. Por ejemplo, una consulta de búsqueda enviada por un usuario puede almacenarse de manera persistente en un dispositivo de memoria no volátil. La consulta de búsqueda puede incluir criterios de búsqueda que definen los parámetros para una búsqueda de Internet de fuentes de datos de extremo trasero en línea. En una realización, la consulta de búsqueda puede ser un deseo de viaje, y los criterios de búsqueda pueden incluir criterios de viaje que definen los parámetros de un recorrido deseado. Ejemplos no limitantes de tales criterios de viaje pueden incluir uno o más de un presupuesto, una duración de viaje, fechas de viaje, destinos, marcas, actividades, calificaciones, comodidades y similares. Además, los criterios de viaje del deseo de viaje pueden identificar un interés en múltiples tipos de productos y/o múltiples proveedores de servicio que implican más de una fuente de datos de extremo trasero.
Una vez almacenada, la consulta de búsqueda puede recuperarse automáticamente a intervalos reculares o irregulares para su procesamiento. Más particularmente, pueden buscarse una o más de las fuentes de datos de extremo trasero relevantes para la consulta de búsqueda basándose en los criterios de búsqueda de la consulta de búsqueda, y pueden generarse respuestas a la consulta de búsqueda, tal como soluciones de viaje propuestas, basándose en los datos recuperados. La búsqueda de datos puede optimizarse basándose en las preferencias del usuario, que pueden incluir tanto preferencias explícitas (por ejemplo, los criterios de búsqueda, preferencias de
perfil de usuario) y preferencias implícitas (por ejemplo, datos minados de consultas de búsqueda similares y datos históricos). Por ejemplo, en el caso de un deseo de viaje que implica múltiples fuentes de datos de extremo trasero, pueden recuperarse datos de extremo trasero iniciales de una de las fuentes de datos de extremo trasero, y posteriormente filtrarse para descartar cualquier porción que falle al satisfacer un umbral de satisfacción que está basado en las preferencias del usuario. La porción restante de los datos de extremo trasero iniciales puede a continuación servir para limitar los datos buscados y devueltos de otra de las fuentes de datos de extremo trasero. De esta manera, se mejora la velocidad a la que se crean respuestas para una consulta de búsqueda puesto que se utilizan menos datos para generar las respuestas en comparación con la búsqueda de cada fuente de datos de extremo trasero basándose en los criterios de búsqueda en solitario. Además, puesto que los datos están limitados a los que satisfacen un umbral de satisfacción, que puede determinarse o especificarse para optimizar respuestas con relación a los criterios de búsqueda de la consulta de búsqueda, se mejora el conjunto de respuestas generadas, ya que se omiten respuestas que es probable que sean de poco interés o ninguno para el usuario.
Una vez que se han generado las respuestas, puede realizarse una determinación para cada respuesta generada de si la respuesta es elegible para notificación (es decir, si debe notificarse o alertarse al usuario que envió la consulta de búsqueda de la respuesta). Por ejemplo, cada respuesta generada puede compararse a una o más respuestas anteriores generadas y almacenarse para la consulta de búsqueda. En general, una respuesta generada para una consulta de búsqueda puede diferir de respuestas generadas previamente si tiene lugar un cambio en las fuentes de datos de extremo trasero buscadas entre las respuestas previas que se han generado y las respuestas actuales que se están generado. Si una respuesta actual no ha cambiado de las respuestas previas, o si el cambio es insignificante, entonces puede realizarse una determinación para no notificar al usuario. Como alternativa, si una respuesta actual no representa un cambio significativo de las respuestas previas (por ejemplo, la respuesta actual incluye una nueva solución de viaje o un precio significativo para una solución de viaje generada previamente), puede realizarse a continuación una determinación de si debe notificarse inmediatamente al usuario de la respuesta actual, o notificarse un tiempo más tarde, tal como en una siguiente notificación periódica. Cada una de estas determinaciones puede realizarse basándose en las preferencias explícitas y/o implícitas del usuario. De esta manera, el usuario se mantiene actualizado de los cambios o actualizaciones significativas en fuentes de datos de extremo trasero en el momento correcto, y no se le molesta con cambios o actualizaciones que no son lo suficientemente significativas de informar.
Adicionalmente o como alternativa, cuando tiene lugar un cambio o actualización en una fuente de datos de extremo trasero que se refiere a una respuesta previamente almacenada, puede activarse una actualización de la respuesta previamente almacenada. Como anteriormente, puede realizarse entonces una determinación en cuanto a si debe notificarse al usuario de la respuesta actualizada, posibilitando de esta manera que el usuario conozca acerca de la actualización aproximadamente en tiempo real. Estas y otras características se describen en más detalle a continuación.
La Figura 1 ilustra un entorno de operación 10 que puede incluir uno o más sistemas de usuario 12, uno o más sistemas de datos de extremo trasero 14, uno o más sistemas de terceros 16, y uno o más sistemas de notificación de consulta 18. Cada uno de estos sistemas puede comunicarse entre sí mediante una red 24. Además, cualesquiera dos o más de estos sistemas pueden combinarse entre sí en un único sistema.
Los sistemas de usuario 12 pueden incluir cualquier sistema informático que posibilite que un usuario introduzca y envíe una consulta de búsqueda, tal como mediante Internet, a uno de los sistemas de datos de extremo trasero 14 o uno de los sistemas de terceros 16. Ejemplos no limitantes de sistemas de usuario 12 pueden incluir dispositivos informáticos móviles, tabletas, ordenadores de sobremesa, ordenadores portátiles, y similares. Como ejemplos adicionales, un sistema de usuario 12 puede ser el de cualquier viajero o cliente, o el de cualquier agente, tal como un agente de viajes, que actúa en nombre de un viajero o cliente. Una consulta de búsqueda que se introduce mediante un sistema de usuario 12 puede incluir criterios de búsqueda que definen los parámetros para buscar fuentes de datos de extremo trasero alojadas en uno o más de los sistemas de datos de extremo trasero 14 y/o en uno o más de los sistemas de terceros 16. En una realización, la consulta de búsqueda puede ser un deseo de viaje, y puede incluir criterios de búsqueda específicos de viaje tales como fechas de viaje, una ubicación de destino, un presupuesto y similares.
Una vez enviada, la consulta de búsqueda puede transmitirse, tal como a través de la red 24, a uno de los sistemas de datos de extremo trasero 14 o a uno de los sistemas de terceros 16. Más particularmente, un usuario puede dirigir un sistema de usuario 12 para acceder a una interfaz de usuario gráfica (por ejemplo, un sitio web) alojada por un sistema de datos de extremo trasero 14 o un sistema de terceros 16, y utilizar a continuación la interfaz de usuario gráfica para introducir y enviar una consulta de búsqueda al sistema de alojamiento.
Los sistemas de datos de extremo trasero 14 pueden incluir cualquier sistema que esté afiliado principalmente con y/o operado por un proveedor original de datos utilizado para responder a una consulta de búsqueda. Más particularmente, cada uno de los sistemas de datos de extremo trasero 14 puede almacenar los datos de extremo trasero del proveedor de datos original afiliado con el mismo, y puede estar configurado para facilitar las operaciones de negocio del proveedor de datos original. En el caso de una consulta de búsqueda de deseo de viaje, por ejemplo, cada sistema de datos de extremo trasero 14 puede estar afiliado con y/o operado por un proveedor de viaje
particular, tal como un hotel, una aerolínea, una compañía de alquiler de coches, una compañía de trenes, o similares, y puede almacenar los datos de inventario y los datos de reserva del proveedor de viaje. Cada sistema de datos de extremo trasero 14 puede estar configurado adicionalmente para posibilitar a los usuarios, tal como mediante un sistema de usuario 12, buscar productos de viaje disponibles del proveedor de viaje afiliado con el mismo, y los productos de viaje disponibles de los socios del proveedor de viaje, y posteriormente comprar productos de viaje directamente de o a través del proveedor de viaje.
Los sistemas de terceros 16 pueden incluir cualquier sistema que no esté afiliado principalmente con y/o operado por un proveedor de datos original, pero, sin embargo, posibilitan que un usuario busque los datos de extremo trasero de un proveedor de datos original. Más particularmente, los sistemas de terceros 16 pueden mantener un enlace a cada uno de los sistemas de datos de extremo trasero 14, y pueden estar configurados para recuperar y/o almacenar en caché los datos de extremo trasero a partir de los mismos. De esta manera, un sistema de terceros 16 puede posibilitar que los usuarios busquen los datos de extremo trasero de múltiples sistemas de datos de extremo trasero 14 mediante una única consulta de búsqueda enviada al sistema de terceros 16. Ejemplos no limitantes de sistemas de terceros 16 incluyen Agencias de Viaje en Línea (OLTA) y Sistemas de Distribución Global (GDS).
Cada uno de los sistemas de datos de extremo trasero 14 y/o sistemas de terceros 16 puede estar configurado para transmitir una consulta de búsqueda recibida a uno de los sistemas de notificación de consulta 18. En respuesta a recibir una consulta de búsqueda, un sistema de notificación de consulta 18 puede estar configurado para almacenar de manera persistente la consulta de búsqueda. Posteriormente, a intervalos regulares o irregulares, el sistema de notificación de consulta 18 puede estar configurado para recuperar la consulta de búsqueda del almacenamiento persistente, recuperar datos de extremo trasero de uno o más de los sistemas de datos de extremo trasero 14 y/o los sistemas de terceros 16 basándose en los criterios de búsqueda de la consulta de búsqueda, y generar una o más respuestas para la consulta de búsqueda basándose en los datos recuperados. El sistema de notificación de consulta 18 puede estar configurado adicionalmente para determinar si cada una o más de las respuestas generadas es elegible para notificación de manera que debe notificarse al usuario que envió la consulta de búsqueda de la respuesta. En caso afirmativo, a continuación el sistema de notificación de consulta 18 puede estar configurado para generar una notificación que informa al usuario de la respuesta, tal como mediante un correo electrónico, texto, mensaje instantáneo, notificación de envío y similares.
Por ejemplo, un usuario puede enviar un deseo de consulta de búsqueda de viaje a un sistema de datos de extremo trasero 14 o un sistema de terceros 16, que puede transmitir posteriormente el deseo de viaje a un sistema de notificación de consulta 18. En respuesta a recibir el deseo de viaje, el sistema de notificación de consulta 18 puede almacenar de manera persistente el deseo de viaje, y puede consultar periódicamente uno o más de los sistemas de datos de extremo trasero 14 y/o los sistemas de terceros 16 para datos indicativos de productos de viaje disponibles basándose en los criterios de viaje en el deseo de viaje. A partir de los datos recibidos, el sistema de notificación de consulta 18 puede generar soluciones de viaje que optimizan los criterios de viaje del deseo de viaje. Una vez que se generan estas soluciones de viaje, el sistema de notificación de consulta 18 puede notificar al usuario de al menos aquellas soluciones de viaje en las que el usuario es probable que esté muy interesado. De esta manera, enviando un deseo de viaje una vez, el usuario puede recibir automáticamente notificaciones de buenas soluciones de viaje para el deseo de viaje que incorporan cambios significativos relevantes al deseo de viaje, tal como un nuevo producto de viaje añadido por un proveedor de servicio o un cambio de precio relacionado con un producto de viaje previamente publicado, que tienen lugar en las fuentes de datos de extremo trasero después de que se envía el deseo de viaje.
Haciendo referencia ahora a la Figura 2, los sistemas de usuario 12, los sistemas de datos de extremo trasero 14, los sistemas de terceros 16, y los sistemas de notificación de consulta 18 del entorno de operación 10 pueden implementarse en uno o más dispositivos o sistemas informáticos, tal como el sistema informático ejemplar 26. El sistema informático 26 puede incluir un procesador 28, una memoria 30, un dispositivo de memoria de almacenamiento masivo 32, una interfaz de entrada/salida (E/S) 34, y una Interfaz de Hombre a Máquina (HMI) 36. El sistema informático 26 también puede acoplarse operativamente a uno o más recursos externos 38 a través de la red 24 o interfaz de E/S 34. Los recursos externos 38 pueden incluir, pero sin limitación, servidores, bases de datos, dispositivos de almacenamiento masivo, dispositivos periféricos, servicios de red basados en la nube o cualquier otro recurso informático adecuado que puede usarse por el sistema informático 26.
El procesador 28 puede incluir uno o más dispositivos seleccionados a partir de microprocesadores, microcontroladores, procesadores de señales digitales, microordenadores, unidades de procesamiento central, campo de matrices de puertas programables, dispositivos lógicos programables, máquinas de estado, circuitos lógicos, circuitos analógicos, circuitos digitales o cualquier otro dispositivo que manipula señales (analógicas o digitales) basándose en instrucciones operacionales que se almacenan en la memoria 30. La memoria 30 puede incluir un dispositivo de una sola memoria o una pluralidad de dispositivos de memoria incluyendo, pero sin limitación, memoria de solo lectura (ROM), memoria de acceso aleatorio (RAM), memoria volátil, memoria no volátil, memoria de acceso aleatorio estática (SRAM), memoria de acceso aleatorio dinámica (DRAM), memoria flash, memoria caché o cualquier otro dispositivo capaz de almacenar información. El dispositivo de memoria de almacenamiento masivo 32 puede incluir dispositivos de almacenamiento de datos tal como un disco duro, unidad óptica, unidad de cinta, dispositivo de estado sólido no volátil, o cualquier otro dispositivo capaz de almacenar
información.
El procesador 28 puede operar bajo el control de un sistema operativo 40 que reside en la memoria 30. El sistema operativo 40 puede gestionar recursos informáticos de modo que código de programa informático incorporado como una o más aplicaciones de software informáticas, tal como una aplicación 42 que reside en la memoria 30, puede tener instrucciones ejecutadas por el procesador 28. En una realización alternativa, el procesador 28 puede ejecutar la aplicación 42 directamente, en cuyo caso el sistema operativo 40 puede omitirse. Una o más estructuras de datos 44 también pueden residir en la memoria 30, y pueden usarse por el procesador 28, el sistema operativo 40 o la aplicación 42 para almacenar o manipular datos.
La interfaz de E/S 34 puede proporcionar una interfaz de máquina que acopla operativamente el procesador 28 a otros dispositivos y sistemas, tal como la red 24 o el uno o más recursos externos 38. La aplicación 42 puede, de este modo, trabajar cooperativamente con la red 24 o los recursos externos 38 comunicándose a través de la interfaz de E/S 34 para proporcionar las diversas características, funciones, aplicaciones, procesos o módulos que comprenden realizaciones de la invención. La aplicación 42 también puede tener código de programa que se ejecuta por el uno o más recursos externos 38, o de otra manera basarse en funciones o señales proporcionadas por otro sistema o componentes de red externos al sistema informático 26. De hecho, dada las casi infinitas configuraciones posibles de hardware y software, los expertos en la materia entenderán que realizaciones de la invención pueden incluir aplicaciones que se ubican externamente al sistema informático 26, se distribuyen entre múltiples ordenadores u otros recursos externos 38 o se proporcionan por recursos informáticos (hardware y software) que se proporcionan como un servicio a través de la red 24, tal como un servicio de informática en la nube.
La HMI 36 puede acoplarse operativamente a el procesador 28 de sistema informático 26 de una manera conocida para permitir que un usuario interactúe directamente con el sistema informático 26. La HMI 36 puede incluir visualizadores de vídeo o alfanuméricos, una pantalla táctil, un altavoz y cualquier otro identificador de audio o visual adecuado capaz de proporcionar datos al usuario. La HMI 36 también puede incluir dispositivos de entrada y controles tal como un teclado alfanumérico, un dispositivo apuntador, teclados numéricos, botones de pulsación, botones de control, micrófonos, etc., capaces de aceptar comandos o entradas del usuario y transmitir la entrada introducida al procesador 28.
Una base de datos 46 puede residir en el dispositivo de memoria de almacenamiento masivo 32, y puede usarse para recopilar y organizar datos usados por los varios sistemas y módulos descritos en este documento. La base de datos 46 puede incluir datos y soportar estructuras de datos que almacenan y organizan los datos. En particular, la base de datos 46 puede disponerse con cualquier organización o estructura de base de datos incluyendo, pero sin limitación, una base de datos relacional, una base de datos jerárquica, una base de datos de red o combinaciones de las mismas. Puede usarse un sistema de gestión de base de datos en forma de una aplicación de software informática, que se ejecuta como instrucciones en el procesador 28, para acceder a la información o datos almacenados en registros de la base de datos 46 en respuesta a una consulta, en el que una consulta puede determinarse dinámicamente y ejecutarse por el sistema operativo 40, otras aplicaciones 42 o uno o más módulos.
La Figura 3 ilustra una arquitectura de procesamiento 50 para procesar una consulta de búsqueda 60 de modo que puede notificarse a un usuario cuando los cambios a fuentes de datos de extremo trasero 58 afectan significativamente a la consulta de búsqueda 60. La arquitectura de procesamiento 50 puede proporcionarse por uno o más de los sistemas del entorno de operación 10, y puede incluir un módulo de procesamiento de consulta 52, una base de datos de consultas 54, una base de datos de respuestas 56, y una o más de las fuentes de datos de extremo trasero 58.
En la operación, el módulo de procesamiento de consulta 52 puede recibir una consulta de búsqueda 60 que se envía por un usuario, tal como mediante un sistema de usuario 12. Específicamente, un usuario puede acceder a una interfaz de usuario gráfica (GUI) 61 generada por el módulo de procesamiento de consulta 52 mediante un sistema de usuario 12, y utilizar la GUI 61 para crear y enviar la consulta de búsqueda 60. En respuesta a recibir la consulta de búsqueda 60, el módulo de procesamiento de consulta 52 puede estar configurado para almacenar la consulta de búsqueda 60 en la base de datos de consultas 54. La base de datos de consultas 54 pueden alojarse en uno o más dispositivos de almacenamiento persistente, tal como uno o más de los dispositivos de memoria de almacenamiento masivo 32 (Figura 2).
Periódicamente después, el módulo de procesamiento de consulta 52 puede estar configurado para recuperar automáticamente la consulta de búsqueda 60 de la base de datos de consultas 54, recuperar datos de origen que se refieren a la consulta de búsqueda 60 de las fuentes de datos de extremo trasero 58, y generar respuestas 62 para la consulta de búsqueda 60 basándose en los datos de origen recuperados. En una realización, el módulo de procesamiento de consulta 52 puede estar configurado para recuperar los datos de origen usando un algoritmo de optimización iterativo, que posibilita la generación de las respuestas 62 que son particularmente relevantes para el usuario mientras también se optimiza la utilización de recursos de sistema. Específicamente, el algoritmo de optimización iterativo puede minimizar el número de solicitudes que se transmiten a las fuentes de datos de extremo trasero 58 del módulo de procesamiento de consulta 52, puede minimizar la cantidad de datos que se devuelven por las fuentes de datos de extremo trasero 58 al módulo de procesamiento de consulta 52, y puede maximizar la
relevancia de los datos devueltos, cada uno de los cuales posibilita que el módulo de procesamiento de consulta 52 genere mejores respuestas 62 más rápido.
Después de que se generan las respuestas 62, el módulo de procesamiento de consulta 52 puede estar configurado para determinar si cada respuesta 62 es elegible para notificación. Más particularmente, el módulo de procesamiento de consulta 52 puede determinar si cada respuesta 62 merece la pena que se comparta con el usuario mediante una notificación 64, tal como basándose en preferencias especificadas por el usuario y los criterios de búsqueda de la consulta de búsqueda 60. De esta manera, después de que se envía la consulta de búsqueda 60, si los datos en una fuente de datos de extremo trasero 58 cambian de manera que está disponible una nueva respuesta 62 para la consulta de búsqueda 60 (por ejemplo, un proveedor de servicio añade un producto de viaje relevante nuevo), o de manera que una respuesta previamente generada 62 ya no refleja de manera precisa más los datos en la fuente de datos de extremo trasero 58 y necesita actualizarse (por ejemplo, se cancela un producto de viaje, el precio de un producto de viaje cambia), el módulo de procesamiento de consulta 52 puede determinar si debe notificarse al usuario de la respuesta nueva o actualizada 62.
Específicamente, el módulo de procesamiento de consulta 52 puede estar configurado para determinar si una respuesta 62 es tan excepcional de manera que garantiza una notificación inmediata o extra 64 (por ejemplo, mediante un texto o un correo electrónico), si la respuesta 62 es de interés potencial suficiente para el usuario de manera que debe incluirse en una siguiente notificación periódica 64, o si simplemente no notificarse al usuario de la respuesta 62. De esta manera, no se desperdician los recursos de sistema al notificar a los usuarios de respuestas 62 en las que el usuario es probable que tenga poco o ningún interés. Además, puesto que se utilizan recursos de sistema cada vez que se genera una notificación 64 y se envía al usuario, limitando el número de notificaciones 64 que se envían al usuario a aquellas en las que el usuario es más probable que esté interesado, y agrupando múltiples respuestas notificación elegible 62 juntas en una única notificación 64, tal como en una notificación periódica 64, el módulo de procesamiento de consulta 52 puede optimizar adicionalmente la utilización de recursos de sistema.
En una realización, la consulta de búsqueda 60 puede comprender un deseo de viaje que incluye criterios de viaje que definen los parámetros de un recorrido en el que está interesado el usuario, y cada una de las fuentes de datos de extremo trasero 58 puede incluir datos de precios para productos de viaje disponibles de uno o más proveedores de viaje. Por ejemplo, una de las fuentes de datos de extremo trasero 58 puede incluir datos que indican el precio de productos de viaje disponibles de una o más aerolíneas (por ejemplo, vuelos disponibles), otra fuente de datos de extremo trasero 58 puede incluir datos que indican el precio de productos de viaje disponibles de uno o más operadores de tren (por ejemplo, segmentos de tren disponibles), y otra fuente de datos de extremo trasero más 58 puede incluir datos que indican el precio de productos de viaje disponibles de uno de más hoteles (por ejemplo, habitaciones disponibles). En general, un producto de viaje de un proveedor de servicio puede incluir cualquier elemento o servicio vendible del proveedor de servicio.
Continuando con el deseo de viaje ejemplo, después de que se almacena el deseo de viaje en la base de datos de consultas 54, el módulo de procesamiento de consulta 52 puede estar configurado para recuperar automática y periódicamente el deseo de viaje de la base de datos de consultas 54, recuperar datos de origen que indican el precio de productos de viaje disponibles de las fuentes de datos de extremo trasero 58 basándose en los criterios de viaje del deseo de viaje, y crear una o más soluciones de viaje para el deseo de viaje basándose en los datos de origen recuperados. Posteriormente, el módulo de procesamiento de consulta 52 puede determinar si cada solución de viaje es elegible para notificación, y notificar al usuario en consecuencia. De esta manera, se mantiene al usuario actualizado de nuevas soluciones de viaje que se refieren de manera intensa al deseo de viaje y que se hacen disponibles después de que se envíe la consulta de búsqueda 60.
Después de generar respuestas 62, el módulo de procesamiento de consulta 52 puede estar configurado para almacenar las respuestas 62 en la base de datos de respuestas 56, que pueden almacenarse análogamente en uno o más dispositivos de almacenamiento persistente. Periódicamente después, el módulo de procesamiento de consulta 52 puede recuperar datos de origen que se refieren a las respuestas 62 de las fuentes de datos de extremo trasero 58. Como alternativa, cuando tiene lugar un cambio relevante para una o más de las respuestas 62 en una fuente de datos de extremo trasero 58, el módulo de procesamiento de consulta 52 puede recibir automáticamente datos de origen que indican el cambio, tal como mediante un mecanismo de envío implementado en las fuentes de datos de extremo trasero 58. En cualquier caso, una vez que están presentes los datos de origen, el módulo de procesamiento de consulta 52 puede recuperar las respuestas almacenadas 62 relevantes para los datos de origen, actualizar cada respuesta recuperada 62 que ya no es precisa basándose en los datos de origen recuperados, y determinar si debe notificarse al usuario de cada respuesta actualizada 62.
En algunas realizaciones, la arquitectura de procesamiento 50 puede diferenciarse también entre dos tipos de usuarios: usuarios pasivos y usuarios VIP. Puede concederse tanto a usuarios pasivos como usuarios VIP la capacidad para usar funcionalidades básicas, tales como crear una consulta de búsqueda 60 y recibir notificaciones 64 de respuestas 62. Sin embargo, los usuarios VIP pueden también tener acceso a versiones personalizadas de la GUI 61 que posibilitan interacción más comprensiva con la arquitectura de procesamiento 50. Adicionalmente, los usuarios VIP pueden recibir procesamiento de prioridad con relación a consultas de búsqueda 60 y notificaciones 64.
En otras palabras, cuando el módulo de procesamiento de consulta 52 procesa consultas de búsqueda 60 y notificaciones 64, puede estar configurado para procesar aquellas de los usuarios VIP antes de los usuarios pasivos. A los usuarios VIP puede también proporcionársele más capacidad de datos, que puede aumentar el número de respuestas 62 que pueden almacenarse para el usuario, y puede aumentar el número de respuestas 62 de las cuales puede notificarse al usuario.
La Figura 4 ilustra un proceso 100 para generar respuestas 62 para una consulta de búsqueda enviada y almacenada 60. El proceso 100 puede realizarse por la arquitectura de procesamiento 50.
En el bloque 102, puede recibirse una consulta de búsqueda 60, tal como en el módulo de procesamiento de consulta 52. La consulta de búsqueda 60 puede incluir criterios de búsqueda que definen parámetros para una búsqueda de las fuentes de datos de extremo trasero en línea 58. En algunas realizaciones, la consulta de búsqueda 60 puede ser un deseo de viaje, y los criterios de búsqueda pueden ser criterios de viaje que definen los parámetros de un recorrido en el que está interesado el usuario. En particular, un usuario, tal como un agente de aerolínea, agente de viajes o viajero pueden utilizar un sistema de usuario 12 para acceder a la GUI 61 de la arquitectura de procesamiento 50. El usuario puede a continuación utilizar la GUI 61 para crear un deseo de viaje definiendo diversos criterios de viaje.
La GUI 61 puede presentar criterios de viaje tanto obligatorios como opcionales para que el usuario los defina (es decir, proporcionar un valor para). Los criterios de viaje obligatorios, que el usuario debe definir, pueden incluir un lugar de salida y un presupuesto disponible. Los criterios de viaje opcionales, que el usuario puede definir o no, pueden incluir una fecha de salida, tipos de producto de viaje (por ejemplo, aire, tren, hotel, alquiler de coche, taxi, autocar, ferry, transporte terrestre, eventos locales), un número de personas en un grupo del viajero, una edad de cada persona en grupo del viajero, un lugar de llegada, una fecha de llegada, un número máximo de conexiones y flexibilidad de fecha. Además, la GUI 61 puede posibilitar que un usuario defina un periodo de tiempo con una duración de viaje y/o uno o más días de la semana para un deseo de viaje (por ejemplo, un recorrido de viernes a domingo dentro de un periodo de 3 meses). Requiriendo que únicamente puedan definirse un número mínimo de criterios de viaje (es decir, los criterios de viaje obligatorios), la GUI 61 puede conceder al usuario la flexibilidad para definir un deseo de viaje de manera que él o ella será notificado de una amplia diversidad de soluciones de viaje cuando se procesa el deseo de viaje.
En algunas realizaciones, la GUI 61 puede presentar también dos o más modos en los que un usuario puede crear un deseo de viaje. Un modo puede ser un modo básico que posibilita que el usuario introduzca únicamente criterios de búsqueda básicos, tales como un lugar de salida, un presupuesto disponible y/o una fecha de salida. El modo básico puede ser útil para viajeros que no tienen una visión precisa del recorrido que desean hacer. Otro modo disponible puede ser un modo experto, que puede ser en general para viajeros que conocen detalles más específicos de su recorrido deseado. El modo experto puede posibilitar que el usuario introduzca los criterios de viaje del modo básico, y uno o más de los criterios de viaje adicionales anteriormente descritos.
La GUI 61, tal como cuando se opera en modo experto, puede también estar adaptada para servir a los viajeros que viajan en una base regular. En particular, la GUI 61 puede posibilitar que un usuario cree un deseo de viaje que incluye múltiples deseos de sub-viaje. Cada deseo de sub-viaje puede corresponder a un recorrido diferente que se refiere a un deseo de viaje global, tal como un deseo del viajero para hacer el mismo recorrido varias veces un año. En otras palabras, cada deseo de sub-viaje puede corresponder a un deseo del viajero para tomar un mismo recorrido en múltiples fechas, o tomar un mismo viaje sobre múltiples periodos de tiempo (por ejemplo, tomar el recorrido A una vez al mes). Cuando un deseo de viaje incluye deseos de sub-viaje, cada deseo de sub-viaje puede procesarse para soluciones de viaje y elegibilidad de notificación de manera separada y el usuario puede recibir notificaciones separadas 64 para cada deseo de sub-viaje.
Adicionalmente, la GUI 61, tal como cuando opera en modo experto, puede posibilitar que el usuario defina criterios de viaje adicionales que son específicos a cada tipo de producto de viaje. Por ejemplo, en relación con productos de viaje de hotel, el usuario puede definir criterios de viaje adicionales específicos a hoteles tal como tipo de hotel, marca, calificación mínima, distancia radial a un centro de la ciudad, y servicios preferidos (por ejemplo, desayuno, piscina, comida, servicio de limpieza, recepción 24 horas, baño en la habitación, conexión a internet, servicio de lavandería, spa). La GUI 61 puede estar configurada para presentar dinámicamente tales opciones de criterios de viaje adicionales al usuario después de la selección del usuario de un tipo particular de producto de viaje. Por ejemplo, en respuesta a que un usuario seleccione productos de viaje aéreos para un deseo de viaje, la GUI 61 puede estar configurada para presentar visualmente criterios de viaje específicos a productos de viaje aéreo (por ejemplo, clase, ubicación de asiento, tiempos de viaje, marca) para la definición del usuario.
Además de posibilitar que un usuario defina criterios de viaje para un deseo de viaje, la GUI 61 puede posibilitar que el usuario identifique otros parámetros para que se incluyan en el deseo de viaje. Por ejemplo, la GUI 61 puede posibilitar que un usuario asigne un nivel de prioridad o peso a cada uno o la mayoría de los criterios de viaje definidos. En general, el nivel de prioridad o peso asignado a un criterio de viaje definido indica un nivel de importancia de ese criterio para el usuario. Como se describe en más detalle a continuación, tales niveles o pesos pueden utilizarse como parte del algoritmo de optimización iterativo para recuperar datos de origen de una manera
óptima, y para determinar si una respuesta 62 generada para la consulta de búsqueda 60 es elegible para notificación.
Como otro ejemplo de parámetros adicionales, la GUI 61 puede posibilitar que un usuario especifique ajustes para notificaciones 64, tal como notificaciones periódicas 64, que se envían al usuario para un deseo de viaje. Por ejemplo, el usuario puede definir la frecuencia de esas notificaciones 64, tal como notificaciones periódicas 64, que se envían al usuario (por ejemplo, una vez cada dos semanas, una vez cada semana, dos veces a la semana), y el número máximo de respuestas 62 que pueden estar incluidas en una notificación 64.
La GUI 61 puede posibilitar también que el usuario introduzca un punto de terminación que indica cuándo la arquitectura de procesamiento 50 debe descontinuar el procesamiento de la consulta de búsqueda emitida 60 y dejar de enviar notificaciones 64 al usuario. En otras palabras, la arquitectura de procesamiento 50 puede continuar generando nuevas respuestas 62 para una consulta de búsqueda 60, refrescar respuestas previamente generadas 62 para una consulta de búsqueda 60, y determinar la elegibilidad de notificación de respuestas 62 para una consulta de búsqueda 60 hasta que se alcance el punto de terminación. En el caso de un deseo de viaje, la GUI 61 puede permitir que el usuario establezca el punto de terminación como un tiempo o fecha hasta el día antes de la fecha de salida definida para el deseo de viaje. Si no se define punto de terminación por el usuario, entonces puede inferirse un punto de terminación por defecto del día antes de la fecha de salida definida.
Incluir un punto de terminación en cada deseo de viaje optimiza la utilización de recursos de sistema asegurando que el procesamiento se discontinúa para deseos de viaje que ya no son de interés para el usuario, tal como después de que haya pasado la fecha de salida de interés para el usuario. Cuando se alcanza un punto de terminación para un deseo de viaje, la arquitectura de procesamiento 50 puede enviar una notificación 64 que reenvía esta información al usuario. La notificación 64 puede incluir las mejores respuestas 62 halladas para la consulta de búsqueda 60 durante la duración de la consulta de búsqueda 60, que puede estar basada en un valor de satisfacción global, o valor de satisfacción de respuesta (RSV), calculado para cada respuesta 62 generada para la consulta de búsqueda 60. El cálculo de los RSV se describe en más detalle a continuación con referencia a la Figura 7.
En el bloque 104, en respuesta a que se haya recibido la consulta de búsqueda 60, la consulta de búsqueda 60 puede almacenarse en uno o más dispositivos de almacenamiento persistente, tal como uno o más de los dispositivos de memoria de almacenamiento masivo 32 (Figura 2). Más particularmente, la consulta de búsqueda 60 puede almacenarse en una base de datos, tal como la base de datos de consultas 54, que se aloja en el uno o más dispositivos de almacenamiento persistente. En el bloque 106, puede enviarse al usuario un mensaje de confirmación, tal como un correo electrónico, que resume la consulta de búsqueda 60, tal como en un sistema de usuario 12. Después de que se almacena la consulta de búsqueda 60, la GUI 61 puede posibilitar que el usuario recupere la consulta de búsqueda 60 de la base de datos de consultas 54, visualice la consulta de búsqueda 60, y aplique cualesquiera cambios deseados.
En el bloque 108, la consulta de búsqueda 60 puede recuperarse de los dispositivos de almacenamiento persistente, tal como por el módulo de procesamiento de consulta 52. Más particularmente, el módulo de procesamiento de consulta 52 puede estar configurado para recuperar todas las nuevas consultas de búsqueda 60 emitidas por usuarios de la base de datos de consultas 54 en una base periódica, tal como una vez cada día. Por lo tanto, si ha pasado un tiempo igual a un periodo establecido desde la última vez que se recuperaron y procesaron nuevas consultas de búsqueda 60, entonces el módulo de procesamiento de consulta 52 puede estar configurado para recuperar todas las consultas de búsqueda nuevas 60 almacenadas en la base de datos de consultas 54, que incluye la consulta de búsqueda 60 recibida en el bloque 102.
En el bloque 110, pueden recuperarse datos de origen para la consulta de búsqueda 60 usando un algoritmo de optimización iterativo, tal como por el módulo de procesamiento de consulta 52. En general, pueden describirse datos de origen como los datos reales en los que está basada la generación de las respuestas 62. En particular, el módulo de procesamiento de consulta 52 puede estar configurado para implementar el algoritmo de optimización iterativo para recuperar datos de origen que se refieren a la consulta de búsqueda 60 de las fuentes de datos de extremo trasero 58. Por ejemplo, cuando la consulta de búsqueda 60 es un deseo de viaje que indica un interés en unos productos de viajes aéreos, productos de viaje de hotel, y productos de viaje de tren, el módulo de procesamiento de consulta 52 puede consultar las fuentes de datos de extremo trasero 58 que contienen datos de precios y disponibilidad para cada tipo de producto de viaje indicado en el deseo de viaje.
Como se ha descrito anteriormente, el algoritmo de optimización iterativo minimiza la utilización de recursos de sistema y minimiza la cantidad de datos devueltos de las fuentes de datos de extremo trasero 58 durante el proceso de recuperación de datos de origen, mientras se asegura que los datos de origen incluyen resultados en los que el usuario es más probable que esté interesado. Específicamente, el algoritmo de optimización iterativo está configurado de manera que se recuperan datos de extremo trasero de las fuentes de datos de extremo trasero 58 en múltiples iteraciones, donde los datos de extremo trasero recuperados en cada iteración contienen una porción de los datos de origen. Los datos de extremo trasero en cada iteración pueden filtrarse basándose en uno o más de los criterios de búsqueda para determinar una porción óptima de los datos de extremo trasero con relación a los criterios
de búsqueda, que pueden utilizarse a continuación para recuperar datos de extremo trasero en una siguiente iteración y/o formar los datos de origen. En particular, los datos de origen pueden incluir al menos alguna de la porción óptima de datos de extremo trasero determinados para cada iteración de datos de extremo trasero recuperados. En algunos casos, la porción óptima de datos de extremo trasero recuperados en una iteración puede incluir la mayoría o todos los datos de extremo trasero recuperados en esa iteración. El algoritmo de optimización iterativo se describe en mayor detalle con referencia a la Figura 5.
En el bloque 112, las respuestas 62 a la consulta de búsqueda 60 pueden generarse basándose en los datos de origen recuperados, tal como por el módulo de procesamiento de consulta 52. Más particularmente, después de que se recuperan los datos de origen, el módulo de procesamiento de consulta 52 puede estar configurado para compilar los datos de origen en las respuestas 62. Para este fin, el módulo de procesamiento de consulta 52 puede agregar los datos de extremo trasero recuperados de diferentes fuentes de datos de extremo trasero 58 para formar las respuestas 62, y puede calcular un RSV para cada respuesta 62, que puede estar basado en los pesos asignados a los criterios de búsqueda de la consulta de búsqueda 60.
En el bloque 114, cada una de las respuestas generadas 62 puede almacenarse en una base de datos, tal como la base de datos de respuestas 56. En particular, el módulo de procesamiento de consulta 52 puede transmitir las respuestas generadas 62 a la base de datos de respuestas 56. La base de datos de respuestas 56 puede alojarse en uno o más dispositivos de almacenamiento persistente, tal como uno o más dispositivos de memoria de almacenamiento masivo 32 (Figura 2). Las respuestas 62 pueden almacenarse en la base de datos de respuestas 56 de manera que cada respuesta 62 está asociada con una creación-indicación de tiempo para la respuesta 62 y el RSV calculado para la respuesta 62.
En el bloque 116, cada respuesta 62 pueden procesarse para elegibilidad de notificación, tal como por el módulo de procesamiento de consulta 52. En particular, el módulo de procesamiento de consulta 52 puede, a periodos regulares o irregulares, o inmediatamente después de que se genera y/o almacena una respuesta 62, determinar si las respuestas generadas 62 son elegibles para notificación. En respuesta a la determinación de que una respuesta 62 es elegible para notificación, el módulo de procesamiento de consulta 52 puede estar configurado para notificar al usuario de la respuesta 62 mediante una notificación 64. Determinar la elegibilidad de notificación para las respuestas 62 generadas para nuevas consultas de búsqueda 60 se describe en mayor detalle en referencia a la Figura 9.
Después de que se generan y/o almacenan las respuestas 62, uno o más de los bloques 110 a 116 pueden continuar realizándose automática y periódicamente, tal como por el módulo de procesamiento de consulta 52. Específicamente, el módulo de procesamiento de consulta 52 puede estar configurado para realizar automáticamente uno o más de los bloques 110 a 116 en una base regular o irregular periódica hasta que se alcance el punto de terminación incluido en la consulta de búsqueda 60. En algunas realizaciones, la frecuencia o frecuencias a las que el módulo de procesamiento de consulta 52 repite automáticamente la realización de cada bloque para la consulta de búsqueda 60 puede diferir de la frecuencia en la que el módulo de procesamiento de consulta 52 recupera y procesa nuevas consultas de búsqueda 60. Por ejemplo, el módulo de procesamiento de consulta 52 puede recuperar nuevas consultas de búsqueda 60 una vez a día, y recuperar consultas de búsqueda previamente procesadas 60 cada 3 días.
Si, durante una realización posterior de uno o más de los bloques 110 a 114, se generan nuevas respuestas 62, o se realiza una determinación de que una respuesta previamente generada 62 ya no refleja más de manera precisa los datos almacenados en las fuentes de datos de extremo trasero 58 y debe actualizarse, el módulo de procesamiento de consulta 52 puede añadir las respuestas nuevas o actualizadas 62 a las respuestas previamente generadas 62 almacenadas en la base de datos de respuestas 56. De esta manera, cuando los datos de una fuente de datos de extremo trasero 58 cambian de una manera relevante a la consulta de búsqueda 60, puede notificarse al usuario del cambio. Adicionalmente, añadiendo respuestas nuevas y actualizadas 62 a la base de datos de respuestas 56 sin borrar las respuestas previamente generadas 62, el módulo de procesamiento de consulta 52 puede rastrear la evolución de las respuestas 62 a través de la duración de la consulta de búsqueda 60, que puede posibilitar que el módulo de procesamiento de consulta 52 proporcione predicciones a un usuario acerca de si una respuesta 62 es probable que cambie.
Una vez que se crea una consulta de búsqueda 60 y se genera y almacena un conjunto de respuestas 62 para la consulta de búsqueda 60, los usuarios pueden utilizar la GUI 61 para visualizar las respuestas 62 para la consulta de búsqueda 60. El usuario puede a continuación seleccionar una respuesta 62 para visualizar detalles de la misma. Por ejemplo, cuando cada respuesta 62 es una solución de viaje, el usuario puede seleccionar una de las soluciones de viaje para visualizar detalles acerca del productos de viaje en la solución seleccionada. En el caso específico de un producto de viaje de hotel, el usuario puede visualizar la ubicación del hotel en un mapa. Además, la GUI 61 puede posibilitar que un usuario seleccione una respuesta 62, y posteriormente visualizar una tendencia de precio asociada con la respuesta 62 para determinar si la respuesta 62 es probable que cambie y cuánto. En algunas realizaciones, esta característica puede únicamente estar disponible a usuarios VIP.
Después de que se generan las respuestas 62 para una consulta de búsqueda 60, un usuario puede utilizar también
la GUI 61 para visualizar las respuestas 62 y seleccionar manualmente una para volver a elaborar. En respuesta a recibir una solicitud del usuario para volver a elaborar una respuesta 62, el módulo de procesamiento de consulta 52 puede consultar las fuentes de datos de extremo trasero 58 para datos que coinciden con la respuesta seleccionada 62. Si tales datos se hallan y devuelven de las fuentes de datos de extremo trasero 58, a continuación el módulo de procesamiento de consulta 52 puede reconstruir la respuesta seleccionada 62 basándose en los datos devueltos. La respuesta reconstruida 62 puede a continuación presentase al usuario mediante la GUI 61. Si la respuesta reconstruida 62 difiere de la respuesta seleccionada 62, que puede tener lugar como resultado de los datos en los que estaba basada la respuesta seleccionada 62 que se cambia en las fuentes de datos de extremo trasero 58 (por ejemplo, un cambio de precio o disponibilidad para un vuelo particular), a continuación la respuesta seleccionada 62 puede actualizarse en la base de datos de respuestas 56 con la respuesta reconstruida 62. Como alternativa, la respuesta reconstruida 62 puede almacenarse junto con la respuesta seleccionada 62 en la base de datos de respuestas 56 para rastrear la evolución de la respuesta seleccionada 62 y posibilitar análisis de tendencia de precio. Si el módulo de procesamiento de consulta 52 no puede recuperar datos de las fuentes de datos de extremo trasero 58 que coinciden con la respuesta seleccionada 62, tal como si los datos en los que estaba basada la respuesta seleccionada 62 se han eliminado de las fuentes de datos de extremo trasero 58, a continuación la GUI 61 puede notificar al usuario de la existencia de la respuesta seleccionada 62, y actualizar la base de datos de respuestas 56 en consecuencia (por ejemplo, borrar la respuesta seleccionada 62, indicar de otra manera que la respuesta seleccionada 62 ya no está disponible más).
Además, la GUI 61 puede posibilitar que un usuario seleccione una o más respuestas 62 en las que él o ella está interesado, y solicitar un resumen de tales respuestas seleccionadas 62 mediante un correo electrónico. En respuesta, el módulo de procesamiento de consulta 52 puede generar y enviar un correo electrónico que visualiza detalles de cada respuesta seleccionada 62.
Además, después de que se generan las respuestas 62 para una consulta de búsqueda 60 y se almacenan en la base de datos de respuestas 56, los usuarios pueden utilizar la GUI 61 para suscribirse a una o más de las respuestas 62. De esta manera, el usuario puede designar respuestas 62 que son de un interés particular, y solicitar las notificaciones 64 cuando, debido a un refresco, la respuesta 62 experimenta un cambio significativo. El procesamiento de las respuestas 62 que incluyen suscripciones se describe en mayor detalle a continuación con referencia a las Figuras 10 y 11.
La Figura 5 ilustra un proceso 200 para recuperar los datos de origen de las fuentes de datos de extremo trasero 58, tal como en el bloque 110 del proceso 100 (Figura 3). Más particularmente, el proceso 200 ilustra una realización del algoritmo de optimización iterativo que puede utilizarse para recuperar los datos de origen de las fuentes de datos de extremo trasero 58. El proceso 200 puede realizarse por el módulo de procesamiento de consulta 52 de la arquitectura de procesamiento 50.
En el bloque 202, pueden recuperarse datos de extremo trasero iniciales que incluyen una porción de los datos de origen de una o más de las fuentes de datos de extremo trasero 58, tal como basándose en al menos uno de los criterios de búsqueda de la consulta de búsqueda 60. En general, la una o más fuentes de datos de extremo trasero 58 pueden incluir múltiples fuentes de datos de extremo trasero 58, y cada fuente de datos de extremo trasero 58 puede estar asociada con un proveedor de servicio diferente, tal como una aerolínea o un hotel, o un tipo diferente producto de viaje. Además, cada fuente de datos de extremo trasero 58 puede incluir datos que representan productos o resultados que podrían incluirse en una respuesta 62 generada por el módulo de procesamiento de consulta 52.
Una respuesta 62 generada por el módulo de procesamiento de consulta 52 para una consulta de búsqueda 60 a menudo incluye productos o resultados que tienen una dependencia inherente. Por ejemplo, una respuesta 62 en forma de una solución de viaje que incluye conectar productos de viajes aéreos implica que, si se reservan los productos de viaje de la solución de viaje, el último producto de viaje aéreo no será usable hasta que se use después del producto de viaje aéreo anterior. De manera similar, una respuesta 62 en forma de una solución de viaje que incluye un producto de viaje aéreo y un producto de viaje de hotel implica que, si se reservan los productos de viaje de la solución de viaje, el producto de viaje de hotel no será usable hasta después de que se use el producto de viaje aéreo.
Por lo tanto, en lugar de simplemente buscar todos los datos almacenados en las fuentes de datos de extremo trasero 58 que son potencialmente relevantes para una consulta de búsqueda 60 (por ejemplo, para un deseo de viaje que indica un interés en productos de viaje de hotel y productos de viaje aéreo, buscando simplemente todas las fuentes de datos de extremo trasero 58 que se refieren a productos de viaje de hotel y productos de viaje aéreos), el módulo de procesamiento de consulta 52 puede estar configurado para realizar la búsqueda en iteraciones limitando inicialmente la búsqueda a únicamente alguno de los datos relevantes, tal como los datos relevantes para un tipo de producto o resultado del que dependerá otro tipo de producto o resultado. De esta manera, y como se hará más evidente a continuación, el módulo de procesamiento de consulta 52 evita recuperar datos para productos o resultados dependientes que se descartan más tarde debido a un fallo para no cubrir datos para productos o resultados satisfactorios (por ejemplo, productos o resultados que son de interés para el usuario basándose en los criterios de viaje y pesos asignados) que posibilitarán la utilización de los productos o resultados
dependientes. En consecuencia, se minimiza la cantidad total de datos que se devuelve al módulo de procesamiento de consulta 52 de las fuentes de datos de extremo trasero 58 para procesar, reduciendo de esta manera la el consumo global sobre recursos de sistema cuando se generan respuestas 62.
Por ejemplo, en una realización, la consulta de búsqueda 60 puede ser un deseo de viaje que incluye criterios de viaje que indican un interés en productos de viaje de transporte (por ejemplo, aéreos y de tren) y productos de viaje de hotel, e incluye criterios de viaje adicionales para cada tipo de producto de viaje. En este caso, puesto que el uso de cualquier producto de viaje de hotel puede depender del uso anterior de un producto de viaje de transporte, el módulo de procesamiento de consulta 52 puede comenzar a recuperar datos de extremo tarsero para el deseo de viaje limitando inicialmente una búsqueda de las fuentes de datos de extremo trasero 58 a los datos almacenados en el mismo que se refieren a productos de transporte. Por ejemplo, el módulo de procesamiento de consulta 52 puede limitar la búsqueda inicial a datos almacenados en aquellas fuentes de datos de extremo trasero 58 asociadas con un proveedor de servicio de transporte (por ejemplo, una línea aérea o de tren). El módulo de procesamiento de consulta 52 puede estrechar adicionalmente la búsqueda basándose en uno o más de los criterios de viaje en el deseo de viaje, tal como uno o más de los criterios de viaje que son particularmente relevantes a productos de viaje de transporte (por ejemplo, fechas, presupuesto, lugar de llegada, lugar de salida, clase de reserva, marca preferida, y número de escalas). Las limitaciones aplicadas por el módulo de procesamiento de consulta 52 en esta búsqueda inicial asegurarán que los datos de extremo trasero iniciales recibidos de las fuentes de datos de extremo trasero 58 únicamente incluyen resultados en forma de productos de viaje de transporte relevantes para el deseo de viaje.
En el bloque 204, los datos de extremo trasero iniciales pueden filtrarse basándose en uno o más umbrales de satisfacción y uno o más de los criterios de búsqueda que son relevantes para los datos de extremo trasero iniciales. Más particularmente, los datos de extremo trasero iniciales puede incluir múltiples resultados recuperados de las fuentes de datos de extremo trasero 58, tal como múltiples productos de viaje de transporte. El módulo de procesamiento de consulta 52 puede comparar cada resultado con una o más porciones de los criterios de búsqueda de la consulta de búsqueda 60, que pueden incluir el uno o más criterios de búsqueda en los que estaba basada la recuperación de los datos de extremo trasero iniciales, que son particularmente relevantes para los resultados para determinar un valor de satisfacción parcial o de capa (LSV) para cada resultado. Por ejemplo, cuando cada resultado en los datos de extremo trasero iniciales es un producto de viaje de transporte, el módulo de procesamiento de consulta 52 puede comparar cada producto de viaje de transporte con una o más porciones de los criterios de viaje relevantes para transporte para determinar un LSV para cada producto de transporte. Posteriormente, el módulo de procesamiento de consulta 52 puede comparar el LSV para cada resultado con un umbral de satisfacción determinado o especificado, y filtrar los resultados determinando cada resultado para los que el LSV es mayor o igual que el umbral de satisfacción. En otras palabras, pueden descartarse estos resultados para los que el LSV es menor que el umbral de satisfacción, y pueden retenerse aquellos resultados para los que el LSV es mayor o igual que el umbral de satisfacción. Los datos de extremo trasero iniciales filtrados pueden considerarse por lo tanto que incluyen los resultados filtrados o mantenidos, es decir, los resultados de los datos de extremo trasero iniciales para los que el LSV es mayor o igual que el umbral de satisfacción.
En algunas realizaciones, este proceso puede repetirse de manera que se filtran los datos de extremo trasero iniciales en múltiples capas. Por ejemplo, después de que se han filtrado los resultados en los datos de extremo trasero iniciales en una capa inicial, tal como se ha descrito en el párrafo anterior, el módulo de procesamiento de consulta 52 puede aplicar otra capa en la que se comparan los resultados mantenidos con criterios adicionales de búsqueda relevantes para los resultados, que pueden incluir uno o más de los criterios de búsqueda que se utilizaron para recuperar los datos de extremo trasero iniciales y/o no se compararon en la capa inicial. Similar a la capa inicial, puede determinarse otro LSV para cada resultado mantenido basándose en la comparación, y los resultados mantenidos pueden filtrase determinando cada resultado mantenido para el que el LSV es mayor que un umbral de satisfacción determinado o especificado para la capa actual. En este caso, los datos de extremo trasero iniciales filtrados puede considerarse que incluyen los resultados filtrados o mantenidos que permanecen después de que se aplica la última capa de filtración a los datos de extremo trasero iniciales.
Cuando se filtran los datos de extremo trasero iniciales en múltiples capas, los criterios de búsqueda comparados en la capa inicial pueden ser relativamente generales, y los criterios de búsqueda comparados en cada capa posterior pueden ser cada vez más específicos. Por ejemplo, cuando cada resultado en los datos de extremo trasero iniciales es un producto de viaje de transporte, en la capa inicial, los resultados pueden compararse con criterios de viaje generales de un deseo de viaje que se refieren al transporte, tal como una fecha, un precio, una salida y un lugar de llegada definido en el deseo de viaje. Posteriormente, en una capa posterior, pueden compararse los resultados mantenidos con criterios de viaje cada vez más específicos con relación al transporte, tal como una clase, una marca, un número de conexiones, y un tipo de transporte definido en el deseo de viaje. Las capas adicionales pueden usarse para filtrar los datos de extremo trasero iniciales que el número de capas descritas en el presente documento, y pueden compararse más o menos criterios de búsqueda en cada capa que aquellos descritos en el presente documento.
En una realización, comparar resultados en los datos de extremo trasero iniciales a uno o más criterios de búsqueda puede incluir aplicar una o más funciones difusas a cada resultado para calcular un LSV para cada resultado. En particular, puede determinarse una función difusa f(x¡) para cada criterio de búsqueda que se compara, donde f() es
la función difusa para el criterio de orden i que se está comparando, y Xi representa el valor de un resultado para el criterio de orden i que se está comparando. La función difusa determinada para un criterio de búsqueda dado puede derivarse a partir del valor definido por el usuario para el criterio de búsqueda en la consulta de búsqueda 60. Cuando se aplica a un resultado dado, cada función difusa puede emitir un valor para el resultado con relación al criterio asociado con la función difusa (es decir, el criterio para el que se determina la función difusa). Un LSV puede a continuación determinarse para el resultado basándose en los valores generados por cada función difusa.
Cuando los usuarios crean consultas de búsqueda 60 tal como un deseo de viaje, están típicamente solicitando la recepción de las respuestas 62 que satisfacen los criterios de búsqueda de la consulta de búsqueda 60 tanto como sea posible. Como se ha descrito anteriormente, para definir adicionalmente una consulta de búsqueda 60, un usuario puede declarar la importancia de cada criterio de búsqueda asignando un peso a cada criterio, tal como usando la GUI 61, de manera que cada criterio está asociado con un peso. Por consiguiente, en algunas realizaciones, aplicar una o más funciones difusas a un resultado para calcular un LSV para el resultado puede comprender multiplicar cada función difusa, o el valor emitido por cada función difusa, por el peso asignado al criterio para el que se determina la función difusa. Posteriormente, el LSV para un resultado puede calcularse sumando cada función o valor difuso multiplicado. Más particularmente, el LSV para un resultado puede calcularse usando la siguiente fórmula:
ir= o /¿ (*¿ )*w ¿
LSV =
ow i
donde fi es una función difusa para el criterio de orden i, Xi es el valor para el criterio de orden i para el resultado dado, y Wi es el peso asignado al criterio de orden i. Cada LSV calculado para un resultado puede pertenecer al intervalo [0,1]. Aunque se expone una formación de LSV ejemplar, pueden utilizarse otras fórmulas de LSV dependiendo del tipo de resultados para los que se están calculando el LSV (por ejemplo resultados relacionados con hotel, resultados relacionados con transporte y así sucesivamente).
La Figura 6 ilustra un gráfico de una función difusa ejemplar que puede determinarse para un deseo de viaje que indica un interés en productos de viaje de transporte y define un presupuesto de quinientos euros. De acuerdo con el gráfico ilustrado, si un producto de viaje de transporte devuelto de las fuentes de datos de extremo trasero 58 tiene un precio de quinientos euros o menor, la función difusa devolverá un valor de uno, que indica que el usuario estará muy satisfecho con el producto de viaje de transporte en términos de presupuesto. Como alternativa, si el precio de un producto de viaje de transporte devuelto es más de quinientos euros, la función difusa devolverá un valor de menos de uno, que indica que el usuario estará menos que completamente satisfecho con el producto de viaje de transporte en relación con el presupuesto. Cuanto más alto es el precio de un producto de viaje de transporte por debajo de quinientos euros, menos satisfecho estará el usuario con relación al presupuesto. Dependiendo del criterio, pueden utilizarse diferentes formas (por ejemplo, triángulo, trapezoides y cuadrados) para las funciones difusas, y tales formas pueden personalizarse por el usuario mediante la GUI 61.
Haciendo referencia de nuevo a la Figura 5, en el bloque 206, puede realizarse otra iteración de recuperación de datos en la que pueden recuperarse datos de extremo trasero adicionales, que puede incluir análogamente una porción de los datos de origen, de una o más de las fuentes de datos de extremo trasero 58 basándose en los datos de extremo trasero iniciales filtrados, y/o basándose en uno o más de los criterios de búsqueda de la consulta de búsqueda 60. De esta manera, los datos de extremo trasero adicionales pueden incluir resultados que son compatibles con los resultados restantes en los datos de extremo trasero iniciales filtrados, y/o que son relevantes para el uno o más criterios de búsqueda utilizados para recuperar los datos de extremo trasero adicionales. En otras palabras, cada resultado en los datos de extremo trasero adicionales puede usarse después de que se utilice uno o más de los resultados en los datos de extremo trasero iniciales filtrados. En algunas realizaciones, la una o más fuentes de datos de extremo trasero 58 a partir de las cuales se recuperan los datos de extremo trasero adicionales puede diferir de la una o más fuentes de datos de extremo trasero 58 a partir de las cuales se recuperan los datos de extremo trasero iniciales, y los criterios de búsqueda en los que está basada la recuperación de los datos de extremo trasero adicionales pueden diferir de los criterios de búsqueda en los que está basada la recuperación de los datos de extremo trasero iniciales.
Por ejemplo, cuando la consulta de búsqueda 60 es un deseo de viaje que incluye criterios de viaje que indican un interés en productos de viaje de transporte y productos de viaje de hotel, e incluye criterios de viaje adicionales para cada tipo de producto de viaje, los datos de extremo trasero iniciales filtrados pueden incluir múltiples productos de viaje de transporte en los que el usuario es probable que esté interesado y que se recuperaron de una o más de las fuentes de datos de extremo trasero 58 que incluyen información relacionada con productos de viaje de transporte. Después de que se determinan los datos de extremo trasero iniciales filtrados, el módulo de procesamiento de consulta 52 puede consultar una o más diferentes de las fuentes de datos de extremo trasero 58 que incluyen información relacionada con los productos de viaje de hotel para una pluralidad de productos de viaje de hotel que son compatibles con los productos de transporte en los datos de extremo trasero iniciales filtrados, y/o que son relevantes para uno o más de los criterios de viaje relacionados con productos de viaje de hotel definidos en el deseo de viaje. Estrechando la búsqueda de las fuentes de datos de extremo trasero posteriores 58 basándose en
los datos de extremo trasero iniciales filtrados y/o uno o más criterios de viaje relacionados con el hotel, se reduce la cantidad de datos devueltos de las fuentes de datos de extremo trasero posteriores 58. Como resultado, necesitan procesarse menos datos por el módulo de procesamiento de consulta 52 para generar las soluciones de viaje para el deseo de viaje, que da como resultado tiempo de procesamiento más rápido y minimiza el consumo en recursos de sistema.
En el bloque 208, los datos de extremo trasero adicionales pueden filtrarse basándose en uno o más umbrales de satisfacción, que pueden diferir o no del uno o más umbrales de satisfacción usados para filtrar los datos de extremo trasero iniciales, y una o más porciones de los criterios de búsqueda que son relevantes para los datos de extremo trasero adicionales. Más particularmente, pueden aplicarse una o más capas adicionales de filtración a los datos de extremo trasero adicionales en los que se comparan los resultados de los datos de extremo trasero adicionales con una o más porciones de los criterios de búsqueda de la consulta de búsqueda 60 que son relevantes para los datos de extremo trasero adicionales. La aplicación de cada una de estas capas adicionales puede realizarse de una misma manera o similar como se ha descrito anteriormente para los datos de extremo trasero iniciales recuperados de las fuentes de datos de extremo trasero 58. En consecuencia, los datos de extremo trasero adicionales filtrados puede considerarse que incluyen los resultados filtrados o retenidos de los datos de extremo trasero adicionales que permanecen después de que se aplique una última capa de filtración a los datos de extremo trasero adicionales.
En algunas realizaciones, puede realizarse una o más iteraciones adicionales de recuperación y/o filtración de datos de las fuentes de datos de extremo trasero 58, tal como si un deseo de viaje indicara tres o más tipos de productos de viaje, marcas, etc. Para este fin, después de que se aplica el bloque 208, el proceso 200 puede devolver de vuelta al bloque 206 para recuperar datos adicionales de las fuentes de datos de extremo trasero 58 basándose en porciones de los criterios de búsqueda adicionales y datos previamente filtrados. En algunas realizaciones, cada iteración posterior de recuperación de datos puede implicar una diferente de una o más de las fuentes de datos de extremo trasero 58 que son específicos al tipo de datos que se están recuperando en la iteración (por ejemplo, específico a los productos de viaje hotel, a productos de viaje de transporte, a un tipo de producto de viaje de transporte tal como aéreo, a una marca particular, y así sucesivamente).
Los datos de origen recuperados de la una o más fuentes de datos de extremo trasero 58 pueden estar basados en o incluir al menos una porción de cada dato filtrado recuperado de las fuentes de datos de extremo trasero 58, tal como al menos una porción de los datos iniciales filtrados y al menos una porción de los datos adicionales filtrados. En consecuencia, la generación de respuestas 62 para una consulta de búsqueda 60 basándose en los datos de origen recuperados de las fuentes de datos de extremo trasero 58 puede comprender la generación de las respuestas 62 basándose en los datos de extremo trasero iniciales filtrados, datos de extremo trasero adicionales filtrados, y cualesquiera otros datos filtrados recuperados de las fuentes de datos de extremo trasero 58. Por ejemplo, cada respuesta 62 puede incluir y/o agregar un resultado o producto de los datos de extremo trasero iniciales filtrados y un resultado o producto de los datos de extremo trasero adicionales filtrados.
La Figura 7 ilustra un ejemplo específico del algoritmo de optimización iterativo descrito en la Figura 6. Más particularmente, el ejemplo incluye un total de tres capas de filtración que se aplican a datos recuperados de las fuentes de datos de extremo trasero 58 para un deseo de viaje que indica un interés en productos de viaje de transporte, o más particularmente un interés en productos de transporte aéreo y productos de viaje de tren, y productos de viaje de hotel, y que define criterios de viaje para cada uno. Las tres capas pueden incluir una capa general L1, una capa de transporte L2, y una capa de destino L3.
Para comenzar, debido a que el uso de un producto de viaje de hotel puede depender del uso anterior de un producto de viaje de transporte, el módulo de procesamiento de consulta 52 puede consultar inicialmente las fuentes de datos de extremo trasero 58 para datos que se refieren a productos de viaje de transporte basándose en uno o más de los criterios de viaje del deseo de viaje que son relevantes para transporte. En particular, el módulo de procesamiento de consulta 52 puede limitar esta búsqueda a aquellas fuentes de datos de extremo trasero 58 que incluyen datos indicativos de precios y disponibilidad de productos de transporte relevantes. Por consiguiente, en respuesta a emitir la consulta, el módulo de procesamiento de consulta 52 puede recibir datos de extremo trasero iniciales de las fuentes de datos de extremo trasero 58 que indican los precios y disponibilidad de múltiples productos de viaje de transporte. En este ejemplo, los múltiples productos de viaje de transporte incluyen vuelo 1, vuelo 2, tren 1, tren 2 y tren 3.
Posteriormente, el módulo de procesamiento de consulta 52 puede comenzar a filtrar los datos de extremo trasero iniciales aplicando la capa general L1. En la capa general L1, los productos de viaje de transporte pueden compararse a criterios de viaje generales que son relevantes para transporte y que se definen en el deseo de viaje, tal como fecha, presupuesto, lugar de salida y lugar de llegada. El módulo de procesamiento de consulta 52 puede a continuación determinar un LSV para cada producto de viaje de transporte basándose en estas comparaciones, y puede comparar el LSV de cada producto de viaje de transporte a un umbral de satisfacción determinado o especificado para la capa general L1. Estos productos de viaje de transporte que ya no son mayores o iguales que el umbral de satisfacción pueden descartarse, y los otros pueden mantenerse. En este ejemplo, el vuelo 1, vuelo 2, tren 1, y tren 2 se mantienen después de que se descarta la aplicación de la capa general L1 y el tren 3.
Posteriormente, el módulo de procesamiento de consulta 52 puede aplicar la capa de transporte L2 a los productos de viaje de transporte mantenidos después de la capa general L1. En la capa de transporte L2, los productos de viaje de transporte mantenidos pueden compararse a criterios de viaje que son relevantes para transporte y definidos en el deseo de viaje, y que también son específicos que aquellos comparados en la capa general L1. Tales criterios de viaje pueden incluir clase, marca, número de conexiones y tipo de transporte (por ejemplo, aéreo o tren). De nuevo, el módulo de procesamiento de consulta 52 puede determinar un LSV para cada producto de viaje de transporte mantenido basándose en estas comparaciones, y, para determinar qué productos de viaje de transporte mantenidos deben continuar manteniéndose, puede comparar el LSV de cada producto de viaje de transporte mantenido a un umbral de satisfacción determinado o especificado para la capa de transporte L2. En este ejemplo, el vuelo 1, vuelo 2, y tren 1 continúan manteniéndose después de que se descarta la aplicación de la capa de transporte L2 y el tren 2.
En este punto, el módulo de procesamiento de consulta 52 puede consultar las fuentes de datos de extremo trasero 58 para datos de extremo trasero adicionales indicativos de productos de viaje de hotel basándose en los productos de viaje de transporte que permanecen después de la aplicación de la capa de transporte L2, y posiblemente basándose en el uno o más de los criterios de viaje relacionados con hotel definidos en el deseo de viaje. Más particularmente, el módulo de procesamiento de consulta 52 puede limitar la búsqueda a aquellas fuentes de datos de extremo trasero 58 que incluyen datos de precios y disponibilidad para productos de viaje de hotel, y estrechar la búsqueda basándose en los detalles de los productos de viaje de transporte restantes, tales como la fecha, hora de salida, hora de llegada y ubicación de llegada asociada con cada producto de viaje de transporte restante. En otras palabras, para cada producto de viaje de transporte restante, el módulo de procesamiento de consulta 52 puede buscar las fuentes de datos de extremo trasero 58 para productos de viaje de hotel que funcionarán o serán compatibles con el producto de viaje de transporte, y que pueden ser relevantes a uno o más criterios de viaje específicos de hotel del deseo de viaje.
Puesto que el número de productos de viaje de transporte restantes puede minimizarse para incluir únicamente aquellos que es más probable que sean satisfactorios con relación a los criterios de viaje del deseo de viaje, el número de productos de viaje de hotel devueltos de las fuentes de datos de extremo trasero 58 se minimiza análogamente a aquellos que, al menos cuando se combinan con los productos de transporte restantes, es más probable que sean de interés para el usuario. En consecuencia, se reduce la cantidad de datos que se devuelven al módulo de procesamiento de consulta 52 de las fuentes de datos de extremo trasero 58, mientras que se mejora la calidad global de los datos recibidos con relación a la satisfacción del usuario. Como resultado, el módulo de procesamiento de consulta 52 puede generar mejores soluciones de viaje más rápido. En este ejemplo, los productos de viaje de hotel devueltos de las fuentes de datos de extremo trasero 58 incluyen el hotel 1, hotel 2, hotel 3, hotel 4 y hotel 5.
Después de que se reciben los productos de viaje de hotel, el módulo de procesamiento de consulta 52 puede apilar la capa de destino L3 a los productos de viaje de hotel. En la capa de destino L3, los productos de viaje de hotel pueden compararse a criterios de viaje específicos de destino/hotel que se definen en el deseo de viaje, tal como la ubicación dentro de un área, distancia de un aeropuerto, calificaciones, comodidades y eventos. Como anteriormente, el módulo de procesamiento de consulta 52 puede determinar a continuación un LSV para cada producto de viaje de hotel basándose en estas comparaciones, y puede comparar el LSV de cada producto de viaje de hotel a un umbral de satisfacción determinado o especificado para la capa de destino L3. Aquellos que no son mayores o iguales al umbral de satisfacción pueden descartarse, y los otros pueden mantenerse. En este ejemplo, se mantienen los hoteles 1, 2, y 4, y se descartan los hoteles 3 y 5.
Después de que se filtran los productos de viaje de hotel para que incluyan únicamente aquellos que es más probable que satisfagan al usuario, puede considerarse que se recuperan los datos de origen para el deseo de viaje (bloque 110 de la Figura 4), y pueden generarse respuestas 62 (es decir, soluciones de viaje) para el deseo de viaje basándose en los datos de origen recuperados (bloque 112, la Figura 4). Específicamente, el módulo de procesamiento de consulta 52 puede combinar los productos de viaje de transporte que permanecen en los datos de extremo trasero iniciales filtrados con los productos de viaje de hotel que quedan en los datos de extremo trasero adicionales filtrados basándose en su compatibilidad. En otras palabras, cada producto de transporte puede emparejarse con los productos de viaje de hotel que se devolvieron basándose en el producto de viaje de transporte. En este caso, el vuelo 1 se empareja con el hotel 1 y el hotel 2, el vuelo 2 se empareja con el hotel 1, y el tren 1 se empareja con el hotel 4. Cada una de estas combinaciones puede almacenarse como una solución de viaje para el deseo de viaje, tal como en la base de datos de respuestas 56, y si la notificación determinada es elegible, puede incluirse en una notificación 64 enviada al usuario.
Por lo tanto, el algoritmo de optimización iterativo posibilita que el módulo de procesamiento de consulta 52 analice datos recuperados de las fuentes de datos de extremo trasero 58 capa a capa, y filtrar aquellos productos o resultados que no son prometedores con relación a los criterios de búsqueda definidos por el usuario. De esta manera, cuando se recuperan datos de extremo trasero adicionales de las fuentes de datos de extremo trasero 58, la cantidad de datos devueltos está limitada basándose en los datos previamente filtrados recuperados de las fuentes de datos de extremo trasero 58. En consecuencia, el algoritmo de optimización iterativo reduce la cantidad de datos global que se devuelve de las fuentes de datos de extremo trasero 58 mientras que aumenta la calidad de
los datos que se devuelve con relación a una consulta de búsqueda 60 emitida por un usuario, que posibilita la generación de mejores respuestas 62 más rápido.
Como se ha descrito anteriormente, generar respuestas 62 de datos de origen recuperados para una consulta de búsqueda 60 puede incluir calcular un RSV para cada respuesta 62. En algunas realizaciones, el RSV para una respuesta dada 62 puede ser igual a la multiplicación de los LSV normalizados o no normalizados calculados para cada resultado en el que está basada la respuesta 62. Por ejemplo, con referencia al ejemplo de tres capas anterior, el valor de satisfacción para cada solución de viaje puede ser igual a la multiplicación de cada LSV no normalizado, en concreto:
donde n es igual al número de criterios de búsqueda comparados en la capa general L1, m es igual al número de criterios de búsqueda comparados en la capa de transporte L2, y p es igual al número de criterios de búsqueda comparados en la capa de destino L3. Bajo esta fórmula, los resultados de las fuentes de datos de extremo trasero 58 que se consideran en capas posteriores tienen un impacto de compatibilidad hacia atrás en los resultados considerados en capas anteriores con relación al RSV. De esta manera, si una respuesta 62 incluye una combinación de un resultado realmente bueno considerado en una capa anterior con relación a los criterios de búsqueda con un resultado considerado en una capa posterior que no es tan bueno con relación a los criterios de búsqueda, el resultado considerado más último impactará negativamente el resultado considerado más anterior con respecto al RSV de la respuesta 62. Cada RSV puede normalizarse para que esté en el intervalo de [0,100].
La Figura 8 ilustra un proceso 300 para refrescar respuestas 62 previamente generadas y almacenadas para una consulta de búsqueda 60. El proceso 300 puede realizarse por el módulo de procesamiento de consulta 52 de la arquitectura de procesamiento 50.
En el bloque 302, los datos de origen relacionados con las respuestas 62 anteriores pueden recuperarse o recibirse automáticamente de las fuentes de datos de extremo trasero 58. Con respecto a recibir datos automáticamente, cada vez que tiene lugar un cambio que se refiere a una o más de las respuestas 62 anteriores en las fuentes de datos de extremo trasero 58 (por ejemplo, un cambio, tal como un cambio de precios, a un resultado o producto que se almacenó previamente en las fuentes de datos de extremo trasero 58 y que se sirvieron como una base para una respuesta previamente generada 62), las fuentes de datos de extremo trasero 58, o un módulo de extensión asociado con el mismo, pueden activar automáticamente un mecanismo de envío para enviar datos indicativos del cambio al módulo de procesamiento de consulta 52. Por ejemplo, los datos pueden extraerse de la fuente de datos de extremo trasero específica 58 en la que tiene lugar el cambio. Como alternativa, en lugar de enviar datos para cambios que se refieren específicamente a una o más de las respuestas almacenadas 62, cada fuente de datos de extremo trasero 58, o un módulo de módulo de extensión asociado con el mismo, puede enviar automáticamente datos indicativos de cualquier cambio que tiene lugar en la misma, independientemente de si tal cambio afecta a una respuesta anterior 62. El uso del módulo de extensión posibilita que cada fuente de datos de extremo trasero 58 se adapte con la capacidad para proporcionar notificaciones en tiempo real de cambios de datos al módulo de procesamiento de consulta 52 sin tener que reconfigurarse completamente. Tales notificaciones en tiempo real de cambios a productos o resultados previamente almacenados en las fuentes de datos de extremo trasero 58 producen una consistencia intensa entre las fuentes de datos de extremo trasero 58 y la arquitectura de procesamiento 50, que posibilita que la arquitectura de procesamiento 50 notifique al usuario de respuestas interesantes 62 más rápido.
Con respecto a recuperar datos automáticamente, el módulo de procesamiento de consulta 52 puede estar configurado para activar un mecanismo de extracción para extraer, o al menos intentar extraer, a periodos regulares o irregulares (por ejemplo, dos veces a la semana), datos de las fuentes de datos de extremo trasero 58 que se refieren a las respuestas previas 62. Más particularmente, el módulo de procesamiento de consulta 52 puede consultar las fuentes de datos de extremo trasero 58 para resultados y productos en los que estaban basadas las respuestas previamente almacenadas 62. De esta manera, el módulo de procesamiento de consulta 52 recuperará cualesquiera cambios que han tenido lugar en las fuentes de datos de extremo trasero 58 que pueden afectar las respuestas previas 62.
En el bloque 304, pueden recuperare las respuestas previas 62 relacionadas con los datos de origen recibidos o recuperados, tal como de la base de datos de respuestas 56. Cuando los datos indicativos de cambio se envían automáticamente de las fuentes de datos de extremo trasero 58, el módulo de procesamiento de consulta 52 puede recuperar las respuestas 62 como se ilustra en el proceso 200 (es decir, después y/o en respuesta a que se reciban los datos). Sin embargo, cuando se recuperan los datos relacionados con las respuestas 62 de las fuentes de datos de extremo trasero 58 a periodos regulares o irregulares, el módulo de procesamiento de consulta 52 puede recuperar las respuestas relacionadas 62 antes de consultar las fuentes de datos de extremo trasero 58. De esta manera, el módulo de procesamiento de consulta 52 tiene conocimiento de qué datos recuperar, o al menos intentar recuperar, de las fuentes de datos de extremo trasero 58 mediante el mecanismo de envío.
En el bloque 306, una o más de las respuestas recuperadas 62 pueden actualizarse basándose en los datos de origen recuperados o recibidos. En el caso de datos recibidos, el bloque 306 puede incluir recalcular el RSV para una o más de las respuestas recuperadas 62 basándose en los datos recibidos. En el caso de los datos recuperados, el bloque 306 puede incluir hacer coincidir los datos recuperados con las respuestas recuperadas 62, determinar cuáles de las respuestas recuperadas 62 ya no son precisas basándose en la coincidencia, y actualizar aquellas respuestas 62 en consecuencia, que puede incluir análogamente recalcular el RSV para cada respuesta 62.
El bloque 306 puede incluir determinar también aquellas respuestas recuperadas 62 que ya no están disponibles basándose en los datos de origen recibidos o recuperados. Por ejemplo, los datos de origen recibidos o recuperados pueden indicar que un vuelo incluido en una solución de viaje previamente generada está ahora lleno o cancelado. Como otro ejemplo, en el caso de los datos recuperados, si una de las respuestas 62 no puede hacerse coincidir completamente con los datos recuperados, tal como puesto que no se devuelven datos de las fuentes de datos de extremo trasero 58 para un resultado o producto en la respuesta 62, entonces la respuesta 62 puede ya no estar disponible. Estas respuestas 62 pueden actualizase y etiquetarse o indicarse de otra manera como que ya no están disponibles.
En el bloque 308, la base de datos de respuestas 56 puede actualizarse basándose en las respuestas actualizadas 62. Más particularmente, cada respuesta recuperada 62 que se cambió o actualizó en el bloque 306 se actualiza en la base de datos de respuestas 56. Como alternativa, las respuestas cambiadas o actualizadas 62 pueden añadirse a la base de datos de respuestas 56 junto con sus versiones anteriores, que posibilita el rastreo de la evolución de las respuestas 62. Adicionalmente, aquellas respuestas 62 determinadas que ya no están disponibles pueden borrarse de la base de datos de respuestas 56. Como alternativa, una indicación de que la respuesta 62 ya no está disponible más y/o no se soporta por los datos en las fuentes de datos de extremo trasero 58 puede añadirse a la base de datos de respuestas 56.
En el bloque 310, pueden procesarse las notificaciones 64 para cada una de las respuestas actualizadas 62 que se cambiaron o actualizaron. Más particularmente, puede realizarse una determinación de si cada una de las respuestas actualizadas 62 es elegible para notificación. En respuesta a la determinación de que una respuesta cambiada o actualizada 62 es elegible para notificación, puede notificarse al usuario de la respuesta actualizada 62.
La Figura 9 ilustra un proceso 400 para determinar si las respuestas 62 generadas para una nueva consulta de búsqueda 60 son elegibles para notificación. Más particularmente, la primera vez que se generan respuestas 62 para una consulta de búsqueda 60 (denominadas en lo sucesivo como "respuestas iniciales"), el proceso 400 puede determinar si, para cada respuesta inicial 62, debe notificarse al usuario de la respuesta inicial 62 inmediatamente o pronto posteriormente, notificarse de la respuesta inicial 62 en una siguiente notificación periódica 64, o no notificarse. El proceso 400 puede implementarse por el módulo de procesamiento de consulta 52 de la arquitectura de procesamiento 50, y puede tener lugar después de que se generan las respuestas 62 para una nueva consulta de búsqueda 60 (por ejemplo, en el bloque 116 de la Figura 4).
En el bloque 402, pueden recuperarse las respuestas iniciales 62 que se han generado para una nueva consulta de búsqueda 60, tal como de la base de datos de respuestas 56. Más particularmente, puede configurarse el módulo de procesamiento de consulta 52, a intervalos regulares o irregulares, para recuperar respuestas iniciales 62 que se han generado para una nueva consulta de búsqueda 60, tal como aquellas respuestas 62 generadas en los primeros bloques de tiempo 108 a través de los bloques 114 que se realizan para una consulta de búsqueda 60 en la Figura 4. Como alternativa, el módulo de procesamiento de consulta 52 puede comenzar a procesar la elegibilidad de notificación para respuestas iniciales 62 generadas para una nueva consulta de búsqueda 60 inmediatamente después de que se generan y/o almacenan las respuestas iniciales 62.
En el bloque 404, para cada respuesta inicial 62, puede realizarse una determinación de si el RSV para la respuesta inicial 62 es mayor o igual que un umbral de notificación determinado o especificado. Este umbral puede especificase por el usuario cuando se crea la consulta de búsqueda 60, puede preprogramarse en el módulo de procesamiento de consulta 52, tal como por un administrador de sistema u otro usuario, o puede determinarse empíricamente basándose en las respuestas iniciales 62 mismas (por ejemplo, el límite inferior de una ventana superior 604 de una escala de confianza 600, como se muestra en la Figura 12, puede representar el umbral de notificación). En respuesta a la determinación de que el RSV para una respuesta inicial recuperada 62 es mayor o igual que el umbral de notificación (ramal "Sí" del bloque 404), a continuación en el bloque 406, la respuesta inicial 62 puede etiquetarse como elegible para una notificación extra 64, que puede indicar al módulo de procesamiento de consulta 52 que el usuario debe notificarse inmediatamente de la respuesta inicial 62, o notificarse de la respuesta inicial 62 antes de la siguiente notificación periódica 64, si es posible. Sin embargo, en respuesta a la determinación de que la RSV para la respuesta inicial 62 es menor que el umbral de notificación determinado o específico (ramal "No" del bloque 404), a continuación en el bloque 408, puede realizarse otra determinación de si la respuesta inicial 62 es una de las mejores respuestas iniciales 62 generadas para la nueva consulta de búsqueda 60.
Más particularmente, para cada respuesta inicial 62 generada para una nueva consulta de búsqueda 60, el módulo de procesamiento de consulta 52 puede estar configurado para determinar si la respuesta 62 está dentro de un
subconjunto de las respuestas iniciales 62, donde el RSV para cada respuesta inicial 62 en el subconjunto es mayor que el RSV para cada respuesta inicial 62 no en el subconjunto. En otras palabras, el módulo de procesamiento de consulta 52 puede determinar las N mejores respuestas iniciales 62 de acuerdo con el RSV calculado para cada respuesta inicial 62, donde N puede seleccionarse por el usuario cuando se crea la consulta de búsqueda 60, o se determina empíricamente por el módulo de procesamiento de consulta 52. En respuesta a la determinación de que una respuesta inicial 62 es una de las N mejores respuestas iniciales 62 (ramal "Sí" del bloque 408), a continuación en el bloque 410, la respuesta inicial 62 puede etiquetarse como elegible para una siguiente notificación periódica 64 que se envía al usuario. Como alternativa, en respuesta a la determinación de que una respuesta inicial 62 no es una de las mejores N respuestas iniciales 62 (ramal "No" del bloque 408), a continuación en el bloque 412, puede realizarse una determinación de que la respuesta inicial 62 no es elegible para notificación.
En general, el fin de las notificaciones periódicas 64 es notificar al usuario de respuestas recientemente halladas o refrescadas 62 para una consulta de búsqueda dada 60 que es probable que sea interesante para el usuario. Para este fin, el usuario puede introducir, mediante la GUI 61, una frecuencia como parte de una consulta de búsqueda 60, tal como dos veces a mes o una vez al mes, en las que él o ella desea recibir notificaciones periódicas 64. La GUI 61 puede posibilitar también que un usuario cambie estos ajustes, u otros ajustes, después de la creación de la consulta de búsqueda 60. El número de respuestas 62 por notificación periódica 64, o cualquier otra notificación 64 generada por el módulo de procesamiento de consulta 52, puede limitarse, tal como por un administrador de sistema o por el usuario mediante la GUI 61. Por consiguiente, si, cuando se está generando una notificación periódica 64, hay más respuestas 62 etiquetadas para notificación periódica 64 que el límite, únicamente las mejores (basándose en el RSV) pueden incluirse en la notificación periódica 64. Para aquellas que no están incluidas, la notificación periódica 64 puede incluir un aviso de que pueden visualizarse respuestas interesantes adicionales 62 para la consulta de búsqueda 60 mediante la GUI 61. En algunas realizaciones, únicamente puede concederse a los usuarios VIP funcionalidad para ver tales respuestas interesantes adicionales 62 mediante la GUI 61.
La Figura 10 ilustra un proceso 500 para determinar si respuestas actualizadas 62 o nuevas respuestas 62 generadas para una consulta de búsqueda ya procesada 60, significan respuestas 62 generadas en una realización posterior de uno o más de los bloques 110 a 114 del proceso 100, que son elegibles para notificación. El proceso 500 puede realizarse por el módulo de procesamiento de consulta 52 de la arquitectura de procesamiento 50, y puede tener lugar en el bloque 116 del proceso 100 y el bloque 310 del proceso 300.
En el bloque 502, puede recuperarse cada una de las respuestas nuevas o actualizadas 62, tal como de la base de datos de respuestas 56. Más particularmente, el módulo de procesamiento de consulta 52, a periodos regulares o irregulares, puede consultar la base de datos de respuestas 56 para respuestas nuevas o actualizadas 62 que se han generado para consultas de búsqueda ya procesadas 60. En el bloque 504, para cada respuesta recuperada 62, puede realizarse una determinación de si la respuesta 62 incluye una suscripción. Como alternativa, tan pronto como se genera una respuesta nueva o actualizada 62, el módulo de procesamiento de consulta 52 puede estar configurado para hacer esta determinación. En cualquier caso, en respuesta a una determinación de que la respuesta 62 no incluye una suscripción (ramal "No" del bloque 504), a continuación en el bloque 506, la respuesta 62 puede añadirse a una cola de "prioridad baja". En respuesta a una determinación de que la respuesta 62 no incluye una suscripción (ramal "Sí" del bloque 504), a continuación en el bloque 508, la respuesta 62 puede añadirse a una cola de "prioridad alta". En consecuencia, todas las respuestas 62 almacenadas en la cola de prioridad alta pueden incluir suscripciones, y ninguna de las respuestas 62 almacenadas en la cola de prioridad baja puede incluir suscripciones.
Después de que se colocan las respuestas 62 en las colas, en el bloque 510, las respuestas 62 pueden recuperarse de las colas, empezando con aquellas en la cola de prioridad alta. Más particularmente, el módulo de procesamiento de consulta 52 puede estar configurado, tal como a intervalos regulares o irregulares, para recuperar y determinar la elegibilidad de notificación de cada respuesta 62 almacenada en la cola de prioridad alta, y una vez que la cola de prioridad alta está vacía, recuperar y determinar posteriormente la elegibilidad de notificación para cada respuesta 62 almacenada en la cola de prioridad baja. De esta manera, la respuesta 62 que se ha suscrito por el usuario se procesa para elegibilidad de notificación antes de cualquier otra respuesta nueva o actualizada 62.
Para cada respuesta 62 recuperada de las colas, en el bloque 512, puede realizarse una determinación de si la respuesta 62 proviene de la cola de prioridad alta o la cola de prioridad baja. Si la respuesta 62 proviene de la cola de prioridad alta (ramal "alta" del bloque 512), entonces la respuesta 62 incluye una suscripción. Por consiguiente, en el bloque 514, puede realizarse una determinación de si la respuesta 62 satisface un umbral de notificación de suscripción. Como alternativa, si una respuesta 62 proviene de la cola de prioridad baja (ramal "baja" del bloque 512), entonces el usuario no se ha suscrito a la respuesta 62. En este caso, en el bloque 516, puede realizarse una determinación de si la respuesta 62 satisface un umbral de notificación extra.
En algunas realizaciones, el umbral de suscripción puede incluir un intervalo asociado con un criterio particular, tal como el precio, que se calcula para cada respuesta suscrita 62 antes de que se actualice la respuesta 62. Más particularmente, cada respuesta suscrita 62 puede estar asociada con un precio y un intervalo de precios calculado. Si, tras actualizarse, el precio asociado con una respuesta suscrita 62 pasa el límite superior o el límite inferior del intervalo de precios asociado con la respuesta 62, entonces puede determinarse que la respuesta actualizada 62
satisface el umbral de notificación de suscripción (ramal "Sí" del bloque 514), y en respuesta, en el bloque 518, la respuesta 62 puede etiquetarse como elegible para una notificación de suscripción 64, que puede indicar que debe notificarse al usuario de la respuesta 62 inmediatamente, o al menos antes de la siguiente notificación periódica 64, si es posible. Como alternativa, si el precio asociado con la respuesta suscrita 62 no pasa el límite superior o el límite inferior del intervalo de precios asociado con la respuesta 62 tras actualizarse, entonces puede determinarse que la respuesta actualizada 62 no satisface el umbral de suscripción (ramal "No" del bloque 514), y por lo tanto puede realizarse una determinación en el bloque 516 de si la respuesta 62 de la cola de prioridad alta satisface el umbral de notificación extra.
El intervalo de precios calculado para cada respuesta suscrita 62 puede estar basado en un precio actual asociado con la respuesta 62 después de que la respuesta 62 se suscribe pero antes de que se actualice la respuesta 62. Más particularmente, cuando un usuario se suscribe a una respuesta 62, puede calcularse el intervalo de precios basándose en el precio actual que está asociado a continuación con la respuesta 62. Específicamente, puede calcularse el intervalo de precios usando la siguiente fórmula:
[precio actual — y% * precio actual; precio actual y% * precio actual]
donde y% es una proporción del precio actual. En algunas realizaciones, y% puede determinarse por la siguiente fórmula:
b * Va
y% =
—
V rx ~
donde x es el precio actual asociado con la respuesta suscrita 62, y b es un valor de amplitud (es decir, una y%) para un precio particular a. Esta fórmula por lo tanto es configurable con un único punto de a y b, que puede estar basado en los criterios de búsqueda de la consulta de búsqueda 60. Después de que se ha calculado el intervalo de precios, si se actualiza la respuesta 62, puede realizarse una determinación de si la actualización provoca que el precio asociado con la respuesta 62 pase fuera del intervalo de precios previamente calculado. En caso afirmativo, entonces puede etiquetarse la respuesta 62 para una notificación de suscripción 64.
La Figura 11 ilustra una curva que puede representar el valor de y% como el precio actualmente asociado con unos cambios de respuesta suscrita 62. En la realización ilustrada, cuando el precio actual asociado con una respuesta suscrita 62 es doscientos cincuenta euros, el valor de y% es 20 %. Por consiguiente, para que una versión actualizada de la respuesta 62 satisfaga el umbral de suscripción, el precio de la respuesta 62 tendrá que pasar trescientos euros o ir por debajo de doscientos euros, que son los respectivos límites superior e inferior del intervalo de precios. Como alternativa, si el precio actual asociado con una respuesta suscrita 62 es quinientos euros, entonces el valor de y% es el 10%. Por consiguiente, es necesario menos del cambio al precio asociado con la respuesta suscrita 62 para que la respuesta 62 satisfaga el umbral de suscripción. El intervalo de precios para una respuesta 62 puede reconstruirse únicamente, tal como usando las fórmulas anteriores, si se pasa el límite superior o inferior del intervalo de precios de la respuesta 62. En caso afirmativo, entonces puede calcularse un nuevo intervalo de precios para la respuesta 62 que está basado en el precio actual asociado con la versión actualizada de la respuesta 62.
Haciendo referencia de nuevo a la Figura 10, en respuesta a la determinación de que una respuesta 62 provenga de la cola de prioridad baja, o en respuesta a la determinación de que una respuesta suscrita 62 no satisface un umbral de notificación de suscripción, entonces en el bloque 516, puede realizarse una determinación de si la respuesta 62 satisface un umbral de notificación extra. El fin de la notificación extra 64 puede ser notificar inmediatamente al usuario de las respuestas 62 que es probable que sean muy interesantes para el usuario (por ejemplo, las respuestas 62 para las que el RSV es muy alto o significativamente mejor que otras respuestas 62), o al menos notificar al usuario de tales respuestas 62 antes de una siguiente notificación periódica 64.
En algunas realizaciones, si una respuesta 62 satisface un umbral de notificación extra puede estar basado en una escala de confianza generada para la consulta de búsqueda 60 para la que se genera la respuesta 62. En particular, después de que se genera un conjunto inicial de respuestas 62 para una consulta de búsqueda 60, o después de que se procesa una elegibilidad de notificación para respuestas nuevas o actualizadas 62 generadas para una consulta de búsqueda ya procesada 60, el módulo de procesamiento de consulta 52 puede estar configurado para generar una escala de confianza para la consulta de búsqueda 60 basándose en las respuestas actuales 62 para la consulta de búsqueda 60. La escala de confianza puede variar del 0 % al 100 %, y cada respuesta inicial 62 puede compararse a la escala de confianza de acuerdo con su RSV.
La Figura 12 ilustra una escala de confianza 600 generada para una consulta de búsqueda 60. La escala de confianza 600 puede incluir varios umbrales 602, estando asociado cada uno con un diferente RSV. En general, el módulo de procesamiento de consulta 52 puede utilizar los umbrales 602 para determinar si debe notificarse a un usuario de una respuesta 62 en una notificación extra 64 y/o una notificación periódica 64. El número y la colocación de los umbrales 602 en la escala de confianza 600 puede estar basado en la estrategia usada para calcular el RSV
de cada respuesta 62, y puede tener en cuenta la densidad y repartición del RSV de las respuestas 62 generadas para la consulta de búsqueda 60, y el cambio a una respuesta 62 que se desea que se requiera antes de que deba notificarse al usuario de la respuesta 62. Como se muestra en la realización ilustrada, la frecuencia de los umbrales 602 en la escala de confianza 600 aumenta a medida que aumenta el RSV. En consecuencia, la distancia entre dos umbrales consecutivos 602 en porciones de la escala de confianza 600 superiores puede ser menor que la distancia entre dos umbrales consecutivos 602 en porciones de la escala de confianza 600 inferiores, que funciona para aumentar las notificaciones 64 de más respuestas interesantes 62 con relación a menos respuestas interesantes 62 (es decir, aquellas respuestas 62 con RSV inferiores).
La escala de confianza 600 puede incluir adicionalmente una ventana superior 604 que es un intervalo que empieza desde un cierto umbral 602 en la escala de confianza 600 al valor máximo en la escala de confianza 600 (por ejemplo, el 100 %). Cuando el RSV calculado para una respuesta 62 está en la ventana superior 604, la respuesta 62 puede considerarse muy interesante para el usuario. Por consiguiente, si el RSV para una respuesta previamente generada 62 pasa en la ventana superior 604 después de que se actualice, o si el RSV para una respuesta nuevamente generada 62 se ubica en la ventana superior 604, a continuación el módulo de procesamiento de consulta 52 puede estar configurado para determinar que la respuesta 62 satisface un umbral de notificación extra (ramal "Sí" del bloque 516 en la Figura 9), y en respuesta, etiquetar la respuesta 62 como eligible para una notificación extra 64 (bloque 520 de la Figura 9). Como alternativa, si el RSV para una respuesta previamente generada 62 no pasa en la ventana superior 604 después de que se actualice, o el RSV para una respuesta nuevamente generada 62 no está ubicado dentro de la ventana superior 604, el módulo de procesamiento de consulta 52 puede estar configurado para determinar que la respuesta 62 falla al satisfacer un umbral de notificación extra (ramal "No" del bloque 516 en la Figura 9).
La escala de confianza 600, y más particularmente la ventana superior 604, puede definirse por consulta de búsqueda 60, y puede ser dinámica de manera que el límite inferior de la ventana superior 604 se recalcula después de que se generan y/o procesan respuestas nuevas y/o actualizadas 62 para elegibilidad de notificación. Específicamente, la ventana superior 604 puede calcularse basándose en el RSV de las respuestas más recientemente generadas y/o actuales 62, y ninguna respuesta histórica 62, ya que el fin de la ventana superior 604 es para destacar respuestas muy buenas 62 en el contexto actual. En general, la escala de confianza 600 debe ser compatible con el contexto de las respuestas actuales 62 para la consulta de búsqueda 60 para revelar aquellas respuestas "extrañas" 62 que es más probable que sean de interés para el usuario. Por ejemplo, una consulta de búsqueda 60 que tiene respuestas 62 para las que los RSV que están típicamente alrededor del 60 % pueden tener una ventana superior 604 que empieza desde alrededor del 80 %. De esta manera, si se genera periódicamente una respuesta 62 que tiene un RSV de más del 80 %, la respuesta 62 puede considerarse muy interesante para el usuario, que puede notificarse a continuación de la respuesta 62 en una notificación extra 64. Si empiezan a generarse mejores respuestas 62 de manera regular de manera que el RSV promedio de las respuestas actuales 62 se eleva alrededor del 70 %, entonces puede recalcularse el límite inferior de la ventana superior 604 y moverse hasta el 90 %.
Cuando se calcula el límite inferior de la ventana superior 604 para una consulta de búsqueda 60, puede tenerse en cuenta el promedio y la desviación típica de los RSV de las respuestas actuales 62 para la consulta de búsqueda 60. Las respuestas actuales 62 para una consulta de búsqueda 60 puede considerarse que incluyen cualquier respuesta 62 generada y almacenada para la consulta de búsqueda 60 que se cree actualmente que refleja de manera precisa los datos en las fuentes de datos de extremo trasero 58. Por ejemplo, las versiones previas de respuestas actualizadas 62 y las respuestas 62 que se indican como ya no más disponibles pueden excluirse del significado de respuestas actuales 62. En algunas realizaciones, puede calcularse el límite inferior de la ventana superior 604 para una consulta de búsqueda 60 usando la siguiente fórmula con relación a las respuestas actuales 62 de la consulta de búsqueda 60:
Límite inferior = Coef * Avg RSV a
donde Avg RSV es el promedio de los RSV de las respuestas actuales 62, y a es la desviación típica del RSV de las respuestas actuales 62. En general, Coef puede ser un valor variable que está basado en el Avg RSV de las respuestas actuales 62 y otras restricciones universales preprogramadas en el módulo de procesamiento de consulta 52, tal como por un administrador de sistema u otro usuario. En particular, Coef puede ser una función de restricciones universales aplicable a cualquiera y/o todas las respuestas 62, y del Avg RSV de las respuestas actuales 62. Basar Coef en tales restricciones universales y el Avg RSV de las respuestas actuales 62 puede posibilitar que un administrador u otro usuario manipule la ventana superior 604 para cada y/o todos los conjuntos de respuestas actuales 62 basándose en las preferencias del administrador o del usuario (es decir, las restricciones universales). Por ejemplo, en algunas realizaciones, el valor de Coef puede calcularse mediante la siguiente fórmula:
donde y l es un Coef dado que se desearía, tal como por un administrador de sistema u otro usuario, para un Avg
RSV dado (que es el valor de avgl), e y2 es un Coef dado que se desearía, tal como por un administrador de sistema u otro usuario, para un Avg RSV dado (que es el valor de avg2). Por ejemplo, suponiendo que a es cero, (avgl, y1) puede establecerse a (60 %, 1,33), que significa que cuando el Avg RSV es el 60 %, se desea que Coef sea 1,33. Sin embargo, este valor de Coef no funcionaría para un Avg RSV del 90 %, suponiendo que a es cero. 9 x 1,33 daría como resultado un límite inferior de 1,20 o 120 %, que es demasiado grande y no tiene sentido como un límite inferior. Por consiguiente, (avg2, y2) puede establecerse a (90 %, 1,06), que significa que cuando el Avg RSV es el 90 %, se desea que Coef sea 1,06.
Haciendo referencia de nuevo a la Figura 10, en respuesta a la determinación de que la respuesta 62 falla al satisfacer un umbral de notificación extra (ramal "No" del bloque 516), entonces en el bloque 522, puede realizarse una determinación de si la respuesta 62 satisface un umbral de notificación periódica. De nuevo, el módulo de procesamiento de consulta 52 puede estar configurado para hacer esta determinación basándose en una escala de confianza 600 generada para la consulta de búsqueda 60 para la que se refiere la respuesta 62. Específicamente, si una respuesta 62, después de que se actualice, pasa un umbral 602 en la escala de confianza 600, entonces el módulo de procesamiento de consulta 52 puede estar configurado para determinar que la respuesta 62 satisface un umbral de notificación periódica. Si no, entonces el módulo de procesamiento de consulta 52 puede estar configurado para determinar que la respuesta 62 falla al satisfacer un umbral de notificación periódica.
En el bloque 522, si se realiza una determinación de que la respuesta 62 falla al satisfacer un umbral de notificación periódica (ramal "No" del bloque 522), entonces en respuesta, en el bloque 524, puede realizarse una determinación que la respuesta 62 no es elegible para notificación. Como alternativa, si se realiza una determinación de que la respuesta 62 satisface un umbral de notificación periódica (ramal "Sí" del bloque 522), entonces en respuesta, en el bloque 526, la respuesta 62 puede etiquetarse como elegible para una notificación periódica 64.
En el bloque 528, pueden generarse las notificaciones 64 para las respuestas 62 que se etiquetan para notificaciones de suscripción 64, notificaciones extra 64, y/o notificaciones periódicas 64, y pueden transmitirse al usuario. La temporización en la que se realiza el bloque 528 puede depender del tipo de notification 64. Por ejemplo, después de que se etiqueta una respuesta 62 para una notificación de suscripción 64 o una notificación extra 64, puede realizarse el bloque 528 inmediatamente para la respuesta etiquetada 62 para notificar al usuario de la respuesta 62 tan pronto como sea posible. Como alternativa, puede realizarse el bloque 528 para aquellas respuestas 62 etiquetadas para una notificación de suscripción 64 o una notificación extra 64 después de que se haya procesado una porción de las respuestas 62 recuperadas en el bloque 502 para elegibilidad de notificación, o después de que se hayan procesado todas las respuestas 62 recuperadas en el bloque 502 para elegibilidad de notificación.
En otras realizaciones, puede realizarse el bloque 528 en un intervalo de tiempo después de que se etiquete una primera respuesta 62 para una notificación de suscripción 64 o una notificación extra 64. Más particularmente, una vez que ha pasado una cantidad establecida de tiempo después de una primera respuesta 62 se etiqueta para una suscripción o notificación extra 64, el módulo de procesamiento de consulta 52 puede generar una notificación 64 para todas las respuestas 62 que se han etiquetado hasta ahora para una suscripción o notificación extra 64 y no se han notificado aún, sometido a cualesquiera límites en el número de respuestas 62 que pueden estar incluidas en una notificación dada 64 y el número de notificaciones 64 que un usuario desea recibir, que puede configurarse por el usuario mediante la GUI 61.
Por ejemplo, en lugar de enviar una notificación 64 para cada respuesta 62 que se etiqueta para una notificación de suscripción 64, las respuestas 62 etiquetadas para notificaciones de suscripción 64 pueden agruparse juntas usando una ventana de tiempo. Más particularmente, cuando se etiqueta una respuesta 62 para una consulta de búsqueda 60 para una notificación de suscripción 64, el módulo de procesamiento de consulta 52 puede comprobar para determinar si ya existe una ventana de tiempo para la consulta de búsqueda 60. Si no, entonces el módulo de procesamiento de consulta 52 puede crear una nueva ventana de tiempo para la consulta de búsqueda 60. Al final de la ventana de tiempo, el módulo de procesamiento de consulta 52 puede generar y transmitir una única notificación 64 al usuario que incluye cada respuesta 62 que se etiquetó para una notificación de suscripción 64 durante la ventana de tiempo. El mismo procedimiento puede utilizarse para estas respuestas 62 etiquetadas para notificaciones extra 64. Como alternativa, al final de la ventana de tiempo, el módulo de procesamiento de consulta 52 puede generar y transmitir una única notificación 64 al usuario que incluye cada respuesta 62 que se ha etiquetado para una notificación de suscripción 64 o una notificación extra 64 durante la ventana de tiempo. De esta manera, se reduce adicionalmente el número de notificaciones 64 generadas y enviadas al usuario.
Las notificaciones extra 64 y notificaciones de suscripción 64 pueden ser además de notificaciones periódicas 64, que son notificaciones 64 generadas y transmitidas al usuario en una base periódica, posiblemente de acuerdo con ajustes proporcionados por el usuario mediante la GUI 61. Cuando es momento para enviar una notificación periódica 64 para una consulta de búsqueda 60, el módulo de procesamiento de consulta 52 puede estar configurado para generar automáticamente una notificación 64 que incluye cada respuesta 62 de una consulta de búsqueda 60 que se etiqueta para una notificación 64, ya sea una notificación de suscripción 64, una notificación extra 64, o una notificación periódica 64, sometida a límites en el número de respuestas 62 que pueden estar incluidas en una notificación 64. Tan pronto como la respuesta etiquetada 62 está incluida en cualquier notificación
64 enviada al usuario, se elimina la bandera. De esta manera, si una respuesta 62 etiquetada para una notificación de suscripción 64 o una notificación extra 64 está incluida en una notificación periódica planificada de manera regular 64, la respuesta 62 no se enviará de nuevo en una notificación de suscripción 64 o una notificación extra 64, que evita redundancias y de esta manera reduce el número de notificaciones 64 generadas por el módulo de procesamiento de consulta 52. Reduciendo el número de notificaciones 64 que se generan por el módulo de procesamiento de consulta 52, se reduce adicionalmente el consumo de recursos de sistema.
El usuario puede elegir activar o desactivar notificaciones extra 64 y notificaciones de suscripción 64 para una consulta de búsqueda 60 mediante la GUI 61. El usuario puede restringir también el número de notificaciones extra 64 y notificaciones de suscripción 64 por periodo de tiempo. Por ejemplo, el usuario puede establecer la consulta de búsqueda 60 de manera que puede enviarse únicamente una notificación extra 64 y/o notificación de suscripción 64 por semana, pueden enviarse dos notificaciones extra 64 y/o notificaciones de suscripción 64 por semana, pueden notificarse un número ilimitado de notificaciones extra 64 y/o notificaciones de suscripción 64 por semana.
La arquitectura de procesamiento 50 puede incluir características adicionales distintas de aquellas que se han descrito anteriormente. En una realización, la arquitectura de procesamiento 50 puede incluir una característica de predicción de precio. Más particularmente, el módulo de procesamiento de consulta 52 puede estar configurado para calcular una predicción con un porcentaje de confianza del precio asociado con una respuesta 62 o un producto de viaje usando datos históricos, tal como las respuestas 62 almacenadas en la base de datos de respuestas 56. De esta manera, el módulo de procesamiento de consulta 52 puede predecir la variación de precio para una respuesta futura 62.
Además, la arquitectura de procesamiento 50 puede estar asociada con un sistema de perfil que incluye perfiles para múltiples usuarios. Con el tiempo, tal como cuando un usuario envía consultas de búsqueda 60 para procesar, la arquitectura de procesamiento 50 puede estar configurada para actualizar el perfil del usuario basándose en las consultas de búsqueda 60 enviadas por el usuario. Específicamente, la arquitectura de procesamiento 50 puede estar configurada para rastrear las consultas de búsqueda 60 enviadas por un usuario, y rastrear adicionalmente qué respuestas 62 generadas para la consulta de búsqueda 60, tal como soluciones de viaje, se utilizan o reservan por el usuario, y determinar de esta manera preferencias para el usuario midiendo la relación entre las consultas de búsqueda del usuario 60 y las respuestas 62 que el usuario usa o reserva. Adicionalmente, en lugar de asignar un usuario manualmente pesos a cada criterio de búsqueda de una consulta de búsqueda enviada 60 mediante la GUI 61, el módulo de procesamiento de consulta 52 puede utilizar datos históricos y el perfil actualizado continuamente del usuario para calcular automáticamente tales pesos. El módulo de procesamiento de consulta 52 puede utilizar también los datos históricos y el perfil actualizado del usuario para adaptar las funciones difusas aplicadas en el algoritmo de optimización iterativo, y para añadir información inferida o valores al LSV anteriormente descrito.
Adicionalmente, la arquitectura de procesamiento 50 puede estar asociada con un sistema de recomendación que posibilita que la arquitectura de procesamiento 50 infiera preferencias del usuario basándose en los criterios de búsqueda definidos del usuario en una consulta de búsqueda 60 y/o el perfil del usuario, y que posibilita que la arquitectura de procesamiento 50 proporcione sugerencias para una consulta de búsqueda 60 o para proporcionar mejores respuestas 62 basándose en las preferencias del usuario. Por ejemplo, si un usuario crea un deseo de viaje que indica un deseo para visitar Paris durante un fin de semana dentro de un periodo de cuatro meses, la arquitectura de procesamiento 50 puede sugerir un fin de semana especializado basándose en eventos que tienen lugar en el destino (por ejemplo, concierto, partido de fútbol, descuentos del tour operador) y las preferencias del usuario. La arquitectura de procesamiento 50 puede estar integrada adicionalmente con programas de fidelidad, y puede proporcionar sugerencias para una búsqueda de consulta del usuario 60 o adaptar respuestas 62 para una consulta de búsqueda 60 basándose en el perfil del usuario en uno o más de los programas de fidelidad (por ejemplo, sugerir ciertas soluciones de viaje basándose en el número de millas disponibles en las cuentas del usuario).
En general, las rutinas ejecutadas para implementar las realizaciones de la invención, ya se implementen como parte de un sistema operativo o una aplicación, componente, programa, objeto, módulo o secuencia de instrucciones específico, o incluso un subconjunto de los mismos, se pueden denominar en el presente documento "código de programa informático" o simplemente "código de programa". Habitualmente, el código de programa comprende instrucciones legibles por ordenador que residen en diversos instantes en diversos dispositivos de memoria y almacenamiento en un ordenador y que, cuando son leídas y ejecutadas por uno o más procesadores en un ordenador, dan lugar a que ese ordenador realice las operaciones necesarias para ejecutar operaciones y/o elementos que materializan los diversos aspectos de las realizaciones de la invención. Instrucciones de programa legibles por ordenador para efectuar operaciones de las realizaciones de la invención pueden ser, por ejemplo, lenguaje de ensamblaje o bien código fuente o bien código objeto escrito en cualquier combinación de uno o más lenguajes de programación.
Diverso código de programa descrito en este documento puede identificarse basándose en la aplicación dentro de la que se implementa en realizaciones específicas de la invención. Sin embargo, debería apreciarse que cualquier nomenclatura de programa particular a continuación se usa meramente para conveniencia y, por lo tanto, la invención no debería limitarse a usar solamente en cualquier aplicación especificada identificada y/o implícita por tal
nomenclatura. Adicionalmente, dado el número generalmente infinito de maneras en las que pueden organizarse programas informáticos en rutinas, procedimientos, métodos, módulos, objetos y similares, así como las diversas maneras en las que la funcionalidad de programa puede asignarse entre diversas capas de software que están residentes dentro de un ordenador típico (por ejemplo, sistemas operativos, librerías, API, aplicaciones, subprogramas, etc.), debería apreciarse que las realizaciones de la invención no se limitan a la organización específica y asignación de funcionalidad de programa descritas en este documento.
El código de programa incorporado en cualquiera de las aplicaciones/módulos descritos en este documento se puede distribuir individual o colectivamente como un producto de programa en una diversidad de diferentes formas. En particular, el código de programa puede distribuirse usando un medio de almacenamiento legible por ordenador que tienen instrucciones de programa legibles por ordenador en el mismo para provocar que un procesador efectúe aspectos de las realizaciones de la invención.
Los medios de almacenamiento legibles por ordenador, que son inherentemente no transitorios, pueden incluir medios tangibles volátiles y no volátiles, y extraíbles y no extraíbles implementados en cualquier método o tecnología para el almacenamiento de información, tal como instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento legibles por ordenador pueden incluir adicionalmente RAM, ROM, memoria de solo lectura borrable y programable (EPROM), memoria de solo lectura eléctricamente borrable y programable (EEPROM), memoria flash u otra tecnología de memoria de estado sólido, disco compacto - memoria de solo lectura (CD-ROM) portátil, u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se pueda usar para almacenar la información deseada y que puede ser leída por un ordenador. Un medio de almacenamiento legible por ordenador no debería interpretarse como señales transitorias en sí (por ejemplo, ondas de radio u otras ondas electromagnéticas que se propagan, ondas electromagnéticas que se propagan a través de un medio de transmisión tal como una guía de ondas, o señales eléctricas transmitidas a través de un alambre). Instrucciones de programa legibles por ordenador pueden descargarse a un ordenador, otro tipo de aparato de procesamiento de datos programable, u otro dispositivo desde un medio de almacenamiento legible por ordenador o a un ordenador externo o dispositivo de almacenamiento externo a través de una red.
Pueden usarse instrucciones de programa legibles por ordenador almacenadas en un medio legible por ordenador para dirigir un ordenador, otros tipos de aparato de procesamiento de datos programable, u otros dispositivos para funcionar de una manera particular, de manera que las instrucciones almacenadas en el medio legible por ordenador producen un artículo de fabricación que incluye instrucciones que implementan las funciones, actos y/u operaciones especificadas en los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques. Las instrucciones de programa informáticas pueden proporcionarse a uno o más procesadores de un ordenador de fin general, un ordenador de fin especial, u otro aparato de procesamiento de datos programable para producir una máquina, de tal forma que las instrucciones, que se ejecutan a través del uno o más procesadores, provocan que se realicen una serie de cálculos para implementar las funciones, actos y/u operaciones especificados en el diagrama de flujos, diagrama de secuencias y/o diagramas de bloque.
En ciertas realizaciones alternativas, las funciones, actos y/u operaciones especificados en el diagrama de flujos, diagrama de secuencias y/o diagramas de bloque pueden reordenarse, procesarse en serie y/o procesarse simultáneamente consistentes con realizaciones de la invención. Además, cualquiera de los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques puede incluir más o menos bloques de los ilustrados, de forma consistente con las realizaciones de la invención.
La terminología usada en este documento es para el propósito de describir únicamente realizaciones particulares y no se pretende que sea limitante de las realizaciones de la invención. Como se usa en el presente documento, las formas singulares "un", "una" y "el", "la" se pretende que incluyan las formas plurales también, a menos que el contexto lo indique claramente lo contrario. Se entenderá adicionalmente que los términos "comprende" y/o "que comprende", cuando se usan en esta memoria descriptiva, especifican la presencia de características indicadas, elementos integrantes, etapas, operaciones, elementos, y/o componentes, pero no excluyen la presencia o adición de una o más otras características, elementos integrantes, etapas, operaciones, elementos, componentes, y/o grupos de los mismos. Adicionalmente, hasta el punto que los términos y expresiones "incluye", "que tiene", "tener", "con", "comprendido de', o variantes de las mismas se usan en cualquiera de la descripción detallada o las reivindicaciones, tales términos se pretende que sean inclusivos de una manera similar al término "que comprende".
Mientras toda la invención se ha ilustrado mediante una descripción de diversas realizaciones y mientras estas realizaciones se han descrito en considerable detalle, no es la intención del solicitante restringir o de cualquier forma limitar el alcance de las reivindicaciones adjuntas a tal detalle. A los expertos en la materia se les ocurrirán fácilmente ventajas y modificaciones adicionales. Por lo tanto, la invención no está limitada, en sus aspectos más amplios, a los detalles específicos, aparato y método representativos y ejemplos ilustrativos mostrados y descritos.
Claims (14)
1. Un método implementado por ordenador para procesar una consulta de búsqueda (60), comprendiendo el método:
recibir (102), en uno o más procesadores informáticos (28), la consulta de búsqueda, comprendiendo la consulta de búsqueda criterios de búsqueda;
almacenar (104), por el uno o más procesadores informáticos, la consulta de búsqueda en uno o más dispositivos de almacenamiento persistente (32); y
realizar periódica y automáticamente, por el uno o más procesadores informáticos, las siguientes operaciones: recuperar (108) la consulta de búsqueda del uno o más dispositivos de almacenamiento persistente, recuperar (110) primeros datos de origen que se refieren la consulta de búsqueda de una o más fuentes de datos de extremo trasero (58),
generar (112) una pluralidad de respuestas (62) para la consulta de búsqueda basándose en los primeros datos de origen,
determinar si cada una de las respuestas es elegible para notificación (64) basándose en los criterios de búsqueda, y
notificar a un usuario de cada notificación de respuesta determinada elegible, caracterizado por que recuperar los primeros datos de origen de la una o más fuentes de datos de extremo trasero usa un algoritmo de optimización iterativo que comprende:
recuperar (202) primeros datos de extremo trasero desde una primera de la una o más fuentes de datos de extremo trasero basándose en uno primero de los criterios de búsqueda;
filtrar (204) los primeros datos de extremo trasero basándose en un primer umbral de satisfacción y una primera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero; recuperar (206) segundos datos de extremo trasero de una segunda de la una o más fuentes de datos de extremo trasero basándose en uno segundo de los criterios de búsqueda y los primeros datos de extremo trasero filtrados; y
filtrar (208) los segundos datos de extremo trasero basándose en un segundo umbral de satisfacción y una segunda porción de los criterios de búsqueda que es relevante para los segundos datos de extremo trasero,
en donde los primeros datos de origen están basados en los primeros datos de extremo trasero filtrados y los segundos datos de extremo trasero filtrados.
2. El método de la reivindicación 1, en donde la consulta de búsqueda (60) comprende adicionalmente un punto de terminación, y las operaciones se realizan periódica y automáticamente hasta que se alcanza el punto de terminación.
3. El método de la reivindicación 1 o 2, en donde los primeros datos de extremo trasero comprenden una pluralidad de primeros resultados, y filtrar (204) los primeros datos de extremo trasero basándose en el primer umbral de satisfacción y la primera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero comprende:
aplicar una o más primeras funciones difusas que se derivan de la primera porción de los criterios de búsqueda a cada uno de los primeros resultados para calcular un primer valor de satisfacción para cada primer resultado; comparar el primer valor de satisfacción para cada primer resultado con el primer umbral de satisfacción; y filtrar los primeros resultados determinando, como una pluralidad de segundos resultados, cada primer resultado para el que el primer valor de satisfacción es mayor que el primer umbral de satisfacción.
4. El método de la reivindicación 3, en donde filtrar (204) los primeros datos de extremo trasero comprende adicionalmente:
aplicar una o más segundas funciones difusas que se derivan de una tercera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero a cada uno de los segundos resultados para calcular un segundo valor de satisfacción para cada segundo resultado;
comparar el segundo valor de satisfacción para cada segundo resultado con un tercer umbral de satisfacción; y filtrar los segundos resultados determinando, como una pluralidad de terceros resultados, cada segundo resultado para el que el segundo valor de satisfacción es mayor que el tercer umbral de satisfacción, en donde los primeros datos de extremo trasero filtrados comprenden los terceros resultados.
5. El método de la reivindicación 3 o la reivindicación 4, en donde cada uno de los criterios de búsqueda de la consulta de búsqueda (60) está asociado con un peso, cada una de la una o más primeras funciones difusas está asociada con una de la primera porción de los criterios de búsqueda, y aplicar la una o más primeras funciones
difusas a cada primer resultado para calcular el primer valor de satisfacción para cada primer resultado comprende: multiplicar una salida de cada primera función difusa por el peso asociado con el criterio de búsqueda que está asociado con la respectiva primera función difusa.
6. El método de la reivindicación 1, en donde los segundos datos de extremo trasero comprenden una pluralidad de resultados, y filtrar (208) los segundos datos de extremo trasero basándose en el segundo umbral de satisfacción y la segunda porción de los criterios de búsqueda que es relevante para los segundos datos de extremo trasero comprende:
aplicar una o más funciones difusas que se derivan de la segunda porción de los criterios de búsqueda a cada uno de los resultados para calcular un valor de satisfacción para cada resultado;
comparar el valor de satisfacción para cada resultado con el segundo umbral de satisfacción; y
determinar cada resultado para el que el valor de satisfacción es mayor que el segundo umbral de satisfacción, en donde los segundos datos de extremo trasero filtrados comprenden cada resultado determinado.
7. El método de una cualquiera de las reivindicaciones 1 a 2, en donde generar (112) las respuestas a la consulta de búsqueda (60) basándose en los primeros datos de origen comprende calcular un valor de satisfacción para cada respuesta basándose en los criterios de búsqueda, y determinar si cada una de las respuestas es elegible para notificación basándose en los criterios de búsqueda comprende, para cada respuesta:
determinar (404) si el valor de satisfacción para la respectiva respuesta es mayor que un umbral de notificación; en respuesta a la determinación de que el valor de satisfacción para la respectiva respuesta es mayor que el umbral de notificación, etiquetar (406) la respectiva respuesta como eligible para una notificación extra; y en respuesta a la determinación de que el valor de satisfacción para la respectiva respuesta es menor que el umbral de notificación:
determinar (408) si la respectiva respuesta está dentro de un subconjunto de las respuestas, en donde el valor de satisfacción para cada una de las respuestas en el subconjunto es mayor que el valor de satisfacción para cada una de las respuestas que no está en el subconjunto,
en respuesta a la determinación de que la respectiva respuesta está dentro del subconjunto, etiquetar (410) la respectiva respuesta como eligible para una notificación periódica, y
en respuesta a la determinación de que la respectiva respuesta no está dentro del subconjunto, determinar (412) que la respectiva respuesta no es elegible para notificación.
8. El método de una cualquiera de las reivindicaciones 1 a 7, que comprende adicionalmente:
almacenar las respuestas en el uno o más dispositivos de almacenamiento persistente;
después de que se almacenan las respuestas, recibir automáticamente, mediante un mecanismo de envío, o recuperar, mediante un mecanismo de extracción, segundos datos de origen de la una o más fuentes de datos de extremo trasero que se refieren a al menos una de las respuestas;
recuperar la al menos una de las respuestas del uno o más dispositivos de almacenamiento persistente; actualizar una o más de la al menos una de las respuestas recuperadas basándose en los segundos datos de origen;
determinar si cada una de la una o más respuestas actualizadas es elegible para notificación; y
notificar al usuario de cada notificación determinada de respuesta actualizada elegible.
9. El método de la reivindicación 8, en donde determinar si cada una de la una o más respuestas actualizadas es elegible para notificación comprende:
para cada respuesta actualizada:
determinar (504) si la respectiva respuesta actualizada incluye una suscripción,
en respuesta a la determinación de que la respectiva respuesta actualizada incluye una suscripción, añadir (508) la respectiva respuesta actualizada a una cola de prioridad alta, y
en respuesta a la determinación de que la respectiva respuesta actualizada no incluye una suscripción, añadir (506) la respectiva respuesta actualizada a una cola de prioridad baja;
determinar si cada respuesta actualizada en la cola de prioridad alta es elegible para notificación; y después de determinar si cada respuesta actualizada en la cola de prioridad alta es elegible para notificación, determinar si cada respuesta actualizada en la cola de prioridad baja es elegible para notificación.
10. El método de la reivindicación 9, en donde determinar si cada respuesta actualizada en la cola de prioridad alta es elegible para notificación comprende, para cada respuesta actualizada en la cola de prioridad alta: determinar si la respectiva respuesta actualizada satisface un umbral de notificación de suscripción para la respectiva respuesta;
en respuesta a la determinación (514) que la respectiva respuesta actualizada satisface el umbral de notificación de suscripción para la respectiva respuesta, etiquetar la respectiva respuesta actualizada como eligible para una notificación de suscripción; y
en respuesta a la determinación (514) que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación de suscripción para la respectiva respuesta:
determinar (516) si la respectiva respuesta actualizada satisface un umbral de notificación extra para la consulta de búsqueda (60),
en respuesta a la determinación (516) que la respectiva respuesta actualizada satisface el umbral de notificación extra para la consulta de búsqueda, etiquetar (520) la respectiva respuesta actualizada como eligible para una notificación extra, y
en respuesta a la determinación (516) que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación extra para la consulta de búsqueda (60):
determinar (522) si la respectiva respuesta actualizada satisface un umbral de notificación periódica para la consulta de búsqueda,
en respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación periódica para la consulta de búsqueda, etiquetar (526) la respectiva respuesta actualizada como elegible para una notificación periódica, y
en respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación periódica para la consulta de búsqueda, determinar (524) que la respectiva respuesta actualizada no es elegible para notificación.
11. El método de la reivindicación 9, en donde determinar si cada respuesta actualizada en la cola de prioridad baja es elegible para notificación comprende, para cada respuesta actualizada en la cola de prioridad baja: determinar (516) si la respectiva respuesta actualizada satisface un umbral de notificación extra para la consulta de búsqueda (60);
en respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación extra para la consulta de búsqueda, etiquetar (520) la respectiva respuesta actualizada como elegible para una notificación extra; y
en respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación extra para la consulta de búsqueda:
determinar (522) si la respectiva respuesta actualizada satisface un umbral de notificación periódica para la consulta de búsqueda,
en respuesta a la determinación de que la respectiva respuesta actualizada satisface el umbral de notificación periódica para la consulta de búsqueda, etiquetar (526) la respectiva respuesta actualizada como elegible para una notificación periódica, y
en respuesta a la determinación de que la respectiva respuesta actualizada falla al satisfacer el umbral de notificación periódica para la consulta de búsqueda (60), determinar (524) que la respectiva respuesta actualizada no es elegible para notificación.
12. Un sistema para procesar una consulta de búsqueda, comprendiendo el sistema:
uno o más procesadores informáticos; y
una memoria que almacena instrucciones que tras la ejecución por el uno o más procesadores informáticos hace que el sistema:
en respuesta a la recepción de la consulta de búsqueda (60), comprendiendo la consulta de búsqueda criterios de búsqueda:
almacenar la consulta de búsqueda (60) en uno o más dispositivos de almacenamiento persistente (32); y realizar periódica y automáticamente las siguientes operaciones:
recuperar (108) la consulta de búsqueda del uno o más dispositivos de almacenamiento persistente, recuperar (110) primeros datos de origen que se refieren a la consulta de búsqueda de una o más de las fuentes de datos de extremo trasero,
generar (112) una pluralidad de respuestas (62) para la consulta de búsqueda basándose en los primeros datos de origen,
determinar si cada una de las respuestas es elegible para notificación (64) basándose en los criterios de búsqueda, y
notificar a un usuario de cada notificación de respuesta determinada elegible, caracterizado por que las instrucciones almacenadas hacen adicionalmente que el sistema recupere los primeros datos de origen de la una o más fuentes de datos de extremo trasero usando un algoritmo de optimización iterativo que
comprende:
recuperar (202) primeros datos de extremo trasero desde una primera de la una o más fuentes de datos de extremo trasero basándose en uno primero de los criterios de búsqueda;
filtrar (204) los primeros datos de extremo trasero basándose en un primer umbral de satisfacción y una primera porción de los criterios de búsqueda que es relevante para los primeros datos de extremo trasero; recuperar (206) segundos datos de extremo trasero de una segunda de la una o más fuentes de datos de extremo trasero basándose en uno segundo de los criterios de búsqueda y los primeros datos de extremo trasero filtrados; y
filtrar (208) los segundos datos de extremo trasero basándose en un segundo umbral de satisfacción y una segunda porción de los criterios de búsqueda que es relevante para los segundos datos de extremo trasero,
en donde los primeros datos de origen están basados en los primeros datos de extremo trasero filtrados y los segundos datos de extremo trasero filtrados.
13. El sistema de la reivindicación 12, en donde las instrucciones tras la ejecución hacen que el sistema realice el método de cualquiera de las reivindicaciones 2 a 11.
14. Un producto de programa informático que comprende instrucciones de código de programa almacenadas en un medio legible por ordenador para implementar las etapas de proceso de acuerdo con las reivindicaciones 1 a 11 cuando dicho programa se ejecuta en un ordenador.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/281,372 US10331665B2 (en) | 2016-09-30 | 2016-09-30 | Search query processing |
| FR1659407A FR3057084A1 (fr) | 2016-09-30 | 2016-09-30 | Traitement des requetes de recherche |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2824472T3 true ES2824472T3 (es) | 2021-05-12 |
Family
ID=59930289
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES17194137T Active ES2824472T3 (es) | 2016-09-30 | 2017-09-29 | Procesamiento de consulta de búsqueda |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP3301594B1 (es) |
| ES (1) | ES2824472T3 (es) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113407706A (zh) * | 2021-06-30 | 2021-09-17 | 未鲲(上海)科技服务有限公司 | 异常数据获取方法、装置、设备及存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1234268A2 (en) * | 1999-11-01 | 2002-08-28 | ITA Software, Inc. | Method and apparatus for providing availability of airline seats |
| US20060064333A1 (en) * | 2004-09-20 | 2006-03-23 | Razza Anne M | Product availability tracking and notification system and method |
| US20160239765A1 (en) * | 2015-02-17 | 2016-08-18 | Amadeus S.A.S. | Personalized ranking for search results of a travel-related database query |
-
2017
- 2017-09-29 ES ES17194137T patent/ES2824472T3/es active Active
- 2017-09-29 EP EP17194137.0A patent/EP3301594B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3301594A1 (en) | 2018-04-04 |
| EP3301594B1 (en) | 2020-07-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10877966B2 (en) | Search query processing | |
| US20150178642A1 (en) | Dynamic travel planner | |
| US20210295361A1 (en) | Method and server for providing a set of price estimates, such as air fare price estimates | |
| JP6456348B2 (ja) | アイテムクエリの管理 | |
| US20190340544A1 (en) | Trip planning and implementation | |
| JP6129953B2 (ja) | 旅行関連検索結果の分類およびランク付け | |
| US20150286960A1 (en) | Media input reservation system | |
| US20090216547A1 (en) | Method, system and computer program product for providing real-time recommendations | |
| US20080046298A1 (en) | System and Method For Travel Planning | |
| AU2013407812B2 (en) | Method and server for providing a set of price estimates, such as air fare price estimates | |
| US11580584B2 (en) | Managing item queries | |
| AU2012378631A1 (en) | Database system using batch-oriented computation | |
| KR20150021447A (ko) | 상황에 맞는 여행 제안 방법 | |
| US20210279823A1 (en) | Pre-event triggers for extended travel management systems | |
| KR20160148627A (ko) | 위치 개선 및 분산으로 인한 재-순위 검색 결과 | |
| KR20150116385A (ko) | 여행 예약 시스템 | |
| US20180047084A1 (en) | Generating recommendations for an itinerary having multiple bounds | |
| KR20160034223A (ko) | 여행 관련 서비스를 위한 회사 승인 | |
| EP3301594B1 (en) | Search query processing | |
| JP2020166344A (ja) | 土地情報提供システム及びデータ構造 | |
| US11668575B2 (en) | Pre-event triggers for travel management systems | |
| US20170178258A1 (en) | Automatic selection of calendar-based, multiple trip options for presentation | |
| EP2887278A1 (en) | Dynamic travel planner | |
| KR102223499B1 (ko) | 여정 계획 방법 및 시스템 | |
| US20190378057A1 (en) | Social network-based travel systems and methods |

