public static void htmlDescribeFacts(String title, String head, LogicObject relation, org.powerloom.PrintableStringWriter stream, boolean filterRulesP, boolean ruleP) {
    { Cons facts = edu.isi.powerloom.PLI.getPropositionsOf(relation, null, null).consify();
      boolean factWrittenP = false;

      OntosaurusUtil.htmlWriteHeaderWithTable(stream, title, head);
      {
        stream.print("<PRE>");
        facts = facts.sort(Native.find_java_method("edu.isi.powerloom.logic.Proposition", "propositionLessThanP", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.Proposition"), Native.find_java_class("edu.isi.powerloom.logic.Proposition")}));
        { Proposition fact = null;
          Cons iter000 = facts;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
            fact = ((Proposition)(iter000.value));
            if ((!fact.deletedP()) &&
                ((((Boolean)(Logic.$REVERSEPOLARITYp$.get())).booleanValue() ? Proposition.falseP(fact) : (Proposition.trueP(fact) ||
                Proposition.functionWithDefinedValueP(fact))))) {
              if (!(Logic.classP(fact.operator))) {
                if (!(fact.kind == OntosaurusUtil.KWD_EQUIVALENT)) {
                  if (!(filterRulesP &&
                      (fact.kind == OntosaurusUtil.KWD_IMPLIES))) {
                    factWrittenP = true;
                    OntosaurusUtil.pprintObject(fact, stream);
                    {
                      stream.println();
                      stream.println();
                    }
;
                  }
                }
              }
            }
          }
        }
        stream.println("</PRE>");
      }
      if (!(factWrittenP)) {
        {
          stream.print("<I>");
          stream.print("None");
          stream.println("</I>");
        }
      }
      if (ruleP) {
        stream.println("<HR SIZE=2>");
      }
      return;
    }
  }