1. A method for identifying a set of related diagnoses and questions related to a problem in a solution domain having a plurality of nodes, comprising: receiving a constraint at a computing device; searching, by the computing device, the plurality of nodes to generate a first set of related nodes, wherein each node in the first set of related nodes includes: at least a portion of the constraint; a phrase comprising a diagnosis, a problem statement, or a question; a response to the phrase; a type indicator indicating whether the phrase is a diagnosis, problem statement, or a question; and a success counter configured to store a running count of the number of times the respective node has been chosen as a solution to the problem; generating a first phrase list at the computing device, wherein the first phrase list includes one or more of the phrases contained within at least some of the first set of related nodes, each phrase in the first phrase list being selectable; receiving, at the computing device, a selection of one or more phrases from the first phrase list; and searching, by the computing device, the plurality of nodes to generate a second set of related nodes, wherein each node in the second set of related nodes includes any of the one or more phrases selected, and wherein the success counter is used to weight a ranking of the respective node in the second set of related nodes.