BR112016030120B1 - METHOD IMPLEMENTED BY COMPUTER TO PROVIDE A CONSULTATION SUGGESTION AND SYSTEM CONFIGURED TO PROVIDE CONSULTATION SUGGESTIONS - Google Patents

METHOD IMPLEMENTED BY COMPUTER TO PROVIDE A CONSULTATION SUGGESTION AND SYSTEM CONFIGURED TO PROVIDE CONSULTATION SUGGESTIONS Download PDF

Info

Publication number
BR112016030120B1
BR112016030120B1 BR112016030120-0A BR112016030120A BR112016030120B1 BR 112016030120 B1 BR112016030120 B1 BR 112016030120B1 BR 112016030120 A BR112016030120 A BR 112016030120A BR 112016030120 B1 BR112016030120 B1 BR 112016030120B1
Authority
BR
Brazil
Prior art keywords
query
data
suggestion
computer
information
Prior art date
Application number
BR112016030120-0A
Other languages
Portuguese (pt)
Other versions
BR112016030120A2 (en
BR112016030120A8 (en
Inventor
Benjamin Edward Rampson
Nickolas Dwayne Welton
Venkata Srinivas Irava
Mark Alan Mullins
Andrew Grey Carlson
Original Assignee
Microsoft Technology Licensing, 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
Priority claimed from US14/323,365 external-priority patent/US9934331B2/en
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112016030120A8 publication Critical patent/BR112016030120A8/en
Publication of BR112016030120A2 publication Critical patent/BR112016030120A2/en
Publication of BR112016030120B1 publication Critical patent/BR112016030120B1/en

Links

Abstract

MÉTODO IMPLEMENTADO POR COMPUTADOR PARA PROPORCIONAR UMA SUGESTÃO DE CONSULTA E SISTEMA CONFIGURADO PARA PROPORCIONAR SUGESTÕES DE CONSULTA. Trata-se de tecnologias para fornecer sugestões de consulta. Para fornecer uma sugestão de consulta, pode-se detectar um acesso em uma fonte de dados. Uma sugestão de consulta inicial para uma consulta da fonte de dados pode, então, ser identificada com base, pelo menos em parte, em dados não baseados em consulta. A sugestão de consulta inicial pode, então, ser retornada para exibição em um elemento de interface de usuário (UI). Sugestões de consulta adicionais podem também ser fornecidas com base em dados não baseados em consulta em resposta a uma modificação da consulta.METHOD IMPLEMENTED BY COMPUTER TO PROVIDE A CONSULTATION SUGGESTION AND SYSTEM CONFIGURED TO PROVIDE CONSULTATION SUGGESTIONS. These are technologies for providing query suggestions. To provide a query suggestion, you can detect a hit on a data source. An initial query suggestion for a data source query can then be identified based, at least in part, on non-query-based data. The initial query suggestion can then be returned for display in a user interface (UI) element. Additional query suggestions may also be provided based on non-query-based data in response to a query modification.

Description

ANTECEDENTESBACKGROUND

[001] Quando uma conexão a uma fonte de dados externa (por exemplo, que configura uma planilha para fazer uma conexão a um banco de dados) é criada, pode ser bastante difícil para um usuário construir consultas que mostrem informações que o usuário deseja recuperar. Para obter as informações que o usuário deseja recuperar, um usuário que constrói uma conexão pode precisar compreender os dados que estão disponíveis na fonte de dados. Por exemplo, um u-suário pode precisar compreender nomes de campos, organização de tabela, e/ou relações entre tabelas a fim de compilar de modo eficaz uma consulta. Sem compreender a organização da fonte de dados, usuários são muitas vezes forçados a buscar através de fontes de dados bastante grandes para localizar campos de interesse. Dada a complexidade dessa tarefa e o conhecimento detalhado da fonte de dados necessário, muitos usuários desistem de compilar suas próprias consultas.[001] When a connection to an external data source (for example, configuring a spreadsheet to make a connection to a database) is created, it can be quite difficult for a user to construct queries that show information that the user wants to retrieve. To get the information that the user wants to retrieve, a user building a connection may need to understand the data that is available from the data source. For example, a user may need to understand field names, table organization, and/or relationships between tables in order to efficiently compile a query. Without understanding data source organization, users are often forced to search through quite large data sources to locate fields of interest. Given the complexity of this task and the detailed knowledge of the data source required, many users give up compiling their own queries.

[002] É com relação a essas e outras considerações que a reve lação feita no presente documento é apresentada.[002] It is in relation to these and other considerations that the disclosure made in this document is presented.

SUMÁRIOSUMMARY

[003] São descritas tecnologias no presente documento para for necer sugestões de consulta. Para fornecer uma sugestão de consulta, pode ser detectado um acesso em uma fonte de dados. Uma sugestão para uma consulta de busca para a fonte de dados pode, então, ser determinada com base, pelo menos em parte, em dados não baseados em consulta (isto é, dados não contidos na consulta). A sugestão pode, então, ser retornada a um cliente para exibição em um elemento de interface de usuário ("UI") adequado.[003] Technologies are described in this document to provide consultation suggestions. To provide a query suggestion, a hit on a data source can be detected. A suggestion for a search query for the data source can then be determined based, at least in part, on non-query-based data (that is, data not contained in the query). The suggestion can then be passed back to a client for display in an appropriate user interface ("UI") element.

[004] Deveria ser entendido que a matéria descrita acima também pode ser implantada como um aparelho controlado por computador, um processo implantado por computador, um sistema de computação ou como um artigo de fabricação como um meio legível por computador. Embora as tecnologias apresentadas no presente documento sejam reveladas principalmente no contexto de fornecimento de sugestões de consulta com base pelo menos inicialmente em dados não baseados em consulta, os conceitos e tecnologias revelados no presente documento podem também ser utilizados para fornecer sugestões adicionais com base em dados de consulta também. Esses e vários outros recursos se tornarão evidentes a partir da leitura da seguinte Descrição Detalhada e de uma análise dos desenhos associados.[004] It should be understood that the matter described above may also be implanted as a computer-controlled apparatus, a computer-implanted process, a computing system or as an article of manufacture as a computer-readable medium. While the technologies presented in this document are primarily disclosed in the context of providing query suggestions based at least initially on non-query-based data, the concepts and technologies disclosed in this document may also be used to provide additional suggestions based on query data as well. These and many other features will become evident upon reading the following Detailed Description and a review of the associated drawings.

[005] Este Sumário é fornecido para introduzir uma seleção de conceitos em uma forma simplificada que serão ainda descritos abaixo na Descrição Detalhada. Este sumário não se destina a identificar recursos-chave ou recursos essenciais da matéria reivindicada, nem se pretende que este sumário seja usado para limitar o escopo da matéria reivindicada. Além disso, a matéria reivindicada não é limitada às implantações que solucionem qualquer uma ou todas as desvantagens verificadas em qualquer parte desta revelação.[005] This Summary is provided to introduce a selection of concepts in a simplified form which will be further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is this summary intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implantations that overcome any or all of the drawbacks found elsewhere in this disclosure.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[006] A Figura 1 é um diagrama de rede que mostra aspectos de um ambiente de operação ilustrativo e diversos componentes de software revelados no presente documento;[006] Figure 1 is a network diagram showing aspects of an illustrative operating environment and various software components disclosed herein;

[007] A Figura 2 é um fluxograma que mostra aspectos de uma rotina ilustrativa para processar consultas de usuário;[007] Figure 2 is a flowchart showing aspects of an illustrative routine for processing user queries;

[008] A Figura 3 é um fluxograma que mostra aspectos de uma rotina ilustrativa para fornecer sugestões de consulta;[008] Figure 3 is a flowchart showing aspects of an illustrative routine for providing query suggestions;

[009] As Figuras 4A a 4D são diagramas de UI que mostram as pectos de diversas UIs ilustrativas para fornecer sugestões de consul- ta, de acordo com diversas configurações apresentadas no presente documento;[009] Figures 4A to 4D are UI diagrams that show aspects of several illustrative UIs to provide consultation suggestions, according to the various configurations presented in this document;

[0010] A Figura 5 é um diagrama de arquitetura de computador que mostra uma arquitetura de hardware e software de computador ilustrativa;[0010] Figure 5 is a computer architecture diagram showing an illustrative computer hardware and software architecture;

[0011] A Figura 6 é um diagrama que ilustra um ambiente de com putação distribuída que pode implantar aspectos das tecnologias apresentadas no presente documento; e[0011] Figure 6 is a diagram illustrating a distributed computing environment that can deploy aspects of the technologies presented in this document; It is

[0012] A Figura 7 é um diagrama de arquitetura de computador que ilustra uma arquitetura de dispositivo de computação que pode implantar aspectos das tecnologias apresentadas no presente documento.[0012] Figure 7 is a computer architecture diagram illustrating a computing device architecture that can deploy aspects of the technologies presented in this document.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[0013] A descrição detalhada a seguir é direcionada a tecnologias para fornecer sugestões de consulta. As sugestões de consulta podem ser fornecidas através de uma UI gráfica ou um elemento da mesma. As sugestões de consulta podem pelo menos inicialmente ser baseadas em dados não baseados em consulta, tal como, por exemplo, dados de identidade, dados de perfil, informações contextualizadas ou outros dados não baseados em consulta. Sugestões de consulta adicionais podem também ser baseadas em dados de consulta, tais como, por exemplo, declarações de consulta parcial, declarações de consulta inteira ou quaisquer combinações dos mesmos que são relacionadas a uma consulta que é criada e/ou manipulada.[0013] The following detailed description is directed at technologies to provide query suggestions. Query suggestions can be provided through a graphical UI or an element thereof. Query suggestions may at least initially be based on non-query-based data, such as, for example, identity data, profiling data, contextualized information or other non-query-based data. Additional query suggestions can also be based on query data, such as, for example, partial query statements, full query statements, or any combinations thereof that are related to a query that is created and/or manipulated.

[0014] Conforme discutido brevemente acima, usuários iniciantes de sistemas de banco de dados e de processamento de dados podem ter dificuldade na montagem de consultas de banco de dados. Com a utilização de uma implantação das tecnologias reveladas no presente documento, entretanto, sugestões de consulta podem ser fornecidas a usuários iniciantes (e usuários mais avançados) de tal modo que consultas de dados completas e apropriadas sejam criadas com base pelo menos inicialmente em dados não baseados em consulta. Através do uso de dados não baseados em consulta, uma sugestão de consulta inicial pode ser gerada e fornecida a um usuário para exibição de um conjunto parcial de resultados de consulta. Subsequentemente, sugestões de consulta adicionais podem também ser fornecidas com base no conjunto parcial de resultados de consulta e dados não baseados em consulta, sendo que os resultados parciais adicionais são exibidos com base em sugestões selecionadas. Desse modo, usuários iniciantes podem visualizar o progresso de resultados através de criação/construção seletiva de uma consulta através das sugestões e, ainda, podem determinar mais facilmente como estruturar consultas futuras.[0014] As briefly discussed above, novice users of database and data processing systems may have difficulty putting together database queries. Using an implementation of the technologies disclosed in this document, however, query suggestions can be provided to beginning users (and more advanced users) such that complete and appropriate data queries are created based at least initially on non-query-based data. Through the use of non-query-based data, an initial query suggestion can be generated and provided to a user to display a partial set of query results. Subsequently, additional query suggestions may also be provided based on the partial set of query results and non-query-based data, with additional partial results displayed based on selected suggestions. In this way, novice users can visualize the progress of results through the selective creation/construction of a query through the suggestions and, even, can more easily determine how to structure future queries.

[0015] Consequentemente, uma implantação das tecnologias reve ladas no presente documento pode necessitar de um esforço reduzido de usuários iniciantes que desejam criar uma consulta de banco de dados. Adicionalmente, com a utilização das tecnologias reveladas no presente documento, usuários podem ter a capacidade de criar uma consulta de banco de dados inicial mais completa. O esforço reduzido pode também ser necessário de usuários quando consultas futuras forem criadas. Sugestões de consulta cada vez mais precisas podem também ser fornecidas que são baseadas em uso de consulta armazenada ou anterior. Embora listados separadamente, deve-se verificar que os benefícios descritos acima podem ser alcançados individualmente, independentemente, ou em combinação parcial/total de acordo com qualquer implantação desejada das tecnologias reveladas no presente documento. Ademais, benefícios adicionais podem se tornar evidentes através de uma implantação das tecnologias descritas no presente documento.[0015] Consequently, an implementation of the technologies disclosed in this document may require a reduced effort from novice users who wish to create a database query. Additionally, by utilizing the technologies disclosed in this document, users may have the ability to create a more complete initial database query. Reduced effort may also be required from users when future queries are created. More and more accurate query suggestions can also be provided that are based on stored or previous query usage. Although listed separately, it should be noted that the benefits described above can be achieved individually, independently, or in partial/total combination according to any desired deployment of the technologies disclosed herein. Furthermore, additional benefits may become evident through an implementation of the technologies described in this document.

[0016] Embora a matéria descrita no presente documento seja apresentada no contexto geral de módulos de programa que são executados em conjunto com a execução de um sistema operacional e programas de aplicativo em um sistema de computador, os versados na técnica irão reconhecer que outras implantações podem ser realizadas em combinação com outros tipos de módulos de programa. Em geral, os módulos de programa incluem rotinas, programas, componentes, estruturas de dados e outros tipos de estruturas que realizam tarefas particulares ou implantam tipos de dados abstratos particulares. Além disso, os versados na técnica irão entender que a matéria descrita no presente documento pode ser praticada com outras configurações de sistema de computador, incluindo dispositivos portáteis, sistemas de multiprocessador, eletrônicos de consumo baseados em microprocessador ou programáveis, minicomputadores, computadores centrais e similares.[0016] Although the subject matter described herein is presented in the general context of program modules that run in conjunction with running an operating system and application programs on a computer system, those skilled in the art will recognize that other deployments can be performed in combination with other types of program modules. In general, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular types of abstract data. Furthermore, those skilled in the art will understand that the subject matter described herein may be practiced with other computer system configurations, including handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframes, and the like.

[0017] Na seguinte descrição detalhada, são feitas referências aos desenhos anexos que formam uma parte do presente documento e são mostrados a título de ilustração de configurações ou exemplos específicos. Com referência, agora, aos desenhos, em que numerais semelhantes representam elementos semelhantes ao longo das diversas Figuras, aspectos de um sistema de computação e metodologia para fornecer sugestões de consulta serão descritos.[0017] In the following detailed description, references are made to the attached drawings which form a part of the present document and are shown by way of illustration of configurations or specific examples. With reference now to the drawings, in which like numerals represent like elements throughout the various Figures, aspects of a computing system and methodology for providing query suggestions will be described.

[0018] Em relação à Figura 1, detalhes serão fornecidos em rela ção a um ambiente de operação ilustrativo e diversos componentes de software revelados no presente documento. Em particular, a Figura 1 mostra aspectos de um sistema 100 para fornecer sugestões de consulta. O sistema 100 inclui um ou mais computadores cliente 101A e 101B (que podem ser denominados no presente documento no singular como um "cliente 101") em comunicação operacional com um sistema de processamento de dados 140. Os clientes 101 podem ser quaisquer sistemas de computador adequados que incluem, porém, sem limitação, computadores pessoais de mesa ou tipo laptop, dispositivos de computação do tipo tablet, telefones inteligentes, outros tipos de dispositivos móveis ou similares.[0018] With respect to Figure 1, details will be provided regarding an illustrative operating environment and various software components disclosed in this document. In particular, Figure 1 shows aspects of a system 100 for providing query suggestions. System 100 includes one or more client computers 101A and 101B (which may be referred to herein in the singular as a "client 101") in operational communication with a data processing system 140. Clients 101 may be any suitable computer system including, but not limited to, desktop or laptop-type personal computers, tablet-type computing devices, smart phones, other types of mobile devices, or the like.

[0019] Os clientes 101 podem ser configurados para executar pro dutos de software, tais como aplicativos 103 que fornecem interfaces de usuário 102 para a criação, edição e envio de consultas para acessar informações armazenadas no sistema de processamento de dados 140. Em relação a isso, os clientes 101 podem fornecer uma ou mais consultas 120A e pode receber resultados de consulta 121A em resposta às mesmas. As consultas 120A podem ser enviadas para transmissão através de uma rede (não mostrado na Figura 1), em algumas configurações. A rede pode incluir uma rede de comunicações de computador tal como a Internet, uma rede local ("LAN"), uma rede de longa distância ("WAN"), ou qualquer outro tipo de rede e pode ser utilizada para enviar as consultas 120A ao sistema de processamento de dados 140 para processamento de consulta e, subsequentemente, para retornar resultados de consulta 121A. O envio de consultas 120A e o retorno de resultados de consulta 121A são descritos mais inteiramente abaixo com referência à Figura 2.[0019] The clients 101 can be configured to run software products, such as applications 103 that provide user interfaces 102 for creating, editing and submitting queries to access information stored in the data processing system 140. In this regard, the clients 101 can provide one or more queries 120A and can receive query results 121A in response thereto. Queries 120A may be sent for transmission over a network (not shown in Figure 1) in some configurations. The network may include a computer communications network such as the Internet, a local area network ("LAN"), a wide area network ("WAN"), or any other type of network and may be used to send queries 120A to data processing system 140 for query processing and subsequently to return query results 121A. Sending queries 120A and returning query results 121A are described more fully below with reference to Figure 2.

[0020] Conforme mostrado na Figura 1, uma consulta 120B e da dos não baseados em consulta 124 podem ser enviados por um ou mais clientes 101 para transmissão para o sistema de processamento de dados 140. A consulta 120B pode incluir declarações de consulta parcial, declarações de consulta completa ou qualquer combinação das mesmas. A consulta 120B pode também incluir informações relacionadas a uma consulta parcial ou uma consulta nova que é processada ou compilada atualmente através das sugestões fornecidas pelo mecanismo revelado no presente documento.[0020] As shown in Figure 1, a query 120B and non-query-based data 124 may be sent by one or more clients 101 for transmission to the data processing system 140. The query 120B may include partial query statements, full query statements, or any combination thereof. Query 120B may also include information relating to a partial query or a new query that is currently processed or compiled through the suggestions provided by the mechanism disclosed herein.

[0021] Os dados não baseados em consulta 124 podem incluir in formações contextualizadas, informações de identificação, dados de perfil de usuário ou quaisquer outras informações adequadas não contidas na consulta 120B. Os dados não baseados em consulta 124 po- dem também incluir metadados relacionados a atividades em um cliente 101 em algumas implantações. Por exemplo, os dados não baseados em consulta 124 podem descrever atividades relacionadas a acesso ao sistema de processamento de dados 140 ou uma fonte de dados 141, atividades relacionadas a contato ou comunicações com outros usuários ou clientes, ou outras atividades similares que podem, por sua vez, ser usadas para determinar mais precisamente sugestões de consulta 125.[0021] Data not based on query 124 may include contextual information, identifying information, user profile data or any other appropriate information not contained in query 120B. Non-query-based data 124 may also include metadata related to activities on a client 101 in some deployments. For example, non-query-based data 124 may describe activities related to accessing the data processing system 140 or a data source 141, activities related to contacting or communicating with other users or customers, or other similar activities that may, in turn, be used to more accurately determine query suggestions 125.

[0022] De acordo com pelo menos uma configuração, os dados não baseados em consulta 124 incluem dados que descrevem um usuário de um cliente 101, tais como, dados de emprego, dados de identificação de empregado, dados de grupo/comitê de empregados e outros dados similares. Em outra configuração, os dados não baseados em consulta 124 incluem dados que descrevem atividades atuais ou previstas para um usuário de um cliente 101, tais como, por exemplo, dados que descrevem a utilização de fonte de dados típica para o usuário ou para usuários similares, dados que descrevem uma estrutura de consulta típica para o usuário ou para usuários similares outros dados similares. Adicionalmente, os dados não baseados em consulta 124 podem incluir informações de empresa ou corporativas em algu-mas implantações. Os dados não baseados em consulta 124 podem, também, incluir outras formas de dados que não são incluídos em uma consulta 120B sem que se afaste do escopo desta revelação.[0022] According to at least one embodiment, the non-query-based data 124 includes data describing a user of a customer 101, such as employment data, employee identification data, employee group/committee data, and other similar data. In another embodiment, non-query-based data 124 includes data describing current or anticipated activities for a user of a customer 101, such as, for example, data describing typical data source usage for the user or for similar users, data describing a typical query structure for the user or for similar users, and other similar data. Additionally, non-query-based data 124 may include company or corporate information in some deployments. Non-query-based data 124 may also include other forms of data that are not included in a query 120B without departing from the scope of this disclosure.

[0023] Conforme descrito em detalhes abaixo, os dados não base ados em consulta 124 podem ser usados para identificar consultas criadas por usuários ou clientes 101 referentes a um usuário ou cliente 101 que deseja criar uma nova consulta. Responsivas à transmissão de dados não baseados em consulta 124, uma ou mais sugestões de consulta 125 podem ser retornadas ao cliente 101. Adicionalmente, mediante a seleção de qualquer sugestão de consulta 125, uma con- sulta 120B pode ser atualizada para refletir a seleção e/ou mudanças e pode ser transmitida para o sistema de processamento de dados 140. Depois disso, sugestões de consulta adicionais 125 podem ser fornecidas ao cliente 101, junto com resultados de consulta 121B. O envio de dados não baseados em consulta 124, uma consulta 120B e o retorno da sugestão de consulta 125 são descritos mais inteiramente abaixo com referência às Figuras 3 a 4[0023] As described in detail below, non-query-based data 124 can be used to identify queries created by users or customers 101 referring to a user or customer 101 who wants to create a new query. Responsive to data transmission not based on 124 consultation, one or more consultation suggestions 125 may be returned to the customer 101. In addition, by selecting any suggestion of Consultation 125, a sulta 120b can be updated to reflect the selection and/or changes and can be transmitted to the data processing system 140. After that, additional consultation suggestions may be provided to customer 101 . Sending non-query-based data 124, a query 120B and returning query suggestion 125 are described more fully below with reference to Figures 3 to 4

[0024] Conforme ilustrado na Figura 1, o sistema de processamen to de dados 140 inclui diversos componentes configurados para realizar funções de processamento conforme descrito no presente documento em relação a processar e armazenar consultas 120, ao processamento de dados não baseados em consulta 124, ao retorno de resultados de consulta 121 e sugestões de consulta 125 e outra funcionalidade. Por exemplo, o sistema de processamento de dados 140 pode ser configurado para receber e processar as consultas 120 em uma ou mais dentre uma pluralidade de fontes de dados 141 (que podem ser denominadas no presente documento no singular como uma "fonte de dados 141" e/ou no plural como as "fontes de dados 141").[0024] As illustrated in Figure 1, the data processing system 140 includes various components configured to perform processing functions as described herein regarding processing and storing queries 120, processing non-query-based data 124, returning query results 121 and query suggestions 125, and other functionality. For example, data processing system 140 may be configured to receive and process queries 120 on one or more of a plurality of data sources 141 (which may be referred to herein in the singular as a "data source 141" and/or in the plural as the "data sources 141").

[0025] Geralmente, uma fonte de dados 141 recebe uma consulta 120A, realiza a consulta com base em declarações de consulta contidas na mesma e retorna os resultados de consulta 121A. Adicionalmente, de acordo com aspectos das tecnologias apresentadas no presente documento, informações de consulta anteriores 142 podem ser preenchidas com consultas e/ou metadados anteriores que descrevem dados não baseados em consulta 124 associados às consultas anteriores. Consequentemente, pelo menos uma porção da consulta 120A pode ser armazenada como informações de consulta anteriores 142 junto com dados não baseados em consulta 124 associados aos clientes 101 e usuários dos mesmos. Embora descritas como informações de consulta "anteriores", deve ser compreendido que as informações de consulta anteriores 142 podem também incluir um conjunto de declarações de consulta básica, um conjunto de declarações de consulta pré-preenchidas reflexivo de alguns dados não baseados em consulta 124, um conjunto de declarações de consulta padrão, e/ou quaisquer informações de consulta que não são diretamente baseadas em consultas enviadas ou completadas anteriormente 120A.[0025] Generally, a data source 141 receives a query 120A, performs the query based on query statements contained therein, and returns the results of query 121A. Additionally, in accordance with aspects of the technologies presented herein, prior query information 142 may be populated with prior queries and/or metadata that describe non-query-based data 124 associated with the prior queries. Accordingly, at least a portion of query 120A may be stored as prior query information 142 along with non-query-based data 124 associated with customers 101 and users thereof. Although described as "prior" query information, it should be understood that the prior query information 142 may also include a set of basic query statements, a set of pre-populated query statements reflective of some non-query-based data 124, a set of standard query statements, and/or any query information that is not directly based on previously submitted or completed queries 120A.

[0026] É observado que os atos descritos acima conforme relacio nados às fontes de dados 141 e informações de consulta anteriores 142 podem ser realizados continuamente de acordo com algumas configurações. Desse modo, à medida que novas consultas 120 são recebidas, uma ou mais porções de consultas enviadas podem ser armazenadas como informações de consulta anteriores 142, além das informações básicas descritas acima, para uso no fornecimento de sugestões de consulta 125 conforme descrito abaixo.[0026] It is noted that the acts described above as related to data sources 141 and previous query information 142 can be performed continuously according to some configurations. In this way, as new queries 120 are received, one or more portions of the queries sent may be stored as previous query information 142, in addition to the basic information described above, for use in providing query suggestions 125 as described below.

[0027] Conforme mostrado na Figura 1, o sistema de processa mento de dados 140 inclui uma camada de serviço de sugestão de consulta 143 executada no mesmo em uma configuração. A camada de serviço de sugestão de consulta 143 é um serviço ou aplicativo de software e pode ser integrada separadamente dentro de cada fonte de dados 141 (não ilustrado) em algumas implantações. Entretanto, a camada de serviço de sugestão de consulta 143 pode também ser executada como uma camada de serviço de sugestão de consulta autônoma (conforme ilustrado) em algumas implantações.[0027] As shown in Figure 1, the data processing system 140 includes a query suggestion service layer 143 performed thereon in one configuration. The query suggestion service layer 143 is a software service or application and may be separately integrated within each data source 141 (not shown) in some deployments. However, query suggestion service layer 143 may also run as a standalone query suggestion service layer (as illustrated) in some deployments.

[0028] A camada de serviço de sugestão de consulta 143 é confi gurada para processar dados não baseados em consulta 124 recebidos e para gerar uma sugestão de consulta 125 com base na consulta 120B, dados não baseados em consulta 124 e informações de consulta anteriores armazenadas 142. A camada de serviço de sugestão de consulta 143 compara informações nos dados não baseados em consulta 124 para retornar uma sugestão de consulta inicial 125. A suges- tão de consulta inicial 125 pode ser uma declaração de consulta parcial ou completa, uma declaração de organização, uma declaração de filtragem ou outra porção de uma consulta. A sugestão de consulta inicial 125 pode ser fornecida como um elemento de interface de usuário (UI) em algumas implantações.[0028] The query suggestion service layer 143 is configured to process received non-query suggestion 124 data and to generate a query suggestion 125 based on the query 120B, non-query suggestion data 124 and stored previous query information 142. The query suggestion service layer 143 compares information in the non-query suggestion data 124 to return an initial query suggestion 125. The initial query suggestion 125 can be a partial or complete query statement, an organizing statement, a filtering statement, or another portion of a query. Initial query suggestion 125 may be provided as a user interface (UI) element in some deployments.

[0029] A camada de serviço de sugestão de consulta 143 pode processar continuamente dados não baseados em consulta 124, consultas 120 e informações de consulta anteriores armazenadas 142 para pontuar ou categorizar ativamente sugestões de consulta em potencial. A categorização pode ser baseada em uma medida de confiança de que uma sugestão de consulta específica é relevante a um usuário com base nos dados não baseados em consulta 124, consulta 120 e informações de consulta anteriores 142. Consequentemente, uma ou mais sugestões de consulta 125 podem ser geradas, categorizadas e uma porção das mesmas (ou pelo menos uma das mesmas) pode ser apresentadas como a sugestão de consulta inicial 125. Alternativamente, diversas sugestões de consulta categorizadas podem ser fornecidas como um conjunto de sugestões de consulta iniciais 125.[0029] The query suggestion service layer 143 may continuously process non-query-based data 124, queries 120 and stored previous query information 142 to actively score or categorize potential query suggestions. Categorization may be based on a measure of confidence that a particular query suggestion is relevant to a user based on non-query-based data 124, query 120 and previous query information 142. Consequently, one or more query suggestions 125 may be generated, categorized and a portion of them (or at least one of them) may be presented as the initial query suggestion 125. Alternatively, several categorized query suggestions may be provided as a set of initial query suggestions 125.

[0030] Mediante aceitação, seleção ou outra ação tomada na su gestão inicial, a camada de serviço de sugestão de consulta 43 pode fornecer sugestões de consulta adicionais 125 de tal modo que uma consulta seja construída a partir de sugestões individuais, porções de declaração de consulta nova 120B fornecidas por um usuário ou qualquer combinação das mesmas. Geralmente, a sugestão de consulta inicial 125 e sugestões de consulta adicionais 125 podem ser determinadas através de comparação e/ou correlação de metadados ou consulta 120 a informações de consulta anteriores 142 e/ou informações de metadados anteriores. Desse modo, à medida que novas sugestões 125 são selecionadas e a consulta 120B é manipulada, sugestões adicionais são geradas com base nas sugestões aplicadas. A constru- ção de uma consulta 120B através das sugestões 125 descritas acima é descrita mais inteiramente com referência às Figuras 4A a 4D.[0030] Upon acceptance, selection or other action taken in the initial suggestion, the query suggestion service layer 43 may provide additional query suggestions 125 such that a query is constructed from individual suggestions, new query statement portions 120B provided by a user, or any combination thereof. Generally, the initial query suggestion 125 and additional query suggestions 125 may be determined by comparing and/or correlating metadata or querying 120 with prior query information 142 and/or prior metadata information. In this way, as new suggestions 125 are selected and the query 120B is manipulated, additional suggestions are generated based on the applied suggestions. The construction of a query 120B through the suggestions 125 described above is described more fully with reference to Figures 4A to 4D.

[0031] Referindo-se agora à Figura 2, detalhes adicionais serão fornecidos em relação ao processamento de consultas pelo sistema de processamento de dados 140 e à coleta e ao armazenamento de informações de consulta anteriores 142. Em particular, a Figura 2 é um fluxograma que mostra aspectos de um método ilustrativo 200 para processamento de consultas de dados 120, em uma configuração apresentada no presente documento.[0031] Referring now to Figure 2, additional details will be provided regarding the processing of queries by the data processing system 140 and the collection and storage of previous query information 142. In particular, Figure 2 is a flowchart showing aspects of an illustrative method 200 for processing queries of data 120, in an embodiment shown herein.

[0032] Conforme ilustrado, o método 200 inclui o recebimento de uma consulta 120A de um computador cliente 101, no bloco 202. Por exemplo, no exemplo mostrado na Figura 1, a consulta recebida 120A é direcionada a pelo menos uma fonte de dados 141. Consequentemente, a fonte de dados 141 recebe e processa a consulta 120A para produzir resultados de consulta 121A nesse exemplo.[0032] As illustrated, method 200 includes receiving a query 120A from a client computer 101 at block 202. For example, in the example shown in Figure 1, the received query 120A is directed to at least one data source 141. Accordingly, the data source 141 receives and processes the query 120A to produce query results 121A in that example.

[0033] Adicionalmente, em resposta ao recebimento da consulta 120A, o método 200 inclui, ainda, a coleta de dados não baseados em consulta 124 relacionados ao computador cliente 101, no bloco 204. Os dados não baseados em consulta 124 podem tomar qualquer uma das formas descritas acima e podem ser coletados pela fonte de dados alvo 141 para armazenamento como informações de consulta anteriores 142. Mediante a coleta dos dados não baseados em consulta 124, pelo menos uma porção da consulta recebida e/ou processada 120A e os dados não baseados em consulta coletados 124 podem ser armazenados como informações de consulta anteriores 142, no bloco 206. Consultas adicionais 120 podem ser recebidas e processadas conforme descrito acima em relação aos blocos 202 a 206. Conforme descrito acima, pelo menos uma porção de dados não baseados em consulta 124 relacionados ao cliente 101 e a consulta 120A é armazenada como informações de consulta anteriores 142. Os dados arma- zenados podem ser usados conforme descrito abaixo para gerar sugestões de consulta 125 com base em dados não baseados em consulta coletados recentemente 124 e/ou uma consulta 120B.[0033] Additionally, in response to receipt of the query 120A, the method 200 further includes collecting non-query-based data 124 related to the client computer 101 at block 204. The non-query-based data 124 may take any of the forms described above and may be collected by the target data source 141 for storage as prior query information 142. Upon collecting the non-query-based data 124, at least a portion of the query received and/or processed 120A and the collected non-query-based data 124 may be stored as prior query information 142 in block 206. Additional queries 120 may be received and processed as described above with respect to blocks 202-206. zenados may be used as described below to generate query suggestions 125 based on recently collected non-query-based data 124 and/or a query 120B.

[0034] Em relação à Figura 3, detalhes adicionais serão fornecidos em relação às tecnologias apresentadas no presente documento para fornecer uma ou mais sugestões de consulta 125. Em particular, a Figura 3 é um fluxograma que mostra aspectos de um método ilustrativo 300 para processamento de dados não baseados em consulta 124 pela camada de serviço de sugestão de consulta 143.[0034] With respect to Figure 3, additional details will be provided regarding the technologies presented herein to provide one or more query suggestions 125. In particular, Figure 3 is a flowchart showing aspects of an illustrative method 300 for processing non-query-based data 124 by the query-suggestion service layer 143.

[0035] O método 300 inclui o recebimento de uma consulta 120B de um cliente 101 no bloco 302. Embora descrito como recebendo uma consulta real 120B, deve ser compreendido que o método 300 e o bloco 302, podem ser adaptáveis para começar a execução através da abertura de um arquivo, a abertura de uma consulta anterior, da ação mediante uma consulta padrão, a ação mediante um arquivo de dados, ou qualquer outro ato adequado através de um cliente 101, aplicativo 103, e/ou interface de usuário 102. Consequentemente, o bloco 302 pode também incluir a detecção de acesso em uma fonte de dados 141, a inicialização de um cliente 101, a inicialização de uma aplicação 103, ou outro tipo de ação através da interface de usuário 102. O acesso na fonte de dados 141 pode englobar uma solicitação para acesso a dados armazenados na fonte de dados 141, através, por exemplo, de interfaces de usuário 102, argumentos de entrada em uma porção de uma declaração de consulta ou outras maneiras adequadas de acesso de dados.[0035] Method 300 includes receiving a query 120B from a client 101 at block 302. While described as receiving a real query 120B, it should be understood that method 300 and block 302 may be adaptable to begin execution by opening a file, opening a previous query, acting upon a standard query, acting upon a data file, or any other suitable act via a client 101, application 1 03, and/or user interface 102. Accordingly, block 302 may also include detecting access to a data source 141, starting a client 101, starting an application 103, or other type of action via user interface 102. Access to data source 141 may encompass a request for access to data stored in data source 141, through, for example, user interfaces 102, input arguments in a portion of a query statement or other suitable means of data access.

[0036] O método 300 inclui, ainda, a coleta de dados não basea dos em consulta 124 e/ou o processamento de uma consulta 120B no bloco 304. Por exemplo, dados não baseados em consulta 124 referentes a um cliente 101 e/ou um usuário do mesmo podem ser recebidos na camada de serviço de sugestão de consulta 143. Depois disso, a camada de serviço de sugestão de consulta 143 pode analisar os dados não baseados em consulta 124, uma consulta 120B, e/ou informações de consulta anteriores 142 para determinar uma sugestão de consulta inicial 125 no bloco 306. A sugestão de consulta inicial 125 é fornecida ao cliente 101 no bloco 308.[0036] The method 300 further includes collecting non-query-based data 124 and/or processing a query 120B in block 304. For example, non-query-based data 124 referring to a customer 101 and/or a user thereof can be received at the query suggestion service layer 143. Thereafter, the query suggestion service layer 143 can analyze the non-query suggestion data 124, a query 120B, and/or prior query information 142 to determine an initial query suggestion 125 at block 306. The initial query suggestion 125 is provided to the client 101 at block 308.

[0037] Mediante ação pelo cliente 101 na sugestão de consulta inicial 125, a camada de serviço de sugestão de consulta 143 pode fornecer sugestões de consulta adicionais 125 com base nos dados não baseados em consulta 124, na consulta 120B, e/ou nas informações de consulta anteriores 142. Por exemplo, a camada de serviço de sugestão de consulta 143 ou a fonte de dados 141 pode determinar que uma mudança de consulta é evidente após o fornecimento da sugestão de consulta 125 no bloco 310. Quando uma mudança de consulta foi detectada, a mudança é aplicada à consulta 120B no bloco 312 e a consulta 120B é processada no bloco 304. Alternativamente, nenhuma mudança de consulta pode ser detectada no bloco 310 e o método pode reiniciar o recebimento de informações para determinar novas sugestões de consulta 125. As informações da consulta processada 120B e dos dados não baseados em consulta 124 podem, então, ser usadas para determinar novas sugestões de consulta 125 através da iteração dos blocos 306 a 312.[0037] Upon action by the client 101 on the initial query suggestion 125, the query suggestion service layer 143 may provide additional query suggestions 125 based on the non-query suggestion based data 124, the query 120B, and/or the previous query information 142. For example, the query suggestion service layer 143 or the data source 141 may determine that a query change is evident after the query suggestion is provided 125 at block 310. When a query change has been detected, the change is applied to the query 120B at block 312 and the query 120B is processed at block 304. Alternatively, no query change may be detected at block 310 and the method may restart receiving information to determine new query suggestions 125. The information from the processed query 120B and non-query based data 124 can then be used to determine new query suggestions 125 through the iteration of blocks 306 to 312.

[0038] É observado que, de acordo com algumas implantações, apenas a sugestão de consulta inicial 125 baseada nos dados não baseados em consulta 124 pode ser fornecida. De acordo com outras implantações, iterações adicionais de sugestões de consulta 125 podem também ser fornecidas. Adicionalmente, as sugestões de consulta 125 atuadas no cliente 101 podem ser manipuladas por um usuário, criando, assim, uma nova consulta 120B para ser usada para novas sugestões de consulta 125. Dessa maneira, muitas sugestões de consulta diferentes 125 relacionadas a ações no cliente 101, uma consulta 120B, e/ou dados não baseados em consulta 124 podem ser fornecidos pela camada de serviço de sugestão de consulta 143 e muitas consultas diferentes podem ser compiladas.[0038] It is noted that, according to some deployments, only the initial query suggestion 125 based on the non-query-based data 124 can be provided. Under other deployments, additional iterations of query suggestions 125 may also be provided. Additionally, the query suggestions 125 acted on the client 101 can be manipulated by a user, thereby creating a new query 120B to be used for new query suggestions 125. In this way, many different query suggestions 125 relating to actions on the client 101, a query 120B, and/or data not based on the query 124 can be provided by the query suggestion service layer 143 and many different queries can be compiled.

[0039] As sugestões de consulta 125 podem assumir uma varie dade de formas. Por exemplo, as sugestões de consulta 125 podem incluir uma dica textual tal como uma sugestão de preenchimento textual automático para uma porção de uma declaração de consulta textual que é criada através da interface de usuário 102. As sugestões de consulta 125 podem incluir um elemento de UI renderizado através da interface de usuário 102. O elemento de UI pode incluir qualquer elemento gráfico desejado e pode descrever totalmente ou parcialmente uma sugestão de consulta 125.[0039] Consultation suggestions 125 can take a variety of forms. For example, query suggestions 125 may include a textual hint such as a textual autocomplete suggestion for a portion of a textual query statement that is created through user interface 102. Query suggestions 125 may include a UI element rendered through user interface 102. The UI element may include any desired graphical element and may fully or partially describe a query suggestion 125.

[0040] Mediante a ação pelo cliente 101 sobre a sugestão de con sulta 125, a interface de usuário 102 pode, pelo menos parcialmente, renderizar resultados na sugestão de consulta 125 com base na ação. Por exemplo, se uma sugestão de consulta específica 125 for selecionada, os resultados da seleção podem ser, pelo menos parcialmente, renderizados através da interface de usuário 102. Adicionalmente, a manipulação dos resultados inteiros ou parciais pode também ser possível, por exemplo, através de manipulação da interface de usuário 102 ou elementos individuais renderizados na mesma. Interfaces de usuário e elementos de UI individuais ilustrativos são descritos abaixo com referência às Figuras 4A a 4D.[0040] Upon action by the client 101 on the query suggestion 125, the user interface 102 may at least partially render results on the query suggestion 125 based on the action. For example, if a specific query suggestion 125 is selected, the results of the selection can be at least partially rendered through the user interface 102. Additionally, manipulation of the whole or partial results can also be possible, for example, through manipulation of the user interface 102 or individual elements rendered therein. Illustrative user interfaces and individual UI elements are described below with reference to Figures 4A through 4D.

[0041] As Figuras 4A a 4D são diagramas de interface de usuário que mostram aspectos de uma interface de usuário ilustrativa fornecida por um aplicativo ilustrativo 103, de acordo com diversas configurações apresentadas no presente documento. A interface de usuário descrita em relação ás Figuras 4A a 4D podem ser dispostas similares a uma interface de planilha para um aplicativo de planilha que tem acesso a uma ou mais fontes de dados e/ou sistemas de processamento de da dos. Outras interfaces de usuário também são aplicáveis e, portanto, a presente revelação não é limitada às formas específicas de interfaces ilustradas, porém, a qualquer interface de usuário disponível.[0041] Figures 4A to 4D are user interface diagrams showing aspects of an illustrative user interface provided by an illustrative application 103, in accordance with various configurations shown herein. The user interface described in relation to Figures 4A to 4D can be arranged similar to a spreadsheet interface for a spreadsheet application that has access to one or more data sources and/or data processing systems. Other user interfaces are also applicable and, therefore, the present disclosure is not limited to the specific forms of interfaces illustrated, but to any available user interface.

[0042] Voltando-se à Figura 4A, uma interface de usuário ilustrati va 102 será descrita para apresentar sugestões de consulta. Conforme mostrado, a interface de usuário 102 inclui uma pluralidade de colunas 401 que representam campos de dados acessados através de uma consulta 120 no alvo de dados 141. A consulta 120, nesse exemplo, inclui "informações de ID + Nome". Os dados consultados são exibidos em fileiras na Figura 4A. Entretanto, deve ser compreendido que qualquer forma desejada de exibição de dados pode ser implantada sem que se afaste do escopo desta revelação. Por exemplo, tabelas dinâmicas, gráficos, plotagens ou qualquer outra estrutura de consulta ou elemento adequado que pode ser exibido através da interface 102 são aplicáveis. Consequentemente, algumas implantações das tecnologias apresentadas no presente documento podem desviar dessas formas particulares ilustradas sem que se afaste do escopo desta revelação. Adicionalmente, embora ilustrado como incluindo-se campos de dados acessados através do processamento pelo menos parcial de uma consulta, o mesmo pode ser variado de tal modo que nenhum campo de dados esteja presente inicialmente, por exemplo, se um novo documento ou um documento em branco estiver sendo aberto.[0042] Returning to Figure 4A, an illustrative user interface 102 will be described to present query suggestions. As shown, user interface 102 includes a plurality of columns 401 representing fields of data accessed through a query 120 on data target 141. The query 120, in this example, includes "ID + Name information". The queried data is displayed in rows in Figure 4A. However, it should be understood that any desired form of data display can be implemented without departing from the scope of this disclosure. For example, pivot tables, graphs, plots or any other suitable query structure or element that can be displayed through interface 102 are applicable. Consequently, some deployments of the technologies disclosed herein may deviate from these particular illustrated ways without departing from the scope of this disclosure. Additionally, although illustrated as including data fields accessed through at least partial processing of a query, it can be varied such that no data fields are present initially, for example if a new document or a blank document is being opened.

[0043] A interface de usuário 102 também inclui um elemento de UI de sugestão de consulta 403 renderizado na mesma. O elemento de UI de sugestão de consulta 403 pode sinalizar o acesso ou uma solicitação para acessar uma fonte de dados 141 conforme descrito acima. Adicional ou alternativamente, o elemento de UI de sugestão de consulta 403 pode sinalizar uma solicitação para uma sugestão de consulta 125. Adicionalmente, o elemento de UI de sugestão de consulta 403 pode indicar que uma nova sugestão de consulta 125 está disponível para um usuário através da seleção do elemento 403. Por exemplo, a camada de serviço de sugestões de consulta 143 pode ter calculado, categorizado e determinado continuamente uma ou mais sugestões de consulta 125 para consumo por um usuário. Mediante a seleção por um usuário do elemento de UI de sugestão de consulta 403, a camada de serviço de sugestão de consulta 143 pode fornecer uma ou mais sugestões de consulta 125, conforme ilustrado na Figura 4B.[0043] The user interface 102 also includes a query suggestion UI element 403 rendered therein. The 403 Query Suggestion UI element may signal access to or a request to access a data source 141 as described above. Additionally or alternatively, the query suggestion UI element 403 may signal a request for a query suggestion 125. Additionally, the query suggestion UI element 403 may indicate that a new query suggestion 125 is available to a user upon selection of the element 403. For example, the query suggestions service layer 143 may have continuously calculated, categorized and determined one or more query suggestions 125 for consumption by a user. Upon selection by a user of the query suggestion UI element 403, the query suggestion service layer 143 may provide one or more query suggestions 125, as illustrated in Figure 4B.

[0044] A interface de usuário 102A da Figura 4B inclui duas suges tões de consulta 125A e 125B renderizadas na mesma. Deve-se compreender que uma identificação alternativa das sugestões de consulta 125 tal como, por exemplo, uma identificação que compreende símbolos representativos do conteúdo real da sugestão de consulta 125 pode também ser implantada. Por exemplo, a sugestão de consulta 125A pode compreender o acesso a um campo de dados identificado como "Informações de Trabalho". Adicionalmente, a sugestão de consulta 125B pode compreender o acesso a um campo de dados identificado como "Endereço".[0044] The user interface 102A of Figure 4B includes two query suggestions 125A and 125B rendered therein. It should be understood that an alternative identification of the query hint 125 such as, for example, an identification comprising symbols representative of the actual content of the query hint 125 may also be implemented. For example, query suggestion 125A may comprise accessing a data field identified as "Job Information". Additionally, query suggestion 125B may comprise accessing a data field identified as "Address".

[0045] Geralmente, as sugestões de consulta 125A e 125B e ou tras sugestões de consulta 125 descritas no presente documento, podem ser baseadas pelo menos parcialmente em dados não baseados em consulta 124. Conforme descrito acima, dados não baseados em consulta podem tomar uma variedade de formas, incluindo dados de emprego. Nesse exemplo específico, os dados não baseados em consulta 124 podem indicar um usuário da interface 102A como pertencente a um grupo específico de empregados. Adicionalmente, o grupo específico de empregados pode gerar, regularmente, consultas que incluem tanto "Endereço" quanto "Informações de Trabalho". Consequentemente, conforme ilustrado nesse exemplo, as sugestões de consulta 125A e 125B são baseadas pelo menos em parte na probabilidade de que um membro do grupo específico de empregados incluiria tipicamente "Endereço" e/ou "Informações de Trabalho" em uma consulta. Deve-se compreender prontamente que outras formas e maneiras de levar em consideração dados não baseados em consulta 124 também são aplicáveis. Depois disso, se a sugestão de consulta 125A for selecionada, o campo de dados nomeado "Informações de Trabalho" pode ser anexado à consulta e apresentado na interface de usuário 102B, conforme ilustrado na Figura 4C.[0045] Generally, query suggestions 125A and 125B and other query suggestions 125 described herein may be based at least partially on non-query-based data 124. As described above, non-query-based data can take a variety of forms, including employment data. In this particular example, the non-query-based data 124 may indicate a user of interface 102A as belonging to a specific group of employees. Additionally, the specific group of employees can regularly generate queries that include both "Address" and "Job Information". Accordingly, as illustrated in this example, query suggestions 125A and 125B are based at least in part on the likelihood that a specific employee group member would typically include "Address" and/or "Job Information" in a query. It should be readily understood that other forms and ways of taking into account non-query-based data 124 are also applicable. Thereafter, if query suggestion 125A is selected, the data field named "Job Information" can be appended to the query and displayed on user interface 102B, as illustrated in Figure 4C.

[0046] Conforme mostrado na Figura 4C, a interface de usuário 102B inclui a sugestão de consulta 125A renderizada na mesma adjacente aos campos de dados anteriores da coluna 401A e da coluna 401B. Desse modo, uma nova consulta 120 foi compilada tendo resultados exibidos nas colunas 401A a 401C. Formas adicionais de sugestões de consulta 125 também são possíveis. Por exemplo, as sugestões de consulta 125C e 125D podem incluir ações de filtragem e/ou de organização mediante os campos de dados consultados e exibidos. Nesse exemplo específico, a sugestão de consulta 125C representa a filtragem dos dados exibidos com base em um nome específico (por exemplo, J. Doe) da coluna 401B. Por exemplo, a sugestão de consulta 125C pode representar a filtragem por "Nome = J. Doe" ou outra sugestão similar. Outras sugestões de filtragem podem incluir tanto uma opção de filtragem escondida quanto um argumento de filtro em combinação. Por exemplo, embora uma "Estado" não seja ilustrada como sendo renderi- zada na interface de usuário 102B, a sugestão de consulta 125C poderia representar, possivelmente, a filtragem por "Estado=Ativo" ou outras opções de filtragem e argumentos similares dependendo de dados não baseados em consulta 124, sugestões de consulta selecionadas 125 e/ou informações de consulta anteriores 142.[0046] As shown in Figure 4C, the user interface 102B includes query suggestion 125A rendered therein adjacent to the previous data fields of column 401A and column 401B. In this way, a new query 120 was compiled having results displayed in columns 401A to 401C. Additional forms of query suggestions 125 are also possible. For example, query suggestions 125C and 125D may include filtering and/or organizing actions based on the queried and displayed data fields. In this particular example, query suggestion 125C represents filtering the displayed data based on a specific name (eg J. Doe) from column 401B. For example, query hint 125C might represent filtering by "Name = J. Doe" or another similar hint. Other filtering suggestions can include both a hidden filtering option and a filter argument in combination. For example, although a "State" is not illustrated as being rendered in the user interface 102B, the query suggestion 125C could possibly represent filtering by "State=Active" or other filtering options and similar arguments depending on non-query-based data 124, selected query suggestions 125, and/or previous query information 142.

[0047] Conforme ilustrado adicionalmente, a sugestão de consulta 125D representa a organização dos dados exibidos com base em informações em "Informações de Trabalho". Outros argumentos de or- ganização também são aplicáveis dependendo de dados não baseados em consulta 124, sugestões de consulta selecionadas 125 e/ou informações de consulta anteriores 142. Consequentemente, se a sugestão de consulta 125D for selecionada, os dados exibidos na interface de usuário 102B são organizados com base em "Informações de Trabalho" através da operação de organização 422, conforme ilustrado na Figura 4D.[0047] As further illustrated, query suggestion 125D represents the organization of displayed data based on information in "Job Information". Other sorting arguments are also applicable depending on non-query-based data 124, selected query suggestions 125, and/or past query information 142. Consequently, if query hint 125D is selected, data displayed on user interface 102B is sorted based on "Job Information" through sorting operation 422, as illustrated in Figure 4D.

[0048] A interface de usuário 102C ilustrada na Figura 4D mostra a operação de organização de dados 422 e os resultados de organização. Adicionalmente, mais elementos de UI de sugestão de consultas 403 podem ser renderizados para indicar novas sugestões de consulta, para solicitar novas sugestões de consulta, para solicitar sugestões de consulta adicionais ou outras ações ou indicações adequadas.[0048] The user interface 102C illustrated in Figure 4D shows the data sorting operation 422 and the sorting results. Additionally, more 403 query suggestion UI elements may be rendered to indicate new query suggestions, to request new query suggestions, to request additional query suggestions, or other appropriate actions or indications.

[0049] Deve ser entendido que as operações lógicas descritas acima e em outro local no presente documento podem ser implantadas (1) como uma sequência de ações implantadas por computador ou módulos de programa executados em um sistema de computação e/ou (2) como módulos de circuito ou circuitos lógicos de máquina interco- nectado no sistema de computação. A implantação é uma questão de escolha dependente do desempenho e de outras exigências do sistema de computação. Consequentemente, as operações lógicas descritas no presente documento são chamadas de maneira variada como estados, operações, dispositivos estruturais, ações ou módulos. Essas operações, dispositivos estruturais, ações e módulos podem ser implantados em software, em firmware, em lógica digital de propósito especial e qualquer combinação dos mesmos. Deve ser entendido que mais ou menos operações podem ser realizadas do que o mostrado nas Figuras e descrito no presente documento. Essas operações também podem ser realizadas em uma ordem diferente daquelas descritas no presente documento.[0049] It should be understood that the logic operations described above and elsewhere in this document may be implemented (1) as a sequence of actions implemented by computer or program modules executed in a computing system and/or (2) as circuit modules or machine logic circuits interconnected in the computing system. Deployment is a matter of choice dependent on the performance and other requirements of the computing system. Consequently, the logical operations described in this document are referred to variously as states, operations, structural devices, actions or modules. These operations, structural devices, actions, and modules can be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. It should be understood that more or less operations can be performed than shown in the Figures and described in the present document. These operations can also be performed in an order other than those described in this document.

[0050] A Figura 5 ilustra uma arquitetura de computador ilustrativa 500 para um dispositivo que pode executar os componentes de software descritos no presente documento para fornecer sugestões de consulta. Desse modo, a arquitetura de computador 500 ilustrada na Figura 5 ilustra uma arquitetura para um computador-servidor, telefone móvel, um PDA, um telefone inteligente, um computador do tipo desktop, um computador do tipo netbook, um computador do tipo tablet e/ou um computador do tipo laptop. A arquitetura de computador 500 pode ser utilizada para executar qualquer aspecto dos componentes de software apresentados no presente documento.[0050] Figure 5 illustrates an illustrative computer architecture 500 for an apparatus that can execute the software components described herein to provide query suggestions. Thus, the computer architecture 500 illustrated in Figure 5 illustrates an architecture for a server computer, mobile phone, a PDA, a smart phone, a desktop computer, a netbook computer, a tablet computer, and/or a laptop computer. Computer architecture 500 can be used to run any aspect of the software components disclosed herein.

[0051] A arquitetura de computador 500 ilustrada na Figura 5 inclui uma unidade de processamento central 502 ("CPU"), uma memória de sistema 504, incluindo uma memória de acesso aleatório 506 ("RAM") e memória apenas para leitura ("ROM") 508 e um barramento de sistema 510 que acopla a memória 504 à CPU 502. Um sistema de entra- da/saída básico contendo as rotinas básicas que ajudam a transferir informações entre elementos na arquitetura de computador 500, como durante a inicialização, é armazenado na ROM 508. A arquitetura de computador 500 inclui, ainda, um dispositivo de armazenamento em massa 512 para armazenar a operação 518 e um ou mais programas de aplicativo que incluem, porém, sem limitação, a camada de serviço de sugestão de consulta 143 e informações de consulta anteriores 142.[0051] The computer architecture 500 illustrated in Figure 5 includes a central processing unit 502 ("CPU"), system memory 504, including random access memory 506 ("RAM") and read-only memory ("ROM") 508, and a system bus 510 that couples memory 504 to CPU 502. A basic input/output system containing the basic routines that help transfer information between elements in the computer architecture 500, such as during startup, is stored in ROM 508. The computer architecture 500 further includes a mass storage device 512 for storing operation 518 and one or more application programs that include, but are not limited to, the query suggestion service layer 143 and prior query information 142.

[0052] O dispositivo de armazenamento em massa 512 é conecta do à CPU 502 através de um controlador de armazenamento em massa (não mostrado) conectado ao barramento 510. O dispositivo de armazenamento em massa 512 e seu meio legível por computador associado fornecem armazenamento não volátil para a arquitetura de computador 500. Embora a descrição de meio legível por computador contido no presente documento se refira a um dispositivo de armazenamento em massa, como um disco rígido ou uma unidade de CD- ROM, deve-se ser entendido pelos versados na técnica que o meio legível por computador pode ser qualquer meio legível por computador disponível ou meio de comunicação que pode ser acessado pela arquitetura de computador 500.[0052] The mass storage device 512 is connected to the CPU 502 via a mass storage controller (not shown) connected to the bus 510. The mass storage device 512 and its associated computer readable medium provide non-volatile storage for the computer architecture 500. Although the description of computer readable medium contained herein refers to a mass storage device such as a hard disk or a CD-ROM drive, it should be understood by those skilled in the art that the computer-readable medium can be any available computer-readable medium or communication medium that can be accessed by computer architecture 500.

[0053] Os meios de comunicação incluem instruções legíveis por computador, estruturas de dados, módulos de programa, ou outros dados em um sinal de dados modulados, tal como uma onda de portador ou outro mecanismo de transporte, e inclui quaisquer meios de entrega. O termo "sinal de dados modulado" significa um sinal que tem uma ou mais de suas características alteradas ou ajustadas de maneira a codificar informações no sinal. A título de exemplo, e não limitação, os meios de comunicação incluem meios com fios tal como uma rede com fios ou conexão com fios direta, e meios sem fios tais como acústica, RF, infravermelho e outros meios sem fios. As combinações dos supracitados também devem ser abrangidas pelo escopo de meios legíveis por computador.[0053] The communication media includes computer-readable instructions, data structures, program modules, or other data on a modulated data signal, such as a carrier wave or other transport mechanism, and includes any delivery means. The term "modulated data signal" means a signal that has one or more of its characteristics altered or adjusted in such a way as to encode information into the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. Combinations of the foregoing should also fall within the scope of computer-readable media.

[0054] A título de exemplo, e não de limitação, os meios de arma zenamento de computador podem incluir meios voláteis e não voláteis, meios removíveis e não removíveis implantados em qualquer método ou tecnologia para armazenamento de informações, tal como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Por exemplo, os meios de computador incluem, sem limitação, RAM, ROM, EPROM, EEPROM, memória flash ou outra tecnologia de memória de estado sólido, CD-ROM, discos versáteis digitais ("DVD"), HD-DVD, BLU-RAY, ou outro armazenamento óptico, cassetes magnéticos, fita magnética, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que pode ser usado para armazenar as informações desejadas e que pode ser acessado pela arquitetura de compu-tador 500. Para propósitos das reivindicações, a expressão "meio de armazenamento de computador" e variações da mesma, não inclui ondas ou sinais em si e/ou meios de comunicação.[0054] By way of example, and not limitation, computer storage media may include volatile and non-volatile media, removable and non-removable media implanted in any method or technology for storing information, such as computer-readable instructions, data structures, program modules or other data. For example, computer media include, without limitation, RAM, ROM, EPROM, EEPROM, flash memory or other solid-state memory technology, CD-ROM, digital versatile disks ("DVD"), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and that can be accessed by computer architecture 500. For purposes of the claims, the term "computer storage medium" and variations thereof, does not include waves or signals per se and/or media.

[0055] De acordo com várias modalidades, a arquitetura de compu tador 500 pode operar em um ambiente ligado em rede com o uso de conexões lógicas a computadores remotos através de uma rede como uma rede 104. A arquitetura de computador 500 pode se conectar à rede 104 através de uma unidade de interface de rede 516 conectada ao barramento 510. Deve ser entendido que a unidade de interface de rede 516 também pode ser utilizada para conectar a outros tipos de redes sistemas de computador remotos, por exemplo, um sistema de processamento de dados 140 e/ou clientes 101. A arquitetura de computador 500 também pode incluir um controlador de entrada/saída 518 para receber e processar entrada de vários outros dispositivos, incluindo um teclado, mouse ou caneta tipo stylus eletrônica (não mostrado na Figura 5). De modo similar, o controle de entrada/saída 518 pode fornecer uma saída para uma tela de exibição, uma impressora ou outro tipo de dispositivo de saída (não mostrado na Figura 5).[0055] According to various embodiments, the computer architecture 500 can operate in a networked environment using logical connections to remote computers through a network such as a network 104. The computer architecture 500 can connect to the network 104 through a network interface unit 516 connected to the bus 510. It should be understood that the network interface unit 516 can also be used to connect remote computer systems to other types of networks , for example, a data processing system 140 and/or clients 101. Computer architecture 500 may also include an input/output controller 518 for receiving and processing input from various other devices, including a keyboard, mouse, or electronic stylus pen (not shown in Figure 5). Similarly, input/output control 518 may provide output to a display screen, printer, or other type of output device (not shown in Figure 5).

[0056] Deveria ser entendido que os componentes de software descritos no presente documento podem, quando carregados na CPU 502 e executados, transformar a CPU 502 e a arquitetura de computador geral 500 de um sistema de computação de propósito geral em um sistema de computação de propósito especial customizado para facilitar a funcionalidade apresentada no presente documento. A CPU 502 pode ser construída a partir de qualquer número de transistores ou outros elementos de circuito distintos, que podem, individual ou coletivamente assumir qualquer número de estados. Mais especificamente, a CPU 502 pode operar como uma máquina de estado finito, em resposta a instruções executáveis contidas nos módulos de software revelados no presente documento. Essas instruções executáveis por computador podem transformar a CPU 502 mediante a especificação de como a CPU 502 transita entre estados, transformando assim os transistores ou outros elementos de hardware distintos que constituem a CPU 502.[0056] It should be understood that the software components described in this document can, when loaded on the CPU 502 and executed, transform the CPU 502 and the general computer architecture 500 from a general purpose computing system to a special purpose computing system customized to facilitate the functionality presented in this document. CPU 502 can be constructed from any number of transistors or other discrete circuit elements, which can individually or collectively assume any number of states. More specifically, CPU 502 can operate as a finite state machine, in response to executable instructions contained in software modules disclosed herein. These computer-executable instructions can transform the CPU 502 by specifying how the CPU 502 transitions between states, thereby transforming the transistors or other discrete hardware elements that make up the CPU 502.

[0057] A codificação dos módulos de software apresentados no presente documento também pode transformar a estrutura física dos meios legíveis por computador apresentados no presente documento. A transformação específica de estrutura física pode depender de vários fatores, em diferentes implantações desta descrição. Exemplos de tais fatores podem incluir, sem limitação, a tecnologia usada para implantar o meio legível por computador, seja o meio legível por computador caracterizada como armazenamento primário ou secundário, e similares. Por exemplo, se o meio legível por computador for implantado como memória de base semicondutora, o software revelado no presente documento pode ser codificado no meio legível por computador media mediante a transformação do estado físico da memória semicondutora. Por exemplo, o software pode transformar o estado de transistores, ca- pacitores ou outros elementos de circuito que constituem a memória semicondutora. O software também pode transformar o estado físico de tais componentes a fim de armazenar dados nos mesmos.[0057] The encoding of the software modules presented in this document can also transform the physical structure of the computer-readable media presented in this document. The specific physical structure transformation may depend on several factors, in different deployments of this description. Examples of such factors may include, without limitation, the technology used to deploy the computer-readable medium, whether the computer-readable medium is characterized as primary or secondary storage, and the like. For example, if the computer-readable medium is implanted as semiconductor-based memory, the software disclosed herein can be encoded on the computer-readable medium by transforming the physical state of the semiconductor memory. For example, software can transform the state of transistors, capacitors, or other circuit elements that make up semiconductor memory. The software can also transform the physical state of such components in order to store data in them.

[0058] Como outro exemplo, o meio legível por computador reve lado no presente documento pode ser implantado com o uso de tecnologia magnética ou óptica. Em tais implantações, o software apresentado no presente documento pode transformar o estado físico de meio magnético ou óptico, quando o software for codificado no mesmo. Essas transformações podem incluir alterar as características magnéticas de locais particulares em um dado meio magnético. Essas transformações também podem incluir alterar os recursos físicos ou características de locais particulares em um dado meio óptico, para mudar as características ópticas desses locais. Outras transformações de meio físico são possíveis sem que se afaste do escopo e do espírito da presente descrição, em que os exemplos anteriormente mencionados servem apenas para facilitar essa discussão.[0058] As another example, the computer-readable medium disclosed herein may be implanted using magnetic or optical technology. In such deployments, the software disclosed herein can transform the physical state of magnetic or optical media when the software is encoded thereon. These transformations may include changing the magnetic characteristics of particular locations in a given magnetic medium. These transformations may also include altering the physical features or characteristics of particular locations on a given optical medium to change the optical characteristics of those locations. Other physical environment transformations are possible without departing from the scope and spirit of the present description, in which the previously mentioned examples only serve to facilitate this discussion.

[0059] À luz de do disposto acima, deve-se entender que muitos tipos de transformações físicas ocorrem na arquitetura de computador 500 a fim de armazenar e executar os componentes de software apresentados no presente documento. Também deveria ser entendido que a arquitetura de computador 500 pode incluir outros tipos de dispositivos de computação, incluindo computadores portáteis, sistemas de computador integrado, assistente digital pessoal e outros tipos de dispositivos de computação conhecidos pelos versados na técnica. Deve ser contemplado que a arquitetura de computador 500 pode não incluir todos os componentes mostrados na Figura 5, pode incluir outros componentes que não são mostrados explicitamente na Figura 5, ou pode utilizar uma arquitetura completamente diferente do que aquela mostrada na Figura 5.[0059] In light of the foregoing, it should be understood that many types of physical transformations occur in the computer architecture 500 in order to store and run the software components disclosed herein. It should also be understood that computer architecture 500 can include other types of computing devices, including handheld computers, integrated computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It should be appreciated that computer architecture 500 may not include all of the components shown in Figure 5, it may include other components that are not explicitly shown in Figure 5, or it may utilize a completely different architecture than that shown in Figure 5.

[0060] A Figura 6 ilustra um ambiente de computação distribuída 500 que pode executar os componentes de software descritos no presente documento para fornecer sugestões de consulta. Desse modo, o ambiente de computação distribuída 600 ilustrado na Figura 6 pode ser usado par fornecer a funcionalidade descrita no presente documento em relação ao sistema 100. O ambiente de computação distribuída 600 pode ser utilizado, desse modo, para executar quaisquer aspectos dos componentes de software apresentados no presente documento.[0060] Figure 6 illustrates a distributed computing environment 500 that can execute the software components described herein to provide query suggestions. Thus, the distributed computing environment 600 illustrated in Figure 6 can be used to provide the functionality described herein in relation to the system 100. The distributed computing environment 600 can thus be used to run any aspect of the software components disclosed herein.

[0061] De acordo com várias implantações, o ambiente de compu tação distribuída 600 inclui um ambiente de computação 602 que opera em, em comunicação com, ou como parte da rede 604. A rede 604 também pode incluir várias redes de acesso. Um ou mais dispositivos de cliente 606A a 606N (denominados doravante no presente documento coletivamente e/ou genericamente como "clientes 606") podem se comunicar com o ambiente de computação 602 por meio da rede 604 e/ou outras conexões (não ilustrado na Figura 6). Na modalidade ilustrada, os clientes 606 incluem um dispositivo de computação 606A tal como um computador do tipo laptop, um computador de mesa ou outro dispositivo de computação; um dispositivo de computação do tipo slate ou tablet ("dispositivo de computação do tipo tablet") 606B; a mobile dispositivo de computação 606C tal como um telefone móvel, um telefone inteligente ou outro dispositivo de computação móvel; um computador servidor 606D; e/ou outros dispositivos 606N. Deve ser compreendido que qualquer número de clientes 606 pode se comunicar com o ambiente de computação 602. Duas arquiteturas de computação exemplificativas para os clientes 606 são ilustradas e descritas no presente documento com referência às Figuras 5 e 7. Deve-se compreender que os clientes 606 ilustrados e arquiteturas de compu-tação ilustradas descritos no presente documento são ilustrativos e não devem ser interpretados como sendo limitados de qualquer forma.[0061] In accordance with various implementations, distributed computing environment 600 includes a computing environment 602 that operates on, in communication with, or as part of network 604. Network 604 may also include multiple access networks. One or more client devices 606A to 606N (hereinafter referred to collectively and/or generically as "clients 606") may communicate with computing environment 602 via network 604 and/or other connections (not illustrated in Figure 6). In the illustrated embodiment, clients 606 include a computing device 606A such as a laptop computer, desktop computer, or other computing device; a slate or tablet computing device ("tablet computing device") 606B; a mobile computing device 606C such as a mobile phone, smart phone or other mobile computing device; a server computer 606D; and/or other 606N devices. It is to be understood that any number of clients 606 can communicate with the computing environment 602. Two exemplary computing architectures for the clients 606 are illustrated and described herein with reference to Figures 5 and 7. It is to be understood that the illustrated clients 606 and illustrated computing architectures described herein are illustrative and are not to be construed as being limiting in any way.

[0062] Na modalidade ilustrada, o ambiente de computação 602 inclui servidores de aplicativo 608, armazenamento de dados 610 e uma ou mais interfaces de rede 612. De acordo com várias implantações, a funcionalidade dos servidores de aplicativo 608 pode ser fornecida por um ou mais computadores servidores que são executados como parte de, ou em comunicação com, a rede 604. Os servidores de aplicativo 608 podem hospedar vários serviços, máquinas virtuais, portais, e/ou outros recursos. Na modalidade ilustrada, os servidores de aplicativo 608 hospedam uma ou mais máquinas virtuais 614 para hospedar aplicativos ou outra funcionalidade. De acordo com várias implantações, as máquinas virtuais 614 hospedam um ou mais aplicativos e/ou módulos de software para fornecer a funcionalidade descrita no presente documento para fornecer sugestões de consulta. Deve-se compreender que essa modalidade é ilustrativa e não deve ser interpretada como sendo limitadora de qualquer forma. Os servidores de aplicativo 608 também hospedam ou fornecem acesso a um ou mais portais da Web, páginas de enlace, sites da Web e/ou outras informações ("portais da Web") 616.[0062] In the illustrated embodiment, the computing environment 602 includes application servers 608, data storage 610 and one or more network interfaces 612. According to various implementations, the functionality of application servers 608 can be provided by one or more server computers that run as part of, or in communication with, network 604. Application servers 608 can host various services, virtual machines, portals, and/or other resources. In the illustrated embodiment, application servers 608 host one or more virtual machines 614 for hosting applications or other functionality. In accordance with various deployments, virtual machines 614 host one or more applications and/or software modules to provide the functionality described herein to provide query suggestions. It should be understood that this modality is illustrative and should not be interpreted as being limiting in any way. Application servers 608 also host or provide access to one or more web portals, link pages, websites and/or other information ("web portals") 616.

[0063] De acordo com várias implantações, os servidores de apli cativo 608 também incluem um ou mais serviços de caixa de correio 618 e um ou mais serviços de mensagens 620. Os serviços de caixa de correio 618 podem incluir serviços de correio eletrônico ("e-mail"). Os serviços de caixa de correio 618 podem também incluir vários serviços de gerenciamento de informações pessoais ("PIM") que incluem, porém, sem limitação, serviços de calendário, serviços de gerenciamento de contato, serviços de colaboração e/ou outros serviços. Os serviços de mensagens 620 podem incluir, mas sem limitação, serviços de mensagens instantâneas, serviços de bate-papo, serviços de fórum e/ou outros serviços de mensagens.[0063] According to various implementations, the application servers 608 also include one or more mailbox services 618 and one or more messaging services 620. The mailbox services 618 may include electronic mail ("e-mail") services. Mailbox services 618 may also include various personal information management ("PIM") services which include, but are not limited to, calendaring services, contact management services, collaboration services and/or other services. Messaging services 620 may include, but are not limited to, instant messaging services, chat services, forum services, and/or other messaging services.

[0064] Os servidores de aplicativo 608 também podem incluir um ou mais serviços de redes sociais 622. Os serviços de redes sociais 622 podem incluir vários serviços de redes sociais, incluindo, mas sem limitação, serviços para compartilhar ou postar atualizações de estado, mensagens instantâneas, enlaces, fotos, vídeos e/ou outras informações; serviços para comentar ou exibir interesse em artigos, produtos, blogs ou outros recursos; e/ou outros serviços. Em algumas modalidades, os serviços de redes sociais 622 são fornecidos por ou incluem o serviço de rede social FACEBOOK, o serviço de rede social profissional LINKEDIN, o serviço de rede social MYSPACE, o serviço de rede geográfica FOURSQUARE, o serviço de rede de colegas e escritório YAMMER e semelhantes. Em outras modalidades, os serviços de redes sociais 622 são fornecidos por outros serviços, sítios e/ou provedores que podem ou podem não ser conhecidos explicitamente como provedores de redes sociais. Por exemplo, alguns sítios da web permitem que usuários interajam uns com os outros por meio de e-mail, serviços de bate-papo e/ou outros meios durante várias atividades e/ou contex- tos tal como ler artigos publicados, comentar em mercadorias ou serviços, publicar, colaboração, jogos e semelhantes. Exemplos de tais serviços incluem, porém, sem limitação, o serviço WINDOWS LIVE e o serviço XBOX LIVE da MICROSOFT CORPORATION em Redmond, Washington. Outros serviços são possíveis e são contemplados.[0064] Application servers 608 may also include one or more social networking services 622. Social networking services 622 may include various social networking services, including, but not limited to, services for sharing or posting status updates, instant messages, links, photos, videos and/or other information; services to comment on or display interest in articles, products, blogs or other resources; and/or other services. In some embodiments, the social networking services 622 are provided by or include the FACEBOOK social networking service, the LINKEDIN professional social networking service, the MYSPACE social networking service, the FOURSQUARE geographic networking service, the YAMMER office and colleagues networking service, and the like. In other embodiments, social networking services 622 are provided by other services, sites, and/or providers that may or may not be known explicitly as social networking providers. For example, some websites allow users to interact with each other via email, chat services and/or other means during various activities and/or contexts such as reading published articles, commenting on goods or services, publishing, collaboration, games and the like. Examples of such services include, but are not limited to, the WINDOWS LIVE service and the XBOX LIVE service from MICROSOFT CORPORATION in Redmond, Washington. Other services are possible and contemplated.

[0065] Os serviços de redes sociais 622 também podem incluir serviços de comentários, blogs e/ou microblogs. Exemplos de tais serviços incluem, porém, sem limitação, o serviço de comentários YELP, o serviço de revisão KUDZU, o serviço de microblog de empresas OFFICETALK, o serviço de mensagens TWITTER, o serviço GOOGLE BUZZ e/ou outros serviços. Deve ser entendido que as listas acima de serviços não são exaustivas e que diversos serviços de redes sociais 622 adicionais e/ou alternativos não são mencionados no presente documento por uma questão de brevidade. Como tal, as modalidades acima são ilustrativas e não devem ser interpretadas como sendo limitadas de qualquer forma.[0065] Social networking services 622 may also include commenting services, blogs and/or microblogs. Examples of such services include, but are not limited to, the YELP comment service, the KUDZU review service, the OFFICETALK business microblogging service, the TWITTER messaging service, the GOOGLE BUZZ service, and/or other services. It should be understood that the above lists of services are not exhaustive and that various additional and/or alternative social networking services 622 are not mentioned herein for the sake of brevity. As such, the above embodiments are illustrative and are not to be construed as being limited in any way.

[0066] Conforme mostrado na Figura 6, os servidores de aplicativo 608 também podem hospedar outros serviços, aplicativos, portais e/ou outros recursos ("outros recursos") 624. Os outros recursos 624 podem incluir, porém, sem limitação, as fontes de dados 141, informações de consulta anteriores 142 e/ou a camada de serviço de sugestão de consulta 143. Desse modo, pode ser entendido que o ambiente de computação 602 pode fornecer uma integração dos conceitos e tecnologias revelados no presente documento para fornecer sugestões de consulta com vários serviços de caixa de correio, de mensagens, de redes sociais e/ou outros serviços ou recursos. Por exemplo, os conceitos e tecnologias revelados no presente documento podem utilizar redes sociais ou outras informações como uma porção de dados não baseados em consulta 124 de tal modo que pelo menos sugestões de consulta iniciais 125 possam ser baseadas em informações pessoais usadas para se correlacionar com informações de consulta anteriores 142. Adicionalmente, embora descritas pela frase "consulta", deve ser entendido que outras formas de busca são aplicáveis de tal modo que as sugestões de consulta 125 possam ser incorporadas como termos de busca para um mecanismo de pesquisa, campos de dados para projetos escolares e outras formas de sugestão de consulta.[0066] As shown in Figure 6, the application servers 608 may also host other services, applications, portals and/or other resources ("other resources") 624. The other resources 624 may include, but are not limited to, data sources 141, previous query information 142 and/or the query suggestion service layer 143. In this way, it can be understood that the computing environment 602 can provide an integration of the concepts and technologies disclosed in this document to provide query suggestions with various mailbox, messaging, social networking and/or other services or features. For example, the concepts and technologies disclosed in this document may utilize social networking or other information as a portion of non-query-based data 124 such that at least initial query suggestions 125 may be based on personal information used to correlate with prior query information 142. Additionally, while described by the phrase "query", it should be understood that other forms of searching are applicable such that query suggestions 125 may be incorporated as search terms for a search engine, data fields for school projects, and other forms query suggestion.

[0067] Conforme mencionado acima, o ambiente de computação 602 pode incluir o armazenamento de dados 610. De acordo com várias implantações, a funcionalidade do armazenamento de dados 610 é fornecida por um ou mais bancos de dados que operam em, ou em comunicação com, a rede 604. A funcionalidade do armazenamento de dados 610 também pode ser fornecida por um ou mais computadores servidores configurados para hospedar dados para o ambiente de computação 602. O armazenamento de dados 610 pode incluir, hospedar ou fornecer um ou mais armazenamentos de dados reais ou virtuais 626A a 626N (doravante no presente documento denominados coletivamente e/ou genericamente como "armazenamentos de dados 626"). Os armazenamentos de dados 626 são configurados para hos-pedar dados usados ou criados pelos servidores de aplicativo 608 e/ou outros dados.[0067] As mentioned above, the computing environment 602 may include the data store 610. According to various implementations, the functionality of the data store 610 is provided by one or more databases operating on, or in communication with, the network 604. The functionality of the data store 610 may also be provided by one or more server computers configured to host data for the computing environment 602. The data store 610 may include, host or provide a or more real or virtual data stores 626A to 626N (hereinafter referred to collectively and/or generically as "data stores 626"). Data stores 626 are configured to host data used or created by application servers 608 and/or other data.

[0068] O ambiente de computação 602 pode se comunicar com ou ser acessado pelas interfaces de rede 612. As interfaces de rede 612 podem incluir vários tipos de hardware e software de rede para suportar comunicações entre dois ou mais dispositivos de comunicação que incluem, porém, sem limitação, os clientes 606 e os servidores de aplicativo 608. Deve ser entendido que as interfaces de rede 612 também podem ser utilizadas para se conectar a outros tipos de redes e/ou sistemas de computador.[0068] The computing environment 602 can communicate with or be accessed by the network interfaces 612. The network interfaces 612 can include various types of network hardware and software to support communications between two or more communication devices including, but not limited to, clients 606 and application servers 608. It should be understood that network interfaces 612 can also be used to connect to other types of networks and/or computer systems.

[0069] Deve-se compreender que o ambiente de computação distri buída 600 descrito no presente documento pode fornecer quaisquer as- pectos dos elementos de software descritos no presente documento com qualquer número de recursos de computação virtual e/ou outra funcionalidade de computação distribuída que pode ser configurada para executar quaisquer aspectos dos componentes de software revelados no presente documento. De acordo com várias implantações dos conceitos e tecnologias revelados no presente documento, o ambiente de computação distribuída 600 fornece a funcionalidade de software descrita no presente documento como um serviço aos clientes 606. Deve-se compreender que os clientes 606 podem incluir máquinas reais ou virtuais que incluem, porém, sem limitação, computadores servidores, servidores da web, computadores pessoais, dispositivos de comunicação móveis, telefones inteligentes e/ou outros dispositivos. Como tal, várias modalidades dos conceitos e tecnologias revelados no presente documento permitem que qualquer dispositivo configurado para acessar o ambiente de computação distribuída 600 utilize a funcionalidade descrita no presente documento para fornecer sugestões de consulta.[0069] It should be understood that the distributed computing environment 600 described herein may provide any aspects of the software elements described herein with any number of virtual computing resources and/or other distributed computing functionality that may be configured to run any aspects of the software components disclosed herein. In accordance with various implementations of the concepts and technologies disclosed herein, the distributed computing environment 600 provides the software functionality described herein as a service to clients 606. It should be understood that clients 606 may include real or virtual machines which include, but are not limited to, server computers, web servers, personal computers, mobile communication devices, smart phones, and/or other devices. As such, various embodiments of the concepts and technologies disclosed herein allow any device configured to access distributed computing environment 600 to utilize the functionality described herein to provide query suggestions.

[0070] Em relação à Figura 7, uma arquitetura de dispositivo de computação ilustrativa 700 para um dispositivo de computação que pode executar vários componentes de software descritos no presente documento para fornecer sugestões de consulta. A arquitetura de dispositivo de computação 700 é aplicável a dispositivos de comunicação que facilitam a computação móvel devido, em parte, ao fator forma, a uma conectividade sem fio e/ou a uma operação alimentada por bateria. Em algumas modalidades, os dispositivos de comunicação incluem, porém, sem limitação, telefones móveis, dispositivos do tipo tablet, dispositivos do tipo slate, dispositivos de vídeo game portáteis e semelhantes. Ademais, a arquitetura de dispositivo de computação 700 é aplicável a qualquer um dos clientes 706 mostrados na Figura 6. Adicionalmente, aspectos da arquitetura de dispositivo de computação 700 podem ser aplicáveis a computadores de mesa tradicionais, com- putadores portáteis (por exemplo, computadores tipo laptop, notebooks, ultra-portáteis e netbooks), computadores servidores e outros sistemas de computador, tais como os descritos no presente documento com referência à Figura 5. Por exemplo, os aspectos de toque único e de múltiplos toques revelados no presente documento abaixo podem ser aplicados a computadores de mesa que utilizam uma tela sensível ao toque ou algum outro dispositivo ativado por toque, tal como um track pad ativado por toque ou um mouse ativado por toque.[0070] Referring to Figure 7, an illustrative computing device architecture 700 for a computing device that can run various software components described herein to provide query suggestions. Computing device architecture 700 is applicable to communication devices that facilitate mobile computing due, in part, to form factor, wireless connectivity, and/or battery-powered operation. In some embodiments, communication devices include, but are not limited to, mobile phones, tablet-type devices, slate-type devices, handheld video game devices, and the like. Furthermore, computing device architecture 700 is applicable to any of the clients 706 shown in Figure 6. Additionally, aspects of computing device architecture 700 may be applicable to traditional desktop computers, portable computers (e.g., laptop computers, notebooks, ultraportables, and netbooks), server computers, and other computer systems, such as those described herein with reference to Figure 5. For example, the single-touch and multi-touch aspects disclosed herein below may be applied to desktop computers that use a touchscreen or some other touch-enabled device, such as a touch-enabled track pad or touch-enabled mouse.

[0071] A arquitetura de dispositivo de computação 700 ilustrada na Figura 7 inclui um processador 702, componentes de memória 704, componentes de conectividade de rede 706, componentes de sensor 708, componentes de entrada/saída 710 e componentes de potência 712. Na modalidade ilustrada, o processador 702 está em comunicação com os componentes de memória 704, os componentes de conectividade de rede 706, os componentes de sensor 708, os componentes de entrada/saída ("E/S") 710 e os componentes de potência 712. Embora nenhuma conexão seja mostrada entre os componentes individuais ilustrados na Figura 7, os componentes podem interagir para executar funções de dispositivo. Em algumas modalidades, os componentes são dispostos de modo a se comunicarem por meio de um ou mais barramentos (não mostrados).[0071] The computing device architecture 700 illustrated in Figure 7 includes a processor 702, memory components 704, network connectivity components 706, sensor components 708, input/output components 710, and power components 712. In the illustrated embodiment, the processor 702 is in communication with the memory components 704, the network connectivity components 706, the sensor components 708, the input/output ("I/O") 710 and power components 712. Although no connections are shown between the individual components illustrated in Figure 7, the components can interact to perform device functions. In some embodiments, the components are arranged to communicate over one or more buses (not shown).

[0072] O processador 702 inclui uma unidade de processamento central ("CPU") configurada para processar dados, executar instruções executáveis por computador de um ou mais programas de aplicativo e se comunicar com outros componentes da arquitetura de dispositivo de computação 700 para realizar várias funcionalidades descritas no presente documento. O processador 702 pode ser utilizado para executar aspectos dos componentes de software apresentados no presente documento e, particularmente, aqueles que utilizam, pelo menos em parte, uma entrada ativada por toque.[0072] Processor 702 includes a central processing unit ("CPU") configured to process data, execute computer-executable instructions from one or more application programs, and communicate with other components of computing device architecture 700 to perform various functionality described herein. Processor 702 may be used to execute aspects of the software components disclosed herein, and particularly those that utilize, at least in part, touch-enabled input.

[0073] Em algumas modalidades, o processador 702 inclui uma unidade de processamento gráfico ("GPU") configurada para acelerar operações realizadas pela CPU, incluindo, porém, sem limitação, operações realizadas executando-se aplicativos de computação científicos e de engenharia de propósito geral, assim como aplicativos de computação com uso intenso de gráficos tal como vídeo de alta resolução (por exemplo, 720P, 1080P e maior), vídeo games, aplicativos de modelagem tridimensional ("D") e semelhantes. Em algumas modalidades, o processador 702 é configurado para se comunicar com uma GPU discreta (não mostrado). De qualquer modo, a CPU e a GPU podem ser configuradas de acordo com um modelo de computação de CPU/GPU de coprocessamento, em que a parte sequencial de um aplicativo é executada na CPU e a parte de computação intensiva é acelerada pela GPU.[0073] In some embodiments, processor 702 includes a graphics processing unit ("GPU") configured to accelerate operations performed by the CPU, including, but not limited to, operations performed by running general-purpose engineering and scientific computing applications, as well as graphics-intensive computing applications such as high-resolution video (e.g., 720P, 1080P and greater), video games, three-dimensional ("D") modeling applications, and the like. In some embodiments, processor 702 is configured to communicate with a discrete GPU (not shown). Either way, the CPU and GPU can be configured according to a co-processing CPU/GPU computing model, where the sequential part of an application runs on the CPU and the compute intensive part is accelerated by the GPU.

[0074] Em algumas modalidades, o processador 702 é, ou está incluso em, um sistema-em-um-chip (system-on-chip) ("SoC") junto com um ou mais dos outros componentes descritos no presente documento abaixo. Por exemplo, o SoC pode incluir o processador 702, uma GPU, um ou mais dos componentes de conectividade de rede 706 e um ou mais dos componentes de sensor 708. Em algumas modalidades, o processador 702 é fabricado, em parte, utilizando-se uma técnica de empacotamento de circuito integrado pacote em pacote ("PoP"). Ademais, o processador 702 pode ser um processador de único núcleo ou de múltiplos núcleos.[0074] In some embodiments, the processor 702 is, or is included in, a system-on-a-chip ("SoC") along with one or more of the other components described herein below. For example, the SoC may include processor 702, a GPU, one or more of network connectivity components 706, and one or more of sensor components 708. In some embodiments, processor 702 is manufactured, in part, using a packet-in-packet ("PoP") integrated circuit packaging technique. Furthermore, processor 702 may be a single-core or multi-core processor.

[0075] O processador 702 pode ser criado de acordo com uma ar quitetura ARM, disponível para licença de ARM HOLDINGS de Cambridge, Reino Unido. Alternativamente, o processador 702 pode ser criado de acordo com uma arquitetura x86, tal como está disponível de INTEL CORPORATION de Mountain View, Califórnia e outros. Em algumas modalidades, o processador 702 é um SoC SNAPDRAGON, disponível de QUALCOMM de San Diego, Califórnia, um SoC TEGRA, disponível de NVIDIA de Santa Clara, Califórnia, um SoC HUMMINGBIRD, disponível de SAMSUNG de Seoul, Coréia do Sul, um SoC de Plataforma de Aplicativo Multimídia Aberto ("OMAP"), disponível de TEXAS INSTRUMENTS de Dallas, Texas, uma versão personalizada de qualquer um dos SoCs mencionados acima, ou um SoC patenteado.[0075] The 702 processor can be created according to an ARM architecture, available for license from ARM HOLDINGS of Cambridge, UK. Alternatively, processor 702 can be designed in accordance with an x86 architecture, such as is available from INTEL CORPORATION of Mountain View, California and others. In some embodiments, the 702 processor is a SNAPDRAGON SoC, available from QUALCOMM of San Diego, California, a TEGRA SoC, available from NVIDIA of Santa Clara, California, a HUMMINGBIRD SoC, available from SAMSUNG of Seoul, South Korea, an Open Multimedia Application Platform ("OMAP") SoC, available from TEXAS INSTRUMENTS of Dallas, Texas, a customized version of any of the aforementioned SoCs, or an SoC patented.

[0076] Os componentes de memória 704 incluem uma memória de acesso aleatório ("RAM") 714, uma memória só de leitura ("ROM") 716, uma memória de armazenamento integrado ("armazenamento integrado") 718 e uma memória de armazenamento removível ("armazenamento removível") 720. Em algumas modalidades, a RAM 714 ou uma porção da mesma, a ROM 716 ou uma porção da mesma, e/ou alguma combinação da RAM 714 e da ROM 716 é integrada no processador 702. Em algumas modalidades, a ROM 716 é configurada para armazenar um firmware, um sistema operacional ou uma porção do mesmo (por exemplo, kernel de sistema operacional) e/ou um carregador de inicialização para carregar um kernel de sistema operacional do armazenamento integrado 718 ou o armazenamento removível 720.[0076] Memory components 704 include random access memory ("RAM") 714, read-only memory ("ROM") 716, integrated storage memory ("integrated storage") 718, and removable storage memory ("removable storage") 720. In some embodiments, RAM 714 or a portion thereof, ROM 716 or a portion thereof, and/or some combination of RAM 714 and ROM 716 is integrated into processor 702. In some embodiments, ROM 716 is configured to store firmware, an operating system or a portion thereof (e.g., operating system kernel), and/or a boot loader for loading an operating system kernel from onboard storage 718 or removable storage 720.

[0077] O armazenamento integrado 718 pode incluir uma memória de estado sólido, um disco rígido, ou uma combinação de memória de estado sólido e um disco rígido. O armazenamento integrado 718 pode ser soldado ou, de outra forma, conectado a um quadro lógico em que o processador 702 e outros componentes descritos no presente documento também podem ser conectados. Como tal, o armazenamento integrado 718 é integrado no dispositivo de computação. O armazenamento integrado 718 é configurado para armazenar um sistema operacional ou porções do mesmo, programas de aplicativo, dados e outros componentes de software descritos no presente documento.[0077] Integrated storage 718 may include solid state memory, a hard disk, or a combination of solid state memory and a hard disk. Integrated storage 718 may be soldered or otherwise connected to a logic board to which processor 702 and other components described herein may also be connected. As such, onboard storage 718 is built into the computing device. Integrated storage 718 is configured to store an operating system or portions thereof, application programs, data, and other software components described herein.

[0078] O armazenamento removível 720 pode incluir uma memória de estado sólido, um disco rígido, ou uma combinação de memória de estado sólido e um disco rígido. Em algumas modalidades, o armazenamento removível 720 é fornecido em vez de o armazenamento integrado 718. Em outras modalidades, o armazenamento removível 720 é fornecido como armazenamento opcional adicional. Em algumas modalidades, o armazenamento removível 720 é combinado logicamente com o armazenamento integrado 718 de tal modo que o armazenamento disponível total é disponibilizado e mostrado a um usuário como uma capacidade combinada total do armazenamento integrado 718 e do armazenamento removível 720.[0078] Removable storage 720 may include solid state memory, a hard disk, or a combination of solid state memory and a hard disk. In some embodiments, removable storage 720 is provided in place of built-in storage 718. In other embodiments, removable storage 720 is provided as additional optional storage. In some embodiments, removable storage 720 is logically combined with built-in storage 718 such that the total available storage is made available and shown to a user as a total combined capacity of built-in storage 718 and removable storage 720.

[0079] O armazenamento removível 720 é configurado para ser inserido em uma fenda de memória de armazenamento removível (não mostrada) ou outro mecanismo pelo qual o armazenamento removível 720 é inserido e preso para facilitar uma conexão através da qual o armazenamento removível 720 pode se comunicar com outros componentes do dispositivo de computação, tal como o processador 702. O armazenamento removível 720 pode ser incorporado em vários formatos de cartão de memória incluindo, porém, sem limitação, cartão PC, cartão CompactFlash, cartão de memória, segurança digital ("SD"), miniSD, microSD, cartão de circuito integrado universal ("UICC") (por exemplo, um módulo de identidade de assinante ("SIM") ou SIM universal ("USIM")), um formato patenteado ou semelhante.[0079] Removable storage 720 is configured to be inserted into a removable storage memory slot (not shown) or other mechanism by which removable storage 720 is inserted and secured to facilitate a connection through which removable storage 720 can communicate with other components of the computing device, such as the processor 702. miniSD, microSD, universal integrated circuit ("UICC") card (eg, a subscriber identity module ("SIM") or universal SIM ("USIM"), a proprietary format, or similar.

[0080] Pode ser compreendido de que um ou mais dos componen tes de memória 704 podem armazenar um sistema operacional. De acordo com várias modalidades, o sistema operacional inclui, porém, sem limitação, SYMBIAN OS de SYMBIAN LIMITED, WINDOWS MOBILE OS de MICROSOFT CORPORATION de Redmond, Washington, WINDOWS PHONE OS de MICROSOFT CORPORATION, o sistema operacional WINDOWS de MICROSOFT CORPORATION, PALM WEBOS de Hewlett-Packard Company de Palo Alto, Califórnia, BLACKBERRY OS de Research In Motion Limited de Waterloo, Onta rio, Canada, IOS de Apple Inc. de Cupertino, Califórnia e ANDROID OS de Google Inc. de Mountain View, Califórnia. Outros sistemas operacionais são contemplados.[0080] It can be understood that one or more of the memory components 704 can store an operating system. In accordance with various embodiments, the operating system includes, but is not limited to, SYMBIAN OS from SYMBIAN LIMITED, WINDOWS MOBILE OS from MICROSOFT CORPORATION of Redmond, Washington, WINDOWS PHONE OS from MICROSOFT CORPORATION, WINDOWS Operating System from MICROSOFT CORPORATION, PALM WEBOS from Hewlett-Packard Company of Palo Alto, California, BLACKBERRY OS from Research In Motion Limited of Waterlo The, Onta River, Canada, Apple Inc. IOS. of Cupertino, California and ANDROID OS of Google Inc. from Mountain View, California. Other operating systems are covered.

[0081] Os componentes de conectividade de rede 706 incluem um componente de rede de longa distância sem fio ("componente de WWAN") 722, um componente de rede local sem fio ("componente de WLAN") 724 e um componente de rede pessoal sem fio ("componente de WPAN") 726. Os componentes de conectividade de rede 706 facilitam a comunicação para e de uma rede 728 que pode ser uma WWAN, uma WLAN ou uma WPAN. Embora uma única rede 728 seja ilustrada, os componentes de conectividade de rede 706 podem facilitar a comunicação simultânea com múltiplas redes. Por exemplo, os componentes de conectividade de rede 706 podem facilitar comunicações simultâneas com múltiplas redes por meio de uma ou mais dentre uma WWAN, uma WLAN ou uma WPAN.[0081] The network connectivity components 706 include a wireless wide area network component ("WWAN component") 722, a wireless local area network component ("WLAN component") 724, and a wireless personal area network component ("WPAN component") 726. The network connectivity components 706 facilitate communication to and from a network 728 that may be a WWAN, a WLAN, or a WPAN. Although a single network 728 is illustrated, network connectivity components 706 can facilitate simultaneous communication with multiple networks. For example, network connectivity components 706 can facilitate simultaneous communications with multiple networks over one or more of a WWAN, a WLAN, or a WPAN.

[0082] A rede 728 pode ser uma WWAN, tal como uma rede de telecomunicações móvel que utiliza uma ou mais tecnologias de tele-comunicações móveis para fornecer serviços de voz e/ou dados a um dispositivo de computação que utiliza a arquitetura de dispositivo de computação 700 por meio do componente de WWAN 722. As tecnologias de telecomunicações móveis podem incluir, porém, sem limitação, Sistema Global para comunicações Móveis ("GSM"), Acesso Múltiplo por Divisão de Código ("CDMA") ONE, CDMA2000, Sistema de Telecomunicações Móveis Universal ("UMTS"), Evolução A Longo Prazo ("LTE") e Inoperabilidade Mundial para Acesso de Micro-onda ("WiMAX"). Ademais, a rede 728 pode utilizar vários métodos de acesso de canal (que podem ou podem não ser usados pelos padrões mencionados acima) incluindo, porém, sem limitação, Acesso Múltiplo por Divisão de Tempo ("TDMA"), Acesso Múltiplo por Divisão de Frequência ("FDMA"), CDMA, CDMA de banda larga ("W-CDMA"), Multiplexação por Divisão de Frequência Ortogonal ("OFDM"), Acesso Múltiplo por Divisão de Espaço ("SDMA") e semelhantes. Comunicações de dados podem ser fornecidas com o uso de Serviço de Rádio de Pacote Geral ("GPRS"), taxas de Dados Melhorados para Evolução Global ("EDGE"), a família de protocolo de Acesso de Pacote de Alta Velocidade ("HSPA") que inclui Acesso de Pacote de Enlace Descendente de Alta Velocidade ("HSDPA"), Enlace Ascendente Melhorado ("EUL") ou, de outra forma, chamado Acesso de Pacote de Enlace Ascendente de Alta Velocidade ("HSUPA"), HSPA Evoluído ("HSPA+"), LTE e vários outros padrões de acesso de dados sem fio atuais e futuros. A rede 728 pode ser configurada para fornecer comunicações de voz e/ou dados com qualquer combinação das tecnologias descritas acima. A rede 728 pode ser configurada para ou pode ser adaptada para fornecer comunicações de voz e/ou dados de acordo com tecnologias da geração futura.[0082] The network 728 may be a WWAN, such as a mobile telecommunications network using one or more mobile telecommunications technologies to provide voice and/or data services to a computing device utilizing the computing device architecture 700 via the WWAN component 722. The mobile telecommunications technologies may include, but are not limited to, Global System for Mobile communications ("GSM"), Code Division Multiple Access ("CDMA") ONE, CDMA 2000, Universal Mobile Telecommunications System ("UMTS"), Long Term Evolution ("LTE") and Worldwide Downtime for Microwave Access ("WiMAX"). In addition, network 728 may utilize various channel access methods (which may or may not be used by the standards mentioned above) including, but not limited to, Time Division Multiple Access ("TDMA"), Frequency Division Multiple Access ("FDMA"), CDMA, high-bandwidth CDMA ("W-CDMA"), Orthogonal Frequency Division Multiplexing ("OFDM"), Space Division Multiple Access ("SDMA"), and the like. Data communications may be provided using General Packet Radio Service ("GPRS"), Enhanced Data Rates for Global Evolution ("EDGE"), the High Speed Packet Access ("HSPA") protocol family which includes High Speed Downlink Packet Access ("HSDPA"), Enhanced Uplink ("EUL") or otherwise called High Speed Uplink Packet Access ("HSUPA"), Evolved HSPA ("HSPA+"), LTE and many other current and future wireless data access standards. Network 728 can be configured to provide voice and/or data communications with any combination of the technologies described above. Network 728 can be configured for or adapted to provide voice and/or data communications in accordance with next generation technologies.

[0083] Em algumas configurações, o componente de WWAN 722 é configurado para fornecer conectividade de múltiplos modos dupla à rede 728. Por exemplo, o componente de WWAN 722 pode ser configurado para fornecer conectividade à rede 728, em que a rede 728 fornece um serviço por meio de tecnologias de GSM e UMTS ou por meio de alguma outra combinação de tecnologias. Alternativamente, múltiplos componentes de WWAN 722 podem ser utilizados para realizar tal funcionalidade, e/ou fornecer funcionalidade adicional para suportar outras tecnologias não compatíveis (isto é, incapazes de serem suportadas por um único componente de WWAN). O componente de WWAN 722 pode facilitar uma conectividade similar a múltiplas redes (por exemplo, uma rede de UMTS e uma rede de LTE).[0083] In some configurations, WWAN component 722 is configured to provide dual multimode connectivity to network 728. For example, WWAN component 722 can be configured to provide connectivity to network 728, where network 728 provides a service through GSM and UMTS technologies or through some other combination of technologies. Alternatively, multiple WWAN components 722 may be utilized to realize such functionality, and/or provide additional functionality to support other technologies that are not compatible (i.e., unable to be supported by a single WWAN component). The WWAN component 722 can facilitate similar connectivity to multiple networks (eg, a UMTS network and an LTE network).

[0084] A rede 728 pode ser uma WLAN que opera de acordo com um ou mais padrões de Engenheiros Elétricos e Eletrônicos ("IEEE") 802.11, tais como IEEE 802.11a, 802.11b, 802.11g, 802.11n e/ou pa- drão 802.11 futuro (denominado no presente documento coletivamente como WI-FI). Padrões 802.11 de rascunho também são contemplados. Em algumas modalidades, a WLAN é implantada com a utilização de um ou mais pontos de acesso de WI-FI sem fio. Em algumas modalidades, um ou mais dos pontos de acesso WI-FI sem fio são outros dispositivos de computação com conectividade com uma WWAN que funcionam como um ponto de acesso de WI-FI. O componente de WLAN 724 é configurado para se conectar à rede 728 por meio dos pontos de acesso de Wi-Fi. Tais conexões podem ser protegidas por meio de várias tecnologias de criptografia incluindo, porém, sem limitação, Acesso Protegido de WI-FI ("WPA"), WPA2, Privacidade Equivalente com Fio ("WEP") e semelhantes.[0084] The 728 network may be a WLAN that operates in accordance with one or more Electrical and Electronics Engineers ("IEEE") 802.11 standards, such as IEEE 802.11a, 802.11b, 802.11g, 802.11n and/or future 802.11 standard (referred to herein collectively as WI-FI). Draft 802.11 standards are also covered. In some embodiments, the WLAN is deployed using one or more wireless WI-FI access points. In some embodiments, one or more of the wireless WI-FI access points are other computing devices with connectivity to a WWAN that function as a WI-FI access point. WLAN component 724 is configured to connect to network 728 through Wi-Fi access points. Such connections may be secured using various encryption technologies including, but not limited to, WI-FI Protected Access ("WPA"), WPA2, Wired Equivalent Privacy ("WEP") and the like.

[0085] A rede 728 pode ser uma WPAN que opera de acordo com Associação de Dados Infravermelhos ("IrDA"), BLUETOOTH, Barra- mento Serial Universal sem fio ("USB"), Z-Wave, ZIGBEE ou alguma outra tecnologia sem fio de curto alcance. Em algumas modalidades, o componente de WPAN 726 é configurado para facilitar as comunicações com outros dispositivos, tais como periféricos, computadores ou outros dispositivos de comunicação por mio da WPAN.[0085] The 728 network may be a WPAN operating under Infrared Data Association ("IrDA"), BLUETOOTH, Wireless Universal Serial Bus ("USB"), Z-Wave, ZIGBEE, or some other short-range wireless technology. In some embodiments, WPAN component 726 is configured to facilitate communications with other devices, such as peripherals, computers or other devices communicating over WPAN.

[0086] Os componentes de sensor 708 incluem um magnetômetro 730, um sensor de luz ambiente 732, um sensor de proximidade 734, um acelerômetro 736, um giroscópio 738 e um sensor de Sistema de Posicionamento Global ("sensor de GPS") 740. É contemplado de que outros sensores, tais como, porém, sem limitação, sensores de temperatura ou sensores de detecção de choque, também podem ser incorporados na arquitetura de dispositivo de computação 700.[0086] Sensor components 708 include a 730 magnetometer, a 732 ambient light sensor, a 734 proximity sensor, a 736 accelerometer, a 738 gyroscope and a global positioning system sensor ("GPS sensor") 740. It is contemplated that other sensors, but without limitation, temperature sensors or shock detection sensors, also can be incorporated into the 700 computing device architecture.

[0087] O magnetômetro 730 é configurado para medir a força e direção de um campo magnético. Em algumas modalidades o magne- tômetro 730 fornece medidas a um programa de aplicativo de bússola armazenado dentro de um dos componentes de memória 704 para fornecer direções precisar a um usuário em um quadro de referência que inclui as direções cardinais, norte, sul, leste e oeste. Medições similares são fornecidas a um programa de aplicativo de navegação que inclui um componente de bússola. Outros usos de medições obtidas pelo magnetômetro 730 são contempladas.[0087] The magnetometer 730 is configured to measure the strength and direction of a magnetic field. In some embodiments, the magnetometer 730 provides measurements to a compass application program stored within one of the memory components 704 to provide accurate bearings to a user in a frame of reference that includes cardinal, north, south, east, and west directions. Similar measurements are provided to a navigation application program that includes a compass component. Other uses of measurements obtained by the magnetometer 730 are contemplated.

[0088] O sensor de luz ambiente 732 é configurado para medir a luz ambiente. Em algumas modalidades, o sensor de luz ambiente 732 fornece medições a um programa de aplicativo armazenado dentro de um dos componentes de memória 704 para ajustar automaticamente o brilho de um visor (descrito abaixo) para compensar por ambientes de luz baixa e de luz alta. Outros usos de medições obtidas pelo sensor de luz ambiente 732 são contemplados.[0088] The ambient light sensor 732 is configured to measure ambient light. In some embodiments, the ambient light sensor 732 provides measurements to an application program stored within one of the memory components 704 to automatically adjust the brightness of a display (described below) to compensate for low light and high light environments. Other uses of measurements obtained by ambient light sensor 732 are contemplated.

[0089] O sensor de proximidade 734 é configurado para detectar a presença de um objeto ou coisa próximo do dispositivo de computação sem contato direto. Em algumas modalidades, o sensor de proximidade 734 detecta a presença do corpo de um usuário (por exemplo, a face do usuário) e fornece essas informações a um programa de aplicativo armazenado dentro de um dos componentes de memória 704 que utiliza as informações de proximidade para habilitar ou desabilitar algumas funcionalidades do dispositivo de computação. Por exemplo, um programa de aplicativo de telefone pode desabilitar automaticamente uma tela sensível ao toque (descrito abaixo) em resposta ao recebimento das informações de proximidade de modo que a face do usuário não finalize inadvertidamente uma chamada ou habili- te/desabilite outra funcionalidade dentro do programa de aplicativo de telefone durante a chamada. Outros usos de proximidade conforme detectado pelo sensor de proximidade 734 são contemplados.[0089] The proximity sensor 734 is configured to detect the presence of an object or thing near the computing device without direct contact. In some embodiments, the proximity sensor 734 detects the presence of a user's body (e.g., the user's face) and provides that information to an application program stored within one of the memory components 704 that uses the proximity information to enable or disable some functionality of the computing device. For example, a phone application program can automatically disable a touchscreen (described below) in response to receiving proximity information so that the user's face does not inadvertently end a call, or enable/disable other functionality within the phone application program during the call. Other uses of proximity as sensed by proximity sensor 734 are contemplated.

[0090] O acelerômetro 736 é configurado para medir uma acelera ção apropriada. Em algumas modalidades, a saída do acelerômetro 736 é usada por um programa de aplicativo como um mecanismo de entrada para controlar algumas funcionalidades do programa de aplicativo. Por exemplo, o programa de aplicativo pode ser um vídeo game em que um personagem, uma porção do mesmo, ou um objeto é movido ou, de outra forma, manipulado em resposta a entrada recebida por meio do acelerômetro 736. Em algumas modalidades, a saída do acelerômetro 736 é fornecida a um programa de aplicativo para uso na comutação entre modos de paisagem e de retrato, em calcular aceleração coordenada, ou detectar uma queda. Outros usos do acelerô- metro 736 são contemplados.[0090] The accelerometer 736 is configured to measure an appropriate acceleration. In some embodiments, the output of accelerometer 736 is used by an application program as an input mechanism to control some functionality of the application program. For example, the application program may be a video game in which a character, a portion thereof, or an object is moved or otherwise manipulated in response to input received through accelerometer 736. In some embodiments, the output of accelerometer 736 is provided to an application program for use in switching between landscape and portrait modes, calculating coordinated acceleration, or detecting a fall. Other uses of the accelerometer 736 are contemplated.

[0091] O giroscópio 738 é configurado para medir e manter a ori entação. Em algumas modalidades, a saída do giroscópio 738 é usada por um programa de aplicativo como um mecanismo de entrada para controlar algumas funcionalidades do programa de aplicativo. Por exemplo, o giroscópio 738 pode ser usado para reconhecimento preciso de movimento dentro de um ambiente 3D de um aplicativo de vídeo game ou algum outro aplicativo. Em algumas modalidades, um programa de aplicativo utiliza saída do giroscópio 738 e do acelerômetro 736 para melhorar o controle de algumas funcionalidades do programa de aplicativo. Outros usos do giroscópio 738 são contemplados.[0091] The 738 gyroscope is configured to measure and maintain orientation. In some embodiments, the output of gyroscope 738 is used by an application program as an input mechanism to control some functionality of the application program. For example, the 738 gyroscope can be used for accurate motion recognition within the 3D environment of a video game application or some other application. In some embodiments, an application program utilizes output from gyroscope 738 and accelerometer 736 to enhance control of some functionality of the application program. Other uses of the 738 gyroscope are contemplated.

[0092] O sensor de GPS 740 é configurado para receber sinais de satélites de GPS para uso no cálculo de uma localização. A localização calculada pelo sensor de GPS 740 pode ser usada por qualquer programa de aplicativo que necessita ou é beneficiado de informações de localização. Por exemplo, a localização calculada pelo sensor de GPS 740 pode ser usada com um programa de aplicativo de navegação para fornecer direções da localização a um destino ou direções do destino até a localização. Ademais, o sensor de GPS 740 pode ser usado para fornecer informações de localização a um serviço com base em localização externa, tal como um serviço E911. O sensor de GPS 740 pode obter informações de localização geradas por meio de WI-FI, WIMAX, e/ou técnicas de triangulação celular que utilizam um ou mais dos com-ponentes de conectividade de rede 706 para auxiliar o sensor de GPS 740 em obter um ponto de localização. O sensor de GPS 740 pode também ser usado em sistemas de GPS Assistido ("A-GPS").[0092] The 740 GPS sensor is configured to receive signals from GPS satellites for use in calculating a location. The location calculated by the GPS sensor 740 can be used by any application program that needs or benefits from location information. For example, the location calculated by the GPS sensor 740 can be used with a navigation application program to provide directions from the location to a destination or directions from the destination to the location. Furthermore, the GPS sensor 740 can be used to provide location information to an external location-based service, such as an E911 service. GPS sensor 740 may obtain location information generated through WI-FI, WIMAX, and/or cellular triangulation techniques that utilize one or more of the network connectivity components 706 to assist GPS sensor 740 in obtaining a location fix. The 740 GPS sensor can also be used in Assisted GPS ("A-GPS") systems.

[0093] Os componentes de E/S 710 incluem um visor 742, uma tela sensível ao toque 744, um componente de interface de E/S de dados ("E/S de dados") 746, um componente de interface de E/S de áudio ("E/S de áudio") 748, um componente de interface de E/S de vídeo ("E/S de vídeo") 750 e uma câmera 752. Em algumas modalidades, o visor 742 e a tela sensível ao toque 744 são combinados. Em algumas modalidades, dois ou mais dentre o componente de E/S de dados 746, o componente de E/S de áudio 748 e o componente de E/S de vídeo 750 são combinados. Os componentes de E/S 710 podem incluir processadores discretos configurados para suportar as várias interfaces descritas abaixo ou podem incluir uma funcionalidade de processamento embutida no processador 702.[0093] The I/O components 710 include a display 742, a touch screen 744, a data I/O interface component ("Data I/O") 746, an audio I/O interface component ("Audio I/O") 748, a video I/O interface component ("Video I/O") 750, and a camera 752. In some embodiments, the display 742 and the touch screen touch 744 are combined. In some embodiments, two or more of the 746 data I/O component, the 748 audio I/O component, and the 750 video I/O component are combined. I/O components 710 may include discrete processors configured to support the various interfaces described below, or may include processing functionality built into processor 702.

[0094] O visor 742 é um dispositivo de saída configurado para apresentar informações em uma forma visual. Em particular, o visor 742 pode apresentar elementos de interface de usuário gráfica ("GUI"), texto, imagens, vídeo, notificações, botões virtuais, teclados virtuais, dados de mensagens, conteúdo de Internet, estado de dispositivo, hora, data, dados de calendário, preferências, informações de mapa, informações de localização e quaisquer outras informações que podem ser apresentadas em uma forma visual. Em algumas modalidades, o visor 742 é um visor de cristal líquido ("LCD") que utiliza qualquer tecnologia de matriz ativa ou passiva e qualquer tecnologia de luz de fundo (se usada). Em algumas modalidades, o visor 742 é um visor de díodo emissor de luz orgânica ("OLED"). Outros tipos de visor são contemplados.[0094] The 742 display is an output device configured to present information in a visual form. In particular, display 742 can display graphical user interface ("GUI") elements, text, images, video, notifications, virtual buttons, virtual keyboards, messaging data, Internet content, device state, time, date, calendar data, preferences, map information, location information, and any other information that can be presented in a visual form. In some embodiments, display 742 is a liquid crystal display ("LCD") utilizing either active or passive matrix technology and any backlight technology (if used). In some embodiments, display 742 is an organic light-emitting diode ("OLED") display. Other display types are contemplated.

[0095] A tela sensível ao toque 744 é um dispositivo de entrada configurado para detectar a presença e a localização de um toque. A tela sensível ao toque 744 pode ser uma tela sensível ao toque resisti- va, uma tela sensível ao toque capacitiva, uma tela sensível ao toque de onda acústica de superfície, uma tela sensível ao toque infravermelha, uma tela sensível ao toque de imageamento óptico, uma tela sensível ao toque de sinal dispersivo, uma tela sensível ao toque de reconhecimento de pulso acústico, ou pode utilizar qualquer outra tecnologia de tela sensível ao toque. Em algumas modalidades, a tela sensível ao toque 744 é incorporada em cima do visor 742 como uma camada transparente para permitir que um usuário use um ou mais toques para interagir com objetos ou outras informações apresentadas no visor 742. Em outras modalidades, a tela sensível ao toque 744 é um toque incorporado em uma superfície do dispositivo de computação que não incluir o visor 742. Por exemplo, o dispositivo de computação pode ter uma tela sensível ao toque incorporada em cima do visor 742 e um toque em uma superfície oposta ao visor 742.[0095] The 744 touch screen is an input device configured to detect the presence and location of a touch. The 744 touchscreen may be a resistive touchscreen, a capacitive touchscreen, a surface acoustic wave touchscreen, an infrared touchscreen, an optical imaging touchscreen, a signal dispersive touchscreen, an acoustic pulse recognition touchscreen, or it may utilize any other touchscreen technology. In some embodiments, the touch screen 744 is incorporated on top of the display 742 as a transparent layer to allow a user to use one or more touches to interact with objects or other information presented on the display 742. In other embodiments, the touch screen 744 is a touch embedded in a surface of the computing device that does not include the display 742. For example, the computing device can have a touch screen embedded on top of the display 742 and a touch on a surface opposite the display 742 2.

[0096] Em algumas configurações, a tela sensível ao toque 744 é uma tela sensível ao toque de toque único. Em outras configurações, a tela sensível ao toque 744 é uma tela sensível ao toque de múltiplos toques. Em algumas configurações, a tela sensível ao toque 744 é configurada para detectar toques discretos, gestos de toque único e/ou gestos de múltiplos toques. Estes são denominados coletivamente no presente documento como gestos para conveniência. Diversos gestos serão agora descritos. Deve ser compreendido que esses gestos são ilustrativos e não são destinados a limitar o escopo das reivindicações em anexo. Ademais, os gestos descritos, gestos adicionais e/ou gestos alternativos, podem ser implantados em software para uso com a tela sensível ao toque 744. Como tal, um desenvolvedor pode criar gestos que são específicos a um programa de aplicativo particular.[0096] In some configurations, the 744 touchscreen is a single-touch touchscreen. In other configurations, the 744 touch screen is a multi-touch touch screen. In some configurations, the 744 touchscreen is configured to detect discrete touches, single-touch gestures, and/or multi-touch gestures. These are collectively referred to herein as gestures for convenience. Various gestures will now be described. It is to be understood that these gestures are illustrative and are not intended to limit the scope of the appended claims. Furthermore, the described gestures, additional gestures, and/or alternate gestures, can be implemented in software for use with the touch screen 744. As such, a developer can create gestures that are specific to a particular application program.

[0097] Em algumas configurações, a tela sensível ao toque 744 suporta um gesto de toque em que um usuário toca a tela sensível ao toque 744 uma vez em um item apresentado no visor 742. O gesto de toque pode ser usado por várias razões que incluem, porém, sem limitação, abrir ou iniciar o que o usuário tocar. Em algumas modalidades, a tela sensível ao toque 744 suporta um gesto de toque duplo em que um usuário toca a tela sensível ao toque 744 duas vezes em um item apresentado no visor 742. O gesto de toque duplo pode ser usado por várias razões, incluindo, porém, sem limitação, aproximação ou distanciamento em estágios. Em algumas modalidades, a tela sensível ao toque 744 suporta um gesto de tocar e segurara em que um usuário toca a tela sensível ao toque 744 e mantém contato por pelo menos um tempo predefinido. O gesto de tocar e segurar pode ser usado por várias razões, incluindo, porém, sem limitação, abrir um menu de contexto específico.[0097] In some configurations, the touch screen 744 supports a touch gesture in which a user taps the touch screen 744 once on an item displayed on the display 742. The touch gesture can be used for a variety of reasons including, but not limited to, opening or starting what the user touches. In some embodiments, touchscreen 744 supports a double-tap gesture in which a user taps touchscreen 744 twice on an item displayed on display 742. The double-tap gesture can be used for a variety of reasons, including, but not limited to, staged zooming in or out. In some embodiments, the touch screen 744 supports a tap and hold gesture in which a user touches the touch screen 744 and maintains contact for at least a predefined time. The tap and hold gesture can be used for a variety of reasons, including but not limited to opening a specific context menu.

[0098] Em algumas modalidades, a tela sensível ao toque 744 su porta um gesto de aplicar panorâmica em que um usuário coloca um dedo na tela sensível ao toque 744 e mantém contato com a tela sensível ao toque 744 enquanto move o dedo na tela sensível ao toque 744. O gesto de aplicar panorâmica pode ser usado por várias razões, incluindo, porém, sem limitação, mover através de telas, imagens ou menus a uma taxa controlada. Gestos de aplicar panorâmica com múltiplos dedos também são contemplados. Em algumas modalidades, a tela sensível ao toque 744 suporta um gesto de leve toque em que um usuário arrasta um dedo na direção que o usuário deseja que a tela se mova. O gesto de leve toque pode ser usado por várias razões, incluindo, porém, sem limitação, rolagem horizontal ou vertical através de menus ou páginas. Em algumas modalidades, a tela sensível ao toque 744 suporta um gesto de pinçamento e ampliação em que um usuário faz um movimento de pinçamento com dois dedos (por exemplo, dedão e indicador) na tela sensível ao toque 744 ou separa os dois dedos. O gesto de pinçamento e ampliação pode ser usado por várias razões, incluindo, porém, sem limitação, ampliar ou afastar gra-dualmente um site da Web, um mapa ou uma imagem.[0098] In some embodiments, the touchscreen 744 supports a panning gesture in which a user places a finger on the touchscreen 744 and maintains contact with the touchscreen 744 while moving the finger across the touchscreen 744. The panning gesture can be used for a variety of reasons, including, but not limited to, moving through screens, images, or menus at a controlled rate. Multi-finger panning gestures are also supported. In some embodiments, the touch screen 744 supports a flick gesture in which a user drags a finger in the direction the user wants the screen to move. The flick gesture can be used for a variety of reasons including, but not limited to, scrolling horizontally or vertically through menus or pages. In some embodiments, the touch screen 744 supports a pinch and zoom gesture in which a user pinches two fingers (eg, thumb and index finger) on the touch screen 744 or separates the two fingers. The pinch and zoom gesture can be used for a variety of reasons, including, but not limited to, zooming in or out on a website, map, or image.

[0099] Embora os gestos acima tenham sido descritos com refe rência ao uso de um ou mais dedos para realizar os gestos, outros apêndices como dedões do pé ou objetos como canetas tipo stylus podem ser usados para interagir com a tela sensível ao toque 744. Como tal, os gestos mencionados acima podem ser compreendidos como sendo ilustrativos e não devem ser interpretados como sendo limitadas de qualquer forma.[0099] Although the above gestures have been described with reference to the use of one or more fingers to perform the gestures, other appendages such as big toes or objects such as stylus pens may be used to interact with the 744 touchscreen.

[00100] O componente de interface de E/S de dados 746 é configurado para facilitar a entrada de dados no dispositivo de computação e a saída de dados do dispositivo de computação. Em algumas modalidades, o componente de interface de E/S de dados 746 inclui um conector configurado para fornecer conectividade com fio entre o dispositivo de computação e um sistema de computador, por exemplo, para propósitos de operação de sincronização. O conector pode ser um conector patenteado ou um conector padronizado tal como USB, micro- USB, mini-USB ou semelhantes. Em algumas modalidades, o conector é um conector de doca para encaixar o dispositivo de computação com outro dispositivo tal como uma estação de atracação, um dispositivo de áudio (por exemplo, um reprodutor de música digital) ou um dispositivo de vídeo.[00100] Data I/O interface component 746 is configured to facilitate data input to the computing device and data output from the computing device. In some embodiments, data I/O interface component 746 includes a connector configured to provide wired connectivity between the computing device and a computer system, for example, for purposes of synchronization operation. The connector may be a proprietary connector or a standard connector such as USB, micro-USB, mini-USB or the like. In some embodiments, the connector is a dock connector for docking the computing device with another device such as a docking station, an audio device (e.g., a digital music player) or a video device.

[00101] O componente de interface de E/S de áudio 748 é configurado para fornecer capacidades de entrada e/ou saída de áudio ao dispositivo de computação. Em algumas modalidades, o componente de interface de E/S de áudio 746 inclui um microfone configurado para coletar sinais de áudio. Em algumas modalidades, o componente de interface de E/S de áudio 746 inclui uma entrada de fone de ouvido configurada para fornecer conectividade para fones de ouvido ou outros alto-falantes externos. Em algumas modalidades, o componente de interface de áudio 748 inclui um alto-falante para a saída de sinais de áudio. Em algumas modalidades, o componente de interface de E/S de áudio 746 inclui uma saída de cabo de áudio óptico.[00101] Audio I/O interface component 748 is configured to provide audio input and/or output capabilities to the computing device. In some embodiments, audio I/O interface component 746 includes a microphone configured to collect audio signals. In some embodiments, audio I/O interface component 746 includes a headphone jack configured to provide connectivity to headphones or other external speakers. In some embodiments, audio interface component 748 includes a speaker for outputting audio signals. In some embodiments, audio I/O interface component 746 includes an optical audio cable output.

[00102] O componente de interface de E/S de vídeo 750 é configurado para fornecer capacidades de entrada e/ou saída de vídeo ao dispositivo de computação. Em algumas modalidades, o componente de interface de E/S de vídeo 750 inclui um conector de vídeo configurado para receber vídeo como entrada de outro dispositivo (por exemplo, um reprodutor de mídia de vídeo tal como um reprodutor de DVD ou BLURAY) ou enviar vídeo como saída para outro dispositivo (por exemplo, um monitor, uma televisão ou algum outro visor externo). Em algumas modalidades, o componente de interface de E/S de vídeo 750 inclui uma Interface Multimídia de Alta Definição ("HDMI"), mini-HDMI, micro-HDMI, DisplayPort ou um conector patenteado para entra- da/saída de conteúdo de vídeo. Em algumas modalidades, o componente de interface de E/S de vídeo 750 ou porções do mesmo são combinados com o componente de interface de E/S de áudio 748 ou porções do mesmo.[00102] Video I/O Interface Component 750 is configured to provide video input and/or output capabilities to the computing device. In some embodiments, the video I/O interface component 750 includes a video connector configured to receive video as input from another device (e.g., a video media player such as a DVD or BLURAY player) or send video as output to another device (e.g., a monitor, television, or some other external display). In some embodiments, the 750 video I/O interface component includes a High Definition Multimedia Interface ("HDMI"), mini-HDMI, micro-HDMI, DisplayPort, or a proprietary connector for input/output of video content. In some embodiments, the video I/O interface component 750 or portions thereof are combined with the audio I/O interface component 748 or portions thereof.

[00103] A câmera 752 pode ser configurada para capturar imagens paradas e/ou vídeo. A câmera 752 pode utilizar um dispositivo de acoplamento de carga ("CCD") ou um sensor de imagem semicondutor de óxido metálico complementar ("CMOS") para capturar imagens. Em algumas modalidades, a câmera 752 inclui um flash para auxiliar em tirar fotos em ambientes de luz baixa. As definições para a câmera 752 podem ser implantadas como botões de hardware ou software.[00103] The 752 camera can be configured to capture still images and/or video. The 752 camera can use either a charge-coupled device ("CCD") or a complementary metal-oxide semiconductor ("CMOS") image sensor to capture images. In some embodiments, the 752 camera includes a flash to aid in taking pictures in low light environments. Settings for the 752 camera can be implemented as hardware or software buttons.

[00104] Embora não ilustrado, um ou mais botões de hardware podem também ser inclusos na arquitetura de dispositivo de computação 700. Os botões de hardware podem ser usados para controlar alguns aspectos operacionais do dispositivo de computação. Os botões de hardware podem ser botões dedicados ou botões de multiuso. Os bo- tões de hardware podem ser mecânicos ou baseados em sensor.[00104] Although not illustrated, one or more hardware buttons may also be included in computing device architecture 700. Hardware buttons may be used to control some operational aspects of the computing device. Hardware buttons can be dedicated buttons or multipurpose buttons. Hardware buttons can be mechanical or sensor-based.

[00105] Os componentes de potência ilustrados 712 incluem uma ou mais baterias 754 que podem ser conectadas a um medidor de bateria 756. As baterias 754 podem ser recarregáveis ou descartáveis. Os tipos de bateria recarregável incluem, porém, sem limitação, lítio- polímero, lítio-íon, níquel-cádmio e níquel-hidreto metálico. Cada uma das baterias 754 pode ser produzida de uma ou mais células.[00105] The illustrated power components 712 include one or more batteries 754 that can be connected to a battery meter 756. Batteries 754 can be rechargeable or disposable. Rechargeable battery types include, but are not limited to, lithium polymer, lithium ion, nickel cadmium, and nickel metal hydride. Each of the 754 batteries can be produced from one or more cells.

[00106] O medidor de bateria 756 pode ser configurado para medir os parâmetros de bateria tais como corrente, tensão e temperatura. Em algumas modalidades, o medidor de bateria 756 é configurado para medir o efeito da taxa de descarga, a temperatura, a idade de uma bateria e outros fatores para prever o restante de vida útil dentro de uma certa porcentagem de erro. Em algumas modalidades, o medidor de bateria 756 fornece medições a um programa de aplicativo que é configurado para utilizar as medições para apresentar dados de gerenciamento de potência úteis a um usuário. Dados de gerenciamento de potência podem incluir uma ou mais dentre uma porcentagem de bateria usada, uma porcentagem de bateria restante, uma condição de bateria, um tempo restante, uma capacidade restante (por exemplo, em watts-horas), uma corrente drenada e uma tensão.[00106] The 756 battery meter can be configured to measure battery parameters such as current, voltage and temperature. In some embodiments, battery meter 756 is configured to measure the effect of discharge rate, temperature, age of a battery and other factors to predict remaining life within a certain percentage error. In some embodiments, battery meter 756 provides measurements to an application program that is configured to use the measurements to present useful power management data to a user. Power management data may include one or more of a percentage of battery used, a percentage of battery remaining, a battery condition, time remaining, capacity remaining (for example, in watt-hours), current drawn, and voltage.

[00107] Os componentes de potência 712 podem também inclui um conector de potência que pode ser combinado com um ou mais dos componentes de E/S mencionados acima 710. Os componentes de potência 712 podem fazer interface com um sistema de potência externa ou equipamento de carregamento por meio de um componente de E/S de potência 744.[00107] Power components 712 may also include a power connector that may be combined with one or more of the aforementioned I/O components 710. Power components 712 may interface with an external power system or charging equipment via a power I/O component 744.

[00108] Com base no mencionado anteriormente, deve ser entendido que tecnologias para fornecer sugestões de consulta e para compilar consultas com base em sugestões de consulta, foram reveladas no presente documento. Embora a matéria apresentada no presente do- cumento tenha sido descrita em linguagem específica para recursos estruturais de computador, ações metodológicas e transformativas, maquinário de computação específico e meios legíveis por computador, deve ser entendido que a invenção definida nas reivindicações anexas não se limita necessariamente aos recursos, ações ou meios específicos descritos no presente documento. Ao invés disso, os recursos, ações e meios específicos são revelados como formas exem- plificadoras de implantação das reivindicações.[00108] Based on the foregoing, it should be understood that technologies for providing query suggestions and for compiling queries based on query suggestions have been disclosed in the present document. Although the subject matter presented in this document has been described in language specific to structural computer resources, methodological and transformative actions, specific computing machinery and computer-readable media, it should be understood that the invention defined in the appended claims is not necessarily limited to the specific resources, actions or means described in this document. Instead, specific resources, actions and means are revealed as exemplifying forms of implementing claims.

[00109] As tecnologias reveladas no presente documento podem ser descritas como definidas nas cláusulas a seguir:[00109] The technologies disclosed in this document can be described as defined in the following clauses:

[00110] Cláusula 1. Um método implantado por computador para fornecer sugestões de consulta, sendo que o é caracterizado pelo fato de que compreende:[00110] Clause 1. A computer-implemented method to provide query suggestions, which is characterized by the fact that it comprises:

[00111] detectar acesso em uma fonte de dados;[00111] detect access to a data source;

[00112] coletar dados não baseados em consulta com base no acesso detectado;[00112] collect non-query-based data based on detected access;

[00113] determinar uma sugestão de consulta inicial para uma consulta para a fonte de dados com base nos dados não baseados em consulta; e[00113] Determine an initial query suggestion for a query for the data source based on the non-query-based data; It is

[00114] retornar a sugestão de consulta inicial.[00114] Return the initial query suggestion.

[00115] Cláusula 2. O método implantado por computador de acordo com a cláusula 1, em que os dados não baseados em consulta compreendem metadados que descrevem dados de identidade, dados de perfil ou informações contextualizadas.[00115] Clause 2. The computer-implemented method according to clause 1, wherein the non-query-based data comprises metadata describing identity data, profiling data or contextualized information.

[00116] Cláusula 3. O método implantado por computador de acordo qualquer uma das cláusulas 1 e 2, em que determinar a sugestão de consulta inicial compreende:[00116] Clause 3. The computer-implemented method according to any of clauses 1 and 2, in which determining the initial consultation suggestion comprises:

[00117] comparar os metadados a informações de consulta ou de metadados anteriores;[00117] compare metadata to previous query information or metadata;

[00118] determinar que pelo menos uma porção dos metadados é associada a uma porção das informações de consulta anteriores; e[00118] determining that at least a portion of the metadata is associated with a portion of the previous query information; It is

[00119] gerar a sugestão de consulta inicial com base na porção das informações de consulta anteriores.[00119] Generate the initial query suggestion based on the portion of the previous query information.

[00120] Cláusula 4. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 3, em que as informações de consulta anteriores compreendem pelo menos um dentre declarações de consulta padrão, declarações de consulta básica ou consultas enviadas anteriormente.[00120] Clause 4. The computer-implemented method according to any one of clauses 1 to 3, wherein the above query information comprises at least one of standard query statements, basic query statements or previously submitted queries.

[00121] Cláusula 5. O método implantado por computador de acordo qualquer uma das cláusulas 1 e 4, em que determinar a sugestão de consulta inicial compreende:[00121] Clause 5. The computer-implemented method according to any of clauses 1 and 4, in which determining the initial consultation suggestion comprises:

[00122] comparar os dados não baseados em consulta a um conjunto de declarações de consulta padrão;[00122] Compare non-query-based data to a set of standard query statements;

[00123] determinar que pelo menos uma porção dos dados não baseados em consulta é associada a pelo menos uma declaração de consulta padrão do conjunto de declarações de consulta padrão; e[00123] determining that at least a portion of the non-query-based data is associated with at least one standard query statement from the set of standard query statements; It is

[00124] gerar a sugestão de consulta inicial com base na pelo menos uma declaração de consulta padrão.[00124] Generate the initial query suggestion based on at least one default query statement.

[00125] Cláusula 6. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 5, em que detectar acesso em uma fonte de dados compreende:[00125] Clause 6. The computer-implemented method according to any one of clauses 1 to 5, in which detecting access to a data source comprises:

[00126] receber uma solicitação para acessar dados na fonte de dados;[00126] receive a request to access data in the data source;

[00127] receber uma solicitação para receber a sugestão de consulta inicial; ou[00127] receive a request to receive the initial query suggestion; or

[00128] determinar que um arquivo foi aberto.[00128] Determine that a file has been opened.

[00129] Cláusula 7. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 6, que compreende, ainda, retornar as sugestões de consulta inicial através de um elemento de interface de usuário (UI).[00129] Clause 7. The computer-implemented method according to any one of clauses 1 to 6, which also comprises returning initial query suggestions through a user interface (UI) element.

[00130] Cláusula 8. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 7, em que o elemento de UI é uma renderização gráfica selecionável representativa do conteúdo da sugestão de consulta inicial ou em que o elemento de UI compreende uma porção de texto preenchido automaticamente que representa pelo menos uma porção de texto de uma declaração de consulta.[00130] Clause 8. The computer-implemented method according to any one of clauses 1 to 7, wherein the UI element is a selectable graphical rendering representative of the content of the initial query suggestion or wherein the UI element comprises an auto-populated text portion that represents at least a text portion of a query statement.

[00131] Cláusula 9. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 8, que compreende, ainda:[00131] Clause 9. The computer-implemented method according to any one of clauses 1 to 8, which also comprises:

[00132] receber indicação de ação sobre a sugestão de consulta inicial;[00132] receive an indication of action on the initial consultation suggestion;

[00133] determinar uma sugestão de consulta adicional para a consulta para a fonte de dados com base em uma consulta ou dados não baseados em consulta; e[00133] Determine an additional query suggestion for the query for query-based data source or non-query-based data; It is

[00134] retornar a sugestão de consulta adicional.[00134] Return additional query suggestion.

[00135] Cláusula 10. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 9, em que a consulta compreende dados indicativos de pelo menos uma porção de uma declaração de consulta.[00135] Clause 10. The computer-implemented method according to any one of clauses 1 to 9, wherein the query comprises data indicative of at least a portion of a query statement.

[00136] Cláusula 11. Sistema de processamento de dados configurado para fornecer sugestões de consulta, sendo que o sistema é caracterizado pelo fato de que compreende:[00136] Clause 11. Data processing system configured to provide query suggestions, and the system is characterized by the fact that it comprises:

[00137] pelo menos um computador que executa uma camada de serviço de sugestão de consulta configurada para[00137] At least one computer running a query suggestion service layer configured to

[00138] detectar acesso em uma fonte de dados de um cliente,[00138] detect access to a client's data source,

[00139] coletar dados não baseados em consulta,[00139] collect non-query-based data,

[00140] receber uma consulta para a fonte de dados do cliente,[00140] receive a query for the customer data source,

[00141] determinar uma sugestão de consulta para a consulta com base nos dados não baseados em consulta e na consulta, e[00141] determine a query suggestion for the query based on the non-query-based data and the query, and

[00142] retornar a sugestão de consulta para o cliente.[00142] return the query suggestion to the client.

[00143] Cláusula 12. O sistema de processamento de dados de acordo com a cláusula 11, em que os dados não baseados em consulta compreendem metadados que descrevem dados de identidade, dados de perfil ou informações contextualizadas.[00143] Clause 12. The data processing system according to clause 11, where the non-query-based data comprises metadata describing identity data, profiling data or contextualized information.

[00144] Cláusula 13. O sistema de processamento de dados de acordo qualquer uma das cláusulas 11 e 12, em que determinar a sugestão de consulta compreende:[00144] Clause 13. The data processing system in accordance with any of clauses 11 and 12, in which determining the query suggestion comprises:

[00145] comparar os metadados e a consulta a informações de consulta ou de metadados anteriores;[00145] compare metadata and query to previous query or metadata information;

[00146] determinar que pelo menos uma porção dos metadados ou da consulta é associada a uma porção das informações de consulta anteriores; e[00146] determining that at least a portion of the metadata or the query is associated with a portion of the previous query information; It is

[00147] gerar a sugestão de consulta com base na porção das informações de consulta anteriores.[00147] Generate query suggestion based on portion of previous query information.

[00148] Cláusula 14. O sistema de processamento de dados de acordo com qualquer uma das cláusulas 11 a 13, em que as informações de consulta anteriores compreendem pelo menos um dentre declarações de consulta padrão, declarações de consulta básica ou consultas enviadas anteriormente.[00148] Clause 14. The data processing system according to any one of clauses 11 to 13, wherein the previous query information comprises at least one of standard query statements, basic query statements or previously submitted queries.

[00149] Cláusula 15. O sistema de processamento de dados de acordo com qualquer uma das cláusulas 11 a 14, em que detectar acesso em uma fonte de dados compreende:[00149] Clause 15. The data processing system according to any of clauses 11 to 14, in which detecting access to a data source comprises:

[00150] receber uma solicitação para acessar dados na fonte de dados;[00150] receive a request to access data in the data source;

[00151] receber uma solicitação para receber a sugestão de consulta inicial; ou[00151] receive a request to receive the initial query suggestion; or

[00152] determinar que um arquivo foi aberto no cliente.[00152] Determine that a file has been opened on the client.

[00153] Cláusula 16. O sistema de processamento de dados de acordo com qualquer uma das cláusulas 11 a 15, em que a camada de serviço de sugestão de consulta é configurada, ainda, para:[00153] Clause 16. The data processing system according to any of clauses 11 to 15, in which the query suggestion service layer is also configured to:

[00154] determinar que a consulta inclui uma mudança em respos- ta para fornecer a sugestão de consulta;[00154] determine that the query includes a change in response to provide the query suggestion;

[00155] aplicar a mudança à consulta;[00155] apply the change to the query;

[00156] determinar uma sugestão de consulta adicional para a consulta para a fonte de dados com base na mudança aplicada; e[00156] Determine an additional query suggestion for the query for the data source based on the applied change; It is

[00157] retornar a sugestão de consulta adicional para o cliente.[00157] return the additional query suggestion to the client.

[00158] Cláusula 17. O sistema de processamento de dados de acordo com qualquer uma das cláusulas 11 a 16, em que a sugestão de consulta adicional compreende uma sugestão para filtrar ou organizar resultados de consulta com base em informações de consulta anteriores.[00158] Clause 17. The data processing system according to any one of clauses 11 to 16, wherein the additional query suggestion comprises a suggestion to filter or organize query results based on previous query information.

[00159] Cláusula 18. Um método implantado por computador para compilar dados consultas através de sugestões de consulta, sendo que o método compreende:[00159] Clause 18. A computer-implemented method for compiling query data through query suggestions, the method comprising:

[00160] detectar acesso em uma fonte de dados;[00160] detect access to a data source;

[00161] determinar sugestões de consulta para uma consulta de busca na fonte de dados com base em dados não baseados em consulta e em dados de consulta, em que as sugestões de consulta são sugestões de consulta selecionáveis para anexação à consulta de busca e em que os dados de consulta são baseados na seleção das sugestões de consulta; e[00161] determine query suggestions for a search query in the data source based on non-query-based data and query data, where the query suggestions are selectable query suggestions for appending to the search query and where the query data is based on the selection of the query suggestions; It is

[00162] fazer as sugestões de consulta serem exibidas através de uma interface de usuário (UI) gráfica configurada para receber seleções de sugestões de consulta individuais das sugestões de consulta.[00162] Make query suggestions displayed through a graphical user interface (UI) configured to receive individual query suggestion selections from query suggestions.

[00163] Cláusula 19. O método implantado por computador de acordo com a cláusula 18, em que os dados não baseados em consulta compreendem metadados que descrevem dados de identidade, dados de perfil ou informações contextualizadas para um computador cliente que acessa a fonte de dados.[00163] Clause 19. The computer-implemented method pursuant to clause 18, wherein the non-query-based data comprises metadata describing identity data, profiling data, or contextualized information to a client computer accessing the data source.

[00164] Cláusula 20. O método implantado por computador de acordo qualquer uma das cláusulas 18 e 19, em que determinar as sugestões de consulta compreende:[00164] Clause 20. The computer-implemented method in accordance with any of clauses 18 and 19, in which determining consultation suggestions comprises:

[00165] comparar os dados de consulta a informações de consulta anteriores;[00165] compare query data to previous query information;

[00166] determinar que pelo menos uma porção dos dados de consulta é associada a uma porção das informações de consulta anteriores; e[00166] determining that at least a portion of the query data is associated with a portion of the previous query information; It is

[00167] gerar sugestões de consulta com base na porção das informações de consulta anteriores.[00167] Generate query suggestions based on portion of previous query information.

[00168] A matéria descrita acima é fornecida a título de ilustração apenas e não deve ser interpretada como uma limitação. Várias modificações e alterações podem ser feitas na matéria descrita no presente documento sem seguir as modalidades exemplificadoras e aplicativos ilustrado e descritos, e sem que se desvie do espírito e escopo verdadeiro da presente invenção, que é apresentado nas reivindicações abaixo.[00168] The matter described above is provided by way of illustration only and should not be construed as a limitation. Various modifications and alterations can be made to the matter described in the present document without following the exemplary modalities and applications illustrated and described, and without deviating from the true spirit and scope of the present invention, which is presented in the claims below.

Claims (6)

1. Método implementado por computador para proporcionar uma sugestão de consulta, o método compreendendo as etapas de: detectar acesso em uma fonte de dados; coletar dados não baseados em consulta com base no acesso detectado; determinar uma sugestão de consulta inicial para uma consulta da fonte de dados com base nos dados não baseados em consulta, em que os dados não baseados em consulta compreendem metadados descrevendo dados de identidade, dados de perfil, ou informação contextual; e caracterizado pelo fato de que determinar a sugestão de consulta inicial compreende: comparar os metadados com uma consulta anterior ou informação de metadados; determinar que pelo menos uma porção dos metadados está associada a uma porção da informação de consulta anterior; e gerar a sugestão de consulta inicial com base, pelo menos em parte, na porção da informação de consulta anterior; retornar a sugestão de consulta inicial; receber uma indicação de ação na sugestão de consulta inicial; determinar uma sugestão de consulta adicional para a consulta pela fonte de dados com base em uma consulta ou dados não baseados em consulta; e retornar a sugestão de consulta adicional.1. A computer-implemented method for providing a query suggestion, the method comprising the steps of: detecting access to a data source; collect non-query-based data based on detected access; determining an initial query suggestion for a data source query based on the non-query-based data, wherein the non-query-based data comprises metadata describing identity data, profiling data, or contextual information; and characterized in that determining the initial query suggestion comprises: comparing the metadata with a previous query or metadata information; determining that at least a portion of the metadata is associated with a portion of the prior query information; and generating the initial query suggestion based, at least in part, on the portion of the prior query information; return the initial query suggestion; receive an indication of action on the initial consultation suggestion; determine an additional query suggestion for the query by the data source based on a query or non-query-based data; and return the additional query suggestion. 2. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que as informações de consulta anterior compreendem pelo menos uma dentre declarações de consulta padrão, declarações de consulta básica ou consultas enviadas anteriormente.2. Computer-implemented method according to claim 1, characterized in that the previous query information comprises at least one of standard query statements, basic query statements or previously sent queries. 3. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar a sugestão de consulta inicial ainda compreende: comparar os dados não baseados em consulta com um conjunto de declarações de consulta padrão; determinar que pelo menos uma porção dos dados não ba-seados em consulta é associada a pelo menos uma declaração de consulta padrão do conjunto de declarações de consulta padrão; e gerar a sugestão de consulta inicial com base, pelo menos em parte, na pelo menos uma declaração de consulta padrão.3. The computer-implemented method of claim 1, characterized in that determining the initial query suggestion further comprises: comparing the non-query-based data with a set of standard query statements; determining that at least a portion of the non-query-based data is associated with at least one standard query statement from the set of standard query statements; and generating the initial query suggestion based, at least in part, on at least one standard query statement. 4. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que detectar acesso na fonte de dados compreende: receber uma solicitação para acessar dados na fonte de dados; receber uma solicitação para receber a sugestão de consulta inicial; ou determinar que um arquivo foi aberto.4. Computer-implemented method according to claim 1, characterized in that detecting access at the data source comprises: receiving a request to access data at the data source; receive a request to receive the initial consultation suggestion; or determine that a file has been opened. 5. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que o retorno das sugestões de consulta inicial compreende retornar a sugestão de consulta inicial através de um elemento de interface de usuário (UI).5. Computer-implemented method according to claim 1, characterized in that the return of initial query suggestions comprises returning the initial query suggestion through a user interface (UI) element. 6. Sistema configurado para proporcionar sugestões de consulta, o sistema compreendendo: pelo menos um computador executando uma camada de serviço de sugestão de consulta configurada para detectar o acesso a uma fonte de dados de um cliente, coletar dados não baseados em consulta, receber uma consulta para a fonte de dados do cliente, de- terminar uma sugestão de consulta inicial para a consulta com base dados não baseados em consulta e a consulta, e caracterizado pelo fato de que os dados não baseados em consulta compreendem metadados descrevendo dados de identidade, dados de perfil, ou informação contextual, e em que determinar a sugestão de consulta compreende: comparar os metadados com uma consulta anterior ou informação de metadados; determinar que pelo menos uma porção dos metadados está associada a uma porção da informação de consulta anterior; e gerar a sugestão de consulta inicial com base, pelo menos em parte, na porção da informação de consulta anterior; retornar a sugestão de consulta inicial; receber uma indicação de ação na sugestão de consulta inicial; determinar uma sugestão de consulta adicional para a consulta pela fonte de dados com base em uma consulta ou dados não baseados em consulta; e retornar a sugestão de consulta adicional.6. A system configured to provide query suggestions, the system comprising: at least one computer running a query suggestion service layer configured to detect access to a customer's data source, collect non-query-based data, receive a query for the customer's data source, determine an initial query suggestion for the query based on non-query-based data and the query, and characterized in that the non-query-based data comprises metadata describing identity data, profile data, or contextual information, and wherein determining the query suggestion comprises: comparing the metadata with a previous query or metadata information; determining that at least a portion of the metadata is associated with a portion of the prior query information; and generating the initial query suggestion based, at least in part, on the portion of the prior query information; return the initial query suggestion; receive an indication of action on the initial consultation suggestion; determine an additional query suggestion for the query by the data source based on a query or non-query-based data; and return the additional query suggestion.
BR112016030120-0A 2014-07-03 2015-07-02 METHOD IMPLEMENTED BY COMPUTER TO PROVIDE A CONSULTATION SUGGESTION AND SYSTEM CONFIGURED TO PROVIDE CONSULTATION SUGGESTIONS BR112016030120B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/323,365 US9934331B2 (en) 2014-07-03 2014-07-03 Query suggestions
US14/323,365 2014-07-03
PCT/US2015/038921 WO2016004265A1 (en) 2014-07-03 2015-07-02 Query suggestions

Publications (3)

Publication Number Publication Date
BR112016030120A8 BR112016030120A8 (en) 2017-08-22
BR112016030120A2 BR112016030120A2 (en) 2021-06-08
BR112016030120B1 true BR112016030120B1 (en) 2023-05-30

Family

ID=

Similar Documents

Publication Publication Date Title
US10896284B2 (en) Transforming data to create layouts
US10521251B2 (en) Hosting application experiences within storage service viewers
US20140047385A1 (en) 3D Data Environment Disambiguation Tool
CN106537371B (en) Visualization suggestions
US20130124605A1 (en) Aggregating and presenting tasks
US20150120748A1 (en) Indexing spreadsheet structural attributes for searching
US20160092406A1 (en) Inferring Layout Intent
US20140074811A1 (en) Query ranking models
US9934331B2 (en) Query suggestions
US10839148B2 (en) Coordination of storyline content composed in multiple productivity applications
US10795952B2 (en) Identification of documents based on location, usage patterns and content
EP3494492A1 (en) Efficient denormalization of data instances
EP3769239A1 (en) Smart versioning for files
KR20170038823A (en) Leveraging data searches in a document
US20160124975A1 (en) Location-aware data access
BR112016030120B1 (en) METHOD IMPLEMENTED BY COMPUTER TO PROVIDE A CONSULTATION SUGGESTION AND SYSTEM CONFIGURED TO PROVIDE CONSULTATION SUGGESTIONS