Giter Club home page Giter Club logo

smartbenchmark's Introduction

SmartBenchmark (Moved to https://github.com/aorogat/Maestro)

In recent years, a significant number of question answering (QA) systems that retrieve answers to natural language questions from knowledge graphs (KG) have been introduced. However, finding a benchmark to appropriately measure the quality of a question answering system is a difficult task because of (1) the high degree of variation with respect to the fine-grained properties among the available benchmarks; (2) the available benchmarks are static by nature while the KG evolving over time; (3) the existing benchmarks in the literature target only a handful of KGs. We introduce SmartBench, an on-the-fly benchmarking system for QA over KGs systems that can be used to build a QA benchmark over any KG. The benchmark generated by SmartBench is guaranteed to cover all the properties of the natural language questions and queries that were encountered in the literature as long as the targeted KG’s topology demonstrates these properties. Moreover, SmartBench generates benchmarks that follow the same standards and complexity distribution to solve the variation of the fine-grained properties among generated benchmarks.

Features

  • Standardized: We propose a list of standards that need to be met in a benchmark to accurately evaluate a QA system to solve the Variations problem.
  • On-The-Fly: We make the benchmark generation process to be on-the-fly to avoid the Staleness issue. The system builds a new benchmark from the KG just before the evaluation process to guarantee adaptability to the evolving KG.
  • Systematic: Generate complex questions from simple facts in a systematic way (for generalization and scalability).
  • Richness: Generated questions vary in word choice (lexicon) and morphology and syntax (grammar) to evaluate the system’s ability to understand the same question written in different ways.
  • Coverability: We defined the question complexity to use it in tuning SmartBench to cover all possible complexities in real-world deployment.

Paper: ToPublish

Citation

@Article{Orogat2022SmartBench,
  Title                    = {},
  Author                   = {},
  Journal                  = {},
  Year                     = {},
  volume                   = {},
  number                    = {}
}

Table of Content

Getting Started

Prerequisites

SmartBench requires the following development kits and liberaries. You can download the liberaries with the system.

  • for Java [JDK 8, Download liberaries from Lib folder]
  • for Python [Python 3, nltk, inflect, Spacy]

Deploy CBench via jar

  • Download CBench.jar: Download the CBench.jar file and other folders. The project structure must be as follow
projectFolder
│   
└─── SmartBench.jar
│
|─── data
│   |─── benchmark.json
│   |─── src
│       │─── 
│       └─── 
│
└─── lib
    └─── ... All .jar files


  • Run CBench.jar: Using the command java -jar "PATH/TO/projectFolder/SmartBench.jar", run the project.
  • Configure the System: While the system is running, it asks you about some parameters. Theses parameters are
    • KG's name: KG name as you prefer.
    • KG's URL: The URL of SPARQL endpoint of the desired knowledge graph.

Support

Please raise potential bugs on github. If you have a research related question, please send it to this email([email protected])

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.