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    /**
023     * Visitor for property (RBox) axioms.
024     * 
025     * @author Jens Lehmann
026     *
027     */
028    public interface PropertyAxiomVisitor {
029    
030            public void visit(FunctionalObjectPropertyAxiom axiom);
031            
032            public void visit(FunctionalDatatypePropertyAxiom axiom);
033            
034            public void visit(InverseFunctionalObjectPropertyAxiom axiom);
035            
036            public void visit(InverseObjectPropertyAxiom axiom);
037            
038            public void visit(SymmetricObjectPropertyAxiom axiom);
039            
040            public void visit(AsymmetricObjectPropertyAxiom axiom);
041            
042            public void visit(TransitiveObjectPropertyAxiom axiom);
043            
044            public void visit(ReflexiveObjectPropertyAxiom axiom);
045            
046            public void visit(IrreflexiveObjectPropertyAxiom axiom);
047            
048            public void visit(SubObjectPropertyAxiom axiom);
049            
050            public void visit(SubDatatypePropertyAxiom axiom);
051            
052            public void visit(EquivalentObjectPropertiesAxiom axiom);
053            
054            public void visit(EquivalentDatatypePropertiesAxiom axiom);
055            
056            public void visit(DisjointObjectPropertyAxiom axiom);
057            
058            public void visit(DisjointDatatypePropertyAxiom axiom);
059            
060            void visit(DatatypePropertyDomainAxiom axiom);
061    
062            void visit(ObjectPropertyDomainAxiom axiom);
063            
064            void visit(DatatypePropertyRangeAxiom axiom);
065    
066            void visit(ObjectPropertyRangeAxiom axiom);     
067    }