8 #ifndef CORPUSQUERYGENERATOR_H
9 #define CORPUSQUERYGENERATOR_H
10 #include "../../Grammatica/Grammar Structure/Grammar-with-Map/cfgzero.h"
11 #include "../../Grammatica/Syntax-Tree/parser.h"
12 #include "../../Grammatica/Syntax-Tree/syntaxtree.h"
13 #include "../../CONFIG/config.h"
14 #include "../../CONFIG/nlp_exception.h"
36 mInsertHeader =
"INSERT INTO ontology ";
39 string getQueryOf (
const SyntaxTree& sentence);
40 string getInsertionQuery(
const vector<SyntaxWord> &WordList);
41 string getQuestionQuery (
const vector<SyntaxWord> &WordList,
const SyntaxObject& SObjBeingAsked);
58 case SentenceType::ST_INVALID:
61 case SentenceType::DECLARATIVE:
62 return getInsertionQuery(sentence.
getAll());
64 case SentenceType::INTERROGATIVE:
67 case SentenceType::IMPERATIVE:
84 set<SyntaxObject> SPO;
90 switch (w.getSyntax ()) {
91 case SyntaxObject::SUBJECT:
92 case SyntaxObject::MAINVERB:
93 case SyntaxObject::INDIRECTOBJ:
94 case SyntaxObject::DIRECTOBJ:
96 columnToFill += syntaxDBLookUp[w.getSyntax ()];
99 valueToFill += w.getWord ().getName ();
106 columnToFill = columnToFill.substr (0, columnToFill.size () - 1);
107 valueToFill = valueToFill. substr (0, valueToFill.size () - 1);
108 string result = mInsertHeader +
"(" + columnToFill +
")" +
" VALUES ("
109 + valueToFill +
");";
126 string query =
"SELECT " + syntaxDBLookUp[SObjBeingAsked] +
" FROM ontology WHERE ";
128 if(sw.getSyntax () != SObjBeingAsked && sw.getSyntax () != S_INVALID) {
129 query += syntaxDBLookUp[sw.getSyntax()] +
" LIKE ";
130 query += (
"'" + sw.getWord ().getTokenString () +
"%'");
134 query = query.substr (0, query.size () - 5);
SyntaxObject askingFor() const
SyntaxTree::askingFor Gets the syntaxobject the question is asking for, if it is a question...
Definition: syntaxtree.cpp:231
std::vector< SyntaxWord > getAll() const
SyntaxTree::getAll Gets all of the syntax words.
Definition: syntaxtree.cpp:196
string getQueryOf(const SyntaxTree &sentence)
getQueryOf
Definition: CorpusQueryGenerator.h:54
Definition: nlp_exception.h:24
SyntaxObject
Definition: config.h:167
SentenceType getSentenceType() const
SyntaxTree::getSentenceType gets the sentence type.
Definition: syntaxtree.cpp:223
The QueryGenerator class.
Definition: CorpusQueryGenerator.h:28
string getInsertionQuery(const vector< SyntaxWord > &WordList)
see implementation for comment
Definition: CorpusQueryGenerator.h:82
string getQuestionQuery(const vector< SyntaxWord > &WordList, const SyntaxObject &SObjBeingAsked)
QueryGenerator::getQuestionQuery From a structure of wordlist, generate valid query.
Definition: CorpusQueryGenerator.h:119
Definition: nlp_exception.h:16
QueryGenerator()
Empty constructor.
Definition: CorpusQueryGenerator.h:34
The SyntaxWord class Container for a Word and a Syntax Identifier.
Definition: syntaxword.h:10
The SyntaxTree class The Tree specialized for holding syntax and words INHERITS: from Tree...
Definition: syntaxtree.h:68