/* * (non-Javadoc) * * @see simplenlg.lexicon.Lexicon#getWordsByID(java.lang.string) */ public List <WordElement> getWordsByID(string id) { // get words from DB try { LexAccessApiResult lexResult = lexdb.GetLexRecords(id); return(getWordsFromLexResult(new LexicalCategory_ANY(), lexResult)); } catch (SQLException ex) { Console.WriteLine("Lexical DB error: " + ex.ToString()); // probably should thrown an exception } return(null); }
/** * return list of WordElement from LexAccessApiResult * * @param category * - desired category (eg, NOUN) (this filters list) * @param lexResult * - the LexAccessApiResult * @return list of WordElement */ private IList <WordElement> getWordsFromLexResult(LexicalCategory category, LexAccessApiResult lexResult) { List <LexRecord> recordList = lexResult.GetJavaObjs(); // set up array of words to return IList <WordElement> wordElements = new List <WordElement>(); // iterate through result records, adding to words as appropriate foreach (LexRecord record in recordList) { if (category.GetLexicalCategory() == LexicalCategory.LexicalCategoryEnum.ANY || category == getSimplenlgCategory(record)) { wordElements.Add(makeWord(record)); } } return(wordElements); }
/****************************************************************************/ // core methods to retrieve words from DB /****************************************************************************/ /* * (non-Javadoc) * * @see simplenlg.lexicon.Lexicon#getWords(java.lang.string, * simplenlg.features.LexicalCategory) */ public List <WordElement> getWords(string baseForm, LexicalCategory category) { // get words from DB try { LexAccessApiResult lexResult = lexdb.GetLexRecordsByBase(baseForm, LexAccessApi.B_EXACT); return(getWordsFromLexResult(category, lexResult)); } catch (SQLException ex) { Console.WriteLine("Lexical DB error: " + ex.ToString()); // probably should thrown an exception } return(null); }
/* * (non-Javadoc) * * @see simplenlg.lexicon.Lexicon#getWordsFromVariant(java.lang.String, * simplenlg.features.LexicalCategory) */ public override IList <WordElement> getWordsFromVariant(string variant, LexicalCategory category) { lock (this) { // get words from DB try { LexAccessApiResult lexResult = lexdb.GetLexRecords(variant); return(getWordsFromLexResult(category, lexResult)); } catch (Exception ex) { Console.WriteLine("Lexical DB error: " + ex.ToString()); // probably should thrown an exception } return(null); } }