2014-11-12 6 views
1

полный новичок с freebase здесь, пытаясь понять, как сделать запрос, чтобы найти /book/book по /book_edition/media_common/cataloged_instance/isbn13.Freebase - запрос media_common на book_edition, чтобы получить/книгу/книгу?

Я попробовал этот запрос и получил эту ошибку: Type /book/book_edition does not have property media_common:

[{ 
    "type": "/book/book", 
    "editions": [{ 
    "media_common": [{ 
     "cataloged_instance": [{ 
     "isbn13": "9780812519112" //example isbn13 from ender's game - https://www.freebase.com/m/04v8gr6 
     }] 
    }] 
    }], 
    "id": null 
}] 

EDIT: это запрос я использовал, чтобы получить устаревшую поле ISBN на book_edition

[{ 
    "type": "/book/book", 
    "editions": [{ 
    "ISBN": "0312932081" 
    }], 
    "id": null 
}] 

ответ

1

Свойство фактически /media_common/cataloged_instance/isbn13 которые вы можете обнаружить, исследуя схему. Потому что это из другого типа, чем ожидаемый типа /book/book/editions (который /book/book_edition вам необходимо использовать полное имя. То же относятся к автору собственности я добавил к ниже запросу.

[{ 
    "type": "/book/book", 
    "editions": [{ 
    "/media_common/cataloged_instance/isbn13": "9780812519112" 
    }], 
    "id": null, 
    "name": null, 
    "/book/written_work/author": null 
}] 

без использования сокращенной нотации, что позволяет нам отказаться от префиксов типа на именах свойств, этот запрос будет выглядеть следующим образом:.

[{ 
    "/book/book/editions": [{ 
    "/media_common/cataloged_instance/isbn13": "9780812519112" 
    }], 
    "/type/object/id": null, 
    "/type/object/name": null, 
    "/book/written_work/author": null 
}] 

расширение имен свойств в их полностью квалифицированные версии может быть сделано механически с помощью обработчика запросов без реального знания схемы Обратно , обход графика рассматривает имена свойств как opaqu строки.

+0

Спасибо Том, он работает. Я был бы признателен, если бы вы могли объяснить, почему ... как вложенный синтаксис, который я использовал в примере, отличном от того, чтобы делать все это как один ключ ... (У меня также были 'издания> media_common> cataloged_instance> isbn13', я думал он делает то же самое – Madd0g

+1

Вы вводите в заблуждение ссылку/край, следуя (что и делает вложенность) с именем свойства. Они (в основном) не связаны друг с другом. Полное имя свойства: '/ media_common/cataloged_instance/isbn13 '. Нет типа'/book_edition '(это '/ book/book_edition'), а свойство' isbn13' ассоциировано с типом '/ media_common/cataloged_instance'. Для целей обхода графика имя свойства является просто opaque string без структуры. –

+0

Я использовал этот синтаксис для запроса обычного значения ISBN (который находится на book_edition), похоже, что у меня еще есть чему поучиться. Спасибо – Madd0g

 Смежные вопросы

  • Нет связанных вопросов^_^