FreeLing  3.0
semdb.h
Go to the documentation of this file.
00001 
00002 //
00003 //    FreeLing - Open Source Language Analyzers
00004 //
00005 //    Copyright (C) 2004   TALP Research Center
00006 //                         Universitat Politecnica de Catalunya
00007 //
00008 //    This library is free software; you can redistribute it and/or
00009 //    modify it under the terms of the GNU General Public
00010 //    License as published by the Free Software Foundation; either
00011 //    version 3 of the License, or (at your option) any later version.
00012 //
00013 //    This library is distributed in the hope that it will be useful,
00014 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016 //    General Public License for more details.
00017 //
00018 //    You should have received a copy of the GNU General Public
00019 //    License along with this library; if not, write to the Free Software
00020 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00021 //
00022 //    contact: Lluis Padro (padro@lsi.upc.es)
00023 //             TALP Research Center
00024 //             despatx C6.212 - Campus Nord UPC
00025 //             08034 Barcelona.  SPAIN
00026 //
00028 
00029 #ifndef _SEMDB
00030 #define _SEMDB
00031 
00032 
00033 #include <string>
00034 #include <list>
00035 
00036 #include "freeling/windll.h"
00037 #include "freeling/morfo/database.h"
00038 #include "freeling/morfo/language.h"
00039 
00040 
00044 
00045 class WINDLL sense_info {
00046  public:
00048   std::wstring sense;
00050   std::list<std::wstring> parents;
00052   std::wstring semfile;
00054   std::list<std::wstring> words;
00056   std::list<std::wstring> tonto;
00057 
00059   sense_info(const std::wstring &,const std::wstring &);
00061   std::wstring get_parents_string() const;
00062 };
00063 
00067 
00068 class posmaprule {
00069  public:
00071   std::wstring pos;
00073   std::wstring wnpos;
00075   std::wstring lemma;
00076 };
00077 
00078 
00082 
00083 class WINDLL semanticDB {
00084  private:
00086   std::list<posmaprule> posmap;
00088   database *form_dict;
00089 
00091   database *sensesdb;
00092   database *wndb;
00093 
00094  public:
00096   semanticDB(const std::wstring &); 
00098   ~semanticDB();
00099  
00101   void get_WN_keys(const std::wstring &, const std::wstring &, const std::wstring &, std::list<std::pair<std::wstring,std::wstring> > &) const;
00103   std::list<std::wstring> get_sense_words(const std::wstring &) const;
00105   std::list<std::wstring> get_word_senses(const std::wstring &, const std::wstring &, const std::wstring &) const;
00107   sense_info get_sense_info(const std::wstring &) const;
00108 };
00109 
00110 #endif
00111