public void visit(OWLDisjointClassesAxiom axiom) {
   Set<OWLClassExpression> added = new HashSet<OWLClassExpression>();
   for (OWLClassExpression descA : axiom.getClassExpressions()) {
     for (OWLClassExpression descB : axiom.getClassExpressions()) {
       if (!descA.equals(descB) && !added.contains(descA) && !added.contains(descB)) {
         addChildParent(descA, descB, axiom);
         added.add(descA);
         added.add(descB);
         descA.accept(this);
         descB.accept(this);
       }
     }
   }
 }
예제 #2
0
 @Override
 public void visit(OWLDisjointClassesAxiom axiom) {
   if (axiom.getClassExpressions().size() != 2) {
     for (OWLClassExpression left : axiom.getClassExpressions()) {
       for (OWLClassExpression right : axiom.getClassExpressions()) {
         if (left != right) {
           if (left.equals(subject)) {
             left.accept(this);
             writeSpace();
             write(SUBCLASS);
             writeSpace();
             write(NOT);
             writeSpace();
             right.accept(this);
           } else {
             right.accept(this);
             writeSpace();
             write(SUBCLASS);
             writeSpace();
             write(NOT);
             writeSpace();
             left.accept(this);
           }
           writer.writeNewLine();
         }
       }
     }
   } else {
     Iterator<OWLClassExpression> it = axiom.getClassExpressions().iterator();
     OWLClassExpression descA = it.next();
     OWLClassExpression descB = it.next();
     OWLClassExpression lhs;
     OWLClassExpression rhs;
     if (descA.equals(subject)) {
       lhs = descA;
       rhs = descB;
     } else {
       lhs = descB;
       rhs = descA;
     }
     lhs.accept(this);
     writeSpace();
     write(SUBCLASS);
     writeSpace();
     write(NOT);
     writeSpace();
     rhs.accept(this);
   }
 }
 public void rebuild(OWLDisjointClassesAxiom axiom) {
   for (OWLDescription desc : axiom.getDescriptions()) {
     desc.accept(this);
   }
   Set<OWLDescription> disjointClasses = this.getRelevantDescriptionsAsSet(0);
   this.rebuiltAxioms.add(this.factory.getOWLDisjointClassesAxiom(disjointClasses));
 }
 public Boolean visit(OWLDisjointClassesAxiom axiom) {
   for (OWLClassExpression ce : axiom.getClassExpressions()) {
     if (ce.isAnonymous()) {
       return false;
     }
   }
   return true;
 }
  public void actionPerformed(ActionEvent actionEvent) {
    List<OWLOntologyChange> changes = new ArrayList<OWLOntologyChange>();
    int axiomsRemoved = 0;
    int axiomsAdded = 0;
    int numberOfDisjoints = 0;

    for (OWLOntology ont : getOWLModelManager().getActiveOntologies()) {

      // act on each ontology in turn
      CliqueFinder<OWLClassExpression> merger = new CliqueFinder<OWLClassExpression>();

      Set<OWLDisjointClassesAxiom> oldAxioms = ont.getAxioms(AxiomType.DISJOINT_CLASSES);
      numberOfDisjoints += oldAxioms.size();
      for (OWLDisjointClassesAxiom ax : oldAxioms) {
        merger.add(ax.getClassExpressions());
      }

      for (Set<OWLClassExpression> newAxioms : merger.getResults()) {
        OWLDisjointClassesAxiom newAxiom =
            getOWLModelManager().getOWLDataFactory().getOWLDisjointClassesAxiom(newAxioms);
        if (oldAxioms.contains(newAxiom)) {
          oldAxioms.remove(newAxiom);
        } else {
          changes.add(new AddAxiom(ont, newAxiom));
          axiomsAdded++;
        }
      }

      for (OWLDisjointClassesAxiom oldAxiom : oldAxioms) {
        changes.add(new RemoveAxiom(ont, oldAxiom));
        axiomsRemoved++;
      }
    }
    getOWLModelManager().applyChanges(changes);
    logger.info(
        axiomsRemoved
            + " (of "
            + numberOfDisjoints
            + " total) disjoint class axioms replaced with "
            + axiomsAdded);
  }
예제 #6
0
 @Override
 public void visit(OWLDisjointClassesAxiom axiom) {
   Set<OWLClassExpression> descs = duplicateSet(axiom.getClassExpressions());
   obj = dataFactory.getOWLDisjointClassesAxiom(descs, duplicateAxiomAnnotations(axiom));
 }
 public void visit(OWLDisjointClassesAxiom axiom) {
   type = AXIOM_TYPE_INDEX_BASE + axiom.getAxiomType().getIndex();
 }
 public void visit(OWLDisjointClassesAxiom axiom) {
   for (OWLClassExpression desc : axiom.getClassExpressions()) {
     desc.accept(this);
   }
   processAxiomAnnotations(axiom);
 }