All Projects → DukeNLIDB → NLIDB

DukeNLIDB / NLIDB

Licence: Apache-2.0 license
Natural Language Interface to DataBases

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to NLIDB

Reporting Services Examples
📕 Various example reports I use for SQL Server Reporting Services (SSRS) as well as documents for unit testing, requirements and a style guide template.
Stars: ✭ 63 (-37%)
Mutual labels:  sql-query
Sql Template Tag
ES2015 tagged template string for preparing SQL statements, works with `pg` and `mysql`
Stars: ✭ 132 (+32%)
Mutual labels:  sql-query
wordhoard
This Python module can be used to obtain antonyms, synonyms, hypernyms, hyponyms, homophones and definitions.
Stars: ✭ 78 (-22%)
Mutual labels:  wordnet
Deveeldb
DeveelDB is a complete SQL database system, primarly developed for .NET/Mono frameworks
Stars: ✭ 80 (-20%)
Mutual labels:  sql-query
Ship Hold
data access framework for Postgresql on nodejs
Stars: ✭ 110 (+10%)
Mutual labels:  sql-query
Sublimetext Sqltools
SQLTools for Sublime Text 3
Stars: ✭ 166 (+66%)
Mutual labels:  sql-query
Goqu
SQL builder and query library for golang
Stars: ✭ 984 (+884%)
Mutual labels:  sql-query
AndroidEasySQL-Library
An Easier & Lazier approach to SQL database for Android
Stars: ✭ 28 (-72%)
Mutual labels:  sql-query
Sqlbuilder
A powerful, fast, cross-platform SQL Builder for PHP. Convert your structured data into SQL queries with a fluent style interface and targeting on all the mainstream database (MySQL, PostgreSQL, SQLite)
Stars: ✭ 131 (+31%)
Mutual labels:  sql-query
Database
💾 A database layer with a familiar PDO-like API but much more powerful. Building queries, advanced joins, drivers for MySQL, PostgreSQL, SQLite, MS SQL Server and Oracle.
Stars: ✭ 251 (+151%)
Mutual labels:  sql-query
Minisqlquery
Minimalist SQL Query tool for any .NET DB Provider - SQL, SQLite, SQL CE, Oracle, Access...
Stars: ✭ 103 (+3%)
Mutual labels:  sql-query
Tableqa
AI Tool for querying natural language on tabular data.
Stars: ✭ 109 (+9%)
Mutual labels:  sql-query
Join Monster
A GraphQL to SQL query execution layer for query planning and batch data fetching.
Stars: ✭ 2,395 (+2295%)
Mutual labels:  sql-query
Tabix
Tabix.io UI
Stars: ✭ 1,152 (+1052%)
Mutual labels:  sql-query
SQL-Practice
Solutions to Problems For SQL on Leetcode, Hackerrank & DataLemur
Stars: ✭ 116 (+16%)
Mutual labels:  sql-query
Squid
🦑 Provides SQL tagged template strings and schema definition functions.
Stars: ✭ 57 (-43%)
Mutual labels:  sql-query
Querybuilder
SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Stars: ✭ 2,111 (+2011%)
Mutual labels:  sql-query
Semantic-Textual-Similarity
Natural Language Processing using NLTK and Spacy
Stars: ✭ 30 (-70%)
Mutual labels:  parse-trees
autumn
A Java parser combinator library written with an unmatched feature set.
Stars: ✭ 112 (+12%)
Mutual labels:  parse-trees
Archery
SQL 审核查询平台
Stars: ✭ 3,279 (+3179%)
Mutual labels:  sql-query

Natural Language Interface to DataBases (NLIDB)

The final report is here.

How it works.

  1. Parse the input and map nodes to SQL components and database attributes. nodes_mapping_example gui_nodes_mapping

  2. Adjust the structure of the parse tree to make it syntactically valid. gui_tree_adjustor

  3. Translate the parse tree to an SQL query. gui_translation


change some thing to set CI

Grammar rules of syntactically valid parse trees:

  1. Q -> (SClause)(ComplexCondition)*
  2. SClause -> SELECT + GNP
  3. ComplexCondition -> ON + (leftSubtree*rightSubtree)
  4. leftSubtree -> GNP
  5. rightSubtree -> GNP | VN | MIN | MAX
  6. GNP -> (FN + GNP) | NP
  7. NP -> NN + (NN)*(condition)*
  8. condition -> VN | (ON + VN)

Note:
All terminal nodes are defined in the paper.
+ represents a parent-child relationship.
* represents a sibling relationship.
One Query (Q) can must have one SClause and zero or more ComplexConditions.
A ComplexCondition must have one ON, with a leftSubtree and a rightSubtree.
An NP is: one NN (since an SQL query has to select at least one attribute), whose children are multiple NNs and Conditions. (All other selected attributes and conditions are stacked here to form a wide "NP" tree.)


For developers:

This is a project managed using maven. Just in case, if you don't know about maven, checkout this wonderful tutorial, which you have to pay for though...

Right now it uses the dblp database on local machine. To connect to the database, make sure you have database "dblp" on your localhost with post 5432, accessible to user "dblpuser" with password "dblpuser". Or modify the startConnection() method in class Controller to connect to database.

To get hands on the development, import it into eclipse, but first make sure you've installed the following eclipse plugins:

  1. m2eclipse (for using maven in eclipse)
  2. e(fx)clipse (for using javafx smoothly in eclipse)

To use WordNet inside the project (I'm using MIT JWI as the interface, which is already included in maven pom.xml):

  1. Create a folder "lib" in the project base directory.
  2. Download WordNet into that "lib" directory just created.
  3. Extract the downloaded WordNet.
  4. Finally just make sure "$(basedir)/lib/WordNet-3.0/dict/" exists. (Or you have to modify the path inside class com.dukenlidb.nlidb.model.WordNet.)

The entry point of the application is the com.dukenlidb.nlidb.main() method in UserView class.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].