| /* |
| * 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_*/ |