1:- module(toplevel_variable_names, []).

Utility LOGICMOO TOPLEVEL VARIABLE NAMES

Allows manipulation of variables that were used in the query.

    8:- set_module(class(library)).    9
   10
   11user:expand_query(Goal, Expanded, Bindings, ExpandedBindings):- fail,
   12    % Have vars to expand and varnames are empty
   13    quietly((Bindings\==[],prolog_load_context(variable_names,Vs), Vs ==[])), % this prevents the loop
   14    b_setval('$variable_names', Bindings),  
   15    debug(expand_query,'~q',[b_setval('$variable_names', Bindings)]),
   16    expand_query(Goal, Expanded, Bindings, ExpandedBindings).
   17
   18
   19
   20/*
   21
   22
   23user:expand_query(Goal, Expanded, Bindings, ExpandedBindings):-    
   24    % Have vars to expand and varnames are empty
   25    quietly((Bindings\==[],prolog_load_context(variable_names,Vs), Vs ==[])),
   26    b_setval('$variable_names', Bindings),  % this prevents the loop
   27    debug(expand_query,'~q',[b_setval('$variable_names', Bindings)]),
   28    (toplevel_variables:expand_query(Goal, Expanded0, Bindings, ExpandedBindings0) -> true; 
   29      (Goal = Expanded0, Bindings = ExpandedBindings0)),
   30    (user:expand_query(Expanded0, Expanded, ExpandedBindings0, ExpandedBindings) -> true ; 
   31     (Expanded0 = Expanded, ExpandedBindings0 = ExpandedBindings)).
   32
   33
   34*/