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.utilities.examples;
021
022 import java.util.SortedSet;
023 import java.util.TreeSet;
024
025 import org.apache.log4j.Logger;
026 import org.dllearner.core.ComponentManager;
027 import org.dllearner.kb.sparql.SPARQLTasks;
028
029 public class AutomaticPositiveExampleFinderSPARQL {
030
031 // LOGGER: ComponentManager
032 private static Logger logger = Logger
033 .getLogger(ComponentManager.class);
034
035
036 private SPARQLTasks sparqltasks;
037
038 private SortedSet<String> posExamples;
039
040 public AutomaticPositiveExampleFinderSPARQL(SPARQLTasks st) {
041 super();
042
043 this.posExamples = new TreeSet<String>();
044 this.sparqltasks = st;
045 }
046
047 //QUALITY resultsize is not accounted for
048 public void makePositiveExamplesFromConcept(String conceptKBSyntax){
049 logger.debug("making Positive Examples from Concept: "+conceptKBSyntax);
050 this.posExamples = sparqltasks.retrieveInstancesForClassDescription(conceptKBSyntax, 0);
051 logger.debug(" pos Example size: "+posExamples.size());
052 }
053
054
055 //QUALITY resultsize is not accounted for
056 public void makePositiveExamplesFromRoleAndObject(String role, String object){
057 logger.debug("making Positive Examples from role: "+role+" and object: "+object);
058 this.posExamples = sparqltasks.retrieveDISTINCTSubjectsForRoleAndObject(role, object, 0);
059 logger.debug(" pos Example size: "+posExamples.size());
060 }
061
062 //QUALITY resultsize is not accounted for
063 public void makePositiveExamplesFromSKOSConcept(String SKOSConcept){
064 logger.debug("making Positive Examples from SKOSConcept: "+SKOSConcept);
065 this.posExamples = sparqltasks.retrieveInstancesForSKOSConcept(SKOSConcept, 0);
066 logger.debug("pos Example size: "+posExamples.size());
067 }
068
069 public void makePositiveExamplesFromDomain(String role, int resultLimit){
070 logger.debug("making Positive Examples from Domain of : "+role);
071 this.posExamples.addAll(sparqltasks.getDomainInstances(role, resultLimit));
072 logger.debug("pos Example size: "+posExamples.size());
073 }
074
075 public void makePositiveExamplesFromRange(String role, int resultLimit){
076 logger.debug("making Positive Examples from Range of : "+role);
077 this.posExamples.addAll(sparqltasks.getRangeInstances(role, resultLimit));
078 logger.debug("pos Example size: "+posExamples.size());
079 }
080
081
082 public SortedSet<String> getPosExamples() {
083 return posExamples;
084 }
085
086
087
088
089
090 }