public static void htmlDescribeSiblings(String title, String head, NamedDescription relation, org.powerloom.PrintableStringWriter stream, boolean ruleP) {
    { Cons parentsofsibs = Stella.NIL;

      { LogicObject p = null;
        edu.isi.powerloom.PlIterator iter000 = edu.isi.powerloom.PLI.getDirectSuperrelations(relation, null, null);
        Cons collect000 = null;

        while (iter000.nextP()) {
          p = ((LogicObject)(iter000.value));
          if (OntosaurusUtil.hasChildOtherThanP(((NamedDescription)(p)), relation)) {
            if (collect000 == null) {
              {
                collect000 = Cons.cons(p, Stella.NIL);
                if (parentsofsibs == Stella.NIL) {
                  parentsofsibs = collect000;
                }
                else {
                  Cons.addConsToEndOfConsList(parentsofsibs, collect000);
                }
              }
            }
            else {
              {
                collect000.rest = Cons.cons(p, Stella.NIL);
                collect000 = collect000.rest;
              }
            }
          }
        }
      }
      parentsofsibs = parentsofsibs.sort(Native.find_java_method("edu.isi.powerloom.logic.LogicObject", "objectNameLessThanP", new java.lang.Class [] {Native.find_java_class("edu.isi.powerloom.logic.LogicObject"), Native.find_java_class("edu.isi.powerloom.logic.LogicObject")}));
      OntosaurusUtil.htmlWriteHeaderWithTable(stream, title, head);
      if (parentsofsibs == Stella.NIL) {
        {
          stream.print("<I>");
          stream.print("None");
          stream.println("</I>");
        }
      }
      else {
        {
          stream.print("<DL>");
          { NamedDescription p = null;
            Cons iter001 = parentsofsibs;

            for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
              p = ((NamedDescription)(iter001.value));
              OntosaurusUtil.htmlDescribeOneParentWithSiblings(p, relation, stream);
            }
          }
          stream.println("</DL>");
        }
      }
      if (ruleP) {
        stream.println("<HR SIZE=2>");
      }
      return;
    }
  }