001package conexp.fx.core.dl.deprecated;
002
003/*
004 * #%L
005 * Concept Explorer FX
006 * %%
007 * Copyright (C) 2010 - 2019 Francesco Kriegel
008 * %%
009 * This program is free software: you can redistribute it and/or modify
010 * it under the terms of the GNU General Public License as
011 * published by the Free Software Foundation, either version 3 of the
012 * License, or (at your option) any later version.
013 * 
014 * This program is distributed in the hope that it will be useful,
015 * but WITHOUT ANY WARRANTY; without even the implied warranty of
016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017 * GNU General Public License for more details.
018 * 
019 * You should have received a copy of the GNU General Public
020 * License along with this program.  If not, see
021 * <http://www.gnu.org/licenses/gpl-3.0.html>.
022 * #L%
023 */
024
025import java.util.Collection;
026import java.util.Set;
027
028import conexp.fx.core.collections.Pair;
029import conexp.fx.core.context.Context;
030import conexp.fx.core.dl.Signature;
031import conexp.fx.core.math.SetClosureOperator;
032
033@Deprecated
034public interface Interpretation<I, C, G, T> {
035
036  public Set<I> getDomain();
037
038  public Signature getSignature();
039
040  public boolean addConceptNameAssertion(I conceptName, I individual);
041
042  public boolean addRoleNameAssertion(I roleName, I individual1, I individual2);
043
044  public Collection<I> getConceptNameExtension(I conceptName);
045
046  public Collection<Pair<I, I>> getRoleNameExtension(I roleName);
047
048  public Set<I> getRoleSuccessors(I roleName, I individual);
049
050  public Set<I> getRolePredecessors(I roleName, I individual);
051
052  public boolean isInstanceOf(I individual, C conceptExpression);
053
054  public Set<I> getConceptExpressionExtension(C conceptExpression);
055
056  public boolean subsumes(C subsumer, C subsumee);
057
058  public boolean isSubsumedBy(C subsumee, C subsumer);
059
060  public boolean satisfies(G gci);
061
062  public boolean models(T tbox);
063
064  public C getMostSpecificConcept(I individual, int roleDepth, int maxCardinality, Constructor... constructors);
065
066  public C getMostSpecificConcept(Set<I> individuals, int roleDepth, int maxCardinality, Constructor... constructors);
067
068  public Set<C> getAllMostSpecificConcepts(int roleDepth, int maxCardinality, Constructor... constructors);
069
070  public Context<I, C>
071      getInducedContext(Collection<I> individuals, int roleDepth, int maxCardinality, Constructor... constructors);
072
073//  public T computeTBoxBase(int roleDepth) throws Exception;
074
075  public T computeTBoxBase(int roleDepth, int maxCardinality, T backgroundOntology, Constructor... constructors)
076      throws Exception;
077
078  public SetClosureOperator<I> getClosureOperator(int roleDepth, int maxCardinality, Constructor... constructors);
079
080  default void checkRoleDepth(final int roleDepth) {
081    if (roleDepth < 0)
082      throw new IllegalArgumentException("Negative role-depths are not allowed.");
083  }
084
085}