Как включить расширенный MQL при чтении из Freebase API - PullRequest
1 голос
/ 18 декабря 2010

Freebase содержит достаточное количество документации, но не содержит конкретных примеров рабочего кода для многих сценариев.

Один из них - как реализовать (в Python, используя библиотеку Python Freebase) запрос, используя сервис eMQL. Который является расширенной версией их MQL-сервиса. В документации говорится, что вам нужно «установить для параметра envelope значение extended = true», но я не могу понять, как на самом деле это сделать (получить правильный синтаксис).

Вот документ о службе, которую я пытаюсь использовать: http://www.freebase.com/docs/mql_extensions/common#service

Вот пример кода, который я пытаюсь получить, используя расширенный сервис:

query = {
    "extended": True,
    "query": [{
        "id": "/en/settlers_of_catan",
        "/common/topic/weblink": [{
            "description": "Wikipedia",
            "url": None
        }]
    }]
}

result = freebase.sandbox.mqlread(query)

Сбой при ошибке «Тип / тип / объект не имеет расширенного свойства». Мне кажется, это говорит о том, что я на самом деле не устанавливаю расширенное свойство и пытаюсь сделать это не в том месте.

1 Ответ

2 голосов
/ 19 декабря 2010

И ответ прост - передайте настройку конверта (в данном случае 'extended = true' функции mqlread.

result = freebase.sandbox.mqlread(query, extended=True)

Конечно, обратите внимание на заглавную букву T в True.

...