BR112020018013A2 - Assistência computadorizada utilizando base de conhecimentos por inteligência artificial - Google Patents

Assistência computadorizada utilizando base de conhecimentos por inteligência artificial Download PDF

Info

Publication number
BR112020018013A2
BR112020018013A2 BR112020018013-0A BR112020018013A BR112020018013A2 BR 112020018013 A2 BR112020018013 A2 BR 112020018013A2 BR 112020018013 A BR112020018013 A BR 112020018013A BR 112020018013 A2 BR112020018013 A2 BR 112020018013A2
Authority
BR
Brazil
Prior art keywords
user
centered
computer
fact
facts
Prior art date
Application number
BR112020018013-0A
Other languages
English (en)
Inventor
Vipindeep Vangala
Sundararajan Srinivasan
Rajesh Gunda
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112020018013A2 publication Critical patent/BR112020018013A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/043Architecture, e.g. interconnection topology based on fuzzy logic, fuzzy membership or fuzzy inference, e.g. adaptive neuro-fuzzy inference systems [ANFIS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Human Computer Interaction (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

a presente invenção refere-se a assistente pessoal computadorizado que inclui uma interface com o usuário em linguagem natural, uma máquina de processamento de linguagem natural, uma máquina de identidade, e uma máquina de atualização de base de conhecimentos. a máquina de atualização de base de conhecimentos é configurada para atualizar a base de conhecimentos de inteligência artificial centrada em usuário associada com o usuário particular para incluir um fato centrado em usuário novo ou atualizado baseado na representação legível por computador da entrada do usuário, em que a máquina de atualização de base de conhecimentos atualiza a base de conhecimentos de inteligência artificial via um protocolo de atualização utilizável por vários diferentes serviços de computador.

Description

Relatório Descritivo da Patente de Invenção para “ASSIS- TÊNCIA COMPUTADORIZADA UTILIZANDO BASE DE CONHECI- MENTOS POR INTELIGÊNCIA ARTIFICIAL”.
ANTECEDENTES
[001] A inteligência artificial é um campo emergente com aplica- ções virtualmente ilimitadas. É acreditado que aplicações de inteligên- cia artificial centradas no usuário serão de grande utilizada para usuá- rios de computador individuais como avanços de tecnologia de inteli- gência artificial. A criação e a manutenção de bases de conhecimento de inteligência artificial robustas têm sido um obstáculo significativo para proporcionar aplicações de inteligência artificial úteis para usuá- rios de computadores individuais.
SUMÁRIO
[002] Este Sumário é proporcionado para introduzir uma seleção de conceitos de uma forma simplificada, os quais são ainda descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para identificar aspectos chave ou aspectos essenciais do assunto reivindi- cado, nem é pretendido para ser utilizado para limitar o escopo do as- sunto reivindicado. Além disso, o assunto reivindicado não está limita- do às implementações que solucionam qualquer uma ou todas as des- vantagens observadas em qualquer parte desta divulgação.
[003] Um assistente pessoal computadorizado inclui uma interfa- ce com o usuário em linguagem natural, uma máquina de processa- mento de linguagem natural, uma máquina de identidade, e uma má- quina de atualização de base de conhecimentos. A máquina de atuali- zação de base de conhecimentos é configurada para proporcionar fa- tos centrados no usuário para uma base de conhecimentos de inteli- gência artificial centrada em usuário associada com um usuário. A ba- se de conhecimentos de inteligência artificial centrada em usuário é atualizada via um protocolo de atualização utilizável por vários diferen-
tes serviços de computador, e/ou serve consultas via um protocolo de consulta utilizável por vários diferentes serviços de computador.
BREVE DESCRIÇÃO DOS DESENHOS
[004] As FIGURAS 1A e 1B apresentam uma estrutura gráfica de dados incluindo alguns fatos centrados no usuário.
[005] As FIGURAS 2A a 6B apresentam a estrutura gráfica de dados das FIGURAS 1A e 1B, focando nos fatos centrados no usuário particular.
[006] As FIGURAS 7A a 9B apresentam a estrutura gráfica de dados das FIGURAS 1A e 1B, focando nas referências cruzadas entre as várias estruturas gráficas constituintes incluídas na estrutura gráfica de dados.
[007] As FIGURAS 10A a 12B apresentam uma implementação ilustrativa de uma estrutura gráfica constituinte da estrutura gráfica de dados das FIGURAS 1A e 1B.
[008] A FIGURA 12 apresenta um ambiente de computação ilus- trativo para uma base de conhecimentos de inteligência artificial cen- trada em usuário.
[009] A FIGURA 14 apresenta um método para manter uma base de conhecimentos de inteligência artificial centrada em usuário.
[0010] A FIGURA 15 apresenta um método para consultar uma base de conhecimentos de inteligência artificial centrada em usuário.
[0011] A FIGURA 16 apresenta um assistente pessoal computado- rizado ilustrativo.
[0012] A FIGURA 17 apresenta um método para um serviço de computador para proporcionar um ou mais fatos centrados no usuário para uma base de conhecimentos de inteligência artificial centrada em usuário.
[0013] A FIGURA 18 apresenta um método para um serviço de computador para consultar uma base de conhecimentos de inteligên-
cia artificial centrada em usuário.
[0014] A FIGURA 19 esquematicamente apresenta um sistema de computação ilustrativo para manter e consultar uma base de conheci- mentos de inteligência artificial centrada em usuário.
DESCRIÇÃO DETALHADA
[0015] Um serviço de computador pode acentuar a interação com um usuário por coletar e/ou analisar dados centrados no usuário. Co- mo utilizado neste documento, um “serviço de computador” amplamen- te se refere a qualquer processo de software e/ou de hardware com o qual um usuário pode interagir diretamente, ou indiretamente via inte- ração com outro serviço de computador, por exemplo, um aplicativo de software, um site da Rede interativo, ou um servidor implementando um protocolo de comunicação. Como utilizado neste documento, “cen- trado no usuário” amplamente se refere a quaisquer dados associados ou pertencendo a um usuário de computador particular (por exemplo, fatos e/ou estruturas de dados de computador representando interes- ses do usuário, relações do usuário, e interação do usuário com um serviço de computador).
[0016] Os dados centrados no usuário podem ser fornecidos como entrada para um programa de inteligência artificial (AI), os quais po- dem ser configurados para proporcionar interações aprimoradas entre o usuário e um computador baseado na análise dos dados centrada em usuário fornecida. Por exemplo, proporcionar interações aprimora- das pode incluir predizer uma ação do que o usuário é provável de executar, e facilitar esta ação. Entretanto, para significativamente aprimorar interações entre um usuário e um computador, os progra- mas de AI requerem uma quantidade muito grande de dados. Além disso, os dados devem estar centralmente disponíveis em um formato de dados adequado.
[0017] Por exemplo, um assistente pessoal computadorizado pode incluir um mecanismo de processamento de linguagem natural para processar consultas em linguagem natural submetidas por um usuário (por exemplo, por uma interface natural com o usuário (NUI) configu- rada para receber consultas em linguagem natural de áudio e/ou de texto, tal como uma interface com o usuário em linguagem natural). Para servir uma consulta em linguagem natural, um assistente pessoal computadorizado requer uma base de conhecimentos de fatos. Em algumas implementações, uma “base de conhecimentos” pode incluir uma coleção de fatos expressos como triplas sujeito – predicado - ob- jeto. As bases de conhecimento podem ser geradas utilizando uma combinação de dados indicados por humanos e técnicas de mineração de dados para agregar informação a partir de fontes públicas tal como a Internet. Abordagens anteriores para construir bases de conheci- mento apresentaram um fardo computacional muito grande (por exemplo, para executar uma tarefa de mineração de dados para cada um dos vários diferentes usuários), e/ou projeto e supervisão humana extensivos (por exemplo, dados indicados manualmente) para alcan- çar um bom resultado.
[0018] Assim, abordagens anteriores para construir e manter ba- ses de conhecimentos podem ser inadequadas para alavancar a AI para proporcionar interações com o usuário aprimoradas com compu- tador. Em contraste, as bases de conhecimentos AI centradas no usu- ário como descritas neste documento estendem a idéias de bases de conhecimentos para suportar coleções de fatos centrados no usuário se relacionando com um ou mais usuários específicos (por exemplo, um usuário de computador individual, ou um grupo de usuários de uma rede de computadores empresarial). A base de conhecimentos AI cen- trada em usuário pode incluir fatos centrados no usuário surgindo a partir de vários diferentes provedores de dados de aplicação específi- ca (por exemplo, um provedor de dados associado com um assistente pessoal computadorizado, e um provedor de dados associado com um programa de catálogo de endereços). A base de conhecimentos AI centrada em usuário pode de forma eficiente armazenar vários fatos centrados no usuário por distribuir o armazenamento dos fatos centra- dos no usuário através de várias localizações de armazenamento, por exemplo, associados com diferentes aplicativos. Além disso, a base de conhecimentos AI centrada em usuário pode incluir vários enriqueci- mentos indiferentes da aplicação para os fatos centrados no usuário que pode facilitar o processamento AI da base de conhecimentos, por exemplo, respondendo consultas.
[0019] Um único usuário pode interagir com vários diferentes ser- viços de computador, cada um dos quais pode reconhecer e armaze- nar informação com respeito ao usuário. Os serviços de computador podem agregar dados relacionados com a interação com o usuário, e os vários dos diferentes serviços de computador podem coletivamente agregar uma grande quantidade de dados com respeito ao usuário. Cada serviço de computador dos vários serviços de computador pode armazenar informação com respeito ao usuário em uma diferente loca- lização específica da aplicação. “Específica da aplicação” é utilizado neste documento para significar específico para qualquer serviço de computador. Além disso, cada serviço de computador dos vários servi- ços de computador pode reconhecer e armazenar somente um sub- conjunto limitado de informações possíveis com respeito ao usuário, diferente da informação armazenada por diferentes serviços de com- putador dos vários serviços de computador. Assim, informação com respeito ao usuário pode ser distribuída através de várias diferentes localizações de armazenamento.
[0020] Além disso, dados específicos da aplicativo associados com um serviço de computador podem ser armazenados em um for- mato de armazenamento específico do aplicativo. Assim, mesmo quando dois serviços de computador diferentes possuem funcionalida- de relacionada, os serviços de computador podem estar inaptos a compartilhar dados. Em alguns casos, um provedor interno proporcio- na um conjunto de serviços de computador relacionados (por exemplo, um conjunto de edição de documento) que pode compartilhar um for- mato de armazenamento. Entretanto, mesmo se os serviços de com- putador dentro de tal conjunto forem aptos a compartilhar dados uns com os outros, utilizar os dados para aprimorar interação com o usuá- rio pode ainda depender de dados a partir de fontes externas de co- nhecimentos, tais como fontes de conhecimentos globais (por exem- plo, a Internet), aplicativos de software de terceiros proporcionados por um provedor de software externo diferentes, e/ou dados de utilização de outros usuário (por exemplo, no contexto de um aplicativo de sof- tware empresarial, ou no contexto de um aplicação de rede social).
[0021] Um provedor de software pode desejar automaticamente agregar informação a partir de fontes distintas de modo a construir uma base de conhecimento AI centrada em usuário, para facilitar inte- rações aprimoradas com um usuário. Entretanto, abordagens anterio- res para construir bases de conhecimentos AI focaram somente em dados globais, não centrados no usuário, os quais podem ser particu- larmente utilizados no contexto de interações com um usuário particu- lar. Assim, abordagens anteriores para construir bases de conheci- mentos são inadequadas para construir uma base de conhecimentos AI centrada em usuário para um usuário de vários dos serviços de computador.
[0022] A FIGURA 1A apresenta uma estrutura gráfica de dados ilustrativa 100 para representar uma coleção de fatos centrados no usuário, os quais podem estar associados com dados específicos de aplicativo distribuídos através de vários diferentes serviços de compu- tador. A estrutura gráfica de dados 100 permite consultas centraliza-
das e é adequada para implementar uma base de conhecimentos AI centrada em usuário.
[0023] A estrutura gráfica de dados 100 inclui várias diferentes es- truturas gráficas constituintes 102, por exemplo, o gráfico constituinte A, o gráfico constituinte B, etc. Cada estrutura gráfica constituinte pode ser uma estrutura gráfica constituinte específica de aplicativo associa- da com um serviço de computador diferente. Por exemplo, a estrutura gráfica constituinte A pode estar associada com um programa de pla- nejamento de agenda, enquanto a estrutura gráfica constituinte B pode estar associada com um programa de email.
[0024] Cada estrutura gráfica constituinte inclui vários fatos cen- trados no usuário 104, por exemplo, os fatos centrados no usuário FA,1, FA,2, etc., armazenados no gráfico constituinte A, e fatos centrados no usuário FB,1, FB,1, etc., armazenados no gráfico constituinte B. O fato centrado no usuário inclui um nó de gráfico sujeito 106, um nó de grá- fico objeto 108, e uma borda 110 conectando o nó de gráfico sujeito com o nó de gráfico objeto. Os nós de gráfico sujeito e os nós de gráfi- co objeto podem ser genericamente referido como nós. Os nós podem representar qualquer substantivo, em que “substantivo” é utilizado para se referir a qualquer entidade, evento, ou conceito, ou a qualquer in- formação adequada específica de aplicativo (por exemplo, detalhes de uma ação anterior executada pelo usuário utilizando o serviço de com- putador). Similarmente, “substantivo sujeito” e “substantivo objeto” são utilizados neste documento para se referir aos substantivos que são representados pelos nós de gráfico sujeito ou pelo nós de gráfico obje- to, respectivamente. Representar a coleção de fatos centrados no usuário como uma estrutura gráfica de dados pode facilitar a manipu- lação e a travessia da estrutura gráfica de dados (por exemplo, para responder a uma consulta).
[0025] É instrutivo visualizar a coleção de fatos centrados no usuá-
rio como um gráfico 150 como na FIGURA 1B. No gráfico 150 repre- sentado na FIGURA 1B, os nós 152 são representados como círculos cheios e as bordas 154 são representadas como setas. Os círculos cheios com uma borda de saída (em que a seta aponta para longe do círculo cheio) representam os nós de gráfico sujeito, enquanto os cír- culos cheios com uma borda que entra (em que a seta aponta em di- reção ao círculo cheio) representam nós de gráfico objeto. Os vários gráficos constituintes podem ser tratados como um único gráfico por considerar as bordas entre gráficos constituintes como bordas no grá- fico maior. Por consequência, a FIGURA 1B apresenta um único gráfi- co combinado 150 incluindo várias das estruturas gráficas constituin- tes. Para simplificar a explicação, o gráfico ilustrativo 150 somente in- clui dois gráficos constituintes com doze nós. Em implementações re- ais, um gráfico centrado no usuário irá incluir muito mais nós (por exemplo, centenas, milhares, milhões, ou mais) espalhados entre vá- rios mais gráficos constituintes.
[0026] As FIGURAS 2A e 2B representam uma estrutura gráfica de dados das FIGURAS 1A e 1B, focando em um fato centrado no usuário particular FA.1. O fato centrado no usuário FA.1 é cercado por um retângulo com linha espessa na FIGURA 2A, e outros fatos centra- dos no usuário da estrutura gráfica de dados não são apresentados em detalhes na FIGURA 2A. Os formatos com linha espessa são simi- larmente utilizados para chamar atenção para fatos particulares em desenhos subseqüentes. O fato centrado no usuário FA.1 inclui o nó de gráfico sujeito Sa.1, a borda EA.1, e o nó de gráfico objeto OA.1. Por exemplo, o nós de gráfico SA.1 pode representar o empregador do usu- ário e o nó de gráfico objeto OA.1 pode representar uma tarefa desig- nada para o usuário por seu empregador. A borda EA.1 pode descrever qualquer relação adequado entre o nó de gráfico sujeito SA.1 e o nó de gráfico objeto OA.1. No exemplo acima, a borda EA.1 pode representar uma relação de “nova tarefa designada”. A tripla sujeito – borda - obje- to do fato centrado no usuário FA.1 coletivamente representa o fato de que o empregador do usuário designou para o mesmo uma nova tare- fa.
[0027] Um nó de gráfico sujeito de um primeiro fato pode repre- sentar o mesmo substantivo que um nó de gráfico objeto de um se- gundo fato diferente. Por exemplo, as FIGURAS 3A e 3B apresentam a mesma estrutura gráfica de dados das FIGURAS 1A e 2B, focando em um fato centrado no usuário FA.3. O fato centrado no usuário FA.3 define o nós de gráfico sujeito Sa.3, a borda EA.3, e o nó de gráfico obje- to OA.3. O nó de gráfico objeto OA.3 pode representar o mesmo subs- tantivo que o nós de gráfico sujeito SA.1 da FIGURA 2B. Por conse- quência, a estrutura gráfica de dados pode reconhecer o nó de gráfico objeto OA.3 do fato FA.3 e o nó de gráfico sujeito SA.1 do Fato FA.1 como um único nó, o qual é representado na mesma posição no gráfico 150 nas FIGURAS 2B e 3B. Por reconhecer que alguns nós de gráfico ob- jeto e nós de gráfico sujeito representam o mesmo substantivo, a es- trutura gráfica de dados pode estar apta a representar fatos centrados no usuário como relações complexas entre vários substantivos diferen- tes, o que pode ser visualizado como caminhos no gráfico 150. Por exemplo, quando um nó particular é o nó de gráfico objeto de um pri- meiro fato e o nó de gráfico sujeito de um segundo fato diferente, pode ser possível derivar deduções a partir da combinação dos dois fatos, análogo a um silogismo lógico.
[0028] Um nós de gráfico sujeito de um primeiro fato centrado em usuário pode representar o mesmo substantivo que um nó de gráfico sujeito de um segundo fato centrado no usuário diferente. Quando dois nós de gráfico sujeito diferentes representam o mesmo substantivo, a estrutura gráfica de dados pode reconhecer os dois nós de gráfico su- jeito como um único nó. Por exemplo, as FIGURAS 4A e 4B apresen-
tam a mesma estrutura gráfica de dados das FIGURAS 1A a 3B, fo- cando em um fato centrado no usuário FA.4. O fato centrado no usuário FA.4 define o nós de gráfico sujeito SA.4, a borda EA.4, e o nó de gráfico objeto OA.4. O nó de gráfico sujeito SA.4 pode representar o mesmo substantivo que o nó de gráfico sujeito SA.3 da FIGURA 3B. Por conse- quência, a estrutura gráfica de dados pode reconhecer os dois nó de gráfico sujeito como um único nó, o qual é representado na mesma posição nos gráfico 150 nas FIGURAS 3B e 4B. Apesar de os nós de gráfico sujeito SA.4 e SA.3 poderem ser reconhecidos como um único nó, a borda EA.4 é distinta da borda EA.3 e da mesma forma, o nó de gráfico objeto OA.4 é diferente do nó de gráfico objeto OA.3. Por conse- quência, mesmo que, no entanto, os nós de gráfico sujeito S A.4 e SA.3 representam o mesmo substantivo, as triplas (SA.4, EA.4, OA.4) e (SA.3, EA.3, OA.3) representam dois fatos diferentes.
[0029] Similarmente, um nó de gráfico objeto de um primeiro fato centrado no usuário pode representar o mesmo substantivo que um nó de gráfico objeto de um segundo fato centrado no usuário diferente. Em outras palavras, o mesmo substantivo pode ser o objeto de vários diferentes fatos centrados no usuário, possuindo diferentes nós de grá- fico sujeito e possivelmente possuindo bordas representado diferentes tipos de relação. Por exemplo, as FIGURAS 5A e 5B apresentam a mesma estrutura gráfica de dados das FIGURAS 1A a 4B, focando em um fato centrado no usuário FA.5. O fato centrado no usuário FA.5 define o nó de gráfico sujeito SA.5, a borda EA.5, e o nó de gráfico objeto OA.5. O nó de gráfico objeto OA.5 pode representar o mesmo substantivo que o nó de gráfico objeto OA.1 da FIGURA 2B. Por consequência, a estru- tura gráfica de dados pode reconhecer os dois nós de gráfico objeto como um único nó, o qual é representado na mesma posição no gráfi- co 150 nas FIGURAS 2B e 5B.
[0030] Um emparelhamento particular de um substantivo sujeito e de um substantivo objeto pode ser envolvido em dois ou mais diferen- tes fatos centrados no usuário. Por exemplo, o substantivo sujeito e o substantivo objeto podem ser representados por um primeiro fato cen- trado no usuário FA.5 incluindo o nó de gráfico sujeito SA.5, a borda EA.5, e o nó de gráfico objeto OA.5. Simultaneamente, como representado nas FIGURAS 6A e 6B, um nó de gráfico sujeito SA.6 pode representar o mesmo substantivo sujeito e o nós de gráfico objeto OA.6 também pode representar o mesmo substantivo objeto, como indicado pelas posições de SA.6 e OA.6 na FIGURA 6B sendo as mesmas que as res- pectivas posições de SA.5 e OA.5 na FIGURA 5B. Por conseqüência, o nó de gráfico sujeito SA.5 pode ser conectado com o nó de gráfico obje- to OA.5 via a primeira borda EA.5 enquanto o nó de gráfico sujeito SA.6 é conectado com o nó de gráfico objeto OA.6 via uma segunda borda di- ferente EA.6. Como com os nós de gráfico sujeito e os nós de gráfico objeto, a borda EA.6 na FIGURA 6B é representada na mesma posição que a borda EA.5 na FIGURA 5B. Entretanto, as bordas EA.5 e EA.6 são bordas distintas, por exemplo representando relações distintas entre os nós de gráfico sujeito e objeto. Em um exemplo, os nós de gráfico sujeito SA.5 e SA.6 podem corresponder a uma primeira conta de usuá- rio (por exemplo, identificada por um endereço de email). NO mesmo exemplo, os nós de gráfico objeto OA.5 e OA.6 podem corresponder a uma segunda conta de usuário diferente. No exemplo, a borda EA.5 po- de representar uma relação “envia email para”, enquanto a borda EA.6 representa uma relação diferente “encontro programado com”. Por consequência, a estrutura gráfica de dados inclui dois ou mais fatos centrados no usuário possuindo os mesmos substantivos de sujeito e objeto.
[0031] Em outros exemplos, dois substantivos podem estar envol- vidos em dois diferentes fatos centrados no usuário, mas com o papel entre o sujeito e o objeto trocado. Em outras palavras, um primeiro substantivo é um substantivo sujeito de um primeiro fato e um segundo substantivo é um substantivo objeto do primeiro fato, enquanto o pri- meiro substantivo é um substantivo objeto de um segundo fato e o se- gundo substantivo é um substantivo sujeito do segundo fato. Por exemplo, um par de substantivos representando “Alice” e “Bob” pode estar envolvido em um primeiro fato dizendo que “Alice programou um encontro com Bob” enquanto também sendo envolvido em um segun- do fato dizendo que “Bob programou um encontro com Alice”. Em adi- ção à troca de um papel de sujeito e objeto, os dois fatos utilizando os dois substantivos podem possuir diferentes tipos de bordas, por exem- plo, “Alice” e “Bob” podem adicionalmente estar envolvidos em um ter- ceiro fato dizendo que “Bob enviou um email para Alice”.
[0032] Como descrito acima e como apresentado nas FIGURAS 1A, 2A, 3A, 4A, 5A e 6A, a estrutura gráfica de dados inclui várias es- truturas gráficas constituintes específicas de aplicativo (por exemplo, correspondendo a diferentes serviços de computador). Por exemplo, as FIGURAS 7A e 7B apresentam a mesma estrutura gráfica de dados das FIGURAS 1A a 6B, focando em dois diferentes fatos centrados no usuário FA.6 e FB.1. O fato centrado no usuário FA.6 define o nós de grá- fico sujeito SA.6, a borda EA.6, e o nó de gráfico objeto OA.6 como parte da estrutura gráfica constituinte A. Similarmente, o fato centrado no usuário FB.1 define o nó de gráfico sujeito SB.1, a borda EB.1, e o nó de gráfico objeto OB.1 como parte da estrutura de gráfico constituinte B.
[0033] A estrutura gráfica de dados pode reconhecer um substan- tivo a partir de um gráfico constituinte e um substantivo a partir de um gráfico constituinte diferente como um único nó. Por exemplo, as FIGURAS 8A e 8B apresentam a mesma estrutura gráfica de dados das FIGURAS 1A a 7B, focando em um fato centrado no usuário FB.3. O fato centrado no usuário FB.3 define um nó de gráfico sujeito SB.3, a borda EB.3 e o nó de gráfico objeto OB.3. O nó de gráfico objeto OB.3 pode representar o mesmo substantivo que o nó de gráfico objeto OA.1 da FIGURA 2B, o nó de gráfico objeto OA.5 da FIGURA 5B, o nó de gráfico objeto OA.5 da FIGURA 7B, e o nó de gráfico objeto OB.3 da FIGURA 8B. Por consequência, a estrutura gráfica de dados pode re- conhecer os quatro nós de gráfico objeto como um único nó, o qual é representado na mesma posição no gráfico 150 nas FIGURAS 2A, 5B, 7B e 8B. De forma notável, o nó de gráfico objeto OB.3 está na Estrutu- ra de Gráfico Constituinte B, enquanto os nós de gráfico objeto OA.1, OA.5, e OA.5 estão na Estrutura de Gráfico Constituinte A. Tal reconhe- cimento de que dois ou mais nós diferentes correspondem ao mesmo substantivo pode ser referido neste documento como uma “referência cruzada de nó” entre dois nós. Um nó de gráfico sujeito ou nó de gráfi- co objeto representando um substantivo particular pode armazenar referências cruzadas de nó para outros nós da mesma estrutura gráfi- ca constituinte ou para qualquer outra estrutura gráfica constituinte.
[0034] Similarmente, um fato centrado no usuário em uma primeira estrutura gráfica constituinte pode definir um nó de gráfico sujeito na primeira estrutura gráfica constituinte, junto com uma borda apontando para um nó de gráfico objeto em uma segunda estrutura gráfica consti- tuinte diferente (neste documento referida como uma “borda de refe- rência cruzada”). Por exemplo, as FIGURAS 9A e 9B apresentam a mesma estrutura gráfica de dados das FIGURAS 1A a 8B, focando em um fato centrado no usuário FA.2. O fato centrado no usuário FA.2 inclui um nó de gráfico sujeito SA.2 e uma borda EAB.2. Entretanto, a borda EAB.2 aponta para um nó de gráfico objeto OB.2 ao invés de apontar pa- ra um nó de gráfico objeto diferente na estrutura gráfica constituinte A. A borda EAB.2 pode indicar a conexão entre os gráficos constituintes de qualquer maneira adequada, por exemplo, por armazenar um identifi- cador de gráfico constituinte indicando uma conexão com um nó de gráfico objeto no gráfico constituinte B, e um identificador de nó de gráfico objeto indicando o nó de gráfico objeto particular no gráfico constituinte B.
[0035] As referências cruzadas de nó e as bordas de referência cruzada conectam várias estruturas de gráfico constituintes. Por exemplo, as referências cruzadas de nó e as bordas de referência cru- zada podem ser atravessadas do mesmo modo que as bordas, segun- do uma transversal da estrutura gráfica de dados para atravessar um caminho se estendendo através das várias estruturas gráficas consti- tuintes. Em outras palavras, a estrutura gráfica de dados 100 facilita uma base de conhecimentos de inteligência artificial holística que inclui fatos a partir de diferentes serviços de computador e/ou fato se esten- dendo através dos serviços de computador. As referência cruzadas de nó e as borda de referência cruzada podem coletivamente ser referi- das neste documento como referências cruzadas. Similarmente, quan- do um nó está envolvido em referências cruzadas dentro de várias es- truturas gráficas constituintes, o nó pode ser referido de forma cruzada através das estruturas gráficas constituintes.
[0036] Além disso, em adição a conectar duas diferentes estrutu- ras gráficas constituintes via referências cruzadas, uma estrutura gráfi- ca constituinte pode incluir um ou mais fatos centrados no usuário en- volvendo um nó de gráfico sujeito na estrutura gráfica constituinte e um nó de gráfico objeto em uma base de conhecimentos externa (por exemplo, baseada na Internet, em uma rede social, ou em um aplicati- vo de software empresarial em rede). Como com as bordas de refe- rência cruzada, uma borda de saída conectada com o nó de gráfico sujeito pode indicar uma conexão com um nó de gráfico objeto externo de qualquer maneira adequada, por exemplo, por armazenar um par de identificadores indicando o gráfico externo e o nó de gráfico objeto dentro do gráfico externo. Em alguns casos, o gráfico externo pode não armazenar quaisquer dados centrados no usuário, por exemplo,
quando o gráfico externo é uma base de conhecimentos global deriva- da a partir de conhecimento publicado na Internet.
[0037] Por incluir referências cruzadas entre estruturas gráficas constituintes, fatos sobre um substantivo particular (por exemplo, evento ou entidade) podem ser distribuídos através de várias estrutu- ras gráficas constituintes, enquanto ainda suportando raciocínio cen- tralizado sobre a relação entre os fatos centrados no usuário em dife- rentes estruturas gráficas constituintes e em bases de dados externas (por exemplo, percorrendo as várias estruturas gráficas constituintes via as referências cruzadas e as bordas de referência cruzada).
[0038] Cada fato centrado no usuário pode ser armazenado em um formato de dados compartilhado previsível, o qual armazena fatos centrados no usuário incluindo fatos específicos de aplicativo associa- dos com um serviço de computador sem requerer uma mudança para o formato dos dados específicos de aplicativo do serviço de computa- dor. Tal formato de dados compartilhado previsível é neste documento referido como um “formato de dados independente do aplicativo”. O formato de dados independente do aplicativo pode armazenar infor- mação necessária para consultar a base de conhecimentos AI centra- da em usuário, enquanto evitando o armazenamento redundante de dados específicos de aplicativo. A estrutura gráfica de dados pode ser implementada com uma interface de programação de aplicativo (API) complementar permitindo acesso de leitura e gravação para a estrutu- ra gráfica de dados. A API pode restringir acesso à estrutura gráfica de dados de modo a garantir que todos os dados gravados junto à estru- tura gráfica de dados estejam no formato de dados independente de aplicativo. Ao mesmo tempo, a API pode proporcionar um mecanismo que qualquer serviço de computador pode utilizar para adicionar novos fatos centrados no usuário para a estrutura gráfica de dados no forma- to de dados independente de aplicativo, desse modo assegurando que todos os dados armazenados dentro da estrutura gráfica de dados se- jam de forma previsível utilizados por outros serviços de computador utilizando a API. Em adição a proporcionar acesso de leitura / grava- ção para os fatos centrados no usuário armazenados na estrutura grá- fica de dados, a API pode proporcionar operações de processamento de dados que incluem tanto leituras como gravações, por exemplo, operações de consulta e colocação em memória cache dos resultados da consulta.
[0039] Uma estrutura gráfica de dados incluindo fatos centrados no usuário relacionados com vários diferentes serviços de computador, tal como a estrutura gráfica de dados 100 da FIGURA 1A, pode ser de forma variada implementada sem afastamento do espírito desta divul- gação. A FIGURA 10A esquematicamente apresenta tal implementa- ção não limitativa de uma estrutura de dados centrada em nó 200 que inclui um registro de nó para cada substantivo. Cada registro de nó representa um ou mais nós de gráfico de sujeito e/ou de objeto asso- ciados com este substantivo. Quando um registro de nó representa um nó de gráfico sujeito, o registro de nó adicionalmente representa bor- das que saem conectando o nó de gráfico sujeito com um ou mais nós de gráfico objeto. Por exemplo, a FIGURA 10A apresenta dois regis- tros de nó, o registro de nó NRA[42] e o registro de nó NRA[43] dos vários registros de nó que seriam requeridos para totalmente representar to- dos os nós da estrutura de dados 100 das FIGURAS 1A a 9B. A estru- tura gráfica de dados mais generalizada 100 é descrita acima para amplamente introduzir características de uma base de conhecimentos AI multiserviço centrada em usuário. Na prática, uma abordagem de armazenamento de dados mais eficiência, tal como estrutura de dados centrada em nó 200, pode ser utilizada para implementar as caracte- rísticas generalizadas introduzidas acima.
[0040] A estrutura de dados centrada em nó 200 armazena cada nó de uma estrutura gráfica constituinte em uma localização de arma- zenamento de registro de nó definida por um identificador de registro de nó consistente associado com o nó. O identificador de registro de nó pode ser um identificador numérico e/ou de texto, uma referência a uma localização de armazenamento do computador (por exemplo, um endereço na memória do computador ou um nome de arquivo em um disco do computador), ou qualquer outro identificado adequado (por exemplo, um localizador de recurso uniforme (URL)). Por exemplo, o registro de nó NR[42] pode ser identificável pelo identificador de registro de nó “A[42]” incluindo um identificador de domínio de nó “A” identifi- cando o registro de nó como sendo parte da estrutura gráfica consti- tuinte A e incluindo um identificador numérico adicional 42. Por conse- quência, a estrutura gráfica de dados pode armazenar o registro de nó NRA[42] em uma localização de armazenamento de registro de nó defi- nida pelo identificador “A[42]”. Por exemplo, a estrutura gráfica de da- dos pode armazenar o registro de nó NRA[42] na fileira no 42 de uma tabela da base de dados associada com a estrutura de gráfico consti- tuinte A. Deve ser observado que uma nomenclatura de colchete, por exemplo A[42] é ilustrativa e é utilizada para enfatizar que enquanto a estrutura de dados centrada em nó 200 em última análise define os mesmos nós / gráficos como a estrutura de gráficos de dados mais generalizada 100, a implementação particular da estrutura de nós – dados 200 é distinta. Entretanto, as estruturas gráficas de dados des- critas neste documento podem ser implementadas com qualquer no- menclatura adequada.
[0041] No exemplo da FIGURA 10A, o registro de nó NRA[42] repre- senta os nós de gráfico sujeito SA.3 e SA.4 da estrutura gráfica de dados mais generalizada 100, e o registro de nó NRA[43] representa os nós de gráfico sujeito SA.7 e SA.8 e o nó de gráfico de objeto OA.4 da estrutura gráfica de dados mais generalizada 100. Por consequência, na
FIGURA 10B, o registro de nó NRA[42] é representado na mesma posi- ção no gráfico como o nó de gráfico sujeito SA.3 e SA.4 das FIGURAS 3B e 4B, respectivamente. Retornando para a FIGURA 10A, o registro de nó NRA[42] é expandido para apresentar a representação dos nós de gráfico sujeito SA.3 e SA.4 no formato de dados independente de aplica- tivo. Em um exemplo, o fato centrado no usuário armazenado na estru- tura gráfica de dados é um fato específico de aplicativo. Em adição ao fato específico de aplicativo, o fato centrado no usuário pode incluir um ou mais enriquecimentos, em que um enriquecimento é um dado adi- cional que inclui um fato independente de aplicativo associado com o fato específico de aplicativo.
[0042] O formato de dados independente de aplicativo para fatos centrados em usuário permite armazenamento eficiência de fatos es- pecíficos de aplicativo, em adição à representação independente de aplicativo das conexões na estrutura gráfica de dados. Por exemplo, o nó de gráfico sujeito SA.3 pode representar um sujeito de um fato espe- cífico de aplicativo, por exemplo, o fato que um novo encontro foi pro- gramado. Por consequência, a estrutura gráfica de dados armazena para o fato específico de aplicativo um ponteiro de faceta que indica dados específicos de aplicativo auxiliares associados com o fato espe- cífico de aplicativo. No exemplo, o ponteiro de faceta PA[42] é um identi- ficador (por exemplo, um identificador numérico) indicando uma locali- zação de armazenamento dos dados específicos de aplicativo auxilia- res associados com SA.3, por exemplo, uma localização de armazena- mento de uma entrada de agenda representando detalhes do encon- tro. O ponteiro de faceta PA[42] pode estar associado com um tipo parti- cular de dados (por exemplo, dados de agenda) baseado em sua in- clusão na estrutura gráfica específica de aplicativo A desde que a es- trutura gráfica específica de aplicativo A está associada com o softwa- re de planejamento de agenda. Em outros exemplos, um ponteiro de faceta pode incluir informação de identificação adicional especificando um tipo dos dados específicos de aplicativo auxiliares, de modo que os ponteiros de faceta podem ser utilizados para representar diferentes tipos de dados específicos de aplicativo auxiliares (por exemplo, vários tipos de arquivo utilizáveis por um aplicativo de processamento de tex- to). A estrutura gráfica de dados pode ser utilizada para encontrar da- dos específicos de aplicativo auxiliares via os ponteiros de faceta, en- quanto evitando de forma redundante armazenar dados específicos de aplicativo auxiliares dentro da estrutura gráfica de dados.
[0043] Em adição ao ponteiro de faceta armazenado em um nó de gráfico sujeito, um fato específico de aplicativo ainda é representado pelas bordas conectando o nó de gráfico sujeito com um ou mais nós de gráfico objeto. Apesar de um único nó de gráfico sujeito poder ser incluído em mais do que um fato centrado no usuário, a estrutura grá- fica de dados 200 contudo de forma eficiente armazena somente um único registro de nó para o nó de gráfico sujeito. Este registro de nó inclui a lista de todas as bordas de saída do nó, o que poder reduzir um requerimento de espaço de armazenamento comparado com ar- mazenar uma cópia do nó de gráfico sujeito para cada fato centrado no usuário no qual ele ocorre. A lista de bordas de saída pode ficar vazia para alguns nós, por exemplo, para um substantivo que é so- mente um nó de gráfico objeto. A lista de bordas de saída de um nó de gráfico sujeito inclui um ou mais registros de borda definindo uma ou mais bordas. A uma ou mais bordas podem ser armazenadas em re- gistros de borda, por exemplo, ERA[261] e ERA[775]. Apesar de a FIGURA 10A apresentar um registro de nó com duas bordas de saída, um re- gistro de nó pode incluir qualquer número de bordas para adequada- mente representar relações com outros nós da estrutura gráfica de da- dos, por exemplo, zero, uma, ou três ou mais bordas.
[0044] Uma borda a partir de um nó de gráfico sujeito até um nó de gráfico objeto especifica um identificador de registro de nó de gráfi- co objeto associado com o nó de gráfico objeto, por exemplo, o ID de nó de gráfico objeto “A[55]” do registro de nó NR A[42]. O identificador de registro de nó de gráfico objeto é um identificador de registro de nó consistente indicando uma localização de armazenamento de um re- gistro de nó definindo o nó de gráfico objeto, por exemplo, NRA[55]. Uma borda pode ainda especificar um identificador de domínio de ob- jeto de uma estrutura de gráfico constituinte armazenando o nó de grá- fico objeto, por exemplo ID de domínio de objeto “A” do registro de nó NRA[42] indicando que NRA[55] está armazenado na estrutura de gráfico constituinte A. Por consequência, a FIGURA 10B apresenta o registro de nó NRA[42] conectado via bordas representadas pelos registros ERA[261] e ERA[375], com nós representados pelos registros de nó NR A[55] e NRA[21]. Retornando para a FIGURA 10A, uma borda a partir de um nó de gráfico sujeito até um nó de gráfico objeto (por exemplo, como representado não registro de borda) pode ainda especificar um tipo de relação entre o nó de gráfico sujeito e o nó de gráfico objeto. Por exemplo, o registro de borda ERA[261] define um tipo de relação RA[261] que pode indicar uma relação “encontro programado”, enquanto o re- gistro de borda ERA[375] define um tipo de relação RA[375] que pode indi- car uma relação “compromisso assumido”.
[0045] Em adição a representar o fato específico de aplicativo via o ponteiro facetado e a lista de bordas de saída, o nó de gráfico sujeito pode representar o um ou mais enriquecimentos do fato específico de aplicativo. Em um exemplo, o um ou mais enriquecimentos incluem um valor de confiança do nó, por exemplo, confiança do nó CA[42] do regis- tro de nó NRA[42]. A confiança do nó CA[42] pode indicar uma relevância do registro de nó CA[42] (e os nós de gráfico sujeito que ele representa) para o usuário. Por exemplo, o valor de confiança pode ser determina- do por um modelo e aprendizado de máquina treinado para reconhe-
cer relevância para o usuário, por aprender a distinguir amostras rotu- ladas de dados relevantes a partir de amostras rotuladas de dados ir- relevantes. Por exemplo, o treinamento do modelo de aprendizado de máquina pode incluir treinamento supervisionado com amostras rotu- ladas pelo usuário (por exemplo derivadas a partir de realimentação direta do usuário durante a aplicação com um aplicativo), e/ou treina- mento não supervisionado. No exemplo da FIGURA 10A, a confiança do nó CA[42] do registro de no NRA[42] pode ser um valor maior do que a confiança do nó CA[55] do registro de nó NRA[55], indicando que se acre- dita que o registro de nó NRA[42] é mais relevante para o usuário do que o registro de nó NRA[55].
[0046] No exemplo apresentado na FIGURA 10A, o um ou mais enriquecimentos ainda incluem um valor de confiança de borda asso- ciado com cada borda, por exemplo, a confiança de borda KA[261] do registro de borda ERA[261]. Como com os valores de confiança de nó, um valor de confiança de borda pode indicar uma relevância de uma borda particular (por exemplo, ERA[261]) para o usuário. Diferentes bor- das entre um par de nós podem possuir diferentes valores de confian- ça. Por exemplo, o registro de borda ERA[261] indicando uma relação de “encontro programado” pode possuir uma confiança de borda inferior KA[261] do que a confiança de borda KA[375] do registro de borda ERA[375] indicando um “compromisso assumido”, por exemplo, se acreditar-se que encontro programado é mais relevante para o usuário do que o compromisso.
[0047] Em adição a um valor de confiança do nó e valor de confi- ança de borda, o um ou mais enriquecimentos do fato específico de aplicativo pode incluir outros dados independentes de aplicativo e/ou específicos de aplicativo. Por exemplo, o registro de nó NRA[42] inclui metadados de acesso MA[42] indicando informação associada com acessar o registro de nó NRA[42] e dados específicos de aplicativo as-
sociados (por exemplo, dados indicados pelo ponteiro facetado PA[42]). O metadados de acesso MA[42] podem incluir uma marca de tempo in- dicando uma hora e data de um acesso mais recente, um valor delta indicando uma alteração causada por um acesso mais recente, ou quaisquer outros metadados adequados.
[0048] A estrutura gráfica de dados pode adicionalmente armaze- nar, para um fato centrado no usuário, uma ou mais marcas definindo dados auxiliares associados com o fato centrado no usuário. Por exemplo, o registro de nó NRA[42] ainda inclui as marcas TA[42] que po- dem incluir outros dados auxiliares adequados associados com o nó. Por exemplo, quando o nó NRA[42] representa uma pessoa (por exem- plo, associada com uma entrada em de agenda de contatos), as mar- cas TA[42] podem incluir um apelido da pessoa e um endereço de email alternativo da pessoa.
[0049] Os fatos centrados no usuário e os nós / bordas dos fatos centrados no usuário podem ser enriquecidos com semântica adicional armazenada nas marcas. Por exemplo, as marcas podem ser utiliza- das para armazenar um ou mais enriquecimentos de um fato centrado no usuário. Uma marca armazenada dentro de um registro de nó pode ser associada com um fato centrado no usuário no qual o registro de nó representa um nó gráfico sujeito ou no qual o registro de nó repre- senta um nó gráfico objeto. Alternativamente ou adicionalmente, uma marca armazenada dentro de um registro de nó pode estar associada com o próprio registro de nó (por exemplo, associada com um nó grá- fico sujeito representado pelo registro de nó e/ou com um nó gráfico objeto representado pelo registro de nó), ou com uma ou mais bordas conectadas com o registro de nó. Em outros exemplos, as marcas po- dem ser utilizadas para armazenar metadados de um fato centrado no usuário (por exemplo, ao invés ou em adição aos metadados de aces- so do fato centrado no usuário). Por exemplo, quando um fato centra-
do no usuário está associado com uma marca de tempo, a marca de tempo pode opcionalmente ser armazenada entre as marcas do fato centrado no usuário.
[0050] Em alguns exemplos, a uma ou mais marcas são marcas que podem ser pesquisadas e a estrutura gráfica de dados é configu- rada para permitir pesquisa para um fato centrado no usuário por pes- quisar entre as marcas que podem ser pesquisadas (por exemplo, pesquisa por uma marca armazenando uma cadeia de pesquisa, ou pesquisa por uma marca armazenando um tipo particular de dados).
[0051] As estruturas gráficas de dados podem ser representadas como várias estruturas gráficas constituintes específicas de aplicação, em que os nós das estruturas gráficas constituintes são referenciadas de forma cruzada através das estruturas gráficas constituintes (por exemplo, por bordas de referência cruzada e referências cruzadas de nó, como descrito acima com referência às FIGURAS 8A a 9B). A FIGURA 11A apresenta outra vista ilustrativa da mesma estrutura de dados centrada em nó 200 apresentada na FIGURA 10A, focando em um nó NRA[43] representando os nós gráficos sujeito SA.7, SA.8, e o no gráfico objeto OA.4. A lista de bordas que saem a partir de NRA[43] inclui um registro de borda ERA[213] indicando um ID de nó de gráfico objeto “A[61]”, representando um nó na mesma estrutura gráfica constituinte A. A lista e bordas que saem a partir de NRA[43] ainda inclui um registro de borda ERA[435] indicando um ID do domínio de objeto “B” e um ID de nó de gráfico objeto “B[61]”, representando um nó na estrutura gráfica constituinte B. O registro de borda ERA[435] é, portanto, uma borda de referência cruzada. A FIGURA 1B graficamente representa a mesma estrutura gráfica de dados que as FIGURAS 1A a 9B, incluindo NRA[43] e suas bordas de saída para NRA[61] e NRB[25].
[0052] A FIGURA 12A apresenta outra vista ilustrativa da estrutura de dados centrada em nó 200 apresentada na FIGURA 10A, focando em um nó NRA[67] representando os nós gráficos objeto OA.1, OA.5, OA.6, e OA.7. Observe que a lista de bordas de saída a partir do nó NR A[67] está fazia, devido a NRA[67] representar somente nós de gráfico objeto, os quais somente possuem bordas de entrada. Entretanto, NRA[67] ain- da inclui uma referência cruzada representando o reconhecimento da estrutura gráfica de dados de que OA.1, OA.5, OA.6, e OA.7 representam o mesmo nó que OB.3 da estrutura gráfica constituinte B. Por consequên- cia, a referência cruzada especifica um ID do domínio de referência “B” indicando a estrutura gráfica constituinte B, e um ID de nó de referên- cia “B[76]” indicando que o nó de referência cruzada OB.3 está armaze- nado no registro de nó NRB[76] de outra estrutura de dados centrada em nó representando a estrutura gráfica constituinte B. A FIGURA 12B graficamente representa a mesma estrutura gráfica de dados apresen- tada nas FIGURAS 1A a 9B. Observe que o registro de nó NRA[67] é representando na mesma posição que os nós gráficos objeto OA.5, e OA.6, das FIGURAS 5B e 6B, a qual também é mesma posição que o nó gráfico objeto OA.5 da FIGURA 8B.
[0053] A estrutura de dados centrada em nó 200 é independente de aplicativo, pelo fato de que ela pode ser utilizada para rastrear fatos a partir de dois ou mais serviços de computador potencialmente não relacionados, os quais podem possuir diferentes formatos de dados nativos. A estrutura de dados centrada em nó 200 pode armazenar fatos específicos de aplicativo de qualquer serviço de computador por armazenar um ponteiro facetado, permitindo aos fatos centrados no usuário incluírem fatos específicos de aplicativo mesmo quando os fa- tos específicos de aplicativo podem ser armazenados em um formato específico de aplicativo. Além disso, a estrutura de dados centrada em nó 200 permite a representação de fatos centrados no usuário que são definidos em um contexto de dois ou mais serviços de computador, por armazenar referências cruzadas na forma de identificadores de domí-
nio (por exemplo, identificadores de domínio de objeto em listas e bor- das de saída de cada nó de gráfico sujeito, ou identificadores de do- mínio de referência em uma representação de uma referência cruzada do nó) e identificadores de nó (por exemplo, identificadores de nó grá- fico objeto e identificadores de nó de referência). Além disso, a estrutu- ra de dados centrada em nó 200 é centrada em usuário, à medida que uma estrutura de dados centrada em nó diferente 200 pode ser defini- da para cada usuário. A estrutura de dados centrada em nó 200 pode ser adequada para armazenar fatos centrados em usuário em contex- tos onde vários usuários diferentes interagem com um serviço de computador compartilhado (por exemplo, um navegador da rede). De- vido à estrutura de dados centrada em nó 200 armazenar fatos especí- ficos de aplicativo via o ponteiro facetado e representar relações com os fatos em outras estruturas de dados via referências cruzadas, ela pode estar apta a armazenar fatos centrados em usuário com respeito a um usuário em uma estrutura gráfica de dados centrada em usuário particular para o usuário, sem requerer acesso de gravação para da- dos específicos de aplicativo do serviço de computador compartilhado.
[0054] A FIGURA 13 apresenta um ambiente de computação ilus- trativo 1300 para manter uma base de conhecimentos AI centrada em usuário. O ambiente de computação 1300 inclui uma máquina de ar- mazenamento de gráfico 1301 comunicativamente acoplada, via uma rede 1310, com vários computadores provedores de dados específico de aplicativo (por exemplo, computadores provedores de dados espe- cíficos de aplicativo 1321, 1322 e 1329, etc.). A máquina de armaze- namento de gráfico 1301 e os vários computadores provedores de da- dos específicos de aplicativo são ainda comunicativamente acoplados, via a rede 1310, com um ou mais computadores de usuário de um usuário (por exemplo, computador de usuário 1340 e computador de usuário 1341). Por exemplo, o computador de usuário 1340 pode ser um computador de mesa do usuário, enquanto o computador de usuá- rio 1341 pode ser um dispositivo de computação móvel do usuário. A rede 1310 pode ser qualquer rede de computadores adequada (por exemplo, a Internet).
[0055] Em alguns exemplos, o ambiente de computação 1300 po- de adicionalmente incluir um assistente pessoal computadorizado 1600 comunicativamente acoplado com a máquina de armazenamento de gráfico 1301 via a rede 1310. O assistente pessoal computadoriza- do 1600 pode ser implementado de qualquer maneira adequada, por exemplo, como um dispositivo de computação tudo-em-um, ou como um aplicativo de software executável em qualquer dispositivo de com- putação adequado, tal como um computador de mesa ou um telefone móvel. O assistente pessoal computadorizado pode ser um serviço de computador independente ou um componente de assistência de outro serviço de computador (por exemplo, aplicativo de email / agenda, mecanismo de pesquisa, ambiente de desenvolvimento integrado).
[0056] Em alguns exemplos, o ambiente de computação 1300 po- de adicionalmente incluir serviços em nuvem 1311. Os serviços em nuvem 1311 podem ser comunicativamente acoplados via a rede 1310 com outros dispositivos de computador do ambiente de computação
1300. Os serviços em nuvem 1311 podem incluir um ou mais dispositi- vos de computação configurados para executar quaisquer tarefas ade- quadas. Em alguns exemplos, os serviços em nuvem 1311 podem ser utilizados descarregar funcionalidade de outro dispositivo de computa- ção para os serviços em nuvem 1311. Por exemplo, a funcionalidade de máquina de armazenamento de gráfico 1301, do computador pro- vedor de dados específicos de aplicativo 1321, do computador de usu- ário 1340, e/ou do assistente pessoal computadorizado 1600 pode ser descarregada para os serviços em nuvem 1311.
[0057] Em um exemplo, os serviços em nuvem 1311 são configu-
rados para executar tarefas de processamento de linguagem natural. A máquina de armazenamento de gráfico 1301 pode ser configurada pa- ra executar uma tarefa de processamento de linguagem natural por descarregar a tarefa para os serviços em nuvem 1311. Por conse- quência, a máquina de armazenamento de gráfico 1301 pode descar- regar dados de entrada da tarefa de processamento de linguagem na- tural para os serviços em nuvem 1310, e receber, a partir dos serviços em nuvem 1310, dados de saída indicando um resultado da tarefa de processamento de linguagem natural. Alternativamente ou adicional- mente, o assistente pessoal computadorizado 1600 pode ser configu- rado para executar uma tarefa de processamento de linguagem natural com a assistência de processamento de serviços em nuvem 1311. De um modo similar, os dispositivos de computação do ambiente de com- putação 1300 podem descarregar qualquer tarefa(s) adequada para os serviços em nuvem 1311, em que os serviços em nuvem 1311 são configurados para executar a tarefa(s) descarregada.
[0058] A máquina de armazenamento de gráfico 1301 pode ser implementada como uma única máquina (por exemplo, um servidor computador). Alternativamente, a funcionalidade da máquina de arma- zenamento de gráfico 1301 pode ser distribuída através de vários dife- rentes dispositivos físicos (por exemplo, por implementar a máquina de armazenamento de gráfico 1301 como um serviço virtual proporciona- do por um grupamento de computadores). Cada computador provedor de dados específicos de aplicativo (por exemplo, o computador prove- dor de dados específicos de aplicativo 1321) pode estar associado com um ou mais serviços de computador utilizados pelo usuário, por exemplo, aplicativos de rede social, aplicativos de email, aplicativos de planejamento de agenda, suítes de escritório, funções de aparelho da internet das coisas, aplicativos de pesquisa da Rede, etc.
[0059] À medida que o usuário interage via o computador de usuá-
rio 1340 e/ou o computador de usuário 1341 com um ou mais serviços de computador, os computadores provedores de dados específicos de aplicativo podem agregar informações relacionadas com a interação do usuário com o um ou mais serviços de computador.
Em um exem- plo, onde o usuário interage com um aplicativo de rede social, o com- putador provedor de dados específicos de aplicativo 1322 pode ser comunicativamente acoplado com um servidor proporcionando funcio- nalidade do aplicativo de rede social.
Por consequência, quando o usuário interage com o aplicativo de rede social, o servidor pode pro- porcionar uma indicação da interação para o computador provedor de dados específicos de aplicativo 1322. Por sua vez, o computador pro- vedor de dados específicos de aplicativo 1322 pode proporcionar um ou mais fatos centrados em usuário para a máquina de armazenamen- to de gráfico 1301. Em exemplos, o computador do usuário 1340 pode executar um ou mais programas aplicativos que podem proporcionar fatos centrados em usuário adicionais agregados no computador do usuário 1340 para a máquina de armazenamento de gráfico 1301, causando que o computador do usuário 1340 atue como um provedor de dados específicos de aplicativo adicional.
Em exemplo, o computa- dor do usuário 1340 pode executar um ou mais programas aplicativos que podem solicitar fatos centrados em usuário a partir da máquina de armazenamento de gráfico 1301, por exemplo, por enviar uma consul- ta.
Apesar de os exemplos acima incluírem o usuário interagindo com o um ou mais serviços de computador via o computador do usuário 1340, em outros exemplos, o usuário pode interagir com o um ou mais serviços de computador via o computador do usuário 1341 ao invés ou em adição ao computador do usuário 1340. Por exemplo, quando o computador do usuário 1340 atua como um provedor de dados especí- ficos de aplicativo por proporcionar um ou mais fatos para a máquina de armazenamento de gráfico 1301, o computador do usuário 1341 pode executar um ou mais programas aplicativos para solicitar fatos centrados em usuário a partir da máquina de armazenamento de gráfi- co 1301. Desta maneira, a máquina de armazenamento de gráfico 1301 pode agregar fatos centrados em usuário a partir de vários dife- rentes computadores de usuário do usuário, enquanto também permi- tindo que cada um dos diferentes computadores de usuário solicite e utilize os fatos centrados em usuário.
[0060] Em um exemplo, o computador de usuário 1340 pode exe- cutar um assistente pessoal computadorizado configurado para se comunicar via a rede 1310 com a máquina de armazenamento de grá- fico 1301. O assistente pessoal computadorizado pode receber consul- tar a partir de um usuário via uma NUI configurada para receber con- sultas em linguagem natural de áudio e/ou de texto. O assistente pes- soal computadorizado pode enviar uma ou mais consultas para a má- quina de armazenamento de gráfico 1301, de modo a receber um ou mais centrados em usuário emitidos pela máquina de armazenamento de gráfico 1301 em resposta às consultas. Alternativamente ou adicio- nalmente, o assistente pessoal computadorizado pode agregar fatos centrados em usuário (por exemplo, interesses do usuário indicados na conversa via a NUI), causando que o computador de usuário 1340 atue como um provedor de dados específicos de aplicativo. Em alguns casos, a máquina de armazenamento de gráfico 1301 e um provedor de dados específicos de aplicação podem ser administrados por uma única entidade ou organização, caso no qual o provedor de dados es- pecíficos de aplicativo pode ser referido como um provedor de dados específicos de aplicativo de “primeira parte”. Em outros casos, a má- quina de armazenamento de gráfico 1301 e um provedor de dados es- pecíficos de aplicativo podem ser administrados por diferentes entida- des ou organizações, caso no qual o provedor de dados específicos de aplicativo pode ser referido como um provedor de dados específicos de aplicativo de “terceira parte”.
[0061] A FIGURA 14 apresenta um método ilustrativo 1400 para manter uma base de conhecimentos de inteligência artificial centrada em usuário. A base de conhecimentos AI centrada em usuário pode ser adequada para armazenar fatos centrados em usuário sobre um usuário interagindo com vários diferentes serviços de computador pos- sivelmente não relacionados. Além disso, a base de conhecimentos AI centrada em usuário pode ser utilizável para responder consultas so- bre os fatos centrados em usuário. Manter a base de conhecimentos AI centrada em usuário inclui construir a base de conhecimentos por armazenar um ou mais fatos centrados em usuário, atualizar a Bse de conhecimentos AI centrada em usuário por adicionar fatos adicionais, e atualizar a base de conhecimento AI centrada em usuário à medida que ela é consultada e utilizada (por exemplo, para armazenar respos- tas colocadas em memória cache para uma consulta para permitir res- posta subseqüente rápida da consulta).
[0062] Em 1401, o método 1400 inclui manter uma estrutura gráfi- ca de dados incluindo vários fatos centrados em usuário associados com um usuário. Cada fato centrado em usuário pode possuir um for- mato de dados independente de aplicativo, por exemplo, incluindo um nó de gráfico sujeito, um nó de gráfico objeto, e uma borda conectando o nó de gráfico sujeito com o nó de gráfico objeto. A estrutura gráfica de dados pode ser representada como várias estruturas gráficas cons- tituintes específicas de aplicativo, em que nós das estruturas gráficas constituintes são referenciados de forma cruzada através das estrutu- ras gráficas constituintes. A estrutura gráfica de dados pode ser arma- zenada utilizando qualquer formato de dados independente de aplica- tivo, tal como a estrutura de dados centrada em nó 200 descrita acima com referência às FIGURAS 10A a 12B.
[0063] Em 1402, o método 1400 opcionalmente inclui automatica-
mente enviar uma solicitação para um provedor de dados específicos de aplicativo para proporcionar fatos centrados em usuário. Enviar uma solicitação para um provedor de dados específicos de aplicativo pode ser feito de qualquer maneira adequada, por exemplo, através de uma rede de computadores via uma API do provedor de dados especí- ficos de aplicativo. A solicitação pode indicar que fatos centrados em usuário específicos devem ser proporcionados (por exemplo, fatos centrados em usuário a partir de uma faixa particular de tempos e/ou de datas, fatos centrados em usuário que ainda não foram proporcio- nados pelo provedor de dados específicos de aplicativo, e/ou fatos centrados em usuário com uma marca associada particular). Alternati- vamente, a solicitação pode indicar que todos os fatos centrados em usuário disponíveis devem ser proporcionados. O envio de uma solici- tação para um provedor de dados específicos de aplicativo e o rece- bimento de fatos centrados em usuário em resposta à solicitação po- dem ser referidos neste documento como “puxar” dados a partir do provedor de dados específicos de aplicativo. Fatos centrados em usu- ário adicionais podem ser solicitados de acordo com qualquer período adequado, por exemplo, periodicamente. Em adição a proporcionar fatos centrados em usuário adicionais em reposta a uma solicitação, um provedor de dados específicos de aplicativo dos vários provedores de dados específicos de aplicativo pode enviar fatos entrados em usu- ário na ausência de uma solicitação para fazer isso, o que pode ser referido neste documento como “empurrar” fatos centrados em usuário para a base de conhecimentos AI centrada em usuário.
[0064] Em 1403, o método 1400 inclui receber um primeiro fato centrado em usuário a partir de um primeiro provedor de dados espe- cíficos de aplicativo associado com um primeiro serviço de computador (por exemplo, devido a puxar dados a partir do provedor de dados es- pecíficos de aplicativo, ou devido ao provedor de dados específicos de aplicativo empurrar fatos centrados em usuário para a base de conhe- cimentos AI centrada em usuário). Como descrito em 1404, fatos cen- trados em usuário, tal como o primeiro fato centrado em usuário, po- dem ser recebidos via um protocolo de atualização (por exemplo, uma API de atualização) restringindo um formato de armazenamento do fato centrado em usuário ao formato de dados independente de aplica- tivo. Por exemplo, a API de atualização pode restringir o formato de armazenamento ao uso de um formato de armazenamento de dados particular tal como uma implementação do formato de registro de nó descrito acima. Além disso, a API de atualização pode restringir uma utilização máxima do disco dos dados armazenados, e/ou requerer que os dados sejam armazenados em um formato de dados criptogra- fado.
[0065] Em 1405, o método 1400 inclui adicionar o primeiro fato centrado em usuário para a estrutura de gráfica de dados no formato de dados independente de aplicativo. Por exemplo, adicionar o primei- ro fato centrado em usuário para a estrutura gráfica de dados pode incluir traduzir o primeiro fato centrado em usuário para o formato de registro de nó descrito acima com referência às FIGURAS 10A a 12B, e armazenar o registro de nó resultante em uma localização de arma- zenamento associada com um identificador de registro de nó do regis- tro de nó. O primeiro fato centrado em usuário pode ser um fato espe- cífico de aplicativo. Por consequência, em 1406, a estrutura gráfica de dados pode armazenar um ponteiro de faceta indicando dados especí- ficos de aplicativo auxiliares associados com o fato específico de apli- cativo, como descrito acima com respeito às FIGURAS 10A a 12B.
[0066] Em 1406, a estrutura gráfica de dados opcionalmente pode armazenar um enriquecimento independente de aplicativo, por exem- plo, um fato independente de aplicativo associado com o fato específi- co de aplicativo. O enriquecimento pode ser incluído no fato centrado em usuário como recebido a partir do provedor de dados específicos de aplicativo. Alternativamente ou adicionalmente, o fato centrado em usuário como proporcionado pelo provedor de dados específicos de aplicativo pode ser pré-processador para incluir um ou mais enrique- cimentos via um fluxo de enriquecimento incluindo um ou mais adap- tadores de enriquecimento. Quando a estrutura gráfica de dados ar- mazena marcas associadas com um fato centrado em usuário (por exemplo, marcas armazenadas em um registro de nó), o um ou mais enriquecimentos podem ser incluídos entre as marcas.
[0067] Em um exemplo, um adaptador de enriquecimento inclui um modelo de aprendizado de máquina configurado para receber um fato específico de aplicativo, para reconhecer uma relevância do fato espe- cífico de aplicativo para um usuário, e para emitir um valor e confiança numericamente indicando a relevância. O modelo de aprendizado de máquina pode ser qualquer modelo adequado, por exemplo, um mode- lo estatístico ou uma rede neural. O modelo de aprendizado de máqui- na pode ser treinado, por exemplo, baseado em realimentação do usuário. Por exemplo, quando o modelo de aprendizado de máquina é uma rede neural, a saída da rede neural pode ser avaliada via uma função objetiva indicando um nível de erro de uma saída de relevância predita pela rede neural, se comparado com uma relevância real indi- cada na realimentação de usuário. O gradiente das funções objetivas pode ser calculado em termos da derivada de cada função em cama- das da rede neural utilizando propagação de realimentação. Por con- sequência, pesos da rede neural podem ser ajustados baseado no gradiente (por exemplo, via descida de gradiente) para minimizar um nível de erro indicado pela função objetiva. Em alguns exemplos, um modelo de aprendizado de máquina pode ser treinado para um usuário particular baseado na realimentação direta proporcionada pelo usuário enquanto interagindo com um aplicativo de software, por exemplo, in-
dicando relevância de resultados de pesquisa em um aplicativo de pesquisa. Por consequência, o modelo de aprendizado de máquina treinado pode estar apto a estimar a relevância para o usuário. Em al- guns exemplos, o modelo de aprendizado de máquina pode ser treina- do baseado em realimentação indireta a partir do usuário, por exem- plo, por estimar uma similaridade de conteúdo relevante para outro conteúdo que o usuário indicou como sendo relevante no passado.
[0068] Em outro exemplo, um adaptador de enriquecimento inclui um programa de linguagem natural para reconhecer características de linguagem natural de um fato específico de aplicativo. Por exemplo, o programa de linguagem natural pode determinar um nó de gráfico su- jeito e/ou nó de gráfico objeto para o fato específico de aplicativo, por reconhecer uma característica de linguagem natural como estando as- sociada com um nó de gráfico sujeito /ou objeto existente. Em alguns exemplos, o programa de linguagem natural pode determinar um tipo de relação para uma borda para o fato específico de aplicativo. Em alguns exemplos, o programa de linguagem natural pode determinar uma ou mais marcas de um nó de gráfico sujeito e/ou nó de gráfico objeto para o fato específico de aplicativo. O programa de linguagem natural pode ser configurado para reconhecer características incluindo: 1) entidades nomeadas (por exemplo, pessoas, organizações, e/ou objetos), 2) intenções (por exemplo, um sentimento ou meta associada com uma característica de linguagem natural), 3) eventos e tarefas (por exemplo, uma tarefa que o usuário pretende executar em um momento posterior), 4) tópicos (por exemplo, um tópico que um fato centrado em usuário contém ou representa), 5) localizações (por exemplo, uma localização geográfica referida por um fato centrado em usuário, ou um local em que um fato centrado em usuário foi gerado), e/ou 6) datas e horas (por exemplo, uma marca de tempo indicando um evento passado ou um evento futuro programado associado com um fato centrado em usuário).
[0069] Os enriquecimentos associados com os fatos centrados em usuário podem proporcionar semânticas enriquecidas dos fatos cen- trados em usuário (por exemplo, informação significativa adicional, além de informação proporcionada pela estrutura de conexão formada por uma borda entre um nó de gráfico sujeito e um nó de gráfico objeto do fato centrado em usuário). A estrutura gráfica de dados pode reco- nhecer e incluir fatos centrados em usuário adicionais que podem ser derivados a partir das semânticas enriquecidas (por exemplo, baseado em um ou mais enriquecimentos adicionados no fluxo de enriqueci- mento). Por consequência, adicionar um fato centrado em usuário in- cluindo um ou mais enriquecimentos pode ainda incluir reconhecer um fato centrado em usuário adicional baseado no um ou mais enriqueci- mentos, e adicionar o fato centrado em usuário adicional para a estru- tura gráfica de dados no formato de dados independente de aplicativo.
[0070] Reconhecer o fato centrado em usuário adicional baseado no um ou mais enriquecimentos pode incluir reconhecer que um enri- quecimento do um ou mais enriquecimentos corresponde a outro fato centrado em usuário já incluído na estrutura gráfica de dados (por exemplo, devido ao enriquecimento estar associado com um substan- tivo sujeito ou substantivo objeto do outro fato centrado em usuário). Alternativamente ou adicionalmente, reconhecer o fato centrado em usuário adicional baseado no um ou mais enriquecimentos pode incluir reconhecer um primeiro enriquecimento do um ou mais enriquecimen- tos que está associado com um substantivo sujeito não ainda envolvi- do em quaisquer fatos centrados em usuário, reconhecer que um se- gundo enriquecimento do um ou mais enriquecimentos ETA associado com um substantivo objeto, reconhecer uma relação entre o substanti- vo sujeito e o substantivo objeto, e adicionar um novo fato centrado em usuário envolvendo o substantivo objeto e o substantivo sujeito para a estrutura gráfica de dados. Em alguns exemplos, reconhecer o fato centrado em usuário adicional baseado no um ou mais enriquecimen- tos inclui reconhecer qualquer relação adequada entre o um ou mais enriquecimentos, e adicionar um fato centrado em usuário representa- do a relação reconhecida.
[0071] Em um exemplo, cada um dentre um primeiro nó e um se- gundo nó inclui um enriquecimento especificando uma entidade nome- ada reconhecida, em que ambos os enriquecimentos especificam a mesma entidade nomeada. Por consequência, a estrutura gráfica de dados pode armazenar uma borda conectando o primeiro nó com o segundo nó, e o tipo de relação da borda pode indicar que os dois nós foram deduzidos como estando associados com a mesma entidade. Alternativamente ou adicionalmente, a estrutura gráfica de dados pode armazenar uma referência cruzada do nó em cada nó, indicando que o outro nó está associado com a mesma entidade nomeada. Alternati- vamente, a estrutura gráfica de dados pode modificar o primeiro nó para incluir dados do segundo nó e apagar o segundo nó, desse modo evitando o armazenamento redundante de dados do segundo nó por desmoronar a representação para incluir um único nó ao invés de dois nós.
[0072] Em outro exemplo, um primeiro nó inclui um enriquecimento especificando uma entidade nomeada, e uma borda pode ser adicio- nada conectando o primeiro nó com um segundo nó que representa a mesma entidade nomeada. Em outro exemplo, uma borda pode ser adicionada entre o primeiro nó e o segundo nó que possuem o mesmo tópico associado. Em outro exemplo, uma borda pode ser adicionada entre o primeiro nó e um segundo nó que possuem o mesmo tempo e/ou localização associada. Por exemplo, uma borda pode ser adicio- nada entre um primeiro nó que se refere a uma dada de agenda espe- cífica (por exemplo, em uma marca) e um segundo nó que foi criado na data de agenda específica (por exemplo, como indicado pelos me- tadados de acesso). Em outro exemplo, uma borda pode ser adiciona- da entre dois que foram criados na mesma localização ou que se refe- rem à mesma localização.
[0073] Em 1407, adicionar um fato centrado em usuário para a es- trutura gráfica de dados no formato de dados independente de aplica- tivo opcionalmente inclui armazenar o fato centrado em usuário como um fato centrado em usuário criptografado, em que o acesso ao fato centrado em usuário criptografado é restrito por uma credencial. Por exemplo, a credencial pode ser uma credencial de conta de usuário associada com o usuário, e o fato centrado em usuário criptografado somente pode ser legível pelo proprietário da credencial de conta do usuário. Em outro exemplo, a credencial pode ser uma credencial de conta empresarial associada com um usuário em uma rede de compu- tadores empresarial, e o fato centrado em usuário criptografado so- mente pode ser legível pelo dono da credencial de conta empresarial e por um ou mais administradores da rede de computadores empresari- al. O fato centrado em usuário recebido a partir do provedor de dados específicos de aplicativo pode ser recebido como um fato centrado em usuário criptografado, criptografado utilizando a credencial. Assim, o fato centrado em usuário criptografado pode ser armazenado na mes- ma forma criptografada utilizando a mesma credencial, sem decripto- grafar e novamente criptografar o fato centrado em usuário criptogra- fado. Além disso, o fato centrado em usuário criptografado pode ser criptografado com um esquema de criptografia homomorfo, caso em que o fato centrado em usuário criptografado pode ser modificado (por exemplo, para adicionar enriquecimentos) sem decriptografar e nova- mente criptografar o fato centrado em usuário criptografado, antes de armazenar o fato centrado em usuário criptografado modificado. Alter- nativamente, o fato centrado em usuário recebido a partir do provedor de dados específicos de aplicativo pode ser criptografado utilizando uma credencial diferente, caso em que o fato centrado em usuário re- cebido pode ser decriptografado e novamente criptografado utilizando a credencial, antes de armazenar o fato centrado em usuário nova- mente criptografado resultante. Alternativamente, o fato centrado em usuário recebido a partir do provedor de dados específicos de aplicati- vo pode não ser criptografado, caso em que o fato centrado em usuá- rio recebido pode ser criptografado utilizando a credencial antes de armazenar o fato centrado em usuário criptografado resultante.
[0074] Em adição a armazenar fatos centrados em usuário como fatos centrados em usuário criptografados, a estrutura gráfica de da- dos pode proporcionar privacidade e segurança adicional por esvaziar a estrutura gráfica de dados para remover um ou mais fatos centrados em usuário, em resposta a um acionador de esvaziamento. Por exem- plo, o acionador de esvaziamento pode ser um comando do usuário para remover o um ou mais fatos centrados em usuário criptografados (por exemplo, fatos centrados em usuário em reposta a uma consulta particular, ou fatos centrados em usuário a partir de uma faixa particu- lar e tempos / datas). Alternativamente ou adicionalmente, o comando do usuário pode indicar que toda a base de conhecimentos AI centra- da em usuário deve ser removida. Em outro exemplo, o acionador de esvaziamento pode ser um acionador automaticamente programado, por exemplo, ocorrendo periodicamente, ou ocorrendo uma vez em um tempo particular programado no futuro.
[0075] Em 1408, o método 1400 inclui receber um segundo fato centrado em usuário a partir de um segundo provedor de dados espe- cíficos de aplicativo associado com um segundo serviço de computa- dor, diferente do primeiro serviço de computador. O segundo fato cen- trado em usuário pode ser recebido de qualquer maneira adequada (por exemplo, como descrito acima com respeito a receber o primeiro fato centrado em usuário).
[0076] Em 1409, o método 1400 inclui adicionar o segundo fato centrado em usuário para a estrutura gráfica de dados no formato de dados independente de aplicativo. O segundo fato centrado em usuá- rio pode ser adicionado para a estrutura gráfica de dados de qualquer maneira particular (por exemplo, como descrito acima com respeito a adicionar o primeiro fato centrado em usuário para a estrutura gráfica de dados). O formato de dados independente de aplicativo pode facili- tar uma base de conhecimentos AI centrada em usuário com utilizada aprimorada (por exemplo, em responder consultas do usuário) compa- rado com uma base de conhecimentos que somente inclui fatos cen- trados em usuário derivados a partir de um único serviço de computa- dor. Apesar de o primeiro fato centrado em usuário e o segundo fato centrado em usuário poderem ser recebidos a partir de dois serviços de computador diferentes, os quais podem possuir formatos de dados nativos incompatíveis diferentes, tanto o primeiro fato centrado em usuário como o segundo fato centrado em usuário podem ser salvos no mesmo formato de dados independente de aplicativo. Além disso, apesar de os exemplos acima incluírem fatos centrados em usuário a partir de dois serviços de computador diferentes, não existe limite para o número de diferentes serviços de computador que podem contribuir para a base de conhecimentos. Adicionalmente, não existe requeri- mento de que os diferentes serviços de computador estejam relacio- nados uns com os outros ou com a base de conhecimentos AI centra- da em usuário de qualquer modo particular (por exemplo, os diferentes serviços de computador e a base de conhecimentos AI centrada em usuário podem estar mutuamente não relacionados e proporcionados por diferentes provedores de serviço de computador). Por consequên- cia, a base de conhecimentos AI centrada em usuário pode incluir fa- tos centrados em usuário derivados a partir de vários diferentes servi-
ços de computador, desse modo incluindo mais fatos centrados em usuário a partir de mais diferentes contextos. Além disso, as referên- cias cruzadas entre estruturas gráficas constituintes específicas de aplicativo permitem aos fatos centrados em usuário expressarem rela- ções entre aspectos dos diferentes serviços de computador, o que po- de ainda aprimorar a utilizada comparada com manter várias diferen- tes bases de conhecimentos separadas sem referências cruzadas.
[0077] Em alguns casos, o segundo fato centrado em usuário pode possuir o mesmo substantivo sujeito que um primeiro fato centrado em usuário já armazenado na estrutura gráfica de dados, enquanto pos- suindo um substantivo objeto e borda sendo diferentes destes do pri- meiro fato centrado em usuário. Por consequência, adicionar o segun- do fato centrado em usuário pode incluir reconhecer que o segundo fato centrado em usuário possui o mesmo substantivo sujeito que o primeiro fato centrado em usuário, e modificar um registro de nó repre- sentado o primeiro fato centrado em usuário para incluir um novo re- gistro de borda representado uma nova borda de saída a partir do substantivo sujeito para o substantivo objeto do segundo fato centrado em usuário. Por conseqüência, o registro de nó pode inicialmente re- presentar o primeiro fato centrado em usuário, e o registro de nó pode subsequentemente ser atualizado para adicionalmente representar o segundo fato centrado em usuário.
[0078] Em 1410, o método 1400 opcionalmente incluir emitir um subconjunto de fatos centrados em usuário incluídos na estrutura grá- fica de dados em resposta a uma consulta, em que o subconjunto de fatos centrados em usuário é selecionado para satisfazer um conjunto de restrições definidas pela consulta. A resposta à consulta pode ser feita de qualquer maneira adequada, por exemplo, de acordo com o método 1500 da FIGURA 15.
[0079] A FIGURA 15 apresenta um método ilustrativo 1500 para responder a uma consulta. Uma consulta define um conjunto de restri- ções que podem ser satisfeitas por um subconjunto dos fatos centra- dos em usuário na base de conhecimentos AI centrada em usuário. As restrições podem incluir quaisquer características adequadas do nó de gráfico sujeito, do nó de gráfico objeto, e da borda definindo um fato centrado em usuário, tal como qualquer uma das seguintes: 1) um tipo de um nó de gráfico sujeito /ou objeto incluído em um fato centrado em usuário (por exemplo, nó de gráfico sujeito representa uma pessoa); 2) uma identidade de um nó de gráfico sujeito e/ou objeto incluído no fato centrado em usuário (por exemplo, o nó de gráfico objeto representa uma mensagem de email específica); 3) um tipo de borda conectando o nó de gráfico sujeito e o nó de gráfico objeto; 4) um valor de confian- ça do nó de gráfico sujeito, do nó de gráfico objeto, e/ou da borda; 5) uma faixa de datas e/ou horas do dia associada com o nó de gráfico sujeito, com o nó de gráfico objeto, e/ou com a borda; e/ou 6) quais- quer outras características do nó de gráfico sujeito, do nó de gráfico objeto, e/ou da borda, tal como metadados de acesso e/ou marcas do nó de gráfico sujeito. Uma resposta para uma consulta inclui um sub- conjunto dos fatos centrados em usuário que satisfaz o conjunto de restrições, ou uma indicação de que o conjunto de restrições não po- deria ser satisfeito.
[0080] Uma consulta pode ser recebida de qualquer maneira ade- quada. Por exemplo, uma consulta pode ser recebida via um protocolo de consulta (por exemplo, uma API de consulta) que permite que um cliente programaticamente defina o conjunto de restrições em um for- mato de consulta legível por computador. Alternativamente, uma con- sulta pode ser recebida como uma consulta em linguagem natural e convertida para um conjunto de restrições por reconhecer restrições utilizando uma técnica de processamento de linguagem natural. Por exemplo, a base de conhecimentos AI centrada em usuário pode estar apta a treinar um modelo de incorporação de semântica para repre- sentar consultas em linguagem natural e conjuntos de restrições como pontos dentro de um espaço latente aprendido pelo modelo incorpo- rando semântica, de modo a traduzir as consultas em linguagem natu- ral para conjuntos de restrições por reconhecer um ponto no espaço latente correspondente a uma consulta em linguagem natural, e emi- tindo um conjunto de restrições correspondendo a um ponto no espaço latente. Alternativamente ou adicionalmente, a base de conhecimentos AI centrada em usuário pode estar apta a utilizar um modelo de análi- se (por exemplo, análise de dependência) para corresponder uma es- trutura sintática de uma consulta em linguagem natural com uma con- sulta padrão, e para especificar um conjunto de restrições por preen- cher detalhes da consulta padrão utilizando detalhes da consulta em linguagem natural.
[0081] Em 1501, o método 1500 compreende reconhecer uma consulta que foi anteriormente servida como uma consulta colocada em memória cache e emitir a resposta colocada em memória cache para servir a consulta colocada em memória cache por responder com o mesmo subconjunto de fatos centrados em usuário que satisfez a consulta colocada em memória cache quando ela foi anteriormente recebida. Assim, em 1507, o método 1500 inclui emitir o subconjunto anteriormente colocado em memória cache de fatos centrados em usuário. Tal colocação em memória cache pode permitir recuperação eficiência (por exemplo, imediata) da resposta colocada em memória cache se a consulta colocada em memória cache for recebida nova- mente no futuro.
[0082] Se a consulta não tiver sido ainda servida, então, em 1502, o método 1500 inclui selecionar um subconjunto de fatos centrados em usuário que satisfazem o conjunto de restrições definidas pela consul- ta. O conjunto de restrições pode ser satisfeito por atravessar a estru-
tura gráfica de dados para encontrar fatos centrados em usuário que pelo menos parcialmente satisfazem as restrições. A estrutura gráfica de dados representa relações estruturadas entre os fatos centrados em usuário (por exemplo, dois fatos possuindo o mesmo substantivo sujeito podem ser representados por um único registro de nó dentro de um gráfico constituinte e referenciados de forma cruzada entre gráficos constituintes). Assim, pode ser mais eficiente atravessar a estrutura gráfica de dados para encontrar fatos centrados em usuário satisfa- zendo a consulta do que seria exaustivamente pesquisar a coleção de fatos centrados em usuário. Por exemplo, se um usuário interagiu fre- quentemente com uma outra pessoa particular, a interação freqüente pode indicar que a outra pessoa é provavelmente relevante para o usuário. Por consequência, podem existir mais fatos centrados em usuário possuindo esta pessoa como sujeito ou objeto, e enquanto atravessando as bordas da estrutura gráfica de dados, encontrar um nó representando a outra pessoa pode ser mais provável devido às várias bordas levando para e a partir do nó representando a outra pes- soa.
[0083] Atravessar a estrutura gráfica de dados pode incluir uma “caminhada aleatória” ao longo das bordas da estrutura gráfica de da- dos. A caminha aleatória pode iniciar em um contexto atual do usuário, utilizado neste documento para se referir a qualquer ponto inicial ade- quado para responder a uma consulta. Em exemplo, um contexto atual do usuário pode ser definido pela consulta (por exemplo, por incluir uma palavra-chave do contexto indicando um nó de gráfico sujeito a utilizar como o ponto inicial). Em outros exemplos, um contexto atual do usuário pode ser um contexto específico do aplicativo (por exemplo, “responder email”) adequado para determinar um nó de gráfico sujeito a utilizar como o ponto inicial.
[0084] Quando encontrando um nó durante a caminha aleatória
(por exemplo, no ponto inicial), o nó pode ser examinado para deter- minar se ele satisfaz as restrições da consulta. Se ele satisfizer, ele pode ser emitido no subconjunto de fatos centrados em usuário em resposta à consulta. Então, após encontrar o nó, a caminha aleatória pode continuar, de modo que mais nós são encontrados. Para encon- trar mais nós, a caminhada aleatória pode continuar ao longo de bor- das de saída do nó encontrado. Determinar se continuar ao longo de uma borda de saída pode ser uma determinação aleatória ponderada, incluindo avaliar um peso representando uma probabilidade de seguir a borda e amostrar se segue a borda baseado no peso e em dados aleatórios, por exemplo, um algoritmo de “seleção de roda de roleta” implementado utilizando um gerador de número aleatório. O peso de uma borda conectando um nó de gráfico sujeito com um nó de gráfico objeto pode ser determinado baseado no valor de confiança do nó de gráfico sujeito, da borda, e/ou do nó de gráfico objeto. Em um exem- plo, os valores de confiança podem ser interpretados como indicações de relevância para o usuário, de modo que bordas que são mais rele- vantes ou que conectam mais nós relevantes são mais prováveis de serem seguidas. O peso da borda pode ainda ser determinado basea- do em outros dados do nó de gráfico sujeito, nó de gráfico objeto, e borda, por exemplo, por avaliar uma relevância de uma borda para a consulta baseado em uma comparação em linguagem natural do tipo de borda com uma ou mais características de linguagem natural da consulta.
[0085] Por especificar restrições (por exemplo, características do nó de gráfico sujeito, do nó de gráfico objeto, e da borda definindo um fato centrado em usuário) um usuário pode estar apto a formular várias consultas a serem respondidas utilizando a base de conhecimentos AI centrada em usuário.
[0086] Em adição a selecionar um subconjunto de fatos centrados em usuário satisfazendo restrições especificadas em uma consulta, a base de conhecimentos AI centrada em usuário pode permitir respon- der a outras consultas especializadas. A FIGURA 15 apresenta duas consultar especializadas ilustrativas: consultas fragmentas e consultas de classificação.
[0087] Em um exemplo, em 1504, a consulta é uma consulta fatia- da indicando um nó inicial e um parâmetro de distância. A resposta para uma consulta fatiada é um subconjunto de fatos centrados em usuário incluindo fatos centrados em usuário alcançados por iniciar no nó inicial e atravessar as bordas da estrutura gráfica de dados para formar caminhos com comprimento iguais a no máximo o parâmetro de distância longe a partir do nó inicial. Por exemplo, se o parâmetro de distância for estabelecido para 1, a resposta para a consulta irá in- cluir o nó inicial e todos os nós uma vez removidos diretamente conec- tados com o nó inicial; e se o parâmetro de distância for estabelecido para 2, a resposta para a consulta irá incluir o nó inicial, todos nós re- movidos uma vez, e todos os nós removidos duas vezes diretamente conectados com pelo menos um dos nós removidos uma vez. Uma consulta fatiada pode representar uma coleção de fatos centrados em usuário que são potencialmente relevantes para um fato centrado em usuário particular de interesse (por exemplo, um fato centrado em usuário envolvendo o nó inicial), por meio de ser conectado com o nó inicial por um caminho de no máximo o parâmetro de distância. Por estabelecer um parâmetro de distância pequeno, a resposta pode re- presentar uma grande coleção de fatos que estão indiretamente rela- cionados com o nó inicial. Como uma alternativa a especificar um nó inicial, uma consulta também pode utilizar um contexto atual do usuá- rio como o nó inicial, desse modo representando uma coleção de fatos centrados em usuário relacionados com o contexto atual do usuário.
[0088] Em outro exemplo, em 1505, a consulta é uma consulta de classificação para classificar os vários fatos centrados em usuário ba- seado pelo menos em um valor de confiança associado com cada fato centrado em usuário, e o subconjunto de fatos centrados em usuário é classificado em ordem de acordo com o valor de confiança de cada fato centrado em usuário. Uma consulta de classificação pode ser in- terpretada como agrupando fatos centrados em usuário que são pro- váveis de serem relevantes para o usuário, sem impor restrições es- pecíficas adicionais em relação à consulta. Em adição a classificar os vários fatos centrados em usuário baseado em um valor de confiança, os vários fatos centrados em usuário podem ser classificados baseado em outras características. Por exemplo, os fatos centrados em usuário podem ser ponderados como mais relevantes se eles forem mais re- centes (por exemplo, de acordo com uma marca de tempo associada com cada fato). Em outro exemplo, uma consulta de classificação po- de incluir uma palavra-chave e fatos centrados em usuário podem ser ponderados como mais relevantes se eles incluírem pelo menos um nó possuindo a palavra-chave entre suas marcas.
[0089] Apesar de a FIGURA 15 descrever dois exemplos de con- sultas especializadas, uma base de conhecimentos AI centrada em usuário permite outros tipos de consulta especializada não represen- tados na FIGURA 15. Por exemplo, o subconjunto de fatos centrados em usuário em resposta a uma consulta fatiada pode adicionalmente ser classificado pelo valor de confiança como em uma consulta de classificação, desse modo combinando funcionalidade dos dois tipos de consulta. Em outro exemplo, uma consulta é uma consulta pivô in- dicando um nó inicial. A resposta para uma consulta pivô é um sub- conjunto de fatos centrados em usuário incluindo fatos centrados em usuário alcançados por iniciar no nó inicial e atravessar bordas da es- trutura gráfica de dados para formar caminhos com um comprimento não limitado (ou arbitrário, grande). Uma consulta pivô pode ser inter-
pretada como uma consulta fatiada que não limita o comprimento de caminhos alcançados pelo nó inicial, por exemplo, onde o parâmetro de distância é infinito. Em alguns exemplos, uma resposta para uma consulta pode incluir uma visualização do subconjunto de resposta de fatos centrados em usuário como um diagrama de gráfico (por exem- plo, como na FIGURA 2A), que pode ser anotada ou animada para in- cluir qualquer informação adequada dos fatos centrados em usuário (por exemplo, dados auxiliares específicos de aplicativo indicados por um ponteiro facetado de um nó incluído em um dos fatos centrados em usuário).
[0090] Uma consulta pode definir uma restrição de tempo, de mo- do que um subconjunto de fatos centrados em usuário emitido em res- posta à consulta é restrito aos fatos centrados em usuário associados com marcas de tempo indicando tempos dentro de uma faixa definida pela consulta. Em alguns exemplos, o tempo é uma propriedade ine- rente de nós e bordas na estrutura gráfica de dados (por exemplo, ca- da fato centrado em usuário dos vários fatos centrados em usuário in- cluídos na estrutura gráfica de dados está associado com uma ou mais marcas de tempo). A uma ou mais marcas de tempo associadas com um nó ou borda podem indicar um tempo quando o fato centrado em usuário foi criado, acessado, e/ou modificado (por exemplo, metada- dos de acesso de um nó incluídos no fato centrado em usuário). Alter- nativamente ou adicionalmente, a uma ou mais marcas de tempo po- dem indicar um tempo referido em um fato centrado em usuário (por exemplo, um tempo no qual um encontro está agendando, ou qualquer outra marca de tempo adicionada por um adaptador de enriquecimento no fluxo de enriquecimento). A uma ou mais marcas de tempo opcio- nalmente podem ser armazenadas como marcas que podem ser pes- quisadas.
[0091] Em alguns exemplos, a uma ou mais restrições definidas por uma consulta incluem uma restrição de tipo de resposta, e, por consequência, o subconjunto de fatos centrados em usuário selecio- nados em resposta à consulta pode incluir somente fatos centrados em usuário que satisfazem a restrição de tipo de resposta. Por exem- plo, uma restrição de tipo de resposta pode restringir uma característi- ca de um nó de gráfico sujeito, nó de gráfico objeto, e/ou borda do fato centrado em usuário. Por exemplo, uma restrição de tipo de resposta pode indicar um tipo particular de nós de gráfico sujeito e/ou objeto, tal como: 1) o sujeito ou o objeto é uma pessoa; 2) tanto o sujeito como o objeto são colegas de trabalho; 3) o sujeito é um local, 4) o objeto é um tópico; ou 5) o sujeito é uma pessoa e o objeto é um evento pro- gramado. Alternativamente ou adicionalmente, a restrição de tipo de resposta pode indicar um ou mais sujeitos e/ou objetos particulares, tal como 1) o sujeito é o usuário; 2) o sujeito é o chefe do usuário, Alice; ou 3) o objeto é qualquer um dentre Alice, Bob, ou Charlie. Alternati- vamente ou adicionalmente, a restrição de tipo de resposta pode indi- car um ou mais tipos particulares de borda, por exemplo, por indicar um tipo de relação tal como uma relação “envia email”, uma relação “jantaram juntos, ou uma relação “tópico investigado”.
[0092] Em alguns exemplos, a uma ou mais restrições definidas pela consulta podem incluir uma restrição de contexto gráfico, e, por consequência, o subconjunto de fatos centrados em usuário selecio- nado em reposta à consulta pode incluir somente fatos centrados em usuário que estão relacionados com um fato centrado em usuário de contextualização na base de conhecimentos AI centrada em usuário que satisfaz a restrição de contexto gráfico. Dois fatos centrados em usuários diferentes podem ser descritos neste documento como rela- cionados baseado em quaisquer características adequadas da estrutu- ra gráfica de dados que pode indicar uma relação possível. Por exem- plo, quando uma restrição de contexto de gráfico indica que a chefe do usuário, Alice, o fato centrado em usuário de contextualização pode ser qualquer fato possuindo um nó representando Alice como um nó de gráfico sujeito ou como um nó de gráfico objeto. Por consequência, o subconjunto de fatos centrados em usuário selecionado em reposta à consulta pode incluir outros fatos centrados em usuário possuindo nós de gráfico sujeito e/ou objeto que estão diretamente conectados, via uma borda, com o nó representando Alice. Alternativamente ou adicionalmente, o subconjunto de fatos centrados em usuário pode incluir fatos centrados em usuário que estão indiretamente relaciona- dos com Alice, um fato centrado em usuário possuindo um nó de gráfi- co sujeito e/ou objeto que está indiretamente conectado, via um cami- nho de duas ou mais bordas, com o nó representando Alice. Em al- guns casos, uma consulta incluindo uma restrição de contexto de grá- fico pode ser uma consulta fatiada, e o subconjunto de fatos centrados em usuário pode incluir somente fatos centrados em usuário que este- jam relacionados com o fato centrado em usuário de contextualização e que pode ser alcançado dentro de no máximo uma distância particu- lar de um nó do fato centrado em usuário de contextualização. Em ou- tros exemplos, uma consulta incluindo uma restrição de contexto de gráfico pode ser uma consulta de classificação, e o subconjunto de fatos centrados em usuário pode incluir uma seleção de fatos centra- dos em usuário que são mais prováveis de serem relevantes para o fato centrado em usuário de contextualização, por exemplo, fatos cen- trados em usuário que estão conectados com o fato centrado em usu- ário de contextualização via vários caminhos diferentes, ou via um ca- minho incluindo bordas possuindo altos valores de confiança.
[0093] Responder uma consulta pode incluir atravessar a estrutura gráfica de dados baseado na uma ou mais marcas de tempo associa- das com cada fato centrado em usuário, o que pode ser referido neste documento como travessia de uma dimensão de tempo da estrutura gráfica de dados. Por exemplo, responder a uma consulta pode incluir iniciar em um nó associado com um tempo definido pela consulta, e atravessar o gráfico por seguir qualquer borda com uma marca de tempo indicando um tempo posterior, de modo que as marcas de tem- po aumenta na mesma ordem que a travessia. Em outros exemplos, responder a uma consulta pode incluir atravessar a estrutura gráfica de dados por seguir qualquer borda com uma marca de tempo prece- dendo uma data definida pela consulta. Além disso, a propriedade de tempo inerente de cada nó e borda na estrutura gráfica de dados pode permitir uma vista de linha de tempo da estrutura gráfica de dados. Em exemplos, uma resposta a uma consulta pode incluir uma vista de li- nha de tempo da estrutura gráfica de dados, por exemplo, fatos cen- trados em usuário dispostos em ordem cronológica por uma marca de tempo associada com cada fato centrado em usuário.
[0094] Como outro exemplo de uma consulta especializada, a es- trutura gráfica de dados pode ser configurada para permitir pesquisa para um fato centrado em usuário baseado em uma marca que pode ser pesquisa pela estrutura gráfica de dados para o fato centrado em usuário. Pesquisar por um fato centrado em usuário baseado em uma marca que pode ser pesquisa inclui atravessar o gráfico de qualquer maneira adequada (por exemplo, como descrito acima com respeito às consultas fatiadas ou às consultas pivô), e enquanto atravessando o gráfico, emitir quaisquer fatos centrados em usuário encontrados du- rante a travessia para os quais a estrutura gráfica armazena a marca que pode ser pesquisada.
[0095] Como outro exemplo de uma consulta especializada, a es- trutura gráfica de dados pode ser configurada para servir a uma con- sulta de contexto de usuário, por pesquisar por fatos centrados em usuário que podem ser relevantes para um contexto atual de um usuá- rio. Por consequência, a consulta de contexto do usuário pode incluir uma ou mais restrições relacionadas com o contexto atual do usuário. Por exemplo, a uma ou mais restrições podem incluir uma restrição de tempo baseada em um tempo atual no qual a consulta de contexto de usuário é servida. Alternativamente ou adicionalmente, a uma ou mais restrições podem incluir uma restrição de contexto de gráfico relacio- nada com o contexto atual do usuário, por exemplo, uma restrição de contexto de gráfico especificando uma tarefa na qual o usuário pode estar envolvido.
[0096] Em alguns exemplos, a uma ou mais restrições da consulta do contexto do usuário podem ser baseadas em dados de estado de um serviço de computador que emitiu a consulta de contexto de usuá- rio. Em alguns exemplos, os dados de estado do serviço de computa- dor incluem uma característica de linguagem natural (por exemplo, uma intenção, entidade ou tópico), e a uma ou mais restrições incluem uma indicação da característica de linguagem natural. Por exemplo, quando o serviço de computador é um programa de email, a uma ou mais restrições de uma consulta de contexto de usuário pode incluir: 1) uma restrição de tempo baseada em um tempo no qual um usuário começa a compor um email; 2) uma restrição de contexto de gráfico indicando um tópico de um sujeito do email; e 3) uma restrição de con- texto de gráfico indicando um recebedor do email. Por consequência, um subconjunto de fatos centrados em usuário selecionado em res- posta à consulta de contexto de usuário pode incluir fatos centrados em usuário que são atuais (baseado na marca de tempo) e que são prováveis de estarem relacionados com a tarefa do usuário de compor o email (baseado no tópico e no receptor).
[0097] Após selecionar um sujeito de fatos centrados em usuário em reposta à consulta, o subconjunto de fatos centrados em usuário pode ser colocado em memória cache para permitir resposta imediata para a mesma consulta no futuro. Por consequência, em 1506, o mé-
todo 1500 opcionalmente compreende colocar em memória cache a consulta como uma consulta colocada em memória cache e coloca em memória cache o subconjunto de fatos centrados em usuário em res- posta à consulta como uma resposta colocada em memória cache. En- tão, em 1507, o método 1500 inclui emitir o subconjunto de fatos cen- trados em usuário em resposta à consulta, o que pode incluir emitir o subconjunto selecionado de fatos centrados em usuário diretamente, ou após colocar em memória cache o subconjunto selecionado de fa- tos centrados em usuário, emitindo o subconjunto resultante colocado em memória cache de fatos centrados em usuário.
[0098] Quando a estrutura gráfica de dados inclui fatos centrados em usuário criptografados, a estrutura gráfica de dados pode ser filtra- da para criar uma estrutura gráfica de dados filtrada excluindo um ou mais fatos centrados em usuário criptografados, e incluir outros fatos centrados em usuário sem divulgar que o um ou mais fatos centrados em usuário criptografados foram excluídos. Por exemplo, os fatos cen- trados em usuário criptografados a serem excluídos podem ser seleci- onados pelo usuário (por exemplo, por selecionar fatos centrados em usuário criptografados em resposta a uma consulta, ou por selecionar fatos centrados em usuário criptografados a partir de uma faixa de tempos / dados particulares). A estrutura gráfica de dados filtrada pode ainda ser utilizável para responder consultas, mas sem incluir na res- posta qualquer um dos fatos centrados em usuário criptografados. A estrutura gráfica de dados filtrada omite os fatos centrados em usuário excluídos sem indicar a ausência dos fatos centrados em usuário ex- cluídos de qualquer modo. Por exemplo, uma resposta não indicaria que um ou mais fatos centrados em usuário criptografados estavam presente, mas removidos. Ao invés disso, a resposta simplesmente omitiria o um ou mais fatos centrados em usuário criptografados, en- quanto possivelmente incluindo outros fatos centrados em usuário.
[0099] Uma base de conhecimentos AI centrada em usuário que alavanca a estrutura gráfica de dados descrita acima pode suportar interações aprimoradas entre um usuário e um ou mais serviços de computador. Um serviço de computador pode atuar como um provedor de dados específicos de aplicativo por proporcionar dados (por exem- plo, fatos centrados em usuário) para a base de conhecimentos AI centrada em usuário. Alternativamente ou adicionalmente, o serviço de computador pode utilizar a base de conhecimentos AI centrada em usuário de modo a responder uma consulta. Por exemplo, um serviço de computador pode estar apto a utilizar a base de conhecimentos AI centrada em usuário para proporcionar informação para um usuário (por exemplo, em resposta a uma consulta do usuário). Em alguns exemplos, um serviço de computador pode ser configurado para au- tomaticamente executar uma ação para ajudar um usuário baseado na base de conhecimentos AI centrada em usuário.
[00100] Quando cada serviço de computador dos vários serviços de computador contribui fatos centrados em usuário para a base de co- nhecimentos AI centrada em usuário, a base de conhecimentos AI centrada em usuário pode facilitar o compartilhamento de informações entre os vários serviços de computador. Por consequência, a base de conhecimentos AI centrada em usuário pode permitir que um ou mais serviços de computador ajudem o usuário de uma maneira coordena- da. Por exemplo, um primeiro serviço de computador pode proporcio- nar um ou mais fatos centrados em usuário para a base de conheci- mentos AI centrada em usuário, e um segundo serviço de computador pode executar uma ação para ajudar o usuário baseado no um ou mais fatos centrados em usuário. Desta maneira, o segundo serviço de computador pode proporcionar funcionalidade que é relevante para o primeiro serviço de computador, mesmo quando os dados requeridos para proporcionar tal funcionalidade não estão disponíveis diretamente dentro do segundo serviço de computador, e quando tal funcionalidade não está incluída no primeiro serviço de computador.
[00101] Exemplos de serviços de computador que podem utilizar a base de conhecimentos AI centrada em usuário incluem: 1) um assis- tente pessoal computadorizado; 2) um cliente de email; 3) um progra- ma de agenda / programação; 4) um programa de processamento de texto; 5) um programa de edição de apresentação; 6) um programa de planilha eletrônica; 7) um programa de diagramação / publicação; 8) um ambiente de desenvolvimento integrado (IDE) para programação de computador; 9) um serviço de rede social; 10) um ambiente de co- laboração de local de trabalho; e 11) um armazenado de dados em nuvem e programa de sincronização de arquivos. Entretanto, a utiliza- ção da base de conhecimentos AI centrada em usuário não está limi- tada aos exemplos acima de serviços de computador, e qualquer ser- viço de computador pode utilizar a base de conhecimentos AI centrada em usuário de qualquer maneira adequada, por exemplo, por propor- cionar dados e/ou por emitir consultas.
[00102] Os serviços de computador que utilizam a base de conhe- cimentos AI centrada em usuário pode ser serviços de computador de primeira parte elaborados e/ou administrados por uma organização ou entidade que administra a base de conhecimentos AI centrada em usuário, ou serviços de terceira parte elaborados e/ou administrados por uma organização ou entidade diferente. Os serviços de computa- dor podem utilizar a base de conhecimentos AI centrada em usuário via uma ou mais APIs da base de conhecimentos AI centrada em usu- ário (por exemplo, uma API de atualização e uma API de consulta), em que cada API pode ser utilizada por vários diferentes serviços de com- putador incluindo os serviços de computador de primeira parte e os serviços de computador de terceira parte.
[00103] A FIGURA 16 apresenta um serviço de computador ilustra-
tivo na forma de um assistente pessoal computadorizado 1600. O as- sistente pessoal computadorizado 1600 pode utilizar funcionalidade de uma base de conhecimentos AI centrada em usuário. Por exemplo, no ambiente de computação 1300 da FIGURA 13, o assistente pessoal computadorizado 1600 está comunicativamente acoplado com a má- quina de armazenamento de gráfico 1301 que implementa uma base de conhecimentos AI centrada em usuário. Por consequência, o assis- tente pessoal computadorizado pode ser configurado para interagir com a máquina de armazenamento de gráfico 1301 de modo a propor- cionar fatos centrados em usuário para a base de conhecimentos AI centrada em usuário e de modo a emitir consultas a serem servidas pela base de conhecimentos AI centrada em usuário. O assistente pessoal computadorizado 1600 pode ser um serviço de computador independente ou um componente de assistência de outro serviço de computador (por exemplo, aplicativo de email / agenda, mecanismo de pesquisa, ambiente de desenvolvimento integrado).
[00104] O assistente pessoal computadorizado 1600 inclui uma in- terface com o usuário em linguagem natural 1610 configurada para receber entrada do usuário e/ou consultas do usuário. A interface com o usuário em linguagem natural 1610 pode incluir um teclado ou qual- quer outro dispositivo de entrada de texto configurado para receber entrada do usuário na forma de texto. A interface com o usuário em linguagem natural 1610 pode incluir um microfone 1611 configurado para capturar áudio de fala. Por consequência, a entrada do usuário e/ou consultas do usuário recebidas pela interface com o usuário em linguagem natural 1610 podem incluir áudio de fala capturado pelo mi- crofone. Em alguns exemplos, a interface com o usuário em linguagem natural 1610 é configurada para receber áudio de fala do usuário e pa- ra emitir texto representando o áudio de fala do usuário. Alternativa- mente ou adicionalmente, a interface com o usuário em linguagem na-
tural 1610 pode incluir um dispositivo de entrada de tinta 1612 e a en- trada do usuário recebida pela interface com o usuário em linguagem natural 1610 pode incluir escrita à mão e/ou gestos do usuário captu- rados pelo dispositivo de entrada de tinta. “Dispositivo de entrada de tinta” pode ser utilizado neste documento para se referir a qualquer dispositivo ou combinação de dispositivos que pode permitir a um usu- ário proporcionar entrada de tinta. Por exemplo, um dispositivo de en- trada de tinta pode incluir qualquer dispositivo que permite ao usuário indicar uma série posições bidimensionais ou tridimensionais em rela- ção a um vídeo ou a qualquer superfície, por exemplo, 1) uma tela do toque capacitiva controlada pelo dedo de um usuário; 2) uma tela sen- sível ao toque capacitiva controlada por uma caneta stylus; 3) um dis- positivo de “pairar” incluindo uma caneta stylus e uma tela sensível ao toque configurada para detectar uma posição da caneta stylus quando a caneta stylus está próxima da tela sensível ao toque; 4) um mouse; ou 5) um controlador de jogo de vídeo. Em alguns exemplos, o disposi- tivo de entrada de tinta pode alternativamente ou adicionalmente inclu- ir uma câmera configurada para detectar gestos do usuário. Por exemplo, uma câmera pode ser configurada para detectar gestos ba- seado nos movimentos tridimensionais da mão do usuário. Alternati- vamente ou adicionalmente, uma câmera (por exemplo, uma câmera de profundidade) pode ser configurada para detectar movimentos da mão do usuário como posições bidimensionais em relação a uma su- perfície ou plano, por exemplo, em relação a um plano definido por um lado frontal de um cone de visualização da câmera.
[00105] O assistente pessoal computadorizado 1600 ainda inclui uma máquina de processamento de linguagem natural (NLP) 1620 configurada para emitir uma representação legível por computador da entrada do usuário e/ou da consulta do usuário recebida na interface com o usuário em linguagem natural 1610. Por consequência, quando a interface com o usuário em linguagem natural 1610 é configurada para receber entrada do usuário, a máquina NLP 1620 é configurada para emitir uma representação legível por computador da entrada do usuário; e quando a interface com o usuário em linguagem natural 1610 é configurada para receber uma consulta do usuário, a máquina NLP 1620 é configurada para emitir uma representação legível por computador de uma consulta baseada na consulta do usuário.
[00106] Quando a máquina NLP 1620 é configurada para emitir a representação legível por computador da consulta baseada na consul- ta do usuário, a máquina NLP 1620 pode ser ainda configurada para emitir uma intenção reconhecida do usuário baseada na consulta do usuário. Por consequência, a uma ou mais restrições definidas da consulta pela representação legível por computador pode incluir uma restrição baseada na intenção reconhecida do usuário.
[00107] A máquina NLP 1620 pode ser configurada para analisar uma elocução pelo usuário de modo a reconhecer intenções e/ou enti- dades definidas pela elocução. Uma elocução é qualquer entrada do usuário, por exemplo, uma sentença ou um fragmento de sentença, que pode ou não ser bem formada (por exemplo, com respeito à gra- mática, utilização de palavra, pronúncia e/ou ortografia). Uma intenção representa uma ação que o usuário deseja executar, a qual pode inclu- ir uma pergunta ou uma tarefa, por exemplo, fazer uma reserva em um restaurante, chamar um taxi, exibir um lembre em um tempo posterior, e/ou responder uma pergunta. Uma entidade pode incluir uma entida- de particular nomeada (por exemplo,a chefe do usuário Alice) ou um marcador de posição representando um tipo particular de entidade, por exemplo, uma pessoa, um animal, um colega de trabalho, um local, ou uma organização.
[00108] A máquina NLP 1620 pode ser configurada para utilizar quaisquer técnicas adequadas de processamento de linguagem natu-
ral. Por exemplo, a máquina NLP 1620 pode incluir um analisador de dependência e/ou um analisador de grupo de interesse para reconhe- cer uma estrutura gramatical de uma elocução. A máquina NLP 1620 pode adicionalmente ser configurada para reconhecer pares de valor- chave representando conteúdos semânticos de uma elocução, por exemplo, um tipo de entidade de uma elocução emparelhada com um nome de uma entidade específica deste tipo. Em alguns exemplos, componentes da máquina NLP 1620 (por exemplo, analisador de de- pendência) podem utilizar uma ou mais tecnologias de aprendizado de máquina. Exemplos não limitativos de tais tecnologias de aprendizado de máquina podem incluir Redes de Alimentação Antecipada, Redes Neurais Recorrentes (RNN), Memória Longa a Longo Prazo (LSTM), Redes Neurais Convolucionais, Máquinas de Vetor de Suporte (SVM), Redes Generativas Antagônicas (GAN), Autocodificadores de varia- ção, Aprendizado-Q, e árvores de decisão. Os vários identificadores, mecanismos, e outros blocos de processamento descritos neste do- cumento podem ser treinados via aprendizado supervisionado e/ou não supervisionado utilizando estas ou quaisquer outras tecnologias de aprendizado de máquina apropriadas para fazer as avaliações, de- cisões, identificações, etc., descritas. Entretanto, deve ser entendido que esta descrição não é pretendida para divulgar novas tecnologias para fazer tais avaliações, decisões, identificações, etc. Ao invés dis- so, esta descrição é pretendida para gerenciar recursos computacio- nais, e assim, é pretendida para ser compatível com qualquer tipo de módulo de processamento, incluindo módulos de processamento que ainda não foram desenvolvidos.
[00109] Em alguns exemplos, a máquina NLP 1620 pode ser confi- gurada para reconhecer um conjunto predefinido de intenções e/ou entidades. Alternativamente ou adicionalmente, a máquina NLP 1620 pode ser treinada baseado nas elocuções ilustrativas. Em alguns exemplos, a máquina NLP 1620 pode ser configurada para reconhecer uma nova intenção e/ou entidade por fornecer para a máquina NLP 1620 vários exemplos rotulados, em que um exemplo rotulado inclui uma nova intenção a ser reconhecida junto com uma elocução ilustra- tiva anotada para denotar entidades relevantes. A máquina NLP 1620 pode ser treinada para o propósito específico de analisar elocuções no contexto de assistente pessoal computadorizado 1600, de modo que a precisão e/ou performance da máquina NLP 1620 é otimizada para o assistente pessoal computadorizado 1600. Por exemplo, quando a máquina NLP 1620 é baseada em uma ou mais redes neurais, treinar a máquina NLP 1620 pode incluir treinar a uma ou mais redes neurais via diminuição de gradiente estocástico utilizando o algoritmo de pro- pagação retroativa.
[00110] Em alguns casos, a máquina NLP 1620 pode ser configura- da para reconhecer um idioma humano particular, por exemplo, Inglês. Alternativamente ou adicionalmente, a máquina NLP 1620 pode ser configurada para reconhecer vários idiomas humanos diferentes. Quando a máquina NLP 1620 é configurada para reconhecer vários idiomas humanos diferentes, a máquina NLP 1620 pode estar apta a processar elocuções incluindo palavras em vários idiomas diferentes.
[00111] Em alguns exemplos, o assistente pessoal computadoriza- do 1600 pode ser implementado como um dispositivo tudo-em-um con- tido dentro de um único gabinete. Por exemplo, o dispositivo de com- putação tudo-em-um pode incluir uma ou máquinas lógicas e uma ou mais máquinas de armazenamento mantendo instruções executáveis pelas máquinas lógicas para proporcionar a funcionalidade de interfa- ce com o usuário em linguagem natural 1610, a máquina NLP 1620, a máquina de identidade 1630, o adaptador de enriquecimento 1640, a máquina de atualização de base de conhecimentos 1650, a máquina de consulta a base de conhecimentos 1660, e o subsistema de saída
1670. Em alguns exemplos, o dispositivo de computação tudo-em-um pode adicionalmente incluir um ou mais dispositivos de entrada (por exemplo, microfone 1611 e/ou dispositivo de entrada de tinta 1612). Em alguns exemplos, o dispositivo de computação tudo-em-um pode incluir um ou mais dispositivos de saída (por exemplo, um vídeo e/ou um alto-falante incluídos no subsistema de saída 1670). Alternativa- mente ou adicionalmente, o dispositivo de computação tudo-em-um pode incluir um subsistema de comunicação configurado para comuni- cativamente se acoplar com outros serviços de computador (por exemplo, como parte do subsistema de saída 1670).
[00112] Em alguns exemplos, um ou mais componentes do assis- tente pessoal computadorizado 1600 (por exemplo, a interface com o usuário em linguagem natural 1610, a máquina NLP 1620, a máquina de identidade 1630, o adaptador de enriquecimento 1640, a máquina de atualização de base de conhecimentos 1650, a máquina de consul- ta a base de conhecimentos 1660, e/ou o subsistema de saída 1670) podem ser configurados para cooperar com um ou mais outros servi- ços de computador (por exemplo, outros dispositivos de computação) de modo a executar cálculos, transformar dados, e implementar a fun- cionalidade descrita acima dos um ou mais componentes.
[00113] Em um exemplo, o assistente pessoal computadorizado 1600 pode ser implementado através de dois ou mais diferentes dis- positivos de computação. Por exemplo, a máquina NLP 1620 pode descarregar uma ou mais tarefas de processamento de linguagem na- tural para um ou mais serviços em nuvem, por exemplo, os serviços em nuvem 1311 do ambiente de computação 1300 como apresentado na FIGURA 13. Por consequência, os serviços em nuvem 1311 podem ser configurados para processar linguagem natural como descrito aci- ma e retornar a representação legível por computador da entrada do usuário para o assistente pessoal computadorizado 1600 para ser emi-
tida na máquina NLP 1620. Em alguns exemplos, a máquina NLP 1620 pode parcialmente pré-processar a entrada do usuário antes de enviar a entrada pré-processada para ser ainda processada pelos ser- viços em nuvem 1311, e/ou pós-processar a representação legível por computador da entrada pré-processada recebida a partir dos serviços em nuvem 1311 antes de emitir uma representação pós-processada legível por computador da entrada pré-processada na máquina NLP
1620. Por exemplo, o serviço de computador remoto pode ser um ser- viço em nuvem proporcionando processamento em nuvem de entradas em linguagem natural, tal como o serviço de entendimento de lingua- gem MICROSOFT LUISTM.
[00114] Alternativamente ou em adição a descarregar funcionalida- de da máquina NLP 1620 para os serviços em nuvem 1311 da manei- ra descrita acima, qualquer outro componente(s) do assistente pessoal computadorizado 1600 pode similarmente ser configurado para des- carregar tarefas para serviços em nuvem 1311 ou para qualquer outro dispositivo(s) de computação (por exemplo,máquina de armazenamen- to de gráfico 1310, provedor de dados específicos de aplicativo 1321, e/ou computador do usuário 1340). Desta maneira, a funcionalidade de um componente do assistente pessoal computadorizado 1600 pode utilizar hardware e/ou software incluído no assistente pessoal compu- tadorizado 1600 em adição a utilizar outros dispositivos de computador e/ou serviços de computador.
[00115] Por exemplo, a máquina de atualização de base de conhe- cimentos 1650 pode ser configurada para descarregar tarefas para a máquina de armazenamento de gráfico 1310, por exemplo, adicionar novos fatos centrados em usuário para uma base de conhecimentos centrada em usuário. Por consequência, de modo a adicionar novos fatos centrados em usuário para a base de conhecimento centrada em usuário, a máquina de atualização de base de conhecimentos 1650 pode ser configurada para proporcionar fatos centrados em usuário, via a rede 1310, para a máquina de armazenamento de gráfico 1301, e receber um subconjunto de fatos centrados em usuário selecionados em resposta à consulta, o subconjunto de fatos centrados em usuário incluído na base de conhecimentos AI centrada em usuário implemen- tado pela máquina de armazenamento de gráfico 1301.
[00116] Alternativamente ou adicionalmente, a máquina de consulta a base de conhecimentos 1660 pode ser configurada para descarregar tarefas para a máquina de armazenamento de gráfico 1310, por exemplo, emitir consultas a serem servidas pela base de conhecimen- tos centrada em usuário. Por consequência, de modo a emitir uma consulta a ser servida pela base de conhecimentos centrada em usuá- rio, a máquina de consulta à base de conhecimentos 1660 pode ser configurada para proporcionar fatos centrados em usuário, via a rede 1310, para a máquina de armazenamento de gráfico 1301, e receber uma resposta baseada no subconjunto de fatos centrados em usuário (por exemplo, uma resposta de texto para a consulta baseada no sub- conjunto de fatos centrados em usuário).
[00117] O assistente pessoal computadorizado 1600 ainda incluir uma máquina de identidade 1630 configurada para associar a entrada do usuário com um usuário particular. A máquina de identidade 1630 pode utilizar qualquer informação adequada para determinar uma iden- tidade de um usuário. Por exemplo, quando a interface com o usuário em linguagem natural 1610 inclui um microfone e quando a entrada do usuário inclui áudio de fala, a máquina de identidade 1630 pode incluir um mecanismo de reconhecimento de alto-falante configurado para distinguir entre usuários baseado no áudio de fala. Alternativamente ou adicionalmente, quando o assistente pessoal computadorizado 1600 inclui uma câmera (por exemplo, como parte da interface com o usuá- rio em linguagem natural 1610), a máquina de identidade 1630 pode incluir um mecanismo de reconhecimento facial configurado para dis- tinguir entre usuários baseado nas fotografias de faces de usuário. Al- ternativamente ou adicionalmente, a máquina de identidade 1630 pode ser configurada para receber informação biométrica (por exemplo im- pressões digitais do usuário) e distinguir entre usuários baseada na informação biométrica. Alternativamente ou adicionalmente, a máquina de identidade 1630 pode ser configurada para solicitar que o usuário proporcione identificação (por exemplo, informação de acesso, tal co- mo nome de usuário e senha).
[00118] Em exemplos onde a base de conhecimentos AI centrada em usuário inclui um ou mais fatos centrados em usuário criptografa- dos, o acesso ao um ou mais fatos centrados em usuário criptografa- dos pode ser restrito por uma credencial associada com um usuário particular. Por consequência, um assistente pessoal computadorizado associado com o usuário particular pode precisar proporcionar a cre- dencial de modo a acessar (por exemplo, ler e/ou modificar) a base de conhecimentos AI centrada em usuário. Por consequência, a máquina de identidade 1630 pode ser configurada para identificar o usuário par- ticular e fornecer a credencial associada com o usuário particular. Por exemplo, a máquina de identidade 1630 pode armazenar a credencial, por exemplo, como um certificado digital, de modo a fornecer a cre- dencial sempre que o assistente pessoal computadorizado 1600 pro- porcionar fatos centrados em usuário para a base de conhecimentos AI centrada em usuário ou emitir consultas a serem servidas pela base de conhecimentos AI centrada em usuário.
[00119] Opcionalmente, em alguns exemplos, o assistente pessoal computadorizado 1600 ainda inclui um adaptador de enriquecimento 1640 configurado para emitir um enriquecimento baseado na represen- tação legível por computador da entrada do usuário, em que o fato centrado em usuário novo ou atualizado inclui o enriquecimento emiti-
do pelo adaptador de enriquecimento. Por exemplo, o adaptador de enriquecimento 1640 pode ser configurado para adicionar qualquer um dos enriquecimentos descritos acima com respeito à FIGURA 14, por exemplo, 1) entidades nomeadas, 2) intenções, 3) eventos e tarefas, 4) tópicos, 5) localizações, e/ou 6) datas e horas. Em alguns exem- plos, o adaptador de enriquecimento 1640 é um fluxo de enriqueci- mento incluindo vários adaptadores de enriquecimento, cada um con- figurado para emitir um enriquecimento, em que o fato centrado em usuário novo ou atualizado inclui todos os enriquecimentos emitidos por cada adaptador de enriquecimento do fluxo de enriquecimento.
[00120] Opcionalmente, em alguns exemplos, o assistente pessoal computadorizado 1600 ainda inclui uma máquina de atualização de base de conhecimentos 1650 configurada para atualizar uma base de conhecimentos AI centrada em usuário associada com o usuário parti- cular para incluir um fato centrado em usuário novo ou atualizado na representação legível por computador da entrada do usuário. A má- quina de atualização de base de conhecimentos 1650 pode atualizar a base de conhecimentos AI centrada em usuário via um protocolo de atualização (por exemplo, uma API de atualização). O protocolo de atualização pode ser utilizável por vários diferentes serviços de com- putador. O protocolo de atualização pode restringir um formato de ar- mazenamento do fato centrado em usuário novo ou atualizado para um formato de dados independente de aplicativo, como descrito acima com referência à FIGURA 14.
[00121] Opcionalmente, em alguns exemplos, o assistente pessoal computadorizado 1600 ainda inclui uma máquina de consulta de base de conhecimentos 1660 configurada para consultar uma base de co- nhecimentos de inteligência artificial centrada em usuário associada com o usuário particular e para emitir uma resposta baseada em um subconjunto de fatos centrados em usuário na base de conhecimentos de inteligência artificial centrada em usuário satisfazendo uma ou mais restrições definidas da consulta pela representação legível por compu- tador do usuário. A máquina de consulta de base de conhecimentos pode ser configurada para consultar a base de conhecimentos AI cen- trada em usuário via um protocolo de consulta (por exemplo, uma API de consulta) utilizável por vários diferentes serviços de computador.
[00122] Em alguns exemplos, a uma ou mais restrições definidas da consulta pela representação legível por computador podem incluir uma restrição de tipo de resposta, e, por consequência, o subconjunto de fatos centrados em usuário pode incluir somente fato centrados em usuário que satisfaçam a restrição de tipo de resposta. Alternativamen- te ou adicionalmente, a uma ou mais restrições definidas da consulta pela representação legível por computador podem incluir uma restrição de contexto gráfico, e, por consequência, o subconjunto de fatos cen- trados em usuário pode incluir somente fatos centrados em usuário que estão relacionados com um fato centrado em usuário de contextu- alização na base de conhecimentos AI centrada em usuário que satis- fazem a restrição de contexto gráfico. Por consequência, o subconjun- to de fatos centrados em usuário pode ser determinado como descrito acima com referência à FIGURA 15.
[00123] Em alguns exemplos, a consulta é uma consulta de contex- to de usuário para determinar um contexto atual do usuário. Por con- sequência, o subconjunto de fatos centrados em usuário pode incluir um ou mais fatos centrados em usuário se relacionando com o contex- to atual do usuário, como descrito acima com referência à FIGURA 15. Quando a consulta é uma consulta de contexto de usuário, a represen- tação legível por computador da consulta pode ser independente de qualquer consulta de usuário recebida na interface com o usuário em linguagem natural 1610 e/ou interpretada na máquina NLP 1620. Ao invés disso, a consulta de contexto de usuário pode ser emitida auto-
maticamente, baseada em quaisquer dados adequados disponíveis para o assistente pessoal computadorizado (por exemplo, dados de sensor tais como dados GPS, dados de hora / data, dados de estado do assistente pessoal computadorizado, e/ou dados de estado de qualquer outro serviço de computador cooperante (por exemplo, um serviço de computador configurado para compartilhar dados com o as- sistente pessoal computadorizado por proporcionar fatos centrados em usuário para uma base de conhecimentos AI centrada em usuário, e/ou um serviço de computador que pode ser controlado pelo assisten- te pessoal computadorizado)).
[00124] Opcionalmente, em alguns exemplos, o assistente pessoal computadorizado 1600 inclui um subsistema de saída 1670 configura- do para emitir dados, por exemplo, a resposta para a consulta emitida pela máquina de consulta de base de conhecimentos. Por exemplo, o subsistema de saída 1670 pode incluir um mecanismo de síntese de fala configurado para gerar áudio de fala baseado no subconjunto de fatos centrados em usuário em resposta à consulta, e um alto-falante configurado para emitir o áudio de fala. Em alguns exemplos, o subsis- tema de saída 1670 pode incluir um vídeo configurado para visualmen- te apresentar uma resposta de texto baseada no subconjunto de fatos centrados em usuário selecionado em resposta à consulta. Em alguns exemplos, o vídeo pode ser configurado para visualmente apresentar o subconjunto de fatos centrados em usuário diretamente em forma grá- fica (por exemplo, como uma representação gráfica de uma estrutura gráfica de dados incluindo o subconjunto de fatos centrados em usuá- rio, ou uma linha de tempo incluindo os fatos centrados em usuário dispostos em ordem cronológica).
[00125] Em alguns exemplos, a resposta emitida pela máquina de consulta à base de conhecimentos inclui instruções legíveis por com- putador configuradas para causar que um serviço de computador coo-
perante execute uma ação para ajudar ao usuário, baseado no sub- conjunto de fatos centrados em usuário na base de conhecimentos AI centrada em usuário satisfazendo a uma ou mais restrições definidas da consulta pela representação legível por computador. Por exemplo, o serviço de computador cooperante pode ser um aplicativo de softwa- re executando em um ou mais dispositivos implementando o assisten- te pessoal computadorizado. Em outros exemplos, o serviço de com- putador cooperante pode ser um serviço de computador em rede acessível via uma rede de computadores. Por consequência, o subsis- tema de saída 1670 pode incluir um dispositivo de comunicação (por exemplo, um rádio sem uso de fios) configurado para comunicativa- mente se acoplar com a rede de computadores de modo a transportar as instruções legíveis por computador para o serviço de computador cooperante.
[00126] Em alguns exemplos, a ação executada pelo serviço de computador cooperante para ajudar o usuário inclui modificar uma configuração de preferência do serviço de computador cooperante ba- seado no subconjunto de fatos centrados em usuário na base de co- nhecimentos AI centrada em usuário satisfazendo a uma ou mais res- trições definidas da consulta pela representação legível por computa- dor (por exemplo, quando a consulta inclui uma solicitação para alterar uma configuração de preferência particular).
[00127] Em alguns exemplos, a ação executada pelo serviço de computador cooperante para ajudar o usuário inclui visualmente apre- sentar uma representação de dados de estado do serviço de compu- tador cooperante, em que os dados de estado do serviço de computa- dor cooperante estão relacionados com o subconjunto de fatos centra- dos em usuário na base de conhecimentos de inteligência artificial centrada em usuário satisfazendo a uma ou mais restrições definidas da consulta pela representação legível por computador.
[00128] Apesar de a FIGURA 16 representar um assistente pessoal computadorizado independente, quaisquer outros serviços de compu- tador podem incluir qualquer subconjunto dos componentes represen- tados na FIGURA 16 (por exemplo, uma interface com o usuário em linguagem natural, uma máquina NLP, uma máquina de identidade, um adaptador de enriquecimento, uma máquina de atualização de ba- se de conhecimentos, uma máquina de consulta à base de conheci- mentos, e/ou um subsistema de saída). Tais componentes podem faci- litar a utilização da base de conhecimentos AI centrada em usuário como descrito com respeito ao assistente pessoal computadorizado (por exemplo, por proporcionar dados para a base de conhecimentos AI centrada em usuário e por servir consultas utilizando a base de co- nhecimentos AI centrada em usuário). Qualquer serviço de computa- dor que utilize a base de conhecimentos AI centrada em usuário é um assistente pessoal computadorizado, seja tal serviço um serviço inde- pendente ou um componente de assistência de outro serviço de com- putador com uma função principal diferente (por exemplo, aplicativo de email / agenda, mecanismo de pesquisa, ambiente de desenvolvimen- to integrado).
[00129] Em um exemplo, o usuário está compondo um email em um programa de email, com uma linha de assunto (“Relatório Semanal de Desenvolvimento de Widget” e a chefe do usuário, Alice, é selecionada como uma recebedora. O usuário pode clicar em um botão “Analítica” de modo a receber sugestões para completar o email. Por consequên- cia, o programa de email pode emitir uma consulta de contexto a ser servida pela base de conhecimentos AI centrada em usuário. A consul- ta de contexto pode indicar um estado do programa de email. Além disso, a consulta de contexto pode incluir uma ou mais características de linguagem natural baseada no estado do aplicativo (por exemplo, o conteúdo da linha de assunto do email). Por exemplo, a uma ou mais características de linguagem natural podem incluir uma intenção reco- nhecida (por exemplo, “encontrar informação”), um tópico reconhecido (“Widgets”) e uma entidade reconhecida (por exemplo, a chefe do usuário, Alice). Por consequência, o subconjunto de fatos centrados em usuário selecionado em resposta à consulta pode incluir fatos cen- trados em usuário que são relevantes para as interações do usuário com sua chefe, Alice, em adição aos fatos centrados em usuário que estão relacionados com “Widgets”.
[00130] Baseado no subconjunto de fatos centrados em usuário se- lecionados em resposta à consulta, o programa de email pode exibir uma ou mais sugestões baseadas no subconjunto de fatos centrados em usuário. Por exemplo, o programa de email pode exibir um ou mais arquivos relevantes que o usuário pode desejar consultar enquanto preparando o email e/ou anexar ao email, por exemplo, uma planilha eletrônica de “Relatório de Widget” e um arquivo de documento “notas de desenvolvimento de Widget”. Alternativamente ou adicionalmente, o programa de email pode exibir um ou mais links a partir do histórico de pesquisa na Rede pelo usuário que podem pertencer ao relatório se- manal em relação a “Widgets” e/ou a “Widgets” mais geralmente. Al- ternativamente ou adicionalmente, o programa de email pode exibir um ou mais emails relevantes, por exemplo, um email a partir de Alice di- zendo “por favor, inclua os custos estimados de desenvolvimento para o mês que vem neste relatório semanal”. Alternativamente ou adicio- nalmente, o programa de email pode exibir um ou mais endereços de email de outros usuários que podem ser relevantes para o email, por exemplo, o colega de Alice, Bob, e o especialista residente no produto, Charlie. Alternativamente ou adicionalmente, o programa de email po- de sugerir que o usuário programe uma reunião com Alice. O progra- ma de email pode ser configurado para sugerir uma hora de reunião particular, por exemplo, baseado nos fatos centrados em usuário na base de conhecimentos AI centrada em usuário do usuário com res- peito à disponibilidade do usuário e em relação a fatos centrados em usuário adicionais em uma base de conhecimentos empresarial com respeito à disponibilidade de Alice.
[00131] Um serviço de computador configurado para utilizar a base de conhecimentos AI centrada em usuário pode ser implementado e/ou organizado de qualquer modo adequado, sem ser limitado aos componentes e organização apresentados na FIGURA 16. Por conse- quência, a FIGURA 17 apresenta um método ilustrativo 1700 para um serviço de computador proporcionar dados para uma base de conhe- cimentos AI centrada em usuário, e a FIGURA 18 apresenta um méto- do ilustrativo 1800 para um serviço de computador servir consultas uti- lizando uma máquina de consulta de base de conhecimentos AI cen- trada em usuário. O método 1700 e o método 1800 podem ser imple- mentados por quaisquer dispositivos de computação e/ou serviços de computador adequados, tal como o assistente pessoal computadoriza- do 1600 da FIGURA 16, em cooperação com qualquer serviço de computador que seja compatível com a Base de Conhecimentos AI.
[00132] Em 1701, o método 1700 da FIGURA 17 inclui reconhecer uma representação legível por computador de entrada do usuário as- sociada com um usuário particular de um serviço de computador.
[00133] Opcionalmente, em alguns exemplos, em 1702, a entrada do usuário é recebida via uma interface com o usuário em linguagem natural, tal como a interface com o usuário em linguagem natural 1610 do assistente pessoal computadorizado 1600 da FIGURA 16. Em al- guns exemplos, o usuário particular do serviço de computador é reco- nhecido por uma máquina de identidade configurada para associar a entrada do usuário com o usuário particular, tal como a máquina de identidade 1630 da FIGURA 16.
[00134] Opcionalmente, em alguns exemplos, em 1703, a represen-
tação legível por computador da entrada do usuário é emitida por uma máquina NLP, baseada na entrada do usuário. Por exemplo, o assis- tente pessoal computadorizado 1600 apresentado na FIGURA 16 pode ser configurado para emitir a representação legível por computador da entrada do usuário via a máquina NLP 1620.
[00135] Em 1704, o método 1700 inclui atualizar a base de conhe- cimentos AI centrada em usuário associada com o usuário particular para incluir um fato centrado em usuário novo ou atualizado baseado na representação legível por computador da entrada do usuário. “fato centrado em usuário novo” é utilizado neste documento para se referir a qualquer fato centrado em usuário que ainda não esteja incluído na base de conhecimentos AI centrada em usuário, por exemplo, um fato centrado em usuário incluindo um sujeito e/ou objeto ainda não incluí- do em qualquer outro fato centrado em usuário na base de conheci- mentos AI centrada em usuário, ou um fato centrado em usuário inclu- indo uma nova borda entre um sujeito e objeto na base de conheci- mentos AI centrada em usuário. “Fato centrado em usuário atualizado” é utilizado neste documento para se referir a uma modificação de um fato centrado em usuário que já foi definido na base de conhecimentos AI centrada em usuário, por exemplo, modificação de um fato centrado em usuário para incluir uma ou mais novas marcas e/ou enriquecimen- tos. Em alguns exemplos, a base de conhecimentos AI centrada em usuário é atualizada por uma máquina de atualização de base de co- nhecimentos, tal como a máquina de atualização de base de conheci- mentos 1650 da FIGURA 16.
[00136] Opcionalmente, em alguns exemplos, em 1705, o fato cen- trado em usuário novo ou atualizado inclui um enriquecimento basea- do em uma representação legível por computador da entrada do usuá- rio. Por exemplo, o assistente pessoal computadorizado 1600 da FIGURA 16 inclui um adaptador de enriquecimento configurado para emitir um enriquecimento baseado na representação legível por com- putador da entrada do usuário. Em outros exemplos, o serviço de computador pode não incluir quaisquer adaptadores de enriquecimen- to, mas o fato centrado em usuário novo ou atualizado pode, contudo, incluir um enriquecimento, por exemplo, um enriquecimento pode ser adicionado para o fato centrado em usuário novo ou atualizado por um adaptador de enriquecimento de uma máquina de armazenamento de gráfico incluída em uma implementação da base de conhecimentos AI centrada em usuário.
[00137] Em 1706, a base de conhecimentos AI centrada em usuário pode ser atualizada via um protocolo de atualização utilizável por vá- rios diferentes serviços de computador (por exemplo, uma API de atualização como descrita acima com referência à FIGURA 14). Em 1707, o protocolo de atualização pode restringir um formato de arma- zenamento do fato centrado em usuário novo ou atualizado para um formato de dados independente de aplicativo. Por exemplo, o assisten- te pessoal computadorizado 1600 da FIGURA 16 inclui a máquina de atualização de base de conhecimentos 1650 configurada para atuali- zar a base de conhecimentos AI centrada em usuário via uma API de atualização.
[00138] A FIGURA 18 apresenta um método ilustrativo 1800 para um serviço de computador servir consultas utilizando uma base de co- nhecimentos AI centrada em usuário.
[00139] Em 1801, o método 1800 inclui reconhecer uma represen- tação legível por computador de uma consulta associada com um usu- ário particular do serviço de computador. Em alguns exemplos, o usuá- rio particular pode ser reconhecido por uma máquina de identidade, por exemplo, a máquina de identidade 1630 da FIGURA 16. Em al- guns exemplos, o usuário particular pode ser reconhecido baseado na informação de conexão associada com o serviço de computador, e/ou baseado na propriedade do usuário de um dispositivo de computador executando o serviço de computador (por exemplo, um telefone mó- vel).
[00140] Opcionalmente, em 1802, a consulta é uma consulta do usuário recebida via uma interface com o usuário em linguagem natu- ral, por exemplo, a interface com o usuário em linguagem natural 1610 da FIGURA 16. Por consequência, em 1803, a representação legível por computador da consulta pode ser emitida por uma máquina NLP baseado na consulta do usuário, tal como uma máquina NLP 1620 da FIGURA 16. Em alguns exemplos, a consulta inclui uma restrição ba- seada em uma característica da linguagem natural da consulta do usuário, por exemplo, baseada em uma intenção, tópico, e/ou entidade reconhecida a partir da consulta do usuário. Por exemplo, se o usuário perguntar, “Quem é um especialista em Widgets?”, a consulta pode incluir uma restrição de contexto de gráfico indicando que a resposta deve estar relacionada com “Widgets”, e, baseado em reconhecer que a intenção do usuário foi encontrar uma pessoa específica, uma restri- ção de tipo de resposta indicando que a resposta deve incluir fatos centrados em usuário em que o sujeito e/ou o objeto é uma pessoa.
[00141] Em alguns exemplos, a consulta pode ser uma consulta de contexto de usuário para determinar um contexto atual do usuário, e, por consequência, o subconjunto de fatos centrados em usuário pode incluir um ou mais fatos centrados em usuário se relacionando com o contexto atual. Em alguns exemplos, a consulta pode indicar um esta- do do serviço de computador, e, por consequência, o um ou mais cen- trados em usuário se relacionando com o contexto atual podem incluir um fato centrado em usuário se relacionando com o estado do serviço de computador. Em alguns exemplos, o método 1800 ainda compre- ende reconhecer uma representação legível por computador de uma característica de linguagem natural definida pelo estado do serviço de computador e, por consequência, a uma ou mais restrições incluem uma restrição baseada na característica de linguagem natural. Em al- guns exemplos, reconhecer a representação legível por computador da característica de linguagem natural pode ser executado por uma máquina NLP, tal como a máquina NLP 1620 da FIGURA 16.
[00142] Em 1804, o método 1800 inclui consultar uma base de co- nhecimentos AI centrada em usuário associada com o usuário particu- lar, via um protocolo de consulta utilizável por vários diferentes servi- ços de computador (por exemplo, uma API de consulta como descrita acima com referência à FIGURA 15). Em alguns exemplos, consultar a base de conhecimentos AI centrada em usuário pode ser executado por uma máquina de consulta de base de conhecimentos, tal como a máquina de consulta de base de conhecimentos 1660 da FIGURA 16.
[00143] Em 1805, a base de conhecimentos AI centrada em usuário pode ser atualizável para incluir um fato centrado em usuário novo ou atualizado via um protocolo de atualização utilizável por vários diferen- tes serviços de computador (por exemplo, uma API de atualização como descrita acima com referência à FIGURA 14). Em 1806, o proto- colo de atualização pode restringir um formato de armazenamento do fato centrado em usuário novo ou atualizado para um formato de da- dos independente de aplicativo.
[00144] Em 1807, o método 1800 inclui emitir uma resposta basea- do em um subconjunto de fatos centrados em usuário na base de co- nhecimentos AI centrada em usuário satisfazendo uma ou mais restri- ções definidas da consulta pela representação legível por computador.
[00145] Em 1808, o método 1800 opcionalmente incluir causar que o serviço de computador, ou um serviço de computador cooperante, execute uma ação para ajudar o usuário baseado no subconjunto de fatos centrados em usuário na base de conhecimentos AI satisfazendo a uma ou mais restrições definidas da consulta pela representação le-
gível por computador. Causar que o serviço de computador execute a ação para ajudar o usuário pode incluir emitir instruções legíveis por computador configuradas para causar que o serviço de computador, ou um serviço de computador cooperante, execute a ação para ajudar o usuário.
[00146] Em alguns exemplos, a resposta baseada no sujeito dos fatos centrados em usuário na base de conhecimentos AI centrada em usuário é emitida por um subsistema de saída, por exemplo, o subsis- tema de saída 1670 da FIGURA 16. Por exemplo, o subsistema de sa- ída 1670 pode incluir um subsistema de comunicação comunicativa- mente acoplado, via uma rede de computadores, com um dispositivo de computador cooperante implementado o serviço de computador cooperante. Por consequência, emitir as instruções legíveis por com- putador pode incluir enviar as instruções legíveis por computador para o dispositivo de computador cooperante via a rede de computadores. Em alguns exemplos, o subsistema de saída 1670 pode incluir um dis- positivo de vídeo e as instruções legíveis por computador podem ser configuradas para causar que o dispositivo de vídeo visualmente apre- sente uma representação de dados de estado do serviço de computa- dor, os dados de estado sendo relacionados com o sujeito dos fatos centrados em usuário na base de conhecimentos AI centrada em usu- ário satisfazendo a uma ou mais restrições definidas pela consulta. Alternativamente ou adicionalmente, o subsistema de saída 1670 pode incluir um alto-falante e as instruções legíveis por computador podem ser configuradas para gerar áudio de fala descrevendo os dados de estado do serviço de computador, e para causar que o alto-falante emita o áudio de fala.
[00147] Em alguns exemplos, um serviço de computador pode au- tomaticamente proporcionar fatos para a base de conhecimentos AI centrada em usuário (por exemplo, de acordo com o método 1700 ou de qualquer outra maneira adequada utilizando um protocolo de atuali- zação da base de conhecimentos AI centrada em usuário). Por exem- plo, o serviço de computador pode continuamente monitorar dados de sensor e/ou de estado do serviço de computador, de modo a proporci- onar fatos que podem pertencer a um contexto de um usuário do ser- viço de computador, por exemplo, dados GPS indicando uma localiza- ção do usuário e dados de relógio indicando uma hora atual. Alternati- vamente ou adicionalmente, em alguns exemplos, o serviço de compu- tador pode automaticamente emitir consultadas a serem servidas pela base de conhecimentos AI centrada em usuário (por exemplo, de acordo com o método 1800 ou de qualquer outra maneira adequada utilizando um protocolo de consulta da base de conhecimentos AI cen- trada em usuário). Por exemplo, o serviço de computador pode repeti- damente emitir uma consulta de contexto de usuário de acordo com uma programação, de modo a monitorar um contexto do usuário (por exemplo, de modo a automaticamente executar uma ação relacionada com o contexto).
[00148] O assistente pessoal computadorizado 1600 pode proporci- onar uma ampla faixa de assistência para um usuário (por exemplo, por proporcionar informação para o usuário, ou por automaticamente executar uma tarefa para o usuário). Em um exemplo, o assistente pessoal computadorizado 1600 pode ser configurado para cooperar com vários outros serviços de computador incluindo um programa de email e um programa de monitoramento de sensor configurados para emitir dados do sistema de posicionamento global (GPS) indicando uma posição de um dispositivo de usuário pertencendo a um usuário 1690 (por exemplo, telefone móvel). Cada um dentre o assistente pes- soal computadorizado 1600, o programa de email, e o programa de monitoramento de sensor pode proporcionar um ou mais fatos centra- dos em usuário para uma base de conhecimentos AI centrada em usuário, por exemplo, de acordo com o método 1700. Por exemplo, o programa de email pode proporcionar um fato centrado em usuário novo para a base de conhecimentos AI centrada em usuário sempre que o usuário envia um email. O fato centrado em usuário novo pode incluir um nó de gráfico objeto indicando a identidade do usuário 1690, um nó de gráfico sujeito indicando o receptor do email, e uma borda indicando a relação “envia email”. O fato centrado em usuário novo pode incluir um ou mais enriquecimentos, por exemplo, um enriqueci- mento indicando um tópico reconhecido do email e uma marca de tempo indicando uma hora na qual o email foi enviado. O programa de monitoramento de sensor também pode proporcionar um ou mais fatos centrados em usuário novos para a base de conhecimentos AI centra- da em usuário, por exemplo, por continuamente monitorar uma posi- ção do telefone móvel do usuário e proporcionar um fato centrado em usuário novo indicando a localização do telefone móvel do usuário e uma marca de tempo correspondente sempre que a posição do telefo- ne móvel do usuário alterar. Por consequência, a base de conheci- mentos AI centrada em usuário pode conter vários fatos centrados em usuário indicando uma posição do telefone móvel do usuário 1690, e vários fatos centrados em usuário indicando cada email que o usuário 1690 enviou.
[00149] Além disso, a base de conhecimentos AI centrada em usuá- rio pode incluir fatos centrados em usuário adicionais (por exemplo, adicionados pelo computador de armazenamento de gráfico 1301) ba- seado nos enriquecimentos dos fatos centrados em usuário novos adi- cionados pelo programa de email e nos fatos centrados em usuário novos adicionados pelo programa de monitoramento de sensor. Por exemplo, a base de conhecimentos AI centrada em usuário pode inclu- ir um fato adicional indicando que um email foi provavelmente enviado a partir de uma localização particular, baseado em comparar marcas de tempo associadas com o email e marcas de tempo associadas com fatos proporcionados pelo programa de monitoramento de sensor.
[00150] O assistente pessoal computadorizado 1600 pode posteri- ormente emitir uma consulta a ser servida pela base de conhecimen- tos AI centrada em usuário (por exemplo, via o método 1800), de mo- do a determinar uma localização de um local de trabalho do usuário
1690. Por exemplo, a consulta pode incluir uma restrição de contexto gráfico indicando emails relacionados com trabalho” e uma restrição de tipo de resposta indicando “localizações. Por consequência, o sub- conjunto de fatos centrados em usuário selecionado em resposta à consulta pode incluir localizações a partir das quais o usuário 1690 en- viou um ou mais emails relacionados com trabalho. Baseado no sub- conjunto de fatos centrados em usuário, o assistente pessoal compu- tadorizado 1600 pode reconhecer que uma grande proporção de emails relacionados com trabalho foi enviada a partir de uma localiza- ção particular, dentro de um período de tempo particular. Por conse- quência, o assistente pessoal computadorizado 1600 pode reconhecer uma localização do local de trabalho do usuário 1690 e uma agenda de trabalho do usuário 1690.
[00151] Posteriormente, de um modo similar, a base de conheci- mentos AI centrada em usuário pode conter fatos centrados em usuá- rio indicando que o usuário 1690 frequentemente estabelece um alar- me (por exemplo, em seu telefone móvel) a partir de uma localização particular à noite, e silencia o alarme cada manhã subseqüente. Por consequência, o assistente pessoal computadorizado 1600 pode emitir uma consulta considerando a localização e a hora do alarme. Baseado na resposta para a consulta, o assistente pessoal computadorizado 1600 pode reconhecer uma localização doméstica do usuário 1690 e uma programação de dormir do usuário 1690.
[00152] O assistente pessoal computadorizado 1600 pode estar ap-
to a automaticamente ajudar o usuário com várias tarefas baseado em reconhecer um ou mais aspectos dos fatos centrados em usuário na base de conhecimentos AI centrada em usuário (por exemplo, por emi- tir consultas de acordo com o método 1700). Por exemplo, quando o assistente pessoal computadorizado 1600 reconhece as programa- ções de trabalho e de dormir do usuário 1690 como descrito acima, o assistente pessoal computadorizado 1600 pode estar apto a estabele- cer um alarme para o usuário por condição preestabelecida, de acordo com suas típicas preferências de programação.
[00153] Em alguns exemplos, como representado na FIGURA 16, o assistente pessoal computadorizado 1600 pode estar apto a proporci- onar uma resposta aprimorada para uma consulta do usuário baseado no um ou mais aspectos dos fatos centrados em usuário. Por exemplo, um usuário 1690 pode perguntar ao assistente pessoal computadori- zado 1600, “Qual é um bom restaurante próximo do trabalho?” como apresentado na bolha de diálogo 1691. Por consequência, o assistente pessoal computadorizado 1600 pode reconhecer uma representação legível por computador da consulta (por exemplo, de acordo com o método 1800 em 1801). O assistente pessoal computadorizado 1600 pode emitir a consulta a ser servida pela base de conhecimentos AI centrada em usuário (por exemplo, via um protocolo de consulta utili- zável por vários diferentes serviços de computador, como descrito em 1804). A consulta pode incluir uma restrição de contexto gráfico indi- cando “próximo do trabalho” e uma restrição de tipo de resposta indi- cando “restaurantes”. Por consequência, o assistente pessoal compu- tadorizado 1600 pode emitir uma resposta para a consulta (por exem- plo, como descrito em 1807) baseado em um subconjunto de fatos centrados em usuário satisfazendo a restrição de contexto gráfico e a restrição de tipo de resposta. Por exemplo, o assistente pessoal com- putadorizado 1600 pode sugerir um ou mais restaurantes dentro de uma distância conveniente do trabalho do usuário 1690.
[00154] Em alguns exemplos, o assistente pessoal computadoriza- do 1600 pode solicitar mais informações a partir do usuário 1690 de modo a fazer uma escolha de acordo com as preferências do usuário
1690. Por exemplo, quando o usuário 1690 pergunta para encontrar um bom restaurante próximo do trabalho, o subconjunto de fatos cen- trados em usuário selecionado em resposta à consulta pode indicar vários diferentes restaurantes dentro de uma distância similar. Por consequência, o assistente pessoal computadorizado 1600 deve per- guntar uma questão de acompanhamento indicando um restaurante específico, por exemplo, “Que tal “The Burrito Restaurant”?”, como apresentado na bolha de diálogo 1692.
[00155] Em alguns exemplos, o assistente pessoal computadoriza- do 1600 pode proporcionar um ou mais fatos centrados em usuário adicionais para a base de conhecimentos AI centrada em usuário no curso de responder uma consulta do usuário (por exemplo, de acordo com os métodos 1700 e 1800). Por exemplo, o usuário 1690 pode res- ponder a uma pergunta “Que tal “The Burrito Restaurant?” (apresenta- da na bolha de diálogo 1692) por dizer “Eu não gosto de burritos” co- mo apresentado na bolha de diálogo 1693. Por consequência, o assis- tente pessoal computadorizado 1600 pode adicionar um novo fato para a base de conhecimentos AI centrada em usuário indicando que o usuário não gosta de burritos.
[00156] De modo a determinar uma escolha de restaurante que sa- tisfaça as preferências do usuário, o assistente pessoal computadori- zado 1600 pode perguntar uma pergunta de acompanhamento adicio- nal, por exemplo, “Que tal “The Sushi Restaurant”?” como apresentado na bolha de diálogo 1694. Se o usuário responder, “Sim, por favor re- serve uma mesa após o trabalho”, como apresentado na bolha de diá- logo 1695, o assistente pessoal computadorizado 1600 pode deduzir uma hora na qual fazer a reserva baseado em reconhecer a agenda de trabalho do usuário 1690.
[00157] Em adição a considerar a agenda de trabalho do usuário 1690, a base de conhecimentos AI centrada em usuário pode permitir ao assistente pessoal computadorizado 1600 considerar outros fatores potencialmente relevantes, por exemplo, fatores associados com um ou mais fatos centrados em usuário incluídos na base de conhecimen- tos AI centrada em usuário. Por exemplo, a base de conhecimentos AI centrada em usuário pode incluir fatos centrados em usuário descre- vendo quando o usuário 1690 tipicamente prefere comer. Em alguns exemplos, a base de conhecimentos AI centrada em usuário pode considerar fatores determinados baseado em fatos adicionais fora da base de conhecimentos centrada em usuário, por exemplo, uma dura- ção predita de percurso a partir do trabalho do usuário 1690 até o “The Sushi Restaurant” como determinado baseado nos dados GPS asso- ciados com uma localização de um usuário e na agenda de trabalho reconhecida. Por exemplo, o assistente pessoal computadorizado 1600 pode ser configurado para determinar a duração predita de per- curso via uma API de um serviço de mapa oferecendo geolocalização e funcionalidade de planejamento de deslocamento.
[00158] Baseado em quando o usuário 1690 tipicamente deixa o trabalho, quando o usuário 1690 tipicamente prefere comer, e em uma duração de percurso predita a partir do trabalho do usuário até o “The Sushi Restaurant”, o assistente pessoal computadorizado 1600 pode determinar uma hora apropriada para a reserva, por exemplo, 6 da tarde. Por consequência, em resposta à série de consultas do usuário e às entradas do usuário, o assistente pessoal computadorizado pode emitir uma resposta para confirmar que a reserva está sendo feita co- mo na bolha de diálogo 1696 (por exemplo, de acordo com o método 1800 em 1807). Além disso, o assistente pessoal computadorizado
1600 pode emitir instruções legíveis por computador configuradas para causar que o assistente pessoal computadorizado 1600 e/ou outros serviços de computador cooperantes executem uma ação para ajudar o usuário (por exemplo, de acordo com o método 1800 em 1808). Por exemplo, o assistente pessoal computadorizado 1600 pode emitir ins- truções legíveis por computador configuradas para dispor a reserva (por exemplo, via um serviço de reserva do restaurante oferecendo uma API para fazer reservas). Adicionalmente, o assistente pessoal computadorizado 1600 pode reconhecer um ou mais fatos centrados em usuário novos que podem ser adicionados para a base de conhe- cimentos AI centrada em usuário, a saber, que o usuário 1690 gosta de sushi.
[00159] Baseado em interagir com o usuário e ajudar o usuário 1690, o assistente pessoal computadorizado 1600 e outros serviços de computador podem continuamente adicionar novos fatos centrados em usuário para a base de conhecimentos AI centrada em usuário, e emi- tir consultas de modo a tomar decisões informadas baseado nos fatos centrados em usuário na base de conhecimentos AI centrada em usu- ário. Por consequência, a base de conhecimentos AI centrada em usuário pode permitir ao assistente pessoal computadorizado 1600 e aos outros serviços de computador continuamente aprimorar e propor- cionar ajuda para o usuário 1690 de acordo com suas preferências.
[00160] Em alguns exemplos, o assistente pessoal computadoriza- do 1600 pode automaticamente emitir uma série de consultas (por exemplo, de acordo com uma agenda) de modo a automaticamente executar uma ação para ajudar o usuário 1690, baseado no subcon- junto de fatos centrados em usuário selecionado em reposta a cada consulta. Por exemplo, quando o usuário 1690 possui uma reserva de restaurante no “The Sushi Restaurant” às 6 da tarde, o assistente pes- soal computadorizado 1600 pode ser configurado para repetidamente emitir uma consulta de contexto de usuário em um intervalo de 2 minu- tos entre 05h30min da tarde e 06h00min da tarde. A consulta de con- texto de usuário pode incluir restrições relacionadas com a hora atual, uma atividade atual do usuário 1690, e/ou uma localização do usuário baseado em dados GPS, e o subconjunto de fatos centrados em usuá- rio selecionado em reposta à consulta de contexto de usuário pode incluir um ou mais fatos centrados em usuário relacionados com a re- serva de restaurante, por exemplo, baseado em uma similaridade de marcas de tempo e na informação de localização. Posteriormente, o usuário 1690 pode deixar o trabalho às 05h50min da tarde e ir até o “The Sushi Restaurant”. Por consequência, o assistente pessoal com- putadorizado 1600 pode reconhecer que o usuário 1690 está se apro- ximando do restaurante e automaticamente ajudar o usuário 1690 por visualmente apresentar informação relevante, por exemplo, uma con- firmação da reserva, um menu do restaurante, e um mapa apresen- tando direções até o destino.
[00161] Em algumas modalidades, os métodos e processos descri- tos neste documento podem ser ligados com um sistema de computa- ção de um ou mais dispositivos de computação. Em particular, tais mé- todos e processos podem ser implementados como uma programação ou serviço de aplicativo de computador, uma interface de programação de aplicativo (API), uma biblioteca, e/ou outro produto de programa de computador.
[00162] A FIGURA 19 esquematicamente apresenta uma modalida- de não limitativa de um sistema de computação 1900 que pode por em prática um ou mais métodos e processos descritos acima. Por exem- plo, o sistema de computação 1900 pode servir como uma máquina de armazenamento de gráfico 1301, um computador provedor de dados específicos de aplicativo 1321, ou computador de usuário 1340. Em alguns exemplos, o sistema de computação 1900 pode proporcionar funcionalidade de assistente pessoal computadorizado 1600 ou de qualquer outro serviço(s) de computador configurado para utilizar uma base de conhecimentos AI centrada em usuário (por exemplo, de acordo com o método 1700 ou com o método 1800, ou de qualquer outra maneira adequada utilizando um protocolo de atualização e/ou protocolo de consulta da base de conhecimentos AI centrada em usuá- rio). O sistema de computação 1900 é apresentado de forma simplifi- cada. O sistema de computação 1900 pode assumir a forma de um ou mais computadores pessoais, computadores servidores, computado- res tablet, computadores de entretenimento doméstico, dispositivos de computação em rede, dispositivos de jogo, dispositivos de computação móveis, dispositivos de comunicação móvel (por exemplo, smartpho- ne), e/ou outros dispositivos de computação.
[00163] O sistema de computação 1900 inclui uma máquina lógica 1901 e uma máquina de armazenamento 1902. O sistema de compu- tação 1900 opcionalmente pode incluir um subsistema de vídeo 1903, subsistema de entrada 1904, subsistema de comunicação 1905 e/ou outros componentes não apresentados na FIGURA 19.
[00164] A máquina de lógica 1901 inclui um ou mais dispositivos físicos configurados para executar instruções. Por exemplo, a máquina de lógica pode ser configurada para executar instruções que são parte de um ou mais aplicativos, serviços, programas, rotinas, bibliotecas, objetos, componentes, estruturas de dados, ou outras construções ló- gicas. Tais instruções podem ser implementadas para executar uma tarefa, implementar um tipo de dado, transformar o estado de um ou mais componentes, obter um efeito técnico, ou de outro modo chegar em um resultado desejado.
[00165] A máquina de lógica pode incluir um ou mais processado- res configurados para executar instruções de software. Adicionalmente ou alternativamente, a máquina de lógica pode incluir uma ou mais máquinas de lógica de hardware ou de firmware configuradas para executar instruções de hardware ou de firmware. Os processadores da máquina de lógica podem ser de núcleo único ou de múltiplos núcleos, e as instruções executadas nos mesmos podem ser configuradas para processamento seqüencial, paralelo, e/ou distribuído. Componentes individuais da máquina de lógica opcionalmente podem ser distribuí- dos dentre dois ou mais dispositivos separados, os quais podem estar remotamente localizados e/ou configurados para processamento coor- denado. Aspectos da máquina de lógica podem ser virtualizados e executados por dispositivos de computação em rede remotamente acessíveis configurados em uma configuração de computação em nu- vem.
[00166] A máquina de armazenamento 1902 inclui um ou mais dis- positivos físicos configurados para manter instruções executáveis pela máquina de lógica para implementar os métodos e processos descritos neste documento. Quando tais métodos e processos são implementa- dos, o estado da máquina de armazenamento 1902 pode ser transfor- mado – por exemplo, para manter dados diferentes.
[00167] A máquina de armazenamento 1902 pode incluir dispositi- vos removíveis e/ou incorporados. A máquina de armazenamento 1902 pode incluir memória ótica (por exemplo, CD, DVD, HD-DVD, Disco Blu-Ray, etc.), memória semicondutora (por exemplo, RAM, EPROM, EEPROM, etc.), e/ou memória magnética (por exemplo, uni- dade de disco rígido, unidade de disco flexível, unidade de fita, MRAM, etc.), dentre outras. A máquina de armazenamento 1902 pode incluir dispositivos voláteis, não voláteis, dinâmicos, estáticos, de leitura / gravação, somente para leitura, de acesso aleatório, de acesso se- quencial, com localização endereçável, com arquivo endereçável, e/ou com conteúdo endereçável.
[00168] Apesar de a máquina de armazenamento 1902 incluir um ou mais dispositivos físicos, aspectos das instruções descritos neste documento alternativamente podem ser propagados por um meio de comunicação (por exemplo, um sinal eletromagnético, um sinal ótico, etc.) que não é mantido por um dispositivo físico durante uma duração finita.
[00169] Aspectos da máquina de lógica 1901 e da máquina de ar- mazenamento 1902 podem ser integrados em um ou mais componen- tes de lógica de hardware. Tais componentes de lógica de hardware podem incluir arranjos de portas programáveis em campo (FPGA), cir- cuitos integrados específicos de programa / aplicação (PASIC / ASICs), produtos padrão específicos de programa / aplicação (PSSP / ASSPs), sistema em um chip (SOC), e dispositivos de lógica progra- mável complexa (CPLDs), por exemplo.
[00170] Os termos “módulo”, “programa”, e “mecanismo” podem ser utilizados para descrever um aspecto do sistema de computação 1900 implementado para executar uma função particular. Em alguns casos, um módulo, programa, ou mecanismo pode ser instanciado via a má- quina de lógica 1901 executando instruções mantidas pela máquina de armazenamento 1902. O termo “máquina” pode ser utilizado para des- crever uma ou mais máquinas de lógica instanciando tais módulos, programas, ou mecanismos. Por exemplo, a máquina de processa- mento de linguagem natural descrita neste documento pode assumir a forma de um ASIC ou de processador de propósito geral executando instruções de software, firmware, ou de hardware que traduzem a en- trada bruta do usuário (por exemplo, áudio de fala detectado por um microfone) para uma representação legível por computador da entrada que é mais adequada para processamento à jusante. Será entendido que diferentes módulos, programas, e/ou mecanismos podem ser ins- tanciados na mesma máquina e/ou a partir do mesmo aplicativo, servi- ço, bloco de código, objeto, biblioteca, rotina, API, função, etc. Da mesma forma, o mesmo módulo, programa, e/ou mecanismo pode ser instanciado através de duas ou mais diferentes máquinas e/ou por di- ferentes aplicativos, serviços, blocos de código, objetos, rotinas, APIs, funções, etc. Os termos “módulo”, “programa”, e “mecanismo” podem abranger individuais ou grupos de arquivos executáveis, arquivos de dados, bibliotecas, controladores, scripts, registros de base de dados, etc.
[00171] Quando incluído, o subsistema de vídeo 1903 pode ser uti- lizado para apresentar uma representação visual de dados mantidos pela máquina de armazenamento 1902. Esta representação visual e processos alteram os dados mantidos pela máquina de armazenamen- to, e assim, transformam o estado da máquina de armazenamento, e o estado do subsistema de vídeo 1903 pode da mesma forma ser trans- formado para visualmente representar alterações nos dados subjacen- tes. O subsistema de vídeo 1903 pode incluir um ou mais dispositivos de vídeo utilizando virtualmente qualquer tipo de tecnologia. Tais dis- positivos de vídeo podem ser combinados com a máquina de lógica 1901 e/ou com a máquina de armazenamento 1902 em um gabinete fechado, ou tais dispositivos de vídeo podem ser dispositivos de vídeo periféricos.
[00172] Quando incluído, o subsistema de entrada 1904 pode com- preender ou fazer interface com um ou mais dispositivos de entrada do usuário tal como um teclado, mouse, tela sensível ao toque, ou contro- lador de jogo. Em algumas modalidades, o subsistema de entrada po- de compreender ou fazer interface com o conjunto de componentes de entrada do usuário natural (NUI) selecionada. Tal conjunto de compo- nentes pode ser integrado ou periférico, e a transdução e/ou o proces- samento de ações de entrada pode ser manipulado dentro ou fora. Conjunto de componentes NUI ilustrativos pode incluir um microfone para fala e/ou reconhecimento de voz; uma câmera infravermelho, co-
lorida, estereoscópica, e/ou de profundidade para visão de máquina e/ou reconhecimento gestual; um rastreador de cabeça, rastreador de olhos, acelerômetro, e/ou giroscópio para detecção de movimento e/ou reconhecimento de intenção, bem como conjunto de componentes de percepção de campo elétrico para avaliar atividade cerebral.
[00173] Quando incluído, o subsistema de comunicação 1905 pode ser configurado para comunicativamente acoplar o sistema de compu- tação 1900 com um ou mais outros dispositivos de computação. O subsistema de comunicação 1905 pode incluir dispositivos de comuni- cação com uso de fios e/ou sem uso de fios compatíveis com um ou mais diferentes protocolos de comunicação. Como exemplos não limi- tativos, o subsistema de comunicação pode ser configurado para co- municação via uma rede telefônica sem uso de fios, ou uma rede de área local ou rede de longa de distância com uso de fios ou sem uso de fios. Em algumas modalidades, o subsistema de comunicação pode permitir ao sistema de computação 1900 enviar e/ou receber mensa- gem para ou a partir de outros dispositivos via uma rede tal como a Internet.
[00174] Em um exemplo, um assistente pessoal computadorizado compreende: uma interface com o usuário em linguagem natural para receber entrada do usuário; uma máquina de processamento de lin- guagem natural para emitir uma representação legível por computador da entrada do usuário; uma máquina de identidade configurada para associar a entrada do usuário com um usuário particular; uma máquina de atualização de base de conhecimentos configurada para atualizar uma base de conhecimentos de inteligência artificial centrada em usu- ário associada com o usuário particular para incluir um fato centrado em usuário novo ou atualizado baseado na representação legível por computador da entrada do usuário, em que a máquina de atualização de base de conhecimentos atualiza a base de conhecimentos de inte-
ligência artificial centrada em usuário via um protocolo de atualização utilizável por vários diferentes serviços de computador, o protocolo de atualização restringindo um formato de armazenamento do fato cen- trado em usuário novo ou atualizado a um formato de dados indepen- dente de aplicativo.
Neste exemplo ou em qualquer outro exemplo, o assistente pessoal computadorizado ainda compreende um adaptador de enriquecimento configurado para emitir um enriquecimento basea- do na representação legível por computador da entrada do usuário, em que o fato centrado em usuário novo ou atualizado inclui o enriqueci- mento emitido pelo adaptador de enriquecimento.
Neste exemplo ou em qualquer outro exemplo, a base de conhecimentos de inteligência artificial centrada em usuário inclui um ou mais fatos centrados em usuário criptografados, em que o acesso ao um ou mais fatos centra- dos em usuário criptografados é restrito por uma credencial associada com o usuário particular.
Neste exemplo ou em qualquer outro exem- plo, o assistente pessoal computadorizado compreende uma máquina de consulta à base de conhecimentos configurada para consultar a base de conhecimentos de inteligência artificial centrada em usuário associada com o usuário particular e para emitir uma resposta basea- da em um subconjunto de fatos centrados em usuário na base de co- nhecimentos de inteligência artificial centrada em usuário satisfazendo uma ou mais restrições definidas de uma consulta por uma represen- tação legível por computador.
Neste exemplo ou em qualquer outro exemplo, a máquina de consulta à base de conhecimentos é configu- rada para consultar a base de conhecimentos de inteligência artificial centrada em usuário via um protocolo de consulta utilizável por vários diferentes serviços de computador.
Neste exemplo ou em qualquer outro exemplo, a interface com o usuário em linguagem natural é ainda configurada para receber uma consulta do usuário; e a máquina de processamento de linguagem natural é ainda configurada para emitir a representação legível por computador da consulta baseada na consul- ta do usuário.
Neste exemplo ou em qualquer outro exemplo, a máqui- na de processamento de linguagem natural é ainda configurada para emitir uma intenção reconhecida do usuário baseada na consulta do usuário, em que a uma ou mais restrições definidas da consulta pela representação legível por computador inclui uma restrição baseada na intenção reconhecida do usuário.
Neste exemplo ou em qualquer outro exemplo, a consulta é uma consulta de contexto de usuário para de- terminar um contexto atual do usuário, e o subconjunto de fatos cen- trados em usuário inclui um ou mais fatos centrados em usuário se re- lacionando com o contexto atual.
Neste exemplo ou em qualquer outro exemplo, a uma ou mais restrições definidas da consulta pela repre- sentação legível por computador inclui uma restrição de tipo de res- posta; e o subconjunto de fatos centrados em usuário inclui somente fatos centrados em usuário que satisfazem a restrição de tipo de res- posta.
Neste exemplo ou em qualquer outro exemplo, a uma ou mais restrições definidas da consulta pela representação legível por compu- tador incluem uma restrição de contexto de gráfico; e o subconjunto de fatos centrados em usuário inclui somente fatos centrados em usuário que estão relacionados com um fato centrado em usuário de contextu- alização na base de conhecimentos de inteligência artificial centrada em usuário que satisfaz a restrição de contexto de gráfico.
Neste exemplo ou em qualquer outro exemplo, a resposta emitida pela má- quina de consulta à base de conhecimentos inclui instruções legíveis por computador configuradas para causar que um serviço de compu- tador cooperante execute uma ação para ajudar o usuário baseado no subconjunto de fatos centrados em usuário na base de conhecimentos de inteligência artificial centrada em usuário satisfazendo a uma ou mais restrições definidas da consulta pela representação legível por computador.
Neste exemplo ou em qualquer outro exemplo, a ação para ajudar o usuário inclui alterar uma configuração de preferência do serviço de computador cooperante baseado no subconjunto de fatos centrados em usuário na base de conhecimentos de inteligência artifi- cial centrada em usuário satisfazendo a uma ou mais restrições defini- das da consulta pela representação legível por computador. Neste exemplo ou em qualquer outro exemplo, a ação para ajudar o usuário inclui visualmente apresentar uma representação de dados de estado do serviço de computador cooperante, os dados de estado relaciona- dos com o subconjunto de fatos centrados em usuário na base de co- nhecimentos de inteligência artificial centrada em usuário satisfazendo a uma ou mais restrições definidas da consulta pela representação le- gível por computador.
[00175] Em um exemplo, um assistente pessoal computadorizado compreende: uma interface com o usuário em linguagem natural confi- gurada para receber uma consulta do usuário; uma máquina de identi- dade configurada para associar a consulta do usuário com um usuário particular; uma máquina de processamento de linguagem natural con- figurada para emitir uma representação legível por computador da consulta do usuário; uma máquina de consulta à base de conhecimen- tos configurada para consultar uma base de conhecimentos de inteli- gência artificial centrada em usuário associada com o usuário particu- lar e para emitir uma resposta para a consulta do usuário baseada em um subconjunto de fatos centrados em usuário na base de conheci- mentos de inteligência artificial centrada em usuário satisfazendo uma ou mais restrições definidas da consulta pela representação legível por computador do usuário, em que a base de conhecimentos de inteli- gência artificial centrada em usuário pode ser atualizada para incluir um fato centrado em usuário novo ou atualizado via um protocolo de atualização utilizável por vários diferentes serviços de computador, o protocolo de atualização restringindo um formato de armazenamento do fato centrado em usuário novo ou atualizado a um formato de da- dos independente de aplicativo.
[00176] Em um exemplo, um método para automaticamente res- ponder consultas compreende: reconhecer uma representação legível por computador de uma consulta associada com um usuário particular de um serviço de computador; consulta uma base de conhecimentos de inteligência artificial centrada em usuário associada com o usuário particular via um protocolo de consulta utilizável por vários diferentes serviços de computador; e emitir uma resposta baseado em um sub- conjunto de fatos centrados em usuário na base de conhecimentos de inteligência artificial centrada em usuário satisfazendo uma ou mais restrições definidas da consulta pela representação legível por compu- tador, em que a base de conhecimentos de inteligência artificial cen- trada em usuário pode ser atualizada para incluir um fato centrado em usuário novo ou atualizado via um protocolo de atualização utilizável por vários diferentes serviços de computador, o protocolo de atualiza- ção restringindo um formato de armazenamento do fato centrado em usuário novo ou atualizado a um formato de dados independente de aplicativo. Neste exemplo ou em qualquer outro exemplo, o serviço de computador é um assistente pessoal computadorizado. Neste exemplo ou em qualquer outro exemplo, a consulta é uma consulta de contexto de usuário para determinar um contexto atual do usuário, em que o subconjunto de fatos centrados em usuário inclui um ou mais fatos centrados em usuário se relacionando com o contexto atual. Neste exemplo ou em qualquer outro exemplo, a consulta indica um estado do serviço de computador e o um ou mais fatos centrados em usuário se relacionando com o contexto atual incluem um fato centrado em usuário se relacionando com o estado do serviço de computador. Nes- te exemplo ou em qualquer outro exemplo, o método ainda compreen- de reconhecer uma representação legível por computador de uma ca-
racterística de linguagem natural definida pelo estado do serviço de computador, em que a uma ou mais restrições incluem uma restrição baseada na característica de linguagem natural. Neste exemplo ou em qualquer outro exemplo, o método ainda compreende causar que o serviço de computador execute uma ação para ajudar o usuário base- ado no subconjunto de fatos centrados em usuário na base de conhe- cimentos de inteligência artificial centrada em usuário satisfazendo a uma ou mais restrições definidas da consulta pela representação legí- vel por computador.
[00177] Será entendido que as configurações e/ou abordagens descritas neste documento são ilustrativas por natureza, e que estas modalidades ou exemplos específicos não são para ser considerados em um sentido de limitação, devido a muitas variações serem possí- veis. As rotinas ou métodos específicos descritos neste documento podem representar uma ou mais de qualquer número de estratégias de processamento. Assim, vários atos ilustrados e/ou descritos podem ser executados na sequência ilustrada e/ou descrita, em outras se- quências, em paralelo, ou omitidos. Da mesma forma, a ordem dos processos descritos acima pode ser modificada.
[00178] O assunto da presente divulgação inclui todas as combina- ções e subcombinações novas e não óbvias dos vários processos, sis- temas e configurações, e outras características, funções, atos, e/ou propriedades divulgadas neste documento, bem como qualquer um e todos os equivalentes dos mesmos.

Claims (13)

REIVINDICAÇÕES
1. Assistente pessoal computadorizado, caracterizado pelo fato de que compreende: uma interface com o usuário em linguagem natural configu- rada para receber entrada do usuário; uma máquina de processamento de linguagem natural con- figurada para emitir uma representação legível por computador da en- trada do usuário; uma máquina de identidade configurada para associar a en- trada do usuário com um usuário particular; e uma máquina de atualização de base de conhecimentos configurada para atualizar uma base de conhecimentos de inteligência artificial centrada em usuário associada com o usuário particular para incluir um fato centrado em usuário novo ou atualizado baseado na representação legível por computador da entrada do usuário, em que a máquina de atualização de base de conhecimentos atualiza a base de conhecimentos de inteligência artificial centrada em usuário via um protocolo de atualização utilizável por vários diferentes serviços de computador, o protocolo de atualização restringindo um formato de armazenamento do fato centrado em usuário novo ou atualizado a um formato de dados independente de aplicativo.
2. Assistente pessoal computadorizado, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende um adaptador de enriquecimento configurado para emitir um enriqueci- mento baseado na representação legível por computador da entrada do usuário, em que o fato centrado em usuário novo ou atualizado in- clui o enriquecimento emitido pelo adaptador de enriquecimento.
3. Assistente pessoal computadorizado, de acordo com a reivindicação 1, caracterizado pelo fato de que a base de conhecimen- tos de inteligência artificial centrada em usuário inclui um ou mais fatos centrados em usuário criptografados, em que o acesso ao um ou mais fatos centrados em usuário criptografados é restrito por uma credenci- al associada com o usuário particular.
4. Assistente pessoal computadorizado, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende uma máquina de consulta à base de conhecimentos configurada para con- sultar a base de conhecimentos de inteligência artificial centrada em usuário associada com o usuário particular e para emitir uma resposta baseada em um subconjunto de fatos centrados em usuário na base de conhecimentos de inteligência artificial centrada em usuário satisfa- zendo uma ou mais restrições definidas de uma consulta por uma re- presentação legível por computador.
5. Assistente pessoal computadorizado, de acordo com a reivindicação 4, caracterizado pelo fato de que a máquina de consulta à base de conhecimentos é configurada para consultar a base de co- nhecimentos de inteligência artificial centrada em usuário via um pro- tocolo de consulta utilizável por vários diferentes serviços de computa- dor.
6. Assistente pessoal computadorizado, de acordo com a reivindicação 4, caracterizado pelo fato de que: a interface com o usuário em linguagem natural é ainda configurada para receber uma consulta do usuário; e a máquina de processamento de linguagem natural é ainda configurada para emitir a representação legível por computador da consulta baseada na consulta do usuário.
7. Assistente pessoal computadorizado, de acordo com a reivindicação 6, caracterizado pelo fato de que a máquina de proces- samento de linguagem natural é ainda configurada para emitir uma intenção reconhecida do usuário baseada na consulta do usuário, e em que a uma ou mais restrições definidas da consulta pela represen-
tação legível por computador inclui uma restrição baseada na intenção reconhecida do usuário.
8. Assistente pessoal computadorizado, de acordo com a reivindicação 4, caracterizado pelo fato de que a consulta é uma con- sulta de contexto de usuário para determinar um contexto atual do usuário, e em que o subconjunto de fatos centrados em usuário inclui um ou mais fatos centrados em usuário se relacionando com o contex- to atual.
9. Assistente pessoal computadorizado, de acordo com a reivindicação 4, caracterizado pelo fato de que: a uma ou mais restrições definidas da consulta pela repre- sentação legível por computador inclui uma restrição de tipo de res- posta; e o subconjunto de fatos centrados em usuário inclui somente fatos centrados em usuário que satisfazem a restrição de tipo de res- posta.
10. Assistente pessoal computadorizado, de acordo com a reivindicação 4, caracterizado pelo fato de que: a uma ou mais restrições definidas da consulta pela repre- sentação legível por computador incluem uma restrição de contexto de gráfico; e o subconjunto de fatos centrados em usuário inclui somente fatos centrados em usuário que estão relacionados com um fato cen- trado em usuário de contextualização na base de conhecimentos de inteligência artificial centrada em usuário que satisfaz a restrição de contexto de gráfico.
11. Assistente pessoal computadorizado, de acordo com a reivindicação 4, caracterizado pelo fato de que a resposta emitida pela máquina de consulta à base de conhecimentos inclui instruções legí- veis por computador configuradas para causar que um serviço de computador cooperante execute uma ação para ajudar o usuário ba- seado no subconjunto de fatos centrados em usuário na base de co- nhecimentos de inteligência artificial centrada em usuário satisfazendo a uma ou mais restrições definidas da consulta pela representação le- gível por computador.
12. Assistente pessoal computadorizado, de acordo com a reivindicação 11, caracterizado pelo fato de que a ação para assistir o usuário inclui a alteração de um subconjunto de preferência do serviço de computador cooperante baseado no subconjunto dos fatos centra- dos no usuário na base de conhecimento de inteligência artificial que satisfazem a uma ou mais restrições da consulta definidas pela repre- sentação legível por computador.
13. Assistente pessoal computadorizado, de acordo com a reivindicação 11, caracterizado pelo fato de que a ação para assistir o usuário inclui visualmente apresentar uma representação de dados de estado do serviço de computador cooperante, os dados de estado re- lacionados com o subconjunto de fatos centrados em usuário na base de conhecimentos de inteligência artificial centrada em usuário satisfa- zendo a uma ou mais restrições definidas da consulta pela representa- ção legível por computador.
BR112020018013-0A 2018-04-12 2019-03-27 Assistência computadorizada utilizando base de conhecimentos por inteligência artificial BR112020018013A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/952,054 US11593413B2 (en) 2018-04-12 2018-04-12 Computerized assistance using artificial intelligence knowledge base
US15/952,054 2018-04-12
PCT/US2019/024166 WO2019199453A1 (en) 2018-04-12 2019-03-27 Computerized assistance using artificial intelligence knowledge base

Publications (1)

Publication Number Publication Date
BR112020018013A2 true BR112020018013A2 (pt) 2020-12-22

Family

ID=66102284

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020018013-0A BR112020018013A2 (pt) 2018-04-12 2019-03-27 Assistência computadorizada utilizando base de conhecimentos por inteligência artificial

Country Status (13)

Country Link
US (2) US11593413B2 (pt)
EP (1) EP3776380A1 (pt)
JP (1) JP2021518007A (pt)
KR (1) KR20200141451A (pt)
CN (1) CN111971699A (pt)
AU (1) AU2019253187B2 (pt)
BR (1) BR112020018013A2 (pt)
CA (1) CA3096845A1 (pt)
IL (1) IL277864B1 (pt)
MX (1) MX2020010615A (pt)
PH (1) PH12020551680A1 (pt)
SG (1) SG11202009493PA (pt)
WO (1) WO2019199453A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200012939A1 (en) * 2018-07-07 2020-01-09 Massachusetts Institute Of Technology Methods and Apparatus for Visualization Recommender
US20200074322A1 (en) * 2018-09-04 2020-03-05 Rovi Guides, Inc. Methods and systems for using machine-learning extracts and semantic graphs to create structured data to drive search, recommendation, and discovery
US11151334B2 (en) * 2018-09-26 2021-10-19 Huawei Technologies Co., Ltd. Systems and methods for multilingual text generation field
US10740704B2 (en) * 2018-10-04 2020-08-11 Microsoft Technology Licensing, Llc User-centric browser location
US10733545B2 (en) * 2018-10-04 2020-08-04 Microsoft Technology Licensing, Llc User-centric contextual information for browser
US11080023B2 (en) 2018-11-21 2021-08-03 Kony, Inc. System and method implementing a translation interface within an intelligent digital experience development platform
US11423104B2 (en) * 2019-08-30 2022-08-23 Microsoft Technology Licensing, Llc Transfer model learning for relevance models
KR20210074632A (ko) * 2019-12-12 2021-06-22 엘지전자 주식회사 음소 기반 자연어 처리
US20220188895A1 (en) * 2020-12-14 2022-06-16 Adobe Inc. Product feature extraction from structured and unstructured texts using knowledge base
US11809480B1 (en) * 2020-12-31 2023-11-07 Meta Platforms, Inc. Generating dynamic knowledge graph of media contents for assistant systems
CN113076743A (zh) * 2021-03-30 2021-07-06 太原理工大学 一种基于网络结构和表示学习的知识图多跳推理方法
US20220407925A1 (en) * 2021-06-16 2022-12-22 Avaya Management L.P. Cloud automation fulfillment enabler
US20230186247A1 (en) * 2021-12-14 2023-06-15 Microsoft Technology Licensing, Llc Method and system for facilitating convergence
US12033262B2 (en) * 2022-03-31 2024-07-09 Electronic Arts Inc. Learning character model animations with a layer-wise mixture-of-experts network
US20240211477A1 (en) * 2022-12-27 2024-06-27 Liveperson, Inc. Methods and systems for implementing a unified data format for artificial intelligence systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122744B2 (en) * 2010-10-11 2015-09-01 Next It Corporation System and method for providing distributed intelligent assistance
US9171079B2 (en) * 2011-01-28 2015-10-27 Cisco Technology, Inc. Searching sensor data
US20130297689A1 (en) 2012-05-03 2013-11-07 Cisco Technology, Inc. Activity Stream Tuning Using Multichannel Communication Analysis
US20140201629A1 (en) * 2013-01-17 2014-07-17 Microsoft Corporation Collaborative learning through user generated knowledge
EP3937002A1 (en) * 2013-06-09 2022-01-12 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
US20170024375A1 (en) * 2015-07-26 2017-01-26 Microsoft Technology Licensing, Llc Personal knowledge graph population from declarative user utterances
US11010550B2 (en) * 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10248714B2 (en) * 2015-12-02 2019-04-02 International Business Machines Corporation Protecting domain-specific language of a dialogue service
US11144836B1 (en) * 2017-04-17 2021-10-12 Intuit Inc. Processing and re-using assisted support data to increase a self-support knowledge base
KR102384643B1 (ko) * 2017-08-17 2022-04-08 엘지전자 주식회사 전자 장치 및 그 제어 방법
US11163836B2 (en) * 2018-02-12 2021-11-02 International Business Machines Corporation Extraction of information and smart annotation of relevant information within complex documents

Also Published As

Publication number Publication date
AU2019253187B2 (en) 2023-09-28
IL277864A (en) 2020-11-30
KR20200141451A (ko) 2020-12-18
JP2021518007A (ja) 2021-07-29
US20230161798A1 (en) 2023-05-25
AU2019253187A1 (en) 2020-10-01
CN111971699A (zh) 2020-11-20
WO2019199453A1 (en) 2019-10-17
EP3776380A1 (en) 2021-02-17
MX2020010615A (es) 2020-10-20
PH12020551680A1 (en) 2021-06-07
SG11202009493PA (en) 2020-10-29
US11593413B2 (en) 2023-02-28
CA3096845A1 (en) 2019-10-17
IL277864B1 (en) 2024-07-01
US20190318032A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
BR112020018013A2 (pt) Assistência computadorizada utilizando base de conhecimentos por inteligência artificial
US11514114B2 (en) User-centric contextual information for browser
US11263592B2 (en) Multi-calendar harmonization
US11556865B2 (en) User-centric browser location
US10552218B2 (en) Dynamic context of tasks
US10979237B2 (en) Managing notifications related to collaboratively edited electronic documents based on user roles
CN110178151A (zh) 任务主视图
US11687794B2 (en) User-centric artificial intelligence knowledge base
US20180285480A1 (en) Phantom Results In Graph Queries
CN110088781B (zh) 用于上下文记忆捕获和召回的系统和方法
US20180196866A1 (en) Topic nodes
US11514058B2 (en) Context rules for a graph
US20180268004A1 (en) Rule hierarchies for graph adaptation

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]