Office Graph: A inteligência do Office 365

Recentemente apresentei uma sessão sobre “Office Graph” no Microsoft Developer Tech Refresh, em Lisboa. Tentando ter uma noção sobre o nível de conhecimento da audiência sobre os temas que ía abordar, perguntei quem conhecia o Office Graph e o Office Delve. Fiquei surpreendido por verificar que é um assunto relativamente desconhecido da maioria das pessoas. Na realidade, grande parte dos espetadores que ali estavam a ouvir-me não fazia a mais pequena ideia do que é o Office Graph e, por essa razão, pensei que seria uma boa ideia escrever um artigo introdutório sobre o tema. Vamos então começar pelo início…

O que é um grafo?

Começar pelo início implica explicar o que é um grafo (ou graph, em inglês). Um grafo é um conceito matemático que é também utilizado em computação como uma estrutura de dados, composta por nós (nodes) e arestas (edges). Cada nó representa algum tipo de entidade, e cada aresta uma relação entre duas dessas entidades. Cada aresta pode ainda ter uma direção e armazenar informação.

As redes sociais, como o Facebook, o LinkedIn ou o Yammer, utilizam este tipo de estrutura de dados para representar as relações entre pessoas e os conteúdos armazenados nas mesmas.

Diagrama de um Grafo
Diagrama de um Grafo

O que é o Office Graph?

É mais fácil de explicar o que é o Office Graph descrevendo o que é que este faz. Vamos focar-nos numa pessoa que utiliza o Office 365 nas suas atividades do dia-a-dia enquanto trabalha na sua empresa. Cada ação que esta pessoa realiza envia um sinal para o Office Graph que, depois de processado, pode originar uma nova relação entre dois dos seus nós.

Um sinal é enviado para o Office Graph sempre que:

  • Eu abro um documento no SharePoint Online ou no OneDrive for Business;
  • Um colega partilha um documento comigo;
  • Um colega me envia um email;
  • Um colega me apresenta um slide deck em PowerPoint;
  • Eu realizo um “gesto social”, ou seja, algo como pressionar o botão “like” num conteúdo do Yammer da empresa.

Mas não é apenas de sinais que se alimenta o Office Graph, este também consegue obter informação sobre a minha organização ligando-se ao Azure Active Directory (AAD) da minha organização e ao meu perfil de utilizador no SharePoint Online. A partir desta informação, o Office Graph constrói um mapa organizacional da minha empresa e passa a saber quem é o meu manager e quem é que reporta a mim.

Adicionalmente, o Office Graph utiliza mecanismos de aprendizagem (machine learning) para identificar automaticamente as pessoas com quem eu trabalho ativamente, baseado em quem partilha informação comigo e nas mensagens de correio eletrónico que eu troco com outros utilizadores da minha organização. Por exemplo, se eu recebo frequentemente emails do João e respondo imediatamente, o Office Graph vai inferir que eu trabalho proximamente com ele. Por outro lado, se eu recebo emails da Joana e não respondo ou demoro mais tempo a responder, o Office Graph vai inferir que a relação de trabalho não é tão próxima.

Office Graph
Office Graph – nós (entidades) e arestas (relações)

O Office Graph faz isto para mim e para todos os colegas que trabalham na minha organização, assumindo que eles também usam o mesmo tenant de Office 365. É por isto que o Office Graph é também apelidado de “cérebro do Office 365”.

O que está guardado no Office Graph?

Atualmente, os nós do Office Graph são Documentos e Pessoas mas brevemente haverá novos tipos de nós. O Profile passará a viver no Graph, os Groups também terão os seus próprios nós assim como algumas das ações realizadas pelos utilizadores (que neste momento correspondem apenas a arestas).

Nos eventos Build e Ignite deste ano, a Microsoft partilhou algumas estatísticas impressionantes que nos permitem ter uma ideia da escala que o Office Graph atinge:

  • O Office 365 armazena mais de 70 PetaBytes de informação espalhada por todos os seus tenants. Isto corresponde a mais de 78.812.993.478.983.680 bytes!
  • Foram enviados mais de 60 mil milhões de anexos de email através do Exchange Online;
  • Todos os meses são marcadas 850 milhões de reuniões através do Exchange Online;
  • O Office Graph tem atualmente mais de 4 biliões de nós e 8 mil milhões de relações entre nós (arestas);
  • 25% de todas as relações são entre pessoas.

Esta escala só é possível na nuvem, onde o poder computacional e a capacidade de armazenamento são praticamente ilimitados. É também por isso que o Office Graph não está disponível on premises. No entanto, será possível utilizar uma abordagem híbrida e ligar uma farm de SharePoint Server 2016 on premises a um tenant de Office 365 para tirar partido do Office Graph numa organização. Mas isso terá que ser tema para outro artigo.

É seguro?

Uma questão importante que surge frequentemente quando se fala no Office Graph é a da privacidade. Nem todas as ações realizadas pelos utilizadores são públicas, algumas são privadas:

  • Visualizar um documento é uma ação privada e não será partilhada com outros utilizadores. O número de vezes que eu abro um determinado documento é utilizado para calcular quão importante esse documento é para mim, e quão forte é a minha relação com o autor desse documento. No entanto, essa contagem nunca é partilhada com ninguém.
  • O envio de emails também é uma ação privada, apenas disponível ao remetente e ao destinatário da mensagem de email, assim como  qualquer anexo da referida mensagem.

No que respeita à segurança, o Office Graph respeita as permissões de acesso que foram definidas sobre cada conteúdo, independentemente de este estar armazenado no SharePoint Online, no OneDrive for Business ou no Exchange Online. Cada utilizador conseguirá ver apenas os conteúdos aos quais tem acesso.

O que é o Office Delve?

O Office Delve é uma aplicação web, recentemente adicionada à família de aplicações que constitui o Office 365. Foi anunciada na SPC (SharePoint Conference) em 2014 com o nome de código Oslo (ou Oslo Experience). Começou por ser uma demo interna que mostrava como apresentar a informação armazenada no Office Graph e foi construída pela equipa da Microsoft de Oslo, na Noruega, que anteriormente era parte da FAST antes desta ser adquirida pela Microsoft.

O Office Delve é descrito como uma experiência de Search & Discovery (ou Pesquisa & Descoberta) porque, por um lado, permite-nos fazer pesquisas sobre pessoas e documentos através da introdução de termos numa caixa de pesquisa (a componente de Pesquisa mais tradicional). Por outro lado, apresenta-nos os conteúdos que nos interessam sem que seja necessário pesquisar por eles (a tal componente de Descoberta). Este é, aliás, o seu principal elemento diferenciador e faz com que o Office Delve funcione especialmente bem como a homepage personalizada do Office 365.

A Home Page

Para quem tem uma subscrição de Office 365, o acesso ao Office Delve é feito através do menu de aplicações do Office 365 (pressionando o botão do waffle no canto superior esquerdo) e clicando no ícone do Delve.

Menu do Office 365
Menu do Office 365

É imediatamente apresentada a Home Page que mostra os conteúdos que o Office Graph “pensa” que me interessam. Podem ser conteúdos que eu próprio editei, que algum colega partilhou comigo ou que foram editados por um colega com o qual tenho interações frequentes.

Office Delve – Homepage
Office Delve – Homepage

Do lado esquerdo, o Delve apresenta a lista de pessoas com as quais eu trabalho. São sempre utilizadores que pertencem ao mesmo tenant de Office 365, o que normalmente quer dizer que trabalham na mesma empresa que eu. Esta informação é automaticamente calculada com base nas trocas de emails, documentos partilhados, visualizados e editados.

Office Delve - Cartão
Office Delve – Cartão

Cada conteúdo é apresentado sob a forma de um cartão contendo a seguinte informação:

  1. A razão que justifica que o conteúdo esteja a ser mostrado
  2. O título do conteúdo
  3. Imagem extraída automaticamente do conteúdo
  4. Tipo de conteúdo (ou aplicação associada a este)
  5. Localização do conteúdo
  6. Ícones para partilhar o conteúdo por email, para gerir permissões de acesso e para iniciar uma conversação no Yammer sobre o conteúdo
  7. Botão para adicionar o conteúdo a um Board

Publicado na edição 50 (PDF) da Revista PROGRAMAR.