Wikimedia,

Hello. With respect to the Wikianswers proposal, I've been striving to find the best level of technical detail. The current revision is available at: https://meta.wikimedia.org/wiki/Wikianswers and your feedback is welcomed.

I would like to follow up with this quick letter about some new (and hopefully interesting) ideas pertaining to answering simple and complex natural-language questions using multiple sources, i.e., Wikipedia ,Wikidata, and Commons. These ideas involve processing natural-language questions to retrieve human-editable procedural knowledge with which to answer the questions.

Artificial intelligence systems can analyze questions (and abstractions and generalizations thereof) for cues which remind the systems of stored recipes or procedures with which to answer the questions. Retrieved recipes or procedures might involve structured queries (e.g., SQL or SPARQL), source code (e.g., Python), "wiki functions", or visualizable diagrams (i.e., human-editable extensible workflow diagrams).

Into more technical detail, instances of questions can be categorized, abstracted over, generalized over, into templates and data. These templates could be used to retrieve bits of abstract procedural knowledge and these data could be used to instantiate the bits of procedural knowledge into concrete structured queries, algorithms, procedures, or workflows.

For clarity, here is an example:
  1. Starting with a question: "What is the population of Montpelier, Vermont?"
  2. Are the question, procedure, and answer cached? If so, provide the cached answer. If not, continue on this sequence.
  3. Abstract or generalize over the question instance, into a template: "What is the population of {{X : City}}?" with data: "X = 'Montpelier, Vermont'"
    1. Or, perhaps, "What is the population of {{X : Q1093829}}?" with "'X = Q26426'"
  4. Using the resultant template and data, retrieve one or more abstract structured queries, algorithms, procedures, or workflows.
  5. Provide these retrieved abstract structured queries, algorithms, procedures, or workflows with the data (X = "Montpelier, Vermont") to produce concrete structured queries, algorithms, procedures, or workflows.
  6. Execute the concrete procedures to obtain candidate answers.
  7. Cache the question, procedure, and answer.

Adding human curation and wiki aspects to the architectures under discussion, editors with adequate privileges might be able to modify or edit the stored recipes or procedures. Editors with adequate privileges might also be able to adjust the weights on the stored recipes or procedures for sorting them during contextual retrieval.

In summary, these ideas intend to describe, beyond "wiki data", "wiki procedures" with which to query multiple data sources with natural-language questions. It may be a bit before I update the proposal with these ideas. I wanted to share them here for discussion purposes. Thank you.


Best regards,
Adam Sobieski