Methodology
How movaindia builds an answer
Seven steps, in order. Every one of them is in the source code, and every one of them is described here as it actually behaves — including where it stops.
The process
- Read the question. The question is read for its subject and its type. Words like "who", "when", "where", "how many" and their Hindi equivalents set what kind of answer is wanted; the remaining words become the subject to search for. A question with two parts is split, and each part is answered separately.
- Find the sources. The subject is searched twice — once with the whole question, once with just the subject words — because the two rank differently in English and in Hindi. The two lists are merged by rank. Which outside services are asked depends on the subject: a medical question reaches Europe PMC and PubMed, a computing one reaches DBLP, a space one reaches the NASA image library.
- Choose the article. The shortlist is compared against the question and the best match is kept. A title that merely shares a word with the question is not enough; similarity between the title and the subject counts.
- Sift the sentences. Every sentence of the chosen article is scored against the question by how rare and how relevant its words are. The score is then adjusted for what the question wants: a sentence carrying a plausible date wins a "when" question, one carrying a name wins a "who", a definition wins a "what". Citations, navigation boxes and "see also" sections are removed first, and page furniture — breadcrumbs, licence notes — is filtered out.
- Read outside the article. The same question is put to the text the outside services returned — a paper's abstract, a Wikisource or Wikibooks page, a definition — and ranked by the same method. A source contributes only when it genuinely answers; when none does, no section is shown.
- Build the answer. The strongest sentences become the direct answer, one to a line. The rest become the point-by-point list, each naming the section it came from. Dates and numbers taken from the article's own tables and infoboxes are shown as structured facts.
- Show the sources. Every answer names the article, the edition, the retrieval date and the page revision id, which pins the text to an exact version. Each point links to its section. Each outside source links to its own page.
What is deliberately not done
- No model writes the answers. Every sentence on an answer page is a sentence a source published. Nothing is paraphrased, summarised by a model, or invented.
- No claim is made without a source. If the sources do not answer the question, the page says so instead of choosing the nearest sentence and presenting it as an answer.
- No confidence score is shown. A "92% match" would look like a calibrated probability and would not be one. The page reports the match as strong, partial, or not enough evidence — which is what the method can honestly support.
- No tracking. There is no analytics script, no account and no advertising. What you type stays on your device except for the topic that is sent to the services that might answer it — the privacy page lists them.
- No thin pages in bulk. The topic and question pages are a chosen set, not a generated one. A page is published when it has something real to say.
Where the limits are
- The ranking is keyword-based. An optional on-device model can re-order the sentences by meaning, but it is off by default and it writes nothing.
- An answer is only as good as the source it came from. If an article is incomplete or wrong, the answer inherits that.
- Different sources can disagree. Where the answer depends on one article, the page names that article so you can judge it yourself.
How to check any of this
The whole method is in the public repository:
github.com/galeoindus/movaindia.
The ranking is in assets/js/rank.js and assets/js/answer.js, the
source adapters are in assets/js/sources.js and assets/js/research.js,
and the tests that check the answers are in tests/.