public static Iterator helpMemoizeFetchEdbQuery(Proposition proposition, LogicObject database, Stella_Object arguments) {
    { String queryid = null;
      Cons outputargs = Stella.NIL;
      PropertyList parameters = null;
      NamedDescription relation = Logic.getDescription(((Surrogate)(proposition.operator)));
      OutputStringStream params = OutputStringStream.newOutputStringStream();

      { Object [] caller_MV_returnarray = new Object[2];

        queryid = RDBMS.normalizeFetchQueryArguments(proposition, arguments, caller_MV_returnarray);
        outputargs = ((Cons)(caller_MV_returnarray[0]));
        parameters = ((PropertyList)(caller_MV_returnarray[1]));
      }
      { Stella_Object key = null;
        Stella_Object value = null;
        Cons iter000 = parameters.thePlist;
        int i = Stella.NULL_INTEGER;
        int iter001 = 1;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest.rest, iter001 = iter001 + 1) {
          key = iter000.value;
          value = iter000.rest.value;
          i = iter001;
          if ((key == null) ||
              (value == null)) {
            return (null);
          }
          if (i > 1) {
            params.nativeStream.print("&");
          }
          params.nativeStream.print(StringWrapper.unwrapString(((StringWrapper)(key))));
          value = Logic.argumentBoundTo(value);
          if (value == null) {
            return (null);
          }
          params.nativeStream.print("=" + RDBMS.coercePowerloomObjectToString(value, null));
        }
      }
      { String temp000 = StringWrapper.unwrapString(((StringWrapper)(Logic.accessBinaryValue(database, RDBMS.SGT_RDBMS_HOST))));

        { int temp001 = IntegerWrapper.unwrapInteger(((IntegerWrapper)(Logic.accessBinaryValue(database, RDBMS.SGT_RDBMS_PORT))));

          { String temp002 = StringWrapper.unwrapString(((StringWrapper)(Logic.accessBinaryValue(database, RDBMS.SGT_RDBMS_TASK_ID))));

            { String temp003 = StringWrapper.unwrapString(((StringWrapper)(Logic.accessBinaryValue(database, RDBMS.SGT_RDBMS_SUBTASK_ID))));

              { String temp004 = StringWrapper.unwrapString(((StringWrapper)(Logic.accessBinaryValue(database, RDBMS.SGT_RDBMS_DB_NAME))));

                { ConsIterator value000 = RDBMS.parseFetchXmlAnswer(((Cons)(RDBMS.runFetchQuery(((temp000 != null) ? temp000 : "pegasus2.isi.edu"), ((temp001 != Stella.NULL_INTEGER) ? temp001 : 8080), queryid, ((temp002 != null) ? temp002 : "TASK"), ((temp003 != null) ? temp003 : "SUBTASK"), ((temp004 != null) ? temp004 : "EELD-DATABASE"), params.theStringReader()))), relation, outputargs).allocateIterator();

                  return (value000);
                }
              }
            }
          }
        }
      }
    }
  }