001 package org.dllearner.test;
002
003 import java.net.URL;
004 import java.util.SortedSet;
005 import java.util.TreeSet;
006
007 import org.apache.log4j.ConsoleAppender;
008 import org.apache.log4j.Level;
009 import org.apache.log4j.Logger;
010 import org.apache.log4j.SimpleLayout;
011 import org.dllearner.kb.sparql.SPARQLTasks;
012 import org.dllearner.kb.sparql.SparqlEndpoint;
013 import org.dllearner.utilities.examples.AutomaticNegativeExampleFinderSPARQL;
014
015 public class TestGetExampleBug {
016
017 /**
018 * @param args
019 */
020 public static void main(String[] args) {
021 Logger logger = Logger.getRootLogger();
022 SimpleLayout layout = new SimpleLayout();
023 ConsoleAppender consoleAppender = new ConsoleAppender(layout);
024 logger.removeAllAppenders();
025 logger.addAppender(consoleAppender);
026 logger.setLevel(Level.TRACE);
027 //Logger.getLogger(SparqlQuery.class).setLevel(Level.DEBUG);
028
029 try {
030 String OntowikiUrl="http://localhost/ontowiki/service/sparql";
031
032
033
034 SortedSet<String> positiveSet = new TreeSet<String>();
035 positiveSet.add("http://3ba.se/conferences/JensLehmann");
036 positiveSet.add("http://3ba.se/conferences/MuhammadAhtishamAslam");
037 positiveSet.add("http://3ba.se/conferences/SebastianDietzold");
038 positiveSet.add("http://3ba.se/conferences/ThomasRiechert");
039 //positiveSet.add("http://3ba.se/conferences/FMILeipzig");
040
041 SPARQLTasks st = new SPARQLTasks(new SparqlEndpoint(new URL(OntowikiUrl)));
042 AutomaticNegativeExampleFinderSPARQL ane =
043 new AutomaticNegativeExampleFinderSPARQL(positiveSet,st, new TreeSet<String>());
044 SortedSet<String> negExamples = new TreeSet<String>();
045 int results=100;
046 if(negExamples.isEmpty()){
047 //ane.makeNegativeExamplesFromRelatedInstances(positiveSet, "http://3ba.se/conferences/");
048 negExamples = ane.getNegativeExamples(results);
049 if(negExamples.isEmpty()){
050 ane.makeNegativeExamplesFromSuperClassesOfInstances(positiveSet, 500);
051 negExamples = ane.getNegativeExamples(results);
052 if(negExamples.isEmpty()) {
053 ane.makeNegativeExamplesFromRandomInstances();
054 negExamples = ane.getNegativeExamples(results);
055 }
056 }
057 }
058
059 System.out.println(ane.getNegativeExamples(100));
060 }catch (Exception e) {
061 e.printStackTrace();
062 }
063
064 /*$negExamples=$client->getNegativeExamples($id,$ksID,$posExamples,count($posExamples),"http://localhost/ontowiki/service/sparql");
065 $negExamples=$negExamples->item;
066 $client->setLearningProblem($id, "posNegDefinition");
067 $client->setPositiveExamples($id, $posExamples);
068 $client->setNegativeExamples($id, $negExamples);
069
070 // choose refinement operator approach
071 $client->setLearningAlgorithm($id, "refexamples");
072 // you can add the following to apply a config option to a component, e.g. ignore a concept
073 // $client->applyConfigEntryStringArray($id, $la_id, "ignoredConcepts", array('http://example.com/father#male'));
074
075 $client->initAll($id);
076
077 // learn concept
078 echo 'start learning ... ';
079 // get only concept
080 // $concept = $client->learn($id, "manchester");
081 // get concept and additional information in JSON syntax
082 $concept = $client->learnDescriptionsEvaluated($id, 5);
083 echo 'OK <br />';
084 echo 'solution: <pre>' . $concept . '</pre>';
085
086 ?>*/
087
088
089
090 }
091
092 }