ES2767698T3 - Generación de representaciones gráficas de datos utilizando convenciones de representaciones múltiples - Google Patents

Generación de representaciones gráficas de datos utilizando convenciones de representaciones múltiples Download PDF

Info

Publication number
ES2767698T3
ES2767698T3 ES16169679T ES16169679T ES2767698T3 ES 2767698 T3 ES2767698 T3 ES 2767698T3 ES 16169679 T ES16169679 T ES 16169679T ES 16169679 T ES16169679 T ES 16169679T ES 2767698 T3 ES2767698 T3 ES 2767698T3
Authority
ES
Spain
Prior art keywords
nodes
graphical representation
rendering
representation
convention
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
ES16169679T
Other languages
English (en)
Inventor
Gilad Gray
Timothy Slatcher
Callum Rogers
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.)
Palantir Technologies Inc
Original Assignee
Palantir Technologies Inc
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 Palantir Technologies Inc filed Critical Palantir Technologies Inc
Application granted granted Critical
Publication of ES2767698T3 publication Critical patent/ES2767698T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • 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/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Image Generation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Un método que comprende: generar (305), utilizar un procesador de una máquina cliente, una representación gráfica de un conjunto de datos que utiliza una primera convención de representación, la representación gráfica del conjunto de datos comprende una vista de una pluralidad de nodos; recibir (315) la entrada del usuario que solicita un ajuste de escala de visualización para la representación gráfica, la entrada del usuario especifica un nivel de escala para ver la pluralidad de nodos; determinar (320), utilizando dicho procesador de dicha máquina cliente, que el nivel de escala especificado por la entrada del usuario está por encima de un umbral predefinido; y en respuesta a la determinación de que el nivel de escala está por encima del umbral predefinido, actualizar (330), utilizar dicho procesador de dicha máquina cliente, la representación gráfica del conjunto de datos utilizando una segunda convención de representación, la representación gráfica actualizada comprende una vista a escala del pluralidad de nodos; en el que la primera convención de representación implica el uso de un elemento de lienzo de lenguaje de modelado de hipertexto (HTML), en el que la segunda convención de representación implica nodos de representación en un modelo de objeto de dominio (DOM), y en el que un administrador establece el umbral predefinido para optimizar la calidad de la representación gráfica como se aprende al analizar la calidad de representación en varios niveles de escala para identificar un punto de interrupción en la calidad.

Description

DESCRIPCIÓN
Generación de representaciones gráficas de datos utilizando convenciones de representaciones múltiples Campo técnico
La materia objeto divulgada en este documento se refiere al procesamiento de datos. En particular, las realizaciones de ejemplo pueden relacionarse con técnicas para generar representaciones gráficas de datos.
Antecedentes
En la práctica convencional, existen varios enfoques para representar contenido dentro de los navegadores web, y cada enfoque individual tiene ciertas ventajas y desventajas. Por ejemplo, un enfoque tradicional implica la representación de contenido mediante el uso de estilos de hojas de estilo en cascada (CSS) para posicionar, dimensionar y colorear elementos del modelo de objeto de dominio regular (DOM). En este enfoque tradicional, el fondo del contenido puede representarse como una tabla y los elementos que se mueven libremente pueden superponerse en la parte superior de la tabla utilizando elementos posicionados. Sin embargo, el enfoque mencionado anteriormente puede volverse problemático cuando se procesa contenido como gráficos con una gran cantidad de nodos debido a la cantidad de recursos computacionales y de red consumidos al presentar el contenido de esta manera.
Otro enfoque tradicional empleado a menudo implica el uso de un elemento especializado dentro del lenguaje de marcado de hipertexto (HTML) llamado elemento de lienzo. Un elemento de lienzo es un elemento DOM único que consta de una región dibujable definida en HTML y proporciona una interfaz de programación para dibujar formas en el espacio ocupado por el nodo. Aunque los elementos del lienzo se pueden utilizar para crear gráficos, animaciones, juegos y otras composiciones de imágenes, la calidad de las imágenes detalladas producidas al presentar con elementos del lienzo es baja, y el texto representación puede ser difícil, si no imposible, de leer.
El documento US 2015/0106758 A1 divulga un sistema que representa una representación gráfica en cualquiera de las dos convenciones de representación dependiendo de un nivel de escala establecido por el usuario.
Mat Groves: “To DOM or not to DOM”, http7/web.archive.org/web/20130411035609/http://www.goodboydigital.com/todom-or-not-to-dom postula la toma de decisiones para representar con DOM o CANVAS dependiendo del rendimiento esperado.
Anónimo: “DOM vs. CANVAS”, http://web.archive.org/web/20130510031114/https7/ www.kirupa.com/html5/dom_vs_canvas.htm postula la toma de decisiones para representar con DOM o LONA junto a otras dependiendo de la complejidad de la visualización.
Breve descripción de los dibujos
La figura 1 es un diagrama de arquitectura que representa una plataforma de procesamiento de datos que tiene una arquitectura cliente-servidor configurada para intercambiar y representar gráficamente datos.
La figura 2 es un diagrama de bloques que ilustra varios módulos que comprenden una aplicación de gráficos, que se proporciona como parte de la plataforma de procesamiento de datos.
La figura 3 es un diagrama de flujo que ilustra un método para representar una representación gráfica de un conjunto de datos en vistas escaladas variadas.
Las figuras 4A-C son diagramas de interfaz que ilustran una representación gráfica de un único conjunto de datos a niveles de escala variados.
La figura 5 es un diagrama de flujo que ilustra un método para representar vistas de múltiples porciones de una representación gráfica de un conjunto de datos.
La figura 6A y 6B son diagramas de interfaz que ilustran vistas de múltiples porciones de una representación gráfica de un único conjunto de datos.
La figura 7 es una representación esquemática de una máquina en la forma de ejemplo de un sistema informático dentro del cual se puede ejecutar un conjunto de instrucciones para hacer que la máquina realice una o más de las metodologías discutidas aquí.
La invención se define por las reivindicaciones adjuntas.
Descripción detallada
Los aspectos de la presente divulgación se refieren a generar representaciones gráficas de datos.
Implican una aplicación de gráficos basada en navegador que utiliza una variedad de convenciones de representación diferentes en diferentes circunstancias para optimizar el rendimiento y disminuir los recursos computacionales y de red consumidos. Al utilizar diferentes convenciones de representación en la representación gráfica de un único conjunto de datos, la aplicación de representación gráfica puede evitar una serie de dificultades asociadas con cada convención de representación individual. Como ejemplo de lo anterior, la aplicación de gráficos puede emplear una primera convención de representación para representar un gráfico de un conjunto completo de datos. Un usuario que vea el gráfico puede hacer zoom en una porción específica del gráfico para ver esa porción con más detalle. Al determinar que el usuario ha ampliado el gráfico más allá de un punto de interrupción crítico (por ejemplo, un umbral definido por un administrador), la aplicación de gráficos puede utilizar una segunda convención de representación para representar una vista a escala (por ejemplo, acercar) de la parte específica de la gráfica. Los aspectos adicionales de la presente divulgación implican reutilizar o reciclar elementos gráficos para mejorar aún más el rendimiento de la aplicación de gráficos.
La figura 1 es un diagrama de arquitectura que representa un sistema 100 de red que tiene una arquitectura clienteservidor configurada para intercambiar y representar gráficamente datos. Mientras que el sistema 100 de red mostrado en la figura 1 emplea arquitectura cliente-servidor, el presente tema inventivo, por supuesto, no se limita a dicha arquitectura, y podría igualmente encontrar aplicación en un sistema de arquitectura dirigido por eventos, distribuido o de igual a igual, por ejemplo. Además, se apreciará que, aunque los diversos componentes funcionales del sistema 100 de red se discuten en el sentido singular, se pueden emplear múltiples instancias de uno o más de los diversos componentes funcionales.
El sistema 100 de red proporciona una serie de servicios de procesamiento de datos y gráficos a los usuarios. Como se muestra, el sistema 100 de red incluye un dispositivo 102 cliente en comunicación con una plataforma 104 de procesamiento de datos a través de una red 106. La plataforma 104 de procesamiento de datos comunica e intercambia datos con el dispositivo 102 cliente que se refiere a diversas funciones y aspectos asociados con el sistema 100 de red y sus usuarios. Del mismo modo, el dispositivo 106 cliente, que puede ser cualquiera de una variedad de tipos de dispositivos que incluye al menos una pantalla, un procesador y capacidades de comunicación que proporcionan acceso a la red 104 (por ejemplo, un teléfono inteligente, una tableta, un asistente digital personal (PDA), un dispositivo de navegación personal (PND), un ordenador portátil, una computadora de escritorio, una computadora portátil o netbook, o un dispositivo de computación portátil, puede ser operado por un usuario (por ejemplo, una persona) del sistema 100 de red para intercambiar datos con la plataforma 104 de procesamiento de datos a través de la red 102.
El dispositivo 102 cliente se comunica con la red 104 a través de una conexión por cable o inalámbrica. Por ejemplo, una o más porciones de la red 104 pueden comprender una red ad hoc, una intranet, una extranet, una red privada virtual (VPN), una red de área local (LAN), una LAN inalámbrica (WLAN), un área amplia Red (WAN), una WAN inalámbrica (WWAN), una Red de área metropolitana (MAN), una parte de Internet, una parte de la Red telefónica pública conmutada (PSTN), una red de teléfono celular, una red inalámbrica, una red de Fidelidad Inalámbrica (Wi-Fi®), una red de interoperabilidad mundial para acceso por microondas (WiMax), otro tipo de red o cualquier combinación adecuada de las mismas.
Los datos intercambiados entre el dispositivo 102 cliente y la plataforma 104 de procesamiento de datos pueden implicar funciones seleccionadas por el usuario disponibles a través de una o más interfaces de usuario (UI). Las IU pueden estar asociadas específicamente con un cliente 108 web (por ejemplo, un navegador), ejecutándose en el dispositivo 102 cliente y en comunicación con la plataforma 104 de procesamiento de datos.
Volviendo específicamente a la plataforma 104 de procesamiento de datos, un servidor 110 web está acoplado (por ejemplo, a través de interfaces cableadas o inalámbricas), y proporciona interfaces web a un servidor 112 de aplicaciones. El servidor 112 de aplicaciones aloja una o más aplicaciones (por ejemplo, aplicaciones web) que permiten a los usuarios utilizar diversas funciones y servicios de la plataforma 104 de procesamiento de datos. Por ejemplo, el servidor 112 de aplicaciones puede alojar una aplicación 114 de gráficos de datos que admite la representación de representaciones gráficas de conjuntos de datos. La aplicación 114 de gráficos puede ejecutarse y funcionar en el servidor 112 de aplicaciones, o el servidor 112 de aplicaciones puede proporcionar al dispositivo 102 cliente un conjunto de instrucciones (por ejemplo, código legible por ordenador) que hace que el cliente 108 web del dispositivo 102 cliente se ejecute y funcione la aplicación 114 de gráficos.
Un usuario de la plataforma 104 de procesamiento de datos puede especificar los conjuntos de datos que se representarán gráficamente utilizando la aplicación 114 de representación gráfica de datos. Estos conjuntos de datos pueden almacenarse, por ejemplo, en una base 118 de datos que está acoplada comunicativamente al servidor 114 de aplicaciones (por ejemplo, a través de interfaces cableadas o inalámbricas). La plataforma 104 de procesamiento de datos puede incluir además un servidor de base de datos (no mostrado) que facilita el acceso a la base 118 de datos. La base 118 de datos puede incluir múltiples bases de datos que pueden ser internas o externas a la plataforma 104 de procesamiento de datos. En algunos casos, un usuario puede especificar un conjunto de datos almacenado en un medio legible por máquina del dispositivo 102 cliente para la representación gráfica por la aplicación 114 de gráficos.
La figura 2 es un diagrama de bloques que ilustra varios módulos que comprenden la aplicación 114 de representación gráfica de datos, que se proporciona como parte de la plataforma 104 de procesamiento de datos.
Como lo entienden los artesanos expertos en la informática pertinente y las artes relacionadas con Internet, los módulos y motores ilustrados en la figura 2 representan un conjunto de instrucciones de software ejecutables y el hardware correspondiente (por ejemplo, memoria y procesador) para ejecutar las instrucciones. Para evitar oscurecer el tema inventivo con detalles innecesarios, varios componentes funcionales (por ejemplo, módulos y motores) que no son pertinentes para transmitir una comprensión del tema inventivo se han omitido de la figura 2. Sin embargo, un experto en la materia reconocerá fácilmente que la aplicación 114 de representación gráfica de datos puede soportar varios componentes funcionales adicionales para facilitar la funcionalidad adicional que no se describe específicamente en este documento. Además, los diversos módulos funcionales y motores representados en la figura 2 puede residir en un solo ordenador (por ejemplo, un dispositivo cliente), o puede distribuirse a través de varios ordenadores en varios arreglos, como arquitecturas basadas en la nube.
La aplicación 114 de gráficos de datos se muestra como que incluye un módulo 200 de interfaz, un módulo 205 de recuperación de datos y un motor 210 de representación, todos configurados para comunicarse entre sí (por ejemplo, a través de un bus, memoria compartida, un interruptor o interfaces de programación de aplicaciones (API)). Los módulos mencionados anteriormente de la aplicación 114 de gráficos de datos pueden, además, acceder a una o más bases de datos que forman parte de la plataforma 104 de procesamiento de datos (por ejemplo, la base 118 de datos), y cada uno de los módulos puede acceder a uno o más medios de almacenamiento legibles por ordenador del dispositivo 106 cliente.
El módulo 200 de interfaz es responsable de manejar las interacciones del usuario relacionadas con las funciones de la aplicación 114 de representación gráfica de datos. De acuerdo con lo anterior, el módulo 200 de interfaz puede proporcionar una serie de interfaces a los usuarios (por ejemplo, interfaces que son presentadas por el dispositivo 102 cliente) que permiten a los usuarios ver e interactuar con representaciones gráficas de datos. Con este fin, las interfaces proporcionadas por el módulo 200 de interfaz pueden incluir uno o más elementos de interfaz gráfica (por ejemplo, botones, ordenadores, interruptores, menús desplegables o controles deslizantes) que pueden manipularse a través de la entrada del usuario para realizar diversas operaciones asociadas con representaciones gráficas de datos. Por ejemplo, el módulo 200 de interfaz puede proporcionar elementos que permiten a los usuarios ajustar el nivel de escala de las representaciones gráficas, ajustar una vista de las representaciones gráficas para ver varias porciones diferentes de los datos en detalle, ajustar el tamaño o la posición de elementos gráficos, o para agregar, eliminar o editar elementos (por ejemplo, nodos o bordes) o aspectos de representaciones gráficas de datos. El módulo 200 de interfaz también recibe y procesa la entrada del usuario recibida a través de dichos elementos de interfaz.
El módulo 205 de recuperación de datos está configurado para recuperar datos para la representación gráfica. El módulo 205 de recuperación de datos puede obtener datos para representar desde una ubicación especificada por un usuario (por ejemplo, a través de una interfaz de usuario proporcionada por el módulo 200 de interfaz). En algunos casos, los datos pueden recuperarse de un componente de almacenamiento local del dispositivo 102 cliente. En otros casos, los datos pueden recuperarse de un dispositivo de almacenamiento en red (por ejemplo, la base 118 de datos) de la plataforma 104 de procesamiento de datos o un tercero servidor de fiesta El servidor 114 de aplicaciones puede proporcionar los datos que se deben presentar al dispositivo 102 cliente junto con las instrucciones legibles por ordenador que hacen que el dispositivo 102 cliente esté configurado para ejecutar y hacer funcionar la aplicación 114 de gráficos de datos.
El motor 210 de representación es responsable de la representación gráfica (por ejemplo, generación de gráficos) de datos. Las representaciones gráficas generadas por el motor 210 de representación incluyen múltiples nodos y múltiples bordes. Los bordes representan relaciones entre nodos, y dependiendo de los datos que se representan, los nodos pueden representar combinaciones de personas, lugares (por ejemplo, ubicaciones geográficas, sitios web o páginas web) o cosas (por ejemplo, contenido, eventos, aplicaciones).
El motor 210 de representación puede emplear una variedad de convenciones de representación diferentes en la representación de representaciones gráficas de datos. En particular, para conjuntos de datos con pocos nodos, el motor 210 de representación puede emplear una convención de representación que proporciona representaciones de alta calidad (por ejemplo, imágenes de alta calidad) de nodos junto con información textual detallada. Por ejemplo, el motor 210 de representación puede hacer que el cliente 108 web represente los nodos de la representación gráfica en el DOM HTML, que sobresale en la representación de imágenes, texto y sombras de alta calidad. Esto permite una representación gráfica más detallada cuando está cerca. En esta convención de representación, los estilos CSS pueden usarse para colorear, dimensionar y posicionar elementos correspondientes a nodos y bordes de una representación gráfica.
Para conjuntos de datos con una gran cantidad de nodos, el motor 210 de representación puede utilizar una convención de representación que sea capaz de representar una gran cantidad de nodos al tiempo que limita la cantidad de recursos consumidos al proporcionar representaciones minimalistas (por ejemplo, mapa de bits) de nodos de datos sin información adicional. Por ejemplo, el motor 210 de representación puede utilizar un elemento especializado de HTML tal como el elemento de lienzo para representar un gran número de nodos. El elemento de lienzo sobresale en los gráficos de mapa de bits y puede representar grandes cantidades de formas simples increíblemente rápido. Requiere menos memoria para cada forma individual que la representación DOM y, por lo tanto, puede manejar una escala de datos mucho mayor. Debido a que el elemento de lienzo da como resultado representaciones de menor calidad (por ejemplo, Imágenes de menor calidad) de nodos sin información textual adicional, los recursos computacionales y de red utilizados para la representación son inferiores a los necesarios para la representación de nodos utilizando otras convenciones de representación, como el DOM. Por lo tanto, ciertas convenciones de representación empleadas por el motor 210 de representación pueden ser más adecuadas y utilizadas para representar una gran cantidad de nodos, mientras que otras convenciones de representación pueden ser más adecuadas y utilizadas para representar una pequeña cantidad de nodos.
El motor 210 de representación puede, en algunos casos, alternar entre diferentes convenciones de representación al representar representaciones gráficas del mismo conjunto de datos. La convención de representación particular empleada puede depender del número de nodos que se van a representar, lo que, en algunos casos, puede ser función del nivel de escala especificado por el usuario para la representación gráfica. El “nivel de escala” se refiere al tamaño proporcional de los elementos en una representación gráfica relativa a una vista global sin escala de todo el conjunto de datos. Los expertos en la materia pueden reconocer que el nivel de escala mencionado anteriormente está asociado y puede ajustarse utilizando la funcionalidad de zoom (por ejemplo, la capacidad de acercar o alejar) comúnmente proporcionada a los usuarios en relación con la presentación de contenido, y también proporcionada por el módulo 200 de interfaz de usuario para usuarios de la aplicación 114 de gráficos.
Al aumentar el nivel de escala (por ejemplo, al acercar), los usuarios pueden investigar más a fondo porciones particulares de la representación gráfica del conjunto de datos. Por el contrario, al disminuir el nivel de escala (por ejemplo, alejándose), se proporciona a los usuarios una perspectiva global de elementos en la representación gráfica del conjunto de datos. De acuerdo con lo anterior, un ajuste al nivel de escala puede hacer que los elementos en la representación gráfica se agranden (por ejemplo, aumenten de tamaño) o se contraigan (por ejemplo, disminuyan de tamaño). El ajuste al nivel de escala también puede afectar el número de nodos procesados por el motor 210 de representación. Por ejemplo, un aumento especificado por el usuario en el nivel de escala puede dar como resultado que se presenten menos nodos en la pantalla del dispositivo 102 cliente porque el tamaño de la totalidad La representación gráfica en el nivel de escala especificado puede ser mayor que el tamaño de la pantalla. Para abordar los problemas anteriores presentados con los datos de representación en diferentes niveles de escala, el motor 210 de representación puede alternar entre convenciones de representación en respuesta a ajustes en el nivel de escala. Por ejemplo, al representar inicialmente una representación gráfica de datos, el motor 210 de representación utiliza una primera convención de representación (por ejemplo, el elemento de lienzo). En respuesta a un usuario que ajusta el nivel de escala para superar un umbral predefinido, el motor 210 de representación representa la representación gráfica utilizando una segunda convención de representación (por ejemplo, representar todos los nodos en DOM). La transición de la primera convención de representación a la segunda convención de representación puede incluir vistas de sincronización de las dos convenciones de representación. Las representaciones gráficas resultantes de la primera convención de representación incluyen representaciones de baja calidad (por ejemplo, una forma simple) de los nodos de datos y bordes sin información adicional, mientras que las representaciones gráficas resultantes de la segunda convención de representación incluyen representaciones de alta calidad de los nodos de datos (por ejemplo, imágenes o iconos) y bordes con información textual adicional (por ejemplo, una etiqueta, valores o atributos).
El motor 210 de representación puede analizar individualmente cada nodo en una representación gráfica para determinar si el nivel de escala excede el umbral predefinido, y representar cada nodo de acuerdo con dicho análisis. En otras palabras, el motor 210 de representación determina si se excede el nivel de escala por nodo. De acuerdo con lo anterior, el motor 210 de representación puede emplear diferentes convenciones de representación para representar nodos en la misma representación gráfica. Por ejemplo, una representación gráfica dada generada por el motor de representación puede incluir un primer grupo de nodos, que se representan de acuerdo con una primera convención de representación, representada simplemente con una forma o bloque, y un segundo grupo de nodos, que se representan de acuerdo con una segunda convención de representación, representada por iconos detallados (por ejemplo, archivos de imagen) con información textual adicional sobre los nodos.
Para reducir aún más la cantidad de recursos computacionales y de red involucrados en la representación de representaciones gráficas de datos, el motor 210 de representación también puede reciclar nodos de diferentes vistas de una representación gráfica particular de datos. Por ejemplo, antes de cambiar de una vista de una primera porción de los datos en la representación gráfica a una vista de una segunda porción de los datos, el motor 210 de representación puede almacenar copias de archivos de datos (por ejemplo, iconos o archivos de imágenes) utilizados para representar nodos. Al representar la vista de la segunda parte de los datos, el motor 210 de representación puede recuperar y reutilizar los archivos de datos para representar nodos en la segunda parte de los datos.
El motor 210 de representación puede utilizar máscaras de nodo para sincronizar nodos y bordes durante las animaciones debido a diseños y otras interacciones similares. En particular, el motor 210 de representación puede utilizar máscaras de nodo para proporcionar posiciones intermedias “visuales” de nodo a medida que los nodos se mueven por la pantalla, y al hacerlo, proporcionar la ubicación “real” en pantalla en lugar de la posición almacenada en la estructura de datos (por ejemplo, la posición final).
La figura 3 es un diagrama de flujo que ilustra un método 300 para representar una representación gráfica de un conjunto de datos en vistas escaladas variadas. El método 300 puede estar incorporado en instrucciones legibles por ordenador para la ejecución por uno o más procesadores, de modo que las operaciones del método 300 puedan ser realizadas en parte o en su totalidad por el dispositivo 102 cliente. En particular, el servidor 114 de aplicaciones puede transmitir instrucciones legibles para el dispositivo 102 cliente que, cuando son ejecutadas por el cliente 108 web, hacen que el dispositivo 102 cliente se configure especialmente para incluir los componentes funcionales (por ejemplo, módulos y motores) de la aplicación 114 de gráficos de datos. De acuerdo con lo anterior, el método 300 se describe a continuación a modo de ejemplo con referencia al mismo. Sin embargo, debe apreciarse que al menos algunas de las operaciones del método 300 pueden implementarse en varias otras configuraciones de hardware y no está destinado a limitarse al dispositivo 102 cliente. Por ejemplo, el servidor 114 puede realizar al menos algunas de las operaciones del método 300.
En la operación 305, el motor 210 de representación genera una representación gráfica inicial de un conjunto de datos utilizando una primera convención de representación. El usuario puede especificar el conjunto de datos a través de una interfaz proporcionada por el módulo 200 de interfaz, y puede recuperarse del almacenamiento local (por ejemplo, un medio legible por máquina del dispositivo 102 cliente) o de un dispositivo de almacenamiento en red (por ejemplo, la base 116 de datos) por el módulo 205 de recuperación de datos. La representación gráfica del conjunto de datos incluye una pluralidad de nodos y una pluralidad de bordes que representan relaciones entre los nodos. La representación gráfica inicial del conjunto de datos corresponde a una vista global del conjunto de datos, y como tal, la representación gráfica inicial del conjunto de datos puede incluir una gran cantidad de nodos y bordes. De acuerdo con lo anterior, la primera convención de representación empleada por el motor 210 de representación es una convención de representación adecuada para representar un gran número de nodos. Por ejemplo, el motor 210 de representación puede emplear una convención de representación tal como el elemento de lienzo de HTML que puede representar una gran cantidad de nodos sin ser demasiado oneroso en términos de recursos computacionales.
En la operación 310, el motor 210 de representación hace que la representación gráfica inicial se presente en una pantalla del dispositivo 102 cliente. Como ejemplo, la figura 4a es un diagrama de interfaz que ilustra una vista 400 global de una representación gráfica de un conjunto 402 de datos. La vista 400 global del conjunto 402 de datos es una vista sin escala (por ejemplo, nivel de escala cero) del conjunto de datos que proporciona una representación de todo el conjunto de datos ( por ejemplo, todos los nodos y bordes incluyeron el conjunto de datos). De acuerdo con lo anterior, la vista 400 global de la representación gráfica del conjunto de datos incluye una pluralidad de nodos 404 y una pluralidad de bordes 406 que representan relaciones entre los nodos 404. Como se muestra, se utiliza un icono simple (por ejemplo, un símbolo) para representar cada uno de la pluralidad de nodos 404 en la vista 400 global del conjunto 402 de datos.
Con referencia de nuevo a la figura 3, en la operación 315, el módulo 200 de interfaz recibe la entrada del usuario (por ejemplo, a través de un componente de entrada del dispositivo 102 cliente) solicitando un ajuste de escala de visualización de la representación gráfica del conjunto de datos. En algunos casos, un usuario puede solicitar aumentar la escala de visualización (por ejemplo, acercamiento) de la representación gráfica para evaluar aún más las tendencias locales en porciones particulares del conjunto de datos. En otros casos, el usuario puede solicitar disminuir la escala de visualización (por ejemplo, alejar) de la representación gráfica para evaluar las tendencias globales en el conjunto de datos. En cualquier caso, en la operación 320, el motor 210 de representación determina si el ajuste a la escala de visualización hace que la escala de visualización esté por encima de un umbral predefinido. El umbral predefinido puede establecerlo un administrador de la aplicación 114 de gráficos de datos, y puede configurarse para optimizar la calidad de la representación gráfica como se aprende a través de métodos heurísticos (por ejemplo, analizando la calidad de representación en varios niveles de escala para identificar el punto de ruptura en la calidad).
Si el motor 210 de representación determina que la escala de visualización no está por encima del umbral predefinido, el motor 210 de representación actualiza la representación gráfica del conjunto de datos utilizando la primera convención de representación y de acuerdo con la escala de visualización especificada por el usuario, en la operación 325.
Si el motor 210 de representación determina que la escala de visualización está por encima del umbral predefinido, el motor 210 de representación actualiza la representación gráfica del conjunto de datos utilizando la segunda convención de representación y de acuerdo con la escala de visualización especificada por el usuario, en la operación 330. La actualización de la representación gráfica incluye la representación de una vista local de una parte del conjunto de datos que incluye un subconjunto de la pluralidad de nodos. La actualización de la representación gráfica del conjunto de datos puede incluir además cambiar el tamaño de un subconjunto de la pluralidad de nodos presentados en la vista local. La segunda convención de representación puede ser una convención de representación adecuada para proporcionar representaciones de alta calidad de un número bajo de nodos con información textual adicional (por ejemplo, representación de todos los nodos en el DOM). La actualización de la representación gráfica puede comprender además representar información textual asociada con cada nodo del subconjunto de la pluralidad de nodos.
Antes de realizar la transición a la representación utilizando la segunda convención de representación, el servidor 114 de aplicaciones puede transmitir una o más actualizaciones (por ejemplo, cambios a los atributos HTML o clases CSS que se agregan o eliminan) que sirven para sincronizar vistas de las convenciones de representación respectivas. Las actualizaciones se pueden proporcionar en una sola transmisión para reducir la cantidad de recursos de red consumidos.
En la operación 335, el motor 210 de representación hace que la vista actualizada de la representación gráfica se presente en una pantalla del dispositivo 102 cliente. Como ejemplo, la figura 4B es un diagrama de interfaz que ilustra una vista 410 local de la representación gráfica del conjunto 402 de datos. Como se muestra, la vista 410 local incluye una parte de la pluralidad de nodos (por ejemplo, nodo 404) representados en la vista 400 global de la figura 4A. Los nodos incluidos en la vista 410 local se representan utilizando un icono detallado (por ejemplo, una imagen o símbolo de alta resolución) y, como se muestra, cada nodo se presenta junto con información detallada sobre el nodo. La información detallada puede, por ejemplo, incluir un título o etiqueta, un valor o atributos asociados con el nodo. Por ejemplo, como se muestra, el nodo 412 incluye la etiqueta 414.
En algunos casos, el tamaño de cada nodo de los múltiples nodos incluidos en una representación gráfica puede variar dependiendo, por ejemplo, de las especificaciones del usuario, el tipo de datos que se representan mediante la representación gráfica, el tipo de nodo que se representa, o el valor correspondiente al nodo. En estos casos, algunos nodos en la representación gráfica pueden ser claramente visibles en ciertos niveles de escala, mientras que otros no. De acuerdo con lo anterior, el motor 210 de representación puede determinar si el ajuste a la escala de visualización hace que la escala de visualización esté por encima de un umbral predefinido (operación 320) por nodo, y para cada nodo en la pluralidad de nodos. El umbral predefinido puede depender del tamaño del nodo. Dependiendo del nivel de escala después del ajuste por parte del usuario, la actualización de la representación gráfica (operación 330) puede incluir representar una primera porción de la pluralidad de nodos utilizando la primera convención de representación (por ejemplo, nodos por debajo del umbral predefinido) y representación de una segunda porción de la pluralidad de nodos que utilizan la segunda convención de representación (por ejemplo, nodos por encima del umbral predefinido).
Por ejemplo, la figura 4C ilustra un diagrama de interfaz que ilustra una vista 420 local de la representación gráfica del conjunto 402 de datos. Como se muestra, la vista 420 local incluye una pluralidad de nodos representados utilizando una de las dos convenciones de representación. Por ejemplo, el nodo 422 puede representarse utilizando una primera convención de representación, lo que da como resultado que el nodo 422 se represente utilizando un círculo. Por el contrario, el nodo 422 puede representarse utilizando una segunda convención de representación, que da como resultado la representación de una representación más allá de una sola forma (por ejemplo, un icono que se asemeja a un documento).
En algunos casos, el módulo 200 de interfaz puede recibir más entradas del usuario en relación con solicitudes adicionales para ver ajustes de escala en la representación gráfica del conjunto de datos. En los casos en que la entrada del usuario es aumentar aún más la escala de visualización (por ejemplo, un mayor acercamiento) de la representación gráfica del conjunto de datos o disminuir la escala de visualización (por ejemplo, alejar) a un nivel que todavía está por encima del umbral predefinido, el motor 210 de representación continúa representando la representación gráfica utilizando la segunda convención de representación en respuesta a la determinación de que el nivel de escala continúa por debajo del nivel de umbral. En los casos en que la entrada del usuario es disminuir la escala de visualización a un nivel que está nuevamente por debajo del umbral predefinido, el motor 210 de representación vuelve a pasar a la primera convención de representación para representar la representación gráfica en el nivel de escala recién solicitado en respuesta a determinar el nivel de escala está por debajo del umbral predefinido.
La figura 5 es un diagrama de flujo que ilustra un método para representar vistas de múltiples porciones de una representación gráfica de un conjunto de datos. El método 500 puede estar incorporado en instrucciones legibles por ordenador para su ejecución por uno o más procesadores, de modo que las operaciones del método 500 puedan ser realizadas en parte o en su totalidad por el dispositivo 102 cliente. En particular, el servidor 114 de aplicaciones puede transmitir instrucciones legibles por ordenador al dispositivo 102 cliente que, cuando son ejecutadas por el cliente 108 web, hacen que el dispositivo 102 cliente se configure especialmente para incluir los componentes funcionales (por ejemplo, módulos y motores) de la aplicación 114 de gráficos de datos. De acuerdo con lo anterior, el método 500 se describe a continuación a modo de ejemplo con referencia al mismo. Sin embargo, se apreciará que al menos algunas de las operaciones del método 500 pueden implementarse en varias otras configuraciones de hardware y no está destinado a limitarse al dispositivo 102 cliente. Por ejemplo, el servidor 114 puede realizar al menos algunas de las operaciones del método 500.
En la operación 505, el módulo 200 de interfaz recibe la entrada del usuario que solicita una vista (por ejemplo, una vista ampliada o local) de una primera porción de una representación gráfica de un conjunto de datos. En la operación 510, el motor 210 de representación hace que la vista de la representación gráfica del conjunto de datos se presente en el dispositivo 102 cliente. La vista de la primera parte de la representación gráfica del conjunto de datos incluye una vista de un primer subconjunto de los nodos en el conjunto de datos.
Como ejemplo, la figura 6A ilustra una vista 600 local de una primera porción de un conjunto de datos (por ejemplo, el conjunto 402 de datos discutido en referencia a las figuras 4A y 4B). Como se muestra, la vista 600 local de la primera porción del conjunto de datos (por ejemplo, el conjunto 402 de datos) incluye una representación detallada de un subconjunto 602 de la pluralidad de nodos (por ejemplo, el nodo 604). Cada nodo puede estar representado por un icono, y cada icono individual puede tener un archivo de datos correspondiente (por ejemplo, una imagen o archivo de icono) almacenado en la memoria (por ejemplo, en el dispositivo 102 cliente). Por ejemplo, el nodo 604 está representado por una imagen que tiene un cuadro y una marca de verificación, y la imagen se almacena en la memoria como un archivo de datos.
Volviendo a la figura 5, en la operación 515, el módulo 200 de interfaz recibe la entrada del usuario solicitando una vista de una segunda porción de la representación gráfica del conjunto de datos. Por ejemplo, el usuario puede solicitar ver una porción de nodos no visibles en la primera porción de la representación gráfica (por ejemplo, un segundo subconjunto de la pluralidad de nodos).
En respuesta a la recepción de la entrada del usuario que solicita la vista de la segunda parte de la representación gráfica del conjunto de datos, el motor 210 de representación almacena una copia de un archivo de datos (por ejemplo, archivos de iconos) correspondiente a cada nodo representado en la vista de la primera parte de la representación gráfica, en la operación 520. El motor 210 de representación puede almacenar los archivos de datos en un medio legible por ordenador del dispositivo 102 cliente utilizando una estructura de datos tal como una pila.
En la operación 525, el motor 210 de representación selecciona una porción de los archivos de datos almacenados para su reutilización. Los archivos de datos que son seleccionados por el motor 210 de representación dependen de varios nodos incluidos en la vista de la segunda porción de la representación gráfica. En otras palabras, el motor 210 de representación selecciona tantos archivos de datos almacenados como sean necesarios para representar los nodos en la segunda porción de la representación gráfica del conjunto de datos.
En la operación 530, el motor 210 de representación genera una vista de la segunda porción de la representación gráfica utilizando la porción seleccionada de los archivos de datos almacenados que representaban previamente los nodos incluidos en la primera porción. La vista de la segunda parte de la representación gráfica del conjunto de datos incluye una vista de un segundo subconjunto de los nodos en el conjunto de datos. Si el número de nodos en la segunda porción excede el número de nodos incluidos en la primera porción, la generación de la vista de la segunda porción de la representación gráfica del conjunto de datos puede incluir la generación de archivos de datos adicionales para representar los nodos adicionales, o en la alternativa, obtener archivos de datos adicionales del servidor 114 de aplicaciones para representar los nodos adicionales. Al reutilizar los archivos de datos, que anteriormente se usaban para representar nodos en la vista de una primera parte de la representación gráfica, para representar la vista de la segunda parte de la representación gráfica, la aplicación 114 de gráficos de datos reduce así la cantidad de cálculo y recursos de red necesarios para representar representaciones gráficas de datos en comparación con las técnicas tradicionales.
En la operación 535, el motor 210 de representación hace que la vista de la segunda porción de la representación gráfica se presente en el dispositivo 102 cliente. Como ejemplo, la figura 6B ilustra una vista local 606 de una segunda porción del conjunto de datos (por ejemplo, el conjunto 402 de datos discutido en referencia a las figuras 4A-C). Como se muestra, la vista local 606 de la segunda porción del conjunto de datos (por ejemplo, el conjunto 402 de datos) incluye una representación de un subconjunto 608 de la pluralidad de nodos 404 discutidos en referencia a las Figs.
4A-C. Al menos una parte de los iconos usados para representar el subconjunto 606 corresponde a archivos de datos reciclados que se usaron previamente para representar nodos en el subconjunto 602 de la pluralidad de nodos discutidos anteriormente en referencia a la figura 6A. Por ejemplo, como se muestra en la figura 6B, la imagen utilizada para representar el nodo 604 (por ejemplo, una casilla y una marca de verificación) de la figura 6A se ha reutilizado para representar un nodo 610.
Módulos, componentes y lógica
En el presente documento, se describen ciertos ejemplos que incluyen lógica o una serie de componentes, módulos o mecanismos. Los módulos pueden constituir módulos de software (por ejemplo, código incorporado en un medio legible por máquina) o módulos de hardware. Un “módulo de hardware” es una unidad tangible capaz de realizar ciertas operaciones y puede configurarse u organizarse de cierta manera física. En varios ejemplos, uno o más sistemas informáticos (por ejemplo, un sistema informático independiente, un sistema informático cliente o un sistema informático servidor) o uno o más módulos de hardware de un sistema informático (por ejemplo, un procesador o un grupo de procesadores) pueden configurarse por software (por ejemplo, una aplicación o porción de aplicación) como un módulo de hardware que opera para realizar ciertas operaciones como se describe en este documento.
Un módulo de hardware puede implementarse mecánicamente, electrónicamente o cualquier combinación adecuada de los mismos. Por ejemplo, un módulo de hardware puede incluir circuitos dedicados o lógica configurada permanentemente para realizar ciertas operaciones. Por ejemplo, un módulo de hardware puede ser un procesador de propósito especial, como una matriz de puerta programable en campo (FPGA) o un circuito integrado de aplicación específica (ASIC). Un módulo de hardware también puede incluir circuitos o lógica programable que el software configura temporalmente para realizar ciertas operaciones. Por ejemplo, un módulo de hardware puede incluir software ejecutado por un procesador de propósito general u otro procesador programable. Una vez configurado por dicho software, los módulos de hardware se convierten en máquinas específicas (o componentes específicos de una máquina) diseñados específicamente para realizar las funciones configuradas y ya no son procesadores de propósito general. Se apreciará que la decisión de implementar un módulo de hardware mecánicamente, en circuitos dedicados y configurados permanentemente, o en circuitos configurados temporalmente (por ejemplo, configurados por software) puede estar motivada por consideraciones de coste y tiempo.
Por consiguiente, debe entenderse que la frase “módulo de hardware” abarca una entidad tangible, ya sea una entidad que está construida físicamente, configurada permanentemente (por ejemplo, cableada) o configurada temporalmente (por ejemplo, programada) para operar en un determinado manera o para realizar ciertas operaciones descritas en este documento. Como se utiliza en este documento, “módulo implementado en hardware” se refiere a un módulo de hardware. Considerando ejemplos en los que los módulos de hardware están configurados temporalmente (por ejemplo, programados), cada uno de los módulos de hardware no necesita ser configurado o instanciado en ninguna instancia en el tiempo. Por ejemplo, cuando un módulo de hardware comprende un procesador de propósito general configurado por software para convertirse en un procesador de propósito especial, el procesador de propósito general puede configurarse como procesadores de propósito especial diferentes (por ejemplo, que comprenden diferentes módulos de hardware) en diferentes momentos. De acuerdo con lo anterior, el software configura un procesador o procesadores particulares, por ejemplo, para constituir un módulo de hardware particular en una instancia de tiempo y para constituir un módulo de hardware diferente en una instancia de tiempo diferente.
Los módulos de hardware pueden proporcionar información y recibir información de otros módulos de hardware. De acuerdo con lo anterior, los módulos de hardware descritos pueden considerarse como acoplados comunicativamente. Cuando existen varios módulos de hardware al mismo tiempo, las comunicaciones se pueden lograr a través de la transmisión de señales (por ejemplo, a través de circuitos y buses apropiados) entre dos o más de los módulos de hardware. En los ejemplos en los que se configuran o crean instancias de múltiples módulos de hardware en diferentes momentos, las comunicaciones entre dichos módulos de hardware se pueden lograr, por ejemplo, mediante el almacenamiento y la recuperación de información en estructuras de memoria a las que tienen acceso los módulos de hardware múltiples. Por ejemplo, un módulo de hardware puede realizar una operación y almacenar la salida de esa operación en un dispositivo de memoria al que está acoplado comunicativamente. Un módulo de hardware adicional puede entonces, en un momento posterior, acceder al dispositivo de memoria para recuperar y procesar la salida almacenada. Los módulos de hardware también pueden iniciar comunicaciones con dispositivos de entrada o salida, y pueden operar en un recurso (por ejemplo, una recopilación de información).
Las diversas operaciones de los métodos de ejemplo descritos en este documento pueden realizarse, al menos parcialmente, por uno o más procesadores que están configurados temporalmente (por ejemplo, por software) o configurados permanentemente para realizar las operaciones relevantes. Ya sea que estén configurados temporal o permanentemente, dichos procesadores pueden constituir módulos implementados por el procesador que operan para realizar una o más operaciones o funciones descritas en este documento. Como se utiliza en este documento, “módulo implementado por procesador” se refiere a un módulo de hardware implementado utilizando uno o más procesadores.
De manera similar, los métodos descritos en el presente documento pueden implementarse al menos parcialmente en el procesador, siendo un procesador o procesadores particulares un ejemplo de hardware. Por ejemplo, al menos algunas de las operaciones de un método pueden ser realizadas por uno o más procesadores o módulos implementados por procesador. Además, el uno o más procesadores también pueden operar para soportar el desempeño de las operaciones relevantes en un entorno de “computación en la nube” o como un “software como servicio” (SaaS). Por ejemplo, al menos algunas de las operaciones pueden ser realizadas por un grupo de ordenadores (como ejemplos de máquinas que incluyen procesadores), siendo accesibles estas operaciones a través de una red (por ejemplo, Internet) y por una o más interfaces apropiadas (por ejemplo, una API).
El rendimiento de algunas de las operaciones puede distribuirse entre los procesadores, que no solo residen en una sola máquina, sino que también se implementan en varias máquinas. En algunos ejemplos, los procesadores o módulos implementados por el procesador pueden ubicarse en una única ubicación geográfica (por ejemplo, dentro de un entorno doméstico, un entorno de oficina o una granja de servidores). En otros ejemplos, los procesadores o módulos implementados por el procesador pueden distribuirse en varias ubicaciones geográficas.
Ejemplo de arquitectura de máquina y máquina lectora
La figura 7 es un diagrama de bloques que ilustra los componentes de una máquina 700 capaz de leer instrucciones de un medio legible por máquina (por ejemplo, un medio de almacenamiento legible por máquina) y realizar una o más de las metodologías discutidas aquí. Específicamente, la figura 7 muestra una representación esquemática de la máquina 700 en forma de ejemplo de un sistema informático, dentro del cual las instrucciones 716 (por ejemplo, software, un programa, una aplicación, un applet, una aplicación u otro código ejecutable) para hacer que la máquina 700 puede ejecutar cualquiera o más de las metodologías discutidas en este documento. Por ejemplo, las instrucciones pueden hacer que la máquina ejecute los diagramas de flujo de las FIG. 3 y 5. Además, o alternativamente, la máquina 700 puede corresponder a cualquiera del dispositivo 102 cliente, el servidor 112 web o el servidor 114 de aplicaciones.
Las instrucciones transforman la máquina general no programada en una máquina particular programada para llevar a cabo las funciones descritas e ilustradas de la manera descrita. En ejemplos alternativos, la máquina 700 funciona como un dispositivo independiente o puede estar acoplada (por ejemplo, en red) a otras máquinas. En una implementación en red, la máquina 700 puede operar en la capacidad de una máquina servidor o una máquina cliente en un entorno de red servidor-cliente, o como una máquina par en un entorno de red punto a punto (o distribuido). La máquina 700 puede comprender, pero no se limita a, una computadora servidor, una computadora cliente, una computadora personal (PC), una tableta, una computadora portátil, una netbook, un decodificador (STB), un PDA, un sistema de medios de entretenimiento, un teléfono celular, un teléfono inteligente, un dispositivo móvil, un dispositivo portátil (por ejemplo, un reloj inteligente), un dispositivo doméstico inteligente (por ejemplo, un dispositivo inteligente), otros dispositivos inteligentes, un dispositivo web, una red enrutador, un conmutador de red, un puente de red o cualquier máquina capaz de ejecutar las instrucciones 716, secuencialmente o de otro modo, que especifiquen las acciones que debe realizar la máquina 700. Además, aunque solo se ilustra una sola máquina 700, el término “máquina” también se considerará que incluye una colección de máquinas 700 que ejecutan individual o conjuntamente las instrucciones 716 para realizar una o más de las metodologías discutidas aquí.
La máquina 700 puede incluir procesadores 710, memoria/almacenamiento 730 y componentes 750 de E/S, que pueden configurarse para comunicarse entre sí, tal como a través de un bus 702. En un ejemplo, los procesadores 710 (por ejemplo, un Unidad de procesamiento central (CPU), un procesador de computación de conjunto de instrucciones reducido (RISC), un procesador de computación de conjunto de instrucciones complejas (CISC), una unidad de procesamiento de gráficos (GPU), un procesador de señal digital (DSP), un ASIC, un circuito integrado de radiofrecuencia (RFIC), otro procesador, o cualquier combinación adecuada de los mismos) puede incluir, por ejemplo, el procesador 712 y el procesador 714 que pueden ejecutar las instrucciones 716. El término “procesador” está destinado a incluir un procesador multi-núcleo que puede comprender dos o procesadores más independientes (a veces denominados “núcleos”) que pueden ejecutar instrucciones simultáneamente. Aunque la figura 7 muestra múltiples procesadores, la máquina 700 puede incluir un único procesador con un solo núcleo, un único procesador con múltiples núcleos (por ejemplo, un proceso de múltiples núcleos), múltiples procesadores con un solo núcleo, múltiples procesadores con múltiples núcleos, o cualquier combinación del mismo.
La memoria/almacenamiento 730 puede incluir una memoria 732, como una memoria principal u otro almacenamiento de memoria, y una unidad 736 de almacenamiento, ambas accesibles para los procesadores 710, como a través del bus 702. La unidad 736 de almacenamiento y la memoria 732 almacena las instrucciones 716 que incorporan una o más de las metodologías o funciones descritas en este documento. Las instrucciones 716 también pueden residir, total o parcialmente, dentro de la memoria 732, dentro de la unidad 736 de almacenamiento, dentro de al menos uno de los procesadores 710 (por ejemplo, dentro de la memoria caché del procesador), o cualquier combinación adecuada de los mismos, durante la ejecución de los mismos por la máquina 700. De acuerdo con lo anterior, la memoria 732, la unidad 736 de almacenamiento y la memoria de los procesadores 710 son ejemplos de medios legibles por máquina.
Como se utiliza en este documento, “medio legible por máquina” significa un dispositivo capaz de almacenar instrucciones y datos de forma temporal o permanente y puede incluir, pero no se limita a, memoria de acceso aleatorio (RAM), memoria de solo lectura (ROM ), memoria intermedia, memoria flash, medios ópticos, medios magnéticos, memoria caché, otros tipos de almacenamiento (por ejemplo, memoria de solo lectura programable borrable (EEPROM)) y/o cualquier combinación adecuada de los mismos. El término “medio legible por máquina” debe considerarse que incluye un medio único o múltiples medios (por ejemplo, una base de datos centralizada o distribuida, o cachés y servidores asociados) capaces de almacenar instrucciones 716. El término “medio legible por máquina” también deberá considerarse que incluye cualquier medio, o combinación de múltiples medios, que sea capaz de almacenar instrucciones (por ejemplo, instrucciones 716) para su ejecución por una máquina (por ejemplo, máquina 700), de modo que las instrucciones, cuando se ejecutan por uno o más procesadores de la máquina 700 (por ejemplo, los procesadores 710), hacen que la máquina 700 realice una o más de las metodologías descritas en el presente documento. De acuerdo con lo anterior, un “medio legible por máquina” se refiere a un único dispositivo o dispositivo de almacenamiento, así como a sistemas o redes de almacenamiento “basados en la nube” que incluyen múltiples dispositivos o dispositivos de almacenamiento. El término “medio legible por máquina” excluye las señales per se.
Los componentes 750 de E/S pueden incluir una amplia variedad de componentes para recibir entrada, proporcionar salida, producir salida, transmitir información, intercambiar información, capturar mediciones, etc. Los componentes 750 específicos de E/S que se incluyen en una máquina particular dependerán del tipo de máquina. Por ejemplo, las máquinas portátiles, como los teléfonos móviles, probablemente incluirán un dispositivo de entrada táctil u otros mecanismos de entrada similares, mientras que una máquina de servidor sin cabeza probablemente no incluirá dicho dispositivo de entrada táctil. Se apreciará que los componentes 750 de E/S pueden incluir muchos otros componentes que no se muestran en la figura 7. Los componentes 750 de E/S se agrupan de acuerdo con la funcionalidad simplemente para simplificar la siguiente discusión y la agrupación no es en modo alguno limitativa. Los componentes 750 de E/S pueden incluir componentes 752 de salida y componentes 754 de entrada. Los componentes 752 de salida pueden incluir componentes visuales (por ejemplo, una pantalla como un panel de pantalla de plasma (PDP), una pantalla de diodo emisor de luz (LED), un líquido pantalla de cristal (LCD), un proyector o un tubo de rayos catódicos (CRT), componentes acústicos (por ejemplo, altavoces), componentes hápticos (por ejemplo, un motor vibratorio, mecanismos de resistencia), otros generadores de señales, etc. Los componentes 754 de entrada pueden incluir componentes de entrada alfanuméricos (por ejemplo, Un teclado, una pantalla táctil configurada para recibir entrada alfanumérica, un teclado fotoóptico u otros componentes de entrada alfanuméricos), componentes de entrada basados en puntos (por ejemplo, un mouse, un panel táctil, una bola de seguimiento, una palanca de mando, un sensor de movimiento u otro instrumento señalador), componentes de entrada táctil (por ejemplo, un botón físico, una pantalla táctil que proporciona la ubicación y/o la fuerza de los toques o gestos táctiles u otros componentes de entrada táctil), componentes de entrada de audio (por ejemplo, un micrófono) y similares.
Los componentes 750 de E/S pueden incluir componentes 756 biométricos, componentes 758 de movimiento, componentes 760 ambientales o componentes 762 de posición entre una amplia gama de otros componentes. Por ejemplo, los componentes 756 biométricos pueden incluir componentes para detectar expresiones (por ejemplo, expresiones de manos, expresiones faciales, expresiones vocales, gestos corporales o seguimiento ocular), medir señales biológicas (por ejemplo, presión arterial, frecuencia cardíaca, temperatura corporal, transpiración u ondas cerebrales), identificar a una persona (por ejemplo, identificación de voz, identificación de retina, identificación facial, identificación de huellas digitales o identificación basada en electroencefalograma), y similares. Los componentes 758 de movimiento pueden incluir componentes del sensor de aceleración (por ejemplo, acelerómetro), componentes del sensor de gravitación, componentes del sensor de rotación (por ejemplo, giroscopio), y así sucesivamente. Los componentes 760 ambientales pueden incluir, por ejemplo, componentes del sensor de iluminación (por ejemplo, fotómetro), componentes del sensor de temperatura (por ejemplo, uno o más termómetros que detectan la temperatura ambiente), componentes del sensor de humedad, componentes del sensor de presión (por ejemplo, barómetro), componentes de sensor acústico (por ejemplo, uno o más micrófonos que detectan el ruido de fondo), componentes del sensor de proximidad (por ejemplo, sensores infrarrojos que detectan objetos cercanos), sensores de gases (por ejemplo, sensores de detección de gases para detectar concentraciones de gases peligrosos por seguridad o para medir contaminantes en el atmósfera) u otros componentes que pueden proporcionar indicaciones, mediciones o señales correspondientes a un entorno físico circundante. Los componentes 762 de posición pueden incluir componentes del sensor de ubicación (por ejemplo, un componente receptor del Sistema de Posición Global (GPS)), componentes del sensor de altitud (por ejemplo, altímetros o barómetros que detectan la presión del aire a partir de la cual puede derivarse la altitud), componentes del sensor de orientación (por ejemplo, magnetómetros) y similares.
La comunicación puede implementarse utilizando una amplia variedad de tecnologías. Los componentes 750 de E/S pueden incluir componentes 764 de comunicación operables para acoplar la máquina 700 a una red 780 o dispositivos 770 a través del acoplamiento 782 y el acoplamiento 772, respectivamente. Por ejemplo, los componentes 764 de comunicación pueden incluir un componente de interfaz de red u otro dispositivo adecuado para interactuar con la red 780. En otros ejemplos, los componentes 764 de comunicación pueden incluir componentes de comunicación por cable, componentes de comunicación inalámbrica, componentes de comunicación celular, componentes de comunicación de campo cercano (NFC), componentes Bluetooth® (por ejemplo, Bluetooth® Low Energy), componentes Wi-Fi® y otros componentes de comunicación para proporcionar comunicación a través de otras modalidades. Los dispositivos 770 pueden ser otra máquina o cualquiera de una amplia variedad de dispositivos periféricos (por ejemplo, un dispositivo periférico acoplado a través de un bus serie universal (USB)).
Además, los componentes 764 de comunicación pueden detectar identificadores o incluir componentes operables para detectar identificadores. Por ejemplo, los componentes 764 de comunicación pueden incluir componentes de lector de etiquetas de identificación por radiofrecuencia (RFID), componentes de detección de etiquetas inteligentes NFC, componentes de lectores ópticos (por ejemplo, un sensor óptico para detectar códigos de barras unidimensionales tales como la barra de código de producto universal (UPC), códigos de barras multidimensionales como el código de respuesta rápida (QR), el código azteca, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, código de barras UCC RSS-2D y otros códigos ópticos), o componentes de detección acústica (por ejemplo, micrófonos para identificar señales de audio etiquetadas). Además, se puede derivar una variedad de información a través de los componentes 764 de comunicación, como la ubicación a través de la ubicación geográfica del Protocolo de Internet (IP), la ubicación a través de la triangulación de la señal Wi-Fi®, la ubicación a través de la detección de una señal de baliza NFC que puede indicar un ubicación particular, y así sucesivamente.
Medio de transmisión
Una o más porciones de la red 780 pueden ser una red ad hoc, una intranet, una extranet, una VPN, una LAN, una WLAN, una WAN, una WWAN, un MAN, Internet, una porción de Internet , una parte de la PSTN, una red simple de servicio telefónico antiguo (POTS), una red de telefonía celular, una red inalámbrica, una red Wi-Fi®, otro tipo de red o una combinación de dos o más de dichas redes. Por ejemplo, la red 780 o una parte de la red 780 puede incluir una red inalámbrica o celular y el acoplamiento 782 puede ser una conexión de acceso múltiple por división de código (CDMA), una conexión del Sistema global para comunicaciones móviles (GSM) u otro tipo de acoplamiento celular o inalámbrico. En este ejemplo, el acoplamiento 782 puede implementar cualquiera de una variedad de tipos de tecnología de transferencia de datos, como la Tecnología de transmisión de radio de portadora única (1xRTT), la tecnología Evolution-Data Optimized (EVDO), la tecnología del Servicio general de radio por paquetes (GPRS), Tasas mejoradas de datos para la tecnología GSM Evolution (EDGE), Proyecto de asociación de tercera generación (3GPP) que incluye 3G, redes inalámbricas de cuarta generación (4G), Sistema universal de telecomunicaciones móviles (UMTS), Acceso a paquetes de alta velocidad (HSPA), Interoperabilidad mundial para acceso por microondas (WiMAX), estándar de evolución a largo plazo (LTE), otros definidos por varias organizaciones de configuración de estándares, otros protocolos de largo alcance u otra tecnología de transferencia de datos.
Las instrucciones 716 pueden transmitirse o recibirse a través de la red 780 utilizando un medio de transmisión a través de un dispositivo de interfaz de red (por ejemplo, un componente de interfaz de red incluido en los componentes 764 de comunicación) y utilizando cualquiera de una serie de protocolos de transferencias conocidas (por ejemplo, protocolo de transferencia de hipertexto (HTTP)). De manera similar, las instrucciones 716 pueden transmitirse o recibirse utilizando un medio de transmisión a través del acoplamiento 772 (por ejemplo, un acoplamiento entre pares) a los dispositivos 770. El término “medio de transmisión” se considerará que incluye cualquier medio intangible que sea capaz de almacenar, codificar o llevar instrucciones 716 para su ejecución por la máquina 700, e incluye señales de comunicaciones digitales o analógicas u otro medio intangible para facilitar la comunicación de dicho software.
Lenguaje
En toda esta especificación, varias instancias pueden implementar componentes, operaciones o estructuras descritas como una sola instancia. Aunque las operaciones individuales de uno o más métodos se ilustran y describen como operaciones separadas, una o más de las operaciones individuales pueden realizarse simultáneamente, y nada requiere que las operaciones se realicen en el orden ilustrado. Las estructuras y la funcionalidad presentadas como componentes separados en configuraciones de ejemplo pueden implementarse como una estructura o componente combinado. Del mismo modo, las estructuras y la funcionalidad presentadas como un solo componente pueden implementarse como componentes separados. Estas y otras variaciones, modificaciones, adiciones y mejoras caen dentro del alcance del tema en este documento.
Como se utiliza en el presente documento, el término “o” puede interpretarse en un sentido incluyente o excluyente. Además, se pueden proporcionar varias instancias para recursos, operaciones o estructuras descritas aquí como una sola instancia. Además, los límites entre varios recursos, operaciones, módulos, motores y almacenes de datos son algo arbitrarios, y las operaciones particulares se ilustran en un contexto de configuraciones ilustrativas específicas. Se prevén otras asignaciones de funcionalidad y pueden caer dentro del alcance de diversas realizaciones de la presente divulgación. En general, las estructuras y la funcionalidad presentadas como recursos separados en las configuraciones de ejemplo pueden implementarse como una estructura o recurso combinado. Del mismo modo, las estructuras y la funcionalidad presentadas como un solo recurso pueden implementarse como recursos separados.
En este documento, los términos “un” o “uno” se usan, como es común en los documentos de patente, para incluir uno o más de uno, independientemente de cualquier otro caso o uso de “al menos uno” o “uno o más.” En las reivindicaciones adjuntas, los términos “que incluye” y “en el que” se utilizan como los equivalentes en inglés simple de los términos respectivos “que comprende” y “en el que”. Además, en las siguientes reivindicaciones, los términos “que incluye” y “que comprende” son abiertos; es decir, un sistema, dispositivo, artículo o proceso que incluye elementos además de los enumerados después de dicho término en una reivindicación aún se consideran dentro del alcance de esa reivindicación. Además, en las siguientes reivindicaciones, los términos “primero”, “segundo”, “tercero”, etc., se utilizan simplemente como etiquetas y no pretenden imponer requisitos numéricos a sus objetos.

Claims (13)

REIVINDICACIONES
1. Un método que comprende:
generar (305), utilizar un procesador de una máquina cliente, una representación gráfica de un conjunto de datos que utiliza una primera convención de representación, la representación gráfica del conjunto de datos comprende una vista de una pluralidad de nodos;
recibir (315) la entrada del usuario que solicita un ajuste de escala de visualización para la representación gráfica, la entrada del usuario especifica un nivel de escala para ver la pluralidad de nodos;
determinar (320), utilizando dicho procesador de dicha máquina cliente, que el nivel de escala especificado por la entrada del usuario está por encima de un umbral predefinido; y
en respuesta a la determinación de que el nivel de escala está por encima del umbral predefinido, actualizar (330), utilizar dicho procesador de dicha máquina cliente, la representación gráfica del conjunto de datos utilizando una segunda convención de representación, la representación gráfica actualizada comprende una vista a escala del pluralidad de nodos;
en el que la primera convención de representación implica el uso de un elemento de lienzo de lenguaje de modelado de hipertexto (HTML),
en el que la segunda convención de representación implica nodos de representación en un modelo de objeto de dominio (DOM), y
en el que un administrador establece el umbral predefinido para optimizar la calidad de la representación gráfica como se aprende al analizar la calidad de representación en varios niveles de escala para identificar un punto de interrupción en la calidad.
2. El método de la reivindicación 1, en el que el método comprende además presentar (335) la representación gráfica actualizada en una pantalla acoplada comunicativamente a la máquina cliente.
3. El método de la reivindicación 1 o la reivindicación 2, que comprende además transmitir el conjunto de datos a la máquina cliente a través de una interfaz de una máquina servidor.
4. El método de cualquiera de las reivindicaciones anteriores, en el que la vista escalada incluye un subconjunto de la pluralidad de nodos escalados de acuerdo con el nivel de escala especificado por la entrada del usuario.
5. El método de la reivindicación 4, en el que el método comprende, además:
recibir una entrada adicional del usuario que solicita una vista adicional de un subconjunto diferente de la pluralidad de nodos; y
realizar, utilizando dicho procesador de dicha máquina cliente, una actualización adicional a la representación gráfica actualizada utilizando la segunda convención de representación, la realización de la actualización adicional que incluye la representación de la vista adicional del subconjunto diferente de la pluralidad de nodos.
6. El método de la reivindicación 5, en el que la representación de la vista adicional del subconjunto diferente de la pluralidad de nodos comprende:
almacenar una representación de cada nodo del subconjunto de la pluralidad de nodos en un medio de almacenamiento intermedio;
seleccionar una porción de las representaciones almacenadas del subconjunto de la pluralidad de nodos para su reutilización; y
generar la vista adicional de los diferentes subconjuntos de la pluralidad de nodos utilizando la porción de representaciones almacenadas del subconjunto de la pluralidad de nodos.
7. El método de una cualquiera de las reivindicaciones anteriores, en el que la actualización de la representación gráfica comprende presentar información textual asociada con cada nodo de la pluralidad de nodos.
8. El método de una cualquiera de las reivindicaciones anteriores, en el que la actualización de la representación gráfica comprende cambiar el tamaño de cada nodo de la pluralidad de nodos.
9. El método de una cualquiera de las reivindicaciones anteriores, en el que el método comprende, además: recibir información adicional del usuario que solicita un ajuste de escala de visualización adicional para la representación gráfica, el ajuste de escala de visualización adicional que especifica un nivel de escala adicional para ver una parte de la pluralidad de nodos;
determinar, utilizando dicho procesador de dicha máquina cliente, que el nivel de escala adicional está por debajo del umbral predefinido; y
en respuesta a la determinación de que el nivel de escala adicional está por debajo del umbral predefinido, realizando, utilizando dicho procesador de dicha máquina cliente, una actualización adicional a la representación gráfica actualizada utilizando la primera convención de representación, la realización de la actualización adicional, incluida la representación de una vista de la porción de la pluralidad de nodos.
10. Un programa de ordenador que comprende instrucciones legibles por ordenador que, cuando son ejecutadas por un aparato informático, hacen que el aparato informático realice el método de cualquier reivindicación precedente.
11. Un sistema que comprende:
un módulo de interfaz (200) configurado para recibir la entrada del usuario que solicita un ajuste de escala de visualización para una representación gráfica de un conjunto de datos, la representación gráfica del conjunto de datos que incluye una pluralidad de nodos, la entrada del usuario especifica un nivel de escala para ver la pluralidad de nodos;
un motor de representación (210), que comprende uno o más procesadores, configurado para generar una representación gráfica del conjunto de datos utilizando una primera convención de representación, el motor de representación configurado además para determinar que el nivel de escala especificado por la entrada del usuario está por encima de un umbral predefinido, y en respuesta a la determinación de que el nivel de escala está por encima del umbral predefinido, actualiza la representación gráfica del conjunto de datos utilizando una segunda convención de representación, la representación gráfica actualizada comprende una vista escalada de la pluralidad de nodos; y
en el que la primera convención de representación implica el uso de un elemento de lienzo de lenguaje de modelado de hipertexto (HTML),
en la que la segunda convención de representación implica nodos de representación en un modelo de objeto de dominio (DOM), y
en el que un administrador establece el umbral predefinido para optimizar la calidad de la representación gráfica como se aprende al analizar la calidad de representación en varios niveles de escala para identificar un punto de interrupción en la calidad.
12. El sistema de la reivindicación 11, que comprende además un módulo de recuperación de datos (205) configurado para recuperar el conjunto de datos desde una ubicación especificada por el usuario.
13. El sistema de la reivindicación 11 o la reivindicación 12, en el que el módulo de interfaz está configurado además para hacer que la representación gráfica actualizada se presente en una pantalla de la máquina cliente.
ES16169679T 2015-05-14 2016-05-13 Generación de representaciones gráficas de datos utilizando convenciones de representaciones múltiples Active ES2767698T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201562161737P 2015-05-14 2015-05-14

Publications (1)

Publication Number Publication Date
ES2767698T3 true ES2767698T3 (es) 2020-06-18

Family

ID=56068685

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16169679T Active ES2767698T3 (es) 2015-05-14 2016-05-13 Generación de representaciones gráficas de datos utilizando convenciones de representaciones múltiples

Country Status (5)

Country Link
US (1) US20160334974A1 (es)
EP (1) EP3093778B1 (es)
DK (1) DK3093778T3 (es)
ES (1) ES2767698T3 (es)
PL (1) PL3093778T3 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996236B1 (en) 2015-12-29 2018-06-12 Palantir Technologies Inc. Simplified frontend processing and visualization of large datasets
CN106980494B (zh) * 2016-01-19 2021-08-03 中兴通讯股份有限公司 一种实现智能识别缩放手势指令的浏览器的方法及装置
US9760606B1 (en) 2016-10-05 2017-09-12 Palantir Technologies Inc. System to generate curated ontologies
US10891338B1 (en) 2017-07-31 2021-01-12 Palantir Technologies Inc. Systems and methods for providing information
CA3027555A1 (en) * 2017-09-30 2019-03-30 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for stations loading and display
US10628980B2 (en) * 2017-10-30 2020-04-21 Nutanix, Inc. High-performance graph rendering in browsers
US11599706B1 (en) 2017-12-06 2023-03-07 Palantir Technologies Inc. Systems and methods for providing a view of geospatial information
US10402397B1 (en) 2018-05-09 2019-09-03 Palantir Technologies Inc. Systems and methods for accessing federated data
US10732941B2 (en) * 2018-07-18 2020-08-04 Sap Se Visual facet components
US11481088B2 (en) * 2020-03-16 2022-10-25 International Business Machines Corporation Dynamic data density display
US11809694B2 (en) * 2020-09-30 2023-11-07 Aon Risk Services, Inc. Of Maryland Intellectual-property landscaping platform with interactive graphical element
US12073479B2 (en) 2020-09-30 2024-08-27 Moat Metrics, Inc. Intellectual-property landscaping platform
US12014436B2 (en) 2020-09-30 2024-06-18 Aon Risk Services, Inc. Of Maryland Intellectual-property landscaping platform
CN114840288A (zh) * 2022-03-29 2022-08-02 北京旷视科技有限公司 分布图的渲染方法、电子设备及存储介质

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061062A (en) * 1991-12-20 2000-05-09 Apple Computer, Inc. Zooming controller
AU5273100A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US6959422B2 (en) * 2001-11-09 2005-10-25 Corel Corporation Shortcut key manager and method for managing shortcut key assignment
GB2417176A (en) * 2004-08-12 2006-02-15 Ibm Mouse cursor display
US7694234B2 (en) * 2005-08-04 2010-04-06 Microsoft Corporation Virtual magnifying glass with on-the fly control functionalities
US8823709B2 (en) * 2007-11-01 2014-09-02 Ebay Inc. User interface framework for viewing large scale graphs on the web
US8245153B2 (en) * 2008-01-24 2012-08-14 International Business Machines Coporation System and method for displaying gantt charts with other project management tools
US20090288035A1 (en) * 2008-05-15 2009-11-19 Microsoft Corporation Scrollable views in a client/server application
AU2009301507B2 (en) * 2008-10-06 2015-05-28 Martin Pointing Devices Scroll wheel
US8433998B2 (en) * 2009-01-16 2013-04-30 International Business Machines Corporation Tool and method for annotating an event map, and collaborating using the annotated event map
US8261206B2 (en) * 2009-02-27 2012-09-04 International Business Machines Corporation Digital map having user-defined zoom areas
US9171097B2 (en) * 2009-03-31 2015-10-27 Qualcomm Incorporated Memoizing web-browsing computation with DOM-based isomorphism
US9311425B2 (en) * 2009-03-31 2016-04-12 Qualcomm Incorporated Rendering a page using a previously stored DOM associated with a different page
US8504985B2 (en) * 2009-04-30 2013-08-06 Adobe Systems Incorporated Context sensitive script editing for form design
US8677279B2 (en) * 2009-05-06 2014-03-18 Business Objects Software Limited Visual hierarchy explorer
US20110022945A1 (en) * 2009-07-24 2011-01-27 Nokia Corporation Method and apparatus of browsing modeling
US9049258B2 (en) * 2009-09-17 2015-06-02 Border Stylo, LLC Systems and methods for anchoring content objects to structured documents
US20120179521A1 (en) * 2009-09-18 2012-07-12 Paul Damian Nelson A system of overlaying a trade mark image on a mapping appication
WO2011053969A2 (en) * 2009-11-02 2011-05-05 Infinity Laser Measuring Llc Laser measurement of a vehicle frame
US9436763B1 (en) * 2010-04-06 2016-09-06 Facebook, Inc. Infrastructure enabling intelligent execution and crawling of a web application
US8957920B2 (en) * 2010-06-25 2015-02-17 Microsoft Corporation Alternative semantics for zoom operations in a zoomable scene
US9715751B2 (en) * 2011-07-13 2017-07-25 Apple Inc. Zooming to faces depicted in images
DE102011108079A1 (de) * 2011-07-21 2013-01-24 Peter Strzygowski Verfahren und Vorrichtung zur Anordnung komplex verknüpfter Informationen sowie deren Durchwegung
US9047007B2 (en) * 2011-07-28 2015-06-02 National Instruments Corporation Semantic zoom within a diagram of a system
US20130031501A1 (en) * 2011-07-28 2013-01-31 Kodosky Jeffrey L Weighted Zoom within a Diagram of a System
US20130067420A1 (en) * 2011-09-09 2013-03-14 Theresa B. Pittappilly Semantic Zoom Gestures
US8908947B2 (en) * 2012-05-21 2014-12-09 Terarecon, Inc. Integration of medical software and advanced image processing
US20140143710A1 (en) * 2012-11-21 2014-05-22 Qi Zhao Systems and methods to capture and save criteria for changing a display configuration
US9576049B2 (en) * 2012-12-21 2017-02-21 Microsoft Technology Licensing, Llc Semantic searching using zoom operations
US9384522B2 (en) * 2012-12-28 2016-07-05 Qualcomm Incorporated Reordering of command streams for graphical processing units (GPUs)
US9230294B2 (en) * 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US10108317B2 (en) * 2013-10-14 2018-10-23 Schneider Electric Software, Llc Configuring process simulation data for semantic zooming
US9836441B2 (en) * 2014-09-04 2017-12-05 Home Box Office, Inc. Platform abstraction of graphics

Also Published As

Publication number Publication date
US20160334974A1 (en) 2016-11-17
EP3093778A1 (en) 2016-11-16
EP3093778B1 (en) 2020-01-01
PL3093778T3 (pl) 2020-05-18
DK3093778T3 (da) 2020-02-03

Similar Documents

Publication Publication Date Title
ES2767698T3 (es) Generación de representaciones gráficas de datos utilizando convenciones de representaciones múltiples
US11662900B2 (en) Application control using a gesture based trigger
US11392756B2 (en) Systems and methods to improve a technological process for signing documents
US12026529B2 (en) Interactive informational interface
US12093607B2 (en) Device control using audio data
KR102671052B1 (ko) 동적 컨텍스트 미디어 필터
WO2020037059A1 (en) Content suggestion system
US12062134B2 (en) Location based augmented-reality system
US20230297396A1 (en) Transforming instructions for collaborative updates
US20240160655A1 (en) Media request system
CN114514527A (zh) 个性化字体
US11200459B1 (en) Adversarial network for transfer learning
US9294679B1 (en) Real-time perspective correction
US20170153791A1 (en) Conditional animation of an icon
US11494052B1 (en) Context based interface options
US10885136B1 (en) Audience filtering system
US20150346913A1 (en) Methods and system for memory efficient image display