001package org.dllearner.algorithms.qtl.util.filters; 002 003import org.dllearner.algorithms.qtl.QueryTreeUtils; 004import org.dllearner.algorithms.qtl.datastructures.impl.RDFResourceTree; 005import org.dllearner.core.AbstractReasonerComponent; 006 007/** 008 * Tree filter that removes redundant rdf:type edges according to subsumption by using the 009 * given reasoner. 010 * 011 * @author Lorenz Buehmann 012 */ 013public class MostSpecificTypesFilter extends AbstractTreeFilter<RDFResourceTree>{ 014 015 private final AbstractReasonerComponent reasoner; 016 017 public MostSpecificTypesFilter(AbstractReasonerComponent reasoner) { 018 this.reasoner = reasoner; 019 } 020 021 022 @Override 023 public RDFResourceTree apply(RDFResourceTree tree) { 024 RDFResourceTree copy = new RDFResourceTree(tree); 025 026 QueryTreeUtils.keepMostSpecificTypes(copy, reasoner); 027 028 return copy; 029 } 030 031 032}