ES2881768T3 - Determinación empírica de expertos y sistema y procedimiento de envío de preguntas - Google Patents
Determinación empírica de expertos y sistema y procedimiento de envío de preguntas Download PDFInfo
- Publication number
- ES2881768T3 ES2881768T3 ES19159905T ES19159905T ES2881768T3 ES 2881768 T3 ES2881768 T3 ES 2881768T3 ES 19159905 T ES19159905 T ES 19159905T ES 19159905 T ES19159905 T ES 19159905T ES 2881768 T3 ES2881768 T3 ES 2881768T3
- Authority
- ES
- Spain
- Prior art keywords
- user
- place
- location
- map
- question
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000004044 response Effects 0.000 claims abstract description 39
- 238000013500 data storage Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 8
- 230000001052 transient effect Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 63
- 230000008569 process Effects 0.000 description 45
- 230000035772 mutation Effects 0.000 description 33
- 230000007704 transition Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 238000004458 analytical method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 235000013305 food Nutrition 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 235000016213 coffee Nutrition 0.000 description 2
- 235000013353 coffee beverage Nutrition 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 235000014102 seafood Nutrition 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 235000021152 breakfast Nutrition 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 235000015220 hamburgers Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/0061—Geography
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B7/00—Electrically-operated teaching apparatus or devices working with questions and answers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/024—Guidance services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/025—Services making use of location information using location based information parameters
- H04W4/027—Services making use of location information using location based information parameters using movement velocity, acceleration information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/20—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/20—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
- H04W4/21—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Entrepreneurship & Innovation (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
- Instructional Devices (AREA)
- Navigation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Un procedimiento implementado por computadora para el enrutamiento y visualización de información de dispositivos móviles en un sistema informático en red (10), siendo realizado el procedimiento por al menos un servidor (40) en el sistema informático en red y que comprende: generar un perfil para un lugar (220), el perfil comprende un identificador único para el lugar y un identificador de celda geográfica para determinar una escala de mapa para el lugar; almacenar el perfil del lugar en un área de almacenamiento de datos (45); identificar a un primer usuario del sistema en línea como un experto en el lugar (230), la experiencia del primer usuario se determina en base a los datos de ubicación en el área de almacenamiento de datos (45) describiendo las ubicaciones visitadas por el primer usuario, incluyendo la asociación del identificador único del lugar con un identificador de usuario único para el primer usuario; transmitir, en respuesta a la identificación del primer usuario como un experto en el lugar, a un dispositivo móvil del primer usuario, una pregunta sobre el lugar enviada por un segundo usuario del sistema en línea (240), el identificador único del lugar y el identificador de celda geográfica, logrando así que el dispositivo móvil del primer usuario muestre, en una interfaz de usuario del dispositivo móvil, la pregunta y un mapa a la escala de mapa determinada por el identificador de celda geográfica; recibir, desde el dispositivo móvil, el identificador único del lugar y una respuesta a la pregunta sobre el lugar (250); y en respuesta a recibir, desde el dispositivo móvil, el identificador único del lugar y la respuesta a la pregunta sobre el lugar, actualizar, por el al menos un servidor, el perfil del lugar almacenado en el área de almacenamiento de datos en base a la respuesta a la pregunta.
Description
DESCRIPCIÓN
Determinación empírica de expertos y sistema y procedimiento de envío de preguntas.
SOLICITUDES RELACIONADAS
La presente solicitud reivindica el beneficio de la prioridad de la Solicitud Provisional de los Estados Unidos N.° 61/605,126, presentada el 29 de febrero de 2012.
ANTECEDENTES
Campo de la invención
La presente invención está generalmente relacionada con las redes sociales y los servicios basados en la ubicación y está más particularmente relacionada con los sistemas y procedimientos para determinar objetivamente a uno o más expertos sobre actos/eventos específicos. La presente invención también está particularmente relacionada con los sistemas y procedimientos para determinar objetivamente uno o más expertos sobre categorías específicas de actos/eventos dentro de una región geográfica específica en una escala particular en un mapa. La presente invención también está particularmente relacionada con los sistemas y procedimientos para enviar preguntas y respuestas sobre un lugar/evento o categoría de lugar/evento dentro de una región geográfica específica en una escala particular hacia y desde un experto. La presente invención también está particularmente relacionada con los sistemas y procedimientos para representar eficientemente la ubicación de una pluralidad de lugares/eventos y/o usuarios dentro de una región geográfica específica en un mapa visualizado en una pluralidad de escalas del mapa.
Técnica relacionada
En los sistemas en línea convencionales, determinar quién es un experto sobre un lugar/evento específico o categoría de lugar/evento ha sido históricamente muy subjetivo y problemático. Estos sistemas en línea convencionales generalmente requieren que los expertos potenciales proporcionen información con respecto a los lugares/eventos y/o categorías de lugares/eventos sobre los que tengan conocimiento. Sin embargo, los sistemas en línea convencionales adolecen de la naturaleza autobiográfica de la información que se utiliza para determinar quién es un experto sobre un lugar/evento específico y/o categoría de lugar/evento. Los sistemas en línea convencionales son incapaces de validar el aporte autobiográfico de los expertos potenciales y, por lo tanto, los sistemas en línea convencionales no pueden determinar con precisión quién es un experto.
La gran mayoría de los sistemas en línea convencionales ni siquiera intentan identificar a un experto y, en su lugar, simplemente permiten a los usuarios publicar solicitudes sobre un lugar/evento y/o categoría de lugar/evento y/o región geográfica específica y esperan que un verdadero experto reciba la solicitud publicada y responda oportunamente a la solicitud publicada. Esta solución también adolece de que el usuario solicitante no tiene forma de verificar la experiencia de ningún experto potencial que pueda recibir la solicitud publicada y elegir responder. Por lo tanto, la supuesta experiencia del potencial experto que responde se basa únicamente en la percepción que tiene el experto potencial de su propio conocimiento sobre el tema de la solicitud. Otras soluciones convencionales envían ingenuamente una solicitud a un gran grupo de usuarios semejantes, con la esperanza de que un verdadero usuario experto responda a la solicitud y proporcione una respuesta informada. Esta solución también adolece de los mismos problemas descritos anteriormente, además de la escala inherentemente limitada de la red social de un único usuario.
Una limitación adicional de los sistemas convencionales es que carecen de la capacidad de presentar de manera eficiente elementos gráficos que representan la ubicación de una pluralidad de lugares/eventos y/o usuarios en un mapa visualizado. Este problema se amplifica particularmente cuando la escala del mapa se modifica para mostrar un área geográfica más grande sin alterar de manera correspondiente el tamaño de la ventana/pantalla donde se muestra el mapa. Las soluciones convencionales han intentado superponer fraccionadamente los elementos gráficos uno encima del otro para que cada elemento gráfico ocupe una parte única de la interfaz de usuario y, por lo tanto, pueda ser seleccionado por un usuario, por ejemplo, pasando el puntero del ratón sobre la parte única ocupada por el elemento gráfico. Estas soluciones convencionales son engorrosas e ineficientes e introducen desafíos significativos para los usuarios que intentan seleccionar elementos gráficos individuales.
El documento US2008/306826 describe un sistema y un procedimiento para proporcionar un servicio a patrocinadores, que incluye sedes y patrocinadores publicitarios, que deseen ofrecer promociones.
El documento US2010/212308 describe un procedimiento y un sistema para identificar ubicaciones interesantes.
Por lo tanto, lo que se necesita es un sistema y un procedimiento que supere estos problemas importantes que se
encuentran en los sistemas convencionales como se describió anteriormente.
RESUMEN
En consecuencia, para resolver los problemas descritos anteriormente que se encuentran en los sistemas en línea convencionales que se describen anteriormente, aquí se describen sistemas y procedimientos que recopilan datos de seguimiento de ubicación para determinar la frecuencia y la duración de las visitas de los usuarios a lugares/eventos específicos y, basándose en un análisis de los datos de seguimiento de la ubicación, determina empíricamente el nivel de experiencia de un usuario en particular para un lugar/evento en particular y para las categorías de lugares/eventos dentro de una región geográfica específica en una escala particular en un mapa. La presente enseñanza proporciona un sistema y un procedimiento según la reivindicación 1. En las reivindicaciones dependientes se proporcionan características ventajosas. La presente invención se enumera en la reivindicación 1. Otras características ventajosas de la misma se enumeran en las reivindicaciones dependientes.
Los datos de seguimiento de la ubicación que se recopilan para cada visita de un usuario a un lugar/evento específico incluyen el lugar/evento específico visitado, la ubicación del lugar/evento, la fecha de la visita, la hora del día de la visita y la duración de la visita y demás información. El análisis de los datos de seguimiento de la ubicación recopilados incluye una determinación de una o más categorías relacionadas con el lugar/evento específico y la región geográfica, la frecuencia de visitas a lo largo del tiempo para un usuario en particular y un lugar/evento específico y una región geográfica, la frecuencia de las visitas a lo largo del tiempo en un área geográfica particular (sin una categoría asociada de lugar/evento o con una categoría asociada de lugar/evento) para un usuario en particular, uno o más eventos que ocurren en el lugar durante una visita (por ejemplo, hora feliz), la variedad de categorías de lugar/evento que el usuario ha visitado en el tiempo y área geográfica, la variedad de lugares/eventos de una categoría en particular que el usuario ha visitado en el tiempo y área geográfica, el área geográfica donde el usuario visita lugares/eventos (p. ej., ciudad, vecindario, bloque, etc.) sin asociarse con una categoría, el número de preguntas del sistema que el usuario ha respondido y los comentarios de los compañeros sobre las respuestas proporcionadas por el usuario. Otra información también se puede incluir en el análisis.
Sobre la base del análisis de los datos de seguimiento de la ubicación recopilados, el sistema determina inicialmente (y refina con el tiempo) los lugares/eventos específicos y las categorías de lugares/eventos y regiones geográficas a una escala particular de la que cada usuario tenga conocimiento. Sobre la base de estas determinaciones y una comparación del nivel de experiencia del usuario particular con sus usuarios pares, el sistema puede determinar empíricamente qué usuarios son expertos sobre lugares/eventos particulares y categorías de lugares/eventos en una región y escala geográfica particular. Los lugares/eventos pueden incluir (pero no se limitan a) negocios, restaurantes, parques, horas felices, eventos deportivos, rutas de autobuses, viajes diarios, bandas en vivo, bailes, karaoke, lecturas de poesía, etc. Las categorías varían de amplia a limitada y pueden incluir (pero no se limitan a) comida, vida nocturna, ejercicio, sushi, hamburguesas, desayuno, café, vegetariana, etc. Las escalas pueden abarcar desde una gran región geográfica hasta una pequeña región geográfica y pueden incluir (pero no se limitan a) ciudad, vecindario, cuadra, etc., y también pueden incluir regiones geográficas definidas arbitrariamente de diferentes tamaños (denominadas en lo sucesivo "celdas").
Ventajosamente, el sistema puede recopilar datos de seguimiento de ubicación utilizando información activa de registro de una variedad de aplicaciones de dispositivos móviles. Por ejemplo, aplicaciones como Foursquare, Facebook, Google Latitude, Twitter y otras permiten a los usuarios identificar un lugar/evento donde el usuario se encuentra actualmente. El sistema también puede recopilar datos de seguimiento de la ubicación utilizando un sistema de posicionamiento global periódico o continuo ("GPS") u otro seguimiento basado en coordenadas de un dispositivo móvil que esté asociado con el usuario. Por ejemplo, también se puede emplear el seguimiento por triangulación de un dispositivo móvil. Además, el sistema puede identificar la categoría de lugar/evento (por ejemplo, restaurante de sushi, parque, cafetería) al correlacionar la ubicación del lugar/evento (por ejemplo, coordenadas del mapa, coordenadas GPS, etc.) con uno o más lugares/eventos específicos. La correlación de ubicaciones y categorías se puede almacenar en un área de almacenamiento de datos accesible para el sistema y también puede obtenerse de fuentes externas como Foursquare, Facebook y otras fuentes que son accesibles a través de la comunicación de red.
Una vez que el sistema ha recopilado y analizado suficientes datos de seguimiento de la ubicación, el sistema puede determinar de forma periódica o continua, basándose en los datos de seguimiento de la ubicación, quién es un experto sobre un lugar/evento en particular y quién es un experto en una categoría particular de una región geográfica a una escala particular. Utilizando el estatus de experto empíricamente determinado, el sistema proporciona envío en tiempo real a uno o más expertos de preguntas recibidas de usuarios pares sobre un lugar/evento y/o sobre una categoría a una escala particular. El sistema recibe una respuesta de un experto a una pregunta de este tipo y la proporciona al usuario que lo solicita, también en tiempo real.
Además, el sistema proporciona una interfaz de usuario con elementos gráficos superpuestos en un mapa escalado
que representa uno o más usuarios o lugares/eventos ("anotaciones"). A medida que cambia la escala del mapa que se muestra, las anotaciones se combinan o se separan gráficamente para aumentar la facilidad de uso y disminuir la carga de trabajo del servidor y la carga de trabajo del cliente. Otras características y ventajas de la presente invención se harán más evidentes para los expertos en la técnica después de revisar la siguiente descripción detallada y los dibujos adjuntos.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La estructura y el funcionamiento de la presente invención se entenderán a partir de una revisión de la siguiente descripción detallada y los dibujos adjuntos, donde números de referencia similares se refieren a partes similares y donde:
La figura 1 es un diagrama de red que ilustra un ejemplo de sistema para la determinación empírica de expertos y el envío de preguntas según una realización de la invención;
La figura 2 es un diagrama de bloques que ilustra un ejemplo de dispositivo de comunicación según una realización de la invención;
La figura 3 es un diagrama de bloques que ilustra un ejemplo de dispositivo servidor según una realización de la invención;
La figura 4 es un diagrama de flujo que ilustra un ejemplo de proceso para recibir una pregunta y proporcionar una respuesta experta según una realización de la invención;
La figura 5 es un diagrama de flujo que ilustra un ejemplo de proceso para rastrear información basada en la ubicación para un usuario según una realización de la invención;
La figura 6 es un diagrama de flujo que ilustra un ejemplo de proceso para analizar información basada en la ubicación para facilitar la determinación de expertos según una realización de la invención;
La figura 7 es un diagrama de flujo que ilustra un ejemplo de proceso para actualizar un perfil de experto según la respuesta del experto a una pregunta según una realización de la invención;
La figura 8 es un diagrama de flujo que ilustra un ejemplo de proceso para enviar una pregunta a un experto temporal según una realización de la invención;
La figura 9 es un diagrama de flujo que ilustra un ejemplo de proceso para identificar expertos según una realización de la invención;
La figura 10 es un diagrama de flujo que ilustra un ejemplo de proceso para proporcionar datos del lugar según una realización de la invención;
La figura 11 es un diagrama de estado que ilustra un ejemplo de conjuntos de estados y transiciones para un mapa de mutación según una realización de la invención;
Las figuras 12A-C son diagramas de flujo que ilustran ejemplos de procesos para agregar una anotación a un mapa según una realización de la invención;
Las figuras 13A-C son diagramas de flujo que ilustran ejemplos de procesos para eliminar una anotación de un mapa según una realización de la invención;
La figura 14 es un diagrama de flujo que ilustra un ejemplo de proceso para formar un grupo según una realización de la invención;
La figura 15 es un diagrama de flujo que ilustra un ejemplo de proceso para deshacer un grupo según una realización de la invención;
La figura 16 es un diagrama de bloques que ilustra ejemplos de escalas de mapa y celdas de mapa según una realización de la invención;
La figura 17 es un diagrama de bloques que ilustra un ejemplo de región definida por celdas de mapa en una pluralidad de escalas según una realización de la invención;
La figura 18 es un diagrama de interfaz de usuario que ilustra un ejemplo de mapa con grupos según una realización de la invención; y
La figura 19 es un diagrama de bloques que ilustra un ejemplo de dispositivo habilitado para un procesador inalámbrico o por cable que puede usarse en conexión con varias realizaciones descritas en este documento.
DESCRIPCIÓN DETALLADA
Ciertas realizaciones descritas en este documento proporcionan un sistema que determina empíricamente la experiencia en base a los datos de ubicación del usuario y envía preguntas sobre lugares/eventos y categorías de lugares/eventos a expertos identificados sobre los lugares/eventos. Por ejemplo, un procedimiento descrito aquí permite que el sistema presente un mapa en una interfaz de usuario a una escala particular, reciba una pregunta del usuario que busca una recomendación para un buen restaurante de sushi, identifique uno o más expertos en restaurantes de sushi en la escala del mapa, envíe la pregunta a los expertos identificados, reciba una respuesta de uno o más de los expertos y proporcione una respuesta al usuario que realiza la consulta. Después de leer esta descripción, será evidente para un experto en la técnica cómo implementar la invención en varias realizaciones alternativas y aplicaciones alternativas. Sin embargo, aunque se describirán varias realizaciones de la presente invención en el presente documento, se entiende que estas realizaciones se presentan solo a modo de ejemplo, y no de limitación. Como tal, esta descripción detallada de varias realizaciones alternativas no debe interpretarse como que limita el alcance o la amplitud de la presente invención como se expone en las reivindicaciones adjuntas.
Cabe señalar que en la presente descripción, el término lugar/evento se usa de manera intercambiable con los términos lugar y evento. Según la presente descripción, un lugar/evento es una ubicación o ruta particular que tiene un propósito particular y puede tener también una duración particular. Por ejemplo, un lugar/evento puede ser un restaurante, una ruta de autobús y un juego de fútbol profesional. Otro ejemplo de un lugar/evento es un complejo multideportivo que tiene una ubicación única pero que aloja múltiples tipos de eventos. En consecuencia, en este ejemplo, un primer lugar/evento puede ser un juego de béisbol en el complejo multideportivo y un segundo lugar/evento puede ser un juego de fútbol en el mismo complejo multideportivo.
Además, se debe tener en cuenta que las distintas categorías de lugares/eventos pueden tener una estructura jerárquica o relacional, de modo que un lugar/evento específico que es, por ejemplo, un restaurante de sushi puede pertenecer a varias categorías relacionadas y/o jerárquicas, como la comida, comida de mar, comida cruda, comida semivegetariana comida asiática, y similares.
Además, se debe tener en cuenta que la presente descripción se refiere a escalas en un mapa y esas escalas pueden relacionarse con las celdas geográficas que pertenecen a una división jerárquica de la superficie de la tierra en celdas primarias y celdas secundarias. Esas escalas también pueden relacionarse con regiones geográficas arbitrarias presentadas en una pantalla de un dispositivo de comunicación o regiones predeterminadas como vecindarios, cuadras y similares. Además, en algunos aspectos, un usuario puede ser un experto en una región geográfica a una escala particular en el mapa y dicha experiencia puede estar asociada con una o más categorías o dicha experiencia puede no tener ninguna categoría asociada, o bien, dicha experiencia puede ser para todas las categorías.
En funcionamiento, el sistema recibe datos de ubicación como entrada. Los datos de ubicación pueden recibirse en unidades discretas, por ejemplo, los datos de ubicación pueden recibirse cada vez que un usuario se registra en un lugar o publica públicamente una actualización de estado desde una ubicación conocida. Los datos de ubicación también pueden recibirse continuamente, por ejemplo, a través del seguimiento de ubicación en tiempo real utilizando GPS u otras utilidades de ubicación basadas en coordenadas. El sistema analiza de forma periódica o continua los datos de ubicación de usuario en usuario para determinar el nivel de experiencia de cada usuario con respecto a lugares/eventos específicos y categorías de lugares/eventos a una escala particular. Cuando el sistema recibe una pregunta sobre un lugar/evento específico o categoría de lugar/evento a una escala particular, el sistema identifica a uno o más expertos correspondientes a la pregunta específica y envíala pregunta a uno o más expertos. Una o más respuestas de uno o más expertos se envían de vuelta a quien hizo la pregunta y también se pueden almacenar en un área de almacenamiento de datos en asociación con la pregunta específica y el lugar/evento o categoría particular del lugar/evento a una escala particular, o en asociación con algún otro aspecto sobre el que se trataba la pregunta.
El sistema recibe y analiza una variedad de información para desarrollar un perfil detallado sobre cada usuario. Por ejemplo, la información puede incluir, pero no se limita a:
1. Datos de seguimiento de la ubicación que se recopila de varias fuentes
2. Lugares/eventos específicos que un usuario ha visitado (por ejemplo, Starbucks, Downtown), en función de un
registro activo de visita o del seguimiento de la ubicación (por ejemplo, GPS, triangulación, otros) de un dispositivo de comunicación asociado con una cuenta de usuario.
3. Número de veces que el usuario ha estado en el lugar/evento específico.
4. Fecha, hora y duración de las visitas a lugares/eventos específicos.
5. Categoría del lugar/evento específico (por ejemplo, restaurante de sushi, parque, cafetería), que se puede obtener al correlacionar un lugar/evento con una o más categorías (que se recopilan de fuentes externas en la red como Foursquare, Facebook y otras).
6. Variedad de lugares/eventos y categorías de lugares/eventos que el usuario visita.
7. Escala de mapa y región donde el usuario pasa tiempo (por ejemplo, San Francisco)
8. Preguntas que el usuario ha respondido sobre lugares/eventos específicos y categorías de lugares/eventos.
El sistema analiza los datos que tiene para determinar una variedad de información. Por ejemplo, el sistema mantiene una colección de datos (en una realización, una base de datos) que mapea lugares/eventos específicos y categorías de lugares/eventos a usuarios que ha sido determinados expertos empíricamente con respecto a esos lugares/eventos específicos y categorías de sedes/eventos. Por ejemplo, dado un lugar/evento específico (por ejemplo, Starbucks en 2nd/Market), el sistema crea y actualiza continuamente una lista de usuarios que conocen el lugar/evento específico según los datos de ubicación recopilados y analizados. El sistema también crea y actualiza continuamente una lista de usuarios que tienen conocimiento sobre una escala de mapa en particular, por ejemplo, determinada por una ubicación específica de latitud/longitud y un radio. El sistema también crea y actualiza continuamente una lista de usuarios que tienen conocimiento sobre categorías particulares de lugares/eventos con una pluralidad de escalas de mapas que cubren regiones geográficas superpuestas. Estas listas permiten al sistema identificar expertos a los que se pueden enviar preguntas sobre lugares/eventos específicos y categorías de lugares/eventos a una escala particular.
Además, el sistema analiza cada entrada de datos de ubicación para un usuario particular y colectivamente, las entradas de datos de ubicación y el análisis contribuyen a una puntuación total, que luego se traduce a un nivel de experiencia para el usuario particular y los lugares/eventos específicos y categorías de sedes/eventos y regiones geográficas a una escala particular. Específicamente, por cada visita a un lugar/evento, un usuario recibe puntos por ese lugar/evento y por una o más categorías asociadas con ese lugar/evento en particular. En una realización, una visita a un lugar/evento particular puede incluir puntos para ese lugar/evento específico, una o más categorías asociadas con ese lugar/evento específico y un vecindario, ciudad y/u otras regiones geográficas que se superponen, posiblemente (pero no necesariamente) asociadas con ese lugar/evento específico. También puede incluir puntos para un evento específico y/o categoría de evento que estaba ocurriendo en ese lugar en el momento de la visita (por ejemplo, hora feliz, DJ, lectura de poesía, evento deportivo, etc.).
En una realización, el sistema rastrea las preguntas respondidas por cada usuario, y para cada pregunta que un usuario responde sobre un lugar/evento específico, un usuario acumula puntos de experiencia tanto para ese lugar/evento específico como para cualquier categoría asociada de lugares/eventos. Esto incluye puntos para ese lugar/evento específico, categorías relacionadas de lugares/eventos y las regiones geográficas correspondientes.
El sistema analiza continuamente la información que ha recopilado y extrapolado (por ejemplo, el sistema podría extrapolar un lugar/evento específico a partir de los datos de ubicación GPS) en combinación con los puntos y puntajes relacionados para cada usuario con respecto a lugares/eventos específicos y categorías de lugares/eventos a una escala particular y regiones geográficas relacionadas, y determina que un usuario sea un experto con respecto a cada uno de estos temas si el total de puntos acumulados excede ciertos umbrales. Los umbrales pueden ser estáticos o variables y también pueden establecerse con respecto a otros usuarios en el sistema.
Además, el sistema también puede identificar a un usuario como un experto temporal para un lugar/evento o región geográfica en particular. Por ejemplo, un usuario que al momento se encuentra en un lugar/evento en particular, o que ha estado en ese lugar/evento recientemente (por ejemplo, dentro de la última hora o en las últimas dos horas) puede ser considerado un experto temporal. En consecuencia, el sistema puede enviar ciertos tipos de preguntas que requieren tiempo real o un conocimiento muy actual sobre una ubicación a un experto temporal. Por ejemplo, si un usuario está de vacaciones y se encuentra en un restaurante desconocido en una ciudad desconocida, se puede determinar que el usuario es un experto temporal y preguntas tales como qué tan lleno está el restaurante o cuándo finaliza la hora feliz se pueden enviar al experto temporal.
En una realización, los puntos asignados a un usuario pueden decaer con el tiempo, de manera que un usuario debe
mantener un cierto umbral de puntos (o un cierto número de puntos en relación con sus compañeros) para mantener el nivel de experiencia. Además, el número de puntos otorgados para lugares/eventos específicos puede atenuarse a medida que se asignan a escalas de mapa cada vez más grandes o categorías cada vez más amplias. Por ejemplo, un registro en un lugar/evento específico asigna X puntos para el lugar/evento específico, Y puntos para la celda geográfica atómica (por ejemplo, la región geográfica más pequeña utilizada por el sistema) donde se encuentra el lugar/evento y Z puntos para la categoría más específica asociada con el lugar/evento. Sin embargo, el sistema también puede asignar puntos Y-A para la siguiente celda geográfica más grande y puntos Y-B para la siguiente celda geográfica aún más grande. De manera similar, el sistema también puede asignar puntos Z-A para un siguiente nivel de categorías y Z-B para un nivel más amplio de categorías.
Por ejemplo, si el lugar/evento es Sushi Ota en San Diego, el usuario puede recibir puntos Y para la celda geográfica en el nivel de escala del mapa 8 (la celda geográfica más pequeña) donde se encuentra el restaurante Sushi Ota, recibir puntos Y-A para la celda geográfica en la escala del mapa del nivel 7 que incluye la celda del nivel 8 donde se encuentra el restaurante Sushi Ota, y nuevas reducciones en los valores de puntos a medida que el nivel de escala del mapa disminuye (donde el nivel de escala del mapa 1 tiene las celdas geográficas más grandes). De manera similar, el usuario puede recibir puntos Z para restaurantes de sushi, puntos Z-A para restaurantes de mariscos, puntos Z-B para restaurantes, puntos Z-C para alimentos, etc. Siempre que la atenuación se aplique de la misma manera a todos los usuarios, el sistema está configurado de manera ventajosa para aproximarse a la experiencia de sus usuarios para lugares/eventos específicos basados en la experiencia del usuario para categorías particulares de lugares/eventos. Aún más ventajosamente, el sistema puede identificar uno o más expertos basándose en la correlación cruzada entre los niveles de experiencia de las categorías y las ubicaciones geográficas.
En una realización, los puntos otorgados pueden dividirse entre múltiples categorías o regiones geográficas. Por ejemplo, si un usuario experto responde una pregunta general sobre una gran región geográfica que incluye dos vecindarios (o una pluralidad de celdas geográficas), a cada uno de esos vecindarios (o celdas) se les puede asignar una parte del total de puntos asignado. Las partes asignadas a cada vecindario (o celda) pueden ser iguales o desiguales y el total acumulado de los puntos asignados a cada vecindario (o celda) puede ser incluso menor o mayor que el total de puntos asignados a la región más grande (celda principal).
En una realización, los umbrales de puntos expertos pueden ser dinámicos, según el nivel de experiencia total de la población actual de usuarios en el sistema. Por ejemplo, si hay un exceso de expertos para una ubicación/lugar en particular, el nivel de umbral de los puntos requeridos para ser determinado como un experto puede aumentar automáticamente para elevar el nivel para ser identificado como un experto con respecto a esa ubicación/lugar específico.
En las figuras 16 y 17 se proporciona una explicación de la escala del mapa y las celdas geográficas correspondientes. La figura 16 es un diagrama de bloques que ilustra ejemplos de escalas de mapa y celdas geográficas según una realización de la invención y la figura 17 es un diagrama de bloques que ilustra un ejemplo de región geográfica definida por celdas geográficas en una pluralidad de escalas según una realización de la invención. Por ejemplo, la región geográfica de la figura 17 puede corresponder estrechamente a un límite del vecindario, como lo entiende la población local que vive en esa área.
Inicialmente, y como entenderán los expertos en la técnica, el mundo puede dividirse lógicamente en regiones geográficas de igual tamaño cada vez más pequeñas. Para facilitar la explicación, nos referiremos a estas regiones de igual tamaño como celdas geográficas. La celda más grande sería el globo terráqueo a nivel de escala de mapa 1 y esta celda se puede dividir en dos celdas hemisféricas que corresponderían al nivel de mapa 2 y así sucesivamente. A los efectos de los servicios basados en la ubicación, tales celdas geográficas grandes no son prácticas y, por lo tanto, en una realización, el globo terráqueo se divide en 16 celdas geográficas en el nivel de mapa 1 y luego cada una de esas celdas también se divide en 16 celdas geográficas en el nivel de mapa 2 y así sucesivamente hasta que la celda geográfica más pequeña sea una región geográfica de tamaño razonable con respecto a los servicios basados en la ubicación. En una realización, la celda geográfica más pequeña es aproximadamente un metro cuadrado.
Como se muestra en la figura 16, el nivel de escala del mapa N es la escala de mapa más alta y contiene dieciséis celdas geográficas de igual tamaño. Cada celda geográfica se puede subdividir en dieciséis celdas geográficas de igual tamaño y, en la realización ilustrada, la celda geográfica 1500 en la escala N del mapa está dividida y ampliada, y se muestra como nivel de escala N-1 del mapa. De manera similar, la celda geográfica 1510 en la escala N-1 del mapa también está dividida y ampliada, y se muestra como escala N-2 del mapa. La celda geográfica 1520 a escala de mapa N-1 también está dividida y ampliada y se muestra como escala de mapa N-3, que incluye la celda geográfica 1530 que se puede dividir de manera similar hasta que se obtenga el nivel de granularidad deseado. Ventajosamente, esta división lógica en celdas geográficas se puede lograr utilizando coordenadas GPS o coordenadas de latitud y longitud o algún otro sistema similar.
Debido a que las regiones geográficas ocupadas por personas no emplean tales límites lógicos, la figura 17 ilustra cómo un vecindario existente aún puede ser definido usando celdas geográficas de una pluralidad de escalas de mapa. En una realización (no mostrada), un vecindario podría describirse geográficamente como el agregado de todas las celdas geográficas atómicas (las celdas geográficas más pequeñas) dentro del límite del vecindario. Una mejora sobre esto se muestra en la figura 17 donde el vecindario se describe geográficamente utilizando el número mínimo de celdas geográficas, es decir, un agregado de todas las celdas más grandes de cada capa del mapa que caen dentro del límite del vecindario.
Volviendo ahora, la figura 1 es un diagrama de red que ilustra un sistema de ejemplo 10 para la determinación empírica de expertos y el envío de preguntas y respuestas. En la realización ilustrada, el sistema 10 comprende uno o más servidores 40 y una pluralidad de dispositivos de comunicación de usuario 20 y 30. Cada uno de estos componentes del sistema 10 está configurado con un área de almacenamiento de datos 25, 35 y 45 respectivamente. Los diversos componentes del sistema 10 se comunican a través de una red cableada o inalámbrica 50, y pueden ejecutar una variedad de protocolos y aplicaciones como entenderán los expertos en la técnica. Ventajosamente, el servidor 40 y los dispositivos de comunicación 20 y 30 son accesibles para la comunicación a través de la red 50. Los dispositivos de comunicación 20 y 30 y el servidor 40 pueden implementarse como un dispositivo habilitado por procesador que incluye, entre otros, computadoras personales, computadoras portátiles, teléfonos inteligentes y dispositivos de mano, solo para mencionar algunos. Un ejemplo de dispositivo habilitado para un procesador se describe más adelante con respecto a la figura 19.
La figura 2 es un diagrama de bloques que ilustra un ejemplo de dispositivo de comunicación 20 según una realización de la invención; En la realización ilustrada, el dispositivo 20 comprende un módulo de ubicación 100, un módulo de consulta 110, un módulo de respuesta 120, un módulo de entrada 130 y un módulo de grupo 140. El dispositivo de comunicación está configurado con un área de almacenamiento de datos 25.
El módulo de ubicación 100 está configurado para determinar la ubicación del dispositivo de comunicación 20 (y, en consecuencia, el usuario). En una realización, el módulo de ubicación 100 se comunica con un módulo GPS integrado en el hardware del dispositivo 20. Se puede acceder al módulo de ubicación 100 mediante otros módulos en el dispositivo 20 y, en respuesta, puede proporcionar un módulo de solicitud con la ubicación actual del dispositivo 20 (y, en consecuencia, el usuario). Dicha información sobre la ubicación del usuario puede comunicarse ventajosamente a los servidores 40. Se puede acceder al módulo de ubicación 100 cuando se muestra la ubicación de un usuario en un mapa, al enviar preguntas, al responder preguntas y otros casos. El mapa se carga utilizando un módulo de mapa nativo (no se muestra). En una realización, el módulo de mapa nativo es proporcionado por el sistema operativo del dispositivo de comunicación 20.
El módulo de consulta 110 está configurado para interactuar con un usuario y aceptar una pregunta de usuario y comunicar esa pregunta a uno o más servidores 40. En una realización, la pregunta comprende una cadena de pregunta, una ubicación actual del usuario, una ubicación del área en cuestión (es decir, la escala del mapa), un radio opcional, un conjunto opcional de identificadores de lugar y categorías opcionales de lugares. El módulo de consulta 110 acepta la entrada del usuario y comunica los datos de la consulta a uno o más servidores 40. En otra realización, el usuario formula la pregunta verbalmente, y el mensaje se transcribe a texto en el dispositivo de comunicación 20, o se transcribe de forma remota mediante un módulo de voz a texto en un servidor al que se puede acceder a través de una conexión de red. En una realización, un usuario selecciona un área de interés en un mapa, se desplaza y se acerca hasta que el área de interés se muestra en la pantalla. Esta selección se traduce en una latitud/longitud y un radio, que se determina que es la escala del mapa y la escala del mapa se comunica a uno o más servidores 40. En otra realización, la escala del mapa se determina aceptando la entrada de texto del usuario que representa el nombre de un vecindario, intersección o nombre de la ciudad. En otra realización, la escala del mapa se determina analizando la cadena de pregunta en busca de nombres de áreas, donde uno o más servidores 40 determinan la escala del mapa después de haber recibido la consulta.
El módulo de respuesta 120 está configurado para recibir información de un usuario experto que está respondiendo una pregunta que se ha enviado a ese usuario como experto. En una realización, el módulo de respuesta 120 presenta al usuario en la pantalla del dispositivo de comunicación 20 la pregunta, el lugar/evento específico, la categoría del lugar/evento, la escala del mapa asociada con la pregunta, la ubicación de la pregunta (latitud/longitud/radio), el usuario que envía la pregunta (opcionalmente), la hora a la que se envió la pregunta y cualquier respuesta que ya haya recibido. En una realización, el módulo de respuesta 120 recibe como entrada una cadena de respuesta y, opcionalmente, uno o más identificadores de lugares/eventos, una o más fotos, un identificador de escala de mapa, una o más ubicaciones (latitud/longitud/radio), uno o más identificadores de región geográfica (por ejemplo, un vecindario), una bandera anónima y una bandera de compartir con la red social. Una vez que se recibe la cadena de respuesta, el módulo de respuesta 120 envía la cadena de respuesta a uno o más servidores 40 y muestra al usuario experto un mensaje de confirmación o un mensaje de error. En el mensaje de confirmación, el módulo de respuesta 120 puede mostrar al usuario experto un total de puntos que el usuario experto obtuvo por responder la pregunta.
El módulo de entrada 130 está configurado para recibir la entrada de un usuario que pregunta o un usuario experto en el dispositivo de comunicación 20. El módulo de entrada 20 funciona en cooperación con el módulo de consulta 110 y el módulo de respuesta 120. En una realización, el módulo de entrada 20 recibe uno o más de los siguientes: una cadena de texto, una o más ubicaciones (latitud/longitud/radio), uno o más identificadores de lugar, una o más categorías de lugares/eventos, una o más escalas de mapas, una o más fotos, una o más banderas para permitir compartir en redes sociales o permitir la participación anónima de cualquier usuario.
En una realización alternativa, el módulo de entrada 130 permite que un usuario proporcione información a uno o más servidores 40 sobre un lugar/evento particular. Por ejemplo, un usuario en un lugar específico puede acceder a uno o más servidores 40 utilizando el dispositivo 20 y usar el módulo de entrada 130 para proporcionar información demográfica y/o actual sobre el lugar/evento específico. Por ejemplo, el usuario puede completar la información faltante en el perfil para el lugar/evento específico que falta en el área de almacenamiento de datos en uno o más servidores 40. Esto puede incluir las horas de funcionamiento del lugar/evento, ya sea que el lugar/evento incluya baños o sirva alcohol, etc. Ventajosamente, el uno o más servidores 40 pueden crear y mantener un perfil para una pluralidad de lugares/eventos, y la información del perfil puede estar disponible para que la edite un usuario cuando se verifique que la ubicación específica del dispositivo de comunicación 20 asociado con el usuario es en realidad la ubicación conocida del lugar/evento en particular.
El módulo de grupo 140 está configurado para determinar cuándo consolidar o separar las anotaciones individuales que se muestran en la interfaz de usuario de un dispositivo de comunicación de usuario 20. Por ejemplo, cuando se muestra un mapa en la interfaz de usuario de un dispositivo de comunicación de usuario 20 en una primera escala, puede que solo haya unos pocos usuarios y lugares/eventos que residan en el mapa en la primera escala, lo que puede representar un área geográfica relativamente pequeña. Sin embargo, cuando la escala del mapa aumenta de manera tal que el mapa visualizado representa un área geográfica relativamente grande, puede haber decenas o cientos de usuarios y lugares/eventos que se mostrarán en la interfaz del usuario. El módulo de grupo 140 está configurado para determinar cuándo combinar anotaciones en un grupo y cuándo dividir los grupos en anotaciones individuales, en grupos separados o en alguna combinación de anotaciones y grupos.
En una realización, el módulo de grupo 140 está configurado para analizar las anotaciones que se mostrarán en el mapa y las coordenadas particulares de cada anotación. Si las coordenadas de una primera y segunda anotaciones son tales que las primeras y segundas anotaciones se superpondrían entre sí en un porcentaje predeterminado, entonces el módulo de grupo 140 está configurado para combinar la primera y segunda anotaciones en un primer grupo, y presentar el primer grupo como una única anotación en el mapa en la interfaz de usuario mostrada. De manera similar, si las coordenadas de una tercera y cuarta anotaciones que se combinan actualmente en un segundo grupo son tales que las anotaciones tercera y cuarta mostradas no se superpondrán entre sí en un cierto porcentaje, entonces el módulo 140 del grupo se configura para dividir el segundo grupo y presentar individualmente la tercera y cuarta anotaciones como anotaciones separadas en el mapa en la interfaz de usuario mostrada.
Como entenderán los expertos en la técnica, una técnica de este tipo puede aplicarse cada vez que se representa la interfaz de usuario para combinar anotaciones en grupos, combinar grupos en grupos y combinar anotaciones y grupos en grupos. De manera similar, esta técnica también se puede emplear cada vez que la interfaz de usuario se muestra con el fin de dividir los grupos en una pluralidad de anotaciones y grupos o alguna combinación de anotaciones y grupos.
La figura 3 es un diagrama de bloques que ilustra un ejemplo de conjunto de módulos del servidor central 40 según una realización de la invención. En la realización ilustrada, el servidor 40 comprende un módulo de seguimiento 150, un módulo de puntuación 160, un módulo de envío 170 y un módulo de lugar 180. El módulo de seguimiento 150 rastrea las ubicaciones pasadas y actuales de los usuarios. Una ubicación puede incluir la latitud y la longitud, una marca de tiempo, una identificación única, y también puede incluir un radio, una medida de la precisión, un nombre del lugar/evento, un nivel de escala del mapa, un identificador de celda geográfica, un nombre de vecindario, un nombre de ciudad, una lista de categorías que describen este lugar/evento, y una descripción de la fuente de esta información. En una realización de la invención, la precisión de la ubicación se mide por la precisión del módulo GPS en un dispositivo de comunicación, que se comunica a uno o más servidores 40.
El módulo de seguimiento 150 almacena el historial de ubicación de cada usuario en el área de almacenamiento de datos 45, y puede consultarse para recuperar la información. Por ejemplo, se puede consultar al módulo de seguimiento 150 para proporcionar la última ubicación de un usuario, y la última vez que un usuario ha estado en un lugar/evento específico, y la cantidad de veces que un usuario ha estado en un lugar/evento específico. Las consultas al sistema pueden estar limitadas por una serie de filtros, incluidos el tiempo, la escala del mapa, la categoría del lugar/evento, el usuario y el lugar. Las consultas se pueden clasificar por una serie de atributos que incluyen el tiempo, la distancia desde un punto, el nombre del lugar/evento y el nombre de usuario.
El módulo de seguimiento 150 coopera con el módulo de ubicación 100 para recibir actualizaciones periódicas sobre dónde está y ha estado un usuario. El módulo de seguimiento 150 también puede recibir información de aplicaciones de terceros que proporcionan los lugares/eventos visitados por los usuarios de esas aplicaciones y servicios de terceros. Algunos ejemplos de estas aplicaciones y servicios de terceros incluyen Foursquare, Facebook, Yelp y Google Latitude.
El módulo de puntuación 160 rastrea los puntos y la experiencia en todo el sistema, y está configurado para determinar usuarios expertos con respecto a un lugar/evento y categoría de lugar/evento dados. Las puntuaciones se almacenan en el área de almacenamiento de datos 45, asociadas a un usuario específico por la identificación única de ese usuario, y las puntuaciones se actualizan cuando el sistema recibe nueva información sobre ese usuario. En una realización de la invención, cada usuario acumula puntos para un lugar/evento específico (por ejemplo, Sushi Ota), una categoría de lugar/evento (por ejemplo, restaurante) y una región geográfica (por ejemplo, una celda geográfica, latitud/longitud/radio o vecindario). La figura 7 describe este proceso con más detalle a continuación. Volviendo a la figura 3, el área de almacenamiento de datos 45 almacena los totales de puntos asociando la identificación única del usuario con el lugar/evento, la escala del mapa y una o más categorías correspondientes al lugar/evento. Por ejemplo, en una realización, cuando se realiza un seguimiento de la experiencia para un lugar/evento específico, el sistema almacena y actualiza una fila de la base de datos que asocia a uno o más usuarios, el lugar/evento particular y el número total de puntos acumulados por cada usuario para ese lugar /evento. El sistema también puede almacenar la última vez que se actualizó esta fila, si este total de puntos ha superado un umbral de experiencia predeterminado o determinado dinámicamente, y si el sistema ha recibido una solicitud por parte del usuario para desactivar esta experiencia.
Un ejemplo adicional describe el almacenamiento de experiencia para una escala de mapa particular. Las escalas del mapa pueden incluir estados, ciudades, vecindarios, cuadras y cualquier latitud/longitud/radio específicos en el mundo. Los puntos de experiencia se almacenan al asociar un usuario y una escala de mapa de dos maneras. La primera es determinando uno o más nombres para la escala, por ejemplo, el vecindario, la ciudad, el estado, etc. En este caso, el sistema asigna puntos a la experiencia del usuario en el vecindario, la ciudad, etc. En esta realización, el sistema almacena esta información como una fila en la base de datos que asocia al usuario (usando la identificación del usuario), y la región nombrada.
Un segundo procedimiento para rastrear la experiencia del usuario para una escala de mapa en particular es dividir el mundo en una cuadrícula, a diferentes niveles de granularidad como se describió anteriormente. En una realización, esto se puede lograr usando «geohashing». En consecuencia, el sistema rastrea los puntos de experiencia para un usuario en cada nivel de granularidad, asociando un usuario (usando la identificación del usuario) y una celda geográfica (por ejemplo, "8effa93").
El módulo de puntuación 160 determina el nivel de experiencia en cada uno de los tipos de experiencia (por ejemplo, lugar/evento, categoría, escala) al analizar la cantidad de puntos acumulados para ese tipo de experiencia. Una vez que un usuario ha alcanzado un cierto umbral (por ejemplo, 100 puntos), se determina que el usuario es un experto para el lugar/evento, categoría, escala, etc. (Por ejemplo, experto en cafeterías, experto en sushi, experto en el centro de la ciudad, experto en la celda geográfica "8effa93"). En una realización, hay una pluralidad de umbrales que determinan una pluralidad de niveles expertos. Por ejemplo, 100 puntos pueden representar el nivel uno, 200 puntos pueden representar el nivel dos y así sucesivamente. Estos umbrales son variables y pueden establecerse manualmente o pueden generarse dinámicamente en función del tamaño de la población de usuarios y la distribución de puntos en el sistema.
El módulo de puntuación 160 también está configurado para identificar a uno o más expertos en una escala de mapa/región geográfica dada en una o más categorías. En una realización, el módulo de puntuación 160 recibe como entrada la escala (o área geográfica), una o más categorías, y el número de expertos requeridos. La escala (o área geográfica) se puede determinar aceptando una identificación de una o más celdas geográficas o aceptando una tupla de latitud/longitud/radio, que se puede traducir en una o más celdas de la cuadrícula como se explicó anteriormente con respecto a la figura 17.
En una realización de la invención, las celdas geográficas se indexan mediante «códigos geo hash». Un «código hash geocelular» es una secuencia de caracteres hexadecimales que identifica de manera única un rectángulo geoespacial bidimensional (por ejemplo, "8effa93a"). Los códigos se asignan jerárquicamente por subdivisión repetida del mundo mediante cuadrículas de 4 por 4, como en un árbol de 16 vías, de manera que cada carácter hexadecimal identifica una celda única en la cuadrícula. Los códigos hash más largos representan subdivisiones más finas en los niveles más profundos del árbol. Para decodificar un código hash, el sistema comienza dividiendo el mundo en una cuadrícula de 4 por 4. Cada carácter hexadecimal del hash se usa para seleccionar secuencialmente una celda rectangular de la cuadrícula, que, a su vez, se convierte en la extensión de una nueva cuadrícula de 4 por 4. El proceso termina después
de alcanzar el carácter final del código hash.
El área de almacenamiento de datos 45 se consulta para identificar usuarios en el área que tienen totales de puntos que exceden el umbral de puntos para un experto, en las categorías dadas. En una realización de la invención, una consulta comienza en el nivel más granular de la escala del mapa, y continúa buscando escalas cada vez más gruesas o puntos totales cada vez más bajos hasta que se haya identificado el número deseado de expertos. En esta realización, el número total de puntos puede normalizarse de tal manera que a medida que aumenta la escala especificada, los puntos se multiplican por el nivel de escala. Por ejemplo, en el nivel 8 (por ejemplo, ocho caracteres en el código hash "8effa93a") el umbral de puntos requerido para ser un experto es 10, pero en el nivel 7 (por ejemplo, siete caracteres en el código hash "8effa93") el umbral de puntos requerido para ser un experto es 100. En una realización de la invención, los resultados se clasifican finalmente por el número de puntos normalizados en todo el conjunto de usuarios.
El módulo de lugar 180 está configurado para administrar y almacenar información sobre lugares/eventos. Esta información se almacena en el área de almacenamiento de datos 45. En una realización, la información puede incluir el nombre del lugar/evento, la latitud y la longitud y el radio para determinar la escala del mapa, un identificador geográfico de celda para determinar la escala del mapa, la dirección del lugar/evento, las categorías del lugar/evento (por ejemplo, noche club, comida india, etc.), referencias a ese lugar/evento en servicios de terceros (por ejemplo, la identificación del lugar de Foursquare), la cuenta de Twitter del lugar/evento, la fecha y hora de la última actualización de este lugar/evento y otra información. La información del lugar/evento también puede incluir varios atributos sobre el lugar/evento, como las horas de operación, si el lugar/evento sirva alcohol, tiene baños públicos, etc. Estos datos se pueden recuperar de una variedad de fuentes (por ejemplo, Foursquare, el sitio web del lugar/evento específico) o se pueden recibir de usuarios identificados como expertos o expertos temporales (por ejemplo, un usuario que se encuentre actualmente en la ubicación puede ser un experto temporal) y esta información se almacena ventajosamente en el área de almacenamiento de datos 45. Esta información se actualiza de forma regular, consultando los recursos de estas fuentes externas y/o recibiendo información adicional de los usuarios. Estos datos también pueden ser actualizados manualmente por los administradores del sistema o por los propietarios/gerentes de los lugares/eventos. Ventajosamente, cada lugar tiene un identificador único en el área de almacenamiento de datos que se puede usar en los otros módulos del sistema (por ejemplo, el módulo de puntuación 160).
La figura 4 es un diagrama de flujo que ilustra un ejemplo de proceso para recibir una pregunta y proporcionar una respuesta experta según una realización de la invención. El proceso se puede llevar a cabo en un sistema como el descrito anteriormente con respecto a las figuras 1-3. En la realización ilustrada, el proceso comienza en el paso 200 al recibir una consulta de una fuente. En una realización, la fuente es un usuario de un dispositivo de comunicación. Esta consulta puede provenir del módulo de consulta 110 o una implementación de un módulo de consulta por parte de un tercero (por ejemplo, utilizando un módulo de un tercero con una interfaz de programación de aplicaciones para comunicarse con uno o más servidores 40). Esta consulta recibida se analiza para identificar los parámetros que permiten al sistema enviar la pregunta. En una realización de la invención, el sistema primero analiza la pregunta para identificar cualquier lenguaje inapropiado. En otra realización de la invención, el sistema analiza la pregunta para encontrar coincidencias con una pregunta previa ya formulada en el área. Si se encuentra una coincidencia, el sistema puede devolver la respuesta proporcionada anteriormente.
Después de recibir la consulta, en el paso 210 el sistema identifica la escala del mapa asociada con la pregunta. La escala del mapa se puede determinar en función de la escala de un mapa que se muestra en el dispositivo de comunicación del usuario que envió la pregunta. A continuación, en el paso 220, el sistema identifica un lugar/evento asociado con la pregunta. En algunas circunstancias, puede que no haya ningún lugar/evento asociado con la pregunta, por ejemplo, si la pregunta es sobre el nombre de un lugar/evento: «¿Qué restaurante de sushi es bueno por aquí?» Una vez que se ha identificado la escala y/o el lugar/evento, en el paso 230 el sistema identifica uno o más expertos que pueden responder la pregunta. Como se describió anteriormente, los expertos se identifican según su experiencia calculada con respecto a la escala del mapa y/o el lugar/evento específico. La consulta se envía a uno o más expertos identificados en el paso 240 y el sistema recibe una o más respuestas de uno o más expertos en el paso 250. La una o más respuestas (o un subconjunto de ellas) se envían a la fuente en el paso 260 y los perfiles de los expertos se actualizan en el paso 270 para reflejar la participación de cada experto en la sesión de preguntas y respuestas. En particular, la participación del experto puede hacer que el valor total en puntos del experto aumente o disminuya según la participación del experto. En una realización, los pasos 230 y 240 pueden implementarse usando un proceso similar al proceso descrito más adelante con respecto a la figura 8, pasos 620-650, de tal manera que un número deseado de expertos se identifiquen como destinatarios de la pregunta y luego se envíe la pregunta a ese grupo de expertos.
Al identificar la escala del mapa y el lugar/evento, el sistema puede comunicarse con el módulo de seguimiento 150 y/o el módulo de lugar 180. Al identificar expertos, el sistema puede comunicarse con el módulo de puntuación 160, y al enviar la consulta a los expertos, el sistema puede comunicarse con el módulo de envío 170. En una realización, el
sistema almacena la pregunta y los expertos seleccionados y las respuestas recibidas en el área de almacenamiento de datos 45. Por ejemplo, el sistema puede almacenar todos los parámetros proporcionados en la consulta, una lista de los usuarios expertos (ID de usuario) que fueron seleccionados y las respuestas proporcionadas por cada experto.
Además, al enviar la consulta a los expertos, el sistema puede comunicarse con el módulo de respuesta 120 en el dispositivo de comunicación de cada experto identificado, de modo que el módulo de respuesta presente la pregunta al usuario experto. En una realización, la respuesta recibida se envía al usuario que hace la pregunta sin demora y, en una realización alternativa, las respuestas pasan primero a través de un sistema que busca lenguaje inapropiado u otros criterios predeterminados.
La figura 5 es un diagrama de flujo que ilustra un ejemplo de proceso para rastrear información basada en la ubicación para un usuario según una realización de la invención. El proceso ilustrado se puede llevar a cabo mediante el sistema descrito anteriormente en las figuras 1-3. En la realización ilustrada, en el paso 300 el sistema recibe datos de ubicación correspondientes a un usuario. Los datos de ubicación pueden recibirse desde un módulo de ubicación 100 que reside en el dispositivo de comunicación del usuario. En una realización, los datos de ubicación pueden provenir de servicios de registro como Foursquare y Facebook y también pueden derivarse de otra información como la información de GPS relacionada con el dispositivo de comunicación 20 y la información de las redes sociales que no sean servicios de registro. Por ejemplo, los datos de ubicación pueden derivarse del contenido de las interacciones de las redes sociales de un usuario en Twitter u otro servicio de terceros. Los datos de ubicación pueden incluir latitud, longitud, un radio, una medida de precisión, una identificación de usuario, una identificación de usuario del servicio de terceros (por ejemplo, una identificación de usuario de Foursquare), una marca de tiempo para el momento de la actualización de la ubicación, una identificación del lugar si la ubicación está en un lugar conocido, y una celda geográfica. Los datos de ubicación pueden incluir otra información también. Esta información de datos de ubicación está asociada con un usuario particular en el paso 310 y en el paso 320 los datos de usuario se actualizan para reflejar la información de datos de ubicación adicional. En una realización, la actualización de los datos del usuario también puede incluir la revisión de la puntuación de experto del usuario para uno o más lugares/eventos, categorías de lugares/eventos, escalas de mapas, regiones geográficas y similares.
La figura 6 es un diagrama de flujo que ilustra un ejemplo de proceso para analizar información basada en la ubicación para facilitar la determinación de expertos según una realización de la invención. En una realización, el proceso se puede llevar a cabo mediante el sistema descrito anteriormente con relación a las figuras 1-3. En el proceso ilustrado, los datos del usuario se obtienen en el paso 350. Por ejemplo, los datos del usuario pueden obtenerse del área de almacenamiento de datos 45. Luego, en el paso 360, los datos del usuario se analizan para identificar lugares/eventos específicos donde el usuario ha estado y al usuario se le asignan puntos de evento/evento en el paso 365 según la cantidad y la frecuencia de visitas a cada lugar/evento. De manera similar, en el paso 370 se analizan los datos del usuario para identificar las escalas del mapa correspondientes a las visitas de los usuarios a uno o más lugares/eventos. Por ejemplo, si el usuario tiene muchas visitas a una variedad de lugares en una celda geográfica particular, entonces se pueden otorgar puntos por la escala del mapa correspondiente a esa celda en particular. En consecuencia, en el paso 375, los puntos de escala se asignan al usuario en función de las escalas identificadas y el análisis de los datos de usuario obtenidos. A continuación, en el paso 380 se analizan los datos del usuario para identificar una o más categorías que corresponden a las visitas de los usuarios a lugares/eventos y otros datos de seguimiento de la ubicación del usuario y en el paso se asignan 385 puntos de categoría. De manera similar, en el paso 390 se analizan los datos de ubicación para identificar las regiones donde el usuario pasó el tiempo y los lugares/eventos visitados y en el paso 395 se asignan puntos de región al usuario.
En una realización, el número de puntos asignados puede variar dependiendo de una asignación deseada y los puntos que se asignan se agregan a un total acumulado para el usuario para el lugar en particular en el paso 360, los datos del usuario se analizan para identificar lugares/eventos específicos donde el usuario ha estado y al usuario se le asignan puntos de lugar/evento en el paso 365 según la cantidad y la frecuencia de visitas a cada lugar/evento, categoría de lugar/evento, y así sucesivamente. En una realización, un lugar puede identificarse, por ejemplo, mediante un identificador de lugar incluido en la información de ubicación o comunicándose con el módulo de lugar 180. La categoría también puede identificarse mediante la comunicación con el módulo de lugar 180. En una realización, la escala del mapa se puede identificar al convertir una latitud, longitud y radio dados en un conjunto de regiones (por ejemplo, barrios, ciudades) y/o geográficos como se describió anteriormente.
La figura 7 es un diagrama de flujo que ilustra un ejemplo de proceso para actualizar un perfil de experto según la respuesta del experto a una pregunta según una realización de la invención. El proceso ilustrado puede llevarse a cabo por el sistema descrito anteriormente con respecto a las figs. 1-3. Inicialmente, en el paso 450 el sistema recibe una respuesta de un experto. La respuesta (y posiblemente también la pregunta correspondiente) se analiza para identificar el lugar correspondiente a la respuesta en el paso 460. En algunos casos, puede que no haya un lugar asociado con la respuesta, por ejemplo, cuando la pregunta está relacionada con una categoría. Si hay un lugar asociado, en el paso 465 el sistema asigna puntos de lugar al perfil del usuario experto. Luego, en el paso 470, se
analiza la respuesta (y posiblemente la pregunta) para identificar una o más escalas de mapa asociadas con la respuesta y en el paso 475 se asignan puntos de escala al usuario experto para una o más escalas de mapa. De manera similar, en el paso 480, se analiza la respuesta (y posiblemente la pregunta) para identificar una o más escalas de mapa asociadas con la respuesta y en el paso 485 se asignan puntos de escala al usuario experto para una o más escalas de mapa. Finalmente, en el paso 490, se analiza la respuesta (y posiblemente la pregunta) para identificar una o más regiones geográficas asociadas con la respuesta y en el paso 495 se asignan puntos de región al usuario experto para la una o más regiones geográficas.
La figura 8 es un diagrama de flujo que ilustra un ejemplo de proceso para enviar una pregunta a un experto temporal según una realización de la invención. El proceso ilustrado puede llevarse a cabo por el sistema descrito anteriormente con respecto a las figs. 1-3. Inicialmente, en el paso 600, el sistema recibe una pregunta de un usuario, por ejemplo, a través del módulo de consulta 110 o una implementación de un módulo de consulta por parte de un tercero. Luego, en el paso 610, se analiza la pregunta para determinar el lugar/evento específico asociado con la pregunta. A continuación, el sistema analiza los datos del área de almacenamiento de datos 45 relacionados con el lugar o evento identificado para identificar a los expertos temporales con respecto al lugar o evento identificado, como se muestra en el paso 620. Por ejemplo, en una realización, un experto temporal puede ser una persona que se encuentra actualmente en el lugar/evento, independientemente del nivel de puntos expertos de la persona con respecto al lugar/evento en particular. En una realización, el módulo de puntuación 160 puede identificar a los expertos temporales disponibles para el lugar identificado. Luego, en el paso 630, el sistema determina si incluirá al experto temporal identificado en una lista de destinatarios de la pregunta y, por ejemplo, agrega al experto temporal a la lista de expertos a los que se enviará la pregunta. Si se ha identificado un número suficiente de expertos temporales (por ejemplo, más de un número de umbral predeterminado), como se determinó en el paso 640, el sistema enviará la pregunta a los expertos identificados en el paso 650. Sin embargo, si aún no se han identificado suficientes expertos, el sistema regresa al paso 620 para identificar expertos temporales adicionales. El sistema continúa recorriendo y analizando a posibles expertos temporales de esta manera hasta que haya seleccionado un número suficiente (por ejemplo, uno o más) de expertos a quienes puede enviar la pregunta. En una realización, ciertos expertos que de otra manera serían identificados como expertos temporales no son seleccionados. Por ejemplo, si el usuario ha deshabilitado la comunicación con el sistema, el usuario ha activado un indicador de "No molestar", el usuario ha optado por salir de un tema/área determinada, etc.
La figura 9 es un diagrama de flujo que ilustra un ejemplo de proceso para identificar expertos según una realización de la invención. El proceso ilustrado puede llevarse a cabo por el sistema descrito anteriormente con respecto a las figs.
1-3. Inicialmente, en el paso 700, el sistema analiza los datos del perfil de usuario en el área de almacenamiento de datos 45 para identificar a los usuarios que han excedido un umbral de puntos de experto para un lugar/evento en particular. Basado en este análisis, en el paso 705, el sistema actualiza el estado del lugar para esos usuarios, si el usuario no está identificado como un experto para ese lugar/evento. De manera similar, en el paso 710, el sistema analiza los datos del perfil de usuario en el área de almacenamiento de datos 45 para identificar a los usuarios que han excedido un umbral de puntos de experto para una o más escalas del mapa. Basado en este análisis, en el paso 715 el sistema actualiza el estado de la escala del mapa para esos usuarios, si el usuario aún no está identificado como un experto para la una o más escalas del mapa. Además, en el paso 720, el sistema analiza los datos del perfil de usuario en el área de almacenamiento de datos 45 para identificar a los usuarios que han excedido un umbral de puntos de experto para una o más categorías. Basado en este análisis, en el paso 725 el sistema actualiza el estado de la categoría para esos usuarios, si el usuario aún no está identificado como un experto para la una o más categorías. De manera similar, en el paso 730, el sistema analiza los datos del perfil de usuario en el área de almacenamiento de datos 45 para identificar a los usuarios que han excedido un umbral de puntos de experto para una o más regiones geográficas. Basado en este análisis, en el paso 735 el sistema actualiza el estado de la región para esos usuarios, si el usuario aún no está identificado como un experto para la una o más regiones geográficas.
La figura 10 es un diagrama de flujo que ilustra un ejemplo de proceso para proporcionar datos del lugar según una realización de la invención. El proceso ilustrado puede llevarse a cabo por el sistema descrito anteriormente con respecto a las figs. 1-3. En una realización, los datos del lugar/evento se almacenan en el área de almacenamiento de datos 45. Inicialmente, en el paso 900 se recibe una solicitud de datos del lugar/evento. A continuación, el sistema analiza los datos de su lugar/evento para determinar en el paso 910 si existen datos relevantes de lugar/evento en el sistema. Si no hay datos de lugares/eventos, en el paso 920 el sistema consulta una fuente de datos de lugares/eventos para obtener datos de lugares/eventos. En una realización, una fuente de datos de un lugar/evento puede ser un proveedor externo de información sobre varios lugares/eventos y también puede haber una o más fuentes de datos que proporcionan información del lugar/evento al sistema. El sistema recibe la información del lugar/evento en el paso 930 y se proporciona en respuesta a la solicitud en el paso 940. Ventajosamente, si se reciben datos del lugar/evento de la fuente de datos, los datos del lugar/evento se almacenan posteriormente en el área de almacenamiento de datos 45. Sin embargo, si el lugar ya existe, como se determinó en el paso 910, entonces en el paso 915 el sistema determina si la información del lugar/evento está obsoleta y necesita actualizarse (por ejemplo, si la hora donde se actualizaron los datos por última vez supera un cierto límite). Si es necesario actualizar la información
del lugar/evento, el sistema continúa con el paso 920 y consulta la fuente de datos del lugar para obtener información actualizada, y continúa como se describió anteriormente. Si la información del lugar/evento no es obsoleta, como se determinó en el paso 915, en el paso 940 el sistema proporciona los datos del lugar/evento solicitados en respuesta a la solicitud.
Como se discutió previamente con respecto a las figuras 1-3, el dispositivo de comunicación 20 tiene una interfaz de usuario con la que interactúan usuarios expertos y usuarios de consultas. En una realización, la ubicación de un usuario o un lugar/evento se superpone en un mapa que se muestra en esta interfaz de usuario. Una ubicación puede representar donde un usuario está actualmente presente, ha estado recientemente, o un lugar/evento donde el usuario es un experto. Las ubicaciones se representan mediante anotaciones en el mapa que se muestra en la interfaz de usuario del dispositivo de comunicación. Para mostrar de manera eficiente estas anotaciones en el mapa a medida que aumenta la escala del mapa (es decir, más área de terreno está representada por la misma área de visualización de la interfaz de usuario) y aumenta el número de anotaciones, el sistema agrupa de manera ventajosa las anotaciones. Un grupo representa más de una anotación en un área determinada que se representan como una sola anotación en la interfaz de usuario. Un grupo también puede incluir, por ejemplo, un número que represente el número de anotaciones que se combinan en el grupo. Por ejemplo, un grupo puede representar 10 anotaciones discretas dentro de un radio dado en el mapa que se muestra en la interfaz de usuario.
La figura 11 es un diagrama de estado que ilustra un ejemplo de conjuntos de estados y transiciones para un mapa de mutación según una realización de la invención. En una realización, un mapa de mutación es una tabla hash en memoria que mapea anotaciones a un estado de mutación acumulativa asociado. El estado de cada anotación en la tabla se actualiza siguiendo las transiciones de la máquina de estado. Por lo tanto, el mapa de mutación se puede utilizar como una cola transaccional, lo que permite al sistema rastrear una secuencia de mutaciones individuales y agregar el efecto acumulativo de las operaciones en cada anotación.
En el mapa de mutación, los posibles estados de mutación acumulativos se agregan, eliminan, actualizan y ninguno. Si aún no existe una asignación al mapa, el estado de mutación del elemento es ninguno. En el mapa de mutación, las posibles transiciones de la máquina de estado son marcas agregadas, marcas eliminadas y marcas actualizadas. En la descripción que sigue, marcar una anotación se entiende como seguir la transición de la máquina de estados asociada (es decir, para marcar una anotación añadida, seguimos la transición de la marca añadida).
En la realización ilustrada, la figura 11 representa los posibles cambios que pueden ocurrir en un mapa de mutación y el resultado final de dichos cambios. Por ejemplo, si se marca una anotación como "agregado" en el mapa de mutaciones y su estado actual es "ninguno" o "actualizado", el resultado de la marcación es establecer el estado de la anotación como "agregado". Si se marca una anotación como "agregado" en el mapa de mutaciones y su estado actual es "eliminado", el resultado de la marcación es establecer el estado de la anotación como "ninguno". De manera similar, si se marca una anotación como "eliminado" en el mapa de mutaciones y su estado actual es "ninguno" o "actualizado", el resultado de la marcación es establecer el estado de la anotación como "eliminado". Si se marca una anotación como "eliminado" en el mapa de mutaciones y su estado actual es "agregado", el resultado de la marcación es establecer el estado de la anotación como "ninguno". Si se marca una anotación como "actualizado" en el mapa de mutaciones y su estado es "ninguno", el resultado de la marcación es establecer el estado de la anotación como "actualizado".
En una realización, la condición de agrupamiento es un predicado que se satisface en cualquiera de los dos casos: 1) el recuento de anotaciones asociadas con una celda geográfica supera el umbral para el agrupamiento (por ejemplo, más de cuatro anotaciones), o 2) hay al menos una anotación asociada con la celda geográfica que obliga al agrupamiento, y el recuento de anotaciones asociadas con la celda geográfica es al menos dos.
En una realización, la pantalla de visualización de un dispositivo de comunicación presenta un mapa para el usuario como parte de la interfaz de usuario. El mapa se presenta a una escala particular y el mapa contiene alguna parte de la tierra. El contenedor de la interfaz de usuario que presenta un mapa de una parte de la tierra se denomina ventana gráfica.
En una realización, con el propósito de realizar el agrupamiento, la Tierra se divide en una cuadrícula rectilínea bidimensional de celdas geográficas cuadradas, de manera que el ancho y la altura de cada celda geográfica se determinan por la escala de la ventana gráfica. Las celdas geográficas se numeran comenzando con cero para las celdas del noroeste y se incrementan en orden de trama hacia el este y hacia el sur.
En una realización, el sistema mantiene un mapa hash que asigna las anotaciones en las celdas geográficas con las que están asociadas y donde se muestran. Cuando se añade una anotación a una celda geográfica, se añade una asignación de la anotación a la celda geográfica. Cuando se elimina la anotación, también se elimina la asignación. Esta es una optimización debido al gasto computacional de calcular la proyección de Mercator.
Las figuras 12A-C son diagramas de flujo que ilustran ejemplos de procesos para agregar una anotación a un mapa según una realización de la invención. Los procesos ilustrados se pueden llevar a cabo en un sistema como el descrito anteriormente con respecto a las figuras 1-3. Inicialmente, con respecto a la figura 12A, en el paso 1200, la anotación se marca como "agregada" en el mapa de mutación. A continuación, en el paso 1205 se identifican las celdas geográficas asociadas con la anotación y en el paso 1210 se agrega la anotación a la lista de anotaciones asociadas con la celda geográfica. En una realización, una anotación puede tener un conjunto de atributos y si la anotación comprende un atributo que obliga al agrupamiento, entonces el contador que sigue el número de anotaciones que obligan el agrupamiento se incrementa. Si la celda geográfica tiene un grupo, entonces se cumple la condición de agrupamiento (en una actualización anterior) y la anotación se agrega al grupo, el grupo se marca como actualizado (por ejemplo, siguiendo la transición "marca actualizada" en el mapa de mutación), y la anotación en sí se elimina (por ejemplo, siguiendo la transición "marca eliminada" en el mapa de mutación). Finalmente, en el paso 1215 se actualiza el agrupamiento para la celda. Si la condición de agrupamiento se ha cumplido, se forma el grupo (descrito más adelante con respecto a la figura 14). Si la condición de agrupamiento se ha cumplido, se deshace el grupo (descrito más adelante con respecto a la figura 15).
La figura 12B ilustra un proceso para agregar una anotación a una celda geográfica. Como se ilustra en la figura 12B, el sistema inicialmente agrega la anotación a una lista de anotaciones para la celda geográfica en el paso 1230 e incrementa el recuento de anotaciones para la celda geográfica en el paso 1235. Si la celda geográfica aún no tiene un grupo, como se determinó en el paso 1240, el proceso finaliza, pero si la celda geográfica tiene un grupo, entonces el sistema agrega la anotación a la lista de anotaciones para el grupo en el paso 1245 y marca el grupo actualizado en el paso 1250 (por ejemplo, siguiendo la transición "marca actualizada" en el mapa de mutación). Finalmente, en el paso 1255 se elimina la anotación (por ejemplo, siguiendo la transición "marca eliminada" en el mapa de mutación).
La figura 12C ilustra un proceso para actualizar el agrupamiento de una celda geográfica después de que se haya agregado una anotación. Como se ilustra en la figura 12C, el sistema determina inicialmente en el paso 1270 si la celda geográfica ha cumplido la condición para las anotaciones de agrupamiento. Si los requisitos/condiciones para el agrupamiento no se han cumplido, entonces cualquier grupo existente en esa celda geográfica se divide, como se muestra en el paso 1275. De manera similar, si no hay un grupo existente en la celda geográfica y los requisitos/condiciones para el agrupamiento se han cumplido en la celda geográfica, entonces todas las anotaciones existentes se forman en un nuevo grupo como se muestra en el paso 1280.
Las figuras 13A-C son diagramas de flujo que ilustran ejemplos de procesos para eliminar una anotación de un mapa según una realización de la invención. Los procesos ilustrados se pueden llevar a cabo en un sistema como el descrito anteriormente con respecto a las figuras 1-3. A partir de la fig. 13A, en el paso 1300, el sistema encuentra la celda geográfica que contiene la anotación que se eliminará. A continuación, en la etapa 1305, la anotación se elimina de la lista de anotaciones asociadas con la celda geográfica. Luego, en el paso 1310, se actualiza el agrupamiento para la celda geográfica (por ejemplo, siguiendo la transición de "marca actualizada" en el mapa de mutación) y se elimina la anotación (por ejemplo, siguiendo la transición de "marca eliminada" en el mapa de mutación).
La figura 13B ilustra un proceso para eliminar una anotación de una celda geográfica. Como se ilustra en la figura 13B, el sistema inicialmente elimina la anotación de una lista de anotaciones para la celda geográfica en el paso 1330 y disminuye el recuento de anotaciones para la celda geográfica en el paso 1335. Si la celda geográfica aún no tiene un grupo, como se determinó en el paso 1340, el proceso finaliza, pero si la celda geográfica tiene un grupo, entonces el sistema elimina la anotación de la lista de anotaciones en el grupo en el paso 1345 y marca el grupo como actualizado en el paso 1350 (por ejemplo, siguiendo la transición "marca actualizada" en el mapa de mutación). Finalmente, en el paso 1255 se agrega la anotación (por ejemplo, siguiendo la transición "marca eliminada" en el mapa de anotación).
La figura 13C ilustra un proceso para actualizar el agrupamiento de una celda geográfica después de que se haya eliminado una anotación. Como se ilustra en la figura 13C, el sistema determina inicialmente en el paso 1370 si la celda geográfica ha cumplido la condición para las anotaciones de agrupamiento. Si los requisitos/condiciones para el agrupamiento no se han cumplido, entonces cualquier grupo existente en esa celda geográfica se divide, como se muestra en el paso 1375. De manera similar, si al momento no hay un grupo existente en la celda geográfica y los requisitos/condiciones para el agrupamiento se han cumplido en la celda geográfica, entonces todas las anotaciones existentes se forman en un nuevo grupo como se muestra en el paso 1380.
La figura 14 es un diagrama de flujo que ilustra un ejemplo de proceso para formar un grupo según una realización de la invención. En una realización, el proceso ilustrado se puede llevar a cabo mediante el sistema descrito anteriormente con relación a las figuras 1-3. Inicialmente, en el paso 1400, el grupo se forma y se asocia con una celda geográfica. Como se describió anteriormente, cada celda geográfica está asociada con una escala de mapa y, por lo tanto, cada grupo también está asociado con una escala de mapa al estar asociado con una celda geográfica. Al formar un grupo, la celda geográfica o las anotaciones individuales pueden tener un atributo que indica cuándo activar
el agrupamiento. Por ejemplo, si un atributo está cubierto en más del 50 % cuando se presenta en la pantalla en una interfaz de usuario, se puede activar el agrupamiento. De manera similar, si el número total de atributos dentro de una sola celda geográfica supera algún umbral, entonces se puede activar el agrupamiento. Ventajosamente, dichos atributos pueden variar para permitir la máxima flexibilidad y la demanda mínima de recursos del procesador tanto en el dispositivo de comunicación como en el servidor.
Después de que se formó un grupo en el paso 1400, a continuación, el grupo se marca como agregado (por ejemplo, siguiendo la transición "marca agregada" en el mapa de mutación). La celda geográfica se identifica posteriormente como que tiene al menos un grupo. En cualquier momento, una sola celda geográfica puede tener cero, uno o una pluralidad de grupos y estos grupos pueden estar presentes en combinación con cero, una o una pluralidad de anotaciones individuales que no están agrupadas. Una vez que el grupo se formó y se asoció con una celda geográfica y dos o más anotaciones individuales se asociaron con el grupo, las dos o más anotaciones asociadas se eliminan de la celda geográfica (por ejemplo, siguiendo la transición "marca eliminada" en el mapa de mutación). La eliminación de las anotaciones de la celda geográfica hace que las anotaciones individuales ya no se presenten en la interfaz de usuario y, de manera similar, la adición del grupo a la celda geográfica hace que el grupo se presente en la interfaz de usuario. En una realización, el número de anotaciones presentes en el grupo puede mostrarse en asociación con el grupo en la interfaz de usuario.
La figura 15 es un diagrama de flujo que ilustra un ejemplo de proceso para deshacer un grupo según una realización de la invención. En una realización, el proceso ilustrado se puede llevar a cabo mediante el sistema descrito anteriormente con relación a las figuras 1-3. Inicialmente, en el paso 1450 se elimina el grupo de la celda geográfica (por ejemplo, siguiendo la transición "marca eliminada" en el mapa de mutación). La eliminación del grupo hace que el grupo a partir de entonces ya no se presente en la interfaz de usuario. Después de que se haya eliminado un grupo, en el paso 1460 cada una de las anotaciones que anteriormente estaban asociadas con ese grupo se marcan como agregadas a la celda geográfica (por ejemplo, siguiendo la transición "marca agregada" en el mapa de mutación). Esto hace que las anotaciones individuales se presenten posteriormente en la interfaz de usuario. Una vez que el grupo se ha marcado como eliminado y las anotaciones individuales se han marcado como agregadas, el grupo se desasocia de la celda geográfica, como se muestra en el paso 1470.
Con respecto a las figuras 14 y 15, en una realización, para calcular una solución de agrupamiento final, el sistema hace lo siguiente: (1) el mapa de mutación borra todos los estados, (2) el sistema recibe entradas en forma de anotaciones que se agregarán o eliminarán de la interfaz de usuario que se mostrará y agregará y eliminará las anotaciones del mapa de mutaciones, (3) el mapa de mutación determina el efecto acumulativo de las operaciones de agregar y eliminar, (4) el estado del mapa de mutación se aplica a la interfaz de usuario de manera que todos los elementos en el mapa de mutación que están marcados como agregados se presentan en la interfaz de usuario y todos los elementos que están marcados como eliminados no se presentan en la interfaz de usuario, y todos los elementos marcados como actualizados se vuelven a dibujar en la interfaz de usuario. En este contexto, un elemento puede ser una anotación individual o un grupo.
Además, con respecto a agregar un grupo de eliminación, se pueden emplear una variedad de desencadenantes para determinar cuándo agregar un grupo y cuándo quitar un grupo. En una realización, la escala del mapa presentado en la interfaz de usuario puede desencadenar el agrupamiento. Por ejemplo, si hay tres anotaciones individuales en el mapa a una escala de 10:1 (por ejemplo, 10 kilómetros en el mapa a un centímetro en la pantalla del dispositivo de comunicación), la reducción de la escala a 20:1 puede requerir el agrupamiento de las tres anotaciones discretas. En una realización, el porcentaje de superposición de una primera anotación a una segunda anotación, tal como se presentan en la interfaz de usuario, puede desencadenar el agrupamiento. De manera similar, si la escala se incrementa a 5:1, el sistema también puede determinar que un grupo se puede deshacer por completo o que una o más anotaciones individuales en un grupo se pueden separar del grupo y presentar individualmente en la interfaz de usuario.
La figura 18 es un diagrama de interfaz de usuario que ilustra un ejemplo de mapa con grupos según una realización de la invención. En la realización ilustrada, se muestra un mapa a una escala particular y se presentan una pluralidad de anotaciones individuales 1580 en la interfaz de usuario junto con una pluralidad de grupos 1590. Como puede verse, el grupo 1590 se presenta en asociación con un recuento que indica el número de anotaciones individuales que comprenden el grupo.
La figura 19 es un diagrama de bloques que ilustra un ejemplo de dispositivo habilitado para un procesador inalámbrico o por cable que puede usarse en conexión con varias realizaciones descritas en este documento. Por ejemplo, el dispositivo 550 puede usarse junto con un dispositivo o servidor de comunicación como se describió anteriormente con respecto a las figuras 1-3. Como quedará claro para los expertos en la técnica, también se pueden usar sistemas y/o arquitecturas habilitados con procesadores alternativos.
El dispositivo habilitado para procesador 550 incluye preferiblemente uno o más procesadores, tales como el procesador 560. Se pueden proporcionar procesadores adicionales, como un procesador auxiliar para gestionar la entrada/salida, un procesador auxiliar para realizar operaciones matemáticas de punto flotante, un microprocesador para fines especiales que tiene una arquitectura adecuada para la ejecución rápida de algoritmos de procesamiento de señales (por ejemplo, procesador de señales digitales), un procesador esclavo subordinado al sistema de procesamiento principal (por ejemplo, un procesador de back-end), un microprocesador o controlador adicional para sistemas de procesador dual o múltiple, o un coprocesador. Dichos procesadores auxiliares pueden ser procesadores discretos o pueden estar integrados con el procesador 560.
El procesador 560 está conectado preferiblemente a un bus de comunicación 555. El bus de comunicación 555 puede incluir un canal de datos para facilitar la transferencia de información entre el almacenamiento y otros componentes periféricos del dispositivo habilitado para procesador 550. El bus de comunicación 555 puede proporcionar además un conjunto de señales utilizadas para la comunicación con el procesador 560, que incluye un bus de datos, un bus de direcciones y un bus de control (no mostrado). El bus de comunicación 555 puede comprender cualquier arquitectura de bus estándar o no estándar tal como, por ejemplo, arquitecturas de bus compatibles con la arquitectura estándar de la industria ("ISA"), arquitectura estándar de la industria extendida ("EISA"), Micro Channel Architecture ("MCA"), el bus local de interconexión de componentes periféricos ("PCI") o los estándares promulgados por el Instituto de Ingenieros Eléctricos y Electrónicos ("IEEE"), incluido el bus de interfaz de propósito general IEEE 488 ("GPIB"), IEEE 696/S-100, y similares.
El dispositivo habilitado para procesador 550 incluye preferiblemente una memoria principal 565 y también puede incluir una memoria secundaria 570. La memoria principal 565 proporciona almacenamiento de instrucciones y datos para los programas que se ejecutan en el procesador 560. La memoria principal 565 es típicamente una memoria basada en semiconductores como la memoria de acceso aleatorio dinámico ("DRAM") y/o la memoria de acceso aleatorio estática ("SRAM"). Otros tipos de memoria basada en semiconductores incluyen, por ejemplo, memoria de acceso aleatorio dinámico síncrono ("SDRAM"), memoria de acceso aleatorio dinámico Rambus ("RDRAM"), memoria de acceso aleatorio ferroeléctrico ("FRAM"), y similares, incluyendo memoria de solo lectura ("ROM").
La memoria secundaria 570 puede incluir opcionalmente una memoria interna 575 y/o un medio extraíble 580, por ejemplo, una unidad de disquete, una unidad de cinta magnética, una unidad de disco compacto ("CD"), un disco versátil digital ("DVD") unidad, etc. Se lee y/o escribe en el medio extraíble 580 de una manera bien conocida. El medio de almacenamiento extraíble 580 puede ser, por ejemplo, un disquete, cinta magnética, CD, DVD, tarjeta SD, etc.
El medio de almacenamiento extraíble 580 es un medio legible por computadora no transitorio que tiene almacenado en él un código ejecutable por computadora (es decir, software) y/o datos. El software informático o los datos almacenados en el medio de almacenamiento extraíble 580 se leen en el dispositivo habilitado para el procesador 550 para su ejecución por el procesador 560.
En realizaciones alternativas, la memoria secundaria 570 puede incluir otros medios similares para permitir que los programas informáticos u otros datos o instrucciones se carguen en el dispositivo habilitado para el procesador 550. Tales medios pueden incluir, por ejemplo, un medio de almacenamiento externo (595) y una interfaz (570). Los ejemplos del medio de almacenamiento externo 595 pueden incluir una unidad de disco duro externa o una unidad óptica externa o una unidad magneto-óptica externa.
Otros ejemplos de memoria secundaria 570 pueden incluir memoria basada en semiconductores, como memoria de solo lectura programable ("PROM"), memoria de solo lectura programable borrable ("EPROM"), memoria de solo lectura borrable eléctricamente ("EEPROM"), o memoria flash (memoria orientada a bloques similar a la EEPROM). También se incluye cualquier otro medio de almacenamiento extraíble 580 y la interfaz de comunicación 590, que permiten que el software y los datos se transfieran desde un medio externo 595 al dispositivo habilitado para procesador 550.
El dispositivo habilitado para procesador 550 también puede incluir una interfaz de comunicación 590. La interfaz de comunicación 590 permite que el software y los datos se transfieran entre el dispositivo habilitado para procesador 550 y los dispositivos externos (por ejemplo, impresoras), redes o fuentes de información. Por ejemplo, el software informático o el código ejecutable pueden transferirse a un dispositivo habilitado para procesador 550 desde un servidor de red a través de la interfaz de comunicación 590. Los ejemplos de la interfaz de comunicación 590 incluyen un módem, una tarjeta de interfaz de red ("NIC"), una tarjeta de datos inalámbrica, un puerto de comunicaciones, una ranura y tarjeta PCMCIA, una interfaz de infrarrojos y un cable Firewire IEEE 1394, solo para nombrar unos pocos.
La interfaz de comunicación 590 preferiblemente implementa estándares de protocolo promulgados en la industria, como los estándares Ethernet IEEe 802, Fibre Channel, línea de abonado digital ("DSL"), línea de abonado digital asíncrona ("ADSL"), retransmisión de tramas, modo de transferencia asíncrona ("ATM"), red de servicios digitales
integrados ("RDSI"), servicios de comunicaciones personales ("PCS"), protocolo de control de transmisión/protocolo de Internet ("TCP/IP"), protocolo de Internet de línea serie/protocolo punto a punto ("SLIP/PPP"), y así sucesivamente, pero también pueden implementar protocolos de interfaz personalizados o no estándar.
El software y los datos transferidos a través de la interfaz de comunicación 590 están generalmente en forma de señales de comunicación eléctrica 605. Estas señales 605 se proporcionan preferiblemente a la interfaz de comunicación 590 a través de un canal de comunicación 600. En una realización, el canal de comunicación 600 puede ser una red cableada o inalámbrica, o cualquier otra variedad de otro enlace de comunicación. El canal de comunicación 600 transporta señales 605 y puede implementarse utilizando una variedad de medios de comunicación inalámbricos o por cable, incluyendo cable o alambre, fibra óptica, línea telefónica convencional, enlace de teléfono celular, enlace de comunicación de datos inalámbrico, enlace de radiofrecuencia ("RF"), o enlace infrarrojo, solo para nombrar unos pocos.
El código ejecutable por computadora (es decir, programas de computadora o software) se almacena en la memoria principal 565 y/o en la memoria secundaria 570. Los programas informáticos también pueden recibirse a través de la interfaz de comunicación 590 y almacenarse en la memoria principal 565 y/o en la memoria secundaria 570. Dichos programas informáticos, cuando se ejecutan, permiten al dispositivo habilitado por procesador 550 realizar las diversas funciones de la presente invención como se describió anteriormente.
En esta descripción, el término "medio legible por computadora" se usa para referirse a cualquier medio de almacenamiento legible por computadora no transitorio que se usa para proporcionar un código ejecutable por computadora (por ejemplo, software y programas de computadora) al dispositivo habilitado para procesador 550. Los ejemplos de estos medios incluyen la memoria principal 565, la memoria secundaria 570 (incluida la memoria interna 575, el medio extraíble 580 y el medio de almacenamiento externo 595) y cualquier dispositivo periférico acoplado comunicativamente con la interfaz de comunicación 590 (incluido un servidor de información de red u otro dispositivo de red). Estos medios legibles por computadora no transitorios son medios para proporcionar código ejecutable, instrucciones de programación y software para el dispositivo habilitado para procesador 550.
En una realización que se implementa utilizando software, el software puede almacenarse en un medio legible por computadora y cargarse en el dispositivo habilitado para el procesador 550 a través del medio extraíble 580, la interfaz de E/S 585 o la interfaz de comunicación 590. En una realización de este tipo, el software se carga en el dispositivo habilitado para el procesador 550 en forma de señales de comunicación eléctrica 605. El software, cuando es ejecutado por el procesador 560, hace que el procesador 560 realice las características y funciones de la invención descritas anteriormente en este documento.
El sistema 550 también incluye componentes opcionales de comunicación inalámbrica que facilitan la comunicación inalámbrica a través de una voz y una red de datos. Los componentes de comunicación inalámbrica comprenden un sistema de antena 620, un sistema de radio 615 y un sistema de banda base 610. En el dispositivo de comunicación 550, las señales de radiofrecuencia ("RF") son transmitidas y recibidas por el aire por el sistema de antena 620 bajo la administración del sistema de radio 615.
En una realización, el sistema de antena 610 puede comprender una o más antenas y uno o más multiplexores (no mostrados) que realizan una función de conmutación para proporcionar al sistema de antena 620 rutas de señal de transmisión y recepción. En la ruta de recepción, las señales de RF recibidas pueden acoplarse desde un multiplexor a un amplificador de bajo ruido (no mostrado) que amplifica la señal de RF recibida y envía la señal amplificada al sistema de radio 615.
En realizaciones alternativas, el sistema de radio 615 puede comprender una o más radios que están configuradas para comunicarse a través de varias frecuencias. En una realización, el sistema de radio 615 puede combinar un demodulador (no mostrado) y un modulador (no mostrado) en un circuito integrado ("IC"). El demodulador y el modulador también pueden ser componentes separados. En la ruta de entrada, el demodulador elimina la señal portadora de RF que deja una señal de audio de recepción de banda base, que se envía desde el sistema de radio 615 al sistema de banda base 610.
Si la señal recibida contiene información de audio, entonces el sistema de banda base 610 decodifica la señal y la convierte en una señal analógica. Entonces la señal se amplifica y se envía a un altavoz. El sistema de banda base 610 también recibe señales de audio analógicas de un micrófono. Estas señales de audio analógicas se convierten en señales digitales y están codificadas por el sistema de banda base 610. El sistema de banda base 620 también codifica las señales digitales para la transmisión y genera una señal de audio de transmisión de banda base que se envía a la parte del modulador del sistema de radio 615. El modulador mezcla la señal de audio de transmisión de banda base con una señal portadora de RF que genera una señal de transmisión de RF que se envía al sistema de antena y puede pasar a través de un amplificador de potencia (no se muestra). El amplificador de potencia amplifica la señal de
transmisión de RF y la envía al sistema de antena 620, donde la señal se conmuta al puerto de antena para la transmisión.
El sistema de banda base 610 también está acoplado comunicativamente con el procesador 560. La unidad central de procesamiento 560 tiene acceso a las áreas de almacenamiento de datos 565 y 570. La unidad central de procesamiento 560 está configurada preferiblemente para ejecutar instrucciones (es decir, programas informáticos o software) que pueden almacenarse en la memoria 565 o en la memoria secundaria 570. Los programas informáticos también pueden recibirse del procesador de banda base 610 y almacenarse en el área de almacenamiento de datos 565 o en la memoria secundaria 570, o ejecutarse al recibirlos. Dichos programas informáticos, cuando se ejecutan, permiten al dispositivo de comunicación 550 realizar las diversas funciones de la presente invención como se describió anteriormente. Por ejemplo, las áreas de almacenamiento de datos 565 pueden incluir varios módulos de software (no mostrados) que se describieron previamente con respecto a las figuras 2-3.
Varias realizaciones también pueden implementarse principalmente en hardware utilizando, por ejemplo, componentes tales como circuitos integrados específicos de la aplicación ("ASIC"), o matriz de puertas programables en campo ("FPGA", por sus siglas en inglés). La implementación de una máquina de estado de hardware capaz de realizar las funciones descritas en este documento también será evidente para los expertos en la técnica relevante. También se pueden implementar varias realizaciones utilizando una combinación de hardware y software.
Además, los expertos en la técnica apreciarán que los diversos bloques, módulos, circuitos y pasos de procedimiento lógicos ilustrativos descritos en relación con las figuras descritas anteriormente y las realizaciones aquí descritas pueden implementarse a menudo como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar claramente esta capacidad de intercambio de hardware y software, varios componentes, bloques, módulos, circuitos y pasos ilustrativos se han descrito anteriormente en términos generales de su funcionalidad. Si dicha funcionalidad se implementa como hardware o software depende de la aplicación particular y las restricciones de diseño impuestas en el sistema en general. Las personas capacitadas pueden implementar la funcionalidad descrita de diferentes maneras para cada aplicación en particular, pero tales decisiones de implementación no deben interpretarse como que causan una desviación del alcance de la invención. Además, la agrupación de funciones dentro de un módulo, bloque, circuito o paso es para facilitar la descripción. Las funciones o pasos específicos se pueden mover de un módulo, bloque o circuito a otro sin apartarse de la invención.
Además, los diversos bloques, módulos y procedimientos lógicos ilustrativos descritos en relación con las realizaciones aquí descritas pueden implementarse o realizarse con un procesador de propósito general, un procesador de señales digitales ("DSP"), un ASIC, FPGA u otro dispositivo lógico programable, compuerta discreta o lógica de transistor, componentes de hardware discretos o cualquier combinación de los mismos diseñada para realizar las funciones descritas en este documento. Un procesador de propósito general puede ser un microprocesador, pero como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador o máquina de estado. Un procesador también puede implementarse como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores en conjunto con un núcleo de DSP, o cualquier otra configuración similar.
Además, los pasos de un procedimiento o algoritmo descrito en relación con las realizaciones aquí descritas pueden incorporarse directamente en hardware, en un módulo de software ejecutado por un procesador, o en una combinación de los dos. Un módulo de software puede residir en la memoria RAM, la memoria flash, la memoria ROM, la memoria EPROM, la memoria EEPROM, los registros, el disco duro, un disco extraíble, un CD-ROM o cualquier otra forma de medio de almacenamiento, incluido un medio de almacenamiento en red. Se puede acoplar un medio de almacenamiento ejemplar al procesador, de manera tal que el procesador pueda leer información y escribir información en el medio de almacenamiento. En la alternativa, el medio de almacenamiento puede ser integral al procesador. El procesador y el medio de almacenamiento también pueden residir en un ASIC.
La descripción anterior de las realizaciones descritas se proporciona para permitir que cualquier persona experta en la técnica realice o use la invención. Diversas modificaciones a estas realizaciones serán fácilmente evidentes para los expertos en la materia, y los principios genéricos descritos en este documento pueden aplicarse a otras realizaciones sin apartarse del alcance de la invención. Por lo tanto, debe entenderse que la descripción y los dibujos presentados en este documento representan una realización actualmente preferida de la invención y, por lo tanto, son representativos de la materia que se contempla ampliamente en la presente invención. Además, se entiende que el alcance de la presente invención abarca completamente otras realizaciones que pueden resultar obvias para los expertos en la materia y que, por lo tanto, el alcance de la presente invención no está limitado.
Claims (12)
1. Un procedimiento implementado por computadora para el enrutamiento y visualización de información de dispositivos móviles en un sistema informático en red (10), siendo realizado el procedimiento por al menos un servidor (40) en el sistema informático en red y que comprende:
generar un perfil para un lugar (220), el perfil comprende un identificador único para el lugar y un identificador de celda geográfica para determinar una escala de mapa para el lugar;
almacenar el perfil del lugar en un área de almacenamiento de datos (45);
identificar a un primer usuario del sistema en línea como un experto en el lugar (230), la experiencia del primer usuario se determina en base a los datos de ubicación en el área de almacenamiento de datos (45) describiendo las ubicaciones visitadas por el primer usuario, incluyendo la asociación del identificador único del lugar con un identificador de usuario único para el primer usuario;
transmitir, en respuesta a la identificación del primer usuario como un experto en el lugar, a un dispositivo móvil del primer usuario, una pregunta sobre el lugar enviada por un segundo usuario del sistema en línea (240), el identificador único del lugar y el identificador de celda geográfica, logrando así que el dispositivo móvil del primer usuario muestre, en una interfaz de usuario del dispositivo móvil, la pregunta y un mapa a la escala de mapa determinada por el identificador de celda geográfica;
recibir, desde el dispositivo móvil, el identificador único del lugar y una respuesta a la pregunta sobre el lugar (250); y
en respuesta a recibir, desde el dispositivo móvil, el identificador único del lugar y la respuesta a la pregunta sobre el lugar, actualizar, por el al menos un servidor, el perfil del lugar almacenado en el área de almacenamiento de datos en base a la respuesta a la pregunta.
2. El procedimiento de la reivindicación 1, que comprende además:
transmitir, a un dispositivo móvil del segundo usuario, la pregunta sobre el lugar, el identificador único del lugar y el identificador de celda geográfica, logrando así que el dispositivo móvil del segundo usuario muestre la pregunta y un segundo mapa en la escala del mapa determinada por el identificador de celda único; y
en respuesta a recibir, desde el segundo dispositivo móvil, el identificador único del lugar y una segunda respuesta a la pregunta sobre el lugar, actualizar el perfil del lugar asociado con el identificador único del lugar en base a la segunda respuesta del usuario a la pregunta.
3. El procedimiento de la reivindicación 1 o 2, que además comprende:
determinar que la pregunta se relaciona con una región geográfica que contiene el lugar; y
seleccionar el identificador de celda geográfica de una pluralidad de identificadores de celda geográfica en base a la región geográfica determinada.
4. El procedimiento de la reivindicación 3, donde cada identificador de celda geográfica de la pluralidad de identificadores de celda geográfica corresponde a un nivel de escala de mapa diferente.
5. El procedimiento de cualquier reivindicación anterior, que comprende además:
transmitir una consulta sobre el lugar a un proveedor externo de información del lugar;
recibir una respuesta a la consulta del proveedor externo; y
actualizar el perfil del lugar en función de la respuesta a la consulta.
6. El procedimiento de cualquier reivindicación anterior, que comprende verificar que el primer usuario se encuentra actualmente en el lugar.
7. El procedimiento de cualquier reivindicación anterior, que comprende verificar que el primer usuario asistió al lugar dentro de un período de tiempo.
8. El procedimiento de cualquier reivindicación anterior, que comprende verificar al menos una de una fecha y una hora en que el primer usuario asistió al lugar.
9. El procedimiento de cualquier reivindicación anterior, que comprende verificar la duración durante la cual el primer usuario asistió al lugar.
10. El procedimiento de cualquier reivindicación anterior, que comprende además analizar la respuesta para determinar una o más categorías asociadas con la respuesta.
11. El procedimiento de cualquier reivindicación anterior, que comprende además analizar la respuesta para determinar una o más regiones geográficas asociadas con la respuesta.
12. Un medio de almacenamiento no transitorio legible por computadora que almacena instrucciones de programas de computadora ejecutables por un procesador para realizar el procedimiento según cualquiera de las reivindicaciones 1 a 11.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261605126P | 2012-02-29 | 2012-02-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2881768T3 true ES2881768T3 (es) | 2021-11-30 |
Family
ID=49083314
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13755392T Active ES2730376T3 (es) | 2012-02-29 | 2013-02-28 | Determinación empírica de expertos y sistema y procedimiento de envío de preguntas |
ES19159905T Active ES2881768T3 (es) | 2012-02-29 | 2013-02-28 | Determinación empírica de expertos y sistema y procedimiento de envío de preguntas |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES13755392T Active ES2730376T3 (es) | 2012-02-29 | 2013-02-28 | Determinación empírica de expertos y sistema y procedimiento de envío de preguntas |
Country Status (14)
Country | Link |
---|---|
US (2) | US10311747B2 (es) |
EP (2) | EP2820616B1 (es) |
JP (3) | JP6163501B2 (es) |
KR (1) | KR102047150B1 (es) |
CN (2) | CN107948928B (es) |
AU (1) | AU2013225842A1 (es) |
CA (1) | CA2866123A1 (es) |
ES (2) | ES2730376T3 (es) |
IL (3) | IL234340A (es) |
MX (1) | MX355293B (es) |
PT (1) | PT2820616T (es) |
SG (2) | SG10201708442PA (es) |
TR (1) | TR201909349T4 (es) |
WO (1) | WO2013130894A1 (es) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2820616B1 (en) | 2012-02-29 | 2019-04-10 | AIRBNB, Inc. | Empirical expert determination and question routing system and method |
US9792330B1 (en) | 2013-04-30 | 2017-10-17 | Google Inc. | Identifying local experts for local search |
US10915973B2 (en) * | 2014-03-05 | 2021-02-09 | Transform Sr Brands Llc | System and method providing expert audience targeting |
US20150286709A1 (en) * | 2014-04-02 | 2015-10-08 | Samsung Electronics Co., Ltd. | Method and system for retrieving information from knowledge-based assistive network to assist users intent |
US9646076B2 (en) * | 2014-05-13 | 2017-05-09 | International Business Machines Corporation | System and method for estimating group expertise |
WO2015185919A1 (en) * | 2014-06-02 | 2015-12-10 | Geospock Limited | System for providing location-based social networking services to users of mobile devices |
US9734239B2 (en) | 2014-06-30 | 2017-08-15 | International Business Machines Corporation | Prompting subject matter experts for additional detail based on historical answer ratings |
US20160073228A1 (en) * | 2014-09-04 | 2016-03-10 | Mastercard International Incorporated | System and method for generating expected geolocations of mobile computing devices |
KR20160046038A (ko) * | 2014-10-17 | 2016-04-28 | 삼성전자주식회사 | 위치 기반 소셜 검색 서비스를 제공하는 방법 및 장치 |
CN104636456B (zh) * | 2015-02-03 | 2018-01-23 | 大连理工大学 | 一种基于词向量的问题路由方法 |
IL238562B (en) * | 2015-04-30 | 2019-05-30 | Verint Systems Ltd | A system and method for spatial grouping by lattices in several resolutions |
CN106255054A (zh) * | 2015-06-10 | 2016-12-21 | 阿里巴巴集团控股有限公司 | 确定移动终端定位间隔的方法、移动终端及服务器 |
US20170111458A1 (en) * | 2015-10-14 | 2017-04-20 | Facebook, Inc. | Systems and methods for providing destination suggestions |
US11113651B2 (en) * | 2016-01-07 | 2021-09-07 | Playcore Wisconsin, Inc. | Method and system for assessing play value of a playground |
US10395234B1 (en) * | 2016-03-15 | 2019-08-27 | Cray Pay Inc. | Mobile device enablement of universal prepaid cards |
US10789316B2 (en) | 2016-04-08 | 2020-09-29 | Pearson Education, Inc. | Personalized automatic content aggregation generation |
US10642848B2 (en) | 2016-04-08 | 2020-05-05 | Pearson Education, Inc. | Personalized automatic content aggregation generation |
US10325215B2 (en) | 2016-04-08 | 2019-06-18 | Pearson Education, Inc. | System and method for automatic content aggregation generation |
EP3322149B1 (en) * | 2016-11-10 | 2023-09-13 | Tata Consultancy Services Limited | Customized map generation with real time messages and locations from concurrent users |
JP6767952B2 (ja) * | 2017-09-08 | 2020-10-14 | ヤフー株式会社 | 推定装置、推定方法および推定プログラム |
JP7297884B2 (ja) * | 2018-10-15 | 2023-06-26 | ライブパーソン, インコーポレイテッド | 動的エンドポイント通信チャネル |
US11126676B2 (en) * | 2018-12-10 | 2021-09-21 | Sap Se | Influence rank generation system for enterprise community using social graph |
JP7067517B2 (ja) | 2019-03-27 | 2022-05-16 | 株式会社Soken | アンテナ装置 |
US10887380B2 (en) * | 2019-04-01 | 2021-01-05 | Google Llc | Multi-cluster ingress |
US11782962B2 (en) | 2019-08-12 | 2023-10-10 | Nec Corporation | Temporal context-aware representation learning for question routing |
US20210365445A1 (en) * | 2020-05-25 | 2021-11-25 | Fortior Solutions, Llc | Technologies for collecting, managing, and providing contact tracing information for infectious disease response and mitigation |
CN112818186A (zh) * | 2021-01-22 | 2021-05-18 | 平安消费金融有限公司 | 信息跟踪方法、装置、电子设备及存储介质 |
US11605139B1 (en) | 2022-06-23 | 2023-03-14 | World Answer Zone Llc | Method of collating, abstracting, and delivering worldwide viewpoints |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223165B1 (en) * | 1999-03-22 | 2001-04-24 | Keen.Com, Incorporated | Method and apparatus to connect consumer to expert |
JP2002312375A (ja) | 2001-04-18 | 2002-10-25 | Lealcom Kk | 知識転換・共有促進方法およびシステム |
US6879838B2 (en) | 2001-04-20 | 2005-04-12 | Koninklijke Philips Electronics N.V. | Distributed location based service system |
US20030140037A1 (en) * | 2002-01-23 | 2003-07-24 | Kenneth Deh-Lee | Dynamic knowledge expert retrieval system |
JP4096570B2 (ja) * | 2002-01-31 | 2008-06-04 | 株式会社デンソー | 情報システム、端末、情報取得方法、プログラム |
JP2004334657A (ja) | 2003-05-09 | 2004-11-25 | Sharp Corp | 情報提供装置、情報提供方法、その方法を実現するためのプログラムおよび記録媒体 |
KR20030045765A (ko) * | 2003-05-22 | 2003-06-11 | 김세진 | 문답형 지식검색 기반의 서비스 거래 시스템 및 방법 |
WO2005106392A1 (ja) * | 2004-04-30 | 2005-11-10 | Pioneer Corporation | 地点検索装置、ナビゲーション装置、地点検索方法並びに地点検索プログラム及びこの地点検索プログラムを記録した情報記録媒体 |
GB2422669A (en) * | 2005-01-31 | 2006-08-02 | Hewlett Packard Development Co | Article and a mobile networkable device for reading navigational data from an article |
US7826965B2 (en) * | 2005-06-16 | 2010-11-02 | Yahoo! Inc. | Systems and methods for determining a relevance rank for a point of interest |
US20070067098A1 (en) * | 2005-09-19 | 2007-03-22 | Zelentsov Oleg U | Method and system for identification of geographic location |
US7856360B2 (en) * | 2006-01-30 | 2010-12-21 | Hoozware, Inc. | System for providing a service to venues where people aggregate |
JP4776022B2 (ja) | 2006-08-25 | 2011-09-21 | 株式会社科学情報システムズ | 情報提供システム、情報提供方法、及びサービスサーバ |
US7934224B2 (en) * | 2007-06-29 | 2011-04-26 | France Telecom | Method, interface and apparatus for discovering a location of a device |
US7720844B2 (en) * | 2007-07-03 | 2010-05-18 | Vulcan, Inc. | Method and system for continuous, dynamic, adaptive searching based on a continuously evolving personal region of interest |
JP4874942B2 (ja) | 2007-11-29 | 2012-02-15 | ヤフー株式会社 | 情報提供装置、情報提供システム、プログラム及び情報提供方法 |
US8275394B2 (en) * | 2008-03-20 | 2012-09-25 | Nokia Corporation | Nokia places floating profile |
US7948502B2 (en) * | 2008-05-13 | 2011-05-24 | Mitac International Corp. | Method of displaying picture having location data and apparatus thereof |
US9646025B2 (en) | 2008-05-27 | 2017-05-09 | Qualcomm Incorporated | Method and apparatus for aggregating and presenting data associated with geographic locations |
US20100041378A1 (en) * | 2008-08-14 | 2010-02-18 | Ralph Aceves | System and method for automatically generating a user profile from location information |
US8751559B2 (en) * | 2008-09-16 | 2014-06-10 | Microsoft Corporation | Balanced routing of questions to experts |
US20100153008A1 (en) * | 2008-12-11 | 2010-06-17 | Schwartz Mark H | Method and system to enhance site promotion using location information and incentive distribution |
US20100211308A1 (en) * | 2009-02-19 | 2010-08-19 | Microsoft Corporation | Identifying interesting locations |
JP5133286B2 (ja) | 2009-03-13 | 2013-01-30 | 株式会社ゼンリンデータコム | 情報提供装置及びプログラム |
US20100241723A1 (en) * | 2009-03-17 | 2010-09-23 | Hugh Dornbush | Computer-Implemented Delivery of Real-Time Participatory Experience of Localized Events |
WO2011046113A1 (ja) * | 2009-10-14 | 2011-04-21 | 日本電気株式会社 | 行動類型抽出システム、装置、方法、プログラムを記憶した記録媒体 |
JP5333783B2 (ja) | 2010-03-16 | 2013-11-06 | 株式会社エクォス・リサーチ | 訪問履歴登録システム |
US20120011167A1 (en) * | 2010-07-09 | 2012-01-12 | Nokia Corporation | Method and apparatus for aggregating and linking place data |
US20120095978A1 (en) * | 2010-10-14 | 2012-04-19 | Iac Search & Media, Inc. | Related item usage for matching questions to experts |
US9292667B1 (en) * | 2010-11-10 | 2016-03-22 | Amazon Technologies, Inc. | Location based community |
US20130060626A1 (en) * | 2011-03-04 | 2013-03-07 | Tristan Walker | System and method for managing and redeeming offers with a location-based service |
US8521180B2 (en) * | 2011-08-12 | 2013-08-27 | Disney Enterprises, Inc. | Location-based automated check-in to a social network recognized location using a token |
US8725168B2 (en) * | 2011-10-17 | 2014-05-13 | Facebook, Inc. | Content surfacing based on geo-social factors |
EP2820616B1 (en) | 2012-02-29 | 2019-04-10 | AIRBNB, Inc. | Empirical expert determination and question routing system and method |
-
2013
- 2013-02-28 EP EP13755392.1A patent/EP2820616B1/en active Active
- 2013-02-28 AU AU2013225842A patent/AU2013225842A1/en not_active Abandoned
- 2013-02-28 KR KR1020147027287A patent/KR102047150B1/ko active IP Right Grant
- 2013-02-28 TR TR2019/09349T patent/TR201909349T4/tr unknown
- 2013-02-28 WO PCT/US2013/028440 patent/WO2013130894A1/en active Application Filing
- 2013-02-28 SG SG10201708442PA patent/SG10201708442PA/en unknown
- 2013-02-28 ES ES13755392T patent/ES2730376T3/es active Active
- 2013-02-28 CN CN201711377018.3A patent/CN107948928B/zh active Active
- 2013-02-28 SG SG11201405299YA patent/SG11201405299YA/en unknown
- 2013-02-28 EP EP19159905.9A patent/EP3512221B1/en active Active
- 2013-02-28 CA CA2866123A patent/CA2866123A1/en not_active Abandoned
- 2013-02-28 CN CN201380021697.4A patent/CN104254865A/zh active Pending
- 2013-02-28 ES ES19159905T patent/ES2881768T3/es active Active
- 2013-02-28 PT PT13755392T patent/PT2820616T/pt unknown
- 2013-02-28 US US14/382,128 patent/US10311747B2/en active Active
- 2013-02-28 JP JP2014560061A patent/JP6163501B2/ja active Active
- 2013-02-28 MX MX2014010371A patent/MX355293B/es active IP Right Grant
-
2014
- 2014-08-27 IL IL234340A patent/IL234340A/en active IP Right Grant
-
2017
- 2017-06-19 JP JP2017119566A patent/JP6442000B2/ja active Active
- 2017-09-11 IL IL254408A patent/IL254408B/en not_active IP Right Cessation
- 2017-12-27 US US15/855,770 patent/US11462125B2/en active Active
-
2018
- 2018-11-22 JP JP2018219146A patent/JP6666412B2/ja active Active
- 2018-12-11 IL IL263654A patent/IL263654B/en active IP Right Grant
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2881768T3 (es) | Determinación empírica de expertos y sistema y procedimiento de envío de preguntas | |
US10511933B2 (en) | Travel recommendations on online social networks | |
US9467807B2 (en) | Estimating demographics associated with a selected geographic area | |
Demirbas et al. | Crowd-sourced sensing and collaboration using twitter | |
Li et al. | Exploring venue popularity in foursquare | |
US20180059767A1 (en) | Power Management of Mobile Clients Using Location-Based Services | |
CA2915607C (en) | Pushing suggested search queries to mobile devices | |
US20150341369A1 (en) | Location Aware Shared Spaces | |
US20140195625A1 (en) | System and method for crowdsourcing event-related social media posts | |
Di Luzio et al. | Uncovering hidden social relationships through location-based services: The Happn case study | |
KR101135938B1 (ko) | 휴대폰을 이용한 거리 측정 및 지역 정보 제공 시스템 | |
US10726951B2 (en) | Method and system for generating polygons within a geographic region that satisfy a query | |
Jimbo et al. | A Twitter Service for School Event | |
TW201828229A (zh) | Poi服務提供方法、poi資料處理方法及裝置 |