Disambiguation
The goal of the disambiguation is to map strings from the template generation to resources, classes and properties. In the following, we detail the input and output of the disambiguation. Then we link to existing implementations, especially the implementation based on the AGDISTIS framework.
Input:
JSON object that abides by the following syntax:
{"question":"Give me shopping facilities near the University of Leipzig"
,"slots" :
[ {"s" : "?x", "p" : "verbalization", "o" : "shopping"},
{"s" : "?x", "p" : "is", "o" : "rdf:Property"},
{"s" : "?y", "p" : "verbalization", "o" : "University of Leipzig"} ] }
The slots are RDF triples which describe how variables were bound to strings and types by the template generation module. Three types are possibles: rdf:Property, rdf:Class and rdf:Resource. All untyped variables are assumed to belong to the resource category. The output of the module looks as follows:
{"question":"Give me shopping facilities near the University of Leipzig",
"ned":[{"score":1,
"entities":
[{"score":1,"var":"?y","value":"http:\/\/dbpedia.org\/resource\/Leipzig_University"}],
"classes":[],
"properties":
[{"score":1,"var":"?x","value":"http:\/\/dbpedia.org\/property\/shoppingMallName"}]}]}
The output is subdivided into disambiguations for entities, classes and properties. Each solution and each disambiguation is assigned a score. Details on the default implementation of disambiguation for OKBQA can be found at the GitHub site. We rely on AGDISTIS for resources and on dictionary lookups based on the trigram similarity for properties and classes.