Conceitos básicos

Se você não conhece o Freebase, esta seção aborda a terminologia e os conceitos básicos necessários para entender como ele funciona.

  1. Gráficos
  2. Temas
  3. Tipos e propriedades
  4. Domínios e IDs
  5. Tipos de valores compostos
  6. MIDs de tópicos
  7. Namespaces, chaves e IDs de tópicos
  8. Mais sobre propriedades
  9. Resumo

Gráficos

Os dados do Freebase são armazenados em uma estrutura chamada grafo. Um gráfico é composto de nós conectados por arestas. No Freebase, os nós são definidos usando /type/object e as arestas são definidas usando /type/link. Ao armazenar os dados como um gráfico, o Freebase pode percorrer rapidamente conexões arbitrárias entre tópicos e adicionar facilmente um novo esquema sem precisar mudar a estrutura dos dados.

Tópicos

O Freebase tem mais de 39 milhões de tópicos sobre entidades do mundo real, como pessoas, lugares e objetos. Como os dados da Freebase são representados em um gráfico, esses tópicos correspondem aos nós dele. No entanto, nem todos os nós são um tópico. Consulte a seção sobre CVTs como exemplo de nós que não são tópicos.

Exemplos de tipos de temas encontrados na Freebase:

Alguns tópicos são notáveis porque contêm muitos dados (por exemplo, Wal-Mart), e alguns são notáveis porque se vinculam a muitos outros tópicos, potencialmente em diferentes domínios de informação. Por exemplo, temas abstratos como amor, pobreza, cavalheirismo etc. não têm muitas propriedades associadas a eles, mas aparecem com frequência como assuntos de livros, poemas, filmes etc., o que os torna mais notáveis.

Tipos e propriedades

Um determinado assunto pode ser visto de várias perspectivas diferentes. Por exemplo:

  • Bob Dylan foi compositor, cantor, artista, autor de livros e ator de cinema.
  • Leonardo da Vinci foi pintor, escultor, anatomista, arquiteto, engenheiro…
  • O amor é um assunto de livro, de filme, de peça, de poesia...;
  • Qualquer cidade é um local, possivelmente um destino turístico e um empregador de funcionários públicos.

Para capturar essa natureza multifacetada de muitos temas, apresentamos o conceito de tipos na Freebase. Os tópicos na Freebase podem ter qualquer número de tipos atribuídos a eles. O tópico sobre Bob Dylan é atribuído a vários tipos: compositor, compositor musical, artista musical (cantor), autor de livros etc. Cada tipo tem um conjunto diferente de propriedades relevantes para ele. Por exemplo,

  • O tipo "artista musical" contém uma propriedade que lista todos os álbuns produzidos por Bob Dylan, bem como todos os instrumentos musicais que ele tocava.
  • O tipo de autor de livro contém uma propriedade que lista todos os livros escritos ou editados por Bob Dylan, bem como sua escola de pensamento ou movimento de escrita.
  • O tipo de empresa contém muitas propriedades para listar fundadores, membros do conselho, empresa controladora, divisões, funcionários, produtos, registros de receita e lucro ano a ano etc.

Assim, um tipo pode ser considerado um contêiner conceitual de propriedades mais usadas para descrever um aspecto específico das informações. É possível pensar em um tipo como análogo a uma tabela relacional. Cada tabela de "tipo" tem uma chave externa na tabela de "identidade", que define exclusivamente cada tópico.

Domínios e IDs

Assim como as propriedades são agrupadas em tipos, os tipos são agrupados em domínios. Pense nos domínios como as seções do seu jornal favorito: negócios, estilo de vida, artes e entretenimento, política, economia etc. Cada domínio recebe um ID (identificador), por exemplo,

O ID de um domínio se parece com um caminho de arquivo ou um caminho em um endereço da Web.

Cada tipo também recebe um ID, que é baseado no domínio a que ele pertence. Por exemplo, o tipo "Empresa" pertence ao domínio "Empresas" e recebe o ID /business/company. Veja outros exemplos:

Assim como um tipo herda o início do ID do domínio, uma propriedade também herda o início do ID do tipo a que pertence. Por exemplo, a propriedade "Setor" do tipo "Empresa" (usada para especificar em qual setor uma empresa está) recebe o ID /business/company/industry. Veja outros exemplos:

Assim, mesmo que os tipos não sejam organizados em hierarquias na Freebase, os domínios, tipos e propriedades recebem IDs conceitualmente organizados em uma hierarquia semelhante a um diretório de arquivos.

Tipos de valores compostos

Um tipo de valor composto é um tipo na Freebase usado para representar dados em que cada entrada consiste em vários campos. Os tipos de valores compostos (CVT, na sigla em inglês) são usados na Freebase para representar dados complexos. Pode ser um pouco confuso no início, mas as CVT são uma parte muito importante do esquema da Freebase e permitem modelar com mais precisão relações complexas entre temas.

Por exemplo, a população de uma cidade muda com o tempo. Isso significa que, sempre que você consulta a Freebase sobre população, está pedindo implicitamente a população em uma determinada data. Dois valores estão envolvidos: um número de pessoas e a data. Confira uma situação em que uma CVT é extremamente útil. Sem um, para modelar dados populacionais, você precisaria criar um tópico e nomeá-lo como "População de Vancouver em 1997", por exemplo, e enviar as informações.

Uma CVT pode ser considerada um tópico que não exige um nome de exibição. As CVT's, assim como os tópicos normais, têm um GUID que pode ser referenciado de forma independente. No entanto, o cliente Freebase trata esses itens de maneira muito diferente dos tópicos. Na maioria dos casos, todas as propriedades da CVT devem ser de desambiguação.

MIDs de tópicos

Embora um tema possa ou não ser identificável por IDs de namespace/chave, ele sempre pode ser identificado com um MID, um identificador de máquina, que consiste em /m/ seguido por um identificador exclusivo de base 32. Os MIDs são atribuídos aos tópicos no momento da criação e gerenciados durante todo o ciclo de vida do tópico. Eles desempenham um papel fundamental quando os tópicos são mesclados ou divididos, permitindo que aplicativos externos rastreiem o tópico lógico, mesmo que a identidade física do Freebase (o GUID do tópico) mude. Os IDs gerados por máquina diferem de outros IDs legíveis por humanos do Freebase (retornados pela propriedade "id") porque são:

  • Garantia de existência
  • Gerado por máquina
  • Criado para oferecer suporte à comparação off-line
  • Não foi projetado para transmitir significado aos humanos
  • Curta (possivelmente de comprimento fixo)
  • Ideal para troca rápida de chaves entre sistemas e componentes externos (externo, troca)

Os MIDs são o identificador recomendado para abordar temas na Freebase.

Namespaces, chaves e IDs de tópicos

A hierarquia de diretórios de arquivos de IDs de domínio, tipo e propriedade é apenas uma aplicação de um conceito mais geral: namespaces e chaves. Um namespace é como um diretório de arquivos, e uma chave é como um nome de arquivo. Assim como todos os nomes de arquivos em um diretório precisam ser exclusivos entre si, todas as chaves em um namespace também precisam ser exclusivas entre si.

Como um exemplo mais específico, /business é o namespace correspondente ao domínio "Business". Nele, os tipos relacionados a empresas recebem chaves (por exemplo, company) que são únicos entre si. O ID de cada tipo é formado anexando a chave ao ID do namespace (por exemplo, /business/company).

Existem vários tipos de namespaces além dos que correspondem a domínios e tipos. O mais importante e encontrado com frequência é o namespace /en. Esse é o namespace em inglês em que a maioria dos tópicos conhecidos pode receber chaves exclusivas para formar IDs legíveis em inglês. Por exemplo, o prolífico Bob Dylan é tão conhecido que o tópico dele no Freebase recebe a chave bob_dylan no namespace /en. Assim, o ID do tópico é /en/bob_dylan. Com esse ID, você pode acessar o tópico dele no cliente da Web com o URL simples

Mais sobre propriedades

O último conceito básico a ser discutido envolve uma grande diferença entre as propriedades do Freebase e sua analogia em tecnologias de banco de dados relacionais, ou seja, colunas de tabelas relacionais. Para cada linha, uma coluna de tabela relacional pode conter apenas um valor. Por exemplo, considere uma tabela relacional típica de "livro" com uma coluna chamada "autor". Para cada linha na tabela "book", a coluna "author" só pode conter uma chave externa para uma tabela "author". Se um livro tiver vários autores, esse design de esquema relacional simples não vai funcionar, e teremos que criar uma nova tabela para modelar as autorias. Ou seja, precisaríamos de uma tabela "book", uma "author" e uma "authorship" para armazenar as relações de n para n entre livros e autores. E a maneira de recuperar dados muda radicalmente quando você troca de um projeto de esquema para outro.

Ao contrário das tecnologias de banco de dados convencionais, o Freebase considera as propriedades de vários valores tão desejáveis na modelagem de dados da vida real que as oferece por padrão. Ou seja, quando a propriedade /book/written_work/author foi criada, ela foi considerada para permitir vários autores por livro, e você pode consultar uma propriedade de vários valores e uma de valor único exatamente da mesma forma. Não é necessário pensar se você precisa fazer uma junção com uma terceira tabela que modela a relação de n para n.

Resumo

  • Um tipo é um contêiner conceitual de propriedades relacionadas, geralmente necessárias para descrever um determinado aspecto de um tópico.
  • Um tópico pode receber um ou mais tipos (o tipo padrão é /common/topic).
  • Assim como as propriedades são agrupadas em tipos, os tipos são agrupados em domínios.
  • Domínios, tipos e propriedades recebem IDs em uma hierarquia de namespace/chave.
  • Os tópicos comuns e conhecidos recebem IDs no namespace /en, que são strings em inglês legíveis.
  • Os tópicos são identificados exclusivamente no Freebase por GUIDs.
  • As propriedades são de vários valores por padrão, e as propriedades de vários valores e de valor único podem ser consultadas da mesma forma.