YARN/API

Материал из NLPub

Спецификация программного интерфейса 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: разбить на два метода.

Примечания

  1. Исследование выполняется при финансовой поддержке РГНФ (проект № 13-04-12020 «Новый открытый электронный тезаурус русского языка»).