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

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

There is a newer version: 5.5.1
Show 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