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'"
* 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