All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.ac.manchester.cs.atomicdecomposition.AtomicDecomposition Maven / Gradle / Ivy

The newest version!
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 - 2024 Weber Informatics LLC | Privacy Policy