org.semanticweb.elk.owl.inferences.ElkInference Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elk-proofs Show documentation
Show all versions of elk-proofs Show documentation
Utilities to present tracing results (encoded proofs) to the
user
/*
* #%L
* ELK Proofs Package
* $Id:$
* $HeadURL:$
* %%
* Copyright (C) 2011 - 2016 Department of Computer Science, University of Oxford
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
package org.semanticweb.elk.owl.inferences;
import org.liveontologies.puli.Inference;
import org.semanticweb.elk.owl.interfaces.ElkAxiom;
import org.semanticweb.elk.owl.interfaces.ElkObject;
public interface ElkInference extends Inference {
@Override
String getName();
/**
* @return the number of premises of this inference
*/
int getPremiseCount();
/**
* @param index
* index of the premise to return
* @param factory
* the factory for creating the premises
* @return the premise at the specified position in this inference.
* @throws IndexOutOfBoundsException
* if the position is out of range
* {@code (index <= 0 || index >= size())}
*/
ElkAxiom getPremise(int index, ElkObject.Factory factory);
/**
* @param factory
* the factory for creating conclusion
* @return the conclusion of this inference
*/
ElkAxiom getConclusion(ElkObject.Factory factory);
O accept(Visitor visitor);
/**
* A factory for creating instances
*
* @author Yevgeny Kazakov
* @author Peter Skocovsky
*/
interface Factory extends ElkClassAssertionOfClassInclusion.Factory,
ElkClassInclusionOwlThingEmptyObjectIntersectionOf.Factory,
ElkClassInclusionEmptyObjectOneOfOwlNothing.Factory,
ElkClassInclusionEmptyObjectUnionOfOwlNothing.Factory,
ElkClassInclusionExistentialComposition.Factory,
ElkClassInclusionExistentialFillerExpansion.Factory,
ElkClassInclusionExistentialOfObjectHasSelf.Factory,
ElkClassInclusionExistentialOwlNothing.Factory,
ElkClassInclusionExistentialPropertyExpansion.Factory,
ElkClassInclusionExistentialRange.Factory,
ElkClassInclusionExistentialTransitivity.Factory,
ElkClassInclusionHierarchy.Factory,
ElkClassInclusionNegationClash.Factory,
ElkClassInclusionObjectIntersectionOfComposition.Factory,
ElkClassInclusionObjectIntersectionOfDecomposition.Factory,
ElkClassInclusionObjectIntersectionOfInclusion.Factory,
ElkClassInclusionObjectOneOfInclusion.Factory,
ElkClassInclusionObjectUnionOfComposition.Factory,
ElkClassInclusionOfClassAssertion.Factory,
ElkClassInclusionOfDisjointClasses.Factory,
ElkClassInclusionOfEquivaletClasses.Factory,
ElkClassInclusionOfObjectPropertyAssertion.Factory,
ElkClassInclusionOfObjectPropertyDomain.Factory,
ElkClassInclusionOfReflexiveObjectProperty.Factory,
ElkClassInclusionOwlBottomObjectProperty.Factory,
ElkClassInclusionOwlNothing.Factory,
ElkClassInclusionOwlThing.Factory,
ElkClassInclusionOwlTopObjectProperty.Factory,
ElkClassInclusionReflexivePropertyRange.Factory,
ElkClassInclusionSingletonObjectUnionOfDecomposition.Factory,
ElkClassInclusionTautology.Factory,
ElkClassInclusionTopObjectHasValue.Factory,
ElkDifferentIndividualsOfDisjointClasses.Factory,
ElkDisjointClassesIntersectionInconsistencies.Factory,
ElkDisjointClassesOfDifferentIndividuals.Factory,
ElkDisjointClassesOfDisjointUnion.Factory,
ElkEquivalentClassesCycle.Factory,
ElkEquivalentClassesObjectHasValue.Factory,
ElkEquivalentClassesObjectOneOf.Factory,
ElkEquivalentClassesOfDisjointUnion.Factory,
ElkEquivalentClassesOfSameIndividual.Factory,
ElkObjectPropertyAssertionOfClassInclusion.Factory,
ElkObjectPropertyDomainOfClassInclusion.Factory,
ElkPropertyInclusionHierarchy.Factory,
ElkPropertyInclusionOfEquivalence.Factory,
ElkPropertyInclusionOfTransitiveObjectProperty.Factory,
ElkPropertyInclusionTautology.Factory,
ElkPropertyRangePropertyExpansion.Factory,
ElkSameIndividualOfEquivalentClasses.Factory, ElkToldAxiom.Factory {
// combined interface
}
/**
* The visitor pattern for instances
*
* @author Yevgeny Kazakov
* @author Peter Skocovsky
*
* @param
* the type of the output
*/
interface Visitor extends ElkClassAssertionOfClassInclusion.Visitor,
ElkClassInclusionOwlThingEmptyObjectIntersectionOf.Visitor,
ElkClassInclusionEmptyObjectOneOfOwlNothing.Visitor,
ElkClassInclusionEmptyObjectUnionOfOwlNothing.Visitor,
ElkClassInclusionExistentialComposition.Visitor,
ElkClassInclusionExistentialFillerExpansion.Visitor,
ElkClassInclusionExistentialOfObjectHasSelf.Visitor,
ElkClassInclusionExistentialOwlNothing.Visitor,
ElkClassInclusionExistentialPropertyExpansion.Visitor,
ElkClassInclusionExistentialRange.Visitor,
ElkClassInclusionExistentialTransitivity.Visitor,
ElkClassInclusionHierarchy.Visitor,
ElkClassInclusionNegationClash.Visitor,
ElkClassInclusionObjectIntersectionOfComposition.Visitor,
ElkClassInclusionObjectIntersectionOfDecomposition.Visitor,
ElkClassInclusionObjectIntersectionOfInclusion.Visitor,
ElkClassInclusionObjectOneOfInclusion.Visitor,
ElkClassInclusionObjectUnionOfComposition.Visitor,
ElkClassInclusionOfClassAssertion.Visitor,
ElkClassInclusionOfDisjointClasses.Visitor,
ElkClassInclusionOfEquivaletClasses.Visitor,
ElkClassInclusionOfObjectPropertyAssertion.Visitor,
ElkClassInclusionOfObjectPropertyDomain.Visitor,
ElkClassInclusionOfReflexiveObjectProperty.Visitor,
ElkClassInclusionOwlBottomObjectProperty.Visitor,
ElkClassInclusionOwlNothing.Visitor,
ElkClassInclusionOwlThing.Visitor,
ElkClassInclusionOwlTopObjectProperty.Visitor,
ElkClassInclusionReflexivePropertyRange.Visitor,
ElkClassInclusionSingletonObjectUnionOfDecomposition.Visitor,
ElkClassInclusionTautology.Visitor,
ElkClassInclusionTopObjectHasValue.Visitor,
ElkDifferentIndividualsOfDisjointClasses.Visitor,
ElkDisjointClassesIntersectionInconsistencies.Visitor,
ElkDisjointClassesOfDifferentIndividuals.Visitor,
ElkDisjointClassesOfDisjointUnion.Visitor,
ElkEquivalentClassesCycle.Visitor,
ElkEquivalentClassesObjectHasValue.Visitor,
ElkEquivalentClassesObjectOneOf.Visitor,
ElkEquivalentClassesOfDisjointUnion.Visitor,
ElkEquivalentClassesOfSameIndividual.Visitor,
ElkObjectPropertyAssertionOfClassInclusion.Visitor,
ElkObjectPropertyDomainOfClassInclusion.Visitor,
ElkPropertyInclusionHierarchy.Visitor,
ElkPropertyInclusionOfEquivalence.Visitor,
ElkPropertyInclusionOfTransitiveObjectProperty.Visitor,
ElkPropertyInclusionTautology.Visitor,
ElkPropertyRangePropertyExpansion.Visitor,
ElkSameIndividualOfEquivalentClasses.Visitor,
ElkToldAxiom.Visitor {
// combined interface
}
}