001/** 002 * Copyright (C) 2007 - 2016, 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 */ 019package org.dllearner.utilities.owl; 020 021import java.util.Collections; 022import java.util.Set; 023 024import org.semanticweb.owlapi.model.OWLClass; 025import org.semanticweb.owlapi.model.OWLClassExpression; 026import org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx; 027import org.semanticweb.owlapi.model.OWLDataAllValuesFrom; 028import org.semanticweb.owlapi.model.OWLDataExactCardinality; 029import org.semanticweb.owlapi.model.OWLDataHasValue; 030import org.semanticweb.owlapi.model.OWLDataMaxCardinality; 031import org.semanticweb.owlapi.model.OWLDataMinCardinality; 032import org.semanticweb.owlapi.model.OWLDataSomeValuesFrom; 033import org.semanticweb.owlapi.model.OWLObjectAllValuesFrom; 034import org.semanticweb.owlapi.model.OWLObjectComplementOf; 035import org.semanticweb.owlapi.model.OWLObjectExactCardinality; 036import org.semanticweb.owlapi.model.OWLObjectHasSelf; 037import org.semanticweb.owlapi.model.OWLObjectHasValue; 038import org.semanticweb.owlapi.model.OWLObjectIntersectionOf; 039import org.semanticweb.owlapi.model.OWLObjectMaxCardinality; 040import org.semanticweb.owlapi.model.OWLObjectMinCardinality; 041import org.semanticweb.owlapi.model.OWLObjectOneOf; 042import org.semanticweb.owlapi.model.OWLObjectSomeValuesFrom; 043import org.semanticweb.owlapi.model.OWLObjectUnionOf; 044 045/** 046 * Returns all directly connected child class expressions. 047 * 048 * @author Lorenz Buehmann 049 * 050 */ 051public class OWLClassExpressionChildrenCollector implements OWLClassExpressionVisitorEx<Set<OWLClassExpression>> { 052 053 /* (non-Javadoc) 054 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLClass) 055 */ 056 @Override 057 public Set<OWLClassExpression> visit(OWLClass ce) { 058 return Collections.emptySet(); 059 } 060 061 /* (non-Javadoc) 062 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectIntersectionOf) 063 */ 064 @Override 065 public Set<OWLClassExpression> visit(OWLObjectIntersectionOf ce) { 066 return ce.getOperands(); 067 } 068 069 /* (non-Javadoc) 070 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectUnionOf) 071 */ 072 @Override 073 public Set<OWLClassExpression> visit(OWLObjectUnionOf ce) { 074 return ce.getOperands(); 075 } 076 077 /* (non-Javadoc) 078 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectComplementOf) 079 */ 080 @Override 081 public Set<OWLClassExpression> visit(OWLObjectComplementOf ce) { 082 return Collections.singleton(ce.getOperand()); 083 } 084 085 /* (non-Javadoc) 086 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectSomeValuesFrom) 087 */ 088 @Override 089 public Set<OWLClassExpression> visit(OWLObjectSomeValuesFrom ce) { 090 return Collections.singleton(ce.getFiller()); 091 } 092 093 /* (non-Javadoc) 094 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectAllValuesFrom) 095 */ 096 @Override 097 public Set<OWLClassExpression> visit(OWLObjectAllValuesFrom ce) { 098 return Collections.singleton(ce.getFiller()); 099 } 100 101 /* (non-Javadoc) 102 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectHasValue) 103 */ 104 @Override 105 public Set<OWLClassExpression> visit(OWLObjectHasValue ce) { 106 return Collections.emptySet(); 107 } 108 109 /* (non-Javadoc) 110 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectMinCardinality) 111 */ 112 @Override 113 public Set<OWLClassExpression> visit(OWLObjectMinCardinality ce) { 114 return Collections.singleton(ce.getFiller()); 115 } 116 117 /* (non-Javadoc) 118 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectExactCardinality) 119 */ 120 @Override 121 public Set<OWLClassExpression> visit(OWLObjectExactCardinality ce) { 122 return Collections.singleton(ce.getFiller()); 123 } 124 125 /* (non-Javadoc) 126 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectMaxCardinality) 127 */ 128 @Override 129 public Set<OWLClassExpression> visit(OWLObjectMaxCardinality ce) { 130 return Collections.singleton(ce.getFiller()); 131 } 132 133 /* (non-Javadoc) 134 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectHasSelf) 135 */ 136 @Override 137 public Set<OWLClassExpression> visit(OWLObjectHasSelf ce) { 138 return Collections.emptySet(); 139 } 140 141 /* (non-Javadoc) 142 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLObjectOneOf) 143 */ 144 @Override 145 public Set<OWLClassExpression> visit(OWLObjectOneOf ce) { 146 return Collections.emptySet(); 147 } 148 149 /* (non-Javadoc) 150 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLDataSomeValuesFrom) 151 */ 152 @Override 153 public Set<OWLClassExpression> visit(OWLDataSomeValuesFrom ce) { 154 return Collections.emptySet(); 155 } 156 157 /* (non-Javadoc) 158 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLDataAllValuesFrom) 159 */ 160 @Override 161 public Set<OWLClassExpression> visit(OWLDataAllValuesFrom ce) { 162 return Collections.emptySet(); 163 } 164 165 /* (non-Javadoc) 166 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLDataHasValue) 167 */ 168 @Override 169 public Set<OWLClassExpression> visit(OWLDataHasValue ce) { 170 return Collections.emptySet(); 171 } 172 173 /* (non-Javadoc) 174 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLDataMinCardinality) 175 */ 176 @Override 177 public Set<OWLClassExpression> visit(OWLDataMinCardinality ce) { 178 return Collections.emptySet(); 179 } 180 181 /* (non-Javadoc) 182 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLDataExactCardinality) 183 */ 184 @Override 185 public Set<OWLClassExpression> visit(OWLDataExactCardinality ce) { 186 return Collections.emptySet(); 187 } 188 189 /* (non-Javadoc) 190 * @see org.semanticweb.owlapi.model.OWLClassExpressionVisitorEx#visit(org.semanticweb.owlapi.model.OWLDataMaxCardinality) 191 */ 192 @Override 193 public Set<OWLClassExpression> visit(OWLDataMaxCardinality ce) { 194 return Collections.emptySet(); 195 } 196 197}