2010-10-25 2 views
4

J'essaye d'écrire une requête MQL pour formater un résultat de recherche dans freebase (le paramètre "output" dans l'API de recherche). Je veux essentiellement trouver les valeurs (simples) de toutes les propriétés d'un résultat de recherche donné (sans rien savoir sur les types de résultat a priori). Par "simple", je veux dire seulement les propriétés par défaut si les valeurs sont des objets complexes. Par exemple, si je recherche "Yo La Tengo" et que cela m'amène au résultat pour "/ en/yo_la_tengo", je veux pouvoir obtenir les membres du groupe (j'ai juste besoin de noms, pas d'instruments ou de dates commencé), les albums (encore, juste les noms), les films ont contribué (encore, juste les noms), etcFreebase: Mettre en forme le résultat de recherche pour lister toutes les propriétés de l'objet de type (s) inconnu (s)

Y at-il un moyen simple de faire cela avec une requête de sortie de recherche, étant donné que je ne sais rien sur les types? J'imagine qu'il y a une sorte de magie de réflexion que je peux utiliser, et j'ai essayé de me débrouiller avec "/ type/reflect", mais je n'arrive à rien. Je suis tout nouveau à MQL (bien que j'ai une grande expérience SQL), donc c'est un peu intimidant. Des idées? Pour clarifier, je pense que le problème que je vois est dû à des types de médiateurs comme «performance» (un acteur dans un film) ou «mariage». Par exemple, avec une requête sur Yo La Tengo, je peux voir la plupart (toutes?) L'information qui m'intéresse, mais une requête similaire à propos de [The Muppet Movie] (freebase.com/api/service/search?limit=1 & mql_output =% 5B% 7B% 22% 2Ftype% 2Freflect% 2Fany_reverse% 22% 3A% 5B% 7B% 7D% 5D% 2C% 22% 2Ftype% 2Freflect% 2Fany_master% 22% 3A% 5B% 7B% 7D% 5D% 2C% 22% 2Ftype% 2Freflect% 2Fany_value% 22% 3A% 5B% 7B% 7D% 5D% 7D% 5D & query = Le% 20Muppet% 20Movie - désolé, SO pense que je suis un spammeur donc je ne peux pas en faire un lien), je ne vois pas du tout la référence de Frank Oz (probablement parce que sa performance est référencée à la place). Existe-t-il un moyen générique de «suivre» les types de médiateurs pour obtenir toutes leurs propriétés? Par exemple, existe-t-il une seule sortie MQL qui me permettrait d'obtenir l'acteur dans une performance (lorsqu'il est lié à un résultat de recherche de film) et donner le conjoint dans un mariage (lorsqu'il est lié à une personne)?

Répondre

1

AFAIK il n'y a aucun moyen de le faire dans MQL pur et simple, mais vous pouvez:

  1. obtenir toutes les propriétés d'un objet ou d'un type d'objet, puis
  2. construire Programmatically une autre requête MQL pour obtenir les objets dont vous voulez en savoir plus.

Regardez this example:

[{ 
    "type|=": [ 
    "/film/actor", 
    "/tv/tv_actor", 
    "/celebrities/celebrity" 
    ], 
    "*": [{}] 
}]​ 

Il saisit toutes les propriétés de tous les objets qui ont le type acteur, tv_actor ou célébrité. Lorsque vous l'exécutez, vous verrez tous les points de "suivi" possibles que vous pouvez explorer.

Ce n'est pas exactement ce que vous voulez, mais cela devrait vous rapprocher.

2

En interrogeant non seulement toutes les propriétés, mais en suivant ces propriétés, une autre profondeur dans le graphique pour tous les résultats de recherche va être une opération incroyablement coûteuse. Quel est le cas d'utilisation pour cela? Avez-vous vraiment une interface utilisateur où l'utilisateur peut voir et absorber efficacement toutes ces informations? Pour répondre directement à la question, il n'est pas possible de décompresser automatiquement les types de médiateurs en utilisant mql_output dans l'API de recherche.

Je suggère de combiner un ensemble d'informations de base sur la requête de recherche avec un ensemble plus profond d'informations sur un sujet que l'utilisateur a exprimé son intérêt (par exemple en survolant). Cette expérience de l'interface utilisateur serait similaire à celle de Freebase Suggest. Au cours des années depuis que la question a été posée à l'origine, d'autres éléments utiles ont été ajoutés, tels que la pseudo-propriété "notable" qui vous permet de voir à quoi le sujet est important.

de tout le monde bien sûr besoin de se déplacer vers la nouvelle API, de sorte que les requêtes seraient: https://www.googleapis.com/freebase/v1/search?query=%22the%20muppet%20movie%22&limit=1&indent=true

https://www.googleapis.com/freebase/v1/topic/en/the_muppet_movie

Questions connexes