BR112012029828B1 - Método, aparelho e meio de armazenamento legível por computador - Google Patents
Método, aparelho e meio de armazenamento legível por computador Download PDFInfo
- Publication number
- BR112012029828B1 BR112012029828B1 BR112012029828-3A BR112012029828A BR112012029828B1 BR 112012029828 B1 BR112012029828 B1 BR 112012029828B1 BR 112012029828 A BR112012029828 A BR 112012029828A BR 112012029828 B1 BR112012029828 B1 BR 112012029828B1
- Authority
- BR
- Brazil
- Prior art keywords
- function
- concept
- data
- context
- service
- Prior art date
Links
- 230000006870 function Effects 0.000 claims abstract description 292
- 238000000034 method Methods 0.000 claims abstract description 131
- 230000005540 biological transmission Effects 0.000 claims description 10
- 230000015572 biosynthetic process Effects 0.000 claims 3
- 238000004590 computer program Methods 0.000 abstract description 10
- 230000008569 process Effects 0.000 description 91
- 238000004891 communication Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 24
- 230000008901 benefit Effects 0.000 description 18
- 240000008042 Zea mays Species 0.000 description 14
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 11
- 235000005822 corn Nutrition 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000005611 electricity Effects 0.000 description 4
- 235000016383 Zea mays subsp huehuetenangensis Nutrition 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000001815 facial effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 239000004615 ingredient Substances 0.000 description 3
- 235000009973 maize Nutrition 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- ATUOYWHBWRKTHZ-UHFFFAOYSA-N Propane Chemical compound CCC ATUOYWHBWRKTHZ-UHFFFAOYSA-N 0.000 description 2
- 241000282887 Suidae Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000010079 rubber tapping Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 235000007319 Avena orientalis Nutrition 0.000 description 1
- 244000075850 Avena orientalis Species 0.000 description 1
- 241000283690 Bos taurus Species 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229920000742 Cotton Polymers 0.000 description 1
- 235000010469 Glycine max Nutrition 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 244000299461 Theobroma cacao Species 0.000 description 1
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 241000209140 Triticum Species 0.000 description 1
- 235000021307 Triticum Nutrition 0.000 description 1
- 230000027455 binding Effects 0.000 description 1
- 238000009739 binding Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000005465 channeling Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003245 coal Substances 0.000 description 1
- 235000016213 coffee Nutrition 0.000 description 1
- 235000013353 coffee beverage Nutrition 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000010779 crude oil Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000003345 natural gas Substances 0.000 description 1
- 239000003921 oil Substances 0.000 description 1
- 235000015205 orange juice Nutrition 0.000 description 1
- 239000002420 orchard Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 239000003209 petroleum derivative Substances 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000010287 polarization Effects 0.000 description 1
- 235000015277 pork Nutrition 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 239000001294 propane Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 235000000346 sugar Nutrition 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
-
- H04L67/16—
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
Abstract
método, aparelho, e, produto de programa de computador. as técnicas para identificar as funções de rede incluem a determinação de primeiros dados que indicam um conceito representado no conteúdo fornecido por um dispositivo. uma função é fornecida por um serviço de rede é determinado com base nos primeiros dados. em algumas concretizações, as técnicas incluem a formação de uma estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede a pelo menos um identificador para um conceito.
Description
Os provedores de serviços e fabricantes de dispositivos (por exemplo, sem fio, celular, etc) são continuamente desafiados a entregar valor e conveniência para os consumidores, por exemplo, a prestação de serviços de rede convincentes. Muitos fabricantes de dispositivos convidaram partes independentes para o desenvolvimento de aplicações de software para as plataformas de hardware produzidas por esses fabricantes, por exemplo, para acelerar o número de aplicações que podem ser oferecidas aos usuários da plataforma em um curto espaço de tempo após a plataforma ser lançada. Tais aplicações, muitas vezes, dependem de serviços back-end disponíveis através de uma rede de comunicação, tais como serviços de mapas, pontos de serviços de interesse, serviços de busca de número de telefone, serviços de taxa de câmbio, serviços de processamento de imagem, serviços de reconhecimento facial, serviços de identificação de música, entre centenas ou até milhares de outros serviços back-end. Estes serviços normalmente são invocados através de uma interface de programação específica de aplicação (API) acessado através da rede de comunicação através de um protocolo de mensagens particular. Pode se tornar muito desafiador para um desenvolvedor de aplicativos para identificar os serviços back-end adequados para suportar o pedido.
Por conseguinte, existe uma necessidade de uma abordagem para identificar as funções de rede com base em dados do usuário, a seguir chamados de conteúdo, tais como clipes de som e fotografias de um dispositivo de usuário, ou com base no contexto, tais como tempo, localização e atividade, tal como determinado no dispositivo de usuário, ou ambos.
De acordo com uma concretização, um método compreende a determinação de primeiros dados que indicam um 5 conceito representado no conteúdo fornecido por um dispositivo. 0 método compreende ainda determinar, com base nos primeiros dados, uma função fornecida por um serviço de rede.
De acordo com outra concretização, um aparelho 10 compreende pelo menos um processador e, pelo menos, uma memória, incluindo o código de programa de computador, a pelo menos uma memória e o código de programa de computador configurados para, com o pelo menos um processador, fazer com que, pelo menos em parte, o aparelho determine os primeiros 15 dados que indicam um conceito representado em conteúdo fornecido por um dispositivo. O aparelho é também provocado para determinar, com base nos primeiros dados, uma função fornecida por um serviço de rede.
De acordo com outra concretização, um método 20 compreende facilitar o acesso a pelo menos uma interface configurada para permitir o acesso a, pelo menos, um serviço. O pelo menos um serviço está configurado para executar pelo menos, determinar os primeiros dados que indicam um conceito representado no conteúdo fornecido por um dispositivo. O pelo 25 menos um serviço está configurado também para determinar, com base nos primeiros dados, uma função fornecida por um serviço de rede diferente.
De acordo com outra concretização, um meio de armazenamento legível por computador, transportando uma ou 30 mais sequências de uma ou mais instruções que, quando executadas por um ou mais processadores, fazem com que, pelo menos em parte, um aparelho determine os primeiros dados que indicam um conceito representado no conteúdo fornecido por um dispositivo. O aparelho é também provocado para determinar, com base nos primeiros dados, uma função fornecida por um serviço de rede.
De acordo com outra concretização, um aparelho compreende meios para determinar os primeiros dados que indicam um conceito representado no conteúdo fornecido por um dispositivo. 0 aparelho compreende ainda meios para determinar, com base nos primeiros dados, uma função fornecida por um serviço de rede.
De acordo com uma concretização, um método compreende a formação de uma estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede a pelo menos um identificador para um conceito.
De acordo com outra concretização, um aparelho compreende pelo menos um processador e, pelo menos, uma memória, incluindo o código de programa de computador, a pelo menos uma memória e o código de programa de computador configurado para, com o pelo menos um processador, fazer com que, pelo menos em parte, o aparelho forme uma estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede a pelo menos um identificador para um conceito.
De acordo com outra concretização, um método compreende facilitar o acesso a pelo menos uma interface configurada para permitir o acesso a, pelo menos, um serviço. 0 pelo menos um serviço está configurado de modo a formar uma estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede a pelo menos um identificador para um conceito.
De acordo com outra concretização, um meio de armazenamento legível por computador, transportando uma ou mais sequências de uma ou mais instruções que, quando executadas por um ou mais processadores, faz com que, pelo menos em parte, um aparelho forme uma estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede a pelo menos um identificador para um conceito.
De acordo com outra concretização, um produto de programa de computador inclui uma ou mais sequências de uma ou mais instruções que, quando executadas por um ou mais processadores, fazem com que um aparelho efetuar, pelo menos, as etapas de um ou mais dos métodos acima.
De acordo com outra concretização, um aparelho compreende meios para a formação de uma estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede a pelo menos um identificador para um conceito. O aparelho compreende também meios para formar uma estrutura de dados que associa a cada função da pluralidade de funções proporcionadas por uma pluralidade de serviços de rede com pelo menos um identificador para um contexto de dispositivo.
Para várias concretizações da invenção de exemplo, o seguinte é aplicável:Um método que compreende:facilitar um processamento de e/ou processar: (1) dados e/ou (2) informações e/ou (3) pelo menos um sinal;(1) os dados e/ou (2) as informações e/ou (3) o pelo menos um sinal com base, pelo menos em parte, em (ou derivado pelo menos em parte de) qualquer um ou qualquer combinação de métodos (ou processos) descrito neste pedido como relevante para qualquer concretização da invenção.
Para várias concretizações da invenção de exemplo, o seguinte é aplicável:Um método compreendendo facilitar o acesso a pelo menos uma interface configurada para permitir o acesso a pelo menos um serviço, o pelo menos um serviço configurado para realizar qualquer um ou qualquer combinação de métodos de provedor de serviços ou de rede (ou processos) divulgados no presente pedido.
Para várias concretizações da invenção de exemplo, o seguinte é aplicável:Um método compreendendo facilitar a criação e/ou facilitar a modificação do seguinte: (1) pelo menos um elemento de dispositivo de interface de usuário e/ou (2) pelo menos uma funcionalidade de interface de usuário do dispositivo;(1) o pelo menos um elemento de dispositivo de interface de usuário e/ou (2) a pelo menos uma funcionalidade de interface de usuário do dispositivo com base pelo menos em parte, no seguinte: dados e/ou informações resultantes de um ou de qualquer combinação dos métodos ou processos divulgados neste pedido de patente como relevantes para qualquer concretização da invenção, e/ou pelo menos, um sinal resultante de um ou qualquer combinação de métodos (ou processos) divulgados no presente pedido como relevantes para qualquer concretização da invenção.
Para várias concretizações da invenção de exemplo, o seguinte é aplicável:
Um método compreendendo criar e/ou modificar o seguinte: (1) pelo menos um elemento de interface de usuário do dispositivo e/ou (2) pelo menos uma funcionalidade de interface de usuário do dispositivo; (1) o pelo menos um elemento de interface de usuário do dispositivo e/ou (2) pelo menos uma funcionalidade de interface de usuário do dispositivo com base pelo menos em parte, no seguinte: dados e/ou informações resultantes de um ou de uma combinação de métodos (ou processos) divulgados no presente pedido como relevantes para qualquer concretização do invenção, e/ou pelo menos, um sinal resultante de um ou qualquercombinação de métodos (ou processos) divulgados no presente pedido como relevantes para qualquer concretização da invenção.
Nas diversas concretizações de exemplo, os métodos (ou processos) podem ser realizados no lado do provedor de serviços ou do lado do dispositivo móvel ou de qualquer forma compartilhada entre provedor de serviços e um dispositivo móvel com as ações sendo executadas em ambos os lados.
Ainda outros aspectos, características e vantagens da presente invenção são prontamente evidentes a partir da descrição detalhada a seguir, simplesmente, ilustrando um certo número de concretizações particulares e implementações, incluindo o melhor modo contemplado para realizar a invenção. A presente invenção também é capaz de outras concretizações e diferentes, e os seus vários detalhes podem ser modificados em vários aspectos óbvios, todos sem se afastar do espírito e do escopo da invenção. Por conseguinte, os desenhos e descrição devem ser considerados como ilustrativos por natureza, e não como restritivos.
As concretizações da invenção são ilustradas por meio de exemplo, e não como forma de limitação, nas figuras dos desenhos anexos:
A Figura 1 é um diagrama de um sistema capaz de 30 identificar as funções de rede com base em conteúdo e contexto no equipamento do usuário, de acordo com uma concretização;
A Figura 2A é um diagrama de uma estrutura de dados para armazenar uma função em associação com um ou mais objetos ou contextos;
A Figura 2B é um diagrama de uma estrutura de dados para armazenar um índice para uma estrutura de dados de função-conceito-contexto;
A Figura 3A é um diagrama de módulos de um processo de cliente para utilizar uma função baseado no conteúdo ou contexto no cliente, de acordo com uma concretização;
A Figura 3B é um diagrama de módulos de serviço orientado a um usuário, de acordo com uma concretização;
A Figura 3C é um diagrama de módulos de um serviço de busca de função, de acordo com uma concretização,
A Figura 4 é um fluxograma de um processo para a busca de função, de acordo com uma concretização;
A Figura 5 é um fluxograma de um processo para uma aplicação que utiliza busca de função, de acordo com uma concretização;
A Figura 6 é um fluxograma de um processo de construção de uma estrutura de dados de função a contexto a conceito, de acordo com uma concretização;
As Figuras 7A a 7E são diagramas de interfaces de usuário utilizadas nos processos da Figura 5, de acordo com várias concretizações;
A Figura 8 é um diagrama de hardware que pode ser usado para implementar uma concretização da invenção;
A Figura 9 é um diagrama de um conjunto de chips que pode ser usado para implementar uma concretização da invenção, e
A Figura 10 é um diagrama de um terminal móvel (por exemplo, telefone celular) que pode ser utilizado para implementar uma concretização da presente invenção.
Exemplos de um método, aparelho, e um programa de computador são descritos para a identificação de funções de rede com base no conteúdo ou contexto. Na descrição a seguir, para fins de explicação, numerosos detalhes específicos são estabelecidos para proporcionar uma compreensão completa das concretizações da invenção. É evidente, no entanto, para uma pessoa versada na técnica que as concretizações da invenção podem ser praticadas sem estes detalhes específicos, ou com uma disposição equivalente. Em outros casos, estruturas e dispositivos bem conhecidas estão mostrados na forma de diagrama de blocos, a fim de evitar desnecessariamente obscurecer as concretizações da invenção.
Como aqui utilizado, o termo conteúdo se refere a todos os dados, incluindo os dados digitais que podem ser apresentados para percepção humana, por exemplo, som digital, canções, imagens digitais, jogos digitais, mapas digitais, ponto de informação de interesse, vídeos digitais (como vídeos de música, clips de notícias e vídeos teatrais), documentos, anúncios, instruções de programas ou objetos de dados, quaisquer outros dados digitais, ou qualquer combinação destes. O conteúdo é armazenado em uma ou mais estruturas de dados, tais como arquivos ou bases de dados. Embora diversas concretizações são descritas com respeito à identificação de funções de rede adequadas para uma fotografia digital, é contemplado que a abordagem aqui descrita pode ser usada com outros tipos de conteúdos, tais como gravações de som, gravações de vídeo, dados do jogo e os arquivos recuperados da rede, entre outros.
A Figura 1 é um diagrama de um sistema 100 capaz de identificar as funções de rede com base em conteúdo e contexto no equipamento do usuário, de acordo com uma concretização. 0 equipamento de usuário 101 tem conectividade para um ou mais serviços de rede orientados a usuários 110a a 110n (coletivamente referenciados a seguir como serviços 110) por meio de um ou mais processos de cliente, tais como navegador da World Wide Web 107 ou processo de cliente 112 comunicando através da rede de comunicações 105. O UE 101 também inclui mecanismo de contexto 103 que determina o contexto local do UE 101 e qualquer usuário do mesmo, tais como hora local, posição geográfica de um sistema de posicionamento, a temperatura ambiente, a pressão, o som e a luz, e as aplicações em execução no UE 101, o conteúdo atualmente sendo processado no EU 101, e a entrada do usuário através de uma interface de usuário (UI).
A título de exemplo, a rede de comunicação 105 do sistema 100 inclui uma ou mais redes tais como uma rede de dados (não mostrada) , uma rede sem fio (não mostrada) , uma rede telefônica (não mostrada), ou qualquer combinação destas. Contempla-se que a rede de dados pode ser qualquer rede de área local (LAN) , rede de área metropolitana (MAN) , rede de área larga (WAN) , uma rede de dados pública (por exemplo, a Internet) , ou qualquer outra rede de comutação de pacotes adequada, tal como uma de propriedade comercial, a rede de comutação de pacotes proprietária, por exemplo, um cabo proprietário ou rede de fibra óptica. Além disso, a rede sem fio pode ser, por exemplo, uma rede celular e pode empregar diversas tecnologias, incluindo as taxas de dados avançadas para a evolução global (EDGE), General Packet Radio Service (GPRS), sistema global para comunicações móveis (GSM), subsistema de multimídia de protocolo da Internet (IMS), sistema de telecomunicações móveis universal (UMTS), etc, bem como qualquer outro meio adequado sem fio, por exemplo, interoperabilidade em todo o mundo para acesso via micro a ondas (WiMAX) , redes de Long Term Evolution (LTE) , acesso múltiplo por divisão de código (CDMA), acesso múltiplo de banda larga por divisão de código (WCDMA), Wireless Fidelity (Wi a Fi) , por satélite, rede móvel ad a hoc (MANET), e similares ou qualquer combinação destes.
O UE 101 é qualquer tipo de terminal móvel, terminal fixo ou terminal portátil, incluindo um aparelho móvel, a estação, a unidade, dispositivo, computador multimídia, tablet multimídia, o nó de Internet, comunicador, computador de mesa, laptop, computador, notebook, netbook, computador tablet, Assistente pessoal digital (PDAs), reprodutor de áudio / vídeo, câmera digital / câmara de vídeo, dispositivo de posicionamento, receptor de televisão, um receptor de rádio, aparelho de livro eletrônico, dispositivo de jogo, ou qualquer combinação destes, incluindo os acessórios e periféricos desses dispositivos, ou qualquer combinação destes. É também contemplado que o UE 101 pode suportar qualquer tipo de interface para o usuário (tal como um circuito "usável", etc.)
A título de exemplo, o UE 101 e serviços orientados a usuário 110 comunicam-se uns com os outros e outros componentes da rede de comunicação 105 utilizando protocolos bem conhecidos, novos ou ainda em desenvolvimento. Neste contexto, um protocolo inclui um conjunto de regras que definem como os nós da rede dentro da rede de comunicação 105 interagem uns com os outros com base em informações enviadas através dos links de comunicação. Os protocolos são eficazes em diferentes camadas de operação no interior de cada nó, da geração e recebimento de sinais físicos de vários tipos, até a escolha de um link para a transferência de tais sinais, para o formato de informação indicada pelos referidos sinais, para identificar que a aplicação de software em execução em um sistema de computador envia ou recebe a informação. As camadas conceptualmente diferentes de protocolos de troca de dados através de uma rede são descritas no Modelo de referência de Interconexão de Sistemas Abertos (OSI).
As comunicações entre os nós da rede são tipicamente efetuadas por troca de pacotes de dados discretos. Cada pacote compreende, tipicamente, (1) a informação de cabeçalho associada com um determinado protocolo, e (2) informação de carga útil que segue a informação de cabeçalho e contém informação que pode ser processada de forma independente do referido protocolo particular. Em alguns protocolos, o pacote inclui (3) informações de trailer após a carga útil e que indica o fim da informação de carga útil. 0 cabeçalho contém informações como a fonte do pacote, o seu destino, o tamanho da carga, e outras propriedades usadas pelo protocolo. Muitas vezes, os dados da carga útil para o protocolo especial incluem um cabeçalho e carga útil para um protocolo diferente associado com uma camada diferente e mais elevada do modelo de referência OSI. O cabeçalho de um protocolo particular normalmente indica um tipo para o próximo protocolo contido em sua carga útil. O protocolo de camada superior é dito para ser encapsulado no protocolo de camada inferior. Os cabeçalhos incluídos em um pacote atravessando várias redes heterogêneas, como a Internet, normalmente incluem um cabeçalho (camada 1) físico, um cabeçalho de link de dados (camada 2), um conjunto de redes de cabeçalho (camada 3) e um cabeçalho de transporte (camada 4) , e os cabeçalhos de várias aplicações (camada 5, a camada 6 e camada 7) , tal como definido pelo modelo de referência OSI.
O modelo cliente a servidor da interação do processo de computador é amplamente conhecido e utilizado. De acordo com o modelo cliente a servidor, um processo de cliente envia uma mensagem que inclui um pedido para um processo de servidor, e o processo de servidor responde fornecendo um serviço. 0 processo de servidor também pode retornar uma mensagem com uma resposta ao processo de cliente. Muitas vezes, o processo de cliente e o processo de servidor executam em dispositivos de computador diferentes, chamados de hospedeiros, e se comunicam através de uma rede usando um ou mais protocolos de comunicações de rede. 0 termo "servidor" é convencionalmente utilizado para se referir ao processo que fornece o serviço ou o computador hospedeiro em que o processo opera. Da mesma forma, o termo "cliente" é convencionalmente usado para se referir ao processo que faz o pedido, ou com o computador hospedeiro em que o processo opera. Como usado aqui, os termos "cliente" e "servidor" referem-se a processos, em vez dos computadores hospedeiros, a menos que de outro modo evidente a partir do contexto. Além disso, o processo realizado por um servidor pode ser dividido para ser executado como vários processos em vários hosts (às vezes chamado de camadas) , por motivos que incluem a confiabilidade, escalabilidade e redundância, entre outros. Um processo de cliente bem conhecido disponível na maioria dos nós conectados a uma rede de comunicações é um cliente World Wide Web (chamado de "navegador da web", ou simplesmente "navegador") que interage através de mensagens formatadas de acordo com o protocolo de transferência de hipertexto (HTTP) com qualquer de um grande número de servidores chamados de servidores da World Wide Web que disponibilizam páginas da web. Por exemplo, em algumas concretizações, os serviços de rede 110 são servidores da World Wide Web, e o UE 101 cada um inclui o navegador 107, com o qual obter esses serviços.
Os serviços orientados a usuário 110 empregam um ou mais serviços back-end 120a a 120N (coletivamente referenciados a seguir como serviços back-end 120) através de interfaces de programação de aplicativos correspondentes (APIs) 122a a 122N (coletivamente referenciados a seguir como API back-end 122) . Muitos serviços back-end publicam seus endereços de rede e APIs e protocolos de mensagens em um registro de serviço 128. Por exemplo, um registro de serviços da rede inclui UDDI {Universal Description, Discovery and Integration - Descrição Universal, Descoberta e Integração) , que é interrogado por mensagens de protocolo de acesso a objeto simples [Simple Object Access Protocol] (SOAP) para fornecer acesso a documentos de linguagem de descrição de serviços da web {Web Services Description Language (WSDL)) que descrevem as ligações de protocolos e formatos de mensagem necessários para interagir com os serviços da web listados em seu diretório.
A fim de proporcionar uma aplicação de usuário orientada para o UE 101, um desenvolvedor do aplicativo (que pode ser um indivíduo ou uma equipe de indivíduos) escreve um processo de cliente, como um processo de cliente 112, para interagir com os serviços back-end 120, quer diretamente, ou indiretamente, através de um serviço orientado ao usuário 110 também escrito pelo desenvolvedor, e entrega o processo de cliente para o UE 101. Em alguns casos, o programador da aplicação depende do navegador 107 no UE 101 para uma interface de usuário e escreve o serviço de rede orientado a usuário 110 que interage com um ou mais serviços back-end 120, e simplesmente fornece ao UE 101 um link para o serviço 110. Conhecimento de todos os serviços back-end 120 e suas correspondentes APIs e protocolos correspondentes, muitas vezes, requer uma grande dose de experiência de um desenvolvedor técnico experiente. Invocar um grande número destes serviços back-end também pode envolver uma grande quantidade de armazenamento e processamento no UE 101 ou host do serviço 110.
Além disso, para algumas aplicações orientadas ao usuário, uma ação apropriada através da aplicação depende do conteúdo particular escolhido pelo usuário para uma operação pela aplicação, por exemplo, se o usuário tiver tirado uma fotografia de um edifício ou de um campo de milho ou de um grupo de pessoas. O serviço back-end 12 0 a ser chamado frequentemente depende do que é representado pelo conteúdo, por exemplo, um serviço de reconhecimento facial e um serviço de reserva de bilhetes para filme não são susceptíveis de serem apropriados para uma imagem de um campo de milho fornecido por um usuário. Antecipar todos os conteúdos fornecidos pelo usuário, e interfaces de programação para todos os serviços back-end apropriados traria muitos aplicativos orientados a usuário excessivamente grandes e complicados, e, assim, retardaria o desenvolvimento e entrega de tais aplicações. Por conseguinte, os aplicativos orientados a usuário se beneficiariam de uma maneira uniforme ou dinamicamente identificam funções apropriadas de serviços back-end 120, ou ambos.
Para resolver este problema, o sistema 100 da Figura 1 introduz a capacidade de identificar as funções de rede com base no conteúdo e contexto no equipamento do usuário. Na concretização ilustrada, a capacidade expandida inclui o serviço de busca de função 13 0 e uma estrutura de dados de função-conceito-contexto 134. O serviço de busca de função ilustrado 13 0 inclui sua própria API 132, e zero ou mais índices 136, e serve como um portal único para múltiplos serviços back-end 120. Os índices 136, se presentes, permitem que o serviço de busca de função 130 encontre eficientemente, na estrutura de dados 134, um serviço back-end relacionado com o conteúdo atual do usuário ou o contexto ou ambos. O novo serviço de busca de função 13 0 fornece um ou mais serviços back-end 120 que podem ser consultados no registro de serviço 128 e chamado por um cliente 112 ou serviço orientado ao usuário 110. 0 novo serviço de busca de função 130 usa recursos extraídos do conteúdo fornecido pelo usuário e associado com os serviços back-end avançados 120 no armazenamento de função-conceito-contexto 134, a fim de sugerir funções apropriadas dos serviços back-end 120. O cliente 112 ou o serviço orientado ao usuário 110 determina um serviço back-end especial 120, ou função do mesmo, com base nas funções fornecidas, e determina os valores para todos os parâmetros necessários para o serviço back-end 120 e envia os valores de acordo com a API 122 e protocolo correspondente. A estrutura de dados de função-conceito- contexto 134 e serviço de função de busca 13 0 são meios de exemplo para alcançar a vantagem de simplificar os processos no cliente 112 e correspondentes serviços orientados a usuário 110, se for o caso, enquanto oferece uma ampla gama de serviços back-end 120. O processo do cliente 112, portanto, consome muito menos memória para fornecer a ampla gama de serviços back-end do que seria um cliente que suportou explicitamente cada um dos serviços back-end.
A Figura 2A é um diagrama de uma estrutura de dados de entrada 200 para armazenar uma função em associação com um ou mais conceitos ou contextos. Embora as estruturas de dados e os campos estejam apresentados na Figura 2A e Figura 2B como blocos integrados em uma ordem específica, para fins de ilustração, em outras concretizações, uma ou mais estruturas de dados ou campos, ou porções dos mesmos, são dispostos em uma ordem diferente em uma ou mais estruturas de dados ou bases de dados em um ou mais nós de uma rede, ou são omitidos, ou um ou mais campos adicionais são adicionados, ou as estruturas de dados são alteradas em alguma combinação de maneiras.
Na concretização ilustrada, a entrada 200 inclui um campo de identificador de serviço {ID) 202, um campo de identificador de função (ID) 204, um campo de identificador de API (ID) 206, um campo de protocolo 208, um campo de parâmetros 210, um campo de descrição 22 0, um campo do tipo de mídia 230, um campo de conceitos relevantes 240 e um campo de contextos relevantes 250.
O campo de ID de serviço 202 tem dados que indicam um dos serviços back-end 120. Qualquer método para identificar o serviço back-end no campo 202 pode ser usado, tal como o endereço de rede para o serviço (por exemplo, um Protocolo de Internet, IP, endereço e porta de protocolo de controle de transferência, ou um protocolo a domínio a nome a diretório a nome do arquivo) , ou uma chave do registro de serviço 128 associado com esse serviço back-end, como é bem conhecido na técnica. O campo de ID de função 204 contém dados que indicam uma função individual, se for o caso, de um serviço back-end indicado no campo 202. 0 campo de ID de API 206 contém dados que indicam uma API para a função indicada no campo 204, como um endereço de rede onde a API é publicada ou um identificador para o conjunto de API por si só dentro do serviço. A função é parte do conjunto de API em particular. O protocolo de campo 208 contém dados que indicam uma mensagem de protocolo para a troca de dados com a API indicada no campo 206. Em algumas concretizações, a API ou um protocolo, ou ambos, estão disponíveis no registro de serviço 128 na tecla indicada no campo 202, e o campo 206, ou o campo 208, ou ambos, respectivamente, são omitidos. Incluindo os campos 206 ou 2 08 ou ambos, estão meios de exemplo para realização da vantagem de reduzir a largura de banda para chamar uma função de um serviço back-end. Omitindo o campo 206 ou o campo 208 ou ambos são meios de exemplo da vantagem de reduzir o espaço de armazenamento da estrutura de dados de função-contexto-conceito 134.
O campo de parâmetros 210 tem dados que indicam os parâmetros de entrada (para os quais valores devem ser fornecidos para a função) e parâmetros de saída (para os quais os valores são resultado da função identificada nos campos 202 e 204). Por exemplo, o campo de parâmetros 210 tem dados que indicam nomes de parâmetros de entrada e saída, unidades e escalas válidas, e os valores padrão, se houver. Em algumas concretizações, os parâmetros estão disponíveis no registro de serviço 128 na tecla indicada no campo 202, e campo 210 é omitido. Incluindo o campo 210 é um meio de exemplo para conseguir a vantagem de reduzir a largura de banda para chamar uma função de um serviço back-end. Omitir o campo 210 é um meio de exemplo para conseguir a vantagem de reduzir o espaço de armazenamento da estrutura de dados de função-conceito-contexto 134.
O campo de descrição 220 contém dados como o texto que descreve a operação realizada pela função identificada nos campos 202 e 204, que pode ser compreendido por um usuário final do UE 101. Por exemplo, a descrição do campo 220 contém texto que afirma que "Determine o endereço da rua correspondente a coordenadas de GPS", "Fornecer mapas para um determinado local", "Determinar celebridade em uma foto mostrando a cara daquela celebridade", "reservar bilhetes para espetáculos em um teatro participante", "reservar passagem de avião para cidade de destino", "Reservar mesa em um restaurante participante", "determinar título e o artista de gravação de som semelhante ao da amostra", "Determinar mercado de compra e os preços de venda para ações e títulos", "Determinar preços de compra e venda de mercado para mercadorias", "Determinar ponto de venda de um produto", "fornecer receitas que incluem ingredientes dados", "Emitir pagamento de uma conta bancária", etc. Em algumas concretizações, a descrição está disponível no registro de serviço 128 na tecla indicada no campo 202, e campo 220 é omitido. Incluir o campo 22 0 é um meio de exemplo para conseguir a vantagem de reduzir a largura de banda para apresentar a um usuário do UE 101 a função de um serviço back-end. Omitir o campo 220 é um meio de exemplo para conseguir a vantagem de reduzir o espaço de armazenamento de estrutura de dados de função-conceito-contexto.
O campo tipo de mídia 23 0 tem dados que indicam os tipos de mídia em que a função opera, por exemplo, formatos de arquivo de imagem, formatos de arquivos de áudio, formatos de arquivos de vídeo, formatos de texto de processamento de documentos, formatos de planilhas, formatos de linguagem de marcação, entre outros. Esta informação é utilizada como um discriminador, em algumas concretizações, para filtrar as funções que não operam sobre o conteúdo fornecido por um usuário. Em algumas concretizações, os tipos de materiais estão disponíveis no registro de serviço 128 na tecla indicada no campo 202, e o campo 230 é omitido. Incluir o campo 23 0 é um meio de exemplo de conseguir a vantagem de reduzir a largura de banda da rede para determinar uma função adequada de um serviço back-end. Omitir o campo 230 é um meio de exemplo para conseguir a vantagem de reduzir o espaço de armazenamento de estrutura de dados de função-conceito- contexto .
O campo de conceitos relevantes 240 contém dados que indicam quais os conceitos, tais como objetos físicos, de uma biblioteca de identificação de conceito são relevantes para a função identificada nos campos 202 e 204. Bibliotecas de conceito de conceitos que podem ser identificados em imagens, áudio ou texto são conhecidas. Como usado aqui um conceito é uma entrada em uma biblioteca de semântica ou de objeto e pode representar objetos tangíveis, como pessoas e carros, ou objetos intangíveis, como ações e títulos, ou ações, como o esqui, natação. Muitas vezes, os conceitos são agrupados em categorias, tais como veículos ou edifícios ou aquático ou aéreo etc. Em algumas concretizações, os conceitos inseridos no campo de conceitos relevantes 240 são os conceitos ou categorias de conceito específicas de que a função se aplica. Por exemplo, os conceitos de pessoa são relevantes para funções de reconhecimento facial e funções de reconhecimento de voz (tipo de mídia = imagens ou áudio, respectivamente), enquanto que os gêneros alimentícios são relevantes para funções de receitas (tipo de mídia = texto indicando alimentos) , e os edifícios são relevantes para a compra de bilhete e reservas de mesa (tipo de mídia = texto indicando edifício), e produtos são relevantes para funções de ponto de venda (tipo de mídia = texto indicando produto). Em algumas concretizações, os conceitos são expressos em termos de um objeto ou vocabulário semântico, ou ambos, tal como descrito em mais detalhe abaixo. Em algumas concretizações, o conceito é um conceito de um vocabulário semântico, como ações ou títulos. Os conceitos existem fora de, e independente de, suas representações digitais no conteúdo fornecido pelo usuário. O campo 24 0 é um meio de exemplo de conseguir a vantagem de associar uma função de um sistema back-end com um conceito que pode ser representado no conteúdo do usuário. 0 campo 240 pode ser omitido em algumas concretizações que selecionam funções puramente no contexto e não em objetos ou outros conceitos representados no conteúdo.
O campo de contexto relevante 250 tem dados que indicam informação temporal ou espacial ou atividade que é relevante para a função identificada nos campos 202 e 204. Em algumas concretizações, o contexto é expresso em termos de um vocabulário de contexto, conforme descrito em mais detalhe abaixo, tal como segunda-feira, 10 AM, posição de GPS, comunicando, operando no documento, inativo, ausente, etc. Muitas vezes, o contexto inclui sujeitos de contexto associado com certas combinações de palavras do vocabulário de contexto, conforme descrito em mais detalhes abaixo, tal como trabalho, exercício, sono, alimentação, recriar. Por exemplo, hora do dia e dia da semana são relevantes para funções bancárias; localização é importante para funções de ponto de venda, bem como funções de compra de bilhetes e reservas de mesa; época do ano é relevante para funções de receitas. As atividades de comunicação são relevantes para funções de conversão de texto para fala ou de fala para texto. O campo 250 é um meio de exemplo para conseguir a vantagem de associar uma função de um sistema back-end com um contexto que pode ser associado a um usuário de um dispositivo, tal como UE 101. O campo 250 pode ser omitido em algumas concretizações que selecionam funções puramente em conceitos representados no conteúdo e não no contexto.
Qualquer método pode ser usado para indicar o contexto no campo 250. Em várias configurações, um vocabulário de contexto e topologia é desenvolvido que identifica palavras e tópicos relacionados aos contextos dos consumidores. Qualquer método conhecido na técnica pode ser utilizado para gerar o vocabulário de contexto e topologia. Por exemplo, vários documentos são coletados que discutir e descrever contexto do consumidor, tais como documentos que descrevem a importância de saber se o consumidor está trabalhando para pagar ou realizando outras tarefas ou em lazer, se a hora atual é um dia de semana ou fim de semana, se a corrente atual é verão ou inverno, se o consumidor está em casa ou fora, ou se o consumidor está em uma rota de destino ou privada, se um documento está invocando o nome do local ou um nome de pessoa, se o consumidor está parado ou em movimento e em que velocidades e direções, se é claro ou escuro, e quais aplicativos estão disponíveis em um equipamento do usuário pertencente ao consumidor. Estes documentos são extraídos para determinar palavras relacionadas ao contexto do consumidor, coleções de palavras relacionadas ao contexto, ou uso relativo dessas palavras, ou alguma combinação. Em algumas concretizações, a topologia de vocabulário inclui tópicos impostos ou deduzidos de ocorrências relativas de palavras dentro dos documentos. Por exemplo, em várias concretizações, a indexação semântica latente probabilística (pLSI) ou alocação de Dirichlet latente (LDA), bem conhecida na técnica, são usadas para deduzir tópicos de palavras em um conjunto de documentos. Tais métodos podem ser utilizados para obter palavras de contexto e tópicos de contexto de um conjunto de documentos que são direcionados para as circunstâncias dos consumidores de serviços de rede. Como cada tópico está associado com um grupo de palavras em certas abundâncias relativas, existe uma topologia relacionando tópicos às palavras e subtópicos a tópicos de nível superior. Em algumas concretizações, um vocabulário de contexto é construído manualmente ou dependendo ou estendendo alguma topologia padrão como o vocabulário Open Directory Project (ODP). Nestas concretizações, o LDA não é utilizado na construção do vocabulário de contexto em si, mas, uma vez que um vocabulário é estabelecido, os documentos podem ser mapeados utilizando LDA para ver que tópico / contexto está contido dentro do documento. A topologia do vocabulário de contexto é utilizada em várias concretizações aqui descritas, para determinar o UE 101 e contextos de serviços back-end.
Em algumas concretizações, existem apenas dois níveis de categorias, por exemplo, tópicos e palavras, abaixo do vocabulário de contexto de nível de raiz. Cada tópico é definido por um conjunto de palavras, cada um com uma determinada gama de percentagens de ocorrência. Em algumas destas concretizações, um vocabulário de V palavras é representado por um vetor de V a dimensional, e cada palavra é representado por um vector de dimensão V com zeros em todas as posições, menos a posição correspondente a essa palavra particular. Normalmente palavras de baixo significado, tais como artigos, preposições, pronomes e palavras comumente usadas são ignoradas. Cada um dos tópicos T é representado por um vetor de dimensão V com ocorrências relativas de cada palavra no tópico representado por uma percentagem nas posições de palavras correspondentes. Todos os tópicos são representados por uma matriz T x V.
Quando uma palavra do vocabulário de contexto é encontrada em um documento (por exemplo, um documento que descreve um serviço back-end 120), que a palavra é considerada uma mistura de diferentes tópicos que incluem essa palavra, com uma probabilidade percentual atribuída a cada tópico, com base na percentagem de palavras no documento, por exemplo, utilizando os métodos bem conhecidos de LDA. Como resultado, todo o documento pode ser representado por um conjunto de tópicos encontrados no documento com uma probabilidade métrica atribuída a cada tópico, por exemplo, um vetor de dimensão T, com probabilidades que variam em cada posição do vetor. Tal vetor é denominado aqui token. Dois documentos (tais como a descrição de um serviço back-end e uma descrição do estado atual de um UE 101) podem ser comparados calculando a similaridade dos dois vetores de dimensão T (tokens) que representam esses documentos, tais como uma soma de produtos de termos correspondentes. Alternativamente, ou em adição, uma métrica de distância pode ser calculada entre os dois documentos, o qual aumenta à medida que os dois tokens tornam-se menos semelhantes. Qualquer métrica de distância pode ser utilizada, como, por exemplo, uma distância de ordem zero (valor absoluto da coordenada com a maior diferença), uma distância de ordem 1 (a soma dos valores absolutos das diferenças T) , uma distância de ordem dois (a soma dos quadrados das diferenças T -- equivalente à distância euclidiana), uma distância de ordem de três (a soma dos cubos dos valores absolutos), etc. Quanto mais semelhante são os tokens dos dois documentos, ou a menor distância a entre os tokens, mais relevantes são os documentos um para o outro. Na descrição seguinte, assume-se que um vocabulário de contexto foi definido e é armazenado em uma estrutura de dados de vocabulário de contexto. 0 contexto de um documento ou recurso é representado por um token de contexto. Quanto mais semelhante os tokens do contexto dos dois documentos, por exemplo, menor é a medida de distância entre eles, o documento mais relevante é para o contexto do consumidor indicado por outro documento.
O contexto não é obtido apenas a partir de uma base de texto do usuário de mineração, mas com mais frequência diretamente nos dados de contexto do dispositivo. Assim, em algumas concretizações, o vocabulário de contexto é definido com base na saída do mecanismo de contexto 103, que reflete todo contexto que pode ser inferido a partir do lado do dispositivo, por exemplo, tal como a localização do usuário, a atividade atual, o modo de transporte (no carro, no ônibus, dirigindo etc), relações (contatos sociais), locais abstraídos, tais como casa, trabalho etc.
Para fins de ilustração, assume-se que existe uma estrutura de dados de vocabulário de contexto (não mostrada) disponível para descrever o contexto. Assume-se ainda que há uma estrutura de dados de vocabulário semântico diferente, de toda a língua, (não apresentada) para todos os conceitos de uma língua, tal como é usado em mecanismos de busca modernos. Assume-se ainda que, em algumas concretizações, os objetos são também representados por um vocabulário de objetos e tópicos em uma estrutura de dados de objetos (não representada), para a qual são definidos os tokens de objeto. Em algumas concretizações, também existe um mapeamento entre o vocabulário de conceito e tópicos, e os conceitos em uma base de dados sobre objetos físicos e outros conceitos de características extraídas de diferentes meios, tal como descrito em mais detalhe abaixo.
Assim, em algumas concretizações, os dados no campo de contexto relevante 250 são uma lista de um ou mais tokens de contexto para a função indicada pelo campo 202 e 204. Do mesmo modo, em algumas concretizações, os dados no campo de conceitos relevante 24 0 é uma lista de um ou mais tokens de conceito para a função indicada pelo campo 202 e 204.
A Figura 2B é um diagrama de uma estrutura de dados 26 0 para armazenar um índice para uma estrutura de dados de função-conceito-contexto. A estrutura de dados 260 é uma concretização de exemplo de estrutura de dados de índices 136. Quando um conceito é identificado no conteúdo fornecido no UE 101 por um usuário, muitas vezes, é caro em recursos computacionais procurar cada entrada 200 na estrutura de dados 134 para esse conceito. Portanto, em algumas concretizações, um índice é derivado a partir das entradas de função a contexto a conceito 200 para cada conceito, ou categoria de conceitos, ou ambos, ou para cada um dos tópicos de conceito. Do mesmo modo, em algumas concretizações, um índice é derivado a partir das entradas função a contexto a conceito 200 para cada contexto, ou sujeito de contexto, ou ambos, ou para cada tópico de contexto. Os índices 260 são meios de exemplo para alcançar a vantagem de reduzir os custos computacionais para encontrar as funções que estão relacionadas a um conceito conhecido ou contexto.
Na concretização ilustrada, a estrutura de dados 260 inclui múltiplos índices. 0 primeiro índice inclui um campo de identificador de conceito 262 e um campo de IDs de função de correspondência 264 para cada conceito ou categoria ou ambos no banco de dados de conceitos, como indicado pela elipse. O campo de identificador de conceito 262 tem dados que indicam uma identificação de conceito ou categoria a partir do banco de dados ou vocabulário de conceitos. O campo de IDs de função de correspondência 264 contém dados que listam uma ID de função (como indicado por campos 202 e 204) para cada função que inclui o conceito ou categoria no campo de conceitos relevantes 240. Em alguma concretização, apenas funções em que a probabilidade do tópico de conceito é maior do que um limiar de probabilidade estão incluídas na lista.
Da mesma forma, um segundo índice inclui um campo de contexto 272, e um campo de IDs de função correspondente 274 para cada palavra ou assunto contexto ou ambos no vocabulário de contexto, como indicado pela elipse. O campo de contexto 262 tem dados que indicam a palavra de vocabulário de contexto ou assunto do vocabulário de contexto. O campo de IDs de função correspondente 274 mantém os dados que listam uma ID de função (tal como indicado pelos campos 202 e 204) para cada função que inclui o contexto no campo de contextos relevantes 250. Em algumas concretizações, apenas as funções em que a probabilidade do tema contexto é maior do que um limiar de probabilidade estão incluídas na lista.
A Figura 3 A é um diagrama de módulos 310 de um processo de cliente para utilizar uma função back-end com base no conteúdo ou contexto em que o cliente, de acordo com uma concretização. A título de exemplo, o cliente 112 no UE 101 inclui um ou mais componentes para fornecimento do conteúdo e contexto para o serviço de busca de função e apresentando uma função sugerida a um usuário do UE 101 para implementação de uma aplicação na UE 101. É contemplado que as funções destes componentes podem ser combinadas em um ou mais componentes ou executadas por outros componentes de funcionalidade equivalente, por exemplo, em um serviço orientado ao usuário 110 ou dentro do serviço de busca de função 130. Na concretização ilustrada, os módulos de cliente 310 incluem uma interface gráfica de usuário (GUI) do módulo 311 para interagir com um usuário do UE 101, um módulo de interface de mecanismo de contexto 313 para interagir com um mecanismo de contexto 103 no UE 101, um módulo gerador de conteúdo 315 para fornecer conteúdo a ser utilizado pela aplicação, um módulo de identificador de mídia 317 para determinar o tipo de mídia do conteúdo gerado pelo módulo 315, e um serviço de interface de módulo 319 para interagir com um serviço orientado ao usuário 110.
O módulo de GUI 31 1 apresenta elementos gráficos em um visor do UE 101 e detecta a operação do usuário de um ou mais dispositivos de entrada, tais como um tela sensível ao toque, para permitir que o usuário do UE 101 controle o o gerador de conteúdo e selecione uma função identificada com base no conteúdo gerado. 0 módulo de mecanismo de interface de contexto 313 interage com o mecanismo de contexto 103 para determinar as condições temporais, espaciais e atividade do UE 101. Em algumas concretizações, o módulo de GUI 311 compreende instruções de marcação e formas em uma página da web enviada ao navegador 107.
O gerador de conteúdo 315 produz conteúdo a ser utilizado pela aplicação do UE 101, tal como um processo de transferência de arquivos que transfere o conteúdo a partir de um serviço 110, um processo de captura de áudio para gerar um arquivo de áudio a partir de som detectado em um microfone do UE 101, uma imagem ou vídeo captura o processo para gerar um arquivo de imagem ou vídeo a partir de uma câmera digital, um processo de captura de entrada de usuário para gerar um arquivo de texto ou arquivo de documento ou planilha ou arquivo de desenho com base na operação do usuário de um ou mais dispositivos de entrada. O módulo identificador de tipo de mídia 317 determina o tipo de mídia do conteúdo produzido pelo módulo gerador de conteúdo 315.
O módulo de interface de serviço orientado ao usuário 319 interage com o serviço orientado ao usuário 110 que participa na aplicação do UE 101, se houver. Em algumas concretizações, o serviço orientado ao usuário 110 é omitido, e os módulos de serviços orientados a usuário 320 são divididos entre o cliente 112 e o serviço de busca de função 130, e, o módulo de interface de serviço orientado ao usuário 319 é substituído por um módulo de interface de serviço de busca de função.
Uma vez que o usuário tenha sido apresentado através do módulo de GUI 311 com uma escolha de uma ou mais funções retornadas pelo módulo de interface 319, e escolhida qual função usar, o cliente 112 ou serviço orientado ao usuário 110 irá preencher parâmetros de entrada faltantes para aquela função, por exemplo, com base no contexto atual ou conceito representado, ou ambos. Se um valor de parâmetro não pode ser determinado automaticamente, o módulo de GUI 311 faz com que o usuário seja solicitado a preencher os campos restantes. Uma vez que todos os parâmetros são preenchidos, o cliente 112, ou serviço orientado ao usuário 110, passa a informação para a função selecionada para o serviço back-end 120 para atender à solicitação. Os resultados são enviados diretamente para o cliente 112 pelo serviço back-end 120 ou passada através do serviço orientado ao usuário 110 ou serviço de busca de função 130.
A Figura 3B é um diagrama de módulos 320 de um serviço orientado ao usuário 110, de acordo com uma concretização. A título de exemplo, um serviço orientado ao usuário 110 inclui um ou mais componentes para fornecimento do conteúdo e o contexto para o serviço de busca de função e apresentando uma função sugerida para um usuário do UE 101 para implementação de uma aplicação no UE 101. É contemplado que as funções destes componentes podem ser combinadas em um ou mais componentes ou executadas por outros componentes de funcionalidade equivalente, por exemplo, sobre o processo de cliente 112 ou dentro do serviço de busca de função 130. Os módulos de serviço orientado ao usuário 320 incluem um módulo de interface de cliente 321, um módulo de extrator de característica de mídia 323, e módulo de identificação de conceito 325 com uma estrutura de dados de conceito- características 327, uma interface de serviço de busca de função 328, e um módulo de interface de registro de serviço 329.
O módulo de interface de cliente 321 controla interações com o processo do cliente 112, ou navegador 107, para receber o conteúdo e o contexto do UE 101 e apresentar uma ou mais funções fornecidas pelo serviço de busca de função 130.
O módulo extrator de característica de mídia 323 utiliza um mecanismo de mídia apropriado que extrai uma ou mais características (tais como estatísticas, histogramas, clusters, amplitudes de Fourier ou wavelet ou componentes principais, ou medidas de textura ou outras propriedades) da mídia. A lista de recursos é processada, extraindo quaisquer padrões, e os padrões são passados para o módulo de identificação de conceito 325.
O módulo de identificação de conceito 325 se baseia em um banco de dados de conceito-características 327 e realiza busca e análise de padrão para identificar um objeto ou outro conceito do banco de dados 327 que mais se aproxima da lista de características de mídia ou padrão. Uma vez que o objeto ou conceito foi identificado, o identificador de conceito para esse objeto ou outro conceito é passado para o serviço de busca de função através da interface 328.
O módulo de identificação de conceito e a estrutura de dados de conceito-caracteristicas 327 são exemplos de meios para alcançar a vantagem de automaticamente derivar um conceito representado no conteúdo criado, ou prestado para, uma aplicação por um usuário.
O módulo de interface de serviço de busca de função 328 controla interações com o serviço de busca de função 130 para enviar o identificador de contexto e conceito com base no conteúdo para o serviço 13 0, e para receber uma ou mais funções fornecidas pelo serviço de busca de função de 130. A interface 328 é um exemplo de meio para alcançar a vantagem de evitar a repetição de um processo de seleção de função de cada serviço orientado ao usuário 110 que suporta uma aplicação de cliente.
O módulo de interface de registro de serviço 329 permite ao serviço orientado ao usuário 110 descobrir a partir do registro de serviço 128 detalhes úteis das funções fornecidas pelo serviço de busca de função 130. Detalhes úteis incluem API, protocolo e parâmetros de entrada e de saída e descrição. Em algumas concretizações, todos os detalhes são proporcionados pelo serviço de busca de função 130, através da interface 328, e, o módulo 329 é omitido.
A Figura 3C é um diagrama de módulos 33 0 de um serviço de busca de função, de acordo com uma concretização. A título de exemplo, o serviço de busca de função 130 inclui um ou mais componentes para indicar a função de um serviço back-end 120 com base no conteúdo e contexto. Ê contemplado que as funções destes componentes podem ser combinadas em um ou mais componentes ou executadas por outros componentes de funcionalidade equivalente, por exemplo, sobre o processo de cliente 112 ou dentro de um serviço orientado ao usuário 110, se for o caso. Os módulos de busca de função 330 incluem uma API 132 (como representado na Figura 1), um identificador de função 333 com uma estrutura de dados de armazenamento de função-conceito-contexto 134 (como representado na Figura 1), um módulo de relevância e recomendação 337, e um módulo de banco de dados de construção (DB) 338.
A API 132 é usada para receber comandos para executar as funções de identificação de função com base em no conteúdo fornecido pelo usuário ou contexto ou ambos. O módulo de identificação de função 333 determina uma função na estrutura de dados 134 associada com o conceito identificado pelo módulo 325 com base no conteúdo de usuário, e, em algumas concretizações, também associado ao contexto do UE 101. A API 132 é um meio de exemplo para alcançar a vantagem de substituir o código para interagir com todas as APIs 122 para todos os serviços back-end 120 com código mais simples para interagir apenas com a API única 132 do serviço de busca de função 130. O código mais simples consome menos espaço de armazenamento no processo de cliente 112 ou serviço orientado ao usuário 110, e acelera o desenvolvimento.
O módulo de relevância e recomendação 337 determina quantas e quais funções associadas retornar. Por exemplo, o módulo 337 usa o contexto de UE 101 em comparação com a estrutura de contexto para a função fornecida e identifica o melhor conjunto de funções a ser passado de volta para o cliente com base nos dados recebidos de contexto. Em algumas concretizações, o módulo 337 também constrói estruturas de contexto para cada função que certos campos de contexto podem estar vazios ou não disponíveis. Estas funções escolhidas juntamente com as suas estruturas de contexto associadas são passadas de volta ao cliente, por exemplo, diretamente ao cliente 112 ou indiretamente ao cliente 112 ou através do navegador 107 do serviço orientado ao usuário 110. O módulo de relevância e recomendação 337 é um meio de exemplo para atingir a vantagem do envio de um pequeno conjunto de funções mais relevantes para o processo de cliente 112 para apresentação para um usuário.
Em um processo de pano de fundo, o módulo de DB de construção 338 preenche a estrutura de dados de função- conceito-contexto, tal como descrito em mais detalhe abaixo com referência à Figura 6. Em algumas concretizações, o módulo de DB de construção 338 utiliza os serviços de registro 128 e banco de dados de função para procurar por todas as funções suportadas por serviços registrados para um determinado conceito ou o conceito de contexto. Em algumas concretizações, o módulo 338 também recupera contexto ou tokens de conceito ou estruturas definidas pelos serviços back-end 120 que se associam com uma função particular com contextos apropriados.
A Figura 4 é um fluxograma de um processo 400 para a função de busca, de acordo com uma concretização. Em uma concretização, o serviço de busca de função 130 executa o processo 400 e é implementado em, por exemplo, um conjunto de chips que inclui um processador e uma memória, como mostrado na Figura 9 ou computador de uso geral, como representado na Figura 8. Em algumas concretizações, um serviço orientado ao usuário 110 executa uma ou mais etapas de processo 400. Embora os métodos sejam mostrados na Figura 4 e fluxogramas subsequentes, Figura 5 e Figura 6, como etapas integradas em uma ordem específica, para fins de ilustração, em outras concretizações, uma ou mais etapas ou suas partes, são realizadas de uma forma diferente, ou sobrepostas no tempo, em série ou paralelo, ou são omitidas, ou uma ou mais etapas adicionais são adicionados, ou o processo é modificado de alguma combinação de maneiras.
Na etapa 401, a estrutura de dados de função- conceito-contexto 134 é construída ou atualizada. Por exemplo, uma ou mais bases de dados ou tabelas das mesmas são preenchidas com os dados para os campos descritos na Figura 2A. Mais detalhes sobre a etapa 401 são descritos abaixo com referência à Figura 6. Assim, uma estrutura de dados é formada que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede (por exemplo, serviços back-end 120) com pelo menos um identificador para um conceito ou, pelo menos, um identificador para um contexto de dispositivo, ou ambos. Quando os dados de contexto também estão incluídos na estrutura de dados, a etapa 4 01 é um meio de exemplo para a formação da estrutura de dados que associa a função de cada uma da pluralidade de funções proporcionadas por uma pluralidade de serviços de rede com pelo menos um identificador de contexto de dispositivo (por exemplo, o UE 101) associado ao conteúdo.
Na etapa 403, o contexto em uso por um processo de cliente e o contexto associado são determinados. Assim, a etapa 4 03 é um meio de exemplo para a determinação de primeiros dados que indicam um conteúdo corrente e um meio de exemplo para a determinação de segundos dados que indicam um contexto atual para o dispositivo (por exemplo, o UE 101). Por exemplo, o conteúdo é determinado pelo cliente 112 para ser uma imagem com metadados fornecidos pela câmara digital como gerador de conteúdo, e o contexto é determinado pelo cliente 112 como um sinal de contexto baseado nos metadados ou a saída do mecanismo de contexto 103, ou ambos. Quando a etapa 403 é realizada por serviços orientados a usuário 110, o conteúdo e o contexto são determinados com base na imagem e contexto enviado pelo cliente. Quando a etapa 403 é realizada por serviço de busca de função 13 0, o conteúdo e o contexto são determinados com base no conteúdo ou características de mídia ou identificador de conceito e token de contexto enviado pelo cliente ou serviços orientados a usuário 112.
Assim, a etapa 403, é um meio de exemplo para a determinação dos segundos dados que indicam o contexto atual para o dispositivo através da recepção de uma mensagem que indica o segundo dado.
Na etapa 405, o conceito é determinado com base no conteúdo em uso no UE 101. Em algumas concretizações, o conceito é determinado pelo cliente 112 ou pelo serviço orientado ao usuário 110, que inclui o módulo de identificação do conceito 325. Nestas concretizações, o conceito é determinado no serviço de busca de função 130 com base no identificador de conceito recebido de uma mensagem a partir do cliente 112 ou serviço orientado ao usuário 110. Em algumas concretizações, o conceito é determinado pelo serviço de busca de função 110 que inclui o módulo de identificação de conceito 325 com base no conteúdo ou recursos multimídia recebidos em uma mensagem do cliente 112 ou serviço orientado ao usuário 110. Em algumas concretizações, o conceito é determinado com base, pelo menos em parte, no contexto também. Por exemplo, com base em uma imagem que é determinado que o conceito é um edifício, e com base no contexto que indica uma posição ou a posição e orientação associadas, que a construção é uma construção especial que tem um endereço particular, tal como um teatro. Assim, a etapa 405 determina os primeiros dados que indicam um conceito representado no conteúdo fornecido por um dispositivo, tal como UE 101.
Na etapa 4 07, o serviço de busca de função 13 0 determina uma ou mais funções de serviços back-end candidatos 120, buscando a estrutura de dados de função-conceito- contexto 134 para funções que incluem o identificador de conceitos no campo de conceitos relevante 240 e o contexto no campo de contextos relevantes 250, por exemplo, com uma probabilidade superior a um limiar de probabilidade. Assim, a etapa 407 é um meio de exemplo para a determinação da função fornecida por um serviço de rede back-end com base nos primeiros dados que indicam o conceito encontrando na estrutura de dados uma associação entre a função e um identificador para o conceito. Em algumas concretizações, se nenhuma função passa o limiar, o limiar é reduzido até que pelo menos uma função passe o limiar. Assim, a etapa 407 determina, com base nos primeiros dados que indicam um conceito, uma função fornecida por um serviço de rede. Quando contexto também é considerado, a etapa 4 07 é um meio de exemplo para encontrar na estrutura de dados uma associação entre a função e um identificador de contexto para o dispositivo que inclui o contexto atual para o dispositivo (por exemplo, UE 101) associado ao conteúdo.
Assim, a etapa 407 é um meio de exemplo para determinar os primeiros dados que indicam o conceito representado no conteúdo fornecido pelo dispositivo ao receber uma mensagem que indica uma característica de tipo de mídia com base no conteúdo e determinar os primeiros dados que indicam o conceito com base na característica de tipo de mídia. Quando apenas o conteúdo é enviado, a etapa 407 é um meio de exemplo para determinar os primeiros dados que indicam o conceito representado no conteúdo fornecido pelo dispositivo ao receber uma mensagem que indica o conteúdo, em seguida, determinando uma característica de tipo de mídia com base no conteúdo, e em seguida, determinar os primeiros dados que indicam o conceito com base na característica de tipo de mídia.
Quando a etapa 4 07 também usa o contexto para encontrar a função candidata, então, a etapa 407 é um meio de exemplo para a determinação da função fornecida pelo serviço de rede por meio da determinação da função com base, pelo menos em parte, nos dados que indicam um segundo contexto para o dispositivo (por exemplo, UE 101).
Se a etapa 407 for realizada pelo processo do cliente 112 ou o serviço orientado ao usuário 110, a etapa 407 é executada enviando o conteúdo ou a característica de mídia ou conceito e/ou o contexto para a serviço de busca de função 130.
Na etapa 409, pelo menos uma das funções candidatas é recomendada. Se a etapa 409 for executada pelo serviço de busca de função 130, em seguida, as funções candidatas são passadas ao módulo de relevância e recomendação 337 para determinar as funções mais relevantes para recomendar com base no conceito contido no conteúdo fornecido pelo usuário ou o contexto, por exemplo, com base em uma medida de similaridade, ou métrica de distância entre os tokens de conceito ou entre tokens de contexto ou ambos. Se a etapa 409 é executada pelo cliente 112 ou o serviço orientado ao usuário 110, a etapa 409 é executada enviando o conteúdo ou característica de mídia e/ou o contexto para o serviço de busca de função 130.
Na etapa 411, a função recomendada é causada para ser apresentada ao usuário. Se a etapa 411 é realizada pelo serviço de busca de função 130, então, as funções recomendadas são passadas para o serviço orientado ao usuário 110 ou para o processo de cliente 112. Se a etapa 411 é feita pelo serviço orientado ao usuário 110, a etapa 411 é realizada enviando as funções recomendadas recebidas do serviço de busca de função 130 para o processo de cliente 112 ou navegador 107. Assim, a etapa 411 faz com que, pelo menos em parte, as ações que resultam na transmissão de uma mensagem que indica a função. Se a etapa 411 for realizada por um processo de cliente 12, então, a etapa 411 é executada pelo módulo de interface gráfica 311 com base em um serviço recomendado recebido diretamente a partir do serviço de busca de função 130 ou indiretamente por intermédio do serviço orientado ao usuário 110. Assim, a etapa 411 é um meio de exemplo para provocar, pelo menos em parte, as ações que resultam em apresentar, no dispositivo (por exemplo, UE 101), uma descrição da função.
Na etapa 413, a função recomendada é causada a ser invocada. Se a etapa 413 for executada pelo serviço de busca de função 130, então, as funções recomendadas são causadas para serem invocadas pela passagem da função recomendada para o serviço orientado ao usuário 110 ou para o processo de cliente 112. Se a etapa 413 é realizada pelo serviço orientado ao usuário 110, a etapa 413 é realizada através da recepção de uma mensagem indicando que o usuário selecionou uma das funções recomendadas e, em seguida, chamando o serviço back-end com os valores para os parâmetros de entrada, tal como descrito em mais pormenores a seguir com referência à Figura 5. Se a etapa 413 for realizada pelo processo do cliente 112, então, a etapa 413 é executada para invocar o serviço back-end com os valores dos parâmetros de entrada recebidos através do módulo de GUI 311. Assim, a etapa 413 é um meio de exemplo para provocar, pelo menos em parte, as ações que resultam em invocar a função fornecida pelo serviço de rede.
Na etapa 415, é determinado se as condições finais são satisfeitas. Em caso afirmativo, o processo termina. Caso contrário, o controle passa para a etapa 401 para atualizar a estrutura de dados de função-conceito-contexto e para a etapa 403 para determinar o próximo conteúdo em uso por um processo de cliente.
A Figura 5 é um fluxograma de um processo para uma aplicação que utiliza busca de função, de acordo com uma concretização. Em uma concretização, o serviço orientado ao usuário 110 executa o processo 500 e é implementado em, por exemplo, um computador de uso geral, como representado na Figura 8. Em algumas concretizações, um processo de cliente 112 executa uma ou várias etapas do processo 500.
Na etapa 501, o conteúdo usado por um processo de cliente e contexto associado (por exemplo, do UE 101) são determinados. Nas concretizações em que a etapa 501 é realizada pelo serviço orientado ao usuário 110, a etapa 501 é realizada para receber uma mensagem do cliente que indica o conteúdo, ou características de mídia do conteúdo e contexto, como um ou mais tokens de contexto. Se realizada por um processo de cliente 12, a etapa 501 inclui a obtenção do conteúdo do módulo gerador de conteúdo 315 e o contexto do mecanismo de interface de contexto 313. Uma interface para alertar um usuário do UE 101 para conteúdos e contexto é descrita em mais pormenores a seguir com referência à Figura 7A e à Figura 7B.
Na etapa 503, características de mídia ou conceitos representados no conteúdo são determinados. Se realizada por um processo de cliente 112 em concretizações com o serviço orientado ao usuário 110, então a etapa 503 inclui a obtenção do tipo de mídia a partir do identificador de tipo de mídia 317 e envia o conteúdo, tipo de mídia e contexto para o serviço orientado ao usuário 110. Se realizada pelo processo de cliente 112 nas concretizações sem o serviço orientado ao usuário 110 e, em seguida, em algumas concretizações, a etapa 503 inclui a obtenção do tipo de mídia a partir do identificador de tipo de mídia 317 e o envio do conteúdo, tipo de mídia e contexto para o serviço de busca de função 130, e, em outras concretizações, inclui o envio do conteúdo para o módulo extrator de característica de mídia adequado 323, e, ainda em outras concretizações, inclui o envio da lista de características de mídia para o módulo de identificação de conceito 325.
Se realizada pelo serviço orientado ao usuário 110,e depois, na concretização ilustrada, a etapa 503 inclui a obtenção do tipo de mídia a partir de um módulo identificador de tipo de mídia 317 (ou a mensagem a partir do processo de cliente 1 12, em algumas concretizações), e enviar o conteúdo para o módulo extrator de mídia apropriado 323.
Em seguida, a lista de meios de características é enviada para o módulo identificador de conceito 325. Em várias outras concretizações, o serviço orientado ao usuário 110 não inclui o módulo de identificação de conceito 325 e não determina o conceito.
Na etapa 505, o contexto e uma lista de características (ou identificador de conceito) são enviados para o serviço de busca de função 130, por exemplo, a partir do serviço orientado ao usuário 110, em algumas concretizações, ou diretamente a partir do processo de cliente 1 12, em algumas concretizações. Em algumas concretizações, serviço orientado ao usuário 110 envia a lista de características de mídia e de contexto para o serviço de busca de função de 13 0, e permite que o serviço 130 determine o conceito de características de mídia. Assim, a etapa 505 é um meio de exemplo para a determinação da função fornecida pelo serviço de rede, enviando uma mensagem que indica que os primeiros dados (a identificação de um conceito) para um serviço (serviço de busca 130) que associa, com cada uma das funções de uma pluralidade de funções fornecidas pelos serviços de rede (por exemplo, serviços back-end 120), dados que indicam um identificador de u conceito e dados que indicam um identificador de contexto de um dispositivo (por exemplo, a estrutura de dados de função- contexto-conceito 134) .
Na etapa 507, uma ou mais funções de serviços back- end recomendadas 120 são recebidas a partir do serviço de busca de função 130. Em algumas concretizações, as funções recomendadas são identificadas simplesmente pelo campo de ID do serviço back-end 202 e, se forem diferentes, o campo de ID de função 204. Em algumas concretizações, os dados que indicam a função recomendada incluem uma ou mais do ID do API a partir do campo 206, o campo de protocolo 208, o campo de parâmetros 210, o campo de descrição 220 e o campo de tipo de mídia 230. Em algumas concretizações, a informação para um ou mais campos são obtidas durante a etapa 507 a partir do registro de serviços 128 através do módulo de interface de registro de serviço 328, com base na identificação de serviço back-end como uma chave.
Na etapa 509, os dados que indicam a função recomendada são causados para serem apresentados ao usuário no UE 101, por exemplo, com base na descrição da função, tal como é armazenada no campo 220. Em concretizações em que a etapa 509 é realizada por um processo de cliente 12, os dados que indicam a função recomendada são apresentados através da GUI 31 do módulo 1. Em concretizações em que a etapa 509 é executada pelo serviço orientado ao usuário 110 ou serviço de busca de função 13 0, os dados que indicam a função recomendada são enviados para o navegador do cliente 107 ou processo 112 a ser apresentado através de módulo de GUI 311. Tal GUI é descrita em mais pormenores a seguir com referência à Figura 7C.
Na etapa 511, é determinado se o usuário selecionou uma das funções recomendadas, por exemplo, pela operação de um dispositivo apontador, tal como descrito em mais detalhes abaixo com referência à Figura 7C. Se não, então, o controle passa para a etapa 501 para determinar o próximo conteúdo ou contexto ou ambos no UE 101. Para fins de ilustração, assume- se que o conteúdo é uma imagem de um campo de milho, e que o usuário selecionou a função recomendada descrita como "Determinar os preços de mercado da mercadoria".
Se a seleção de usuário for determinada na etapa 511, então, na etapa 513 os parâmetros para a função selecionada são determinados. Em algumas concretizações, os parâmetros são fornecidos pelo serviço de busca de função 130, durante a etapa 507. Em várias outras concretizações, os parâmetros são determinados a partir do registro 128 com base em uma identificação de serviço back-end como uma chave e, se for caso disso, uma identificação de função durante a etapa 507, ou durante a etapa 513. Para fins de ilustração, determina-se que os parâmetros de entrada para a função selecionada incluem "nome da mercadoria", "localização geográfica", e "data".
Na etapa 515, os valores conhecidos para os parâmetros de entrada são determinados, por exemplo, com base na informação de contexto. Por exemplo, com base no identificador do conceito, o conteúdo é conhecido para representar "milho" e a partir do contexto, a posição GPS do UE 101, quando a imagem foi captada é conhecida, e a data atual é conhecida. Assim, os valores de todos os três parâmetros de entrada são conhecidos. Se outro parâmetro é necessário que não se conhece, o valor padrão é usado ou o valor é marcado desconhecido.
Na etapa 519, o usuário é solicitado a rever os valores para os parâmetros de entrada. Em concretizações em que a etapa 519 é realizada por um processo de cliente 12, os dados que indicam os parâmetros de entrada e os valores pré- preenchidos são apresentados através do módulo de GUI 311. Em concretizações em que a etapa 519 é executada pelo serviço orientado ao usuário 110 ou o serviço de busca de função 130, os dados que indicam os parâmetros de entrada e os valores pré-preenchidos são enviados para o navegador 107 ou processo de cliente 112 a ser apresentado através do módulo de GUI 311. Tal GUI é descrita em mais pormenores a seguir com referência à Figura 7D. Durante a etapa 519, o usuário pode alterar um ou mais valores de parâmetros de entrada. Por exemplo, o usuário pode fornecer valores para os parâmetros que foram marcados desconhecidos. Para fins de ilustração, assume-se que durante a etapa 519, a data é alterada pelo usuário a partir da data da imagem para uma data futura, quando o milho está pronto para a colheita ou um contrato deve ser assinado para vender o milho.
Na etapa 521, a função selecionada é invocada. Por exemplo, em algumas concretizações, os serviços orientados a usuários 110 enviam, de um serviço back-end 120, uma mensagem de protocolo apropriada com parâmetros e valores de acordo com a API apropriada, incluindo a indicação da função selecionada, se houver. Em algumas concretizações, o processo de cliente 112 envia, para o serviço back-end 120, uma mensagem de protocolo apropriado com parâmetros e valores de acordo com a API apropriada, incluindo a indicação da função selecionada, se houver. Em resposta, durante a etapa 521, os resultados recebidos da função são invocados. Para fins de ilustração, assume-se que os resultados incluem dados que indicam um preço médio e uma lista de compradores de milho.
Na etapa 523, os resultados são levados para serem apresentados ao usuário no UE 101. Em concretizações em que a etapa 523 é feita pelo processo de cliente 112, os dados que indicam os resultados são apresentados por meio do módulo de GUI 311. Em concretizações em que a etapa 523 é executada pelo serviço orientado ao usuário 110 ou a serviço de busca de função 130, os dados que indicam os resultados são enviados para o navegador 107 ou processo de cliente 112 a ser apresentado através do módulo de GUI 311. Tal GUI é descrita em mais pormenores a seguir com referência à Figura 7E.
Na etapa 525, é determinado se as condições finais são satisfeitas. Em caso afirmativo, o processo termina. Caso contrário, o controle passa para a etapa 501 para determinar o próximo conteúdo em uso por um processo de cliente e o contexto associado.
A Figura 6 é um fluxograma de um processo 600 para a construção de uma estrutura de dados de função-conceito- contexto, de acordo com uma concretização. Em uma concretização, a serviço de busca de função 130 executa o processo 600 e é implementado em, por exemplo, um conjunto de chips que inclui um processador e uma memória, como mostrado na Figura 9 ou computador de uso geral, como representado na Figura 8.
Na etapa 601, um serviço back-end é determinado para adicionar à estrutura de dados de armazenamento de função-conceito-contexto. Por exemplo, em algumas concretizações, um registro de um ou mais serviços back-end é consultado para obter uma lista de serviços back-end. Em algumas concretizações, uma página da web está disponível onde os administradores de serviços back-end podem fazer upload ou manualmente inserir dados indicando os serviços back-end. Em algumas concretizações, as funções individuais, APIs, protocolos, parâmetros, descrição ou tipos de mídia, ou uma combinação, são também determinados durante a etapa 601.
Na etapa 603, um serviço ainda não acrescentado à estrutura de dados de armazenamento de função-conceito- contexto é selecionado como o serviço atual. Por exemplo, o serviço seguinte em uma lista de serviços back-end recuperado de um registro de serviço 128 é selecionado como o serviço atual.
Na etapa 605, uma função ainda não foi adicionada à estrutura de dados de armazenamento de função-conceito- contexto é selecionada como a função atual. Por exemplo, em algumas concretizações, um ou mais parâmetros de uma API são associados com uma função de múltiplas funções disponíveis no serviço back-end. Por exemplo, um serviço para os mercados de mercadorias inclui uma função de vendedor para encontrar um comprador e um preço para comprar uma mercadoria e uma função de comprador separada para encontrar um vendedor e preço para vender uma mercadoria. Uma dessas funções é tomada como a função atual.
Na etapa 607, uma ou mais conceitos da base de dados de conceitos 327 ou vocabulário estão associados com a função atual. Por exemplo, uma análise semântica da descrição da função determina que a função está relacionada com mercadorias. A análise semântica determina ainda que os produtos incluem certas palavras do vocabulário semântico, como o petróleo, derivados de petróleo, petróleo bruto, óleo para aquecimento, propano, gás natural, carvão, trigo, aveia, milho, arroz e soja, café, cacau, açúcar, algodão e suco de laranja, gado, carne de porco e porcos magros. Destas, determina-se, na etapa 607, que uma destas palavras são conceitos nos conceitos que estão incluídos na base de dados ou conceito semelhante a essas palavras, tais como tanques de gás, laranjas, pomares, e porcos. Esses conceitos e tópicos que incluem estes conceitos são determinados na etapa 607. Enquanto a lista pode ser longa, como para mercadorias, que exclui muitos conceitos, tais como pessoas, edifícios e veículos excluídos de mercadorias.
Na etapa 609, um ou mais contextos de um vocabulário de contexto do banco de dados e tópicos estão associados com a função atual. Por exemplo, uma análise de contexto semântico da descrição da função e parâmetros determina que a função está relacionada com o local e tempo, e as atividades de compra e venda.
Na etapa 611, as entradas 200 para o armazenamento de função-conceito-contexto são geradas e armazenadas. Por exemplo, uma nova entrada 200 é adicionada à estrutura de dados de função-contexto-conceito 134. A nova entrada 200 inclui um identificador para o serviço back-end corrente no campo 202, um identificador para a função corrente no campo 204, e as outras informações para a função, conforme apropriado, nos campos 206 a 230. A nova entrada 200 também inclui a lista de identificadores para os conceitos de mercadorias em campo de conceitos relevantes 240, e tokens de contexto de vocabulário e palavras para lugar, tempo de compra, venda no campo de contextos relevantes 250.
Na etapa 613, é determinado se há outra função para o serviço corrente. Se assim for, então o controle passa para a etapa 605, acima descrita, para determinar a próxima função do serviço para fazer a atual. Se não, então, na etapa 615, determina-se se há um outro serviço back-end da lista. Se assim for, então o controle passa para a etapa 603, acima descrita, para determinar o próximo serviço back-end para tornar atual.
Se não houver outros serviços ou funções a serem adicionados, em seguida, na etapa 617, um ou mais índices de busca são construídos. Por exemplo, para cada palavra na base de dados do conceito, uma entrada é feita na estrutura de dados de índices 280. Por exemplo, o identificador de serviço e identificador de função para a função de venda de produtos é adicionado no campo 264 para cada campo de ID de conceito 262 que relaciona uma das mercadorias. De modo semelhante, para cada palavra ou assunto no vocabulário de contexto, é feita uma entrada na estrutura de dados de índices 280. Por exemplo, a identificação do serviço e o identificador de função para a função de venda de mercadorias são adicionados no campo 274 para cada campo de contexto 272 que lista um dos contextos de tempo, lugar, comprar ou vender. Em algumas concretizações, um índice não é formado e etapa 617 é omitida.
Na etapa 619, é determinado se as condições finais são satisfeitas. Em caso afirmativo, o processo termina. Caso contrário, o controle passa para a etapa 601 para determinar o próximo serviço que ainda não tenha sido adicionado à estrutura de armazenamento de dados de função-conceito- contexto 134.
As Figuras 7A a 7E são diagramas de interfaces de usuário utilizadas nos processos da Figura 5, de acordo com várias concretizações. A interface gráfica de usuário (GUI) inclui um ou mais componentes gráficos que cada um compreende um conjunto de elementos de imagem (pixels), que cobrem uma área de uma tela de exibição, como o dispositivo de exibição 814 ou 1007 descritos abaixo. Um componente gráfico pode incluir um mecanismo para detectar a entrada do usuário associada com a área, por exemplo, em resposta a um dispositivo apontador, como um toque em uma tela sensível ao toque ou um clique de um botão em um mouse ou teclado (por exemplo, dispositivo de entrada 812 ou teclado 1047), quando o cursor é mostrado na área.
A Figura 7A é um diagrama de um exemplo de GUI 701 no UE 101 para a determinação do conteúdo em uso. A área de apresentação de conteúdo atual 710 apresenta uma representação do conteúdo atual no UE 101, como uma imagem ou vídeo em um visor da câmera, ou navegador, ou um gráfico de pressão acústica ou frequência durante streaming de áudio. A área da etiqueta de conteúdo de captura 712 apresenta dados que solicitam ao usuário selecionar o conteúdo atualmente representado na área 710 para uso posterior. Um botão 714 é um mecanismo de entrada gráfica que quando selecionado por um usuário faz com que o conteúdo corrente seja selecionado para posterior utilização. Por exemplo, a área de apresentação de conteúdo atual 710 apresenta uma visão de um campo de milho em um aplicativo de câmera digital, ou vista de uma conta em um aplicativo bancário, ou uma imagem do skyline de Xangai baixado em uma aplicação de imagem. Quando o botão OK 714 é ativado, por exemplo, ao tocar no botão em uma tela sensível ao toque ou pressionando uma tecla do teclado associado ao rótulo, ou clicando em um botão do mouse ou botão em algum outro dispositivo apontador, o conteúdo representado na área 710 é capturado para utilização posterior, por exemplo, em um ou mais arquivos no UE 101.
A Figura 7B é um diagrama de um exemplo de GUI 7 02 no UE 101 para nomear conteúdo em uso. A área de entrada de conteúdo de nome 720 inclui uma caixa de texto para o usuário para inserir texto e um aviso indicando que o texto deve indicar um nome para o conteúdo capturado. Em resposta à solicitação, um usuário digita um nome para o conteúdo, por exemplo, foto A, foto B, ou foto C e ativa a botão OK 724a. A área de entrada de conteúdo descrita 720 inclui uma caixa de texto para o usuário para entrada de texto e um aviso indicando que o texto deve indicar uma descrição para o conteúdo capturado. Em resposta à solicitação, um usuário digita uma descrição do conteúdo, por exemplo, terrenos de propriedade da busca, ou Skyline Shangai, ou fatura de eletricidade e ativa o botão 724b OK.
A Figura 7C é um diagrama de um exemplo de GUI 703 no UE 101 para seleção de uma função apropriada para o conteúdo selecionado em uso. A função de seleção de área de opções 730 inclui uma área de notificação 731 que apresenta um aviso indicando que o usuário deve selecionar uma função para operar sobre o conteúdo em uso. As funções recomendadas são apresentadas como descrições listadas em áreas de descrição de função 334a a 334e (coletivamente referenciadas a seguir como áreas de descrição de função 334) . Em algumas concretizações, a descrição da função em campos 334 inclui um identificador para o conceito encontrado no conteúdo ou contexto associado ao conteúdo associado a um contexto que leva a uma correspondência com a função.
Mais funções podem ser representadas do que pode caber na área de opções de seleção de função 73 0 usando um componente gráfico de barra de rolagem 736, bem conhecido na técnica, para deslizar as descrições das funções recomendadas para cima ou para baixo na área 730. Associado com a área de descrição de função 334 está um botão de rádio 738. Conforme um usuário seleciona uma função para operar sobre o conteúdo, um círculo sólido é colocado dentro do botão de opção. Na GUI ilustrada, as funções descritas pela área de descrição de função 334b e 334D são indicadas como selecionadas pelo usuário. A seleção é completada para ativar o botão de seleção 732.
Para fins de ilustração, assume-se que, com base na imagem de campo de milho na imagem A descrita como "terra de propriedade de levantamento", e as descrições de função de exemplo descritas acima para o campo 220, o processo 500 identificou o conceito "milho" e determinou as funções recomendadas que são apresentadas como as descrições seguintes, incluindo o identificador para o milho, em áreas de descrição de função 334: Fornece mapas para uma posição = dado localização da imagem A; Determina preço de compra e venda de mercado para mercadorias = milho; Determina ponto de venda para um produto = milho; Fornece receitas que incluem dados ingredientes = milho. Para fins de ilustração adicional, assume-se que, com base na imagem na figura B descrita como "Shanghai skyline", e as descrições de função de exemplo descritas acima para o campo 220, o processo 500 identificou o conceito de "construção" e contexto local = Shanghai e determinou as funções recomendadas que são apresentadas como as descrições que se seguem, incluindo o identificador de contexto para a localização, em áreas de descrição de função 334: Fornecer mapas para um determinado local = Xangai; Reservar bilhetes para espetáculos no teatro participante = em Xangai; Reservar bilhete de avião para a cidade destino = Xangai; Reserve mesa em um restaurante participante = em Xangai; Para fins de ilustração adicional supõe-se que, com base na imagem da figura C descrita como "conta de luz", e as descrições de função de exemplo descritas acima para o campo 220, o processo 500 identificou o conceito de "carta" e o conceito "eletricidade"e o contexto "pagamento de contas" e determinou as funções recomendadas que são apresentadas como as descrições seguintes, incluindo o identificador de energia elétrica, em áreas de descrição de função 334: Determine os preços de compra e de venda de mercado de mercadorias = eletricidade; Determinar ponto de venda para um produto eletricidade; Efetuar o pagamento de uma conta bancária.
A Figura 7D é um diagrama de um exemplo na GUI 704 do UE 101 para determinar os valores dos parâmetros de entrada para as funções selecionadas. A área de entrada de valor do parâmetro para as funções selecionadas 740a, 740b, 740c, entre outros indicados pela elipse (coletivamente referido daqui em diante como áreas de entrada de parâmetros 740) apresenta dados que indicam um nome de parâmetro, unidades de faixa se aplicável, e que são aceitáveis para a entrada de uma das funções selecionadas. Os valores conhecidos são pré-preenchidos, e os valores desconhecidos de modo marcado. Na concretização ilustrada, todos os parâmetros para uma função selecionada são apresentados em uma das zonas 740. Um botão OK 744a, 744b, 744c (coletivamente referenciados a seguir como botões OK 744) corresponde a cada área 740. 0 usuário pode preencher qualquer valor desconhecido e substituir qualquer valor pré-preenchido em qualquer área 740. Quando o botão OK 744 é ativado, os valores dos parâmetros de entrada são enviados para o serviço back-end correspondente em um serviço de solicitação de mensagem. Por exemplo, na reserva de um bilhete de avião para Xangai, o aeroporto de partida pré-preenchido é o aeroporto da cidade mais próxima para a posição do usuário quando a imagem de Xangai é baixada, mas o usuário pode querer sair de uma cidade diferente e, portanto, substituir a cidade de partida na área de entrada de valor de parâmetro 74 0, e, em seguida, pressionar o botão OK 744.
A Figura 7E é um diagrama de uma GUI de exemplo 705 no UE 101 para apresentação dos resultados das funções selecionadas. As áreas de apresentação de resultados de função selecionadas 750a, 750b, entre outros indicados pela elipse (coletivamente referido daqui em diante como áreas de apresentação de resultados 750) apresenta dados que indicam os resultados das funções selecionadas, tais como o preço de compra de milho, ou receita usando o milho como ingrediente.
Os processos aqui descritos para a identificação de funções de rede com base em conteúdo podem ser vantajosamente implementados por meio de software, hardware, firmware, ou uma combinação de software e/ou firmware e/ou hardware. Por exemplo, os processos aqui descritos, incluindo o fornecimento de informação de navegação de interface de usuário associada com a disponibilidade de serviços, podem ser vantajosamente implementados por meio de processador(es), chip de processamento de sinal digital (DSP), um Circuito Integrado de Aplicação Específica (ASIC), arranjo de portas programável em campo (FPGAs), etc. Tal hardware exemplificative para realizar as funções descritas é detalhado abaixo.
A Figura 8 ilustra um sistema de computador 800 no qual uma concretização da presente invenção pode ser implementada. Embora o sistema de computador 800 seja descrito com respeito a um determinado dispositivo ou equipamento, é contemplado que outros dispositivos ou equipamentos (por exemplo, os elementos de rede, servidores, etc) dentro da Figura 8 podem implantar o hardware ilustrado e os componentes do sistema 800. O sistema de computador 800 é programado (por exemplo, através do código de programa de computador ou instruções) para identificar funções de rede com base no conteúdo, conforme aqui descrito, e inclui um mecanismo de comunicação, tal como um barramento 810 para informação que passa entre os outros componentes internos e externos do sistema de computador 800. A informação (também chamada de dados) é representada como uma expressão física de um fenômeno mensurável, tipicamente tensões elétricas, incluindo, mas, em outras concretizações, fenômenos tais como magnéticos, químicos, por pressão eletromagnéticos, biológicos, moleculares, atômicos, de interações subatômicas e quânticos. Por exemplo, campos magnéticos norte, e sul, ou uma tensão elétrica zero e diferente de zero, representam dois estados (0, 1) de um dígito binário (bit) . Outros fenômenos podem representar dígitos de uma base maior. A superposição de múltiplos estados quânticos simultâneos antes da medição representa um bit quântico (qubit). Uma sequência de um ou mais dígitos, constitui os dados digitais que são usados para representar um número ou código de um caractere.
Em algumas concretizações, as informações chamadas de dados analógicos são representadas por um continuum de valores mensuráveis dentro de um intervalo específico. O sistema de computador 800, ou uma respectiva porção, constitui um meio para a concretização de uma ou mais etapas para identificar funções de rede com base no conteúdo.
Um barramento 810 inclui um ou mais condutores paralelos de informação de modo que a informação é transferida rapidamente entre os dispositivos acoplados ao barramento 810. Um ou mais processadores 802 para processamento de informação são acoplados ao barramento 810.
Um processador (ou processadores múltiplos) 802 executa uma série de operações de informação, tal como especificado por um código de programa de computador relacionado com a identificação de funções de rede com base em conteúdo. 0 código de programa de computador é um conjunto de instruções ou instruções que fornecem instruções para a operação do processador e/ou o sistema de computador para executar funções específicas. O código, por exemplo, pode ser escrito em uma linguagem de programação de computador que é compilado em um conjunto nativo de instrução do processador. O código pode também ser escrito diretamente, utilizando o conjunto de instruções nativas (por exemplo, linguagem de máquina). O conjunto de operações inclui trazer informações a partir do barramento 810 e colocar a informação sobre o barramento 810. 0 conjunto de operações também inclui tipicamente comparação de duas ou mais unidades de informação, mudar as posições das unidades de informação, e combinar as duas ou mais unidades de informação, tais como através da adição ou multiplicação ou operações lógicas como OU, OU exclusivo (XOR) , e E. Cada operação do conjunto de operações que podem ser executadas pelo processador está representada para o processador por informação chamada instruções, tais como um código de operação de um ou mais dígitos. A sequência de operações a serem executadas pelo processador 802, como uma sequência de códigos de operação, constituem instruções do processador, também chamadas de instruções do sistema de computador ou, simplesmente, instruções de computador. 0 processador pode ser implementado como mecânico, elétrico, magnético, óptico, químico ou componentes quânticos, entre outros, sozinhos ou em combinação.
O sistema de computador 800 também inclui uma memória 804 acoplada ao barramento 810. A memória 804, tal como uma memória de acesso aleatório (RAM) ou outro dispositivo de armazenamento dinâmico, armazena informações incluindo instruções de processador para a identificação de funções de rede com base em conteúdo. A memória dinâmica permite que as informações armazenadas na mesma sejam mudadas pelo sistema de computador 800. A RAM permite que uma unidade de informação armazenada em uma localização chamada de um endereço de memória seja armazenada e recuperada de forma independente da informação em endereços vizinhos. A memória 804 é também usada pelo processador 802 para armazenar valores temporários durante a execução de instruções do processador. 0 sistema de computador 800 também inclui uma memória apenas de leitura (ROM) 806 ou outro dispositivo de armazenamento estático acoplado ao barramento 810 para armazenar informações estáticas, incluindo instruções, que não são alteradas pelo sistema de computador 800. Parte da memória é composta do armazenamento volátil que perde a informação armazenada no mesmo quando a energia é perdida. Também acoplado ao barramento 810 está um dispositivo de armazenamento não a volátil (persistente) 808, tal como um disco magnético, disco óptico ou cartão de memória flash, para armazenar informação, incluindo instruções, que persistem, mesmo quando o sistema de computador 800 é desligado ou perde a energia.
Informações, incluindo instruções para a identificação de funções de rede com base em conteúdo, são fornecidas ao barramento 810 para serem usadas pelo processador de um dispositivo externo de entrada 812, tal como um teclado de teclas alfanuméricas operados por um usuário humano, ou um sensor. Um sensor detecta as condições de sua vizinhança e transforma essas detecções na expressão física compatível com o fenômeno mensurável usado para representar informações no computador do sistema 800. Outros dispositivos externos acoplados ao barramento 810, utilizados principalmente para interagir com os seres humanos, possui um dispositivo de exibição 814, tal como um tubo de raios catódicos (CRT) ou uma tela de cristais líquidos (LCD) ou de plasma ou impressora para apresentar texto ou imagens, e um dispositivo apontador 816, tal como um mouse ou um trackball ou teclas de direção do cursor, ou sensores de movimento, para controlar a posição de uma imagem de cursor pequena apresentada na tela 814 e emitindo comandos associados com os elementos gráficos apresentados na tela 814. Em algumas concretizações, por exemplo, em concretizações em que o sistema de computador 800 executa todas as funções automaticamente, sem intervenção humana, um ou mais dos dispositivos de entrada externo 812, dispositivo de visualização 814 e um dispositivo apontador 816 são omitidos.
Na concretização ilustrada, o hardware para fins especiais, tais como um circuito integrado de aplicação específica (ASIC) 820, é acoplado ao barramento 810. O hardware de propósito específico é configurado para executar operações não executadas pelo processador 802 suficientemente rápido para propósitos especiais. Exemplos de ICs de aplicações específicas incluem placas aceleradoras de gráficos para gerar imagens para exibição 814, placas de criptografia para criptografar e decriptografar as mensagens enviadas através de uma rede, reconhecimento de voz, e interfaces para dispositivos especiais externos, como braços robóticos e equipamentos de varredura médica que repetidamente realizam alguma complexa sequência de operações que são mais eficazmente implementadas em hardware.
O sistema de computador 800 também inclui uma ou mais ocorrências de uma interface de comunicações 870 acoplada ao barramento 810. A interface de comunicação 870 fornece uma maneira ou comunicação de duas vias de ligação a uma variedade de dispositivos externos que operam com seus próprios processadores, como impressoras, scanners e discos externos. Em geral, o acoplamento é com um link de rede 878 que está ligado a uma rede local 880 para que uma variedade de dispositivos externos com seus próprios processadores está ligada. Por exemplo, a interface de comunicação 870 pode ser uma porta paralela ou uma porta serial ou um barramento serial universal (USB) em um computador pessoal. Em algumas concretizações, a interface de comunicação 870 é uma placa de rede digital de serviços integrados (ISDN) ou uma placa de linha de assinante digital (DSL) ou um modem de telefone que fornece uma conexão de comunicação de informações a um tipo correspondente de linha telefônica. Em algumas concretizações, a interface de comunicação 870 é um modem a cabo que converte os sinais no barramento 810 para sinais de comunicação através de uma ligação de um cabo coaxial ou em sinais óticos para uma ligação de comunicação através de um cabo de fibra óptica. Como outro exemplo, a interface de comunicações 87 0 pode ser uma placa de rede de área local (LAN) para proporcionar uma ligação de comunicação de dados a uma rede LAN compatível, como por exemplo Ethernet. As ligações sem fio podem ser implementadas. Para as ligações sem fio, a interface de comunicação 870 envia ou recebe ou ambos envia e recebe sinais elétricos, acústicos ou eletromagnéticos, incluindo sinais infravermelhos e ópticos, que carregam fluxos de informações, como dados digitais. Por exemplo, em dispositivos portáteis sem fio, como telefones móveis, como telefones celulares, a interface de comunicação 870 inclui um transmissor e receptor eletromagnético de banda de rádio chamado um transceptor de rádio. Em certas concretizações, a interface de comunicações 870 permite a ligação à rede de comunicações 105 para identificar funções de rede com base no conteúdo no EU 101.
O termo "meio legível por computador", como aqui utilizado, refere-se a qualquer meio que participe no fornecimento de informação para o processador 802, incluindo instruções para execução. Tal meio pode assumir muitas formas, incluindo, mas não limitado a meio de armazenamento legível por computador (por exemplo, não a voláteis, meios de comunicação, meios voláteis), e meios de transmissão. Meios não transitórios, tais como meios não voláteis incluem, por exemplo, discos ópticos ou magnéticos, tais como o dispositivo de armazenamento 808. Meios voláteis incluem, por exemplo, a memória dinâmica 804. Meios de transmissão incluem, por exemplo, cabos coaxiais, fios de cobre, cabos de fibra óptica e ondas portadoras que viajam através do espaço, sem fios ou cabos, tais como ondas acústicas e ondas eletromagnéticas, incluindo ondas de rádio, ópticas e infravermelhas. Sinais incluem alterações transitórias feitas pelo homem em amplitude, frequência, polarização, fase, ou outras propriedades físicas transmitidas através dos meios de transmissão. As formas comuns de meios legíveis por computador incluem, por exemplo, um disquete, um disco flexível, disco rígido, fita magnética, qualquer outro meio magnético, um CD a ROM, CD a RW, DVD, qualquer outro meio de comunicação ótica, cartões perfurados, fita de papel, folhas com as marcas ópticas, em qualquer outro suporte físico com os padrões de orifícios ou outros indícios opticamente reconhecíveis, uma RAM, uma PROM, uma EPROM, uma FLASH a EPROM, qualquer outro chip de memória ou cartucho, uma onda portadora ou qualquer outro meio a partir do qual um computador pode ler. O termo meio de armazenamento legível por computador é aqui utilizado para se referir a qualquer meio legível por computador, exceto meios de transmissão.
A lógica codificada em um ou mais meios de comunicação tangíveis inclui uma ou ambas instruções do processador de um meio de armazenamento legível por computador e hardware para fins especiais, tais como ASIC 820 .
O link de rede 878 normalmente fornece comunicação de informações utilizando meios de transmissão através de uma ou mais redes com outros dispositivos que usam ou processam a informação. Por exemplo, a ligação de rede 878 pode fornecer uma conexão através da rede local 880 para um computador host 882 ou ao equipamento 884 operado por um provedor de serviços de Internet (ISP) . 0 equipamento ISP 884, por sua vez, fornece serviços de comunicação de dados através da rede de comunicação mundial pública de comutação de pacotes de redes agora comumente referida como a Internet 890.
Um computador chamado de servidor hospedeiro 892 ligado à Internet recebe um processo que proporciona um serviço em resposta à informação recebida através da Internet. Por exemplo, o servidor host 892 hospeda um processo que fornece informações a representação de dados de vídeo para apresentação na tela 814. É contemplado que os componentes do sistema 800 podem ser implementados em diversas configurações dentro de outros sistemas de computadores, por exemplo, hospedeiro 882 e servidor 892.
Pelo menos algumas concretizações da invenção estão relacionadas com o uso do sistema de computador 800 para implementação de algumas ou todas as técnicas aqui descritas. De acordo com uma concretização da invenção, essas técnicas são realizadas pelo sistema de computador 800 em resposta ao processador 8 02 executar uma ou mais sequências de uma ou mais instruções contidas na memória do processador 804. Tais instruções, também chamadas de instruções de computador, software e código de programa, podem ser lidas na memória 804 de outro meio legível por computador, tal como dispositivo de armazenamento 808 ou link de rede 878. A execução das sequências de instruções contidas na memória 804 faz com que processador 802 execute uma ou mais das etapas do método aqui descrito. Em concretizações alternativas, o hardware, tal como o ASIC 820, pode ser utilizado em lugar de ou em combinação com software para implementar a invenção. Assim, concretizações da presente invenção não estão limitadas a qualquer combinação específica de hardware e software, a menos que de outro modo expressamente indicado neste documento.
Os sinais transmitidos através do link de rede 878 e outras redes através de interface de comunicação 870 veiculam a informação do sistema de computador 800. O sistema de computador 800 pode enviar e receber informações, incluindo o código do programa, através das redes 880, 890 entre outras, através do link de rede 878 e da interface de comunicação 870. Em um exemplo usando a Internet 890, um servidor host 882 transmite o código do programa para uma determinada aplicação, solicitado por uma mensagem enviada do computador 800, através da Internet 890, equipamento ISP 884, rede local 880 e interface de comunicação 870. 0 código recebido pode ser executado pelo processador 802, uma vez que é recebido, ou pode ser armazenado na memória 804 ou no dispositivo de armazenamento 808 ou outro armazenamento não a volátil para execução posterior ou ambas. Deste modo, o sistema de computador 800 pode obter o código de programa de aplicação, sob a forma de sinais através de uma onda portadora.
Várias formas de meios legíveis por computador podem estar envolvidas na execução de uma ou mais sequência de instruções ou de dados ou de ambos para um processador 802 para a execução. Por exemplo, as instruções e os dados podem, inicialmente, ser transportados em um disco magnético de um computador remoto como o hospedeiro 882. O computador remoto carrega as instruções e dados em sua memória dinâmica e envia as instruções e dados através de uma linha telefônica usando um modem. Um modem local para o sistema de computador 800 recebe as instruções e os dados na linha telefônica e utiliza um transmissor de infravermelho para converter as instruções e dados a um sinal de uma onda portadora de infravermelho que serve de ligação de rede 878. Um detector de infravermelho que serve como interface de comunicações 870 recebe as instruções e os dados transportados no sinal de infravermelho e coloca a informação que representa as instruções e dados no barramento 810. O barramento 810 carrega a informação para a memória 804 a partir do qual o processador 802 recupera e executa as instruções usando alguns dos dados enviados com as instruções. As instruções e os dados recebidos na memória 804 podem, opcionalmente, ser armazenados no dispositivo de armazenamento 808 quer antes quer após a execução pelo processador 802.
A Figura 9 ilustra um conjunto de chips ou chip 900 sobre o qual uma concretização da invenção pode ser implementada. O conjunto de chip 900 é programado para identificar funções de rede com base no conteúdo, conforme aqui descrito, e inclui, por exemplo, os componentes de processador e de memória descritos em relação à Figura 8 incorporados em um ou mais pacotes físicos (por exemplo, serradura). A título de exemplo, um pacote físico inclui um arranjo de um ou mais materiais, componentes e/ou fios de um conjunto estrutural (por exemplo, placa base), para proporcionar uma ou mais características, tais como a resistência física, conservação do tamanho e/ou limitação de interação elétrica. Está contemplado que, em certas concretizações, o conjunto de chips 900 pode ser implementado em um único chip. Está ainda contemplado que, em certas concretizações, o conjunto de chips ou chip 90 0 pode ser implementado como um único "sistema em um chip". Está ainda contemplado que, em certas concretizações, um ASIC separado não seria utilizado, por exemplo, e que todas as funções relevantes, tal como aqui divulgadas devem ser executadas por um processador ou processadores. O conjunto de chip ou chip 900, ou uma respectiva porção, constitui um meio para a concretização de uma ou mais etapas de fornecimento de informação de navegação de interface de usuário associada com a disponibilidade de serviços. O conjunto de chip ou chip 900, ou uma respectiva porção, constitui um meio para a concretização de uma ou mais etapas para identificação de funções de rede com base em conteúdo.
Em uma concretização, o conjunto de chip ou chip 900 inclui um mecanismo de comunicação, tal como um barramento 901 para passar informação entre os componentes do conjunto de chips 900. Um processador 903 tem conectividade ao barramento 901 para execução de instruções e informação armazenada no processo, por exemplo, uma memória 905. O processador 903 pode incluir um ou mais núcleos de processamento em cada núcleo configurado para executar de forma independente. Um processador de múltiplos núcleos permite multiprocessamento dentro de um único pacote físico.
Exemplos de um processador de múltiplos núcleos incluem dois, quatro, oito, ou um maior número de núcleos de processamento. Alternativamente ou adicionalmente, o processador 903 pode incluir um ou mais microprocessadores em conjunto configurados através do barramento 901 para permitir a execução de instruções, independente de pipelining e multithreading. 0 processador 903 pode também ser acompanhado por um ou mais componentes especializados para efetuar certas funções de processamento e tarefas, tais como um ou mais processadores de sinal digital (DSP) 907, ou um ou mais circuitos integrados específicos de aplicações (ASIC) 909. 0 DSP 907 é tipicamente configurado para processar os sinais do mundo real (por exemplo, som) em tempo real independentemente do processador 903. Da mesma forma, um ASIC 909 pode ser configurado para desempenhar funções especializadas que não são facilmente realizadas por um processador de propósito mais geral. Outros componentes especializados para auxiliar no desempenho das funções da invenção aqui descrita podem incluir uma ou mais arranjos de portas programáveis em campo (FPGA) (não mostrados) , um ou mais controladores (não mostrados), ou um ou mais outros chips de computador para fins especiais.
Em uma concretização, o conjunto de chip ou chip 900 inclui apenas um ou mais processadores e algum software e/ou firmware de suporte e/ou em relação a e/ou para um ou mais processadores.
O processador 903 e respectivos componentes têm conectividade à memória 905 através do barramento 901. A memória 905 inclui tanto a memória dinâmica (por exemplo, RAM, disco magnético, disco óptico gravável, etc) e a memória estática (por exemplo, ROM, CD a ROM, etc) para o armazenamento de instruções executáveis que, quando executadas executam as etapas inventivas aqui descritas para identificar funções de rede com base no conteúdo. A memória 905 também armazena os dados associados ou gerados pela execução das etapas inventivas.
A Figura 10 é um diagrama dos componentes exemplares de um terminal móvel (por exemplo, telefone celular) para as comunicações, o qual é capaz de operar no sistema da Figura 1, de acordo com uma concretização. Em algumas concretizações, o terminal móvel 1001, ou uma respectiva porção, constitui um meio para a concretização de uma ou mais etapas de identificar funções de rede com base no conteúdo. Geralmente, um receptor de rádio é geralmente definido em termos de características de extremidade frontal e extremidade posterior. O receptor de extremidade frontal abrange todos os circuitos de frequências de rádio (RF) , enquanto o back-end abrange todos os circuitos de processamento de banda base. Tal como utilizado no presente pedido, o termo "circuito" refere-se tanto: (1) implementações somente em hardware (tais como as implementações em circuito apenas analógico e/ou digital), e (2) as combinações de circuitos e software (e / ou firmware) (tais como, se for o caso para o contexto em particular, para uma combinação de processador (s), incluindo o processador de sinal digital (s) , software e memória (s) que trabalham em conjunto para fazer com que um dispositivo, tal como um telefone móvel ou servidor, execute várias funções). Esta definição de "circuito" aplica-se a todos os usos deste termo neste pedido, inclusive em qualquer reivindicação. Como um exemplo adicional, tal como utilizado no presente pedido e, se aplicável ao contexto particular, o termo "circuito" abrange igualmente uma implementação de apenas um processador (ou vários processadores) e seu software (ou seus) acompanhante / ou firmware. O termo "circuito" também abrangeria se aplicável ao contexto particular, por exemplo, um circuito integrado de banda base ou circuito integrado processador de aplicativos em um telefone celular ou um circuito integrado semelhante em um dispositivo de rede celular ou outros dispositivos de rede.
Pertinentes componentes internos do telefone incluem uma unidade de controle principal (MCU) 1003, um processador de sinal digital (DSP) 1005, e uma unidade de receptor / transmissor, incluindo uma unidade de controle de ganho do microfone e um alto a falante da unidade de controle de ganho. Uma unidade de tela principal 1007 fornece uma exibição para o usuário em apoio de diversos aplicativos e funções de terminais móveis que realizam ou apóiam as etapas de identificar funções de rede com base no conteúdo. 0 visor 10 inclui um circuito de exibição configurado para exibir pelo menos uma porção de uma interface de usuário do terminal móvel (por exemplo, telefone celular). Além disso, o visor 1007 e circuito de exibição são configurados para facilitar o controle de usuário de, pelo menos, algumas das funções do terminal móvel. Um circuito de função de áudio 1009 inclui um amplificador de microfone 1011 que amplifica o sinal de saída de voz do microfone 1010. A saída do sinal amplificado a partir do microfone 1011 é alimentada a um codificador / decodificador (CODEC) 1013.
A seção de rádio 1015 amplifica e converte energia e frequência de modo a comunicar com uma estação de base, que está incluído em um sistema de comunicação móvel, através da antena 1017. O amplificador de potência (PA) 1 109 e os circuitos de transmissor/ de modulação são operacionalmente sensíveis ao MCU 1003, com uma saída do PA 1019 acoplada ao duplexador 1021 ou circulador ou comutador da antena, tal como é conhecido na técnica. 0 PA 1019 também se acopla a uma interface de bateria e unidade de controle de energia 1020.
Em utilização, um usuário do terminal móvel 1001 fala para o microfone 1011 e a sua voz, juntamente com qualquer ruído de fundo detectado é convertida em uma tensão analógica. A tensão analógica é, então, convertida em um sinal digital por meio do conversor analógico a digital (ADC) 1023. A unidade de controle 1003 roteia o sinal digital para o DSP 1005 para processamento no mesmo, tal como a codificação de voz, codificação de canal, criptografia e interfolheamento. Em uma concretização, os sinais de voz processados são codificados, por unidades não mostradas separadamente, utilizando-se um protocolo de transmissão celular, tal como a evolução global (EDGE), Serviço de Rádio de Pacote Geral [General Packet Radio Service] (GPRS) , sistema global para comunicações móveis (GSM), subsistema multimídia de protocolo de Internet (IMS), sistema de telecomunicações móveis universal (UMTS), etc, bem como qualquer outro meio sem fio adequado, por exemplo, o acesso por micro a ondas (WiMAX), redes de Evolução a Longo Prazo [Long Term Evolution] (LTE), acesso múltiplo por divisão de código (CDMA), múltiplo acesso de banda larga de divisão de código (WCDMA), Wireless Fidelity (WiFi), satélite, etc.
Os sinais codificados são, em seguida, encaminhados para um equalizador 1025 para a compensação de quaisquer deficiências dependentes da frequência que ocorrem durante a transmissão pelo ar, tais como distorção de amplitude e fase. Depois da equalização do fluxo de bits, o modulador 1027 combina o sinal com um sinal de RF gerado na interface de RF 1029. 0 modulador 1027 gera uma onda senoidal através da modulação de frequência ou de fase. A fim de preparar o sinal de transmissão, um conversor para cima 1031 combina a onda senoidal da saída do modulador de 1027 com uma outra onda senoidal gerada por um sintetizador 1033 para conseguir a frequência de transmissão desejada. O sinal é, então, enviado através de um PA 1019 para aumentar o sinal para um nível de potência apropriado. Em sistemas práticos, o PA 1019 atua como um amplificador de ganho variável, cujo ganho é controlado pelo DSP 1005 a partir da informação recebida a partir de uma estação base da rede. O sinal é, então, filtrado no interior do duplexador 1021 e, opcionalmente, enviado para uma antena 1035 para coincidir com impedâncias para proporcionar a transferência de potência máxima. Finalmente, o sinal é transmitido através da antena 1017 para uma estação de base local. Um controle de ganho automático (AGC) pode ser fornecido para controlar o ganho dos estágios finais do receptor. Os sinais podem ser encaminhados de lá para um telefone remoto que pode ser um outro telefone celular, telefone celular ou uma linha terra conectada a uma rede de telefonia comutada pública (PSTN), ou outras redes de telefonia.
Os sinais de voz transmitidos para o terminal móvel 1001 são recebidos através da antena 1017 e imediatamente amplificados por um amplificador de baixo ruído (LNA) 1037. Um conversor para baixo 1039 diminui a frequência da portadora, enquanto o demodulador 1041 tira o RF deixando apenas um fluxo de bits digital. O sinal passa, então, através do equalizador 1025 e é processado pelo DSP 1005. Um conversor digital para analógico (DAC) 1043 converte o sinal e a saída resultante é transmitida para o usuário através do alto a falante 1045, todos sob o controle de uma unidade de controle principal (MCU) 1003, que pode ser implementada como uma unidade de processamento central (CPU) (não mostrada).
O MCU 1003 recebe sinais diversos, incluindo os sinais de entrada a partir do teclado 1047. O teclado 1047 e/ou o MCU 1003, em combinação com componentes de outras entradas de usuários (por exemplo, o microfone 1011) compreendem um circuito de interface de usuário para a gestão de entrada do usuário. 0 MCU 1003 executa um software de interface do usuário para facilitar o controle de usuário de, pelo menos, algumas das funções do terminal móvel 1001 para identificar funções de rede com base no conteúdo. O MCU 1003 também fornece um comando de visualização e um comando de mudança para o visor 1007 e para o controlador de comutação de saída de voz, respectivamente. Além disso, o MCU 1003 troca informações com o DSP 1005 e pode acessar um cartão SIM 1049 opcionalmente incorporado e memória 1051. Além disso, o MCU 1003 executa várias funções de controle requeridas para o terminal. 0 DSP 1005 pode, dependendo da aplicação, executar qualquer uma de uma variedade de funções convencionais de processamento digital de sinais de voz. Além disso, o DSP 1005 determina o nível de ruído de fundo do ambiente local, a partir dos sinais detectados pelo microfone 1010 e define o ganho do microfone 1010 para um nível selecionado para compensar a tendência natural do usuário do terminal móvel 1001.
O CODEC 1013 inclui o ADC 1023 e DAC 1043. A memória 1051 armazena vários dados, incluindo dados de tom vindos de chamada e é capaz de armazenar outros dados, incluindo dados de música recebidos através, por exemplo, a Internet global. O módulo de software pode residir na memória RAM, memória flash, registros, ou qualquer outra forma de meio de armazenamento de permissão de escrita conhecida na técnica. O dispositivo de memória 1051 pode ser, mas não se limitando a, uma única memória, CD, DVD, ROM, RAM, EEPROM, armazenamento óptico, ou qualquer outro meio de armazenamento não volátil, capaz de armazenar dados digitais.
O cartão SIM opcionalmente incorporado 1049 traz, por exemplo, informações importantes, tais como o número de telefone celular, a operadora que fornece detalhes do serviço, assinatura e informações de segurança. O cartão SIM 1049 serve principalmente para identificar o terminal móvel 1001 sobre uma rede de rádio. O cartão 1049 também contém uma memória para armazenar um registro de número pessoal de telefone, mensagens de texto e configurações específicas de usuários de terminais móveis.
Embora a invenção tenha sido descrita em conexãocom um número de concretizações e implementações, a invenção não é tão limitada, mas abrange diversas modificações óbvias e arranjos equivalentes, que caem dentro do escopo das reivindicações anexas. Embora as características da invenção 10 sejam expressas em determinadas combinações entre as reivindicações, é contemplado que estas características podem ser organizadas em qualquer combinação e ordem.
Claims (14)
1. MÉTODO, caracterizado por compreender: provocar, pelo menos em parte, a formação (401) da estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede com pelo menos um identificador de conceito; provocar, pelo menos em parte, a determinação (405) dos primeiros dados que indicam um conceito representado no conteúdo de mídia de áudio e/ou imagem e/ou vídeo provido por um dispositivo, em que os primeiros dados são determinados como sendo o conceito que mais se aproxima de uma lista ou padrão de características de mídia correspondente ao conteúdo de mídia de áudio e/ou imagem e/ou vídeo e em que o conceito corresponde a um identificador de conceito; provocar, pelo menos em parte, a encontrar, na estrutura de dados, uma função da pluralidade de funções provida pela pluralidade de serviços de rede que está associada com o identificador de conceito; provocar, pelo menos em parte, a transmissão de uma mensagem que indica a função; provocar, pelo menos em parte, a apresentação, no dispositivo, da descrição da função; e provocar, pelo menos em parte, a invocação da função provida pelo serviço de rede.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado por provocar, pelo menos em parte, a encontrar a função fornecida por um serviço de rede, que compreende ainda: provocar, pelo menos em parte, o envio de uma mensagem que indica os primeiros dados para um serviço que associa dados que indica um identificador de conceito ou um identificador de contexto de um dispositivo.
3. MÉTODO, de acordo com qualquer uma das reivindicações 1 ou 2, caracterizado por compreender ainda: provocar, pelo menos em parte, a determinação de segundos dados que indicam um contexto atual para o dispositivo; provocar, pelo menos em parte, a determinação da função com base, pelo menos em parte, nos segundos dados; e provocar, pelo menos em parte, a formação da estrutura de dados que associa cada função da pluralidade de funções proporcionadas pela pluralidade de serviços de rede com pelo menos um identificador do contexto atual para o dispositivo.
4. MÉTODO, de acordo com a reivindicação 3, caracterizado por causar, pelo menos em parte, a determinação da função com base nos segundos dados que indicam o contexto atual, que compreende ainda: provocar, pelo menos em parte, o encontro, na estrutura de dados, de uma associação entre a função e o identificador para o contexto do dispositivo que inclui o contexto atual para o dispositivo.
5. MÉTODO, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado por provocar, pelo menos em parte, a determinação dos primeiros dados que indicam o conceito representado no conteúdo de mídia de áudio e/ou imagem e/ou vídeo provido pelo dispositivo, em que compreende ainda: receber uma mensagem que indica uma característica de tipo de mídia com base no conteúdo de mídia de áudio e/ou imagem e/ou vídeo; e provocar, pelo menos em parte, a determinação dos primeiros dados que indicam o conceito com base na característica de tipo de mídia.
6. MÉTODO, de acordo com a reivindicação 1, caracterizado por a função prover um mapa para uma localização associada ao conteúdo de mídia de áudio e/ou imagem e/ou vídeo.
7. APARELHO, caracterizado por compreender: pelo menos um processador; e pelo menos uma memória, a pelo menos uma memória configurada para, com o pelo menos um processador, fazer com que o aparelho efetue, pelo menos, o seguinte, provocar, pelo menos em parte, a formação (401) da estrutura de dados que associa cada função de uma pluralidade de funções proporcionadas por uma pluralidade de serviços de rede com pelo menos um identificador de conceito; provoque, pelo menos em parte, a determinação (405) dos primeiros dados que indicam um conceito representado no conteúdo de mídia de áudio e/ou imagem e/ou vídeo provido por um dispositivo, em que os primeiros dados são determinados como sendo o conceito que mais se aproxima de uma lista ou padrão de características de mídia correspondente ao conteúdo de mídia de áudio e/ou imagem e/ou vídeo e em que o conceito corresponde a um identificador de conceito; e provoque, pelo menos em parte, a encontrar uma função da pluralidade de funções provida pela pluralidade de serviços de rede que está associada ao identificador de conceito; provocar, pelo menos em parte, a transmissão de uma mensagem que indica a função; provocar, pelo menos em parte, a apresentação, no dispositivo, da descrição da função; e provocar, pelo menos em parte, a invocação da função fornecida pelo serviço de rede.
8. APARELHO, de acordo com a reivindicação 7, caracterizado por o aparelho ser ainda provocado, pelo menos em parte, para enviar uma mensagem que indica os primeiros dados para um serviço que associa dados que indicam um identificador de conceito ou um identificador de contexto de um dispositivo.
9. APARELHO, de acordo com qualquer das reivindicações 7 ou 8, caracterizado por o aparelho ser ainda provocado, pelo menos em parte, para: determinar segundos dados que indicam um contexto atual para o dispositivo; determinar a função com base, pelo menos em parte, nos segundos dados; e formar a estrutura de dados que associa cada uma das funções da pluralidade de funções proporcionadas pela pluralidade de serviços de rede com pelo menos um identificador do contexto atual para o dispositivo.
10. APARELHO, de acordo com a reivindicação 9, caracterizado por o aparelho ser ainda provocado, pelo menos em parte, para encontrar, na estrutura de dados, uma associação entre a função e o identificador para o contexto do dispositivo que inclui o contexto atual para o dispositivo.
11. APARELHO, de acordo com qualquer uma das reivindicações 7 a 10, caracterizado por o aparelho ser ainda provocado, pelo menos em parte, para: receber uma mensagem que indica uma característica de tipo de mídia com base no conteúdo de mídia de áudio e/ou imagem e/ou vídeo; e determinar os primeiros dados que indicam o conceito com base na característica de tipo de mídia.
12. APARELHO, de acordo com qualquer uma das reivindicações 7 a 11, caracterizado por compreender ainda uma antena, e o aparelho ser configurado para renderizar o conteúdo de mídia de áudio e/ou imagem e/ou vídeo e ser configurado para se comunicar com os serviços de rede através da antena.
13. APARELHO, de acordo com a reivindicação 12, caracterizado por o aparelho ser um dispositivo móvel.
14. MEIO DE ARMAZENAMENTO LEGÍVEL POR COMPUTADOR, caracterizado por compreender instruções, que quando executadas por pelo menos um processador, faz com que um aparelho execute pelo menos o método, conforme definido em de qualquer uma das reivindicações 1 a 6.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/789,043 | 2010-05-27 | ||
US12/789,043 US8645554B2 (en) | 2010-05-27 | 2010-05-27 | Method and apparatus for identifying network functions based on user data |
PCT/FI2011/050466 WO2011148048A1 (en) | 2010-05-27 | 2011-05-24 | Method and apparatus for identifying network functions based on user data |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112012029828A2 BR112012029828A2 (pt) | 2017-06-27 |
BR112012029828B1 true BR112012029828B1 (pt) | 2021-10-05 |
Family
ID=45003384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112012029828-3A BR112012029828B1 (pt) | 2010-05-27 | 2011-05-24 | Método, aparelho e meio de armazenamento legível por computador |
Country Status (8)
Country | Link |
---|---|
US (2) | US8645554B2 (pt) |
EP (1) | EP2577944B1 (pt) |
JP (2) | JP5870092B2 (pt) |
KR (1) | KR101495980B1 (pt) |
CN (1) | CN102918821A (pt) |
BR (1) | BR112012029828B1 (pt) |
CA (1) | CA2797544C (pt) |
WO (1) | WO2011148048A1 (pt) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060609B2 (en) * | 2008-01-04 | 2011-11-15 | Sling Media Inc. | Systems and methods for determining attributes of media items accessed via a personal media broadcaster |
US8327407B2 (en) | 2009-10-27 | 2012-12-04 | Sling Media, Inc. | Determination of receiving live versus time-shifted media content at a communication device |
US8645554B2 (en) * | 2010-05-27 | 2014-02-04 | Nokia Corporation | Method and apparatus for identifying network functions based on user data |
KR101701151B1 (ko) * | 2010-09-20 | 2017-02-02 | 삼성전자주식회사 | 휴대 단말기를 이용한 통합 메시지 송수신 방법 및 장치 |
US9021135B2 (en) | 2011-04-27 | 2015-04-28 | Perspecsys Corp. | System and method for tokenization of data for storage in a cloud |
CN105488044A (zh) * | 2014-09-16 | 2016-04-13 | 华为技术有限公司 | 数据处理的方法和设备 |
US9485721B1 (en) * | 2015-02-11 | 2016-11-01 | Sprint Communications Company L.P. | Discovery of services by mobile communication devices using a service registry indexed by wireless beacons |
JP2016162163A (ja) * | 2015-03-02 | 2016-09-05 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
WO2018164033A1 (ja) * | 2017-03-06 | 2018-09-13 | 日本電気株式会社 | 制御装置、制御システム、制御装置の制御方法及び記録媒体 |
KR102597361B1 (ko) * | 2023-02-17 | 2023-11-07 | (주)시지태테크놀러지 | 애플리케이션 사용량을 분석 및 제시하기 위한 방법 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304753B1 (en) | 1998-07-16 | 2001-10-16 | Openwave Technologies Inc. | Integration of voice and data services provided to a mobile wireless device |
US6662215B1 (en) * | 2000-07-10 | 2003-12-09 | I Novation Inc. | System and method for content optimization |
JPWO2002027592A1 (ja) * | 2000-09-29 | 2004-02-05 | ソニー株式会社 | エージェントを用いた情報管理システム |
US7945476B2 (en) * | 2000-10-31 | 2011-05-17 | Context Web, Inc. | Internet contextual advertisement delivery system |
US20030227476A1 (en) * | 2001-01-29 | 2003-12-11 | Lawrence Wilcock | Distinguishing real-world sounds from audio user interface sounds |
US20020143808A1 (en) * | 2001-01-31 | 2002-10-03 | Rodger Miller | Intelligent document linking system |
JP2002285958A (ja) * | 2001-03-28 | 2002-10-03 | Matsushita Refrig Co Ltd | リニアコンプレッサの制御装置 |
JP2002297656A (ja) | 2001-04-02 | 2002-10-11 | Nippon Telegr & Teleph Corp <Ntt> | コンテンツ提供方法及び装置及びコンテンツ提供プログラム及びコンテンツ提供プログラムを格納した記憶媒体 |
US7363384B2 (en) * | 2001-07-11 | 2008-04-22 | Sony Computer Entertainment America Inc. | Selection of content in response to communication environment |
US7406659B2 (en) * | 2001-11-26 | 2008-07-29 | Microsoft Corporation | Smart links |
US20040153373A1 (en) | 2003-01-31 | 2004-08-05 | Docomo Communications Laboratories Usa, Inc. | Method and system for pushing services to mobile devices in smart environments using a context-aware recommender |
JP4661047B2 (ja) * | 2003-05-30 | 2011-03-30 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
JP4108016B2 (ja) * | 2003-08-01 | 2008-06-25 | アルパイン株式会社 | ナビゲーション装置およびナビゲーション装置における車両停車時の画面表示方法 |
JP4566679B2 (ja) | 2003-11-13 | 2010-10-20 | キヤノン株式会社 | 画像形成装置および制御方法およびプログラム |
KR20040010457A (ko) | 2003-12-18 | 2004-01-31 | 주식회사 넥스모빌 | 원본 컨텐츠를 사용자의 취향에 맞도록 편집 가공할 수있는 기능을 제공하는 무선인터넷 컨텐츠 서비스 방법 |
JP4413633B2 (ja) * | 2004-01-29 | 2010-02-10 | 株式会社ゼータ・ブリッジ | 情報検索システム、情報検索方法、情報検索装置、情報検索プログラム、画像認識装置、画像認識方法および画像認識プログラム、ならびに、販売システム |
JP4654665B2 (ja) * | 2004-11-25 | 2011-03-23 | 日本電気株式会社 | 情報配信方法、装置及び記憶媒体 |
US7512401B2 (en) * | 2005-04-04 | 2009-03-31 | Nokia Corporation | Method and system for updating capabilities of a device |
US8085808B2 (en) | 2005-05-12 | 2011-12-27 | Verizon Services Corp. | Automatic configuration of network devices for network services |
US20070168499A1 (en) | 2005-07-07 | 2007-07-19 | Acenet Technology Inc. | Configurable Modular Networking System and Method Thereof |
CN101361345A (zh) * | 2005-11-23 | 2009-02-04 | 高通股份有限公司 | 基于用户个人化信息分配内容以及接收选定内容的设备和方法 |
US8001105B2 (en) * | 2006-06-09 | 2011-08-16 | Ebay Inc. | System and method for keyword extraction and contextual advertisement generation |
JP2008077227A (ja) | 2006-09-19 | 2008-04-03 | Access Co Ltd | リンク生成装置、ブラウザプログラム、リンク生成システム |
US8849360B2 (en) * | 2006-10-11 | 2014-09-30 | Avaya Inc. | Systems and methods for communicating with wireless-enabled devices that are capable of responding to changes in operational state |
US8594702B2 (en) * | 2006-11-06 | 2013-11-26 | Yahoo! Inc. | Context server for associating information based on context |
WO2008072045A2 (en) * | 2006-12-11 | 2008-06-19 | Hari Prasad Sampath | A method and system for personalized content delivery for wireless devices |
EP2177010B1 (en) * | 2006-12-13 | 2015-10-28 | Quickplay Media Inc. | Mobile media platform |
WO2008147919A1 (en) * | 2007-05-22 | 2008-12-04 | Nuance Communications, Inc. | Keyword-based services for mobile device messages |
KR101203080B1 (ko) * | 2007-07-30 | 2012-11-21 | 텔코디아 테크놀로지스, 인코포레이티드 | 매시-업, 또는 개인화된 믹스처, 및 연관된 컨텍스트 제안들을 모바일 사용자들에게 제공하기 위한 방법 및 시스템 |
JP2009087099A (ja) * | 2007-09-28 | 2009-04-23 | Fujifilm Corp | 画像サービス実施方法、プログラムおよび装置 |
US20100257131A1 (en) * | 2007-12-28 | 2010-10-07 | Kun-Oh Kim | Apparatus and method for controlling hybrid motor |
JP5116492B2 (ja) * | 2008-01-15 | 2013-01-09 | 三菱電機株式会社 | アプリケーション実行端末 |
JP5125558B2 (ja) | 2008-02-04 | 2013-01-23 | 日本電気株式会社 | 推薦情報提供装置、推薦情報提供方法、推薦情報提供システムおよび推薦情報提供プログラム |
US20090248670A1 (en) | 2008-03-31 | 2009-10-01 | Trevor Fiatal | Content search engine |
CN101621435A (zh) | 2008-07-04 | 2010-01-06 | 华为技术有限公司 | 一种通用业务架构下业务调用的方法、装置与系统 |
US8135739B2 (en) * | 2008-12-29 | 2012-03-13 | Microsoft Corporation | Online relevance engine |
US8289287B2 (en) * | 2008-12-30 | 2012-10-16 | Nokia Corporation | Method, apparatus and computer program product for providing a personalizable user interface |
US8200757B2 (en) * | 2009-01-27 | 2012-06-12 | Catch, Inc. | Semantic note taking system |
CN101561756B (zh) | 2009-05-26 | 2013-06-19 | 珠海金山软件有限公司 | 通过办公软件获取网络函数结果进行分析的方法及装置 |
US8719713B2 (en) * | 2009-06-17 | 2014-05-06 | Microsoft Corporation | Rich entity for contextually relevant advertisements |
US9335893B2 (en) * | 2009-12-29 | 2016-05-10 | Here Global B.V. | Method and apparatus for dynamically grouping items in applications |
US20110167357A1 (en) * | 2010-01-05 | 2011-07-07 | Todd Benjamin | Scenario-Based Content Organization and Retrieval |
WO2011094931A1 (en) * | 2010-02-03 | 2011-08-11 | Nokia Corporation | Method and apparatus for providing context attributes and informational links for media data |
US9275376B2 (en) * | 2010-03-25 | 2016-03-01 | Nokia Technologies Oy | Method and apparatus for providing soft reminders |
US20110238608A1 (en) * | 2010-03-25 | 2011-09-29 | Nokia Corporation | Method and apparatus for providing personalized information resource recommendation based on group behaviors |
US8635062B2 (en) * | 2010-04-15 | 2014-01-21 | Nokia Corporation | Method and apparatus for context-indexed network resource sections |
WO2011148213A1 (en) * | 2010-05-26 | 2011-12-01 | Sony Ericsson Mobile Communications Ab | Adaptive media object reproduction based on social context |
US8645554B2 (en) * | 2010-05-27 | 2014-02-04 | Nokia Corporation | Method and apparatus for identifying network functions based on user data |
-
2010
- 2010-05-27 US US12/789,043 patent/US8645554B2/en active Active
-
2011
- 2011-05-24 CN CN2011800257941A patent/CN102918821A/zh active Pending
- 2011-05-24 BR BR112012029828-3A patent/BR112012029828B1/pt active IP Right Grant
- 2011-05-24 WO PCT/FI2011/050466 patent/WO2011148048A1/en active Application Filing
- 2011-05-24 CA CA2797544A patent/CA2797544C/en active Active
- 2011-05-24 KR KR1020127033821A patent/KR101495980B1/ko active IP Right Grant
- 2011-05-24 JP JP2013509586A patent/JP5870092B2/ja active Active
- 2011-05-24 EP EP11786189.8A patent/EP2577944B1/en active Active
-
2013
- 2013-12-26 US US14/141,140 patent/US20140108555A1/en not_active Abandoned
-
2014
- 2014-09-02 JP JP2014177750A patent/JP2015008009A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2015008009A (ja) | 2015-01-15 |
US20110294483A1 (en) | 2011-12-01 |
EP2577944B1 (en) | 2019-03-27 |
CA2797544A1 (en) | 2011-12-01 |
KR101495980B1 (ko) | 2015-02-25 |
JP2013535041A (ja) | 2013-09-09 |
WO2011148048A1 (en) | 2011-12-01 |
CN102918821A (zh) | 2013-02-06 |
EP2577944A4 (en) | 2014-02-19 |
US8645554B2 (en) | 2014-02-04 |
KR20130032876A (ko) | 2013-04-02 |
JP5870092B2 (ja) | 2016-02-24 |
CA2797544C (en) | 2017-01-17 |
US20140108555A1 (en) | 2014-04-17 |
BR112012029828A2 (pt) | 2017-06-27 |
EP2577944A1 (en) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112012029828B1 (pt) | Método, aparelho e meio de armazenamento legível por computador | |
US11652628B2 (en) | Deterministic verification of digital identity documents | |
US9129225B2 (en) | Method and apparatus for providing rule-based recommendations | |
US20110136542A1 (en) | Method and apparatus for suggesting information resources based on context and preferences | |
US20130007063A1 (en) | Method and apparatus for real-time processing of data items | |
US20130340086A1 (en) | Method and apparatus for providing contextual data privacy | |
CN110199276A (zh) | 用方面标记查询 | |
US20130110992A1 (en) | Electronic device management using interdomain profile-based inferences | |
US20120117015A1 (en) | Method and apparatus for providing rule-based recommendations | |
US20120110565A1 (en) | Chained data processing and application utilization | |
US10445797B2 (en) | Method and apparatus for verifying association of users with products and information | |
US8635062B2 (en) | Method and apparatus for context-indexed network resource sections | |
US20130144934A1 (en) | Web Content Targeting Based on Client Application Availability | |
CN103688244A (zh) | 用于为分布式计算提供端到端隐私的方法和装置 | |
JP2013535041A5 (pt) | ||
EP2973047A1 (en) | Methods for managing applications using semantic modeling and tagging and devices thereof | |
TW201212561A (en) | Method and apparatus for executing device actions based on context awareness | |
CN104412225A (zh) | 与主机兼容的可下载应用的标识 | |
US10075508B2 (en) | Application-centric socialization | |
US9477664B2 (en) | Method and apparatus for querying media based on media characteristics | |
EP2867800A1 (en) | Method and apparatus for providing task-based service recommendations | |
US20090327238A1 (en) | Extensible binding of data within graphical rich applications | |
US20140258993A1 (en) | Systems and methods for device-specific application generation | |
Khan et al. | Enhanced service-oriented open sensor web architecture with application server based mashup | |
US20160117728A1 (en) | Apparatus and method for providing search service and computer program therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
B25A | Requested transfer of rights approved |
Owner name: NOKIA TECHNOLOGIES OY (FI) |
|
B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
B06U | Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette] | ||
B15K | Others concerning applications: alteration of classification |
Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 29/08 , H04M 1/725 , G06F 17/30 Ipc: H04L 12/58 (2006.01), H04L 29/08 (2006.01) |
|
B09A | Decision: intention to grant [chapter 9.1 patent gazette] | ||
B16A | Patent or certificate of addition of invention granted [chapter 16.1 patent gazette] |
Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 24/05/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO. |