Logo

Create
TitleCategoryDescriptionMaintainer
1-20 / 24 show all
StarGraph Disambiguation Module Disambiguation Disambiguation module which uses distributional semantics for mapping terms to entities.andrenfreitas@gmail.com
TGM v1Template generation Description Templator is a module for dependency-driven SPARQL template generation from natural language. Templator takes in a question and generates pseudo-queries as well as a list of strings (so-called slots) for which data from the knowledge base is needed. Approach First, the question is linguistically analysed, annotating it with part-of-speech tags, dependency relations, and semantic role labels. Second, the resulting parse tree is transformed into a template, covering one possibility of the how natural language expressions correspond to constructs in the target SPARQL query. This is the template that is most faithful to the linguistic structure of the question. In order to also account for structural differences between the question and the target query, the template is modified by a sequence of steps that collapse or expand triples, yielding additional templates. The scoring of the templates follows a simple heuristics computing the number of nodes in the query body that are neither projection variables nor slots. In addition, each rewriting operation reduces the score by a predetermined factor. Function 1. NLP tools (e.g. the stanford parser) analyze the input question text into dependency parse tree. 2. Then Templator generates the pseudo query for SPARQL query based on the RULEs within dependency parse tree Scope and limit Current version (March, 2016) focused on the hand-crafted RULEs for dependency parse tree. So that the QA performance depends on the RULEs' quality and coverage. Issues and discusion * How to check/add/edit RULEs? ~/src/main/resources/rules/ - RULEs for English: SRL_rules_en.json - RULEs for Korean: SRL_rules_ko.json At this time (January 13, 2016, at OKBQA 3.5) we can not provide yet the web service to add/edit exist RULEs or use your own RULEs for the OKBQA platform. This web service would be provided before/during OKBQA 4 (http://4.okbqa.org) We believe that good RULEs would improve overall performance of (our/your own) QA system. * Does it works for Korean? It currently works for English and Korean. Yes. We've added simple RULEs for some Korean question words such as "무엇", "누구", "어떤", and "얼마나 많". Of course, this rules cover few cases. Now you can test this sentence: "어떤 강이 서울을 흐르는가?" using the following Sample curl command. * How to deploy it: $ git clone https://github.com/okbqa/templator $ cd templator $ mvn compile exec:java Source code Implementations are available on GitHub: github.com/okbqa/templategeneration github.com/okbqa/templator Contacts While general questions about Templator should be addressed to the original developer, Christina Unger {cunger@cit-ec.uni-bielefeld.de}, Younggyun Hahm {hahmyg@kaist.ac.kr} also can act as a contact point especially for the matter on Korean applications. cunger@cit-ec.uni-bielefeld.de
TGM v2Template generation Description Module for dependency-driven SPARQL template generation from natural language, for English and Korean. It takes in a question and generates pseudo-queries as well as a list of strings (so-called slots) for which data from the knowledge base is needed. Approach First, the question is linguistically analysed, annotating it with part-of-speech tags, dependency relations, and semantic role labels. Second, the resulting parse tree is transformed into a template, covering one possibility of the how natural language expressions correspond to constructs in the target SPARQL query. This is the template that is most faithful to the linguistic structure of the question. The scoring of the templates follows a simple heuristics computing the number of nodes in the query body that are neither projection variables nor slots. A documentation of the rule format can be found in the GitHub repository: https://github.com/okbqa/rocknrole/tree/master/src/main/resources/rules Scope and limit It relies on hand-crafted rules for transforming dependency parses into templates, so its quality and coverage is only as good as the rules. How to deploy it $ git clone https://github.com/okbqa/rocknrole $ cd rocknrole $ ./deploy.sh Contact For general questions and problems, get in touch with Christina Unger {cunger@cit-ec.uni-bielefeld.de}. For questions related to Korean, you can also get in touch with Younggyun Hahm {hahmyg@kaist.ac.kr}.cunger@cit-ec.uni-bielefeld.de
DisambiguatorDisambiguation Description Disambiguator is a module to disambiguate class, properties and resouces within the output of Templator. Each URIs depends on knowledge base what we use. Then SPARQL query would be generated from the output of Disambiguator and Templator using QueryGenerator. Function Disambiguator is a module to disambiguate class, properties and resouces within the output of Templator. For instance, the sentence "Which rivers flow through Seoul?", Disambiguator detects entities using FOX (rivers, flow, Seoul) and disambiguates entities using AGDISTIS. (class:river, dbo:city, res:Seoul) Scope and limit Currently (March, 2016), Disambiguator works for only English. FOX and AGDISTIS-en are used. Also, now Disambiguator identifies entitis within DBpedia URIs only. Issues and discusion Is it work for Korean also? Not yet (January 13, 2016, OKBQA3.5). We have developed AGDISTIS-ko for Korean to disambiguate entities, which has exactly same I/O as well as AGDISTIS. However, there are some remaining works. please refer bellow section. This task would be a one of major tasks at OKBQA4(http://4.okbqa.org) Do you want to develop Korean Disambiguator? If you want, there are two remaining development issue. 1. The NER module including this processe: NER and generate the output as well as the input of AGDISTIS-ko. 2. The Wrapper module: Input: Templator output Output: Disambiguator output Contacts Maintainer: Axel-Cyrille Ngonga Ngomo {ngonga@informatik.uni-leipzig.de} For information about Korean Disambiguator, please contact Younggyun Hahm {hahmyg@kaist.ac.kr}hahmyg@kaist.ac.kr
FORMOther # Description Description # Function Description # Scope and limit Description # Issues and discusion * Issue 1 Description * Issue 2 Description Maintainer: NAME {email}hahmyg@kaist.ac.kr
SparqlatorQuery generation Description It is a wrapper to call the GraphFinder::sparqlator method, using the OKBQA framework API. It takes a template and a disambiguation structures which are produced by a template generation and a disambiguation modules, respectively, and produces a set of SPARQL queries which are supposed to represent the same query need represented by the template and disambiguation. Optionally, the parameter, max_hop may be set to specify the number of maximum hops for each path to be extended to. As it is to specify an integer value (between 1 and 3, usually), it may be simply encoded in the URL (see Web service URL example below). GraphFinder implements the triple variation operations proposed by [1]. Scope and limit The current version implements only the three operations, inversion, split, and instantiation, among the four proposed in [1]. Implementation of the last one, join is remained as a future work. Language dependency GraphFinder is language-independent, and so does the sparqlator module. References Jin-Dong Kim and Kevin Bretonnel Cohen, “Triple Pattern Variation Operations for Flexible Graph Search”, Proceedings of the 1st international workshop on Natural Language Interfaces for Web of Data (NLIWoD), 2014. jindong.kim@gmail.com
C2K 2.0Other C2K is a knowledge acquisition system that extracts triples of DBpedia properties from DBpedia category triples. C2K is proposed by Jiseong Kim, et al., "The Association Rule Mining System for Acquiring Knowledge of DBpedia from Wikipedia Categories", NLP & DBpedia @ ISWC, 2015. jiseong@kaist.ac.kr
Controller 1.1.5Control This module links the inputs and outputs of all modules (template generation modules, disambiguation modules, query generation modules) and returns final answers of an input question string using an answer generation module embedded in the control module. This module supports the address configuration of each module and SPARQL endpoints. The controller 1.1.5 is enhanced version of the initial controller w.r.t. concurrency control and load control. The capability of load control is achieved by adjusting the number of answers to be returned by the additional configuration field ("answer_num"). By adjusting the number of answers, testers can trade off the output time against the output size.jiseong@kaist.ac.kr
Answerer 2014Answer generation Description It is an implementation of the answer generation module on the OKBQA architecture. The module gets a list of SPARQL queries as an input (JSON format) and returns the output (JSON format) with a list of answers with their source SPARQL query. The number of returned answers and the time interval (seconds) of SPARQL querying can be configured by GET parameters; an example is shown below. http://ws.okbqa.org:7744/agm?answer_num=5&query_interval=0.1 If configuration is not provided, the default configuration will be used. The default setting of the configuration is as follows: { "conf": { "answer_num": 5, "query_interval": 0.0 } } Scope and limit This implementation is an initial version of an answer generation module, so there are many functionalities can be added to the implementation. The implementation provides only limited configuration fields in an input JSON, the number of answers to be returned and the interval time of SPARQL querying. There can be many configuration fields that can be useful for the entire pipeline to be efficiently tested. jiseong@kaist.ac.kr
Controller 1.2.0Control Description It is an implementation of the control module on the OKBQA architecture. The module gets question, language, and configuration as an input (JSON format) and returns the output (JSON format) with a list of answers corresponding to the input question with SPARQL queries for getting the answers. Each modules for being used to answer the question can be configured by giving the "conf" field of the input JSON. The example is shown right below. { "string": "Which rivers flow through Seoul?", "language": "en", "conf": { "tgm": ["tgm_address_1", "tgm_address_2", ..., "tgm_address_a"], "dm": ["dm_address_1", "dm_address_2", ..., "dm_address_b"], "qgm": ["qgm_address_1", "qgm_address_2", ..., "qgm_address_c"], "agm": ["agm_address_1", "agm_address_2", ..., "agm_address_d"], "kb": ["kb_address_1", "kb_address_2", ..., "kb_address_e"], "graph_uri": "graph_uri_1", "timelimit": time_limit } } The value of the "timeout" field limits the responding time of each module. If configuration is not provided, the default configuration will be used. The default setting of the configuration is as follows: { "conf": { "tgm": ["http://121.254.173.77:1555/templategeneration/templator/"], "dm": ["http://121.254.173.77:2357/agdistis/run"], "qgm": ["http://121.254.173.77:38401/queries"], "agm": ["http://121.254.173.77:7744/agm"], "kb": ["http://dbpedia.org/sparql"], "graph_uri": "", "timelimit": 10 } } The implementation returns not only answers, but also log messages can be useful for debugging each module by developers. The implementation fully support concurrency control as well. Scope and limit This implementation is an almost initial version of a control module, so there are many functionalities can be added to the implementation. The implementation provides only limited configuration fields in an input JSON, e.g., only addresses of each module. There can be many configuration fields that can be useful for the entire pipeline to be efficiently tested. Currently, KB addresses and a graph URI can be configured independently, which could be undesirable for users who want to specify graph URIs for each KB. It will be revised in the next version of the implementation. jiseong@kaist.ac.kr
TGM Python WrapperTemplate generation This is a template generation module wrapper for python programmers. In the codes, it takes a input by RESTful API and checks whether it is the right form of an input of TGM. The following of the codes are for programmers to implement their own template generation logic. The last of the codes takes an output from the results of programmers' logic and checks whether it is the right form of an TGM output, and then returns it to clients by RESTful API.jiseong@kaist.ac.kr
DM Python WrapperDisambiguation This is a disambiguation module wrapper for python programmers. In the codes, it takes a input by RESTful API and checks whether it is the right form of an input of DM. The following of the codes are for programmers to implement their own disambiguation logic. The last of the codes takes an output from the results of programmers' logic and checks whether it is the right form of an DM output, and then returns it to clients by RESTful API.jiseong@kaist.ac.kr
Controller 2016Control Main changes Extended configuration The arbitrary number of module can be configured. The sequence of modules executed can be configured. A KB address can be configured with a tuple of KB address and graph IRI. Example: a href="https://sites.google.com/site/okbqa4/development/documentation/controller?pli=1 The form of log messages Every output of each module is co-printed with its input. Each log of each module is printed with sorting. Processing times of each module are noticed. Exception messages are simplified. Example: a href="https://sites.google.com/site/okbqa4/development/documentation/controller?pli=1 Limitations Query processing speed (Now resolved) There are a lot of SPARQL queries produced, which causes the entire processing time of the pipeline. One of solutions can be to filter out the queries with scores under a threshold. To do so, a controller should be able to deal with module-scores properly. jiseong@kaist.ac.kr
Answerer 2016Answer generation Main changes It is slightly changed to coherent to controller 2016. Some optimization has been adapted. Limitations Query processing speed (Now resolved) Not yet, AGM 2016 uses scores to prune SPARQL queries to reduce the search space. Currently, the processing time of the entire pipeline is the one of the main issues. In the next version, it can be considered to use of scores to boost up the processing speed. jiseong@kaist.ac.kr
SRDF 1.0Other Description SRDF is a Korean Open Information Extraction system. It is designed to meet the characteristics of Korean and extract multiple relationships between argument(s) and relation(s) within a sentence by using reificaion technique(specifically, singleton property method). It takes a sentence and produces a set of reified triples on lexical format. Scope and limit The current version covers sentences composed from 3 to 10 words. To eliminate restriction of word length, a new version is being developed. References 1. Sangha Nam, et. al., "SRDF: Korean Open Information Extraction using Singleton Property", ISWC (Poster) 2015.nam.sangha@gmail.com
TGM JAVA WRAPPERTemplate generation Description It is a wrapper for Java Template Generation Module(TGM). If you want to develop a new TGM module, you can use it as a template for OKBQA pipeline. Because it has a function for format validation of input and output, and is also developed using REST API. The sample input and output are written by Korean. But you can also using by English. nam.sangha@gmail.com
DM JAVA WRAPPERDisambiguation Description It is a warpper for Java Disambiguation Module(DM). If you want to develop a new DM module, you can use it as a template for OKBQA pipeline. Because it has a function for format validation of input and output, and is also developed using REST API. The sample input and output are written by Korean. But you can also using by English.nam.sangha@gmail.com
En-Ko Local KB 2015Other # DBpedia local endpoint URI http://143.248.135.20:45103/sparql # Graph IRI # English DBpedia http://en.dbpedia2015-04.kaist.ac.kr http://en.dbpedia2015-10.kaist.ac.kr # Korean DBpedia http://ko.dbpedia2015-10.kaist.ac.kr http://ko.dbpedia2015.kaist.ac.kr nam.sangha@gmail.com
KO TGM 2016Template generation Description SenTGM is a SRDF-based Korean Template Generation module for generating SPARQL template from natural language question. SPARQL template follows 'templator' module made by christina unger. Function 1. Translate natural language question to declarative sentence by rules. 2. Run SRDF module for this declarative sentence. 3. Convert SRDF output to SPARQL template. Scope and Limit Translating NLQ to DS is developed very simple. If translate-sub-module is developed better, the overall performance will be raise. References 1. Sangha Nam, et. al., "SRDF: Korean Open Information Extraction using Singleton Property", ISWC (Poster) 2015.nam.sangha@gmail.com
EvaluatorEvaluation Description Evaluator is a module to evaluate given question answering system, based on the user's choice of modules. Users can make use of configuration options to choose which modules to use for the steps of QA system. Once evalutor runs, it sends a natural language question in answer dataset to Controller one-by-one. It compares true answer of the dataset with the answer list from Controller to calculate accuracy of the system. Function Evaluator evaluates the overall QA system using answer set. For instance, let the answer set contains only two sentences, "Which rivers flow through Seoul?" and "Who is the author of 'Samguk Sagi'?" In addition, suppose that Controller success to give correct answer for the former question, but fails for the latter one. Then, Evaluator would return accuracy 1/2 = 0.5 to the user. Scope and limit The only dataset usable for the Evalator is NLQ-1 dataset, which contains question-answer pair for only Korean and English at the moment (March, 2016) with 40 questions in the set. Since Evaluator works for measuring accuracy of the given QA system, it is not suitable for analyzing each test case. For the purpose, you may use website for Controller or website for Evaluator (which supports dump file for each question). Issues and discussion * Is it possible to make use of another answer set like QALD-4? Not yet (January 13, 2016, OKBQA3.5). However, supporting mult-answer sets would be added at OKBQA4(http://4.okbqa.org) * Can I test my own QA system? Since Evaluator calls Controller to retrieve answers of each questions, only QA system following OKBQA system structure (TGM, DM, AGM) is applicable. This structure is targetted for those who want to add their own modules to the OKBQA system structure, and checks the performance of it. Maintainer: Jeong-uk Kim {prismriver@kaist.ac.kr}prismriver@kaist.ac.kr
Create