ValueNet4SPARQL / src / spider / evaluation / output_format.py
output_format.py
Raw
import pandas as pd
from datetime import datetime
class Format(object):
    rows= []
    @staticmethod
    def appendRow(db_name, nl_q, g_str, q_res, sparql_str, sparql_res, hardness, isMatch = None, score = -2, exception = ''):
        q_res_str=', '.join(map(str, q_res))
        sparql_res_str=', '.join(map(str, sparql_res))
        row = {'database': db_name, 'natural language q': nl_q, 'sql': g_str, 'sql_result': q_res_str, 'sparql':sparql_str, 'sparql_result':sparql_res_str, 'difficulty':hardness, 'match': isMatch, 'score': score, 'exception':exception}
        Format.rows.append(row)

    @staticmethod
    def appendRow_SQL(db_name, nl_q, g_str, q_res, p_str, p_res, hardness, isMatch=None, score=-2, exception=''):
        q_res_str = ', '.join(map(str, q_res))
        p_res_str = ', '.join(map(str, p_res))
        row = {'database': db_name, 'natural language q': nl_q, 'sql': g_str, 'sql_result': q_res_str,
               'pred_sql': p_str, 'pred_sql_result': p_res_str, 'difficulty': hardness, 'match': isMatch,
               'score': score, 'exception': exception}
        Format.rows.append(row)

    @staticmethod
    def exportDf():
        df = pd.DataFrame(Format.rows, columns=['database', 'natural language q', 'sql', 'sql_result', 'sparql', 'sparql_result', 'difficulty', 'match', 'score', 'exception'])
        df.to_csv('src/experiments/SparqlPrediction/KG_enriched_ont_voter_1.csv')

    @staticmethod
    def exportDf_SQL():
        df = pd.DataFrame(Format.rows,
                          columns=['database', 'natural language q', 'sql', 'sql_result', 'pred_sql', 'pred_sql_result',
                                   'difficulty', 'match', 'score', 'exception'])
        df.to_csv('src/experiments/SparqlPrediction/ValueNet_baseline_voter_1.csv')