Architecture‎ > ‎

Template generation

A Template Generation module is supposed to take in a natural language query, and to produce what we call pseudo queries. A pseudo query determines the structure of a SPARQL query which may represent the input query. At this stage, query entities are extracted from the natural language query, and a SPARQL structure is constructed using them. While resolution of the entities to URIs will be performed by the following module, a Disambiguation module, construction of the scaffold of SPARQL query, and delivery of structurized information about the query entities are the responsibility of a Template Generation module.

INPUT

An input to a TGM consists of a question (string) and a language tag (string):

{ "string": " ", "language": " " }

Output

Output is a list of pseudo queries together with slot descriptions. A pseudo query with corresponding slot descriptions is supposed to represent the input query. In a pseudo query, all the terms are represented as variables which we call slots. While the slots are to be replaced with corresponding terms by a following module, a disambiguator, providing information about the slots is a reponsibility of a template generation module. Optionally, a pesudo query with slot descriptions may be scored, for later use for disambiguation or answer evaluation.

[
  {
    "query": "SELECT|ASK v1 WHERE {v1 ...}",
    "slots": [ { "s": "v1", "p": "...", "o": "..." } ],
    "score": 0.0
  }
]

Example

[

  1. {
    • query: "SELECT ?v4 WHERE { ?v4 ?v2 ?v6 ; ?v7 ?v3 . } ",
    • score: "1.0",
    • slots: [
      1. {
        • o: "rdf:Property",
        • p: "is",
        • s: "v2"
        },
      2. {
        • o: "flow",
        • p: "verbalization",
        • s: "v2"
        },
      3. {
        • o: "rdf:Resource|rdfs:Literal",
        • p: "is",
        • s: "v6"
        },
      4. {
        • o: "Seoul",
        • p: "verbalization",
        • s: "v6"
        },
      5. {
        • o: "<http://lodqa.org/vocabulary/sort_of>",
        • p: "is",
        • s: "v7"
        },
      6. {
        • o: "rdf:Class",
        • p: "is",
        • s: "v3"
        },
      7. {
        • o: "rivers",
        • p: "verbalization",
        • s: "v3"
        }
      ]
    }

]

Related work

The idea of template generation is also exploited in the following question answering systems: