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

int sol_GetCoordStateName( HGREN hEngine, int CategoryID, int AttrID, wchar_t * NameBuffer )

int sol_GetCoordStateName8( HGREN hEngine, int CategoryID, int AttrID, char * NameBufferUtf8 )

Аргументы:

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

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

AttrID - ID грамматического атрибута в категории.

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

Возвращает:

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

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

Примечания

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

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

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

В рамках SQL словаря наименования атрибутов хранятся в таблице SG_STATE.

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

Грамматические признаки, относящиеся к морфологии русского языка, имеют русскоязычные названия, например вин для категории падеж, жен для категории род, ед и мн для категории число. Для морфологии английского языка категории обычно именуются англоязычными терминами.

Пример на 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_GetCoordStateName( hEngine, CASE_ru, ACCUSATIVE_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_GetCoordStateName( gren, CASE_ru, ACCUSATIVE_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