BR112016030120B1 - Método implementado por computador para proporcionar uma sugestão de consulta e sistema configurado para proporcionar sugestões de consulta - Google Patents

Método implementado por computador para proporcionar uma sugestão de consulta e sistema configurado para proporcionar sugestões de consulta 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
English (en)
Other versions
BR112016030120A8 (pt
BR112016030120A2 (pt
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/pt
Publication of BR112016030120A2 publication Critical patent/BR112016030120A2/pt
Publication of BR112016030120B1 publication Critical patent/BR112016030120B1/pt

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.

Description

ANTECEDENTES
[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.
[002] É com relação a essas e outras considerações que a reve lação feita no presente documento é apresentada.
SUMÁRIO
[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.
[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.
[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.
BREVE DESCRIÇÃO DOS DESENHOS
[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;
[007] A Figura 2 é um fluxograma que mostra aspectos de uma rotina ilustrativa para processar consultas de usuário;
[008] A Figura 3 é um fluxograma que mostra aspectos de uma rotina ilustrativa para fornecer sugestões de consulta;
[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;
[0010] A Figura 5 é um diagrama de arquitetura de computador que mostra uma arquitetura de hardware e software de computador ilustrativa;
[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
[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.
DESCRIÇÃO DETALHADA
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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
[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").
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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".
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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).
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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).
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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).
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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").
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[00109] As tecnologias reveladas no presente documento podem ser descritas como definidas nas cláusulas a seguir:
[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:
[00111] detectar acesso em uma fonte de dados;
[00112] coletar dados não baseados em consulta com base no acesso detectado;
[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
[00114] retornar a sugestão de consulta inicial.
[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.
[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:
[00117] comparar os metadados a informações de consulta ou de metadados anteriores;
[00118] determinar que pelo menos uma porção dos metadados é associada a uma porção das informações de consulta anteriores; e
[00119] gerar a sugestão de consulta inicial com base na porção das informações de consulta anteriores.
[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.
[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:
[00122] comparar os dados não baseados em consulta a um conjunto de declarações de consulta padrão;
[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
[00124] gerar a sugestão de consulta inicial com base na pelo menos uma declaração de consulta padrão.
[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:
[00126] receber uma solicitação para acessar dados na fonte de dados;
[00127] receber uma solicitação para receber a sugestão de consulta inicial; ou
[00128] determinar que um arquivo foi aberto.
[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).
[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.
[00131] Cláusula 9. O método implantado por computador de acordo com qualquer uma das cláusulas 1 a 8, que compreende, ainda:
[00132] receber indicação de ação sobre a sugestão de consulta inicial;
[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
[00134] retornar a sugestão de consulta adicional.
[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.
[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:
[00137] pelo menos um computador que executa uma camada de serviço de sugestão de consulta configurada para
[00138] detectar acesso em uma fonte de dados de um cliente,
[00139] coletar dados não baseados em consulta,
[00140] receber uma consulta para a fonte de dados do cliente,
[00141] determinar uma sugestão de consulta para a consulta com base nos dados não baseados em consulta e na consulta, e
[00142] retornar a sugestão de consulta para o cliente.
[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.
[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:
[00145] comparar os metadados e a consulta a informações de consulta ou de metadados anteriores;
[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
[00147] gerar a sugestão de consulta com base na porção das informações de consulta anteriores.
[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.
[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:
[00150] receber uma solicitação para acessar dados na fonte de dados;
[00151] receber uma solicitação para receber a sugestão de consulta inicial; ou
[00152] determinar que um arquivo foi aberto no cliente.
[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:
[00154] determinar que a consulta inclui uma mudança em respos- ta para fornecer a sugestão de consulta;
[00155] aplicar a mudança à consulta;
[00156] determinar uma sugestão de consulta adicional para a consulta para a fonte de dados com base na mudança aplicada; e
[00157] retornar a sugestão de consulta adicional para o cliente.
[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.
[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:
[00160] detectar acesso em uma fonte de dados;
[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
[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.
[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.
[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:
[00165] comparar os dados de consulta a informações de consulta anteriores;
[00166] determinar que pelo menos uma porção dos dados de consulta é associada a uma porção das informações de consulta anteriores; e
[00167] gerar sugestões de consulta com base na porção das informações de consulta anteriores.
[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.

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.
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.
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.
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.
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).
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.
BR112016030120-0A 2014-07-03 2015-07-02 Método implementado por computador para proporcionar uma sugestão de consulta e sistema configurado para proporcionar sugestões de consulta BR112016030120B1 (pt)

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 (pt) 2017-08-22
BR112016030120A2 BR112016030120A2 (pt) 2021-06-08
BR112016030120B1 true BR112016030120B1 (pt) 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 (zh) 可视化建议
US20130124605A1 (en) Aggregating and presenting tasks
US20160092406A1 (en) Inferring Layout Intent
US20150120748A1 (en) Indexing spreadsheet structural attributes for searching
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
WO2019182876A1 (en) Smart versioning for files
KR20170038823A (ko) 문서에서의 데이터 검색 이용 방법
US20160124975A1 (en) Location-aware data access
BR112016030120B1 (pt) Método implementado por computador para proporcionar uma sugestão de consulta e sistema configurado para proporcionar sugestões de consulta