Recuperación / almacenamiento de todos los actores relacionados en Freebase

Estoy tratando de hacer algo que (debería ser) muy simple. Tal vez me esté perdiendo algo.

Quiero obtener una lista completa de las personas con las que una persona ha trabajado. Mi objetivo final es encontrar con quién trabaja más a menudo (en cualquier relación que sea)

Ex:Robert De Niro ha actuado junto con Joe Pesci 7 veces, pero lo ha dirigido dos veces. Quiero una tabla con 9 entradas como resultado.

Puedo usar el tema API, pero eso solo devuelve una lista de películas. Luego tengo que realizar más de 10 consultas API para obtener el reparto de cada película. Toma para siempre y el código es una pesadilla.

Si utilizo la búsqueda MQL, solo puedo buscar películas queRobert De Niro tieneprotagonizó, pero no todas las películas que ha dirigido, o escrito, o producido,o protagonizado. Básicamente solo puedo buscar por 1 rol a la vez.

¿Hay alguna manera mejor? Necesito terminar con una lista de:

Movies

Actors/Crew People

Roles enlaceMovies yPeople

Lo que hago actualmente:

BuscarRobert De Niro y obtener la ID de la máquinaHaga una búsqueda de temas para ese MID, devolviendo una lista de los MID de la película en los que ha trabajadoRealice una búsqueda de temas para cada película MID y registre campos tales como direct_by, starring, produced_by, etc.

Como puedes ver es una operación muy cara. También es extremadamente difícil evitar los duplicados de esta manera (aunque estoy trabajando en ello)

editar: Aquí está mi consulta actual de MQL (por alguna razón, solo funciona si también especifico dos nombres de actores, pero ese es otro problema.

$query = array(array(
                        'a:starring'=>array('actor'=>'Joe Pesci'),
                        'b:starring'=>array('actor'=>'Robert De Niro'),
                        'directed_by'=>null,
                        'produced_by'=>array(),
                        'written_by'=>array(),
                        'executive_produced_by'=>array(),
                            'name'=>null,
                            'mid'=>null,
                        'starring'=>array(array('actor'=>array('mid'=>null,
                                   'name'=>null))),
                        'type'=>'/film/film'
                        ));

El MQL:

    [{
    "a:starring":
        {"actor":"Joe Pesci"},
    "b:starring":
        {"actor":"Robert De Niro"},
    "directed_by":null,
    "produced_by":[],
    "written_by":[],
    "executive_produced_by":[],
    "name":null,
    "mid":null,
    "starring":
        [{"actor":
            {"mid":null,"name":null}}],
    "type":"\/film\/film"}]

Respuestas a la pregunta(2)

Su respuesta a la pregunta