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

org.coode.oppl.search.solvability.QuerySolver Maven / Gradle / Ivy

There is a newer version: 5.0.0
Show newest version
package org.coode.oppl.search.solvability;

import java.util.Set;

import org.semanticweb.owlapi.model.OWLClass;
import org.semanticweb.owlapi.model.OWLClassExpression;
import org.semanticweb.owlapi.model.OWLNamedIndividual;
import org.semanticweb.owlapi.model.OWLObjectPropertyExpression;

/** @author Luigi Iannone */
public interface QuerySolver {
    /** Retrieves all the named classes that are a sub-classes of the input
     * OWLClassExpression. The implementation decides whether and how much
     * inference is used for determining the sub-class relationship.
     * 
     * @param superClass
     *            superClass
     * @return A Set of OWLClass instances. */
    Set getSubClasses(OWLClassExpression superClass);

    /** Retrieves all the named classes that are a super-classes of the input
     * OWLClassExpression. The implementation decides whether and how much
     * inference is used for determining the sub-class relationship.
     * 
     * @param subClass
     *            subClass
     * @return A Set of OWLClass instances. */
    Set getSuperClasses(OWLClassExpression subClass);

    /** Determines whether the input OWLClassExpression has no sub-class. The
     * implementation decides whether and how much inference is used for
     * determining the sub-class relationship. Please notice that owl:Nothing
     * must not be taken into account.
     * 
     * @param superClass
     *            superClass
     * @return {@code true} is the input superClass does not have any sub-class
     *         except for owl:Nothing. */
    boolean hasNoSubClass(OWLClassExpression superClass);

    /** Determines whether the input OWLClassExpression has no super-class. The
     * implementation decides whether and how much inference is used for
     * determining the sub-class relationship. Please notice that owl:Thing
     * must not be taken into account.
     * 
     * @param subClass
     *            subClass
     * @return {@code true} is the input subClass does not have any super-class
     *         except for owl:Thing. */
    boolean hasNoSuperClass(OWLClassExpression subClass);

    /** Retrieves all the named individuals that can be inferred to be fillers
     * for the input subject and object property expression
     * 
     * @param subject
     *            subject
     * @param objectProperty
     *            objectProperty
     * @return a Set of OWLNamedIndividual instances */
    Set getNamedFillers(OWLNamedIndividual subject,
            OWLObjectPropertyExpression objectProperty);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy