147 lines
6.2 KiB
C
147 lines
6.2 KiB
C
/*
|
|
* Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
/**
|
|
* @file picokpr.h
|
|
*
|
|
* knowledge handling for text preprocessing
|
|
*
|
|
* Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
|
|
* All rights reserved.
|
|
*
|
|
* History:
|
|
* - 2009-04-20 -- initial version
|
|
*
|
|
*/
|
|
/**
|
|
* @addtogroup picokpr
|
|
|
|
* <b> Knowledge handling for text preprocessing </b>\n
|
|
*
|
|
*/
|
|
|
|
#ifndef PICOKPR_H_
|
|
#define PICOKPR_H_
|
|
|
|
#include "picoos.h"
|
|
#include "picoknow.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#if 0
|
|
}
|
|
#endif
|
|
|
|
|
|
/* ************************************************************/
|
|
/* function to create specialized kb, */
|
|
/* to be used by picorsrc only */
|
|
/* ************************************************************/
|
|
|
|
pico_status_t picokpr_specializePreprocKnowledgeBase(picoknow_KnowledgeBase this,
|
|
picoos_Common common);
|
|
|
|
|
|
/* ************************************************************/
|
|
/* preproc type and getPreproc function */
|
|
/* ************************************************************/
|
|
|
|
/* maximal array length in preproc knowledge */
|
|
#define NPPMaxStrArrLen 100000000
|
|
#define NPPMaxLexCatArrLen 65536
|
|
#define NPPMaxAttrValLen 65536
|
|
#define NPPMaxOutItemArrLen 65536
|
|
#define NPPMaxTokArrLen 65536
|
|
#define NPPMaxProdArrLen 65536
|
|
#define NPPMaxCtxArrLen 65536
|
|
|
|
/* array offset types */
|
|
typedef picoos_uint32 picokpr_StrArrOffset;
|
|
typedef picoos_uint16 picokpr_LexCatArrOffset;
|
|
typedef picoos_uint16 picokpr_AttrValArrOffset;
|
|
typedef picoos_uint16 picokpr_OutItemArrOffset;
|
|
typedef picoos_uint16 picokpr_TokArrOffset;
|
|
typedef picoos_uint16 picokpr_ProdArrOffset;
|
|
typedef picoos_uint16 picokpr_CtxArrOffset;
|
|
|
|
typedef picoos_uchar * picokpr_VarStrPtr;
|
|
|
|
typedef picoos_int16 picokpr_LexCat;
|
|
typedef picoos_uint32 picokpr_TokSetNP;
|
|
typedef picoos_uint32 picokpr_TokSetWP;
|
|
|
|
/* preproc types */
|
|
typedef struct picokpr_preproc * picokpr_Preproc;
|
|
|
|
/* return kb preproc for usage in PU */
|
|
picokpr_Preproc picokpr_getPreproc(picoknow_KnowledgeBase this);
|
|
|
|
|
|
/* *****************************************************************************/
|
|
/* access routines */
|
|
/* *****************************************************************************/
|
|
|
|
/* knowledge base access routines for strings in StrArr */
|
|
extern picokpr_VarStrPtr picokpr_getVarStrPtr(picokpr_Preproc preproc, picokpr_StrArrOffset ofs);
|
|
extern picoos_bool picokpr_isEqual (picokpr_Preproc preproc, picoos_uchar str[], picoos_int32 len__9, picokpr_StrArrOffset str2);
|
|
extern picoos_bool picokpr_isEqualHead (picokpr_Preproc preproc, picoos_uchar str[], picoos_int32 len__10, picokpr_StrArrOffset head);
|
|
extern picoos_bool picokpr_isEqualMid (picokpr_Preproc preproc, picoos_uchar str[], picoos_int32 len__11, picokpr_StrArrOffset mid);
|
|
extern picoos_bool picokpr_isEqualTail (picokpr_Preproc preproc, picoos_uchar str[], picoos_int32 len__12, picokpr_StrArrOffset tail);
|
|
|
|
/* knowledge base access routines for lexical categories in LexCatArr */
|
|
extern picokpr_LexCat picokpr_getLexCat(picokpr_Preproc preproc, picokpr_LexCatArrOffset ofs);
|
|
|
|
/* knowledge base access routines for AttrVal fields in AttrValArr */
|
|
extern picoos_int32 picokpr_getAttrValArrInt32(picokpr_Preproc preproc, picokpr_AttrValArrOffset ofs);
|
|
|
|
/* knowledge base access routines for out items fields in OutItemArr */
|
|
extern picokpr_StrArrOffset picokpr_getOutItemStrOfs(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs);
|
|
extern picokpr_VarStrPtr picokpr_getOutItemStr(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs);
|
|
extern picoos_int32 picokpr_getOutItemType(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs);
|
|
extern picoos_int32 picokpr_getOutItemVal(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs);
|
|
extern picokpr_OutItemArrOffset picokpr_getOutItemArgOfs(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs);
|
|
extern picokpr_OutItemArrOffset picokpr_getOutItemNextOfs(picokpr_Preproc preproc, picokpr_OutItemArrOffset ofs);
|
|
|
|
/* knowledge base access routines for tokens in TokArr */
|
|
extern picokpr_TokSetNP picokpr_getTokSetNP(picokpr_Preproc preproc, picokpr_TokArrOffset ofs);
|
|
extern picokpr_TokSetWP picokpr_getTokSetWP(picokpr_Preproc preproc, picokpr_TokArrOffset ofs);
|
|
extern picokpr_TokArrOffset picokpr_getTokNextOfs(picokpr_Preproc preproc, picokpr_TokArrOffset ofs);
|
|
extern picokpr_TokArrOffset picokpr_getTokAltLOfs(picokpr_Preproc preproc, picokpr_TokArrOffset ofs);
|
|
extern picokpr_TokArrOffset picokpr_getTokAltROfs(picokpr_Preproc preproc, picokpr_TokArrOffset ofs);
|
|
extern picokpr_AttrValArrOffset picokpr_getTokAttribOfs(picokpr_Preproc preproc, picokpr_TokArrOffset ofs);
|
|
|
|
/* knowledge base access routines for productions in ProdArr */
|
|
extern picoos_int32 picokpr_getProdArrLen(picokpr_Preproc preproc);
|
|
extern picoos_int32 picokpr_getProdPrefCost(picokpr_Preproc preproc, picokpr_ProdArrOffset ofs);
|
|
extern picokpr_StrArrOffset picokpr_getProdNameOfs(picokpr_Preproc preproc, picokpr_ProdArrOffset ofs);
|
|
extern picokpr_TokArrOffset picokpr_getProdATokOfs(picokpr_Preproc preproc, picokpr_ProdArrOffset ofs);
|
|
extern picokpr_TokArrOffset picokpr_getProdETokOfs(picokpr_Preproc preproc, picokpr_ProdArrOffset ofs);
|
|
|
|
/* knowledge base access routines for contexts in CtxArr */
|
|
extern picoos_int32 picokpr_getCtxArrLen(picokpr_Preproc preproc);
|
|
extern picokpr_StrArrOffset picokpr_getCtxCtxNameOfs(picokpr_Preproc preproc, picokpr_CtxArrOffset ofs);
|
|
extern picokpr_StrArrOffset picokpr_getCtxNetNameOfs(picokpr_Preproc preproc, picokpr_CtxArrOffset ofs);
|
|
extern picokpr_StrArrOffset picokpr_getCtxProdNameOfs(picokpr_Preproc preproc, picokpr_CtxArrOffset ofs);
|
|
|
|
/* knowledge base access routines for preprocs */
|
|
extern picokpr_VarStrPtr picokpr_getPreprocNetName(picokpr_Preproc preproc);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#endif /*PICOKPR_H_*/
|