ES2421141T3 - Componente de captura basado en perfiles para controlar los eventos en aplicaciones - Google Patents

Componente de captura basado en perfiles para controlar los eventos en aplicaciones Download PDF

Info

Publication number
ES2421141T3
ES2421141T3 ES05712722T ES05712722T ES2421141T3 ES 2421141 T3 ES2421141 T3 ES 2421141T3 ES 05712722 T ES05712722 T ES 05712722T ES 05712722 T ES05712722 T ES 05712722T ES 2421141 T3 ES2421141 T3 ES 2421141T3
Authority
ES
Spain
Prior art keywords
window
application
event
capture
destination
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
Application number
ES05712722T
Other languages
English (en)
Inventor
Jian Gong Deng
Stephen Lawrence
Christopher M. Prince
Mihai F. Ionescu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Application granted granted Critical
Publication of ES2421141T3 publication Critical patent/ES2421141T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3079Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by reporting only the changes of the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Abstract

Un método informático para capturar datos de evento a partir de una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior, el método comprendiendo: la recepción de información de creación de ventana acerca de una ventana creada por la aplicación; la determinación (501) de si la aplicación es un ejemplo de una aplicación de destino al comparar la información de creación de ventana con un perfil de aplicación de destino asociado con la aplicación de destino; en respuesta a una determinación de que la aplicación es un ejemplo de la aplicación de destino, la determinación de si la ventana creada es un ejemplo de una ventana de destino al comparar (504) la información de creación de ventana con un perfil de ventana de destino asociado a la aplicación de destino; y en respuesta a una determinación de que la ventana creada es un ejemplo de la ventana de destino, la captura (508) de datos de evento a partir de la ventana creada al detectar un cambio de estado de un estado asociado con un elemento de la ventana; en el cual la captura de datos de evento también comprende el almacenamiento de información de ventana capturada en una estructura de datos asociada a un evento de acuerdo con un esquema de evento, y la indexación y el almacenamiento del evento.

Description

Componente de captura basado en perfiles para controlar los eventos en aplicaciones.
Campo de la invención
La invención se refiere en general a motores de búsqueda. Más concretamente, la invención se refiere a métodos y sistemas para la captura de información.
Antecedentes de la invención
Los usuarios generan y acceden a un gran número de artículos, tales como correos electrónicos, páginas web, documentos de procesadores de texto, hojas de cálculo, mensajes de mensajería instantánea, documentos de presentación, archivos multimedia y similares, mediante un dispositivo cliente, tal como un ordenador personal, un asistente digital personal, un teléfono móvil o similar. Algunos de los artículos se almacenan en uno o más dispositivos de almacenamiento acoplados a, accesibles mediante, o asociados de otro modo con el dispositivo(s) cliente. Los usuarios a veces desean buscar artículos en el dispositivo(s) de almacenamiento.
Las aplicaciones de búsqueda convencionales de dispositivo cliente degradan significativamente el rendimiento del dispositivo cliente. Por ejemplo, ciertas aplicaciones de búsqueda convencionales de dispositivo cliente utilizan normalmente el procesamiento por lotes para indexar todos los artículos, lo que deriva en un rendimiento notablemente más lento del dispositivo cliente durante la indexación por lotes. Además, el procesamiento por lotes sólo se produce periódicamente. Por lo tanto, cuando un usuario realiza una búsqueda, los artículos a los que se ha accedido o que han sido creados más recientemente a veces no se incluyen en los resultados. Además, si la indexación por lotes se programa para un momento en el cual el dispositivo cliente no está encendido, puede que no tenga lugar durante un período prolongado de tiempo. En ese caso, el índice de artículos asociados con el dispositivo cliente puede quedar considerablemente obsoleto. Las aplicaciones de búsqueda convencionales de dispositivo cliente también pueden necesitar reconstruir el índice en cada indexación por lotes o construir nuevos índices parciales y llevar a cabo una operación de fusión que pueda usar muchos recursos del dispositivo cliente.
Las aplicaciones de búsqueda convencionales de dispositivo cliente también utilizan a veces una gran cantidad de recursos del sistema cuando están funcionando, lo que deriva en un rendimiento más lento del dispositivo cliente.
Además, las aplicaciones de búsqueda convencionales de dispositivo cliente generalmente requieren que el usuario proporcione a la aplicación de búsqueda de forma explícita una consulta de búsqueda para generar resultados, y pueden estar limitadas a examinar nombres de archivo o los contenidos de los archivos de una aplicación determinada. Spector Corporate Edition Network (Spector CNE) <http://www.spectorsoft.com/products/ spectorcne_windows/help/v40/webhelp/> es un producto de software informático de seguimiento y vigilancia diseñado para redes de Windows. Spector proporciona la capacidad de limitar a grabar sólo ciertas aplicaciones.
La solicitud de patente estadounidense US20031001854 revela un mecanismo para capturar las uno o más primitivas gráficas arrastradas a una interfaz de usuario por una aplicación en ejecución.
Breve resumen de la invención
De acuerdo con un primer aspecto de la invención, se proporciona un método informático para capturar datos de evento desde una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior como se expone en la reivindicación 1.
De acuerdo con un segundo aspecto de la invención, se proporciona un sistema informático para capturar datos de evento desde una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior como se expone en la reivindicación 17.
Las características y ventajas descritas en la especificación no las incluyen todas y, en particular, muchas características y ventajas adicionales serán evidentes para un experto común en la técnica a la vista de los dibujos, especificación y reivindicaciones. Además, cabe señalar que el lenguaje utilizado en la especificación ha sido principalmente seleccionado para facilitar la lectura y con fines educativos, y no puede haber sido seleccionado para delinear o circunscribir el objeto de la invención.
Breve descripción de los dibujos
La FIG. 1 es un diagrama que ilustra un entorno ilustrativo en el cual puede funcionar un modo de realización de la presente invención.
La FIG. 2 es un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar y procesar datos de evento asociados a un dispositivo cliente.
La FIG. 3 es un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar información de pulsaciones de teclas en un dispositivo cliente.
La FIG. 4 es un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar información de visualización en un dispositivo cliente.
La FIG. 5 es un diagrama de flujo de un modo de realización de un método de captura de visualización basado en perfiles.
Las figuras y la siguiente descripción se refieren a modos de realización preferidos de la presente invención a modo de ilustración solamente. Cabe señalar que a partir de la siguiente exposición, modos de realización alternativos de las estructuras y métodos revelados en este documento se reconocerán fácilmente como alternativas viables que se pueden emplear sin apartarse de los principios de la invención reivindicada.
Descripción detallada de modos de realización específicos
Haciendo referencia ahora a los dibujos en los cuales números iguales indican elementos iguales en todas las diversas figuras, la FIG. 1 muestra un diagrama que ilustra un entorno ilustrativo en el cual puede funcionar un modo de realización de la presente invención. Mientras que el entorno mostrado en la FIG. 1 refleja un modo de realización de la arquitectura del motor de búsqueda del lado cliente, son posibles otros modos de realización del lado cliente o del lado servidor. El sistema 100 incluye múltiples dispositivos cliente 102a-n que se pueden comunicar con un dispositivo servidor 150 mediante una red 106, por ejemplo, internet. En otros modos de realización, pueden utilizarse en su lugar otras redes, como una red de área local ("LAN") intranet doméstica o similar. Además, en otros modos de realización, las funciones descritas con respecto a un cliente o un servidor en un entorno de red distribuido pueden tener lugar dentro de un solo dispositivo cliente sin un dispositivo servidor o una red. La implementación de estas técnicas así como adaptaciones similares entra dentro del alcance de esta invención.
Los dispositivos cliente 102a-n que se muestran en la FIG. 1 incluyen cada uno un medio legible por ordenador 108, por ejemplo, dispositivos de memoria, medios de almacenamiento y similares. En un modo de realización, un dispositivo cliente 102a incluye una memoria de acceso aleatorio (RAM) 108 acoplada a un procesador 110. El procesador 110 ejecuta instrucciones de programa ejecutables por ordenador almacenadas en la memoria 108. Tales procesadores pueden incluir un microprocesador, un circuito integrado de aplicación específica (ASIC, por sus siglas en inglés), máquinas de estado u otros procesadores y pueden ser cualquiera de un número de procesadores informáticos adecuados, tales como procesadores de Intel Corporation de Santa Clara, California, y Motorola Corporation, de Schaumburg, Illinois. Estos procesadores incluyen, o pueden estar en comunicación con, medios 108, por ejemplo medios legibles por ordenador, que almacenan instrucciones que, cuando son ejecutadas por el procesador, hacen que el procesador lleve a cabo los pasos descritos en este documento. Modos de realización de medios legibles por ordenador 108 incluyen, sin carácter limitativo, un dispositivo electrónico, óptico, magnético u otro dispositivo de almacenamiento o de transmisión capaz de proporcionar un procesador, tal como el procesador 110 de cliente 102a, con instrucciones legibles por ordenador. Otros ejemplos de medios adecuados incluyen, sin carácter limitativo, un disquete, CD-ROM, DVD, disco magnético, chip de memoria, ROM, RAM, un ASIC, un procesador configurado, todos los medios ópticos, todos los medios de cinta magnética u otros medios magnéticos,
o cualquier otro medio desde el cual un procesador informático pueda leer instrucciones. Además, otras formas diferentes de medios legibles por ordenador pueden transmitir o llevar instrucciones a un ordenador, incluyendo un router, red privada o pública u otro dispositivo o canal de transmisión, tanto por cable como inalámbrico. Las instrucciones pueden incluir un código de cualquier lenguaje de programación informática adecuado, incluyendo, por ejemplo, C, C++, C#, Visual Basic, Java, Python, Perl y JavaScript.
Los dispositivos cliente 102a-n pueden estar acoplados a una red 106, o de forma alternativa, pueden ser máquinas independientes. Los dispositivos cliente 102a-n pueden incluir también un número de dispositivos externos o internos tales como un ratón, un CD-ROM, un DVD, un teclado, un dispositivo de representación u otro dispositivo de entrada o de salida. Ejemplos de dispositivos cliente 102a-n son los ordenadores personales, asistentes digitales, asistentes digitales personales, teléfonos celulares, teléfonos móviles, teléfonos inteligentes, mensáfonos, tabletas digitales, ordenadores portátiles, dispositivos de internet y otros dispositivos basados en procesadores. En un modo de realización, los dispositivos cliente 102a-n pueden ser cualquier tipo de plataforma basada en procesadores que funcione en cualquier sistema operativo adecuado, tal como Microsoft®, Windows® o Linux, y que sea capaz de ejecutar uno o más programas de aplicación de cliente. Por ejemplo, el dispositivo cliente 102a puede incluir un ordenador personal que ejecute programas de aplicación de cliente, también conocidos como aplicaciones de cliente
120. Las aplicaciones de cliente 120 pueden estar dentro de la memoria 108 y pueden incluir, por ejemplo, una aplicación de procesamiento de textos, una aplicación de hoja de cálculo, una aplicación de correo electrónico, una aplicación de mensajería instantánea, una aplicación de presentaciones, una aplicación de navegador de Internet, una aplicación de calendario/organizador, una aplicación de reproducción de vídeo, una aplicación de reproducción de audio, una aplicación de visualización de imágenes, un programa de gestión de archivos, un shell de sistema operativo y otras aplicaciones capaces de ser ejecutadas por un dispositivo cliente. Las aplicaciones de cliente 120 también pueden incluir aplicaciones del lado cliente que interactúan con o acceden a otras aplicaciones de cliente o remotas (tales como, por ejemplo, un navegador web que se ejecuta en el dispositivo cliente 102a que interactúa con un servidor de correo electrónico remoto para acceder al correo electrónico).
El usuario 112a puede interactuar con las distintas aplicaciones de cliente 120 y artículos asociados con las aplicaciones de cliente 120 a través de diversos dispositivos de entrada y salida del dispositivo cliente 102a. Los artículos incluyen, por ejemplo, documentos de procesador de texto, hojas de cálculo, documentos de presentación, correos electrónicos, mensajes de mensajería instantánea, entradas de base de datos, entradas de calendario, entradas de citas, entradas de administrador de tareas, archivos de código fuente y otros contenidos de programas de aplicación de cliente, archivos, mensajes, elementos, páginas web de diversos formatos, tales como HTML, XML, XHTML, archivos de Formato de Documento Portátil (PDF) y archivos multimedia, tales como archivos de imágenes, archivos de audio y archivos de vídeo, o cualquier otro documento o elemento o grupo de documentos o elemento o información en formato electrónico adecuado para el acceso a almacenamiento en dispositivos cliente.
La interacción del usuario 112a con artículos, las aplicaciones de cliente 120 y el dispositivo cliente 102a crea datos de evento que pueden ser observados, registrados, analizados o utilizados de otra manera. Un evento puede ser cualquier hecho posible asociado con un artículo, aplicación de cliente 120 o dispositivo cliente 102a, tal como introducir texto en un artículo, visualizar un artículo en un dispositivo de representación, enviar un artículo, recibir un artículo, manipular un dispositivo de entrada, abrir un artículo, guardar un artículo, imprimir un artículo, cerrar un artículo, abrir un programa de aplicación de cliente, cerrar un programa de aplicación de cliente, tiempo de inactividad, carga de procesador, acceso a disco, uso de memoria, traer un programa de aplicación de cliente al primer plano, cambiar los detalles de visualización de la aplicación (por ejemplo, cambiar el tamaño o minimizar), interactuar con las ventanas asociadas con las aplicaciones de cliente y cualquier otro hecho adecuado asociado con un artículo, un programa de aplicación de cliente o el dispositivo cliente que sea. Además, los datos de evento pueden ser generados cuando el dispositivo cliente 102a interactúa con un artículo independiente del usuario 112a, tal como cuando se recibe un correo electrónico o se realiza una tarea programada.
En un modo de realización, la memoria 108 del dispositivo cliente 102a también puede contener un procesador de captura 124, una cola 126 y un motor de búsqueda 122. El dispositivo cliente 102a también puede contener o está en comunicación con un almacén de datos 140. El procesador de captura 124 puede capturar eventos y pasarlos a la cola 126. La cola 126 puede pasar los eventos capturados al motor de búsqueda 122 o el motor de búsqueda 122 puede recuperar nuevos eventos de la cola 126. En un modo de realización, la cola 126 notifica al motor de búsqueda 122 cuando un nuevo evento llega a la cola 126 y el motor de búsqueda 122 recupera el evento (o eventos) de la cola 126 cuando el motor de búsqueda 122 está listo para procesar el evento (o eventos). Cuando el motor de búsqueda recibe un evento, puede ser procesado y puede ser almacenado en el almacén de datos 140. El motor de búsqueda 122 puede recibir una consulta explícita del usuario 112a o generar una consulta implícita y puede recuperar información del almacén de datos 140 en respuesta a la consulta. En otro modo de realización, la cola se encuentra en el motor de búsqueda 122. En otro modo de realización más, el dispositivo cliente 102a no tiene cola y los eventos se pasan desde el procesador de captura 124 directamente al motor de búsqueda 122. De acuerdo con otros modos de realización, los datos de evento se transfieren mediante un protocolo de intercambio de información. El protocolo de intercambio de información puede incluir, por ejemplo, cualquier norma o convención adecuada que facilite el intercambio de datos, y puede incluir, una mecanismo de comunicación, tal como, por ejemplo, Lenguaje de Marcado Extensible -protocolo de Llamada a Procedimiento Remoto (XML/RPC), Protocolo de Transferencia de Hipertexto (HTTP), Protocolo Simple de Acceso a Objetos (SOAP), memoria compartida, sockets, llamada de procedimiento local o remoto o cualquier otro mecanismo de intercambio de información adecuado.
El procesador de captura 124 puede capturar un evento mediante la identificación y la extracción de datos de evento asociados con un evento. Ejemplos de eventos incluyen enviar o recibir un mensaje de mensajería instantánea, un usuario que está viendo una página web, guardar un documento de procesador de texto, imprimir un documento de hoja de cálculo, introducir texto para escribir o editar un correo electrónico, abrir una aplicación de presentaciones, cerrar una aplicación de mensajería instantánea, introducir una pulsación de tecla, mover el ratón, desplazar el cursor del ratón sobre un hipervínculo, hacer clic en botones de ventanas, seleccionar de los menús o similares. Un ejemplo de datos de evento capturados por el procesador de captura 124 para un evento que implica la visualización de una página web por un usuario incluye el URL de la página web, la fecha y hora en que el usuario vio la página Web y el contenido de la página web. Además, en un modo de realización, se pueden capturar datos de evento adicionales desde ubicaciones remotas que incluyen información relacionada con el evento o artículo. Por ejemplo, el artista y otra información relacionada, por ejemplo, el álbum, director, género y similar de una película o archivo de música al que ha accedido un usuario se puede recuperar de un servidor de base de datos de la red a través de la red 106.
En un modo de realización, el procesador de captura 124 puede incluir múltiples componentes de captura. Por ejemplo, el procesador de captura 124 puede incluir un componente de captura separado para cada aplicación de cliente con el fin de capturar eventos asociados con cada aplicación. El procesador de captura 124 también puede incluir un componente de captura separado para controlar y capturar entradas de pulsaciones de teclas del usuario y un componente de captura separado que puede controlar y capturar elementos, como texto, mostrados en un dispositivo de representación asociado al dispositivo cliente 102a. El componente de captura de pulsaciones de teclas y el componente de captura de visualización se pueden utilizar para capturar eventos cuando un componente de captura de la aplicación de cliente no está disponible para una aplicación de cliente o conjuntamente con un componente de captura de la aplicación de cliente. El componente de captura de pulsaciones de teclas también puede contener o acceder a una base de datos de pulsaciones de teclas. La base de datos de pulsaciones de teclas puede proporcionar correlación entre pulsaciones de teclas y acciones para aplicaciones. El componente de captura de pulsaciones de teclas y el componente de captura de visualización también pueden contener o tener acceso a un historial de eventos de teclado o de visualización anteriores.
En un modo de realización, el procesador de captura 124 puede incluir un componente de captura separado que controla la actividad de red en general con el fin de capturar datos de evento asociados con la actividad de red, tales como la recepción de un mensaje de mensajería instantánea. El procesador de captura 124 puede incluir un componente de captura separado que controla datos de rendimiento del dispositivo cliente en general, tales como carga del procesador, tiempo de inactividad, acceso a disco, las aplicaciones de cliente en uso y la cantidad de memoria disponible. Un componente de captura individual puede controlar múltiples aplicaciones de cliente y múltiples componentes de captura pueden controlar diferentes aspectos de una única aplicación de cliente.
En un modo de realización, el procesador de captura 124, a través de los componentes individuales de captura, puede controlar la actividad del dispositivo cliente y puede capturar los eventos por medio de un mecanismo de registro y definición de evento generalizado, tal como un esquema de evento. Cada componente de captura puede definir su propio esquema de evento o puede utilizar uno redefinido. Los esquemas de evento pueden variar dependiendo de la aplicación de cliente o la actividad que el componente de captura esté controlando. En general, el esquema de evento puede describir el formato para un evento, por ejemplo, al proporcionar campos para datos de evento asociados con el evento (tales como la hora del evento) y campos relacionados con cualquier artículo asociado (tales como el título) así como el contenido de cualquier artículo asociado (tal como el cuerpo del documento). Un esquema de evento puede describir el formato para cualquier dato de evento adecuado que se refiera a un evento. Por ejemplo, un esquema de evento para entrada de usuario, tal como palabras tecleadas o mostradas en un dispositivo de representación, puede incluir la aplicación que se utiliza para la entrada, el formato del texto, las palabras y otra entrada de elementos, y el tiempo de entrada. Un esquema de evento para un evento de correo electrónico recibido por un usuario puede incluir información de encabezado, tal como el contenido de los campos de asunto, destinatario, remitente, copia y hora de recepción, y el cuerpo de información. Un esquema de evento para una página web que está siendo vista en este momento por un usuario puede incluir el Localizador Uniforme de Recursos (URL) de la página web, la hora a la que está siendo vista y el contenido de la página web. Un esquema de evento de un documento de texto siendo guardado por un usuario puede incluir el título del documento, la hora guardada, la ubicación del documento, el formato del documento, el texto del documento y un cursor hasta la ubicación del documento.
En un modo de realización, el componente de captura de teclado puede que no utilice un esquema de evento. Más bien, en este modo de realización, el componente de captura de teclado puede convertir pulsaciones de teclas en una secuencia de palabras y después puede pasar la secuencia de palabras a otro componente, tal como el componente de captura de procesamiento de texto. El componente de captura de procesamiento de texto puede utilizar un esquema de evento para expresar la información enviada por el componente de captura de pulsaciones de teclas.
Más en general, un esquema de evento puede describir el estado del sistema alrededor de la hora del evento. Por ejemplo, un esquema de evento puede contener un URL de un evento de página web asociado con una página web anterior desde la cual el usuario ha navegado. Además, el esquema de evento puede describir campos con listas de tipo estructura más complicadas. Por ejemplo, un esquema de evento puede contener campos que enumeran múltiples destinatarios. Un esquema de evento también puede contener campos opcionales de manera que una aplicación pueda incluir datos de evento adicionales si se desea.
El procesador de captura 124 puede capturar eventos que están ocurriendo en el presente (o "eventos en tiempo real") y puede capturar eventos que han ocurrido en el pasado (o "eventos históricos"). Los eventos en tiempo real pueden ser "indexables" o "no indexables". En un modo de realización, el motor de búsqueda 122 indexa eventos en tiempo real indexables, pero no indexa eventos en tiempo real no indexables. El motor de búsqueda 122 puede determinar si indexar un evento basándose en la importancia del evento. Los eventos en tiempo real indexables pueden ser eventos más importantes asociados con un artículo, como visualizar una página web, cargar o guardar un archivo y recibir o enviar un mensaje instantáneo ("IM") o correo electrónico ("email"). Los eventos no indexables pueden no ser considerados lo suficientemente importantes por parte del motor de búsqueda 122 para indexar y almacenar el evento, tal como mover el ratón o seleccionar una parte del texto en un artículo. Los eventos no indexables pueden ser utilizados por el motor de búsqueda 122 para actualizar el estado actual del usuario. Mientras todos los eventos en tiempo real pueden relacionarse con lo que el usuario está haciendo actualmente (o el estado del usuario actual), los eventos en tiempo real indexables pueden ser indexados y almacenados en el almacén de datos 140.
De forma alternativa, en un modo de realización, el motor de búsqueda 122 puede indexar todos los eventos en tiempo real. Los eventos en tiempo real pueden incluir, por ejemplo, enviar o recibir un artículo, como un mensaje de mensajería instantánea, examinar una parte de un artículo, como seleccionar una parte del texto o mover un ratón por encima de una parte de una página web, cambiar un artículo, como escribir una palabra en un correo electrónico
o pegar una frase en un documento de procesador de texto, cerrar un artículo, como cerrar una ventana de mensajería instantánea o cambiar un mensaje de correo electrónico que se está viendo, cargar, guardar, abrir o ver un artículo, como un documento de procesador de texto, página web o correo electrónico, escuchar o guardar un archivo MP3 u otros archivos de audio/vídeo, o actualizar los metadatos de un artículo, como un marcado de página web, imprimir un documento de presentación, borrar un documento de procesador de texto o mover un documento de hoja de cálculo.
Los eventos históricos son similares a los eventos en tiempo real indexables, excepto en que el evento ocurrió antes de la instalación del motor de búsqueda 122 o, de lo contrario, no fue capturado, porque, por ejemplo, el motor de búsqueda 122 no estaba en funcionamiento durante un período de tiempo mientras el dispositivo cliente 102a estaba en funcionamiento o porque no existía componente de captura para un tipo específico de evento histórico en el momento en que el evento se llevó a cabo. Ejemplos de eventos históricos incluyen documentos de procesador de texto guardados del usuario, archivos multimedia, documentos de presentación, entradas de calendario y documentos de hoja de cálculo, los mensajes de correo electrónico de la bandeja de entrada de un usuario y las páginas web marcadas por el usuario. El procesador de captura 124 puede capturar eventos históricos al rastrear periódicamente la memoria 108 y cualquier dispositivo de almacenamiento de datos asociado para eventos no capturados previamente por el procesador de captura 124. El procesador de captura 124 también puede capturar eventos históricos al solicitar ciertas aplicaciones de cliente, tales como un navegador web o una aplicación de correo electrónico, para recuperar artículos y otra información asociada. Por ejemplo, el procesador de captura 124 puede solicitar que la aplicación de navegador web obtenga todas las páginas web visitadas por el usuario o solicitar que la aplicación de correo electrónico obtenga todos los mensajes de correo electrónico asociados al usuario. Estos artículos pueden no existir actualmente en la memoria 108 o en un dispositivo de almacenamiento del dispositivo cliente 102a. Por ejemplo, la aplicación de correo electrónico puede tener que recuperar correos electrónicos de un dispositivo servidor. En un modo de realización, el motor de búsqueda 122 indexa eventos históricos.
En el modo de realización mostrado en la FIG. 1, los eventos capturados por el procesador de captura 124 son enviados a la cola 126 en el formato descrito por un esquema de evento. El procesador de captura 124 también puede enviar datos de rendimiento a la cola 126. Ejemplos de datos de rendimiento incluyen la carga de procesador actual, la carga de procesador media durante un período de tiempo predeterminado, el tiempo de inactividad, el acceso a disco, las aplicaciones de cliente en uso y la cantidad de memoria disponible. Los datos de rendimiento también pueden ser proporcionados por componentes de control de rendimiento específicos, algunos de los cuales pueden ser parte del motor de búsqueda 122, por ejemplo. Los datos de rendimiento de la cola 126 pueden ser recuperados por el motor de búsqueda 122 y los componentes de captura del procesador de captura 124. Por ejemplo, los componentes de captura pueden recuperar los datos de rendimiento para alterar cuántos eventos que se envían a la cola 126 o cómo de detallados son los eventos que se envían (menos eventos o más pequeños cuando el sistema está ocupado) o la frecuencia con la que se envían los eventos (los eventos se envían con menos frecuencia cuando el sistema está ocupado o cuando hay muchos eventos esperando para ser procesados). El motor de búsqueda 122 puede usar datos de rendimiento para determinar cuándo indexa diversos eventos y cuándo y con qué frecuencia emite consultas implícitas.
En un modo de realización, la cola 126 mantiene los eventos hasta que el motor de búsqueda 122 está listo para procesar un evento o eventos. Alternativamente, la cola 126 utiliza los datos de rendimiento para ayudar a determinar la rapidez con la que proporcionar eventos al motor de búsqueda 122. La cola 126 puede incluir una o más colas separadas, por ejemplo, una cola de estado de usuario y una cola de índice. En un modo de realización, la cola de índice puede poner en cola los eventos indexables. Alternativamente, la cola 126 puede tener colas adicionales o incluir una sola cola. La cola 126 puede ser implementada como una cola de prioridad circular que utiliza archivos mapeados de memoria. La cola puede ser una cola de prioridad múltiple donde se sirven los eventos de mayor prioridad antes de los eventos de menor prioridad y otros componentes pueden ser capaces de especificar el tipo de eventos en los que están interesados. En general, a los eventos en tiempo real se les puede dar una mayor prioridad que a los eventos históricos y a los eventos indexables se les puede dar una mayor prioridad que a los eventos en tiempo real no indexables. Otras implementaciones de la cola 126 son posibles. En otro modo de realización, el dispositivo cliente 102a no tiene cola 126. En ese modo de realización, los eventos se pasan directamente desde el procesador de captura 124 hasta el motor de búsqueda 122. En otros modos de realización, los eventos pueden ser transferidos entre los componentes de captura y el motor de búsqueda mediante mecanismos de intercambio de información adecuados tales como: Lenguaje de Marcado Extensible - protocolo de Llamada a Procedimiento Remoto (XML/RPC), Protocolo de Transferencia de Hipertexto (HTTP), Protocolo Simple de Acceso a Objetos (SOAP), memoria compartida, sockets, llamada de procedimiento local o remoto o cualquier otro mecanismo de intercambio de información adecuado.
Volviendo a la FIG. 1, en un modo de realización, el motor de búsqueda 122 puede contener un indexador 130, un sistema de consulta 132 y un formateador 134. El sistema de consulta 132 puede recuperar todos los eventos en tiempo real y los datos de rendimiento de la cola 126. El sistema de consulta 132 puede utilizar datos de rendimiento y eventos en tiempo real para actualizar el estado actual del usuario y generar una consulta implícita. Una consulta implícita puede ser una consulta generada automáticamente a partir del estado actual del usuario. El sistema de consulta 132 también puede recuperar y procesar consultas explícitas del usuario 112a. Los datos de rendimiento también pueden ser recuperados por el motor de búsqueda 122 de la cola 126 para su uso en la determinación de la cantidad de actividad posible por parte del buscador 122.
En el modo de realización mostrado en la FIG. 1, los eventos en tiempo real indexables y los eventos históricos (eventos indexables) se recuperan de la cola 126 por medio del indexador 130. Alternativamente, la cola 126 puede enviar los eventos indexables al indexador 130. El indexador 130 puede indexar los eventos indexables y puede enviarlos al almacén de datos 140 donde se almacenan. El almacén de datos 140 puede ser cualquier tipo de medio legible por ordenador y se puede integrar en el dispositivo cliente 102a, tal como un disco duro, o ser externo al dispositivo cliente 102a, como un disco duro externo o en otro dispositivo de almacenamiento de datos al que se accede a través de la red 106. El almacén de datos puede ser una o más áreas de almacenamiento lógico o físico. En un modo de realización, el almacén de datos 140 puede estar en la memoria 108. El almacén de datos 140 puede facilitar un método o una combinación de métodos para almacenar datos, incluyendo sin carácter limitativo, matrices, tablas hash, listas y parejas, y puede incluir compresión y cifrado. En el modo de realización mostrado en la FIG. 1, el almacén de datos incluye un índice 142, una base de datos 144 y un depósito 146.
En el modo de realización mostrado en la FIG. 1, cuando el indexador 130 recibe un evento, el indexador 130 puede determinar, a partir del esquema de evento, los términos (si los hay) asociados con el evento, la hora del evento (si está disponible), imágenes (si la hay) asociadas con el evento, y/u otra información que defina el evento. El indexador 130 también puede determinar si el evento está relacionado con otros eventos y asociar el evento con los eventos relacionados. Por ejemplo, para un evento relativo a una página web, el indexador 130 puede asociar este evento con otros eventos relativos a la misma página web. Esta información de asociación se puede almacenar en la base de datos 133 de un documento para cada grupo de eventos relacionados.
El indexador 130 puede enviar e incorporar los términos y horas asociados con el evento en el índice 142 del almacén de datos 140. El evento puede ser enviado a la base de datos 144 para su almacenamiento y el contenido del artículo asociado y cualquier imagen asociada se pueden almacenar en el depósito 146. El objeto de la conversación asociado con mensajes de mensajería instantánea se puede almacenar en la base de datos 144.
En el modo de realización mostrado en la FIG. 1, un usuario 112a puede introducir una consulta explícita en una interfaz del motor de búsqueda del dispositivo cliente 102a, que es recibida por el motor de búsqueda 122. En un modo de realización, la interfaz del motor de búsqueda del dispositivo cliente 102a incluye una visualización gráfica/textual, por ejemplo, una página web basada en HTML. En modos de realización alternativos, la interfaz del motor de búsqueda incluye diversos modos de entrada/salida - por ejemplo, un sistema activado con la voz, un sistema táctil o similar.
El motor de búsqueda 122 también puede generar una consulta implícita a partir de un un estado actual del usuario, que puede ser determinado por el sistema de consulta 132 de eventos en tiempo real. A partir de la consulta, el sistema de consulta 132 puede localizar información relevante en el almacén de datos 140 y proporcionar un conjunto de resultados. En un modo de realización, el conjunto de resultados incluye identificadores de artículo de artículos asociados con las aplicaciones de cliente 120 o los artículos de cliente. Los artículos de cliente incluyen artículos asociados con el usuario 112a o dispositivo cliente 102a, como los mensajes de correo electrónico del usuario, documentos de procesador de texto, mensajes de mensajería instantánea, páginas web visitadas anteriormente y cualquier otro artículo o parte de un artículo asociado con el dispositivo cliente 102a o usuario 112a. Un identificador de artículo puede ser, por ejemplo, un Localizador Uniforme de Recusos (URL), un nombre de archivo, un enlace, un icono, una ruta de un archivo local, cualquier identificador alfanumérico u otra información adecuada que pueda identificar un artículo. En otro modo de realización, el conjunto de resultados incluye también identificadores de artículo de artículos ubicados en otros sistemas de la red 106, por ejemplo, artículos de red ubicados por un motor de búsqueda en un dispositivo servidor. Los artículos de red incluyen artículos ubicados en sistemas de la red 106 que no han sido vistos previamente o, de lo contrario, referenciados por el usuario 112a, tales como páginas web que no han sido vistas previamente por el usuario 112a.
El formateador 134 puede recibir el conjunto de resultados de búsqueda desde el sistema de consulta 132 del motor de búsqueda 122 y puede dar formato a los resultados para su salida a un procesador de visualización 128. En un modo de realización, el formateador 134 puede dar formato a los resultados en XML, HTML, o en texto delineado por pestañas. El procesador de visualización 128 puede estar dentro de la memoria 108 y puede controlar la visualización del conjunto de resultados en un dispositivo de representación asociado con el dispositivo cliente 102a. El procesador de visualización 128 puede incluir varios componentes. Por ejemplo, en un modo de realización, el procesador de visualización 128 incluye un servidor de Protocolo de Transferencia de Hipertexto (HTTP) que recibe las solicitudes de información y responde mediante la construcción y transmisión de páginas de Lenguaje de Marcado de Hipertexto (HTML). En uno de dichos modos de realización, el servidor HTTP incluye una versión a escala reducida del servidor web Apache. El procesador de visualización 128 puede estar asociado con un conjunto de interfaces de programación de aplicaciones (API, por sus siglas en inglés) para permitir que varias aplicaciones reciban los resultados y los muestren en diversos formatos. Las API de visualización pueden ser implementadas de varias maneras, incluyendo, por ejemplo, como exportaciones DLL, interfaz COM, VB, JAVA o bibliotecas .NET, o como un servicio web.
A través de los dispositivos cliente 102a-n, los usuarios 112a-n pueden comunicarse a través de la red 106, entre sí y con otros sistemas y dispositivos acoplados a la red 106. Como se muestra en la FIG. 1, un dispositivo de servidor 150 se puede acoplar a la red 106. En el modo de realización mostrado en la FIG. 1, el motor de búsqueda 122 puede transmitir una consulta de búsqueda incluida en una consulta explícita o implícita o ambas al dispositivo servidor 150. El usuario 112a también puede introducir una consulta de búsqueda en una interfaz del motor de búsqueda, que puede ser transmitida al dispositivo servidor 150 por el dispositivo cliente 102a a través de la red 106. En otro modo de realización, la señal de consulta puede, en cambio, ser enviada a un servidor proxy (que no se muestra), que a continuación, transmite la señal de consulta al dispositivo servidor 150. Otras configuraciones también son posibles.
El dispositivo servidor 150 puede incluir un servidor que ejecute un programa de aplicación del motor de búsqueda,
tal como el motor de búsqueda Google™. En otros modos de realización, el dispositivo servidor 150 puede incluir un
servidor de información relacionado o un servidor de publicidad. De forma similar a los dispositivos cliente 102an, el dispositivo servidor 150 puede incluir un procesador 160 acoplado a una memoria legible por ordenador 162. El dispositivo servidor 150, representado como un único sistema informático, puede ser implementado como una red de procesadores informáticos. Ejemplos de un dispositivo servidor 150 incluyen servidores, ordenadores centrales, ordenadores en red, un dispositivo basado en procesador y tipos similares de sistemas y dispositivos. El procesador del servidor 160 puede ser cualquiera de un número de procesadores, tales como los procesadores de Intel Corporation de Santa Clara, California, y Motorola Corporation de Schaumburg, Illinois. En otro modo de realización, el dispositivo servidor 150 puede existir en un dispositivo cliente. En otro modo de realización más, puede haber múltiples dispositivos servidor 150.
La memoria 162 contiene el programa de aplicación del motor de búsqueda, también conocido como un motor de búsqueda de red 170. El motor de búsqueda 170 puede localizar información relevante desde la red 106 en respuesta a una consulta de búsqueda desde un dispositivo cliente 102a. El motor de búsqueda 170 entonces puede proporcionar un conjunto de resultados al dispositivo cliente 102a a través de la red 106.
El conjunto de resultados puede incluir uno o más identificadores de artículo. Un identificador de artículo puede ser, por ejemplo, un Localizador Uniforme de Recursos (URL), un nombre de archivo, un enlace, un icono, una ruta para un archivo local o cualquier otra cosa que identifique un artículo. En un modo de realización, un identificador de artículo puede incluir un URL asociado con un artículo.
En un modo de realización, el dispositivo servidor 150, o dispositivo relacionado, previamente, ha realizado un rastreo de la red 106 para localizar artículos, tales como páginas web, almacenados en otros dispositivos o sistemas acoplados a la red 106, y ha indexado los artículos en la memoria 162 o en otro dispositivo de almacenamiento de datos.
Cabe señalar que otros modos de realización de la presente invención pueden incluir sistemas que tienen una arquitectura diferente a la que se muestra en la FIG. 1. Por ejemplo, en algunos otros modos de realización de la presente invención, el dispositivo cliente 102a es un dispositivo autónomo y no está acoplado a una red.
Con referencia ahora a la FIG. 2, se muestra un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar y procesar datos de evento asociados con un dispositivo cliente. Cabe señalar que pueden llevarse a cabo los diversos métodos de captura y de procesamiento de datos de evento de acuerdo con los modos de realización de la presente invención. Por ejemplo, en un modo de realización, se capturan datos de aplicación a partir de una interfaz de programa de aplicación ("API") asociada con una aplicación que se proporciona para interactuar con la aplicación. En otro modo de realización, se capturan pulsaciones de teclas asociadas a una aplicación y se determinan eventos a partir de, entre otras cosas, acciones asociadas con las pulsaciones de teclas.
En otro modo de realización, se capturan elementos de visualización e información relacionada y se determinan eventos a partir de, al menos en parte, la información de visualización capturada. Estos son algunos ejemplos no exhaustivos de los múltiples métodos de captura y de procesamiento de datos de evento de acuerdo con los modos de realización de la presente invención.
En un modo de realización, se puede determinar si se indexa el evento, y el evento se pueden indexar y almacenar si así se determina.
La FIG. 2 ilustra un método de ejemplo 200 que proporciona un método para la captura y el procesamiento de un evento en tiempo real. Este método de ejemplo se proporciona a modo de ejemplo, como se apreciará a partir de la descripción anterior de modos de realización de ejemplo que hay una variedad de formas para llevar a cabo métodos en otros modos de realización de la presente invención. El método 200 mostrado en la FIG. 2 puede ser ejecutado o de otra manera llevado a cabo por cualquiera de los diversos sistemas. El método 200 se describe a continuación como llevado a cabo por el sistema 100 que se muestra en la FIG. 1 a modo de ejemplo, y se hace referencia a diversos elementos del sistema 100 en la explicación del método de ejemplo de la FIG. 2.
En 202, el procesador de captura 124 captura un evento. El procesador de captura 124 puede capturar un evento mediante la identificación y recopilación de datos de evento asociados con el evento tras el acontecimiento del evento. El procesador de captura 124 puede tener componentes de captura separados para cada aplicación de cliente, control de red, captura de datos de rendimiento, captura de pulsaciones de teclas y captura de visualización. Por ejemplo, un evento puede acontecer cuando un usuario 112a teclea un número predeterminado de palabras en una aplicación de cliente. Los datos de evento asociados a ese evento pueden ser, por ejemplo, la aplicación utilizada para la entrada, el formato del texto, la entrada de palabras y la entrada de hora. En un modo de realización, el componente de captura puede utilizar un mecanismo de definición de evento generalizado, tal como un esquema de evento que se ha registrado previamente con el dispositivo cliente 102a, para capturar o expresar el evento.
La FIG. 3 proporciona un ejemplo de captura de un evento en tiempo real del paso 202. Específicamente, la FIG. 3 muestra un diagrama de flujo que ilustra un modo de realización de ejemplo de un método para capturar información de pulsación de tecla en un dispositivo cliente. En este modo de realización, se reciben una pluralidad de pulsaciones de teclas asociadas con una aplicación, cada pulsación de tecla se procesa para determinar una acción asociada formando una pluralidad de acciones asociadas y se determina un evento a partir, al menos en parte, de la pluralidad de acciones asociadas. Una aplicación en enfoque se puede determinar primero.
En un modo de realización, el evento puede ser un número de palabras y se puede determinar que la pluralidad de acciones asociadas forme una palabra o palabras. La palabra o palabras se pueden determinar al menos en parte mediante la recepción de al menos una pulsación de tecla que indique un espacio o un símbolo de puntuación. En otro modo de realización, el evento puede ser una serie de caracteres y se puede determinar que la pluralidad de acciones asociadas formen un carácter o caracteres.
En un modo de realización, un estado de captura puede ser actualizado después de que se procese cada pulsación de tecla. En un modo de realización, un estado actual del usuario se puede actualizar a partir, al menos en parte, del evento. El evento puede ser indexado y almacenado.
En un modo de realización, cada acción asociada puede ser determinada, al menos en parte, al hacer coincidir la pulsación de tecla con una entrada en una tabla de pulsaciones de teclas y determinar una acción en la tabla de teclas asociada con la entrada. La acción puede incluir una de las siguientes: añadir un carácter a una palabra, borrar un carácter de una palabra, insertar un carácter, sobrescribir un carácter, borrar una palabra, eliminar un párrafo, seleccionar un elemento y reposicionar el cursor. La tabla de pulsaciones de teclas puede estar asociada con la aplicación o puede ser una tabla genérica de pulsaciones de teclas.
En otro modo de realización, se reciben pulsaciones de teclas asociadas con una aplicación, se determina un evento a partir de entradas de usuario y se determina si se indexar el evento. Las entradas de usuario pueden ser uno o más de un número de palabras determinadas a partir de las pulsaciones de teclas, un número de caracteres determinados a partir de las pulsaciones de teclas y un cambio de enfoque de la aplicación a otra aplicación. Determinar si se indexa el evento puede incluir determinar si el evento es importante para el usuario.
En 302, se proporciona una base de datos de pulsaciones de teclas. La base de datos de pulsaciones de teclas puede contener, para diversas aplicaciones de cliente, tablas de comandos de pulsaciones de teclas y la acción respectiva para cada comando. En un modo de realización, la base de datos de pulsaciones de teclas tiene una tabla separada para cada aplicación de cliente separada. Se puede utilizar una tabla genérica para una aplicación si una tabla específica no existe para la aplicación particular. En un modo de realización, la misma tabla puede ser utilizada para grupos de aplicaciones. Por ejemplo, la misma tabla se puede utilizar para aplicaciones del mismo desarrollador. Por ejemplo, la misma tabla se puede utilizar para todas las aplicaciones de Microsoft® y una tabla diferente se puede utilizar para todas las aplicaciones de Lotus®. De manera adicional, la misma tabla se puede utilizar para aplicaciones relacionadas, tales como las aplicaciones de Office® de Microsoft®, o aplicaciones de procesadores de texto de cualquier desarrollador. Las tablas de pulsaciones de teclas se pueden crear de forma manual para cada aplicación. De forma alternativa, las tablas de pulsaciones de teclas se pueden crear de forma automática al determinar de forma automática acciones respectivas de cada pulsación de tecla para cada aplicación.
En 303, se llama al componente de captura de pulsaciones de teclas. El componente de captura de pulsaciones de teclas puede operar de forma normal o incluso de forma constante de manera que controle toda la actividad de pulsaciones de teclas o pueda ser llamado de forma selectiva por el procesador de captura 124 u otros componentes de captura cuando sea necesario o en diversos momentos. En 304, el componente captura de pulsaciones de teclas puede determinar la aplicación de cliente en enfoque. La aplicación en enfoque es la aplicación de cliente que está siendo actualmente utilizada por el usuario 112a. Por ejemplo, puede ser la aplicación de cliente en la que el usuario 112a está introduciendo texto. En un modo de realización, se determina la aplicación en enfoque de modo que el componente de captura de pulsaciones de teclas pueda utilizar la tabla de pulsaciones de teclas asociada con la aplicación en enfoque de la base de datos de pulsaciones de teclas. Por ejemplo, si la aplicación en enfoque es una aplicación específica de procesador de texto, el componente de captura de pulsaciones de teclas puede llamar la tabla de pulsaciones de teclas de la aplicación de procesador de texto específica correspondiente.
En 306, los datos de evento son restablecidos por medio del componente de captura de pulsaciones de teclas. En un modo de realización, los datos de evento se cumplen en un evento en un formato definido por un esquema de evento y el componente de captura de pulsaciones de teclas puede registrar un esquema de evento de captura de pulsaciones de teclas específicas, y restablecer el evento incluye la eliminación de cualquier dato de evento existente. Un contador N también se puede restablecer. En un modo de realización, el contador cuenta el número de palabras capturadas por el componente de captura de pulsaciones de teclas. En dicho modo de realización, cuando el evento es restablecido, el contador se pone a cero.
En 308, el componente de captura de pulsaciones de teclas captura una entrada de pulsación de tecla por el usuario 112a. Un usuario puede introducir una pulsación de tecla a través de una variedad de dispositivos de entrada, tales como un teclado. Una pulsación de tecla puede incluir una entrada de tecla única o una entrada de tecla múltiple y puede incluir una entrada de texto y una entrada de comando de edición. Por ejemplo, una pulsación de tecla puede incluir la tecla "G" o las teclas "G" y "Shift". Una pulsación de tecla también puede incluir la tecla "Retroceso" o las teclas "Retroceso" y "Control". El componente de captura de pulsaciones de teclas puede recibir una pulsación de tecla al recibir mensajes de pulsación de tecla a través de una devolución de aplicación que puede ser invocada por el sistema operativo. El componente de captura de pulsaciones de teclas también puede recibir una pulsación de tecla a través del control de un buffer de entrada, tal como un buffer de teclado, a nivel de sistema operativo. Se pueden capturar otros métodos de introducción de caracteres, como la escritura a mano.
En 310, el componente de captura de pulsaciones de teclas procesa las pulsaciones de teclas. En el modo de realización mostrado, el componente de captura de pulsaciones de teclas procesa la pulsación de tecla recibida al emparejar la pulsación de tecla con una entrada de la tabla de pulsaciones de teclas de la aplicación específica en enfoque, y determinar la acción respectiva de la pulsación de tecla. Por ejemplo, si la pulsación de teclas recibida es la tecla "SHIFT" y la tecla "G" en una aplicación específica de procesamiento de textos, el componente de captura de pulsaciones de teclas puede emparejar la tecla "SHIFT" y la tecla "G" en la tabla de pulsaciones de teclas de la aplicación específica y determinar la acción asociada, por ejemplo, la salida de la letra "G". Si la pulsación de teclas recibida son las teclas "Control" y "Retroceso", el componente de captura de pulsaciones de teclas puede emparejar esas teclas con la acción respectiva de la tabla de pulsaciones de teclas de la aplicación específica y determinar la acción asociada, por ejemplo, la acción de borrar la palabra anterior al cursor. Otras acciones posibles incluyen mover el cursor hacia arriba o hacia abajo de una línea, mover el cursor hacia arriba o hacia abajo de un párrafo y mover el cursor al principio o al final de un documento, por ejemplo. El componente de captura de pulsaciones de teclas puede realizar un seguimiento de la posición actual del cursor con respecto a los caracteres anteriores introducidos. Por ejemplo, si el usuario escribe 5 caracteres, pulsa la "flecha izquierda" tres veces, escribe un carácter y pulsa la "flecha derecha" tres veces, el componente puede identificar que el usuario volvió atrás e introdujo un carácter en la palabra (para aplicaciones en las cuales la "flecha izquierda" se corresponde con el movimiento del cursor un carácter atrás). El componente puede seguir realizando un seguimiento de si cada aplicación está en modo "introducir", de manera que sabe si los nuevos caracteres superponen cualquier carácter existente.
En otro modo de realización, el componente de captura de pulsaciones de teclas puede que no procese directamente las pulsaciones de teclas. En su lugar, el componente de captura de pulsaciones de teclas puede pasar primero pulsaciones de teclas al sistema operativo, como si el usuario las hubiese enviado activamente al componente de captura de teclado, y no una aplicación. De esta manera, el sistema operativo puede realizar el trabajo de traducir pulsaciones de teclas en mensajes de mayor nivel (caracteres, movimientos de tecla, etc.) y puede, a continuación, devolver esos mensajes al componente de captura de pulsaciones de teclas para su posterior procesamiento. El envío de pulsaciones de teclas al sistema operativo para procesamiento intermedio, en lugar de procesarlas directamente, puede ser beneficioso por varias razones. Por ejemplo, puede evitar algunas de las dificultades de manejar caracteres de múltiples pulsaciones de teclas (incluyendo la introducción de caracteres que no son ingleses) y puede garantizar que las pulsaciones de teclas se procesen de una manera que sea coherente con el comportamiento del sistema operativo.
En 312, el componente de captura de pulsaciones de teclas añade la pulsación de tecla procesada a los datos de evento. En el modo de realización mostrado, el componente de captura de pulsaciones de teclas captura datos de evento tal como describe el esquema de evento y la pulsación de tecla procesada se añade a los datos de evento. Por ejemplo, si la pulsación de tecla procesada indica la adición de la letra G, se añade la letra G a los datos de evento. Si la pulsación de tecla procesada indica eliminar la palabra que precede al cursor y una palabra está dentro de los datos de evento, esa palabra se puede eliminar. Además, el componente de captura de pulsación de tecla puede añadir la pulsación de tecla procesada a un estado de captura. El componente de captura de pulsaciones de teclas puede mantener el estado de captura que contiene las pulsaciones de teclas anteriores mientras se determina qué palabra(s) reciente ha introducido el usuario. El estado de captura se puede actualizar antes de que se genere un evento.
En 314, el componente de captura de pulsaciones de teclas determina si una palabra completa ha sido añadida al evento. Una palabra puede ser una serie de caracteres que representen una palabra hablada, abreviatura, término o unidad semántica. Por ejemplo, "SERIE MUNDIAL", "ASCII", "SR" y "GOOGLE" pueden ser palabras. El componente de captura de pulsaciones de teclas puede determinar si una palabra completa ha sido introducida mediante una variedad de métodos. En un modo de realización, el componente de captura de pulsaciones de teclas busca una serie de caracteres seguidos por un espacio, por ejemplo, "GOOGLE", o ciertas caracteres de puntuación, como "GOOGLE", para determinar si se ha introducido una palabra completa. Si no se ha introducido una palabra completa, entonces el componente de captura de pulsaciones de teclas va al paso 316. En 316, el componente de captura de pulsaciones de teclas puede determinar si la aplicación previamente en enfoque está todavía en enfoque o si la aplicación en enfoque ha cambiado y otra aplicación se encuentra ahora en enfoque. Si la aplicación en enfoque no ha cambiado, el componente de captura de pulsaciones de teclas vuelve al paso 308 y recibe otra pulsación de tecla. Si la aplicación en enfoque ha cambiado, el componente de captura de pulsaciones de teclas vuelve al paso 304 y determina la aplicación en enfoque en ese momento. Si el componente de captura de pulsaciones de teclas identifica una acción tal como mover el cursor una línea hacia arriba, puede actualizar el estado de captura para que refleje la nueva posición del cursor. Si el componente de captura de pulsaciones de teclas no tiene el estado de captura de esa ubicación, o no se puede determinar con precisión la nueva ubicación, simplemente puede restablecer cualquier palabra parcialmente capturada. Como otro ejemplo, la pulsación de teclas "shift flecha izquierda" puede seleccionar el carácter anterior en una aplicación particular. El componente de captura de pulsaciones de teclas puede reconocer esa acción y posibles acciones posteriores como eliminar la selección o pegar la selección en otra parte del documento.
Si, en el paso 314, el componente de captura de pulsaciones de teclas determina que se ha recibido una palabra completa, a continuación, en el paso 318 el contador N se incrementa en uno. En el paso 320, el procesador de captura determina si el contador N es igual a un número entero T. El número entero T puede ser, por ejemplo, un número de palabras. El número de palabras se puede predeterminar o se puede determinar a partir de una variedad de factores adecuados, tales como la aplicación en enfoque en ese momento u otra actividad del usuario. En un ejemplo, T es igual a uno para que el componente de captura de pulsación de tecla pueda crear un evento al identificar cada palabra introducida por el usuario 112a. De forma alternativa, T puede ser un número de caracteres. Al igual que el número de palabras, el número de caracteres se puede predeterminar o se puede determinar a partir de una variedad de factores adecuados. Si, en el paso 320, se descubre que N no es igual que T, entonces el componente de captura de pulsaciones de teclas va al paso 316, donde el componente de captura de pulsaciones de teclas determina si la aplicación en enfoque ha cambiado. Si el componente de captura de pulsaciones de teclas determina que N sí que es igual a T, entonces el componente de captura de pulsaciones de teclas procede al paso
322. Por ejemplo, si N es un contador que cuenta el número de palabras capturado y T se establece en uno y se recibe "GOOGLE", entonces el componente de captura de pulsaciones de teclas continúa al paso 322.
En 322, el componente de captura de pulsaciones de teclas compila el evento. En el modo de realización mostrado, el componente de captura de pulsaciones de teclas compila el evento mediante la compilación de los datos de evento asociados con los campos específicos descritos por el esquema de evento. Por ejemplo, los datos de evento pueden incluir la aplicación que se utiliza para la entrada, el formato del texto, la entrada de palabra o palabras y la entrada de tiempo. Cuando el componente de captura de pulsaciones de teclas ha compilado el evento, el método 200 puede continuar en el paso 204 como se muestra en la FIG. 2.
La FIG. 4 proporciona otro ejemplo de la captura de un evento, por ejemplo, un evento en tiempo real 202, como se muestra en la FIG. 2, a partir de información de visualización. La FIG. 4 muestra un diagrama de flujo que ilustra un modo de realización de ejemplo de un método para capturar información de visualización en un dispositivo cliente. Normalmente, las aplicaciones en un dispositivo cliente invocan llamadas de visualización para visualizar información asociada con la aplicación en una pantalla de usuario, tal como un monitor, una pantalla de cristal líquido, una pantalla de plasma o similar. En un modo de realización, el procesador de captura 124 incluye un componente de captura de visualización para determinar eventos a partir de, al menos en parte, las pantallas o ventanas asociadas con las aplicaciones. Cabe señalar que las ventanas asociadas con las aplicaciones se pueden ocultar o mostrar y hacer visibles para el usuario en cualquier momento dado. La información de una pantalla puede ser determinada al menos en parte mediante el uso de una matriz de un estado actual de la pantalla y la actualización de la matriz con llamadas de visualización. La información de una pantalla también se puede determinar, al menos en parte, mediante la construcción de elementos de visualización a partir de al menos en parte, posiciones de visualización de las llamadas de visualización. Las llamadas de visualización se pueden procesar mediante el análisis de una o más de las coordenadas x, y, longitudes, o posiciones relativas de varias salidas de elementos a la pantalla mediante llamadas de visualización.
En un modo de realización, una aplicación en enfoque se determina primero desde la cual capturar información de visualización asociada para generar eventos. Los eventos pueden incluir, por ejemplo, un número de palabras determinadas para ser de salida en la pantalla. En un modo de realización, un estado de captura puede ser actualizado después de procesar cada llamada de visualización y un estado de usuario actual se puede actualizar a partir, al menos en parte, del evento.
Con respecto a la FIG. 4, inicialmente, se llama a un componente de captura de visualización 400. El componente de captura de visualización puede funcionar con regularidad, por ejemplo, en un horario, o incluso constantemente de modo que controle toda la actividad de visualización, o puede ser selectivamente llamado cuando sea necesario. Entonces, se determina la aplicación en enfoque 402. En un modo de realización, la aplicación en enfoque es la aplicación de cliente que está siendo utilizada actualmente. Por ejemplo, en un entorno de sistema operativo basado en ventanas, el componente de captura de visualización determina qué ventana está usando activamente el usuario.
En una primera o nueva llamada, el evento es restablecido 404. Un evento puede ser restablecido por razones diferentes, tales como, por ejemplo, que el usuario tenga conectada la aplicación en enfoque, que un evento de haya sido capturado y enviado para su procesamiento o por otras razones diferentes. En un modo de realización, restablecer 404 un evento incluye indicar o generar un nuevo evento. Los datos de evento existentes antes del restablecimiento 404 se guardan en un estado de captura y se mantienen hasta el restablecimiento. La indicación de un nuevo evento desencadena el envío de los datos de evento existentes en el evento anterior para procesamiento. Por ejemplo, en un modo de realización, la función de restablecimiento guarda el evento anterior y lo envía a la cola 126 antes de inicializar el nuevo evento. En un modo de realización, se pueden generar nuevos eventos de acuerdo con un esquema de evento asociado con un tipo de evento. Los esquemas de evento pueden incluir dar formato a varios campos de datos asociados con los diferentes tipos de eventos.
A continuación, se recibe una llamada de visualización 406. Por ejemplo, en un modo de realización, el componente de captura de visualización recibe una llamada de visualización. Una llamada de visualización puede ser una instrucción enviada por el sistema operativo al dispositivo de representación asociado con el dispositivo cliente que indica al dispositivo de representación que muestre un artículo o cambie la visualización de un elemento en el dispositivo de representación. Por ejemplo, la llamada de visualización puede ser para mostrar el texto "Google" en la fuente "Times New Roman" en una posición de pantalla, tal como la posición x, y. Esta llamada de visualización puede, por ejemplo, provocar la visualización del texto "Google" en la pantalla de un monitor de ordenador en la posición x, y de la ventana activa y en la fuente "Times New Roman". Una llamada de visualización también puede ser, por ejemplo, para eliminar un elemento en una posición dada, cambiar la fuente de una palabra, cambiar la posición de un elemento en la pantalla o similares. En un modo de realización, las llamadas de visualización también pueden ser determinadas mediante la inyección de un código en aplicaciones o a través del uso de Bibliotecas de Vínculos Dinámicos ("DLL") para enganchar e interceptar llamadas de API del sistema operativo como se detalla a continuación. En otro modo de realización, también se pueden capturar otros métodos de salida, tales como llamadas a un controlador de impresora, un controlador de audio o similar.
Después de que se haya recibido la llamada de visualización 406, se procesa la llamada de visualización 408 para determinar los datos de evento asociados con la pantalla actual. La pantalla incluye la información visual que el usuario ve en la ventana o ventanas. En un modo de realización, los datos de evento asociados con la pantalla actual se capturan y se colocan en un formato de evento de acuerdo con un esquema de evento asociado con el tipo de evento particular o aplicación. En un modo de realización, los datos de evento capturados se pueden guardar o mantener en un estado de captura, por ejemplo, al mantener una matriz de elementos que se han editado para la pantalla actual. Por ejemplo, en un modo de realización, un componente de captura de visualización puede utilizar las coordenadas x e y de los artículos para determinar palabras, espacios entre las palabras y el inicio de una nueva línea. La llamada de visualización puede ser utilizada por el componente de captura de visualización para actualizar la matriz de la pantalla actual. Por ejemplo, si la llamada de pantalla es para escribir el texto "Google" en la fuente "Times New Roman" en la posición x, y, previamente mostrando la palabra "Google," entonces se añade el texto "Google" en la fuente "Times New Roman" a la pantalla en la posición x, y reemplazando el texto "Google." La matriz actualizada asociada con la pantalla actual, incluyendo el texto "Google" se puede añadir entonces al evento. El estado de captura también se puede actualizar al reemplazar la matriz de estado anterior "Google", con la matriz actualizada, "Google". En consecuencia, las actualizaciones de la pantalla se pueden reflejar en el evento asociado durante tanto tiempo como el evento no esté completo.
Se determina después 410 si se ha producido un evento completo. En un modo de realización, para determinar 410 si un evento está completo, se comprueba una condición completa. Por ejemplo, una condición de completa puede incluir la adición de una sola palabra o un número predeterminado de palabras a la pantalla del dispositivo de representación. De forma alternativa, como otro ejemplo, una condición completa puede incluir una acción de usuario concreta en la pantalla, por ejemplo, un clic de ratón en un hipervínculo, un botón, un elemento del menú o similares. Si todavía no ha ocurrido un evento completo, entonces se determina 412 si ha cambiado la aplicación en enfoque. Si la aplicación en enfoque no ha cambiado, se recibe 406 la siguiente llamada de visualización asociada con la ventana activa. Por el contrario, si la aplicación en enfoque ha cambiado, se determina de nuevo la nueva aplicación en enfoque 402 y comienza el proceso de captura de un nuevo evento.
Si se determina 410 que ha ocurrido un evento completo, se compila el evento completo 414. Por ejemplo, en un modo de realización, el componente de captura de visualización compila un evento al proporcionar todos los datos relacionados con el evento de acuerdo con un esquema de evento. Los datos de evento pueden incluir la aplicación utilizada, el formato de la pantalla, la hora de visualización, el contenido mostrado, la fuente y el tamaño de fuente de cualquier palabra mostrada y cualquier otro dato asociado al evento que pueda ser posteriormente útil para la indexación o para un usuario.
Con referencia ahora a la FIG. 5, se muestra un diagrama de flujo de un modo de realización de un método de captura de visualización basado en perfiles 500. En este modo de realización, un componente de captura de visualización puede ser configurado para capturar información asociada con ventanas de aplicaciones seleccionadas. Las ventanas de la aplicación se pueden mostrar en la vista de usuario o escondidas dentro del sistema informático. Algunos ejemplos de aplicaciones seleccionadas para las cuales se pueden ser configurar componentes de captura de visualización incluyen aplicaciones que no proporcionan una API pública, aplicaciones que cifran o de lo contrario protegen contra la captura de datos desde sus ventanas de la aplicación o similares. El procesador de captura de este modo de realización puede incluir varios componentes de captura. Para algunas de las aplicaciones de destino desde las cuales se capturan datos de evento, se utiliza un componente de captura basado en perfiles.
En consecuencia, en un modo de realización, tras la inicialización del proceso del componente de captura, las aplicaciones preexistentes con ventanas asociadas se comprueban primero 501 con el fin de determinar su identidad. En un modo de realización, un perfil de aplicación de destino se utiliza para determinar la identidad de las aplicaciones que se están ejecutando. El perfil de la aplicación incluye información de identificación asociada con las aplicaciones de destino. El perfil de aplicación puede incluir, por ejemplo, un nombre único de clase de ventana asociado con ventanas de una aplicación de destino (ya sea oculta o visible), un nombre único de ruta de sistema para archivos binarios almacenados asociados con la aplicación de destino, entradas de registro de sistema operativo asociadas con la aplicación de destino o similares. En un modo de realización, tras la inicialización y después de que se hayan comprobado las aplicaciones existentes 501, se reciben notificaciones de eventos de creación de ventana posteriores, por ejemplo, mediante la suscripción a través del sistema operativo a eventos de creación de ventana. Para cada evento de creación de ventana, la aplicación de origen se comprueba 501 para determinar si es una aplicación de destino seleccionada.
Una vez que se identifica una aplicación de destino, el código informático de un componente de captura de visualización específico de la aplicación se asocia 502 con la aplicación de destino. Por ejemplo, en un modo de realización, un gancho basado en una API de Windows® está configurado para cargar el código de captura de visualización de una librería de enlace dinámico ("DLL") en el proceso de aplicación de destino. En un modo de realización, el código de captura de visualización elude las funciones de protección de captura de datos/codificación de la aplicación de destino al modificar, interceptar o evitar sus interacciones con el sistema operativo.
En un modo de realización, los datos de evento de una aplicación de destino se derivan de un subconjunto de las ventanas asociadas con la aplicación de destino. En consecuencia, las ventanas asociadas con las aplicaciones de destino se comparan 504 con perfiles de ventana almacenados. Los perfiles de ventana contienen información que puede ser utilizada para identificar ventanas de destino, incluyendo, por ejemplo, texto que se encuentra en el título de la ventana, el número y tipo de elementos de visualización (por ejemplo, botones, menús desplegables, recuadros de introducción de texto y similares), texto para ser mostrado en los elementos de la pantalla, la ubicación
o disposición de elementos de visualización y similares.
Por ejemplo, en un modo de realización, una ventana de texto de una aplicación de destino de mensajería instantánea ("IM") es la ventana de destino. El texto del mensaje instantáneo (tanto el que es introducido como el que es recibido) son los datos de evento a ser capturados y asociados con un evento de mensajería instantánea (es decir, un campo de datos del esquema de evento de IM incluye el texto intercambiado por los usuarios de una sesión). El perfil de ventana de este ejemplo (es decir, el perfil de ventana de la ventana de destino, que es la ventana de conversación de IM) incluye la cadena "hablando con" en el título de la ventana, un botón "Enviar" y un recuadro grande de entrada de texto libre.
Para cada ventana de destino de la aplicación de destino, se controla el estado de los elementos de visualización u otras variables relacionadas con la visualización de la ventana de destino 506. Por ejemplo, se controla el estado de los controladores asociados con botones de pantalla o métodos abreviados de teclado equivalentes (por ejemplo, el botón "Enviar" o la secuencia de teclas Ctrl + Enter). Al detectar el cambio de estado de un elemento de visualización (por ejemplo, un botón) de interés, se capturan datos de evento de la ventana de destino 508.
En un modo de realización, la captura de datos es habilitada por el código de componente de captura de visualización enganchado en el proceso de aplicación de destino. Ese código intercepta los mensajes del sistema operativo entre la aplicación de destino y el sistema operativo y modifica las respuestas a esos mensajes del sistema operativo con el fin de permitir la captura de datos. Por ejemplo, en un sistema basado en Windows®, una aplicación configurada para proporcionar una secuencia vacía en respuesta a cada comando "get text" (por ejemplo, WM_GETTEXT) es modificada por el código de componente de captura para utilizar el controlador predeterminado para proporcionar el texto de visualización de ventana. Por lo tanto, el código de componente de captura insertado en el proceso de destino permite la modificación del comportamiento de la aplicación, por ejemplo, para eludir las medidas de prevención de captura de datos desde dentro del proceso.
La captura de visualización de datos de evento 508 se puede repetir a partir de cambios de estado y el estado de captura asociado con un evento puede ser actualizado con datos de evento recién capturados. Por ejemplo, por cada clic de usuario en el botón "Enviar" en una aplicación de mensajería instantánea, se puede capturar el texto asociado con una sesión de chat de mensajería instantánea 508 y almacenar en la memoria en una estructura de datos asociada con un evento de mensajería instantánea para la sesión actual. Los clics posteriores en el botón "Enviar" pueden causar la captura de intercambios de texto adicional en la sesión de mensajería instantánea entre los usuarios. Dicha captura de datos basada en el estado proporciona de forma beneficiosa un esquema eficiente para capturar datos de pantalla tras la interacción del usuario con una ventana de destino. Los esquemas de sondeo en función del tiempo pueden ser menos eficientes, ya que pueden operar incluso si el usuario no proporciona ninguna entrada nueva al proceso de destino. Además, la captura de datos basada en el estado puede reducir la probabilidad de perder algunos datos introducidos debido a que, generalmente, después de una entrada del usuario, se requiere algún cambio de estado (por ejemplo, hacer clic en un botón "Enviar", un botón "OK", un botón "Continuar" o teclear métodos abreviados equivalentes o similares).
Con referencia de nuevo a la FIG. 5, se controla el estado de la expiración de la ventana de destino 510. Tras la expiración de la ventana de destino, un evento puede ser completado 512. Cualquier entrada de datos de evento en el almacén de datos de evento puede ser terminada y el evento capturado puede ser enviado al indexador. Mientras la ventana de destino permanece activa, la captura de visualización puede continuar durante cada cambio de estado de la ventana.
Con referencia ahora de nuevo a la FIG. 2, una vez que se captura un evento (por ejemplo, como se describe con respecto a las figuras 4 y 5), el método de procesamiento de datos de evento procede al paso 204. El componente de captura de pulsaciones de teclas descrito con respecto a la FIG. 4 y el componente de captura de visualización descrito con respecto a la FIG. 5 se pueden utilizar juntos en un procesador de captura 124, además de otros componentes de captura, para determinar la actividad del usuario (por ejemplo, qué está viendo el usuario en un dispositivo visual de salida, tal como una pantalla). Otros componentes de captura pueden incluir técnicas de captura de datos de audio y video, por ejemplo, reconocimiento de voz, procesamiento de imágenes y similares, para eventos de audio y vídeo que pueden ser incluidos en el índice.
Después de que se haya capturado un evento, se determina 204 si el evento es un evento indexable. Como se ha explicado anteriormente, algunos eventos en tiempo real pueden no ser indexados (eventos en tiempo real no indexables). En un modo de realización, los eventos en tiempo real no indexables se utilizan para actualizar el estado del usuario actual y pueden ser, por ejemplo, examinar una parte de un artículo, cambiar un artículo y cerrar un artículo. En este modo de realización, los eventos no indexables no son indexados o enviados para su almacenamiento mediante el indexador 130. Los eventos indexables pueden ser eventos en tiempo real o eventos históricos indexables. Las pulsaciones de teclas y llamadas de visualización pueden ser eventos no indexables, tales como la entrada de un número de palabras por parte de un usuario o la visualización de un número de palabras en un dispositivo de representación. Las pulsaciones de teclas y llamadas de visualización también pueden ser eventos indexables, tales como, por ejemplo, cuando un artículo entero o parte de un artículo es introducido por un usuario o mostrado en un dispositivo de representación.
Si se determina un evento indexable 204, entonces, el evento puede ser enviado 206 para su indexación, por ejemplo, a la cola 126, con una indicación de que es un evento indexable. En el modo de realización mostrado en la FIG. 1, los eventos en tiempo real indexables se envían tanto a una cola de estado de usuario como a una cola de índice dentro de la cola 126, y los eventos históricos se envían a la cola de índice dentro de la cola 126. De forma alternativa, los eventos en tiempo real indexables no se pueden enviar a la cola de estado de usuario para ahorrar tiempo computacional. El procesador de captura 124 puede enviar el evento en una forma descrita por un esquema de evento a la cola 126.
Si se determina que el evento 204 es un evento no indexable, entonces, el evento no indexable se puede enviar 206 para su posterior procesamiento, por ejemplo, a una cola de estado de usuario de la cola 126, con una indicación de que no va a ser indexado. Por ejemplo, cuando un usuario está redactando un correo electrónico un componente de captura puede capturar un número de palabras introducido por el usuario en la redacción del correo electrónico. Un componente de captura puede capturar el texto introducido como un evento. Si bien ese evento puede ser útil para determinar un estado actual del usuario 112a, puede que no sea lo suficientemente importante para ser indexado y enviado para ser almacenado por el motor de búsqueda, de modo que el usuario pueda más tarde recuperar esta información. De forma alternativa, en un ejemplo en el que un usuario abre un correo electrónico recibido, tal evento puede proporcionar información sobre un estado actual del usuario, pero también puede ser indexado y enviado para ser almacenado por el motor de búsqueda 122, porque el usuario 112a puede después estar interesado en la recuperación de ese correo electrónico.
En un modo de realización, la cola 126 mantiene el evento hasta que el motor de búsqueda está listo para recibirlo. A partir de los datos de evento, el evento puede ser priorizado en la cola 126 para su manipulación. Por ejemplo, la cola 126 puede dar a los eventos históricos una prioridad más baja para su procesamiento que a los eventos en tiempo real. En un modo de realización, cuando el indexador 130 está listo para procesar otro evento, puede recuperar uno o más eventos de la cola de índice en la cola 126. El sistema de consulta 132 puede recuperar uno o más eventos de la cola de estado del usuario de la cola 126 cuando está listo para actualizar el estado del usuario. En otro modo de realización, no se utiliza cola y los eventos se envían directamente al motor de búsqueda 122 desde el procesador de captura 124.
Después de hayan tomado las decisiones de indexación 204 y los eventos se hayan puesto en cola correctamente 206, los eventos son indexados y almacenados 208. En un modo de realización, el indexador 130 puede recuperar un evento de la cola 126 cuando está listo para procesar el evento. El indexador 130 determina si el evento es un evento duplicado y, si no, asigna al evento una identificación de evento. El indexador 130 puede también asociar el evento con los eventos relacionados. Por ejemplo, en un modo de realización como se muestra en la FIG. 2, mediante el esquema de evento, el indexador 130 determina los términos indexables asociados con el evento, las fechas y horas asociadas con el evento y otros datos asociados con el evento. El indexador 130 puede asociar la identificación del evento con los términos indexables que figuran en el índice 142.
El evento se puede almacenar en la base de datos 144 y el contenido del evento se puede almacenar en el depósito
146.
El entorno mostrado refleja un modo de realización de la arquitectura del motor de búsqueda del lado del cliente. Son posibles otros modos de realización, tales como un dispositivo cliente autónomo o un motor de búsqueda de red.
Aunque los modos de realización y aplicaciones particulares de la presente invención se han ilustrado y descrito en este documento, ha de entenderse que la invención no se limita a la construcción y componentes precisos revelados en este documento y que varias modificaciones, cambios y variaciones pueden ser realizados en la disposición, funcionamiento y detalles de los métodos y aparatos de la presente invención sin apartarse de la invención tal como se define en las reivindicaciones adjuntas.

Claims (18)

  1. REIVINDICACIONES
    1. Un método informático para capturar datos de evento a partir de una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior, el método comprendiendo:
    la recepción de información de creación de ventana acerca de una ventana creada por la aplicación;
    la determinación (501) de si la aplicación es un ejemplo de una aplicación de destino al comparar la información de creación de ventana con un perfil de aplicación de destino asociado con la aplicación de destino;
    en respuesta a una determinación de que la aplicación es un ejemplo de la aplicación de destino, la determinación de si la ventana creada es un ejemplo de una ventana de destino al comparar (504) la información de creación de ventana con un perfil de ventana de destino asociado a la aplicación de destino; y
    en respuesta a una determinación de que la ventana creada es un ejemplo de la ventana de destino, la captura
    (508) de datos de evento a partir de la ventana creada al detectar un cambio de estado de un estado asociado con un elemento de la ventana;
    en el cual la captura de datos de evento también comprende el almacenamiento de información de ventana capturada en una estructura de datos asociada a un evento de acuerdo con un esquema de evento, y la indexación y el almacenamiento del evento.
  2. 2.
    El método de la reivindicación 1, también comprendiendo:
    la actualización de un estado de captura de un evento con datos de evento capturados adicionales a partir de la ventana en respuesta a un cambio de estado subsiguiente del estado asociado con el elemento de la ventana.
  3. 3.
    El método de cualquier reivindicación anterior, en el cual el elemento de la ventana incluye al menos uno de los siguientes: un botón, un menú desplegable o un hipervínculo.
  4. 4.
    El método de la reivindicación 1, en el cual la información de creación de ventana incluye al menos uno de los siguientes: un nombre de clase de ventana, un nombre de ruta o una entrada de registro asociada con la primera aplicación.
  5. 5.
    El método de la reivindicación 1, en el cual el perfil de aplicación de destino incluye al menos uno de los siguientes: un nombre de clase de ventana, un nombre de ruta o una entrada de registro asociada con la aplicación de destino.
  6. 6.
    El método de cualquier reivindicación anterior, en el cual la aplicación de destino está asociada con una pluralidad de perfiles de ventana de destino, cada perfil de ventana de destino comprendiendo la identificación de información de elemento de visualización para las ventanas desde las cuales se capturan datos.
  7. 7.
    El método de cualquier reivindicación anterior, también comprendiendo:
    la asociación de un código de captura de visualización dentro de una aplicación de destino.
  8. 8.
    El método de la reivindicación 7, en el cual el código de captura de visualización modifica las respuestas de la aplicación a solicitudes del sistema operativo.
  9. 9.
    El método de la reivindicación 8, en el cual las solicitudes de sistemas operativos incluyen mensajes de otras aplicaciones basadas en una interfaz de programación de aplicaciones asociada con el sistema operativo.
  10. 10.
    El método de la reivindicación 8, en el cual las solicitudes del sistema operativo incluyen solicitudes de texto en la ventana creada.
  11. 11.
    El método de cualquiera de las reivindicaciones 7 a 10, en el cual la asociación de código de captura de visualización incluye el establecimiento de un gancho (hook) con respecto a la aplicación.
  12. 12.
    El método de la reivindicación 11, en el cual el gancho está configurado para interceptar mensajes entre un sistema operativo y la aplicación.
  13. 13.
    El método de cualquiera de las reivindicaciones 1 a 12, en el cual la recepción de información de creación de ventana comprende:
    la recepción de una pluralidad de llamadas de visualización asociadas con las aplicaciones informáticas del sistema informático.
  14. 14.
    El método de la reivindicación 13, en el cual la determinación de si la ventana creada es un ejemplo de la ventana de destino comprende el análisis de una o más de: las coordenadas x, y, las longitudes y las posiciones relativas de una pluralidad de elementos de visualización escritos en la pantalla utilizando llamadas de visualización y su comparación con el perfil de ventana de destino.
  15. 15.
    El método de cualquiera de las reivindicaciones 1 a 12, también comprendiendo:
    la suscripción a eventos de creación de ventana a través de un sistema operativo del sistema informático.
  16. 16.
    El método de cualquiera de las reivindicaciones 1 a 12, también comprendiendo:
    el control de cambios de estado por estados asociados con elementos de visualización de la ventana;
    la captura de texto dentro de la ventana al detectar un cambio de estado de los estados controlados, en el cual la captura comprende la intercepción de una solicitud de texto de ventana y la proporción del texto de ventana antes de que una aplicación responda a la solicitud de texto de ventana; y
    la indexación del texto capturado al expirar la ventana.
  17. 17. Un sistema informático para capturar datos de evento a partir de una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior, el sistema comprendiendo:
    medios para recibir información de creación de ventana acerca de una ventana creada por la aplicación;
    medios para determinar si la aplicación es un ejemplo de una aplicación de destino al comparar la información de creación de ventana con un perfil de aplicación de destino asociado a la aplicación de destino;
    medios para, en respuesta a una determinación de que la aplicación es un ejemplo de la aplicación de destino, determinar si la ventana creada es un ejemplo de una ventana de destino al comparar la información de creación de ventana con un perfil de ventana de destino asociado a la aplicación de destino; y
    medios para, en respuesta a una determinación de que la ventana creada es un ejemplo de la ventana de destino, capturar datos de evento a partir de la ventana creada al detectar un cambio de estado de un estado asociado con un elemento de la ventana;
    en el cual la captura de datos de evento también comprende el almacenamiento de información de ventana capturada en una estructura de datos asociada con un evento de acuerdo con un esquema de evento, y la indexación y el almacenamiento del evento.
  18. 18. Un medio legible por ordenador portador de un código de programa para controlar que un ordenador lleve a cabo el método de cualquiera de las reivindicaciones 1 a 16.
ES05712722T 2004-03-31 2005-02-04 Componente de captura basado en perfiles para controlar los eventos en aplicaciones Active ES2421141T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US814773 2004-03-31
US10/814,773 US7941439B1 (en) 2004-03-31 2004-03-31 Methods and systems for information capture
PCT/US2005/003386 WO2005103900A1 (en) 2004-03-31 2005-02-04 Profile based capture component for monitoring events in applications

Publications (1)

Publication Number Publication Date
ES2421141T3 true ES2421141T3 (es) 2013-08-29

Family

ID=34960517

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05712722T Active ES2421141T3 (es) 2004-03-31 2005-02-04 Componente de captura basado en perfiles para controlar los eventos en aplicaciones

Country Status (7)

Country Link
US (2) US7941439B1 (es)
EP (1) EP1745379B1 (es)
KR (1) KR100952379B1 (es)
CN (2) CN100428182C (es)
CA (1) CA2560747C (es)
ES (1) ES2421141T3 (es)
WO (1) WO2005103900A1 (es)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161622A1 (en) * 2001-04-13 2006-07-20 Elaine Montgomery Methods and apparatuses for selectively sharing a portion of a display for application based screen sampling using direct draw applications
US7707255B2 (en) 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US8954420B1 (en) 2003-12-31 2015-02-10 Google Inc. Methods and systems for improving a search ranking using article information
US20050149498A1 (en) * 2003-12-31 2005-07-07 Stephen Lawrence Methods and systems for improving a search ranking using article information
US8099407B2 (en) 2004-03-31 2012-01-17 Google Inc. Methods and systems for processing media files
US8161053B1 (en) 2004-03-31 2012-04-17 Google Inc. Methods and systems for eliminating duplicate events
US8386728B1 (en) 2004-03-31 2013-02-26 Google Inc. Methods and systems for prioritizing a crawl
US7333976B1 (en) 2004-03-31 2008-02-19 Google Inc. Methods and systems for processing contact information
US8346777B1 (en) 2004-03-31 2013-01-01 Google Inc. Systems and methods for selectively storing event data
US8631076B1 (en) 2004-03-31 2014-01-14 Google Inc. Methods and systems for associating instant messenger events
US8275839B2 (en) 2004-03-31 2012-09-25 Google Inc. Methods and systems for processing email messages
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
JP2006065547A (ja) * 2004-08-26 2006-03-09 Kyocera Corp 携帯端末、コンピュータの制御方法及びプログラム
US8504565B2 (en) * 2004-09-09 2013-08-06 William M. Pitts Full text search capabilities integrated into distributed file systems— incrementally indexing files
US8219807B1 (en) 2004-12-17 2012-07-10 Novell, Inc. Fine grained access control for linux services
US8271785B1 (en) 2004-12-20 2012-09-18 Novell, Inc. Synthesized root privileges
US8214398B1 (en) 2005-02-16 2012-07-03 Emc Corporation Role based access controls
US8074214B2 (en) 2005-05-19 2011-12-06 Oracle International Corporation System for creating a customized software installation on demand
US8352935B2 (en) 2005-05-19 2013-01-08 Novell, Inc. System for creating a customized software distribution based on user requirements
US8239882B2 (en) 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
EP1760043A1 (en) 2005-09-06 2007-03-07 ETH Zürich, ETH Transfer Reducing flame spray pyrolysis method for the production of metal, non-oxidic, ceramic and reduced metal oxide powders and nano-powders
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US7895223B2 (en) * 2005-11-29 2011-02-22 Cisco Technology, Inc. Generating search results based on determined relationships between data objects and user connections to identified destinations
US7478182B2 (en) * 2006-01-31 2009-01-13 Schweig Marc E Keyboard, mouse, and video (KVM) session capture system that stores and can playback portions of live KVM session via forensic capture module
US8676973B2 (en) * 2006-03-07 2014-03-18 Novell Intellectual Property Holdings, Inc. Light-weight multi-user browser
US8131747B2 (en) 2006-03-15 2012-03-06 The Invention Science Fund I, Llc Live search with use restriction
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US8185605B2 (en) * 2006-07-18 2012-05-22 Cisco Technology, Inc. Methods and apparatuses for accessing an application on a remote device
US7577718B2 (en) * 2006-07-31 2009-08-18 Microsoft Corporation Adaptive dissemination of personalized and contextually relevant information
US20090171866A1 (en) * 2006-07-31 2009-07-02 Toufique Harun System and method for learning associations between logical objects and determining relevance based upon user activity
US7685199B2 (en) * 2006-07-31 2010-03-23 Microsoft Corporation Presenting information related to topics extracted from event classes
US7849079B2 (en) * 2006-07-31 2010-12-07 Microsoft Corporation Temporal ranking of search results
US8780925B2 (en) 2006-08-17 2014-07-15 Fonality, Inc. Mobile use of a PBX system
US8732314B2 (en) 2006-08-21 2014-05-20 Cisco Technology, Inc. Generation of contact information based on associating browsed content to user actions
US7730480B2 (en) * 2006-08-22 2010-06-01 Novell, Inc. System and method for creating a pattern installation by cloning software installed another computer
US7721154B1 (en) * 2006-09-05 2010-05-18 Parasoft Corporation System and method for software run-time testing
US20080071864A1 (en) * 2006-09-14 2008-03-20 International Business Machines Corporation System and method for user interest based search index optimization
JP2008102911A (ja) * 2006-09-19 2008-05-01 Ricoh Co Ltd 情報処理装置、情報処理方法、プログラム及び記録媒体
US20080082820A1 (en) * 2006-10-03 2008-04-03 Motorola, Inc. Method and apparatus for determining availability of a remote party based on interaction with coupled devices
US8693659B2 (en) 2007-03-09 2014-04-08 Fonality, Inc. System and method for centralized presence management of local and remote users
US8098810B2 (en) 2007-03-09 2012-01-17 Fonality, Inc. Intelligent presence management in a communication routing system
US20080270450A1 (en) * 2007-04-30 2008-10-30 Alistair Veitch Using interface events to group files
US8379832B1 (en) 2007-05-03 2013-02-19 Fonality, Inc. Universal queuing for inbound communications
US9021416B2 (en) * 2007-05-16 2015-04-28 Accenture Global Service Limited Recommended application evaluation system
WO2008146341A1 (ja) * 2007-05-25 2008-12-04 Fujitsu Limited 業務フロー図生成プログラム、業務フロー図生成装置および業務フロー図生成方法
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8484578B2 (en) 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US10097695B2 (en) 2007-08-10 2018-10-09 Fonality, Inc. System and method for providing carrier-independent VoIP communication
US7818324B1 (en) * 2007-11-14 2010-10-19 Google Inc. Searching indexed and non-indexed resources for content
US20090235267A1 (en) * 2008-03-13 2009-09-17 International Business Machines Corporation Consolidated display of resource performance trends
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US20090327915A1 (en) * 2008-06-27 2009-12-31 International Business Machines Corporation Automatic GUI Reconfiguration Based On User Preferences
CN102113004B (zh) * 2008-07-31 2014-03-12 惠普开发有限公司 采集因特网内容
US8700072B2 (en) 2008-12-23 2014-04-15 At&T Mobility Ii Llc Scalable message fidelity
US8799820B2 (en) * 2008-12-23 2014-08-05 At&T Mobility Ii Llc Dynamically scaled messaging content
US8719386B2 (en) 2009-01-08 2014-05-06 Fonality, Inc. System and method for providing configuration synchronicity
US9443244B2 (en) 2009-03-16 2016-09-13 Fonality, Inc. System and method for utilizing customer data in a communication system
US10318922B2 (en) 2009-03-16 2019-06-11 Fonality, Inc. System and method for automatic insertion of call intelligence in an information system
US8799353B2 (en) 2009-03-30 2014-08-05 Josef Larsson Scope-based extensibility for control surfaces
US8396964B2 (en) * 2009-05-13 2013-03-12 International Business Machines Corporation Computer application analysis
US8713094B2 (en) * 2009-11-21 2014-04-29 Michael-Anthony W. Lisboa Event-associating software application for accessing digital media
US20110289117A1 (en) * 2010-05-19 2011-11-24 International Business Machines Corporation Systems and methods for user controllable, automated recording and searching of computer activity
US8392452B2 (en) 2010-09-03 2013-03-05 Hulu Llc Method and apparatus for callback supplementation of media program metadata
US8957900B2 (en) * 2010-12-13 2015-02-17 Microsoft Corporation Coordination of animations across multiple applications or processes
US9110743B2 (en) * 2010-12-21 2015-08-18 Microsoft Technology Licensing, Llc Extensible system action for sharing while remaining in context
CN102024063A (zh) * 2011-01-11 2011-04-20 宇龙计算机通信科技(深圳)有限公司 自动搜索方法和移动通信终端
US9256510B2 (en) 2011-06-09 2016-02-09 International Business Machines Corporation Automatic rules based capturing of graphical objects for specified applications
CN102880618A (zh) 2011-07-15 2013-01-16 国际商业机器公司 用于网页文档搜索的方法及系统
CN102279786B (zh) * 2011-08-25 2015-11-25 百度在线网络技术(北京)有限公司 一种监测应用程序有效访问量的方法及装置
US9069498B2 (en) 2011-09-12 2015-06-30 Microsoft Technology Licensing, Llc Presenting devices as applications
CN102508857B (zh) * 2011-09-29 2013-10-02 暨南大学 一种基于事件关联的桌面云搜索方法
CN103513972B (zh) * 2012-06-25 2017-06-27 联想(北京)有限公司 显示方法和电子设备
US9507513B2 (en) 2012-08-17 2016-11-29 Google Inc. Displaced double tap gesture
US8954467B2 (en) * 2012-11-29 2015-02-10 Citrix Systems, Inc. Systems and methods for automatically associating communication streams with a file presented during a meeting
FR2999975B1 (fr) 2012-12-20 2015-02-27 Michelin & Cie Renfort metallique pret a l'emploi dont la surface est pourvue de nanoparticules de sulfure metallique
KR20150075140A (ko) * 2013-12-24 2015-07-03 삼성전자주식회사 전자 장치의 메시지 제어 방법 및 그 전자 장치
FR3022491B1 (fr) 2014-06-18 2016-07-01 Michelin & Cie Bandage comportant un renfort, metallique ou metallise, graphenise
US9672340B2 (en) * 2014-08-07 2017-06-06 Lenovo (Singapore) Pte. Ltd Secure handwriting input for password fields
US10049473B2 (en) * 2015-04-27 2018-08-14 Splunk Inc Systems and methods for providing for third party visualizations
US20170251072A1 (en) * 2015-10-22 2017-08-31 Symantec Corporation System and method for annotating client-server transactions
US10616280B2 (en) 2017-10-25 2020-04-07 Bank Of America Corporation Network security system with cognitive engine for dynamic automation
US10659482B2 (en) 2017-10-25 2020-05-19 Bank Of America Corporation Robotic process automation resource insulation system
US10437984B2 (en) 2017-10-26 2019-10-08 Bank Of America Corporation Authentication protocol elevation triggering system
US10503627B2 (en) 2017-10-30 2019-12-10 Bank Of America Corporation Robotic process automation enabled file dissection for error diagnosis and correction
US10686684B2 (en) 2017-11-02 2020-06-16 Bank Of America Corporation Individual application flow isotope tagging within a network infrastructure
US10575231B2 (en) 2017-11-03 2020-02-25 Bank Of America Corporation System for connection channel adaption using robotic automation
US10606687B2 (en) 2017-12-04 2020-03-31 Bank Of America Corporation Process automation action repository and assembler
CN109032907B (zh) * 2018-07-19 2020-11-03 清华大学 面向设备应用的数据监控方法及系统
CN110765079B (zh) * 2018-07-27 2022-09-20 国信优易数据股份有限公司 一种表格信息的搜索方法及装置
FR3105788A1 (fr) 2019-12-27 2021-07-02 L'oreal Procede de preparation de particules enrobees d’oxyde de silicium par pyrolyse par projection de flamme
FR3105787B1 (fr) 2019-12-27 2022-03-25 Oreal Procede de preparation de particules d’oxyde de zinc enrobees par pyrolyse par projection de flamme
FR3105789B1 (fr) 2019-12-27 2024-01-12 Oreal Particules d’oxyde de metal enrobees d’oxyde de terre rare et son procede de preparation par pyrolyse par projection de flamme
US11537363B2 (en) * 2020-01-31 2022-12-27 Salesforce.Com, Inc. User interface migration using intermediate user interfaces
FR3116434B1 (fr) 2020-11-24 2022-12-02 Oreal Utilisation d’un oxyde métallique particulier pour la photoconversion de composés organiques sur les matières kératiniques
CN112433698A (zh) * 2020-11-30 2021-03-02 上海米哈游天命科技有限公司 一种资源展示方法、装置、电子设备及存储介质
FR3130563A1 (fr) 2021-12-21 2023-06-23 L'oreal Particules colorantes d’oxydes et de sous-oxydes de metaux enrobees, et leur preparation par pyrolyse par projection de flamme
FR3130789A1 (fr) 2021-12-21 2023-06-23 L'oreal Particules de sous-oxydes de cerium enrobees et leur preparation par pyrolyse par projection de flamme
FR3130566A1 (fr) 2021-12-21 2023-06-23 L'oreal Particules d’oxydes de metaux et de phosphore enrobees, et leur preparation par pyrolyse par projection de flamme

Family Cites Families (229)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US620900A (en) * 1899-03-14 engelsmann
US4410957A (en) * 1980-11-20 1983-10-18 International Business Machines Corporation Keystroke queueing system
US6978277B2 (en) 1989-10-26 2005-12-20 Encyclopaedia Britannica, Inc. Multimedia search system
US5305205A (en) * 1990-10-23 1994-04-19 Weber Maria L Computer-assisted transcription apparatus
US5321838A (en) * 1991-02-28 1994-06-14 Hensley Billy W Event capturing for computer software evaluation
US5555346A (en) 1991-10-04 1996-09-10 Beyond Corporated Event-driven rule-based messaging system
US5280612A (en) 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
JPH06237300A (ja) 1992-12-23 1994-08-23 American Teleph & Telegr Co <Att> 電気通信網内における位置に固有なメッセージサービス
JP3147572B2 (ja) 1993-03-22 2001-03-19 株式会社日立製作所 プログラム生成方法
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US5623652A (en) 1994-07-25 1997-04-22 Apple Computer, Inc. Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network
US5592378A (en) 1994-08-19 1997-01-07 Andersen Consulting Llp Computerized order entry system and method
JP2626598B2 (ja) 1994-11-25 1997-07-02 日本電気株式会社 グラフィカルユーザインタフェースを有する対話システムの操作性評価装置
US5748954A (en) 1995-06-05 1998-05-05 Carnegie Mellon University Method for searching a queued and ranked constructed catalog of files stored on a network
US5701469A (en) 1995-06-07 1997-12-23 Microsoft Corporation Method and system for generating accurate search results using a content-index
US5907836A (en) 1995-07-31 1999-05-25 Kabushiki Kaisha Toshiba Information filtering apparatus for selecting predetermined article from plural articles to present selected article to user, and method therefore
US6477585B1 (en) 1995-08-18 2002-11-05 International Business Machines Corporation Filter mechanism for an event management service
US5881315A (en) 1995-08-18 1999-03-09 International Business Machines Corporation Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive
US5742816A (en) 1995-09-15 1998-04-21 Infonautics Corporation Method and apparatus for identifying textual documents and multi-mediafiles corresponding to a search topic
US6115802A (en) 1995-10-13 2000-09-05 Sun Mircrosystems, Inc. Efficient hash table for use in multi-threaded environments
US5781192A (en) * 1996-01-16 1998-07-14 Canon Information Systems, Inc. Data transfer system
US5964839A (en) 1996-03-29 1999-10-12 At&T Corp System and method for monitoring information flow and performing data collection
US5845300A (en) 1996-06-05 1998-12-01 Microsoft Corporation Method and apparatus for suggesting completions for a partially entered data item based on previously-entered, associated data items
US6581056B1 (en) 1996-06-27 2003-06-17 Xerox Corporation Information retrieval system providing secondary content analysis on collections of information objects
US5961610A (en) 1996-08-13 1999-10-05 General Electric Company Systems, methods and apparatus for generating and controlling display of medical images
GB2331166B (en) 1997-11-06 2002-09-11 Ibm Database search engine
US6199073B1 (en) 1997-04-21 2001-03-06 Ricoh Company, Ltd. Automatic archiving of documents during their transfer between a peripheral device and a processing device
JP3008872B2 (ja) 1997-01-08 2000-02-14 日本電気株式会社 Guiシステム自動操作装置および操作マクロ実行装置
US5872976A (en) 1997-04-01 1999-02-16 Landmark Systems Corporation Client-based system for monitoring the performance of application programs
US6006222A (en) 1997-04-25 1999-12-21 Culliss; Gary Method for organizing information
US6282548B1 (en) 1997-06-21 2001-08-28 Alexa Internet Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata
US6353929B1 (en) 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US5893093A (en) 1997-07-02 1999-04-06 The Sabre Group, Inc. Information search and retrieval with geographical coordinates
US6078916A (en) 1997-08-01 2000-06-20 Culliss; Gary Method for organizing information
US6182068B1 (en) 1997-08-01 2001-01-30 Ask Jeeves, Inc. Personalized search methods
US6023977A (en) * 1997-08-01 2000-02-15 Acuson Corporation Ultrasonic imaging aberration correction system and method
US6014665A (en) 1997-08-01 2000-01-11 Culliss; Gary Method for organizing information
US6865715B2 (en) 1997-09-08 2005-03-08 Fujitsu Limited Statistical method for extracting, and displaying keywords in forum/message board documents
US5956722A (en) 1997-09-23 1999-09-21 At&T Corp. Method for effective indexing of partially dynamic documents
US6073130A (en) 1997-09-23 2000-06-06 At&T Corp. Method for improving the results of a search in a structured database
US6779030B1 (en) 1997-10-06 2004-08-17 Worldcom, Inc. Intelligent network
US5970249A (en) 1997-10-06 1999-10-19 Sun Microsystems, Inc. Method and apparatus for performing byte-code optimization during pauses
US6236768B1 (en) 1997-10-14 2001-05-22 Massachusetts Institute Of Technology Method and apparatus for automated, context-dependent retrieval of information
US6061678A (en) 1997-10-31 2000-05-09 Oracle Corporation Approach for managing access to large objects in database systems using large object indexes
US6269369B1 (en) 1997-11-02 2001-07-31 Amazon.Com Holdings, Inc. Networked personal contact manager
SG118132A1 (en) 1997-11-13 2006-01-27 Hyperspace Communications Inc File transfer system
US6236978B1 (en) 1997-11-14 2001-05-22 New York University System and method for dynamic profiling of users in one-to-one applications
US6055579A (en) 1997-11-17 2000-04-25 Silicon Graphics, Inc. Distributed control and synchronization of multiple data processors using flexible command queues
US6289342B1 (en) 1998-01-05 2001-09-11 Nec Research Institute, Inc. Autonomous citation indexing and literature browsing using citation context
US7233948B1 (en) 1998-03-16 2007-06-19 Intertrust Technologies Corp. Methods and apparatus for persistent control and protection of content
US7372976B2 (en) 1998-04-16 2008-05-13 Digimarc Corporation Content indexing and searching using content identifiers and associated metadata
US6347374B1 (en) 1998-06-05 2002-02-12 Intrusion.Com, Inc. Event detection
US6263348B1 (en) 1998-07-01 2001-07-17 Serena Software International, Inc. Method and apparatus for identifying the existence of differences between two files
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6275820B1 (en) 1998-07-16 2001-08-14 Perot Systems Corporation System and method for integrating search results from heterogeneous information resources
US6226630B1 (en) 1998-07-22 2001-05-01 Compaq Computer Corporation Method and apparatus for filtering incoming information using a search engine and stored queries defining user folders
US6119147A (en) 1998-07-28 2000-09-12 Fuji Xerox Co., Ltd. Method and system for computer-mediated, multi-modal, asynchronous meetings in a virtual space
RU2138076C1 (ru) 1998-09-14 1999-09-20 Закрытое акционерное общество "МедиаЛингва" Система поиска информации в компьютерной сети
US7256770B2 (en) * 1998-09-14 2007-08-14 Microsoft Corporation Method for displaying information responsive to sensing a physical presence proximate to a computer input device
IL128935A (en) 1998-09-18 2003-10-31 Direct & Clear Inc Communication method and system utilizing a specific communication code
US6275957B1 (en) 1998-09-21 2001-08-14 Microsoft Corporation Using query language for provider and subscriber registrations
US6363373B1 (en) 1998-10-01 2002-03-26 Microsoft Corporation Method and apparatus for concept searching using a Boolean or keyword search engine
US6380924B1 (en) * 1998-10-22 2002-04-30 Young Yee Mouse/keyboard capture recorder (MCR) apparatus and methodology
US6446076B1 (en) 1998-11-12 2002-09-03 Accenture Llp. Voice interactive web-based agent system responsive to a user location for prioritizing and formatting information
US20030097361A1 (en) 1998-12-07 2003-05-22 Dinh Truong T Message center based desktop systems
US6826553B1 (en) 1998-12-18 2004-11-30 Knowmadic, Inc. System for providing database functions for multiple internet sources
US6349299B1 (en) 1998-12-24 2002-02-19 International Business Machines Corporation System and method for storing electronic contact information into an electronic address book
US6199067B1 (en) 1999-01-20 2001-03-06 Mightiest Logicon Unisearch, Inc. System and method for generating personalized user profiles and for utilizing the generated user profiles to perform adaptive internet searches
US6341371B1 (en) 1999-02-23 2002-01-22 International Business Machines Corporation System and method for optimizing program execution in a computer system
JP4098435B2 (ja) 1999-03-12 2008-06-11 富士通株式会社 情報管理装置及びデータ生成方法並びに情報管理プログラムを格納したコンピュータ読取り可能な記録媒体
JP2003504899A (ja) * 1999-03-15 2003-02-04 インデックス システムズ インコーポレイテッド ミニガイド実装のためのシステムと方法
US6401239B1 (en) 1999-03-22 2002-06-04 B.I.S. Advanced Software Systems Ltd. System and method for quick downloading of electronic files
US6490577B1 (en) 1999-04-01 2002-12-03 Polyvista, Inc. Search engine with user activity memory
US6175830B1 (en) 1999-05-20 2001-01-16 Evresearch, Ltd. Information management, retrieval and display system and associated method
US7225182B2 (en) 1999-05-28 2007-05-29 Overture Services, Inc. Recommending search terms using collaborative filtering and web spidering
US6467052B1 (en) 1999-06-03 2002-10-15 Microsoft Corporation Method and apparatus for analyzing performance of data processing system
US6592627B1 (en) 1999-06-10 2003-07-15 International Business Machines Corporation System and method for organizing repositories of semi-structured documents such as email
US6560655B1 (en) 1999-06-22 2003-05-06 Microsoft Corporation Synchronization manager for standardized synchronization of separate programs
US6873982B1 (en) 1999-07-16 2005-03-29 International Business Machines Corporation Ordering of database search results based on user feedback
JP3791879B2 (ja) 1999-07-19 2006-06-28 富士通株式会社 文書要約装置およびその方法
US6853950B1 (en) 1999-07-20 2005-02-08 Newsedge Corporation System for determining changes in the relative interest of subjects
US6631345B1 (en) * 1999-08-12 2003-10-07 International Business Machines Corporation Recording, storing, and emulating user interaction events
US6532023B1 (en) 1999-08-12 2003-03-11 International Business Machines Corporation Recording selected applet events of a user interaction sequence
US6513036B2 (en) 1999-08-13 2003-01-28 Mindpass A/S Method and apparatus for searching and presenting search result from one or more information sources based on context representations selected from the group of other users
US6321228B1 (en) 1999-08-31 2001-11-20 Powercast Media, Inc. Internet search system for retrieving selected results from a previous search
US6681247B1 (en) 1999-10-18 2004-01-20 Hrl Laboratories, Llc Collaborator discovery method and system
US6526405B1 (en) 1999-12-17 2003-02-25 Microsoft Corporation Determining similarity between event types in sequences
US6480837B1 (en) 1999-12-16 2002-11-12 International Business Machines Corporation Method, system, and program for ordering search results using a popularity weighting
US6981040B1 (en) 1999-12-28 2005-12-27 Utopy, Inc. Automatic, personalized online information and product services
US6957229B1 (en) 2000-01-10 2005-10-18 Matthew Graham Dyor System and method for managing personal information
US6799199B1 (en) 2000-01-11 2004-09-28 The Relegence Corporation Media monitor system
US6834308B1 (en) 2000-02-17 2004-12-21 Audible Magic Corporation Method and apparatus for identifying media content presented on a media playing device
US6877027B1 (en) 2000-02-19 2005-04-05 Hewlett-Packard Development Company, L.P. System and method for providing synchronization verification of multiple applications across remote systems
CN1310395A (zh) * 2000-02-24 2001-08-29 英业达股份有限公司 登记库的动态监控方法
US6691175B1 (en) 2000-02-25 2004-02-10 Sun Microsystems, Inc. Method and apparatus for managing data propagation between software modules
US6901378B1 (en) 2000-03-02 2005-05-31 Corbis Corporation Method and system for automatically displaying an image and a product in a page based on contextual interaction and metadata
AUPQ599700A0 (en) 2000-03-03 2000-03-23 Super Internet Site System Pty Ltd On-line geographical directory
US20020049608A1 (en) 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
US6728763B1 (en) 2000-03-09 2004-04-27 Ben W. Chen Adaptive media streaming server for playing live and streaming media content on demand through web client's browser with no additional software or plug-ins
US6665715B1 (en) 2000-04-03 2003-12-16 Infosplit Inc Method and systems for locating geographical locations of online users
US6684250B2 (en) 2000-04-03 2004-01-27 Quova, Inc. Method and apparatus for estimating a geographic location of a networked entity
GB2361555A (en) 2000-04-17 2001-10-24 Apama Inc Method of evaluating queries against received event information
US6564213B1 (en) 2000-04-18 2003-05-13 Amazon.Com, Inc. Search query autocompletion
WO2001084302A2 (en) 2000-05-02 2001-11-08 Sun Microsystems, Inc. Event service method and system
US6697838B1 (en) 2000-05-03 2004-02-24 Software Leader, Llc Method and system for annotating information resources in connection with browsing, in both connected and disconnected states
US6879691B1 (en) 2000-05-12 2005-04-12 Bluetie, Inc. Information autocompletion system
GB0012354D0 (en) 2000-05-22 2000-07-12 Nokia Networks Oy A method and system for providing location dependent information
KR100804908B1 (ko) 2000-05-30 2008-02-20 코키 우치야마 지식 서비스를 제공하는 분산 모니터링 시스템
US6711572B2 (en) 2000-06-14 2004-03-23 Xosoft Inc. File system for distributing content in a data network and related methods
JP2004531780A (ja) 2000-06-22 2004-10-14 マイクロソフト コーポレーション 分散型コンピューティングサービスプラットフォーム
GB0016974D0 (en) 2000-07-12 2000-08-30 Univ Salford The Document retrieval system
US7035852B2 (en) 2000-07-21 2006-04-25 International Business Machines Corporation Implementing a message queuing interface (MQI) indexed queue support that adds a key to the index on put commit
US7080073B1 (en) 2000-08-18 2006-07-18 Firstrain, Inc. Method and apparatus for focused crawling
US7146404B2 (en) 2000-08-22 2006-12-05 Colloquis, Inc. Method for performing authenticated access to a service on behalf of a user
US6907577B2 (en) * 2000-09-06 2005-06-14 Trace Tervo System and method for accessing screen fields, functions and programs using a simple single key stroke
US6934740B1 (en) 2000-09-19 2005-08-23 3Com Corporation Method and apparatus for sharing common data objects among multiple applications in a client device
US6614729B2 (en) 2000-09-26 2003-09-02 David D. Griner System and method of creating digital recordings of live performances
US20020042789A1 (en) 2000-10-04 2002-04-11 Zbigniew Michalewicz Internet search engine with interactive search criteria construction
US7680672B2 (en) 2000-10-20 2010-03-16 Adobe Systems, Incorporated Event collection architecture
US7376640B1 (en) 2000-11-14 2008-05-20 At&T Delaware Intellectual Property, Inc. Method and system for searching an information retrieval system according to user-specified location information
US20020073076A1 (en) 2000-12-11 2002-06-13 Yongjie Xu System and method for enabling off-line database functionality
US7136881B2 (en) 2000-12-15 2006-11-14 International Business Machines Corporation Method and system for processing directory events
US7143088B2 (en) 2000-12-15 2006-11-28 The Johns Hopkins University Dynamic-content web crawling through traffic monitoring
US7440943B2 (en) 2000-12-22 2008-10-21 Xerox Corporation Recommender system and method
US6985913B2 (en) 2000-12-28 2006-01-10 Casio Computer Co. Ltd. Electronic book data delivery apparatus, electronic book device and recording medium
US6983310B2 (en) 2000-12-29 2006-01-03 International Business Machines Corporation System and method for providing search capabilties on a wireless device
US6772143B2 (en) 2001-01-02 2004-08-03 Sprint Spectrum L.P. Method and system for managing messages
US6766475B2 (en) * 2001-01-04 2004-07-20 International Business Machines Corporation Method and apparatus for exercising an unknown program with a graphical user interface
US20020091972A1 (en) 2001-01-05 2002-07-11 Harris David P. Method for predicting machine or process faults and automated system for implementing same
US6714939B2 (en) 2001-01-08 2004-03-30 Softface, Inc. Creation of structured data from plain text
US20020091568A1 (en) 2001-01-10 2002-07-11 International Business Machines Corporation Personalized profile based advertising system and method with integration of physical location using GPS
US6658423B1 (en) 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
US7168093B2 (en) 2001-01-25 2007-01-23 Solutionary, Inc. Method and apparatus for verifying the integrity and security of computer networks and implementation of counter measures
WO2002073413A2 (en) 2001-03-12 2002-09-19 Nice Systems Limited System and method for capturing, analyzing and recording screen events
US6850934B2 (en) 2001-03-26 2005-02-01 International Business Machines Corporation Adaptive search engine query
US6694353B2 (en) 2001-03-28 2004-02-17 Good Contacts.Com Method and system for automatically updating electronic mail address information within an electronic mail address database
WO2002079993A1 (en) 2001-03-29 2002-10-10 Reallegal.Com Methods for synchronizing on-line and off-line transcript projects
US7856420B2 (en) 2001-04-19 2010-12-21 Hewlett-Packard Development Company, L.P. Zero latency enterprise enriched publish/subscribe
US20020184406A1 (en) 2001-05-29 2002-12-05 International Business Machines Corporation Method and system for handling window-based graphical events
US7293014B2 (en) 2001-06-18 2007-11-06 Siebel Systems, Inc. System and method to enable searching across multiple databases and files using a single search
EP1410258A4 (en) 2001-06-22 2007-07-11 Inc Nervana SYSTEM AND METHOD FOR RECALLING, MANAGING, DELIVERING AND PRESENTING KNOWLEDGE
US20040230572A1 (en) 2001-06-22 2004-11-18 Nosa Omoigui System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation
US6802055B2 (en) * 2001-06-27 2004-10-05 Microsoft Corporation Capturing graphics primitives associated with any display object rendered to a graphical user interface
US20030028506A1 (en) 2001-06-29 2003-02-06 Lin Yu Deferred index building systems, methods and computer program products for storing temporally spaced apart bursts of data records in a database
KR20040024864A (ko) 2001-07-05 2004-03-22 컴퓨터 어소시에이츠 싱크, 인코포레이티드 비지니스 이벤트를 생성하고 전파하기 위한 시스템 및 방법
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US20030018521A1 (en) 2001-07-17 2003-01-23 International Business Machines Corporation Advertising based upon events reported from a GPS enabled event report system
US8285701B2 (en) 2001-08-03 2012-10-09 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator remote content crawler
US6820075B2 (en) 2001-08-13 2004-11-16 Xerox Corporation Document-centric system with auto-completion
US7082365B2 (en) 2001-08-16 2006-07-25 Networks In Motion, Inc. Point of interest spatial rating search method and system
JP2003067306A (ja) 2001-08-24 2003-03-07 Hitachi Ltd 電子メールの蓄積管理方法
US7076483B2 (en) 2001-08-27 2006-07-11 Xyleme Sa Ranking nodes in a graph
US7265858B2 (en) 2001-10-03 2007-09-04 Kabushiki Kaisha Toshiba Method and system to access address books
US7328242B1 (en) 2001-11-09 2008-02-05 Mccarthy Software, Inc. Using multiple simultaneous threads of communication
EP1459213B1 (en) 2001-11-15 2017-05-10 Good Technology Holdings Limited System and methods for asychronous synchronization
US7363590B2 (en) 2001-11-27 2008-04-22 International Business Machines Corporation Calendar bar interface for electronic mail interaction
US7043362B2 (en) 2001-12-21 2006-05-09 Garmin Ltd. PDA with integrated address book and electronic map waypoints
US20030123442A1 (en) 2001-12-27 2003-07-03 Drucker Benjamin T. Distributed usage metering of multiple networked devices
US6947924B2 (en) 2002-01-07 2005-09-20 International Business Machines Corporation Group based search engine generating search results ranking based on at least one nomination previously made by member of the user group where nomination system is independent from visitation system
US7249158B2 (en) 2002-01-28 2007-07-24 Canon Kabushiki Kaisha Address information editing apparatus and method, program, and storage medium
CN1186737C (zh) 2002-02-05 2005-01-26 国际商业机器公司 对尚未访问的网页进行基于路径的排队的方法和系统
US20030154071A1 (en) 2002-02-11 2003-08-14 Shreve Gregory M. Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents
US7343365B2 (en) 2002-02-20 2008-03-11 Microsoft Corporation Computer system architecture for automatic context associations
US7062592B2 (en) 2002-03-25 2006-06-13 Intel Corporation Selecting a queue for service in a queuing system
US7016919B2 (en) 2002-03-29 2006-03-21 Agilent Technologies, Inc. Enterprise framework and applications supporting meta-data and data traceability requirements
US7096255B2 (en) 2002-05-21 2006-08-22 Bellsouth Intellectual Property Corp. System and method for providing a roster list of temporary contacts having expiration periods designated by a user in an instant messaging environment
US20040203642A1 (en) 2002-05-31 2004-10-14 Peter Zatloukal Population of directory search results into a wireless mobile phone
US6968509B1 (en) * 2002-06-05 2005-11-22 Microsoft Corporation Recording of user-driven events within a computer application
US7016914B2 (en) 2002-06-05 2006-03-21 Microsoft Corporation Performant and scalable merge strategy for text indexing
US20030233366A1 (en) 2002-06-17 2003-12-18 Aspetuck Systems Inc. Database monitoring system with formatted report information delivery
US20040002959A1 (en) 2002-06-26 2004-01-01 International Business Machines Corporation Method and system for providing context sensitive support for data processing device user search requests
US20040003038A1 (en) 2002-06-27 2004-01-01 Microsoft Corporation Live content processing for online presentation
JP4452012B2 (ja) 2002-07-04 2010-04-21 ヒューレット・パッカード・カンパニー 文書の特有性評価方法
US20040031027A1 (en) 2002-08-08 2004-02-12 Hiltgen Daniel K. System for updating diverse file versions
US7099887B2 (en) 2002-08-08 2006-08-29 International Business Machines Corporation Hierarchical environments supporting relational schemas
US20070022155A1 (en) 2002-08-22 2007-01-25 Owens David H Method and system for integrating enterprise software applications with desktop software applications
EP1567928A4 (en) 2002-09-03 2008-04-30 X1 Technologies Llc DEVICES AND METHOD FOR FINDING DATA
US7657598B2 (en) 2002-09-17 2010-02-02 At&T Intellectual Property I, L.P. Address book for integrating email and instant messaging (IM)
US7933957B2 (en) 2002-09-17 2011-04-26 At&T Intellectual Property Ii, L.P. Tracking email and instant messaging (IM) thread history
WO2004027576A2 (en) 2002-09-18 2004-04-01 Netezza Corporation Asymmetric data streaming architecture having autonomous and asynchronous job processing unit
US20040064447A1 (en) 2002-09-27 2004-04-01 Simske Steven J. System and method for management of synonymic searching
US7177925B2 (en) 2002-09-27 2007-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Event management system
US7254573B2 (en) 2002-10-02 2007-08-07 Burke Thomas R System and method for identifying alternate contact information in a database related to entity, query by identifying contact information of a different type than was in query which is related to the same entity
US20040093317A1 (en) 2002-11-07 2004-05-13 Swan Joseph G. Automated contact information sharing
US7360096B2 (en) 2002-11-20 2008-04-15 Microsoft Corporation Securely processing client credentials used for Web-based access to resources
GB0228447D0 (en) 2002-12-06 2003-01-08 Nicholls Charles M System for detecting and interpreting transactions events or changes in computer systems
US20040133560A1 (en) 2003-01-07 2004-07-08 Simske Steven J. Methods and systems for organizing electronic documents
US20040187075A1 (en) 2003-01-08 2004-09-23 Maxham Jason G. Document management apparatus, system and method
TWI235333B (en) 2003-02-11 2005-07-01 Academia Sinica Real-time screen recording system
US20040193596A1 (en) 2003-02-21 2004-09-30 Rudy Defelice Multiparameter indexing and searching for documents
US7213235B2 (en) 2003-02-21 2007-05-01 Sap Ag Method for using a business model user interface
US7539699B2 (en) 2003-03-21 2009-05-26 Yahoo! Inc. Apparatus, system and method for use in generating and maintaining an electronic address book
US7188316B2 (en) 2003-03-24 2007-03-06 Microsoft Corporation System and method for viewing and editing multi-value properties
US7930301B2 (en) 2003-03-31 2011-04-19 Microsoft Corporation System and method for searching computer files and returning identified files and associated files
US7467390B2 (en) 2003-04-01 2008-12-16 International Business Machines Corporation Enhanced staged event-driven architecture
US7562367B1 (en) 2003-04-11 2009-07-14 Marvell Israel (M.I.S.L.) Ltd. Sorted-tree-based event queue for discrete event simulators
US7480716B2 (en) 2003-04-28 2009-01-20 International Business Machines Corporation Non-invasive collection of data
US7412491B2 (en) 2003-04-30 2008-08-12 International Business Machines Corporation Method and apparatus for enhancing instant messaging systems
US20040235520A1 (en) 2003-05-20 2004-11-25 Cadiz Jonathan Jay Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer
US7694223B2 (en) 2003-06-04 2010-04-06 Sony Computer Entertainment Inc. Methods and systems for recording user actions in computer programs
US7668888B2 (en) 2003-06-05 2010-02-23 Sap Ag Converting object structures for search engines
US8447775B2 (en) 2003-06-13 2013-05-21 Microsoft Corporation Database query user interface to assist in efficient and accurate query construction
US20040255301A1 (en) 2003-06-13 2004-12-16 Andrzej Turski Context association schema for computer system architecture
US7337448B1 (en) 2003-06-25 2008-02-26 Microsoft Corporation Address book clearinghouse interface system and method
US7162473B2 (en) 2003-06-26 2007-01-09 Microsoft Corporation Method and system for usage analyzer that determines user accessed sources, indexes data subsets, and associated metadata, processing implicit queries based on potential interest to users
US7577939B2 (en) 2003-06-27 2009-08-18 International Business Machines Corporation Method, system and program product for sharing source code over a network
US7565425B2 (en) 2003-07-02 2009-07-21 Amazon Technologies, Inc. Server architecture and methods for persistently storing and serving event data
US7890961B2 (en) 2003-08-29 2011-02-15 Yahoo! Inc. Method and apparatus for providing desktop application functionality in a client/server architecture
US7330536B2 (en) 2003-09-05 2008-02-12 Emc Corporation Message indexing and archiving
US20050060719A1 (en) * 2003-09-12 2005-03-17 Useractive, Inc. Capturing and processing user events on a computer system for recording and playback
US7454417B2 (en) 2003-09-12 2008-11-18 Google Inc. Methods and systems for improving a search ranking using population information
US7487235B2 (en) 2003-09-24 2009-02-03 Dell Products L.P. Dynamically varying a raid cache policy in order to optimize throughput
US7499974B2 (en) 2003-09-30 2009-03-03 International Business Machines Corporation Instant message user management
US7457872B2 (en) 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US8150923B2 (en) 2003-10-23 2012-04-03 Microsoft Corporation Schema hierarchy for electronic messages
US7240049B2 (en) 2003-11-12 2007-07-03 Yahoo! Inc. Systems and methods for search query processing using trend analysis
US20050114487A1 (en) 2003-11-12 2005-05-26 Jin Peng Notification framework and method of distributing notification
US7752210B2 (en) 2003-11-13 2010-07-06 Yahoo! Inc. Method of determining geographical location from IP address information
US7475406B2 (en) 2003-12-15 2009-01-06 International Business Machines Corporation Event notification structure for dynamically aggregated logical components
US7383307B2 (en) 2004-01-07 2008-06-03 International Business Machines Corporation Instant messaging windowing for topic threads
US7194451B2 (en) 2004-02-26 2007-03-20 Microsoft Corporation Database monitoring system
US7257822B1 (en) 2004-04-13 2007-08-14 Sun Microsystems Inc Method and system for address book application programming interface
US7543232B2 (en) 2004-10-19 2009-06-02 International Business Machines Corporation Intelligent web based help system
US7743048B2 (en) 2004-10-29 2010-06-22 Microsoft Corporation System and method for providing a geographic search function
US20060190470A1 (en) 2005-02-18 2006-08-24 Lemnotis Peter A Download, storage, and retrieval device
US7447706B2 (en) 2005-04-01 2008-11-04 Microsoft Corporation Method and system for generating an auto-completion list for a cascading style sheet selector
US20060288075A1 (en) 2005-06-15 2006-12-21 Chao-Hung Wu Electronic mailbox address book management system and method for the same
US20070016556A1 (en) 2005-07-13 2007-01-18 Ann Seong W Destination searching system and method
ATE548842T1 (de) 2005-07-27 2012-03-15 Sap Ag Serverrechner, client-einrichtung und webdienstimplementiertes verfahren zur datenverarbeitung

Also Published As

Publication number Publication date
US7941439B1 (en) 2011-05-10
CA2560747A1 (en) 2005-11-03
CN1934539A (zh) 2007-03-21
KR20060132946A (ko) 2006-12-22
US7680809B2 (en) 2010-03-16
CA2560747C (en) 2012-06-26
WO2005103900A8 (en) 2008-10-09
US20050246588A1 (en) 2005-11-03
CN101111836A (zh) 2008-01-23
WO2005103900A1 (en) 2005-11-03
CN100428182C (zh) 2008-10-22
EP1745379A1 (en) 2007-01-24
CN101111836B (zh) 2012-07-04
KR100952379B1 (ko) 2010-04-14
EP1745379B1 (en) 2013-04-10

Similar Documents

Publication Publication Date Title
ES2421141T3 (es) Componente de captura basado en perfiles para controlar los eventos en aplicaciones
JP4812747B2 (ja) 情報を取り込み抽出する方法及びシステム
US10180980B2 (en) Methods and systems for eliminating duplicate events
AU2005231112B2 (en) Methods and systems for structuring event data in a database for location and retrieval
US7333976B1 (en) Methods and systems for processing contact information
US9672232B1 (en) Systems and methods for selectively storing event data
JP6238331B2 (ja) ユーザアクションに基づく演算デバイスへの実行可能コンテンツの提供
US7707142B1 (en) Methods and systems for performing an offline search
US20050234929A1 (en) Methods and systems for interfacing applications with a search engine
US20050223061A1 (en) Methods and systems for processing email messages
US7412708B1 (en) Methods and systems for capturing information
US7680888B1 (en) Methods and systems for processing instant messenger messages
US7853606B1 (en) Alternate methods of displaying search results
CN110709870B (zh) 智能成员管理
US7581227B1 (en) Systems and methods of synchronizing indexes
US9959300B1 (en) Systems and methods for article location and retrieval
Laadan et al. Capture: A desktop display-centric text recorder