From: <lor...@us...> - 2008-03-27 06:53:49
|
Revision: 730 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=730&view=rev Author: lorenz_b Date: 2008-03-26 23:53:43 -0700 (Wed, 26 Mar 2008) Log Message: ----------- Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java Added: trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-03-27 06:53:43 UTC (rev 730) @@ -0,0 +1,183 @@ +package org.dllearner.tools.ore; + +import java.io.File; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.dllearner.algorithms.RandomGuesser; +import org.dllearner.algorithms.refinement.ROLearner; +import org.dllearner.core.ComponentInitException; +import org.dllearner.core.ComponentManager; +import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.LearningAlgorithm; +import org.dllearner.core.LearningProblemUnsupportedException; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.ReasoningService; +import org.dllearner.core.owl.Description; +import org.dllearner.core.owl.Individual; +import org.dllearner.kb.OWLFile; +import org.dllearner.learningproblems.PosNegDefinitionLP; +import org.dllearner.parser.KBParser; +import org.dllearner.parser.ParseException; +import org.dllearner.reasoning.DIGReasoner; + +public class ORE { + + private LearningAlgorithm la; + private ReasoningService rs; + private KnowledgeSource ks; + private PosNegDefinitionLP lp; + private ComponentManager cm; + SortedSet<Individual> posExamples; + SortedSet<Individual> negExamples; + Description concept; + + public ORE(){ + + cm = ComponentManager.getInstance(); + + + } + + // step 1: detect knowledge sources + + public void setKnowledgeSource(File f){ + + Class<OWLFile> owl = OWLFile.class; + + + ks = cm.knowledgeSource(owl); + + cm.applyConfigEntry(ks, "url", f.toURI().toString()); + + try { + ks.init(); + } catch (ComponentInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + } + + + + public void detectReasoner(){ + + ReasonerComponent reasoner = cm.reasoner( + DIGReasoner.class, ks); + + try { + reasoner.init(); + } catch (ComponentInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + rs = cm.reasoningService(reasoner); + } + + public ReasoningService getReasoningService(){ + return rs; + } + + public SortedSet<Individual> getPosExamples(){ + return posExamples; + } + + public void setPosNegExamples(){ + posExamples = rs.retrieval(concept); + negExamples = rs.getIndividuals(); + for (Individual rem_pos : posExamples) + negExamples.remove(rem_pos); + } + + public SortedSet<Individual> getNegExamples(){ + return negExamples; + } + + public void setLearningProblem(){ + lp = new PosNegDefinitionLP(rs,posExamples, negExamples); + lp.init(); + } + + public void setLearningAlgorithm(){ + try { + la = cm.learningAlgorithm(ROLearner.class, lp, rs); + } catch (LearningProblemUnsupportedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + //la = new ROLearner(lp, rs); + + Set<String> t = new TreeSet<String>(); + t.add(concept.toString()); + //cm.applyConfigEntry(la, "ignoredConcepts", t ); + try { + la.init(); + } catch (ComponentInitException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + public void setConcept(String conceptStr){ + try { + concept = KBParser.parseConcept(conceptStr); + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + + public void startLearningThread(){ + Thread laThread = new Thread() + { + @Override + public void run(){ + la.start(); + + } + }; + laThread.start(); + } + + public void start(){ + this.setPosNegExamples(); + this.setLearningProblem(); + this.setLearningAlgorithm(); + la.start(); + this.startLearningThread(); + } + + public Description getLearningResult(){ + return la.getBestSolution(); + } + + + public static void main(String[] args){ + + ORE test = new ORE(); + //File owlFile = new File("examples/family/father.owl"); + File owlFile = new File("src/dl-learner/org/dllearner/tools/ore/father.owl"); + + test.setKnowledgeSource(owlFile); + + test.detectReasoner(); + ReasoningService rs = test.getReasoningService(); + System.err.println("Concepts :" + rs.getAtomicConcepts()); + + + + test.setConcept("http://example.com/father#father"); + test.setPosNegExamples(); + System.out.println(test.posExamples); + System.out.println(test.negExamples); + test.setLearningProblem(); + test.setLearningAlgorithm(); + test.startLearningThread(); + } + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2008-04-16 19:22:45
|
Revision: 794 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=794&view=rev Author: lorenz_b Date: 2008-04-16 12:22:08 -0700 (Wed, 16 Apr 2008) Log Message: ----------- method addAxiomToOWL added to class ORE Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-04-16 13:03:37 UTC (rev 793) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-04-16 19:22:08 UTC (rev 794) @@ -2,6 +2,7 @@ import java.io.File; import java.math.BigDecimal; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.SortedSet; @@ -13,14 +14,24 @@ import org.dllearner.core.KnowledgeSource; import org.dllearner.core.LearningAlgorithm; import org.dllearner.core.LearningProblemUnsupportedException; -import org.dllearner.core.ReasonerComponent; import org.dllearner.core.ReasoningService; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.Individual; import org.dllearner.core.owl.NamedClass; import org.dllearner.kb.OWLFile; import org.dllearner.learningproblems.PosNegDefinitionLP; +import org.dllearner.reasoning.OWLAPIDescriptionConvertVisitor; import org.dllearner.reasoning.OWLAPIReasoner; +import org.semanticweb.owl.apibinding.OWLManager; +import org.semanticweb.owl.model.AddAxiom; +import org.semanticweb.owl.model.OWLAxiom; +import org.semanticweb.owl.model.OWLDataFactory; +import org.semanticweb.owl.model.OWLDescription; +import org.semanticweb.owl.model.OWLOntology; +import org.semanticweb.owl.model.OWLOntologyChangeException; +import org.semanticweb.owl.model.OWLOntologyManager; +import org.semanticweb.owl.model.OWLOntologyStorageException; +import org.semanticweb.owl.model.UnknownOWLOntologyException; public class ORE { @@ -29,6 +40,7 @@ private KnowledgeSource ks; private PosNegDefinitionLP lp; private ComponentManager cm; + OWLAPIReasoner reasoner; SortedSet<Individual> posExamples; SortedSet<Individual> negExamples; NamedClass concept; @@ -61,14 +73,9 @@ public void detectReasoner(){ - ReasonerComponent reasoner = cm.reasoner( - OWLAPIReasoner.class, ks); - try { - reasoner.init(); - } catch (ComponentInitException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + reasoner = cm.reasoner(OWLAPIReasoner.class, ks); + reasoner.init(); + rs = cm.reasoningService(reasoner); } @@ -165,10 +172,39 @@ } public void addAxiomToOWL(Description desc){ -// OWLDescription newConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(desc); + OWLDescription newConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(desc); + OWLDescription oldConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(concept); + OWLOntology ontology = reasoner.getOWLAPIOntologies().get(0); + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + OWLDataFactory factory = manager.getOWLDataFactory(); + + Set<OWLDescription> ds = new HashSet<OWLDescription>(); + ds.add(newConceptOWLAPI); + ds.add(oldConceptOWLAPI); + + OWLAxiom axiomOWLAPI = factory.getOWLEquivalentClassesAxiom(ds); + + + + AddAxiom axiom = new AddAxiom(ontology, axiomOWLAPI); + try { + manager.applyChange(axiom); + } catch (OWLOntologyChangeException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + manager.saveOntology(ontology); + } catch (UnknownOWLOntologyException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (OWLOntologyStorageException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } public static void main(String[] args){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2008-04-21 19:56:09
|
Revision: 804 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=804&view=rev Author: lorenz_b Date: 2008-04-21 12:55:38 -0700 (Mon, 21 Apr 2008) Log Message: ----------- added method deleteIndividual() to class ORE Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-04-21 14:58:01 UTC (rev 803) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-04-21 19:55:38 UTC (rev 804) @@ -2,6 +2,9 @@ import java.io.File; import java.math.BigDecimal; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -27,11 +30,13 @@ import org.semanticweb.owl.model.OWLAxiom; import org.semanticweb.owl.model.OWLDataFactory; import org.semanticweb.owl.model.OWLDescription; +import org.semanticweb.owl.model.OWLIndividual; import org.semanticweb.owl.model.OWLOntology; import org.semanticweb.owl.model.OWLOntologyChangeException; import org.semanticweb.owl.model.OWLOntologyManager; import org.semanticweb.owl.model.OWLOntologyStorageException; import org.semanticweb.owl.model.UnknownOWLOntologyException; +import org.semanticweb.owl.util.OWLEntityRemover; public class ORE { @@ -206,7 +211,44 @@ e.printStackTrace(); } } + + public void deleteIndividual(Individual ind){ + + + + OWLOntology ontology = reasoner.getOWLAPIOntologies().get(0); + + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + OWLDataFactory factory = manager.getOWLDataFactory(); + OWLIndividual individualOWLAPI = null; + + try { + individualOWLAPI = factory.getOWLIndividual( new URI(ind.getName())); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + OWLEntityRemover remover = new OWLEntityRemover(manager, Collections.singleton(ontology)); + + + individualOWLAPI.accept(remover); + + try { + manager.applyChanges(remover.getChanges()); + } catch (OWLOntologyChangeException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + remover.reset(); + + + + + } + public static void main(String[] args){ ORE test = new ORE(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2008-04-22 13:31:55
|
Revision: 808 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=808&view=rev Author: lorenz_b Date: 2008-04-22 06:31:50 -0700 (Tue, 22 Apr 2008) Log Message: ----------- added method moveIndividual() to class ORE Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-04-22 13:26:06 UTC (rev 807) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java 2008-04-22 13:31:50 UTC (rev 808) @@ -180,6 +180,7 @@ OWLDescription newConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(desc); OWLDescription oldConceptOWLAPI = OWLAPIDescriptionConvertVisitor.getOWLDescription(concept); + OWLOntology ontology = reasoner.getOWLAPIOntologies().get(0); OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); @@ -192,7 +193,6 @@ OWLAxiom axiomOWLAPI = factory.getOWLEquivalentClassesAxiom(ds); - AddAxiom axiom = new AddAxiom(ontology, axiomOWLAPI); try { @@ -214,9 +214,6 @@ public void deleteIndividual(Individual ind){ - - - OWLOntology ontology = reasoner.getOWLAPIOntologies().get(0); OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); @@ -244,10 +241,52 @@ } remover.reset(); - + try { + manager.saveOntology(ontology); + } catch (UnknownOWLOntologyException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (OWLOntologyStorageException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + public void moveIndividual(Individual ind, Description oldDescription, Description newDescription){ + + OWLOntology ontology = reasoner.getOWLAPIOntologies().get(0); + + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + OWLDataFactory factory = manager.getOWLDataFactory(); + OWLIndividual individualOWLAPI = null; + + + try { + individualOWLAPI = factory.getOWLIndividual( new URI(ind.getName())); + } catch (URISyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + //Loeschen + OWLEntityRemover remover = new OWLEntityRemover(manager, Collections.singleton(ontology)); + individualOWLAPI.accept(remover); + + try { + manager.applyChanges(remover.getChanges()); + } catch (OWLOntologyChangeException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + remover.reset(); + + //Hinzufuegen + + } + + public static void main(String[] args){ @@ -262,7 +301,6 @@ System.err.println("Concepts :" + rs.getAtomicConcepts()); - test.setConcept(new NamedClass("http://example.com/father#father")); test.setPosNegExamples(); System.out.println(test.posExamples); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |