Функции API для получения наименования грамматической категории

int sol_GetCoordName( HGREN hEngine, int CategoryID, wchar_t * NameBuffer )

int sol_GetCoordName8( HGREN hEngine, int CategoryID, char * NameBufferUtf8 )

Аргументы:

hEngine - дескриптор созданного вызовом sol_CreateGrammarEngine экземпляра морфологического словаря.

CategoryID - ID грамматической категории.

NameBuffer - буфер, куда будет записано наименование грамматической категории.

Возвращает:

0 - наименование категории найдено и занесено в буфер.

число<0 - ошибка.

Примечания

Функции sol_GetCoordName и sol_GetCoordName8 отличаются текстовой кодировкой наименования категории. Функция с суффиксом 8 - записывает наименование в кодировке utf-8.

Длина буфера должна быть достаточна для размещения там строки с конечным нулем. Для получения необходимого размера буфера следует использовать функции sol_MaxLexemLen и sol_MaxLexemLen8.

Грамматическую категорию, то есть параметр вызова CategoryID, можно задать либо с использованием символических констант, объявленных в _sg_api.*, либо вызвав sol_FindEnum для поиска ID по имени категории.

В рамках SQL словаря наименования категорий хранятся в таблице SG_COORD.

Функции потокобезопасны.

Грамматические категории, относящиеся к морфологии русского языка, имеют русскоязычные названия, например падеж, род, число, вид, степень. Для морфологии английского языка категории именуются англоязычными терминами, например voice, case, tense, number, но могут встречаться и "композитные" наименования типа ENG_MODALITY.

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

Пример на C++:

#include "solarix_grammar_engine.h"

// ...

HGREN hEngine = sol_CreateGrammarEngineW(L"..\\..\\bin-windows\\dictionary.xml");

//...
int n = sol_MaxLexemLen(hEngine);
wchar *buffer = new wchar_t[n];
sol_GetCoordName( hEngine, CASE_ru, buffer );
// ...
delete [] buffer;
  

Пример на C#:

IntPtr gren = SolarixGrammarEngineNET.GrammarEngine.sol_CreateGrammarEngineW("..\\..\\bin-windows\\dictionary.xml");

// ...
StringBuilder buffer = new StringBuilder( SolarixGrammarEngineNET.GrammarEngine.sol_MaxLexemLen(gren) );
SolarixGrammarEngineNET.GrammarEngine.sol_GetCoordName( gren, CASE_ru, buffer );
// ...

Навигация по API грамматического словаря

Приобретение SDK грамматического словаря

English version of this page

Падеж

Совершенный и несовершенный вид глагола

Степени сравнения прилагательных и наречий

Единственное и множественное число

Женский, мужской и средний род

Время глагола

Класс Coordinate - грамматическая категория в ORM библиотеке

API layer C++ source code: grammar_engine_api.cpp

Вернуться к списку функций API

  © Козиев Илья 2019
изменено 27-Mar-11