001    /**
002     * Copyright (C) 2007-2011, Jens Lehmann
003     *
004     * This file is part of DL-Learner.
005     *
006     * DL-Learner is free software; you can redistribute it and/or modify
007     * it under the terms of the GNU General Public License as published by
008     * the Free Software Foundation; either version 3 of the License, or
009     * (at your option) any later version.
010     *
011     * DL-Learner is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014     * GNU General Public License for more details.
015     *
016     * You should have received a copy of the GNU General Public License
017     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
018     */
019    
020    package org.dllearner.core.owl;
021    
022    import org.dllearner.algorithms.gp.ADC;
023    
024    /**
025     * Visitor for elements in complex class descriptions (it supports 
026     * the currently relevant ones - needs to be extended when further
027     * constructs are needed).
028     * 
029     * @author Jens Lehmann
030     *
031     */
032    public interface DescriptionVisitor {
033            
034            public void visit(NamedClass description);
035            
036            public void visit(ADC description);
037            
038            public void visit(Negation description);
039            
040            public void visit(ObjectAllRestriction description);
041            
042            public void visit(ObjectSomeRestriction description);
043            
044            public void visit(DatatypeSomeRestriction description);
045            
046            public void visit(Nothing description);
047            
048            public void visit(Thing description);
049            
050            public void visit(Intersection description);
051            
052            public void visit(Union description);   
053            
054            public void visit(ObjectOneOf description);     
055            
056            public void visit(ObjectMinCardinalityRestriction description);
057            
058            public void visit(ObjectExactCardinalityRestriction description);
059            
060            public void visit(ObjectMaxCardinalityRestriction description);
061            
062            public void visit(ObjectValueRestriction description);
063            
064            public void visit(DatatypeMinCardinalityRestriction description);
065            
066            public void visit(DatatypeExactCardinalityRestriction description);
067            
068            public void visit(DatatypeMaxCardinalityRestriction description);       
069            
070            public void visit(DatatypeValueRestriction description);
071            
072    }