Escreva uma consulta MQL do FreeBase que recupere tudo sobre um determinado tópico?
Pergunta
Quero escrever uma consulta que recupere tudo o que se sabe sobre um tópico (só precisa ter um nível de profundidade.
Ao trabalhar no Editor MQL do Freebase Eles dão o seguinte exemplo para "tudo o que sabemos sobre Jimi Hendrix":
{
"*" : null,
"name" : "Jimi Hendrix",
"type" : "/music/artist"
}
O problema é que a consulta está vinculada a um tipo "/música/artista" e está apenas recuperando propriedades relacionadas a esse tipo. Se você alterar a consulta para usar um tipo diferente, obterá um conjunto de resultados totalmente diferente.
{
"*" : null,
"name" : "Jimi Hendrix",
"type" : "/people/person"
}
Como posso escrever uma consulta que realmente recupere tudo o que a FreeBase conhece sobre Jimi Hendrix?
Solução
A API de tópico do freeBase pode ser o que você procura:
http://www.freebase.com/experimental/topic/standard?id=/en/jimi_hendrix
A API do tópico pegará todas as propriedades diretamente relacionadas a um tópico no gráfico. A API envolve uma série de consultas MQL para obter todos os dados e saídas no JSON.
Google "API http tópico HTTP" para mais informações.
Outras dicas
Para fazer isso, você precisará de um tipo mais avançado de consulta que analise os links subjacentes (/tipo/link) que compõem o gráfico da base de free. Cada link tem uma fonte, um alvo e uma propriedade atribuída a ele e eles podem ser consultados assim:
[
{
"master_property" : null,
"source" : {
"id" : "/en/jimi_hendrix"
},
"target" : null,
"target_value" : null,
"type" : "/type/link"
}
]
Eles são chamados de links de saída e representam a maioria dos valores que você costuma ver na interface do usuário da Base FreeBase, mas também pode trocar a fonte e o destino para obter uma lista de links de entrada, links isto:
[
{
"master_property" : null,
"source" : null,
"target" : {
"id" : "/en/jimi_hendrix"
},
"type" : "/type/link"
}
]
Esses links incluem propriedades em outros tópicos que se referem a Jimi Hendrix como seu valor e esses valores não são todos mostrados na página da Base Jimi Hendrix para manter o volume de informações em um nível gerenciável.
Depois de um tempo, achamos que este é um caso de uso típico, por isso introduzimos uma API totalmente nova para fazer isso:
http://www.freebase.com/docs/topic_api
Isso fará com que todas as propriedades das consultas acima, bem como mediadores e outras guloseimas.
Observe que, se você deseja todas as propriedades de todos os tópicos da Frebase, você deve usar o dumps de dados E não a linguagem de consulta em tempo de execução (será muitas vezes mais rápida).