/* * 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 * Knowledge handling for text preprocessing \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_*/