protected void clausify( OWLAxioms.DisjunctiveRule rule, boolean restrictToNamed, OWLAxiom originalAxiom) { m_headAtoms.clear(); m_bodyAtoms.clear(); m_abstractVariables.clear(); for (SWRLAtom atom : rule.m_body) m_bodyAtoms.add(atom.accept(this)); for (SWRLAtom atom : rule.m_head) m_headAtoms.add(atom.accept(this)); if (restrictToNamed) { for (Variable variable : m_abstractVariables) m_bodyAtoms.add(Atom.create(AtomicConcept.INTERNAL_NAMED, variable)); } DLClause dlClause = DLClause.create( m_headAtoms.toArray(new Atom[m_headAtoms.size()]), m_bodyAtoms.toArray(new Atom[m_bodyAtoms.size()])); Collection<OWLAxiom> originalAxioms = m_dlClauses_map.get(dlClause); if (originalAxioms == null) { originalAxioms = new ArrayList<OWLAxiom>(); m_dlClauses_map.put(dlClause, originalAxioms); } originalAxioms.add(originalAxiom); m_headAtoms.clear(); m_bodyAtoms.clear(); m_abstractVariables.clear(); }
public void visit(SWRLRule rule) { for (SWRLAtom atom : rule.getBody()) { atom.accept(this); } for (SWRLAtom atom : rule.getHead()) { atom.accept(this); } processAxiomAnnotations(rule); }
@Override public void visit(SWRLRule node) { for (SWRLAtom atom : node.getBody()) { atom.accept(this); } for (SWRLAtom atom : node.getHead()) { atom.accept(this); } }
@Override public void visit(SWRLRule rule) { write("SWRLRule"); for (SWRLAtom a : rule.getHead()) { a.accept(this); } write("\\rightarrow"); for (SWRLAtom a : rule.getBody()) { a.accept(this); } }
@Override public SWRLRule visit(SWRLRule node) { Set<SWRLAtom> nodebody = new HashSet<SWRLAtom>(); for (SWRLAtom atom : node.getBody()) { nodebody.add((SWRLAtom) atom.accept(this)); } Set<SWRLAtom> nodehead = new HashSet<SWRLAtom>(); for (SWRLAtom atom : node.getHead()) { nodehead.add((SWRLAtom) atom.accept(this)); } return new SWRLRuleImpl(nodebody, nodehead, NO_ANNOTATIONS); }
@Override public void visit(SWRLRule rule) { Set<SWRLAtom> antecedents = new HashSet<SWRLAtom>(); Set<SWRLAtom> consequents = new HashSet<SWRLAtom>(); for (SWRLAtom atom : rule.getBody()) { atom.accept(this); antecedents.add((SWRLAtom) obj); } for (SWRLAtom atom : rule.getHead()) { atom.accept(this); consequents.add((SWRLAtom) obj); } obj = dataFactory.getSWRLRule(antecedents, consequents); }
public Set<OWLAxiom> write(OWLDataProperty property) { Set<OWLAxiom> axioms = new HashSet<OWLAxiom>(); axioms.addAll(writeEntityStart(DATA_PROPERTY, property)); if (!isFiltered(AxiomType.FUNCTIONAL_DATA_PROPERTY)) { for (OWLOntology ontology : getOntologies()) { SectionMap characteristics = new SectionMap(); for (OWLAxiom ax : ontology.getFunctionalDataPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(FUNCTIONAL.toString(), ax); axioms.add(ax); } } writeSection(CHARACTERISTICS, characteristics, ",", true, ontology); } } if (!isFiltered(AxiomType.DATA_PROPERTY_DOMAIN)) { for (OWLOntology ontology : getOntologies()) { SectionMap domains = new SectionMap(); for (OWLDataPropertyDomainAxiom ax : ontology.getDataPropertyDomainAxioms(property)) { if (isDisplayed(ax)) { domains.add(ax.getDomain(), ax); axioms.add(ax); } } writeSection(DOMAIN, domains, ",", true, ontology); } } if (!isFiltered(AxiomType.DATA_PROPERTY_RANGE)) { for (OWLOntology ontology : getOntologies()) { SectionMap ranges = new SectionMap(); for (OWLDataPropertyRangeAxiom ax : ontology.getDataPropertyRangeAxioms(property)) { if (isDisplayed(ax)) { ranges.add(ax.getRange(), ax); axioms.add(ax); } } writeSection(RANGE, ranges, ",", true, ontology); } } if (!isFiltered(AxiomType.SUB_DATA_PROPERTY)) { for (OWLOntology ontology : getOntologies()) { SectionMap supers = new SectionMap(); for (OWLSubDataPropertyOfAxiom ax : ontology.getDataSubPropertyAxiomsForSubProperty(property)) { if (isDisplayed(ax)) { supers.add(ax.getSuperProperty(), ax); axioms.add(ax); } } writeSection(SUB_PROPERTY_OF, supers, ",", true, ontology); } } if (!isFiltered(AxiomType.EQUIVALENT_DATA_PROPERTIES)) { for (OWLOntology ontology : getOntologies()) { SectionMap props = new SectionMap(); for (OWLEquivalentDataPropertiesAxiom ax : ontology.getEquivalentDataPropertiesAxioms(property)) { if (isDisplayed(ax) && ax.getProperties().size() == 2) { props.add(ax.getPropertiesMinus(property).iterator().next(), ax); axioms.add(ax); } } writeSection(EQUIVALENT_TO, props, ",", true, ontology); } } if (!isFiltered(AxiomType.DISJOINT_DATA_PROPERTIES)) { for (OWLOntology ontology : getOntologies()) { SectionMap props = new SectionMap(); for (OWLDisjointDataPropertiesAxiom ax : ontology.getDisjointDataPropertiesAxioms(property)) { if (ax.getProperties().size() == 2 && isDisplayed(ax)) { props.add(ax.getPropertiesMinus(property).iterator().next(), ax); axioms.add(ax); } } props.remove(property); writeSection(DISJOINT_WITH, props, ",", true, ontology); } } if (!isFiltered(AxiomType.SWRL_RULE)) { for (OWLOntology ontology : getOntologies()) { Set<OWLAxiom> rules = new HashSet<OWLAxiom>(); for (SWRLRule rule : ontology.getAxioms(AxiomType.SWRL_RULE)) { if (isDisplayed(rule)) { for (SWRLAtom atom : rule.getHead()) { if (atom.getPredicate().equals(property)) { writeSection(RULE, rules, "", true, ontology); break; } } } } } } writeEntitySectionEnd(DATA_PROPERTY.toString()); return axioms; }
public Set<OWLAxiom> write(OWLObjectPropertyExpression property) { Set<OWLAxiom> axioms = new HashSet<OWLAxiom>(); axioms.addAll(writeEntityStart(OBJECT_PROPERTY, property)); if (!isFiltered(AxiomType.SUB_OBJECT_PROPERTY)) { for (OWLOntology ontology : getOntologies()) { SectionMap properties = new SectionMap(); for (OWLSubObjectPropertyOfAxiom ax : ontology.getObjectSubPropertyAxiomsForSubProperty(property)) { if (isDisplayed(ax)) { properties.add(ax.getSuperProperty(), ax); axioms.add(ax); } } writeSection(SUB_PROPERTY_OF, properties, ",", true, ontology); } if (renderExtensions) { for (OWLOntology ontology : getOntologies()) { SectionMap properties = new SectionMap(); for (OWLSubObjectPropertyOfAxiom ax : ontology.getObjectSubPropertyAxiomsForSuperProperty(property)) { if (isDisplayed(ax)) { properties.add(ax.getSubProperty(), ax); axioms.add(ax); } } writeSection(SUPER_PROPERTY_OF, properties, ",", true, ontology); } } } if (!isFiltered(AxiomType.EQUIVALENT_OBJECT_PROPERTIES)) { for (OWLOntology ontology : getOntologies()) { SectionMap properties = new SectionMap(); for (OWLEquivalentObjectPropertiesAxiom ax : ontology.getEquivalentObjectPropertiesAxioms(property)) { if (isDisplayed(ax) && ax.getProperties().size() == 2) { Set<OWLObjectPropertyExpression> props = ax.getPropertiesMinus(property); properties.add(props.iterator().next(), ax); axioms.add(ax); } } writeSection(EQUIVALENT_TO, properties, ",", true, ontology); } } if (!isFiltered(AxiomType.DISJOINT_OBJECT_PROPERTIES)) { for (OWLOntology ontology : getOntologies()) { SectionMap properties = new SectionMap(); for (OWLDisjointObjectPropertiesAxiom ax : ontology.getDisjointObjectPropertiesAxioms(property)) { if (ax.getProperties().size() == 2 && isDisplayed(ax)) { Set<OWLObjectPropertyExpression> props = ax.getPropertiesMinus(property); properties.add(props.iterator().next(), ax); axioms.add(ax); } } writeSection(DISJOINT_WITH, properties, ",", true, ontology); } } if (!isFiltered(AxiomType.SUB_PROPERTY_CHAIN_OF)) { for (OWLOntology ontology : getOntologies()) { for (OWLSubPropertyChainOfAxiom ax : ontology.getAxioms(AxiomType.SUB_PROPERTY_CHAIN_OF)) { if (ax.getSuperProperty().equals(property)) { if (isDisplayed(ax)) { SectionMap map = new SectionMap(); map.add(ax.getPropertyChain(), ax); writeSection(SUB_PROPERTY_CHAIN, map, " o ", false, ontology); axioms.add(ax); } } } } } for (OWLOntology ontology : getOntologies()) { SectionMap characteristics = new SectionMap(); if (!isFiltered(AxiomType.FUNCTIONAL_OBJECT_PROPERTY)) { for (OWLFunctionalObjectPropertyAxiom ax : ontology.getFunctionalObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(FUNCTIONAL.toString(), ax); axioms.add(ax); } } } if (!isFiltered(AxiomType.INVERSE_FUNCTIONAL_OBJECT_PROPERTY)) { for (OWLAxiom ax : ontology.getInverseFunctionalObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(INVERSE_FUNCTIONAL.toString(), ax); axioms.add(ax); } } } if (!isFiltered(AxiomType.SYMMETRIC_OBJECT_PROPERTY)) { for (OWLAxiom ax : ontology.getSymmetricObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(SYMMETRIC.toString(), ax); axioms.add(ax); } } } if (!isFiltered(AxiomType.TRANSITIVE_OBJECT_PROPERTY)) { for (OWLAxiom ax : ontology.getTransitiveObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(TRANSITIVE.toString(), ax); axioms.add(ax); } } } if (!isFiltered(AxiomType.REFLEXIVE_OBJECT_PROPERTY)) { for (OWLAxiom ax : ontology.getReflexiveObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(REFLEXIVE.toString(), ax); axioms.add(ax); } } } if (!isFiltered(AxiomType.IRREFLEXIVE_OBJECT_PROPERTY)) { for (OWLAxiom ax : ontology.getIrreflexiveObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(IRREFLEXIVE.toString(), ax); axioms.add(ax); } } } if (!isFiltered(AxiomType.ASYMMETRIC_OBJECT_PROPERTY)) { for (OWLAxiom ax : ontology.getAsymmetricObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { characteristics.add(ASYMMETRIC.toString(), ax); axioms.add(ax); } } } writeSection(CHARACTERISTICS, characteristics, ",", true, ontology); } if (!isFiltered(AxiomType.OBJECT_PROPERTY_DOMAIN)) { for (OWLOntology ontology : getOntologies()) { SectionMap expressions = new SectionMap(); for (OWLObjectPropertyDomainAxiom ax : ontology.getObjectPropertyDomainAxioms(property)) { if (isDisplayed(ax)) { expressions.add(ax.getDomain(), ax); axioms.add(ax); } } writeSection(DOMAIN, expressions, ",", true, ontology); } } if (!isFiltered(AxiomType.OBJECT_PROPERTY_RANGE)) { for (OWLOntology ontology : getOntologies()) { SectionMap expressions = new SectionMap(); for (OWLObjectPropertyRangeAxiom ax : ontology.getObjectPropertyRangeAxioms(property)) { if (isDisplayed(ax)) { expressions.add(ax.getRange(), ax); axioms.add(ax); } } writeSection(RANGE, expressions, ",", true, ontology); } } if (!isFiltered(AxiomType.INVERSE_OBJECT_PROPERTIES)) { for (OWLOntology ontology : getOntologies()) { Set<OWLObjectPropertyExpression> properties = new TreeSet<OWLObjectPropertyExpression>(); for (OWLInverseObjectPropertiesAxiom ax : ontology.getInverseObjectPropertyAxioms(property)) { if (isDisplayed(ax)) { if (ax.getFirstProperty().equals(property)) { properties.add(ax.getSecondProperty()); } else { properties.add(ax.getFirstProperty()); } axioms.add(ax); } } writeSection(INVERSE_OF, properties, ",", true, ontology); } } if (!isFiltered(AxiomType.SWRL_RULE)) { for (OWLOntology ontology : getOntologies()) { Set<OWLAxiom> rules = new HashSet<OWLAxiom>(); for (SWRLRule rule : ontology.getAxioms(AxiomType.SWRL_RULE)) { if (isDisplayed(rule)) { for (SWRLAtom atom : rule.getHead()) { if (atom.getPredicate().equals(property)) { rules.add(rule); // XXX attempted patching writeSection(RULE, rules, ",", true, ontology); break; } } } } } } writeEntitySectionEnd(OBJECT_PROPERTY.toString()); return axioms; }
public Set<OWLAxiom> write(OWLClass cls) { Set<OWLAxiom> axioms = new HashSet<OWLAxiom>(); axioms.addAll(writeEntityStart(CLASS, cls)); if (!isFiltered(AxiomType.EQUIVALENT_CLASSES)) { for (OWLOntology ontology : getOntologies()) { SectionMap equivalentClasses = new SectionMap(); for (OWLEquivalentClassesAxiom ax : ontology.getEquivalentClassesAxioms(cls)) { if (ax.getClassExpressions().size() == 2) { if (isDisplayed(ax)) { for (OWLClassExpression equivCls : ax.getClassExpressionsMinus(cls)) { equivalentClasses.add(equivCls, ax); } axioms.add(ax); } } } equivalentClasses.remove(cls); writeSection(EQUIVALENT_TO, equivalentClasses, ",", true, ontology); } } if (!isFiltered(AxiomType.SUBCLASS_OF)) { for (OWLOntology ontology : getOntologies()) { SectionMap superclasses = new SectionMap(); for (OWLSubClassOfAxiom ax : ontology.getSubClassAxiomsForSubClass(cls)) { if (isDisplayed(ax)) { superclasses.add(ax.getSuperClass(), ax); axioms.add(ax); } } writeSection(SUBCLASS_OF, superclasses, ",", true, ontology); } if (renderExtensions) { for (OWLOntology ont : getOntologies()) { SectionMap subClasses = new SectionMap(); for (OWLSubClassOfAxiom ax : ont.getSubClassAxiomsForSuperClass(cls)) { if (isDisplayed(ax)) { subClasses.add(ax.getSubClass(), ax); axioms.add(ax); } } writeSection(SUPERCLASS_OF, subClasses, ",", true, ont); } } } if (!isFiltered(AxiomType.DISJOINT_CLASSES)) { for (OWLOntology ontology : getOntologies()) { Set<OWLAxiom> pairwiseDisjointClassesAxioms = new HashSet<OWLAxiom>(); SectionMap disjointClasses = new SectionMap(); for (OWLDisjointClassesAxiom ax : ontology.getDisjointClassesAxioms(cls)) { if (isDisplayed(ax)) { if (ax.getClassExpressions().size() == 2) { pairwiseDisjointClassesAxioms.add(ax); OWLClassExpression disjointWith = ax.getClassExpressionsMinus(cls).iterator().next(); disjointClasses.add(disjointWith, ax); } axioms.add(ax); } } writeSection(DISJOINT_WITH, disjointClasses, ", ", false, ontology); if (renderExtensions) { // Handling of nary in frame style for (OWLDisjointClassesAxiom ax : ontology.getDisjointClassesAxioms(cls)) { if (isDisplayed(ax)) { if (ax.getClassExpressions().size() > 2) { Set<OWLClassExpression> allDisjointClasses = new TreeSet<OWLClassExpression>(ax.getClassExpressions()); allDisjointClasses.remove(cls); axioms.add(ax); writeSection(DISJOINT_CLASSES, allDisjointClasses, ", ", false, ontology); } } } } } } if (!isFiltered(AxiomType.HAS_KEY)) { for (OWLOntology ontology : getOntologies()) { for (OWLHasKeyAxiom ax : ontology.getHasKeyAxioms(cls)) { if (isDisplayed(ax)) { SectionMap map = new SectionMap(); map.add(ax.getPropertyExpressions(), ax); writeSection(HAS_KEY, map, ", ", true, ontology); } } } } if (!isFiltered(AxiomType.CLASS_ASSERTION)) { for (OWLOntology ontology : getOntologies()) { SectionMap individuals = new SectionMap(); for (OWLClassAssertionAxiom ax : ontology.getClassAssertionAxioms(cls)) { if (isDisplayed(ax)) { if (renderExtensions || ax.getIndividual().isAnonymous()) { individuals.add(ax.getIndividual(), ax); axioms.add(ax); } } } writeSection(INDIVIDUALS, individuals, ",", true, ontology); } } if (!isFiltered(AxiomType.SWRL_RULE)) { for (OWLOntology ontology : getOntologies()) { Set<OWLAxiom> rules = new HashSet<OWLAxiom>(); for (SWRLRule rule : ontology.getAxioms(AxiomType.SWRL_RULE)) { if (isDisplayed(rule)) { for (SWRLAtom atom : rule.getHead()) { if (atom.getPredicate().equals(cls)) { writeSection(RULE, rules, ", ", true, ontology); break; } } } } } } writeEntitySectionEnd(CLASS.toString()); return axioms; }