
uk.ac.manchester.cs.atomicdecomposition.AtomicDecomposition Maven / Gradle / Ivy
package uk.ac.manchester.cs.atomicdecomposition;
import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLEntity;
import org.semanticweb.owlapitools.decomposition.AtomList;
import uk.ac.manchester.cs.owlapi.modularity.ModuleType;
/** The atomic decomposition graph */
public interface AtomicDecomposition {
/**
* @param atom
* atom
* @return dependencies for atom, including atom
*/
Set getDependencies(Atom atom);
/**
* @param atom
* atom
* @return dependents for atom, including atom
*/
Set getDependents(Atom atom);
/** @return all atoms */
Set getAtoms();
/** @return all tautologies */
Set getTautologies();
/**
* @param axiom
* the axiom to search
* @return Atom containing axiom
*/
@Nullable
Atom getAtomForAxiom(OWLAxiom axiom);
/** @return map between entities and atoms referencing them */
Map> getTermBasedIndex();
/**
* @param atom
* atom
* @return true if atom is top atom
*/
boolean isTopAtom(Atom atom);
/**
* @param atom
* atom
* @return true if atom is bottom atom
*/
boolean isBottomAtom(Atom atom);
/**
* @param atom
* atom
* @return the connected component for the given atom
*/
Set getRelatedAtoms(Atom atom);
/** @return the set of top atoms */
Set getTopAtoms();
/** @return the set of bottom atoms */
Set getBottomAtoms();
/**
* @param atom
* atom
* @return the set of axioms in the principal ideal for an atom
*/
Set getPrincipalIdeal(Atom atom);
/**
* @param atom
* atom
* @return the signature for a principal ideal for an atom
*/
Set getPrincipalIdealSignature(Atom atom);
/**
* @param atom
* atom
* @param direct
* true if only direct dependencies should be returned
* @return dependencies set for atom; it includes atom
*/
Set getDependencies(Atom atom, boolean direct);
/**
* @param atom
* atom
* @param direct
* true if only direct dependents should be returned
* @return dependents set for atom; it includes atom
*/
Set getDependents(Atom atom, boolean direct);
/**
* @param signature
* signature for the module to extract
* @param useSemantics
* true if semantic extraction should be used
* @param moduletype
* type of module
* @return module stream
*/
Stream getModule(Stream signature, boolean useSemantics, ModuleType moduletype);
/** @return atom list */
AtomList getAtomList();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy