Abstract: Disclosed herein is a method for performing semi-supervised question answering. The method includes the steps of: (i) creating a graph based on input data, the input data comprising natural language text that includes seen questions, background text, and seen answers, and (ii) querying the graph in response to a new question. Querying the graph in response to a new question includes the steps of: projecting the question into the graph to a projected location; and for each node in a retrieval radius associated with the question, determining a set of answer weights based on the distances between retrieved nodes and the projected location and answer weights associated with retrieved nodes based on seen questions; and determining a best response corresponding to the seen answer associated with the highest answer weight from the set of answer weights determined for each retrieved node within the retrieval radius.