YARN/API
Спецификация программного интерфейса YARN
Автор: Дмитрий Усталов при поддержке РГНФ[1]. |
YARN API — программный интерфейс проекта YARN, позволяющий сторонним приложениям использовать электронный тезаурус русского языка. В качестве транспорта используется HTTP.
Слова
Список всех слов
Полный список известных слов с постраничной разбивкой.
GET /words.{json,xml}?page=N
На выходе получается массив с объектами класса Word
.
Поиск по словам
Поиск по известным словам с постраничной разбивкой. Слово начинается с подстроки word
.
GET /words.{json,xml}?q=word&page=N
На выходе получается массив с объектами класса Word
.
Синсеты слова
Список синсетов, включающих слово с указанным идентификатором id.
GET /words/id/synsets.{json,xml}
На выходе получается массив с объектами класса Synset
. Не используйте идентификаторы в массиве words-ids
для поиска слов: эти идентификаторы применяются для реализации связи «многие-ко-многим» в схеме данных и не соответствуют идентификаторам искомых слов.
Синонимы слова
Список слов, фигурирующих в синсетах, включающих слово с указанным идентификатором id.
GET /words/id/synonyms.{json,xml}
На выходе получается массив с объектами класса Word
.
«Сырые» синонимы слова
Список синонимов из «сырых» словарей для слова с указанным идентификатором id.
GET /words/id/raw_synonyms.{json,xml}
На выходе получается массив с объектами класса Word
.
Определения слова
Определения, привязанные в синсетах к слову с указанным идентификатором id.
GET /words/id/definitions.{json,xml}
На выходе получается массив с объектами класса Definition
.
«Сырые» определения слова
Определения из «сырых» словарей для слова с указанным идентификатором id.
GET /words/id/raw_definitions.{json,xml}
На выходе получается массив с объектами класса Definition
.
Примеры употребления слова
Примеры употребления слова, привязанные в синсетах к слову с указанным идентификатором id.
GET /words/id/examples.{json,xml}
На выходе получается массив с объектами класса Example
.
«Сырые» примеры употребления слова
Примеры употребления из «сырых» словарей для слова с указанным идентификатором id.
GET /words/id/raw_examples.{json,xml}
На выходе получается массив с объектами класса Example
.
Определения
Список всех определений
Полный список известных определений с постраничной разбивкой.
GET /definitions.{json,xml}?page=N
На выходе получается массив с объектами класса Definition
.
Определение
Предоставить содержимое определения с заданным id.
GET /definitions/id.{json,xml}
На выходе получается объект класса Definition
.
Синсеты
Список всех синсетов
Полный список известных синсетов с постраничной разбивкой.
GET /synsets.{json,xml}?page=N
На выходе получается массив с объектами класса Synset
. Не используйте идентификаторы в массиве words-ids
для поиска слов: эти идентификаторы применяются для реализации связи «многие-ко-многим» в схеме данных и не соответствуют идентификаторам искомых слов.
Просмотр синсета
Содержимое синсета id.
GET /synsets/id.{json,xml}
На выходе получается объект класса Synset
. Не используйте идентификаторы в массиве words-ids
для поиска слов: эти идентификаторы применяются для реализации связи «многие-ко-многим» в схеме данных и не соответствуют идентификаторам искомых слов.
Поиск слова в синсете
Список синсетов, включающих обозначенное слово word.
GET /synsets/search.{json,xml}?word=кот
На выходе получается массив с объектами класса Synset
. Не используйте идентификаторы в массиве words-ids
для поиска слов: эти идентификаторы применяются для реализации связи «многие-ко-многим» в схеме данных и не соответствуют идентификаторам искомых слов.
Привязки слов к синсетам
Привязка слова к синсету
Данные о привязке слова id.
GET /synset_words/id.{json,xml}
На выходе получается объект класса SynsetWord
.
Примеры словоупотребления
Пример словоупотребления
Пример словоупотребления id в заданном синсете synset_id для привязки слова к синсету synset_word_id.
GET /synsets/synset_id/words/synset_word_id/samples/id.{json,xml}
На выходе получается массив с объектами класса Sample
.
Редактор синсетов
Указанные методы API созданы для внутренних задач и могут возвращать неожиданный результат, быть изменены или вовсе удалены. Пожалуйста, не используйте их! |
Поиск по существующим словам
Поиск выполняется по всем известным словам в тезаурусе, начинающихся с word
.
POST /editor/search.{json,xml}?q=word
На выходе получается массив с объектами класса Word
.
Получение определений заданного слова
Извлечь все определения, которые сопоставлены во всех синсетах слову word_id
GET /editor/definitions.{json,xml}?word_id=7971
На выходе получается массив с объектами класса Definition
, соответствующие слову с идентификатором 1234
.
Получение синонимов с определениями для заданного слова
Извлечь все слова, кроме слова word_id
, к которым тоже привязано определение definition_id
.
GET /editor/synonymes.{json,xml}?word_id=7971&definition_id=5687
На выходе получается хэш, ключи которого — слова-строки, а значения — массивы объекта класса Definition
. NB: разбить на два метода.