示例#1
0
  private void renderObjectProperty(OWLOntology ontology, OWLObjectProperty prop)
      throws OWLException {
    //	String key = "defprimrole";

    if (!definedURIs.contains(prop.getURI())) {
      pw.println(" (defprimrole " + shortForm(prop) + ")");
      definedURIs.add(prop.getURI());
    }

    // 	if ( prop.isTransitive( ontology ) ) {
    // 	    pw.print(" :transitive T");
    // 	}

    /* ?? */
    if (prop.isInverseFunctional(ontology)) {
      pw.print(" (functional");
      pw.print(" (inv " + shortForm(prop) + ")");
      pw.println(" )");
    }

    if (!prop.getSuperProperties(ontology).isEmpty()) {
      //	    pw.print(" :supers ( ");
      for (Iterator it = prop.getSuperProperties(ontology).iterator(); it.hasNext(); ) {
        OWLObjectProperty sup = (OWLObjectProperty) it.next();
        //		pw.print(" ;; Super");

        pw.print(" (implies_r ");
        pw.print(shortForm(prop));
        pw.print(" ");
        pw.print(shortForm(sup));
        pw.println(")");
      }
      //	    pw.print(")");
    }

    //	pw.println(")");

    if (prop.isFunctional(ontology)) {
      pw.print(" (functional");
      pw.print(" " + shortForm(prop));
      pw.println(" )");
    }

    if (prop.isTransitive(ontology)) {
      pw.print(" (transitive");
      pw.print(" " + shortForm(prop));
      pw.println(" )");
    }

    for (Iterator it = prop.getDomains(ontology).iterator(); it.hasNext(); ) {
      pw.println(" ;; Domain " + shortForm(prop));
      pw.print(" (domain " + shortForm(prop) + " ");
      OWLDescription dom = (OWLDescription) it.next();
      visitor.reset();
      dom.accept(visitor);
      pw.println(visitor.result() + " )");
    }
    for (Iterator it = prop.getRanges(ontology).iterator(); it.hasNext(); ) {
      pw.println(" ;; Range " + shortForm(prop));
      pw.print(" (range " + shortForm(prop) + " ");
      OWLDescription dom = (OWLDescription) it.next();
      visitor.reset();
      dom.accept(visitor);
      pw.println(visitor.result() + " )");
    }

    if (prop.isSymmetric(ontology)) {
      pw.println(" ;; Symmetry ");
      pw.println(" (equal_r " + " " + shortForm(prop) + " " + "(inv " + shortForm(prop) + " ))");
    }

    for (Iterator it = prop.getInverses(ontology).iterator(); it.hasNext(); ) {
      pw.println(" ;;Inverse " + shortForm(prop));

      pw.print(" (equal_r " + " " + shortForm(prop) + " " + "(inv ");
      OWLObjectProperty inv = (OWLObjectProperty) it.next();
      visitor.reset();
      inv.accept(visitor);
      pw.println(visitor.result() + " ))");
    }
    pw.println();
  }