Hi Russell,
You can do this by using external fact sets as follows: a fact set is used at query time to produce an iterator over facts. You can provide an iterator that, when ask for the next fact (next()) pops up a dialog where the end user enters the data to be used to build the next fact. This fact is then returned and used for reasoning. Some possible modifications:
- provide many facts (after one fact has been returned, the iterators hasNext() still returns yes)
- provide one or no facts (yes/true scenario) - the iterator could be empty indicating "no"
- read facts from System.in for old-fashioned command-line applications
Hope this helps, Jens