You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(120) |
Sep
(36) |
Oct
(116) |
Nov
(17) |
Dec
(44) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(143) |
Feb
(192) |
Mar
(74) |
Apr
(84) |
May
(105) |
Jun
(64) |
Jul
(49) |
Aug
(120) |
Sep
(159) |
Oct
(156) |
Nov
(51) |
Dec
(28) |
2009 |
Jan
(17) |
Feb
(55) |
Mar
(33) |
Apr
(57) |
May
(54) |
Jun
(28) |
Jul
(6) |
Aug
(16) |
Sep
(38) |
Oct
(30) |
Nov
(26) |
Dec
(52) |
2010 |
Jan
(7) |
Feb
(91) |
Mar
(65) |
Apr
(2) |
May
(14) |
Jun
(25) |
Jul
(38) |
Aug
(48) |
Sep
(80) |
Oct
(70) |
Nov
(75) |
Dec
(77) |
2011 |
Jan
(68) |
Feb
(53) |
Mar
(51) |
Apr
(35) |
May
(65) |
Jun
(101) |
Jul
(29) |
Aug
(230) |
Sep
(95) |
Oct
(49) |
Nov
(110) |
Dec
(63) |
2012 |
Jan
(41) |
Feb
(42) |
Mar
(25) |
Apr
(46) |
May
(51) |
Jun
(44) |
Jul
(45) |
Aug
(29) |
Sep
(12) |
Oct
(9) |
Nov
(17) |
Dec
(2) |
2013 |
Jan
(12) |
Feb
(14) |
Mar
(7) |
Apr
(16) |
May
(54) |
Jun
(27) |
Jul
(11) |
Aug
(5) |
Sep
(85) |
Oct
(27) |
Nov
(37) |
Dec
(32) |
2014 |
Jan
(8) |
Feb
(29) |
Mar
(5) |
Apr
(3) |
May
(22) |
Jun
(3) |
Jul
(4) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <jen...@us...> - 2008-01-09 09:26:22
|
Revision: 352 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=352&view=rev Author: jenslehmann Date: 2008-01-09 01:26:20 -0800 (Wed, 09 Jan 2008) Log Message: ----------- - fixed DBpedia Navigator HTML header - fixed clear session script - added images Modified Paths: -------------- trunk/src/dbpedia-navigator/clearsession.php trunk/src/dbpedia-navigator/default.css trunk/src/dbpedia-navigator/index.php Added Paths: ----------- trunk/src/dbpedia-navigator/images/ trunk/src/dbpedia-navigator/images/tab_back.png trunk/src/dbpedia-navigator/images/valid-css.png trunk/src/dbpedia-navigator/images/valid-xhtml10.png Modified: trunk/src/dbpedia-navigator/clearsession.php =================================================================== --- trunk/src/dbpedia-navigator/clearsession.php 2008-01-09 08:51:30 UTC (rev 351) +++ trunk/src/dbpedia-navigator/clearsession.php 2008-01-09 09:26:20 UTC (rev 352) @@ -7,6 +7,7 @@ require_once 'SparqlConnection.php'; require_once 'Settings.php'; $settings=new Settings(); -SparqlConnection::loadWSDLfiles($settings->wsdluri); -header("Location: http://" . $_SERVER["HTTP_HOST"] . "/Ajax-Test/index.php"); +SparqlConnection::loadWSDLfiles($settings->wsdluri); +$index_uri = 'http://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/index.php'; +header('Location: ' . $index_uri); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/default.css =================================================================== --- trunk/src/dbpedia-navigator/default.css 2008-01-09 08:51:30 UTC (rev 351) +++ trunk/src/dbpedia-navigator/default.css 2008-01-09 09:26:20 UTC (rev 352) @@ -1,8 +1,8 @@ /** - * default.css - * main Ontowiki style sheet + * Main DBpedia Navigator Style Sheet. + * * @author: Norman Heino - * @version: $Id: default.css 751 2007-02-14 19:20:17Z nheino $ + * @author: Jens Lehmann */ /* remove browser specific margins */ Added: trunk/src/dbpedia-navigator/images/tab_back.png =================================================================== (Binary files differ) Property changes on: trunk/src/dbpedia-navigator/images/tab_back.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/dbpedia-navigator/images/valid-css.png =================================================================== (Binary files differ) Property changes on: trunk/src/dbpedia-navigator/images/valid-css.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/dbpedia-navigator/images/valid-xhtml10.png =================================================================== (Binary files differ) Property changes on: trunk/src/dbpedia-navigator/images/valid-xhtml10.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Modified: trunk/src/dbpedia-navigator/index.php =================================================================== --- trunk/src/dbpedia-navigator/index.php 2008-01-09 08:51:30 UTC (rev 351) +++ trunk/src/dbpedia-navigator/index.php 2008-01-09 09:26:20 UTC (rev 352) @@ -11,13 +11,14 @@ $_SESSION['id']=$ids[0]; $_SESSION['ksID']=$ids[1]; -echo "<a href='clearsession.php'>start from scratch</a>"; - require("ajax.php"); echo '<?xml version="1.0" encoding="UTF-8"?>'; -?> -<html> +?> +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>DL Learner</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> @@ -58,7 +59,8 @@ } </script> </head> - <body> + <body> +<p><a href='clearsession.php'>start from scratch</a></p> <h3>DBPedia-Navigator-Test</h3> <div id="layer" style="display:none"><div id="layerContent" style="display:none"></div></div> <div id="wrapper"> @@ -134,7 +136,18 @@ <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div><!-- rightSidebar --> <div id="clear"></div> -</div> +</div> +<?php + +$uri = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; + +echo '<a href="http://validator.w3.org/check?uri='.$uri.'"'; +echo '><img src="images/valid-xhtml10.png" alt="valid XHTML 1.0" /></a>'."\n"; +echo '<a href="http://jigsaw.w3.org/css-validator/validator?uri='.$uri.'"'; +echo '><img src="images/valid-css.png" alt="valid CSS" /></a>'."\n"; + +?> + </body> </html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-09 08:51:35
|
Revision: 351 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=351&view=rev Author: jenslehmann Date: 2008-01-09 00:51:30 -0800 (Wed, 09 Jan 2008) Log Message: ----------- restored DBpedia Navigator CSS file (deleted in revision 284) Revision Links: -------------- http://dl-learner.svn.sourceforge.net/dl-learner/?rev=284&view=rev Added Paths: ----------- trunk/src/dbpedia-navigator/default.css Added: trunk/src/dbpedia-navigator/default.css =================================================================== --- trunk/src/dbpedia-navigator/default.css (rev 0) +++ trunk/src/dbpedia-navigator/default.css 2008-01-09 08:51:30 UTC (rev 351) @@ -0,0 +1,338 @@ +/** + * default.css + * main Ontowiki style sheet + * @author: Norman Heino + * @version: $Id: default.css 751 2007-02-14 19:20:17Z nheino $ + */ + +/* remove browser specific margins */ +* { + margin: 0; + padding: 0; +} + +html { + font: 80%/1.2 "Lucida Grande", Helvetica, Arial, sans-serif; +} + +p { + margin: 8px 0; +} + +h2 { + margin: 0.5em 0 0.1em 0; +/* background-color: #eee;*/ + font-size: 110%; +} + + +/* + * Main site structure + */ + +#wrapper { + position: relative; + max-width: 100%; + padding: 15px; +/* margin: 15px;*/ +} + +#content { + margin: 0 19em; + overflow: hidden; +/* border-left: 1px solid #bbb; + border-right: 1px solid #bbb; + padding: 0 5px;*/ +} + +/* + * Side bars are positioned absolutely due to several reasons: + * (1)Internet Explorer has problems displaying float elements, + * (2) the content's position in html is irrelevant, + * (3) positioning the content div is more straightforward. + */ +#leftSidebar { + position: absolute; + width: 18em; +} + +#rightSidebar { + position: absolute; + width: 18em; + top: 15px; + right: 15px; +} + +#clear { + clear: both; +} + + +/* + * sidebar content (boxes) + */ + +.box { + color: #666; + margin-bottom: 20px; + border: 1px solid #bbb; + font-size: 85%; +} + +/*.box td { + font-size: 100%; +}*/ + +.box .boxtitle { + color: #666; + background-color: #eee; + padding: 3px 0.4em; + font-weight: bold; + white-space: nowrap; +} + +.box .boxtitle .boxtitle_string { + width: 80%; + overflow: hidden; +/* display: none;*/ +} + +.box .boxcontent { + padding: 0.6em; + border-top: 1px solid #bbb; +} + +/* restrict content of certain boxes */ +.box#predicates .boxcontent, +.box#classes .boxcontent { + overflow: hidden; +} + +.box p { + margin: 0 2px 4px 0; +} + +.box ul, .box ol { + margin: 0px; +/* padding-left: 15px;*/ + list-style-position: inside; +} + +.box ul.no_bullet, .box ul.no_bullet { + list-style-type: none; +} + +.box ul li.horizontal, .box ol li.horizontal, +.box ul.horizontal, .box ol.horizontal { + display: inline; +} + +.box a.title_switch { + position: absolute; + right: 0.5em; + margin: auto 0; + color: #666; + border: 1px solid #bbb; + width: 1em; + height: 1em; + background-color: #fff; + text-align: center; +} + +.box a.title_switch:hover { + color: #02a; + text-decoration: none; + background-color: #eee; +} + +.box hr { + margin: 0.5em 0; + border: none; + border-top: 1px dotted #bbb; + height: 0; +} + +.box#classes .boxcontent a { + display: block; +} + +/*.box select { + width: 250px; /* TODO remove absolute size */ +}*/ + +.box input { + width: auto; +} + +.box td input { + width: 100%; +} + +.box img.rating { + position: relative; + top: 1px; +} + +.hidden { + display: none; +} + + +/* + * Links + */ + +a, a:link, a:visited { + color: #02a; + text-decoration: none; + cursor: pointer; +} + +a:hover { + text-decoration: underline; +} + + +/* + * Tabs + */ + +/* all the tabs */ +.tabs { + float: left; + width: 100%; + background: #fff url("../images/tabs_back.png") repeat-x bottom; +} + +.tabs ul { + list-style: none; +} + +.tabs li { + float: left; + margin-right: 1px; +} + +.tabs a { + display: block; + margin-top: 1px; + padding: 0.35em 1.35em; + background-image: url("../images/tab_back.png"); + background-repeat: repeat-x; + background-color: #cbcbcb; + border: 1px solid #bbb; +} + +.tabs a:hover { + background: #fff; + text-decoration: none; +} + +.tabs a.current { + background: #fff; + border-bottom: 1px solid #fff; +} + +/* horizontal line underneath the tabs */ +#tab-line { + height: 1em; + clear: both; +} + +#instances { + float: right; +} + +.selected { + background-color: #bde; /*#b4d5fe;*/ +} + +.button { + border: solid black 1px; + padding: 0px 1px; + background-color: #eee; +} + +img { + border: none; +} + +/* + * Layer + */ +#layer { + width: 100%; + height: 100%; + position: absolute; + background-image: url("../images/black_50.png"); + background-repeat: repeat; + z-index: 98; +} + +#layerContent { + margin-top: 100px; + margin: auto; + width: 500px; + height: 300px; + background-color: #ffb; + border: 2px solid #bbb; + z-index: 99; +} + +/* + * Buttons + */ +input.button { + border: 1px solid #bbb; + color: #666; + background-color: #eee; + padding: 3px 0.4em; + font-weight: bold; + white-space: nowrap; + font-size: 85%; +} + +input.button:hover { + border-left:1px solid #ffffff; + border-top:1px solid #ffffff; + border-right:1px solid #848484; + border-bottom:1px solid #848484; +} + +.titletable{ + width:100%; + color: #666; + background-color: #eee; + padding: 0.1em 0.4em; + font-weight: bold; + font-size: 100%; + white-space: nowrap; +} + +.titletable input.button{ + width:auto; +} + +.titletable td.left{ + text-align:left; +} + +.titletable td.right{ + text-align:right; +} + +.box .boxtitlewithbutton { + color: #666; + background-color: #eee; + padding: 0em 0.4em; + font-weight: bold; + white-space: nowrap; +} + +#search { + text-align:center; +} + +#label { + margin-bottom: 0.1em; +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-07 16:24:42
|
Revision: 350 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=350&view=rev Author: jenslehmann Date: 2008-01-07 08:24:40 -0800 (Mon, 07 Jan 2008) Log Message: ----------- fixed some warnings Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-07 16:22:54 UTC (rev 349) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-07 16:24:40 UTC (rev 350) @@ -19,7 +19,6 @@ */ package org.dllearner.reasoning; -import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; @@ -27,7 +26,6 @@ import java.util.Comparator; import java.util.HashSet; import java.util.LinkedList; -import java.util.Map; import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; @@ -493,6 +491,7 @@ return roles; } + @SuppressWarnings({"unused"}) private Set<Concept> owlClassesToAtomicConcepts(Set<OWLClass> owlClasses) { Set<Concept> concepts = new HashSet<Concept>(); for(OWLClass owlClass : owlClasses) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-07 16:23:00
|
Revision: 349 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=349&view=rev Author: jenslehmann Date: 2008-01-07 08:22:54 -0800 (Mon, 07 Jan 2008) Log Message: ----------- - OWL API reasoner implemented but not recommended yet * Pellet 1.5.1 working but no performance improvement - maybe due to a lot System out calls (one for each instance check) * FaCT++ 1.10 buggy; wrote a sample case for wrong behaviour in FaCTBugDemo and send it to FaCT developer Dmitry Tsarkov - CLI adapted such that new reasoner interface can be used - various smaller fixes in code and examples Modified Paths: -------------- trunk/examples/father2.conf trunk/src/dl-learner/org/dllearner/cli/Start.java trunk/src/dl-learner/org/dllearner/learningproblems/PosNegDefinitionLP.java trunk/src/dl-learner/org/dllearner/learningproblems/PosNegInclusionLP.java trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLP.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java Added Paths: ----------- trunk/examples/uncle.owl trunk/src/dl-learner/org/dllearner/reasoning/FaCTBugDemo.java Modified: trunk/examples/father2.conf =================================================================== --- trunk/examples/father2.conf 2008-01-07 16:12:15 UTC (rev 348) +++ trunk/examples/father2.conf 2008-01-07 16:22:54 UTC (rev 349) @@ -8,7 +8,6 @@ */ reasoner = dig; -digReasonerURL = "http://localhost:8081"; import("father.owl"); // do not display http://example.com/father# in concepts @@ -19,9 +18,9 @@ digProtocolFile = "log/father2_dig.txt"; /** examples **/ -+father("http://example.com/father#stefan"). -+father("http://example.com/father#markus"). -+father("http://example.com/father#martin"). --father("http://example.com/father#heinz"). --father("http://example.com/father#anna"). --father("http://example.com/father#michelle"). ++"http://example.com/father#stefan" ++"http://example.com/father#markus" ++"http://example.com/father#martin" +-"http://example.com/father#heinz" +-"http://example.com/father#anna" +-"http://example.com/father#michelle" Added: trunk/examples/uncle.owl =================================================================== --- trunk/examples/uncle.owl (rev 0) +++ trunk/examples/uncle.owl 2008-01-07 16:22:54 UTC (rev 349) @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE rdf:RDF [ + <!ENTITY owl 'http://www.w3.org/2002/07/owl#'> +]> + +<rdf:RDF + xml:base="http://localhost/foo" + xmlns:a="http://localhost/foo#" + xmlns:owl="http://www.w3.org/2002/07/owl#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> + +<owl:Ontology rdf:about=""/> + +<owl:Class rdf:about="&owl;Nothing"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <owl:Class rdf:about="#male"/> + <owl:Class rdf:about="#female"/> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> +</owl:Class> + +<owl:ObjectProperty rdf:ID="hasSibling"> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> +</owl:ObjectProperty> + +<owl:ObjectProperty rdf:ID="married"> + <rdf:type rdf:resource="&owl;SymmetricProperty"/> + <rdf:type rdf:resource="&owl;FunctionalProperty"/> +</owl:ObjectProperty> + +<a:male rdf:ID="alex"/> + +<a:male rdf:ID="alfred"> + <a:hasChild rdf:resource="#hans"/> + <a:hasSibling rdf:resource="#heinz"/> + <a:hasSibling rdf:resource="#maria"/> + <a:married rdf:resource="#katrin"/> +</a:male> + +<a:female rdf:ID="anna"> + <a:hasChild rdf:resource="#alfred"/> + <a:hasChild rdf:resource="#heinz"/> + <a:hasChild rdf:resource="#maria"/> + <a:married rdf:resource="#jan"/> +</a:female> + +<a:female rdf:ID="hanna"> + <a:hasChild rdf:resource="#jan"/> + <a:hasSibling rdf:resource="#alex"/> +</a:female> + +<a:male rdf:ID="hans"> + <a:married rdf:resource="#johanna"/> +</a:male> + +<a:male rdf:ID="heinrich"> + <a:married rdf:resource="#susi"/> +</a:male> + +<a:male rdf:ID="heinz"> + <a:hasSibling rdf:resource="#maria"/> +</a:male> + +<a:male rdf:ID="jan"> + <a:hasChild rdf:resource="#alfred"/> + <a:hasChild rdf:resource="#heinz"/> + <a:hasChild rdf:resource="#maria"/> +</a:male> + +<a:female rdf:ID="johanna"> + <a:hasSibling rdf:resource="#mandy"/> +</a:female> + +<a:female rdf:ID="katrin"> + <a:hasChild rdf:resource="#hans"/> +</a:female> + +<a:female rdf:ID="mandy"> + <a:hasChild rdf:resource="#miriam"/> +</a:female> + +<a:female rdf:ID="maria"> + <a:hasChild rdf:resource="#markus"/> +</a:female> + +<a:male rdf:ID="markus"/> + +<a:female rdf:ID="miriam"/> + +<a:female rdf:ID="susi"> + <a:hasSibling rdf:resource="#anna"/> +</a:female> + +<owl:Class rdf:ID="female"/> + +<owl:Class rdf:ID="male"/> + +<owl:ObjectProperty rdf:ID="hasChild"/> + +</rdf:RDF> Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-01-07 16:12:15 UTC (rev 348) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2008-01-07 16:22:54 UTC (rev 349) @@ -70,6 +70,7 @@ import org.dllearner.parser.ParseException; import org.dllearner.parser.TokenMgrError; import org.dllearner.reasoning.DIGReasoner; +import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.utilities.ConceptComparator; import org.dllearner.utilities.Datastructures; import org.dllearner.utilities.Helper; @@ -132,6 +133,8 @@ // default value if (reasonerOption == null || reasonerOption.getStringValue().equals("dig")) reasonerClass = DIGReasoner.class; + else if(reasonerOption.getStringValue().equals("owlAPI")) + reasonerClass = OWLAPIReasoner.class; else { handleError("Unknown value " + reasonerOption.getStringValue() + "for option \"reasoner\"."); @@ -160,6 +163,7 @@ cm.applyConfigEntry(lp, "positiveExamples", posExamples); if(lpClass != PosOnlyDefinitionLP.class) cm.applyConfigEntry(lp, "negativeExamples", negExamples); + configureComponent(cm, lp, componentPrefixMapping, parser); initComponent(cm, lp); // step 4: detect learning algorithm @@ -230,7 +234,9 @@ componentPrefixMapping.put(SparqlEndpointRestructured.class, "sparql2"); // reasoners componentPrefixMapping.put(DIGReasoner.class, "digReasoner"); + componentPrefixMapping.put(OWLAPIReasoner.class, "owlAPIReasoner"); // learning problems - configured via + and - flags for examples + componentPrefixMapping.put(PosNegDefinitionLP.class, "posNegDefinitionLP"); // learning algorithms componentPrefixMapping.put(ROLearner.class, "refinement"); componentPrefixMapping.put(GP.class, "gp"); Modified: trunk/src/dl-learner/org/dllearner/learningproblems/PosNegDefinitionLP.java =================================================================== --- trunk/src/dl-learner/org/dllearner/learningproblems/PosNegDefinitionLP.java 2008-01-07 16:12:15 UTC (rev 348) +++ trunk/src/dl-learner/org/dllearner/learningproblems/PosNegDefinitionLP.java 2008-01-07 16:22:54 UTC (rev 349) @@ -99,9 +99,9 @@ else return negAsPos.size(); } else { - if (useDIGMultiInstanceChecks != UseMultiInstanceChecks.NEVER) { + if (useMultiInstanceChecks != UseMultiInstanceChecks.NEVER) { // two checks - if (useDIGMultiInstanceChecks == UseMultiInstanceChecks.TWOCHECKS) { + if (useMultiInstanceChecks == UseMultiInstanceChecks.TWOCHECKS) { Set<Individual> s = reasoningService.instanceCheck(concept, positiveExamples); // if the concept is too weak, then do not query negative // examples @@ -172,13 +172,13 @@ } return new ScoreTwoValued(concept.getLength(), percentPerLengthUnit, posAsPos, posAsNeg, negAsPos, negAsNeg); // instance checks for classification - } else { + } else { SortedSet<Individual> posAsPos = new TreeSet<Individual>(); SortedSet<Individual> posAsNeg = new TreeSet<Individual>(); SortedSet<Individual> negAsPos = new TreeSet<Individual>(); SortedSet<Individual> negAsNeg = new TreeSet<Individual>(); - - if (useDIGMultiInstanceChecks != UseMultiInstanceChecks.NEVER) { + + if (useMultiInstanceChecks != UseMultiInstanceChecks.NEVER) { SortedSet<Individual> posClassified = reasoningService.instanceCheck(concept, allExamples); SortedSet<Individual> negClassified = Helper.difference(allExamples, @@ -187,15 +187,20 @@ posAsNeg = Helper.intersection(positiveExamples, negClassified); negAsPos = Helper.intersection(negativeExamples, posClassified); negAsNeg = Helper.intersection(negativeExamples, negClassified); + + // System.out.println("pos classified: " + posClassified); + return new ScoreTwoValued(concept.getLength(), percentPerLengthUnit, posAsPos, posAsNeg, negAsPos, negAsNeg); } else { - + System.out.println("TEST"); + for (Individual example : positiveExamples) { - if (reasoningService.instanceCheck(concept, example)) + if (reasoningService.instanceCheck(concept, example)) { posAsPos.add(example); - else - posAsNeg.add(example); + } else { + posAsNeg.add(example); System.out.println(concept + " " + example); + } } for (Individual example : negativeExamples) { if (reasoningService.instanceCheck(concept, example)) Modified: trunk/src/dl-learner/org/dllearner/learningproblems/PosNegInclusionLP.java =================================================================== --- trunk/src/dl-learner/org/dllearner/learningproblems/PosNegInclusionLP.java 2008-01-07 16:12:15 UTC (rev 348) +++ trunk/src/dl-learner/org/dllearner/learningproblems/PosNegInclusionLP.java 2008-01-07 16:22:54 UTC (rev 349) @@ -124,9 +124,9 @@ SortedSet<Individual> negExInNegatedConcept = Helper.intersection(negativeExamples, inNegatedConcept); return (negativeExamples.size() - negExInNegatedConcept.size()); } else { - if (useDIGMultiInstanceChecks != UseMultiInstanceChecks.NEVER) { + if (useMultiInstanceChecks != UseMultiInstanceChecks.NEVER) { // two checks - if (useDIGMultiInstanceChecks == UseMultiInstanceChecks.TWOCHECKS) { + if (useMultiInstanceChecks == UseMultiInstanceChecks.TWOCHECKS) { Set<Individual> posExInNegatedConcept = reasoningService.instanceCheck(new Negation(concept), positiveExamples); if(posExInNegatedConcept.size()>0) { Modified: trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLP.java =================================================================== --- trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLP.java 2008-01-07 16:12:15 UTC (rev 348) +++ trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLP.java 2008-01-07 16:22:54 UTC (rev 349) @@ -32,6 +32,7 @@ import org.dllearner.core.config.ConfigEntry; import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.InvalidConfigOptionValueException; +import org.dllearner.core.config.StringConfigOption; import org.dllearner.core.config.StringSetConfigOption; import org.dllearner.core.dl.Concept; import org.dllearner.core.dl.Individual; @@ -48,7 +49,7 @@ protected SortedSet<Individual> allExamples; protected boolean useRetrievalForClassification = false; - protected UseMultiInstanceChecks useDIGMultiInstanceChecks = UseMultiInstanceChecks.TWOCHECKS; + protected UseMultiInstanceChecks useMultiInstanceChecks = UseMultiInstanceChecks.TWOCHECKS; protected double percentPerLengthUnit = 0.05; /** @@ -90,6 +91,9 @@ options.add(new BooleanConfigOption("useRetrievalForClassficiation", "Specifies whether to use retrieval or instance checks for testing a concept.")); options.add(CommonConfigOptions.getPercentPerLenghtUnitOption(0.05)); + StringConfigOption multiInstanceChecks = new StringConfigOption("useMultiInstanceChecks", "See UseMultiInstanceChecks enum."); + multiInstanceChecks.setAllowedValues(new String[] {"never", "twoChecks", "oneCheck"}); + options.add(multiInstanceChecks); return options; } @@ -112,6 +116,15 @@ useRetrievalForClassification = (Boolean) entry.getValue(); else if (name.equals("percentPerLengthUnit")) percentPerLengthUnit = (Double) entry.getValue(); + else if (name.equals("useMultiInstanceChecks")) { + String value = (String) entry.getValue(); + if(value.equals("oneCheck")) + useMultiInstanceChecks = UseMultiInstanceChecks.ONECHECK; + else if(value.equals("twoChecks")) + useMultiInstanceChecks = UseMultiInstanceChecks.TWOCHECKS; + else + useMultiInstanceChecks = UseMultiInstanceChecks.NEVER; + } } /* Added: trunk/src/dl-learner/org/dllearner/reasoning/FaCTBugDemo.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/FaCTBugDemo.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/reasoning/FaCTBugDemo.java 2008-01-07 16:22:54 UTC (rev 349) @@ -0,0 +1,65 @@ +package org.dllearner.reasoning; + +import org.semanticweb.owl.model.*; +import org.semanticweb.owl.apibinding.OWLManager; +import org.semanticweb.owl.inference.OWLReasoner; +import org.semanticweb.owl.inference.OWLReasonerException; + +import java.net.URI; +import java.util.HashSet; +import java.util.Set; +import java.io.File; + +public class FaCTBugDemo { + + public static void main(String[] args) { + + try { + URI uri = new File("examples/father.owl").toURI(); + + // Create our ontology manager in the usual way. + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + + // Load a copy of the pizza ontology. We'll load the ontology from the web. + OWLOntology ont = manager.loadOntologyFromPhysicalURI(uri); + + OWLReasoner reasoner = new uk.ac.manchester.cs.factplusplus.owlapi.Reasoner(manager); + // OWLReasoner reasoner = new org.mindswap.pellet.owlapi.Reasoner(manager); + + // seems to be needed for some reason although no ontology is imported + Set<OWLOntology> importsClosure = manager.getImportsClosure(ont); + reasoner.loadOntologies(importsClosure); + + reasoner.classify(); + reasoner.realise(); + + OWLDataFactory factory = manager.getOWLDataFactory(); + + OWLClass male = factory.getOWLClass(URI.create("http://example.com/father#male")); + OWLObjectProperty hasChild = factory.getOWLObjectProperty(URI.create("http://example.com/father#hasChild")); + OWLObjectSomeRestriction hasSomeChild = factory.getOWLObjectSomeRestriction(hasChild, factory.getOWLThing()); + Set<OWLDescription> set = new HashSet<OWLDescription>(); + set.add(male); + set.add(hasSomeChild); + OWLDescription father = factory.getOWLObjectIntersectionOf(set); + OWLIndividual martin = factory.getOWLIndividual(URI.create("http://example.com/father#martin")); + + if(reasoner.hasType(martin, father, false)) + System.out.println("positive result"); // Pellet 1.5.1 (correct) + else + System.out.println("negative result"); // FaCT++ 1.10 + + } + catch(UnsupportedOperationException exception) { + System.out.println("Unsupported reasoner operation."); + } + catch(OWLReasonerException ex) { + System.out.println("Reasoner error: " + ex.getMessage()); + } + catch (OWLOntologyCreationException e) { + System.out.println("Could not load the pizza ontology: " + e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + } + } +} Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-07 16:12:15 UTC (rev 348) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-07 16:22:54 UTC (rev 349) @@ -19,6 +19,7 @@ */ package org.dllearner.reasoning; +import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; @@ -80,7 +81,7 @@ */ public class OWLAPIReasoner extends ReasonerComponent { - private String reasonerType = "FaCT++"; + private String reasonerType = "fact"; private Set<KnowledgeSource> sources; private OWLReasoner reasoner; @@ -109,7 +110,7 @@ public static Collection<ConfigOption<?>> createConfigOptions() { Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); StringConfigOption type = new StringConfigOption("reasonerType", "FaCT++ or Pellet", "FaCT++"); - type.setAllowedValues(new String[] {"FaCT++", "Pellet"}); + type.setAllowedValues(new String[] {"fact", "pellet"}); // closure-Option? siehe: // http://owlapi.svn.sourceforge.net/viewvc/owlapi/owl1_1/trunk/tutorial/src/main/java/uk/ac/manchester/owl/tutorial/examples/ClosureAxiomsExample.java?view=markup options.add(type); @@ -143,15 +144,29 @@ Set<OWLObjectProperty> properties = new TreeSet<OWLObjectProperty>(namedObjectComparator); Set<OWLIndividual> owlIndividuals = new TreeSet<OWLIndividual>(namedObjectComparator); + Set<OWLOntology> allImports = new HashSet<OWLOntology>(); + for(KnowledgeSource source : sources) { if(!(source instanceof OWLFile)) { System.out.println("Currently, only OWL files are supported. Ignoring knowledge source " + source + "."); } else { URL url = ((OWLFile)source).getURL(); + /* try { + url = new URL("http://www.co-ode.org/ontologies/pizza/2007/02/12/pizza.owl"); + } catch (MalformedURLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + */ + try { OWLOntology ontology = manager.loadOntologyFromPhysicalURI(url.toURI()); + allImports.addAll(manager.getImportsClosure(ontology)); classes.addAll(ontology.getReferencedClasses()); properties.addAll(ontology.getReferencedObjectProperties()); + // does not seem to work => workaround: query all instances of Top + // maybe one can also query for instances of OWLObjectProperty, + // OWLClass, OWLIndividual owlIndividuals.addAll(ontology.getReferencedIndividuals()); } catch (OWLOntologyCreationException e) { e.printStackTrace(); @@ -162,7 +177,7 @@ } // create actual reasoner - if(reasonerType.equals("FaCT++")) { + if(reasonerType.equals("fact")) { try { reasoner = new uk.ac.manchester.cs.factplusplus.owlapi.Reasoner(manager); } catch (Exception e) { @@ -173,9 +188,24 @@ reasoner = new org.mindswap.pellet.owlapi.Reasoner(manager); } + /* + Set<OWLOntology> importsClosure = manager.getImportsClosure(ontology); + System.out.println("imports closure : " + importsClosure); + try { + reasoner.loadOntologies(importsClosure); + } catch (OWLReasonerException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + }*/ + + System.out.println(classes); + System.out.println(properties); + System.out.println(individuals); + // compute class hierarchy and types of individuals // (done here to speed up later reasoner calls) try { + reasoner.loadOntologies(allImports); reasoner.classify(); reasoner.realise(); } catch (OWLReasonerException e) { @@ -184,6 +214,18 @@ factory = manager.getOWLDataFactory(); + + + try { + if(reasoner.isDefined(factory.getOWLIndividual(URI.create("http://example.com/father#female")))) + System.out.println("DEFINED."); + else + System.out.println("NOT DEFINED."); + } catch (OWLReasonerException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // read in primitives atomicConcepts = new TreeSet<AtomicConcept>(conceptComparator); for(OWLClass owlClass : classes) @@ -370,17 +412,20 @@ } } - // TODO @Override public SortedSet<Individual> retrieval(Concept concept) { OWLDescription d = getOWLAPIDescription(concept); + Set<OWLIndividual> individuals = null; try { - reasoner.getIndividuals(d, false); + individuals = reasoner.getIndividuals(d, false); } catch (OWLReasonerException e) { // TODO Auto-generated catch block e.printStackTrace(); } - return null; + SortedSet<Individual> inds = new TreeSet<Individual>(); + for(OWLIndividual ind : individuals) + inds.add(new Individual(ind.getURI().toString())); + return inds; } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ton...@us...> - 2008-01-07 16:12:17
|
Revision: 348 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=348&view=rev Author: tonytacker Date: 2008-01-07 08:12:15 -0800 (Mon, 07 Jan 2008) Log Message: ----------- now it runs up to Reasoner and a list will be shown - don't forget to choose first KnowledgeSource OWL (the others don't work yet) and load a file Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/gui/Config.java trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java Modified: trunk/src/dl-learner/org/dllearner/gui/Config.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/Config.java 2008-01-07 09:47:05 UTC (rev 347) +++ trunk/src/dl-learner/org/dllearner/gui/Config.java 2008-01-07 16:12:15 UTC (rev 348) @@ -39,20 +39,20 @@ */ public class Config { - protected static ComponentManager cm = ComponentManager.getInstance(); - protected static KnowledgeSource source; - protected static File selectedFile; - protected static ReasonerComponent reasoner; - protected static ReasoningService rs; - protected static List<Individual> individuals; - protected String[] kbBoxItems = {"Pleae select a type", "KBFile", "OWLFile", "SparqleEndpoint"}; + private ComponentManager cm = ComponentManager.getInstance(); + private KnowledgeSource source; + private File selectedFile; + private ReasonerComponent reasoner; + private ReasoningService rs; + private List<Individual> individuals; + private String[] kbBoxItems = {"Pleae select a type", "KBFile", "OWLFile", "SparqleEndpoint"}; /** * status should show witch variables are set * status[0] ... cm * status[1] ... KnowledgeSource * status[2] ... File or URL - * status[3] ... + * status[3] ... Resoner */ protected static boolean[] status = new boolean[8]; @@ -112,11 +112,11 @@ } protected KnowledgeSource getKnowledgeSource() { - status[1] = true; return source; } protected void setKnowledgeSource(KnowledgeSource input) { + status[1] = true; source = input; } Modified: trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-07 09:47:05 UTC (rev 347) +++ trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-07 16:12:15 UTC (rev 348) @@ -21,7 +21,7 @@ */ import java.io.File; -import java.util.List; +//import java.util.List; import javax.swing.*; @@ -30,9 +30,9 @@ import java.awt.event.ActionListener; import org.dllearner.kb.OWLFile; -import org.dllearner.kb.KBFile; +// import org.dllearner.kb.KBFile; -import org.dllearner.core.KnowledgeSource; +//import org.dllearner.core.KnowledgeSource; /** @@ -62,9 +62,10 @@ fileDisplay = new JTextField(35); fileDisplay.setEditable(false); - // test output - List<Class<? extends KnowledgeSource>> sources = StartGUI.myconfig.getComponentManager().getKnowledgeSources(); - for (int i=0; i<sources.size(); i++) cb.addItem(sources.get(i)); + // test output - if you activat next 2 lines, it will show alle available kb.classes + // activate import too! + //List<Class<? extends KnowledgeSource>> sources = StartGUI.myconfig.getComponentManager().getKnowledgeSources(); + //for (int i=0; i<sources.size(); i++) cb.addItem(sources.get(i)); cb.addActionListener(this); JPanel choosePanel = new JPanel(); @@ -81,8 +82,8 @@ if (returnVal == JFileChooser.APPROVE_OPTION) { StartGUI.myconfig.setFile(fc.getSelectedFile()); //save variable fileDisplay.setText(StartGUI.myconfig.getFile().toString()); - System.out.println("Init KnowledgeSource after loading file ... show over output"); - System.out.println("test: " + StartGUI.myconfig.getFile().toURI().toString()); + //System.out.println("Init KnowledgeSource after loading file ... show over output"); + //System.out.println("test: " + StartGUI.myconfig.getFile().toURI().toString()); StartGUI.myconfig.getComponentManager().applyConfigEntry(StartGUI.myconfig.getKnowledgeSource(), "url", StartGUI.myconfig.getFile().toURI().toString()); StartGUI.myconfig.getKnowledgeSource().init(); } @@ -91,17 +92,17 @@ // choose none if (cb.getSelectedItem().toString() == kbBoxItems[0]) { - System.out.println("Item: " + cb.getSelectedItem()); + //System.out.println("Item: " + cb.getSelectedItem()); makeCenterClean(); } // choose KB class if (cb.getSelectedItem().toString() == kbBoxItems[1]) { - System.out.println("Item: " + cb.getSelectedItem()); + //System.out.println("Item: " + cb.getSelectedItem()); makeCenterClean(); } // choose OWL class if (cb.getSelectedItem().toString() == kbBoxItems[2]) { - System.out.println("Item: " + cb.getSelectedItem()); + //System.out.println("Item: " + cb.getSelectedItem()); makeCenterClean(); openPanel.add(fileDisplay); openPanel.add(openButton); @@ -110,7 +111,7 @@ } // choose SPARCLE class if (cb.getSelectedItem().toString() == kbBoxItems[3]) { - System.out.println("Item: " + cb.getSelectedItem()); + //System.out.println("Item: " + cb.getSelectedItem()); makeCenterClean(); } } Modified: trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java 2008-01-07 09:47:05 UTC (rev 347) +++ trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java 2008-01-07 16:12:15 UTC (rev 348) @@ -45,27 +45,36 @@ showButton = new JButton("Show Variables"); showButton.addActionListener(this); - infoArea = new JTextArea(20,40); - + infoArea = new JTextArea(20, 50); + JScrollPane infoScroll = new JScrollPane(infoArea); + JPanel showPanel = new JPanel(); showPanel.add(showButton); JPanel infoPanel = new JPanel(); - infoPanel.add(infoArea); - + infoPanel.add(infoScroll); + add(showPanel, BorderLayout.PAGE_START); add(infoPanel, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { if (e.getSource() == showButton) { - if (StartGUI.myconfig.getStatus(1)) { // file is selected and exist? + infoArea.setText(""); + if (StartGUI.myconfig.getStatus(2)) { // file is selected and exist? infoArea.append("SourceClass: " + StartGUI.myconfig.getKnowledgeSource().toString() + "\n"); - infoArea.append("FILE: " + StartGUI.myconfig.getFile().toString() + "\n"); + infoArea.append("FILE: " + StartGUI.myconfig.getFile() + "\n"); } - if (StartGUI.myconfig.getStatus(2)) { - + if (StartGUI.myconfig.getStatus(3)) { // Reasoner is set + infoArea.append("Reasoner: " + StartGUI.myconfig.getReasoner() + "\n"); } - + if (StartGUI.myconfig.getStatus(4)) { // ReasoningServic is set + infoArea.append("ReasoningService: " + StartGUI.myconfig.getReasoningService() + "\n"); + } + if (false) { + for (int i = 0; i<8; i++) { // show status-vars + infoArea.append("i: " + StartGUI.myconfig.getStatus(i) + "\n"); + } + } } } } Modified: trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-07 09:47:05 UTC (rev 347) +++ trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-07 16:12:15 UTC (rev 348) @@ -24,9 +24,13 @@ import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; import javax.swing.*; +import org.dllearner.core.dl.Individual; import org.dllearner.reasoning.DIGReasoner; //import org.dllearner.core.ReasonerComponent; @@ -50,6 +54,7 @@ private JPanel centerPanel = new JPanel(); private JButton digButton; private JList digList = new JList(); + private List<Individual> individuals; ReasonerPanel() { super(new BorderLayout()); @@ -58,43 +63,48 @@ digButton.addActionListener(this); // create a scrollable list of examples + digList = new JList(); digList.setLayoutOrientation(JList.VERTICAL); digList.setVisibleRowCount(-1); JScrollPane listScroller = new JScrollPane(digList); - listScroller.setPreferredSize(new Dimension(250, 80)); - centerPanel.add(listScroller); + listScroller.setPreferredSize(new Dimension(550, 350)); digPanel.add(digButton); add(digPanel, BorderLayout.PAGE_START); - centerPanel.add(digList); + centerPanel.add(listScroller); add(centerPanel, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { - if (e.getSource() == digButton) { // DIG + if (e.getSource() == digButton) { + // set reasoner StartGUI.myconfig.setReasoner(StartGUI.myconfig.getComponentManager().reasoner(DIGReasoner.class, StartGUI.myconfig.getKnowledgeSource())); - System.out.println(StartGUI.myconfig.getKnowledgeSource()); - StartGUI.myconfig.getReasoner().init(); //error - System.out.println("test"); + //System.out.println(StartGUI.myconfig.getKnowledgeSource()); + StartGUI.myconfig.getReasoner().init(); + //System.out.println(StartGUI.myconfig.getReasoner()); - //config.setReasoningService(config.getComponentManager().reasoningService(config.getReasoner())); + // set ReasoningService + StartGUI.myconfig.setReasoningService(StartGUI.myconfig.getComponentManager().reasoningService(StartGUI.myconfig.getReasoner())); - // set list - //Set<Individual> individualsSet = config.getReasoningService().getIndividuals(); - //config.setListIndividuals(new LinkedList<Individual>(individualsSet)); + // get list from ReasoningService + Set<Individual> individualsSet = StartGUI.myconfig.getReasoningService().getIndividuals(); + //System.out.println("IndividualsSet: " + individualsSet); + individuals = new LinkedList<Individual>(individualsSet); + //System.out.println("individuals: " + individuals); + // make list + DefaultListModel listModel = new DefaultListModel(); + for(Individual ind : individuals) { + listModel.addElement(ind); + } + //System.out.println("listModel: " + listModel); + // graphic - //DefaultListModel listModel = new DefaultListModel(); - //for(Individual ind : config.getListIndividuals()) - //listModel.addElement(ind); + digList.setModel(listModel); + StartGUI.myrun.renew(); - // graphic - //Set<String> exampleSet = new HashSet<String>(); - //int[] selectedIndices = digList.getSelectedIndices(); - //for(int i : selectedIndices) - //exampleSet.add(config.getListIndividuals().get(i).toString()); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-07 09:47:12
|
Revision: 347 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=347&view=rev Author: jenslehmann Date: 2008-01-07 01:47:05 -0800 (Mon, 07 Jan 2008) Log Message: ----------- continued OWL API reasoner Modified Paths: -------------- trunk/lib/components.ini trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java Modified: trunk/lib/components.ini =================================================================== --- trunk/lib/components.ini 2008-01-06 20:08:33 UTC (rev 346) +++ trunk/lib/components.ini 2008-01-07 09:47:05 UTC (rev 347) @@ -6,6 +6,7 @@ org.dllearner.kb.SparqlEndpoint org.dllearner.kb.SparqlEndpointRestructured # reasoners +org.dllearner.reasoning.OWLAPIReasoner org.dllearner.reasoning.DIGReasoner org.dllearner.reasoning.FastRetrievalReasoner org.dllearner.reasoning.KAON2Reasoner Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 20:08:33 UTC (rev 346) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-07 09:47:05 UTC (rev 347) @@ -110,6 +110,8 @@ Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); StringConfigOption type = new StringConfigOption("reasonerType", "FaCT++ or Pellet", "FaCT++"); type.setAllowedValues(new String[] {"FaCT++", "Pellet"}); + // closure-Option? siehe: + // http://owlapi.svn.sourceforge.net/viewvc/owlapi/owl1_1/trunk/tutorial/src/main/java/uk/ac/manchester/owl/tutorial/examples/ClosureAxiomsExample.java?view=markup options.add(type); return options; } @@ -170,6 +172,16 @@ // instantiate Pellet reasoner reasoner = new org.mindswap.pellet.owlapi.Reasoner(manager); } + + // compute class hierarchy and types of individuals + // (done here to speed up later reasoner calls) + try { + reasoner.classify(); + reasoner.realise(); + } catch (OWLReasonerException e) { + e.printStackTrace(); + } + factory = manager.getOWLDataFactory(); // read in primitives @@ -303,19 +315,47 @@ } private TreeSet<Concept> getMoreGeneralConcepts(Concept concept) { - return null; + Set<Set<OWLClass>> classes = null; + try { + classes = reasoner.getSuperClasses(getOWLAPIDescription(concept)); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("OWL API classification error."); + } + return getFirstClasses(classes); } private TreeSet<Concept> getMoreSpecialConcepts(Concept concept) { - return null; + Set<Set<OWLClass>> classes = null; + try { + classes = reasoner.getSubClasses(getOWLAPIDescription(concept)); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("OWL API classification error."); + } + return getFirstClasses(classes); } private TreeSet<AtomicRole> getMoreGeneralRoles(AtomicRole role) { - return null; + Set<Set<OWLObjectProperty>> properties; + try { + properties = reasoner.getSuperProperties(getOWLAPIDescription(role)); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("OWL API classification error."); + } + return getFirstProperties(properties); } private TreeSet<AtomicRole> getMoreSpecialRoles(AtomicRole role) { - return null; + Set<Set<OWLObjectProperty>> properties; + try { + properties = reasoner.getSubProperties(getOWLAPIDescription(role)); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("OWL API classification error."); + } + return getFirstProperties(properties); } @Override @@ -330,6 +370,7 @@ } } + // TODO @Override public SortedSet<Individual> retrieval(Concept concept) { OWLDescription d = getOWLAPIDescription(concept); @@ -351,24 +392,10 @@ e.printStackTrace(); throw new Error("GetConcepts() reasoning error in OWL API."); } - // the OWL API returns a set of sets; each inner set consists of - // atomic classes - Set<AtomicConcept> concepts = new HashSet<AtomicConcept>(); - for(Set<OWLClass> classes : result) { - // take one element from the set and ignore the rest - // (TODO: we need to make sure we always ignore the same concepts) - OWLClass concept = classes.iterator().next(); - concepts.add(new AtomicConcept(concept.getURI().toString())); - } - return concepts; + return getFirstClassesNoTopBottom(result); } @Override - public Map<Individual, SortedSet<Individual>> getRoleMembers(AtomicRole atomicRole) { - return null; - } - - @Override public boolean isSatisfiable() { try { return reasoner.isSatisfiable(factory.getOWLThing()); @@ -378,6 +405,49 @@ } } + // OWL API often returns a set of sets of classes, where each inner + // set consists of equivalent classes; this method picks one class + // from each inner set to flatten the set of sets + private TreeSet<Concept> getFirstClasses(Set<Set<OWLClass>> setOfSets) { + TreeSet<Concept> concepts = new TreeSet<Concept>(conceptComparator); + for(Set<OWLClass> innerSet : setOfSets) { + // take one element from the set and ignore the rest + // (TODO: we need to make sure we always ignore the same concepts) + OWLClass concept = innerSet.iterator().next(); + if(concept.isOWLThing()) { + concepts.add(new Top()); + } else if(concept.isOWLNothing()) { + concepts.add(new Bottom()); + } else { + concepts.add(new AtomicConcept(concept.getURI().toString())); + } + } + return concepts; + } + + private Set<AtomicConcept> getFirstClassesNoTopBottom(Set<Set<OWLClass>> setOfSets) { + Set<AtomicConcept> concepts = new HashSet<AtomicConcept>(); + for(Set<OWLClass> innerSet : setOfSets) { + // take one element from the set and ignore the rest + // (TODO: we need to make sure we always ignore the same concepts) + OWLClass concept = innerSet.iterator().next(); + if(!concept.isOWLThing() && !concept.isOWLNothing()) + concepts.add(new AtomicConcept(concept.getURI().toString())); + } + return concepts; + } + + private TreeSet<AtomicRole> getFirstProperties(Set<Set<OWLObjectProperty>> setOfSets) { + TreeSet<AtomicRole> roles = new TreeSet<AtomicRole>(roleComparator); + for(Set<OWLObjectProperty> innerSet : setOfSets) { + // take one element from the set and ignore the rest + // (TODO: we need to make sure we always ignore the same concepts) + OWLObjectProperty property = innerSet.iterator().next(); + roles.add(new AtomicRole(property.getURI().toString())); + } + return roles; + } + private Set<Concept> owlClassesToAtomicConcepts(Set<OWLClass> owlClasses) { Set<Concept> concepts = new HashSet<Concept>(); for(OWLClass owlClass : owlClasses) @@ -389,6 +459,10 @@ return new AtomicConcept(owlClass.getURI().toString()); } + public OWLObjectProperty getOWLAPIDescription(AtomicRole role) { + return factory.getOWLObjectProperty(URI.create(role.getName())); + } + public OWLDescription getOWLAPIDescription(Concept concept) { if (concept instanceof AtomicConcept) { return factory.getOWLClass(URI.create(((AtomicConcept)concept).getName())); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 20:08:47
|
Revision: 346 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=346&view=rev Author: jenslehmann Date: 2008-01-06 12:08:33 -0800 (Sun, 06 Jan 2008) Log Message: ----------- fixed Tilos bug Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIDIGConverter.java Modified: trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-06 18:47:12 UTC (rev 345) +++ trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-06 20:08:33 UTC (rev 346) @@ -82,9 +82,11 @@ StartGUI.myconfig.setFile(fc.getSelectedFile()); //save variable fileDisplay.setText(StartGUI.myconfig.getFile().toString()); System.out.println("Init KnowledgeSource after loading file ... show over output"); + System.out.println("test: " + StartGUI.myconfig.getFile().toURI().toString()); StartGUI.myconfig.getComponentManager().applyConfigEntry(StartGUI.myconfig.getKnowledgeSource(), "url", StartGUI.myconfig.getFile().toURI().toString()); StartGUI.myconfig.getKnowledgeSource().init(); - } + } + return; } // choose none Modified: trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-06 18:47:12 UTC (rev 345) +++ trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-06 20:08:33 UTC (rev 346) @@ -75,6 +75,7 @@ public void actionPerformed(ActionEvent e) { if (e.getSource() == digButton) { // DIG StartGUI.myconfig.setReasoner(StartGUI.myconfig.getComponentManager().reasoner(DIGReasoner.class, StartGUI.myconfig.getKnowledgeSource())); + System.out.println(StartGUI.myconfig.getKnowledgeSource()); StartGUI.myconfig.getReasoner().init(); //error System.out.println("test"); Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIDIGConverter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIDIGConverter.java 2008-01-06 18:47:12 UTC (rev 345) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIDIGConverter.java 2008-01-06 20:08:33 UTC (rev 346) @@ -26,64 +26,50 @@ public class OWLAPIDIGConverter { public static String getTellsString(URL file, OntologyFormat format, URI kbURI) { - // public static String getTellsString(URL file, URI kbURI){//throws OWLOntologyCreationException{ - String ret=""; - try{ - - /* Load an ontology from a physical URI */ - OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - //the next function could return an ontology - manager.loadOntologyFromPhysicalURI(file.toURI()); - - DIGTranslatorImpl dig=new DIGTranslatorImpl(manager); - Document doc=dig.createTellsDocument(kbURI.toString()); - dig.translateToDIG(manager.getOntologies(), doc, doc.getDocumentElement() ); - ret=xml2string(doc); - // }catch (Exception e) {e.printStackTrace();} - }catch (DIGReasonerException e) {e.printStackTrace();} - catch (OWLOntologyCreationException e) {e.printStackTrace();} - catch (URISyntaxException e) {e.printStackTrace();} - - // System.out.println(ret); - // System.exit(0); - - return ret; - } - - - //for convenience - /* - public static String getTellsString(String file, String kbURI){ - // String ret=""; - //try{ - // URL u=new URL(file); - // URI ui=new URI(kbURI); - return getTellsString(file, kbURI); - //}catch (MalformedURLException e) {e.printStackTrace();} - //catch (URISyntaxException e) {e.printStackTrace();} - // return ret; - }*/ - - public static String xml2string(Document d){ - // XML als String erzeugen (ziemlich umst�ndlich) - String tellString=""; + String ret = ""; try { - // transformer erzeugen mit identity transformation - Transformer transformer = TransformerFactory.newInstance().newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty(OutputKeys.METHOD, "xml"); - // Quelle ist das DOM-Objekt - DOMSource source = new DOMSource( d ); - // Resultat ist ein OutputStream, leider kann man das Resultat nicht - // direkt als String bekommen - ByteArrayOutputStream os = new ByteArrayOutputStream(); - StreamResult result = new StreamResult( os ); - // Transformation ausf�hren - transformer.transform( source, result ); - // String aus OutputStream generieren - tellString = os.toString(); - + + // Load an ontology from a physical URI + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + // the next function could return an ontology + manager.loadOntologyFromPhysicalURI(file.toURI()); + + DIGTranslatorImpl dig = new DIGTranslatorImpl(manager); + Document doc = dig.createTellsDocument(kbURI.toString()); + dig.translateToDIG(manager.getOntologies(), doc, doc.getDocumentElement()); + ret = xml2string(doc); + + } catch (DIGReasonerException e) { + e.printStackTrace(); + } catch (OWLOntologyCreationException e) { + e.printStackTrace(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + + return ret; + } + + public static String xml2string(Document d) { + // XML als String erzeugen (ziemlich umst�ndlich) + String tellString = ""; + try { + // transformer erzeugen mit identity transformation + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty(OutputKeys.METHOD, "xml"); + // Quelle ist das DOM-Objekt + DOMSource source = new DOMSource(d); + // Resultat ist ein OutputStream, leider kann man das Resultat nicht + // direkt als String bekommen + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamResult result = new StreamResult(os); + // Transformation ausf�hren + transformer.transform(source, result); + // String aus OutputStream generieren + tellString = os.toString(); + } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerFactoryConfigurationError e) { @@ -93,31 +79,4 @@ } return tellString; } - - - -/*public static void main(String[] args) { - - try{ - - String inputOntology = "http://localhost/dllearner/ontologies/arch.owl"; - //String inputOntology = "http://localhost/dllearner/ontologies/ttttt.rdf"; - - OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); - URL res = new URL("http://localhost:8081"); - HTTPReasonerImpl h=new HTTPReasonerImpl(manager); - h.setReasonerURL(res); - URL u=new URL(inputOntology); - String kb=(h.createKnowledgeBase()); - URI ui=new URI(kb); - System.out.println(getTellsString(u, ui)); - - System.out.println("Done"); - - } catch (Exception e) { - e.printStackTrace(); - } - - }*/ } - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ton...@us...> - 2008-01-06 18:47:25
|
Revision: 345 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=345&view=rev Author: tonytacker Date: 2008-01-06 10:47:12 -0800 (Sun, 06 Jan 2008) Log Message: ----------- you can choose owl and load a file at first tab (knowledgesource) - control over last tab (output) - by choosing dig (tab 2) it crash, don't know why - init doesn't work Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/gui/Config.java trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java trunk/src/dl-learner/org/dllearner/gui/StartGUI.java Modified: trunk/src/dl-learner/org/dllearner/gui/Config.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/Config.java 2008-01-06 15:14:35 UTC (rev 344) +++ trunk/src/dl-learner/org/dllearner/gui/Config.java 2008-01-06 18:47:12 UTC (rev 345) @@ -45,7 +45,7 @@ protected static ReasonerComponent reasoner; protected static ReasoningService rs; protected static List<Individual> individuals; - protected static String[] kbBoxItems = {"Pleae select a type", "KBFile", "OWLFile", "SparqleEndpoint"}; + protected String[] kbBoxItems = {"Pleae select a type", "KBFile", "OWLFile", "SparqleEndpoint"}; /** * status should show witch variables are set Modified: trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-06 15:14:35 UTC (rev 344) +++ trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-06 18:47:12 UTC (rev 345) @@ -21,7 +21,7 @@ */ import java.io.File; -//import java.util.List; +import java.util.List; import javax.swing.*; @@ -32,6 +32,7 @@ import org.dllearner.kb.OWLFile; import org.dllearner.kb.KBFile; +import org.dllearner.core.KnowledgeSource; /** @@ -48,10 +49,10 @@ private JFileChooser fc; private JButton openButton; private JTextField fileDisplay; - private String[] kbBoxItems = StartGUI.config.getKBBoxItems(); + private String[] kbBoxItems = StartGUI.myconfig.getKBBoxItems(); private JComboBox cb = new JComboBox(kbBoxItems); private JPanel openPanel = new JPanel(); - + KnowledgeSourcePanel() { super(new BorderLayout()); @@ -62,8 +63,8 @@ fileDisplay.setEditable(false); // test output - //List<Class<? extends KnowledgeSource>> sources = config.getComponentManager().getKnowledgeSources(); - //for (int i=0; i<sources.size(); i++) cb.addItem(sources.get(i)); + List<Class<? extends KnowledgeSource>> sources = StartGUI.myconfig.getComponentManager().getKnowledgeSources(); + for (int i=0; i<sources.size(); i++) cb.addItem(sources.get(i)); cb.addActionListener(this); JPanel choosePanel = new JPanel(); @@ -78,12 +79,14 @@ if (e.getSource() == openButton) { int returnVal = fc.showOpenDialog(KnowledgeSourcePanel.this); if (returnVal == JFileChooser.APPROVE_OPTION) { - StartGUI.config.setFile(fc.getSelectedFile()); //save variable - fileDisplay.setText(StartGUI.config.getFile().toString()); - StartGUI.config.getComponentManager().applyConfigEntry(StartGUI.config.getKnowledgeSource(), "url", StartGUI.config.getFile().toURI().toString()); - StartGUI.config.getKnowledgeSource().init(); + StartGUI.myconfig.setFile(fc.getSelectedFile()); //save variable + fileDisplay.setText(StartGUI.myconfig.getFile().toString()); + System.out.println("Init KnowledgeSource after loading file ... show over output"); + StartGUI.myconfig.getComponentManager().applyConfigEntry(StartGUI.myconfig.getKnowledgeSource(), "url", StartGUI.myconfig.getFile().toURI().toString()); + StartGUI.myconfig.getKnowledgeSource().init(); } } + // choose none if (cb.getSelectedItem().toString() == kbBoxItems[0]) { System.out.println("Item: " + cb.getSelectedItem()); @@ -92,19 +95,16 @@ // choose KB class if (cb.getSelectedItem().toString() == kbBoxItems[1]) { System.out.println("Item: " + cb.getSelectedItem()); - makeCenterClean(); - openPanel.add(fileDisplay); - openPanel.add(openButton); - openPanel.repaint(); - StartGUI.config.setKnowledgeSource(StartGUI.config.getComponentManager().knowledgeSource(KBFile.class)); + makeCenterClean(); } // choose OWL class if (cb.getSelectedItem().toString() == kbBoxItems[2]) { - makeCenterClean(); + System.out.println("Item: " + cb.getSelectedItem()); + makeCenterClean(); openPanel.add(fileDisplay); openPanel.add(openButton); openPanel.repaint(); - StartGUI.config.setKnowledgeSource(StartGUI.config.getComponentManager().knowledgeSource(OWLFile.class)); + StartGUI.myconfig.setKnowledgeSource(StartGUI.myconfig.getComponentManager().knowledgeSource(OWLFile.class)); } // choose SPARCLE class if (cb.getSelectedItem().toString() == kbBoxItems[3]) { @@ -117,6 +117,6 @@ openPanel.remove(fileDisplay); openPanel.remove(openButton); openPanel.repaint(); - StartGUI.renew(); - } + StartGUI.myrun.renew(); + } } Modified: trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java 2008-01-06 15:14:35 UTC (rev 344) +++ trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java 2008-01-06 18:47:12 UTC (rev 345) @@ -58,11 +58,11 @@ public void actionPerformed(ActionEvent e) { if (e.getSource() == showButton) { - if (StartGUI.config.getStatus(1)) { // file is selected and exist? - infoArea.append("SourceClass: " + StartGUI.config.getKnowledgeSource().toString() + "\n"); - infoArea.append("FILE: " + StartGUI.config.getFile().toString() + "\n"); + if (StartGUI.myconfig.getStatus(1)) { // file is selected and exist? + infoArea.append("SourceClass: " + StartGUI.myconfig.getKnowledgeSource().toString() + "\n"); + infoArea.append("FILE: " + StartGUI.myconfig.getFile().toString() + "\n"); } - if (StartGUI.config.getStatus(2)) { + if (StartGUI.myconfig.getStatus(2)) { } Modified: trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-06 15:14:35 UTC (rev 344) +++ trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-06 18:47:12 UTC (rev 345) @@ -74,8 +74,8 @@ public void actionPerformed(ActionEvent e) { if (e.getSource() == digButton) { // DIG - StartGUI.config.setReasoner(StartGUI.config.getComponentManager().reasoner(DIGReasoner.class, StartGUI.config.getKnowledgeSource())); - //StartGUI.config.getReasoner().init(); //error + StartGUI.myconfig.setReasoner(StartGUI.myconfig.getComponentManager().reasoner(DIGReasoner.class, StartGUI.myconfig.getKnowledgeSource())); + StartGUI.myconfig.getReasoner().init(); //error System.out.println("test"); //config.setReasoningService(config.getComponentManager().reasoningService(config.getReasoner())); Modified: trunk/src/dl-learner/org/dllearner/gui/StartGUI.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/StartGUI.java 2008-01-06 15:14:35 UTC (rev 344) +++ trunk/src/dl-learner/org/dllearner/gui/StartGUI.java 2008-01-06 18:47:12 UTC (rev 345) @@ -33,15 +33,18 @@ private static final long serialVersionUID = -739265982906533775L; - public static Config config = new Config(); + protected static StartGUI myrun; - private static final JTabbedPane tabPane = new JTabbedPane(); + protected static Config myconfig = new Config(); + + public JTabbedPane tabPane = new JTabbedPane(); + private JPanel tab1 = new JPanel(); private JPanel tab2 = new JPanel(); private JPanel tab3 = new JPanel(); private JPanel tab4 = new JPanel(); private JPanel tab5 = new JPanel(); - + public StartGUI() { this.setTitle("DL-Learner GUI"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); @@ -55,17 +58,22 @@ tabPane.addTab("Knowledge Source", tab1); tabPane.addTab("Reasoner", tab2); tabPane.addTab("Learning Problem", tab3); - tabPane.addTab("Learning Algortihm", tab4); + tabPane.addTab("Learning Algorithm", tab4); tabPane.addTab("Output", tab5); this.add(tabPane); this.setVisible(true); } - + public static void main(String[] args) { - new StartGUI(); + myrun = new StartGUI(); } - protected static void renew() { - tabPane.repaint(); + protected void renew() { + myrun.tabPane.repaint(); } + + protected StartGUI getStartGUI() { + return myrun; + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 15:14:36
|
Revision: 344 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=344&view=rev Author: jenslehmann Date: 2008-01-06 07:14:35 -0800 (Sun, 06 Jan 2008) Log Message: ----------- continued OWL API reasoner Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java trunk/src/dl-learner/org/dllearner/reasoning/ReasonerType.java Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 11:54:42 UTC (rev 343) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 15:14:35 UTC (rev 344) @@ -26,8 +26,10 @@ import java.util.Comparator; import java.util.HashSet; import java.util.LinkedList; +import java.util.Map; import java.util.Set; import java.util.SortedSet; +import java.util.TreeMap; import java.util.TreeSet; import org.dllearner.core.KnowledgeSource; @@ -48,8 +50,12 @@ import org.dllearner.core.dl.MultiConjunction; import org.dllearner.core.dl.MultiDisjunction; import org.dllearner.core.dl.Negation; +import org.dllearner.core.dl.RoleHierarchy; +import org.dllearner.core.dl.SubsumptionHierarchy; import org.dllearner.core.dl.Top; import org.dllearner.kb.OWLFile; +import org.dllearner.utilities.ConceptComparator; +import org.dllearner.utilities.RoleComparator; import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.inference.OWLReasoner; import org.semanticweb.owl.inference.OWLReasonerException; @@ -81,17 +87,23 @@ // the data factory is used to generate OWL API objects private OWLDataFactory factory; - // private ConceptComparator conceptComparator = new ConceptComparator(); - // private RoleComparator roleComparator = new RoleComparator(); - // private SubsumptionHierarchy subsumptionHierarchy; - // private RoleHierarchy roleHierarchy; + private ConceptComparator conceptComparator = new ConceptComparator(); + private RoleComparator roleComparator = new RoleComparator(); + private SubsumptionHierarchy subsumptionHierarchy; + private RoleHierarchy roleHierarchy; + private Set<Concept> allowedConceptsInSubsumptionHierarchy; + // primitives + Set<AtomicConcept> atomicConcepts; + Set<AtomicRole> atomicRoles; + SortedSet<Individual> individuals; + public OWLAPIReasoner(Set<KnowledgeSource> sources) { this.sources = sources; } public static String getName() { - return "FaCT++ reasoner"; + return "OWL API reasoner"; } public static Collection<ConfigOption<?>> createConfigOptions() { @@ -127,7 +139,7 @@ }; Set<OWLClass> classes = new TreeSet<OWLClass>(namedObjectComparator); Set<OWLObjectProperty> properties = new TreeSet<OWLObjectProperty>(namedObjectComparator); - Set<OWLIndividual> individuals = new TreeSet<OWLIndividual>(namedObjectComparator); + Set<OWLIndividual> owlIndividuals = new TreeSet<OWLIndividual>(namedObjectComparator); for(KnowledgeSource source : sources) { if(!(source instanceof OWLFile)) { @@ -138,7 +150,7 @@ OWLOntology ontology = manager.loadOntologyFromPhysicalURI(url.toURI()); classes.addAll(ontology.getReferencedClasses()); properties.addAll(ontology.getReferencedObjectProperties()); - individuals.addAll(ontology.getReferencedIndividuals()); + owlIndividuals.addAll(ontology.getReferencedIndividuals()); } catch (OWLOntologyCreationException e) { e.printStackTrace(); } catch (URISyntaxException e) { @@ -158,64 +170,225 @@ // instantiate Pellet reasoner reasoner = new org.mindswap.pellet.owlapi.Reasoner(manager); } + factory = manager.getOWLDataFactory(); - factory = manager.getOWLDataFactory(); + // read in primitives + atomicConcepts = new TreeSet<AtomicConcept>(conceptComparator); + for(OWLClass owlClass : classes) + atomicConcepts.add(new AtomicConcept(owlClass.getURI().toString())); + atomicRoles = new TreeSet<AtomicRole>(roleComparator); + for(OWLObjectProperty owlProperty : properties) + atomicRoles.add(new AtomicRole(owlProperty.getURI().toString())); + individuals = new TreeSet<Individual>(); + for(OWLIndividual owlIndividual : owlIndividuals) + individuals.add(new Individual(owlIndividual.getURI().toString())); + } /* (non-Javadoc) * @see org.dllearner.core.Reasoner#getAtomicConcepts() */ public Set<AtomicConcept> getAtomicConcepts() { - // reasoner. - - // TODO Auto-generated method stub - return null; + return atomicConcepts; } /* (non-Javadoc) * @see org.dllearner.core.Reasoner#getAtomicRoles() */ public Set<AtomicRole> getAtomicRoles() { - // TODO Auto-generated method stub - return null; + return atomicRoles; } /* (non-Javadoc) * @see org.dllearner.core.Reasoner#getIndividuals() */ public SortedSet<Individual> getIndividuals() { - // TODO Auto-generated method stub - return null; + return individuals; } /* (non-Javadoc) * @see org.dllearner.core.Reasoner#getReasonerType() */ public ReasonerType getReasonerType() { - // TODO Auto-generated method stub - return null; + if(reasonerType.equals("FaCT++")) + return ReasonerType.FACT; + else + return ReasonerType.PELLET; } /* (non-Javadoc) * @see org.dllearner.core.Reasoner#prepareSubsumptionHierarchy(java.util.Set) */ public void prepareSubsumptionHierarchy(Set<AtomicConcept> allowedConcepts) { - // TODO Auto-generated method stub + + // implementation almost identical to DIG reasoner + // except function calls + + allowedConceptsInSubsumptionHierarchy = new TreeSet<Concept>(conceptComparator); + allowedConceptsInSubsumptionHierarchy.addAll(allowedConcepts); + allowedConceptsInSubsumptionHierarchy.add(new Top()); + allowedConceptsInSubsumptionHierarchy.add(new Bottom()); + TreeMap<Concept, TreeSet<Concept>> subsumptionHierarchyUp = new TreeMap<Concept, TreeSet<Concept>>( + conceptComparator); + TreeMap<Concept, TreeSet<Concept>> subsumptionHierarchyDown = new TreeMap<Concept, TreeSet<Concept>>( + conceptComparator); + + // refinements of top + TreeSet<Concept> tmp = getMoreSpecialConcepts(new Top()); + tmp.retainAll(allowedConceptsInSubsumptionHierarchy); + subsumptionHierarchyDown.put(new Top(), tmp); + + // refinements of bottom + tmp = getMoreGeneralConcepts(new Bottom()); + tmp.retainAll(allowedConceptsInSubsumptionHierarchy); + subsumptionHierarchyUp.put(new Bottom(), tmp); + + // refinements of atomic concepts + for (AtomicConcept atom : atomicConcepts) { + tmp = getMoreSpecialConcepts(atom); + tmp.retainAll(allowedConceptsInSubsumptionHierarchy); + subsumptionHierarchyDown.put(atom, tmp); + + tmp = getMoreGeneralConcepts(atom); + tmp.retainAll(allowedConceptsInSubsumptionHierarchy); + subsumptionHierarchyUp.put(atom, tmp); + } + + // create subsumption hierarchy + subsumptionHierarchy = new SubsumptionHierarchy(allowedConcepts, + subsumptionHierarchyUp, subsumptionHierarchyDown); } @Override + public SubsumptionHierarchy getSubsumptionHierarchy() { + return subsumptionHierarchy; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Reasoner#prepareRoleHierarchy(java.util.Set) + */ + @Override + public void prepareRoleHierarchy(Set<AtomicRole> allowedRoles) { + // code copied from DIG reasoner + + TreeMap<AtomicRole, TreeSet<AtomicRole>> roleHierarchyUp = new TreeMap<AtomicRole, TreeSet<AtomicRole>>( + roleComparator); + TreeMap<AtomicRole, TreeSet<AtomicRole>> roleHierarchyDown = new TreeMap<AtomicRole, TreeSet<AtomicRole>>( + roleComparator); + + // refinement of atomic concepts + for (AtomicRole role : atomicRoles) { + roleHierarchyDown.put(role, getMoreSpecialRoles(role)); + roleHierarchyUp.put(role, getMoreGeneralRoles(role)); + } + + roleHierarchy = new RoleHierarchy(allowedRoles, roleHierarchyUp, + roleHierarchyDown); + } + + @Override + public RoleHierarchy getRoleHierarchy() { + return roleHierarchy; + } + + @Override public boolean subsumes(Concept superConcept, Concept subConcept) { try { - OWLDescription d1 = factory.getOWLClass(URI.create("a")); - OWLDescription d2 = factory.getOWLClass(URI.create("b")); - reasoner.isSubClassOf(d1, d2); + return reasoner.isSubClassOf(getOWLAPIDescription(subConcept), getOWLAPIDescription(superConcept)); } catch (OWLReasonerException e) { e.printStackTrace(); + throw new Error("Subsumption Error in OWL API."); } - return false; } + private TreeSet<Concept> getMoreGeneralConcepts(Concept concept) { + return null; + } + + private TreeSet<Concept> getMoreSpecialConcepts(Concept concept) { + return null; + } + + private TreeSet<AtomicRole> getMoreGeneralRoles(AtomicRole role) { + return null; + } + + private TreeSet<AtomicRole> getMoreSpecialRoles(AtomicRole role) { + return null; + } + + @Override + public boolean instanceCheck(Concept concept, Individual individual) { + OWLDescription d = getOWLAPIDescription(concept); + OWLIndividual i = factory.getOWLIndividual(URI.create(individual.getName())); + try { + return reasoner.hasType(i,d,false); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("Instance check error in OWL API."); + } + } + + @Override + public SortedSet<Individual> retrieval(Concept concept) { + OWLDescription d = getOWLAPIDescription(concept); + try { + reasoner.getIndividuals(d, false); + } catch (OWLReasonerException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + @Override + public Set<AtomicConcept> getConcepts(Individual individual) { + Set<Set<OWLClass>> result = null; + try { + result = reasoner.getTypes(factory.getOWLIndividual(URI.create(individual.getName())),false); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("GetConcepts() reasoning error in OWL API."); + } + // the OWL API returns a set of sets; each inner set consists of + // atomic classes + Set<AtomicConcept> concepts = new HashSet<AtomicConcept>(); + for(Set<OWLClass> classes : result) { + // take one element from the set and ignore the rest + // (TODO: we need to make sure we always ignore the same concepts) + OWLClass concept = classes.iterator().next(); + concepts.add(new AtomicConcept(concept.getURI().toString())); + } + return concepts; + } + + @Override + public Map<Individual, SortedSet<Individual>> getRoleMembers(AtomicRole atomicRole) { + return null; + } + + @Override + public boolean isSatisfiable() { + try { + return reasoner.isSatisfiable(factory.getOWLThing()); + } catch (OWLReasonerException e) { + e.printStackTrace(); + throw new Error("Satisfiability check error in OWL API."); + } + } + + private Set<Concept> owlClassesToAtomicConcepts(Set<OWLClass> owlClasses) { + Set<Concept> concepts = new HashSet<Concept>(); + for(OWLClass owlClass : owlClasses) + concepts.add(owlClassToAtomicConcept(owlClass)); + return concepts; + } + + private Concept owlClassToAtomicConcept(OWLClass owlClass) { + return new AtomicConcept(owlClass.getURI().toString()); + } + public OWLDescription getOWLAPIDescription(Concept concept) { if (concept instanceof AtomicConcept) { return factory.getOWLClass(URI.create(((AtomicConcept)concept).getName())); Modified: trunk/src/dl-learner/org/dllearner/reasoning/ReasonerType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/ReasonerType.java 2008-01-06 11:54:42 UTC (rev 343) +++ trunk/src/dl-learner/org/dllearner/reasoning/ReasonerType.java 2008-01-06 15:14:35 UTC (rev 344) @@ -4,5 +4,5 @@ package org.dllearner.reasoning; public enum ReasonerType { - KAON2, DIG, FAST_RETRIEVAL + KAON2, DIG, FAST_RETRIEVAL, FACT, PELLET } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 11:54:43
|
Revision: 343 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=343&view=rev Author: jenslehmann Date: 2008-01-06 03:54:42 -0800 (Sun, 06 Jan 2008) Log Message: ----------- wrote method to convert DL-Learner concepts to OWL API concepts Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2008-01-06 11:21:05 UTC (rev 342) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2008-01-06 11:54:42 UTC (rev 343) @@ -22,7 +22,6 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.io.StringReader; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 11:21:05 UTC (rev 342) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 11:54:42 UTC (rev 343) @@ -24,6 +24,7 @@ import java.net.URL; import java.util.Collection; import java.util.Comparator; +import java.util.HashSet; import java.util.LinkedList; import java.util.Set; import java.util.SortedSet; @@ -35,18 +36,26 @@ import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.InvalidConfigOptionValueException; import org.dllearner.core.config.StringConfigOption; +import org.dllearner.core.dl.All; import org.dllearner.core.dl.AtomicConcept; import org.dllearner.core.dl.AtomicRole; +import org.dllearner.core.dl.Bottom; import org.dllearner.core.dl.Concept; +import org.dllearner.core.dl.Conjunction; +import org.dllearner.core.dl.Disjunction; +import org.dllearner.core.dl.Exists; import org.dllearner.core.dl.Individual; -import org.dllearner.core.dl.RoleHierarchy; -import org.dllearner.core.dl.SubsumptionHierarchy; +import org.dllearner.core.dl.MultiConjunction; +import org.dllearner.core.dl.MultiDisjunction; +import org.dllearner.core.dl.Negation; +import org.dllearner.core.dl.Top; import org.dllearner.kb.OWLFile; -import org.dllearner.utilities.ConceptComparator; -import org.dllearner.utilities.RoleComparator; import org.semanticweb.owl.apibinding.OWLManager; import org.semanticweb.owl.inference.OWLReasoner; +import org.semanticweb.owl.inference.OWLReasonerException; import org.semanticweb.owl.model.OWLClass; +import org.semanticweb.owl.model.OWLDataFactory; +import org.semanticweb.owl.model.OWLDescription; import org.semanticweb.owl.model.OWLIndividual; import org.semanticweb.owl.model.OWLNamedObject; import org.semanticweb.owl.model.OWLObjectProperty; @@ -69,6 +78,8 @@ private Set<KnowledgeSource> sources; private OWLReasoner reasoner; + // the data factory is used to generate OWL API objects + private OWLDataFactory factory; // private ConceptComparator conceptComparator = new ConceptComparator(); // private RoleComparator roleComparator = new RoleComparator(); @@ -144,8 +155,11 @@ e.printStackTrace(); } } else { - // .. insert Pellet code here + // instantiate Pellet reasoner + reasoner = new org.mindswap.pellet.owlapi.Reasoner(manager); } + + factory = manager.getOWLDataFactory(); } /* (non-Javadoc) @@ -192,10 +206,65 @@ @Override public boolean subsumes(Concept superConcept, Concept subConcept) { - // reasoner.isSubClassOf(arg0, arg1); + try { + OWLDescription d1 = factory.getOWLClass(URI.create("a")); + OWLDescription d2 = factory.getOWLClass(URI.create("b")); + reasoner.isSubClassOf(d1, d2); + } catch (OWLReasonerException e) { + e.printStackTrace(); + } return false; } + public OWLDescription getOWLAPIDescription(Concept concept) { + if (concept instanceof AtomicConcept) { + return factory.getOWLClass(URI.create(((AtomicConcept)concept).getName())); + } else if (concept instanceof Bottom) { + return factory.getOWLNothing(); + } else if (concept instanceof Top) { + return factory.getOWLThing(); + } else if (concept instanceof Negation) { + return factory.getOWLObjectComplementOf( + getOWLAPIDescription(concept.getChild(0))); + } else if (concept instanceof Conjunction) { + OWLDescription d1 = getOWLAPIDescription(concept.getChild(0)); + OWLDescription d2 = getOWLAPIDescription(concept.getChild(1)); + Set<OWLDescription> d = new HashSet<OWLDescription>(); + d.add(d1); + d.add(d2); + return factory.getOWLObjectIntersectionOf(d); + } else if (concept instanceof Disjunction) { + OWLDescription d1 = getOWLAPIDescription(concept.getChild(0)); + OWLDescription d2 = getOWLAPIDescription(concept.getChild(1)); + Set<OWLDescription> d = new HashSet<OWLDescription>(); + d.add(d1); + d.add(d2); + return factory.getOWLObjectUnionOf(d); + } else if (concept instanceof All) { + OWLObjectProperty role = factory.getOWLObjectProperty( + URI.create(((All) concept).getRole().getName())); + OWLDescription d = getOWLAPIDescription(concept.getChild(0)); + return factory.getOWLObjectAllRestriction(role, d); + } else if(concept instanceof Exists) { + OWLObjectProperty role = factory.getOWLObjectProperty( + URI.create(((Exists) concept).getRole().getName())); + OWLDescription d = getOWLAPIDescription(concept.getChild(0)); + return factory.getOWLObjectSomeRestriction(role, d); + } else if(concept instanceof MultiConjunction) { + Set<OWLDescription> descriptions = new HashSet<OWLDescription>(); + for(Concept child : concept.getChildren()) + descriptions.add(getOWLAPIDescription(child)); + return factory.getOWLObjectIntersectionOf(descriptions); + } else if(concept instanceof MultiDisjunction) { + Set<OWLDescription> descriptions = new HashSet<OWLDescription>(); + for(Concept child : concept.getChildren()) + descriptions.add(getOWLAPIDescription(child)); + return factory.getOWLObjectUnionOf(descriptions); + } + + throw new IllegalArgumentException("Unsupported concept type."); + } + /** * Test * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 11:21:12
|
Revision: 342 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=342&view=rev Author: jenslehmann Date: 2008-01-06 03:21:05 -0800 (Sun, 06 Jan 2008) Log Message: ----------- Removed warnings. Changed Sebastians class comments to conform to the Javadoc standard. Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2008-01-06 11:21:05 UTC (rev 342) @@ -22,7 +22,6 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.io.StringReader; import java.net.MalformedURLException; import java.net.URI; import java.net.URL; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-01-06 11:21:05 UTC (rev 342) @@ -28,6 +28,12 @@ import java.net.URLEncoder; import java.util.HashMap; +/** + * SPARQL query cache to avoid possibly expensive multiple queries. + * + * @author Sebastian Hellmann + * + */ public class Cache implements Serializable { // Object can be the cache itself // or a cache object(one entry) @@ -40,7 +46,7 @@ long timestamp; long daysoffreshness = 15; long multiplier = 24 * 60 * 60 * 1000;// h m s ms - private HashMap<String, String> inmem_cache; + // private HashMap<String, String> inmem_cache; // constructor for the cache itself public Cache(String path) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2008-01-06 11:21:05 UTC (rev 342) @@ -27,7 +27,11 @@ import org.dllearner.utilities.StringTuple; -// is a node in the graph that is a class +/** + * Is a node in the graph that is a class. + * + * @author Sebastian Hellmann + */ public class ClassNode extends Node { Set<PropertyNode> properties = new HashSet<PropertyNode>(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Configuration.java 2008-01-06 11:21:05 UTC (rev 342) @@ -19,7 +19,11 @@ */ package org.dllearner.kb.sparql; -//stores all configuration settings +/** + * Stores all configuration settings. + * + * @author Sebastian Hellmann + */ public class Configuration { /* @@ -35,9 +39,6 @@ private int recursiondepth = 2; private boolean getAllBackground = true; - private Configuration() { - } - public Configuration(SpecificSparqlEndpoint specificSparqlEndpoint, SparqlQueryType sparqlQueryType, Manipulator manipulator, int recursiondepth, boolean getAllBackground) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2008-01-06 11:21:05 UTC (rev 342) @@ -23,7 +23,11 @@ import java.util.HashSet; import java.util.Vector; -// this class is used to extract the information recursively +/** + * This class is used to extract the information recursively. + * + * @author Sebastian Hellmann + */ public class ExtractionAlgorithm { private Configuration configuration; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2008-01-06 11:21:05 UTC (rev 342) @@ -27,7 +27,12 @@ import org.dllearner.utilities.StringTuple; -// a node in the graph that is an instance +/** + * A node in the graph that is an instance. + * + * @author Sebastian Hellmann + * + */ public class InstanceNode extends Node { Set<ClassNode> classes = new HashSet<ClassNode>(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2008-01-06 11:21:05 UTC (rev 342) @@ -27,7 +27,12 @@ import org.dllearner.utilities.StringTuple; -// an object of this class encapsulates everything +/** + * An object of this class encapsulates everything. + * + * @author Sebastian Hellmann + * + */ public class Manager { private Configuration configuration; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java 2008-01-06 11:21:05 UTC (rev 342) @@ -26,7 +26,12 @@ import org.dllearner.utilities.StringTuple; -// used to manipulate retrieved tupels, identify blanknodes, etc. +/** + * Used to manipulate retrieved tupels, identify blanknodes, etc. + * + * @author Sebastian Hellmann + * + */ public class Manipulator { public String subclass = "http://www.w3.org/2000/01/rdf-schema#subClassOf"; public String type = "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java 2008-01-06 11:21:05 UTC (rev 342) @@ -23,7 +23,12 @@ import java.util.Set; import java.util.Vector; -// abstract class +/** + * Abstract class. + * + * @author Sebastian Hellmann + * + */ public abstract class Node implements Comparable<Node> { URI uri; protected String type; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2008-01-06 11:21:05 UTC (rev 342) @@ -22,7 +22,12 @@ import java.net.URL; import java.util.HashMap; -// holds some predefined endpoints +/** + * Holds some predefined endpoints. + * + * @author Sebastian Hellmann + * + */ public class PredefinedEndpoint { public static SpecificSparqlEndpoint getEndpoint(int i) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java 2008-01-06 11:21:05 UTC (rev 342) @@ -22,6 +22,12 @@ import java.util.HashSet; import java.util.Set; +/** + * Predefined filters. + * + * @author Sebastian Hellmann + * + */ public class PredefinedFilter { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2008-01-06 11:21:05 UTC (rev 342) @@ -27,6 +27,12 @@ import org.dllearner.utilities.StringTuple; +/** + * Property node. + * + * @author Sebastian Hellmann + * + */ public class PropertyNode extends Node { // the a and b part of a property @@ -78,7 +84,10 @@ return this.expand(tsq, m); } - + public Node getA() { + return a; + } + public Node getB() { return b; } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-01-06 11:21:05 UTC (rev 342) @@ -19,7 +19,12 @@ */ package org.dllearner.kb.sparql; -// can assemble sparql queries +/** + * Can assemble sparql queries. + * + * @author Sebastian Hellmann + * + */ public class SparqlQueryMaker { String lineend="\n"; boolean print_flag=false; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2008-01-06 11:21:05 UTC (rev 342) @@ -21,7 +21,12 @@ import java.util.Set; -// is used to set the filter: configuration +/** + * Is used to set the filter: configuration. + * + * @author Sebastian Hellmann + * + */ public class SparqlQueryType { // TODO make sets out of them Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SpecificSparqlEndpoint.java 2008-01-06 11:21:05 UTC (rev 342) @@ -22,7 +22,12 @@ import java.net.URL; import java.util.HashMap; -// one sparql endpoint configuration +/** + * One sparql endpoint configuration. + * + * @author Sebastian Hellmann + * + */ public class SpecificSparqlEndpoint { String host; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Test.java 2008-01-06 11:21:05 UTC (rev 342) @@ -23,15 +23,20 @@ import java.io.FileWriter; import java.net.URI; -// test class +/** + * Test class. + * + * @author Sebastian Hellmann + * + */ public class Test { public static void main(String[] args) { System.out.println("Start"); - String test2 = "http://www.extraction.org/config#dbpediatest"; - String test = "http://www.extraction.org/config#localjoseki"; + // String test2 = "http://www.extraction.org/config#dbpediatest"; + // String test = "http://www.extraction.org/config#localjoseki"; try { - URI u = new URI(test); + // URI u = new URI(test); Manager m = new Manager(); // m.usePredefinedConfiguration(u); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2008-01-06 11:21:05 UTC (rev 342) @@ -34,7 +34,12 @@ import org.dllearner.utilities.StringTuple; -// can execute different queries +/** + * Can execute different queries. + * + * @author Sebastian Hellmann + * + */ public class TypedSparqlQuery implements TypedSparqlQueryInterface{ boolean print_flag=false; boolean debug_no_cache=false;// true means no cahce is used @@ -129,9 +134,9 @@ String two = "binding name=\"" + b + "\""; String endbinding= "binding"; String uri="uri"; - String uridel = "<uri>"; + //String uridel = "<uri>"; String bnode = "<bnode>"; - String uriend = "</uri>"; + //String uriend = "</uri>"; String predtmp = ""; String objtmp = ""; //System.out.println(getNextResult(xml)); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2008-01-06 11:21:05 UTC (rev 342) @@ -34,7 +34,12 @@ import org.dllearner.utilities.StringTuple; -// can execute different queries +/** + * Can execute different queries. + * + * @author Sebastian Hellmann + * + */ public class TypedSparqlQueryClasses implements TypedSparqlQueryInterface{ boolean print_flag=false; boolean debug_no_cache=false; @@ -113,9 +118,9 @@ String two = "binding name=\"" + b + "\""; String endbinding= "binding"; String uri="uri"; - String uridel = "<uri>"; + //String uridel = "<uri>"; String bnode = "<bnode>"; - String uriend = "</uri>"; + //String uriend = "</uri>"; String predtmp = ""; String objtmp = ""; //System.out.println(getNextResult(xml)); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java 2008-01-06 11:21:05 UTC (rev 342) @@ -5,6 +5,13 @@ import org.dllearner.utilities.StringTuple; +/** + * + * Type SPARQL query interface. + * + * @author Sebastian Hellmann + * + */ public interface TypedSparqlQueryInterface { public Set<StringTuple> query(URI u); Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 10:57:59 UTC (rev 341) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 11:21:05 UTC (rev 342) @@ -37,6 +37,7 @@ import org.dllearner.core.config.StringConfigOption; import org.dllearner.core.dl.AtomicConcept; import org.dllearner.core.dl.AtomicRole; +import org.dllearner.core.dl.Concept; import org.dllearner.core.dl.Individual; import org.dllearner.core.dl.RoleHierarchy; import org.dllearner.core.dl.SubsumptionHierarchy; @@ -69,10 +70,10 @@ private Set<KnowledgeSource> sources; private OWLReasoner reasoner; - private ConceptComparator conceptComparator = new ConceptComparator(); - private RoleComparator roleComparator = new RoleComparator(); - private SubsumptionHierarchy subsumptionHierarchy; - private RoleHierarchy roleHierarchy; + // private ConceptComparator conceptComparator = new ConceptComparator(); + // private RoleComparator roleComparator = new RoleComparator(); + // private SubsumptionHierarchy subsumptionHierarchy; + // private RoleHierarchy roleHierarchy; public OWLAPIReasoner(Set<KnowledgeSource> sources) { this.sources = sources; @@ -151,7 +152,7 @@ * @see org.dllearner.core.Reasoner#getAtomicConcepts() */ public Set<AtomicConcept> getAtomicConcepts() { - // reasoner + // reasoner. // TODO Auto-generated method stub return null; @@ -189,6 +190,12 @@ } + @Override + public boolean subsumes(Concept superConcept, Concept subConcept) { + // reasoner.isSubClassOf(arg0, arg1); + return false; + } + /** * Test * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 10:58:28
|
Revision: 341 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=341&view=rev Author: jenslehmann Date: 2008-01-06 02:57:59 -0800 (Sun, 06 Jan 2008) Log Message: ----------- started mapping to OWL API reasoner interface (not working yet) Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/parser/KBParser.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2008-01-06 10:56:17 UTC (rev 340) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2008-01-06 10:57:59 UTC (rev 341) @@ -196,7 +196,8 @@ } if (format.equals("KB")) { try{ - kb=KBParser.parseKBFile(new StringReader(ont)); + // kb=KBParser.parseKBFile(new StringReader(ont)); + kb=KBParser.parseKBFile(dumpFile); } catch(Exception e) {e.printStackTrace();} } }catch(IOException e) { Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2008-01-06 10:56:17 UTC (rev 340) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2008-01-06 10:57:59 UTC (rev 341) @@ -359,7 +359,8 @@ } if (format.equals("KB")) { try { - kb = KBParser.parseKBFile(new StringReader(ont)); + //kb = KBParser.parseKBFile(new StringReader(ont)); + kb=KBParser.parseKBFile(dumpFile); } catch (Exception e) { e.printStackTrace(); } Modified: trunk/src/dl-learner/org/dllearner/parser/KBParser.java =================================================================== --- trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-01-06 10:56:17 UTC (rev 340) +++ trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2008-01-06 10:57:59 UTC (rev 341) @@ -32,11 +32,6 @@ KBParser parser = new KBParser(new FileInputStream(file)); return parser.KB(); } - - public static KB parseKBFile(StringReader read) throws ParseException{ - KBParser parser = new KBParser(read); - return parser.KB(); - } final public KB KB() throws ParseException { ConceptAssertion conceptAssertion; Added: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2008-01-06 10:57:59 UTC (rev 341) @@ -0,0 +1,212 @@ +/** + * Copyright (C) 2008, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.reasoning; + +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Collection; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.config.ConfigEntry; +import org.dllearner.core.config.ConfigOption; +import org.dllearner.core.config.InvalidConfigOptionValueException; +import org.dllearner.core.config.StringConfigOption; +import org.dllearner.core.dl.AtomicConcept; +import org.dllearner.core.dl.AtomicRole; +import org.dllearner.core.dl.Individual; +import org.dllearner.core.dl.RoleHierarchy; +import org.dllearner.core.dl.SubsumptionHierarchy; +import org.dllearner.kb.OWLFile; +import org.dllearner.utilities.ConceptComparator; +import org.dllearner.utilities.RoleComparator; +import org.semanticweb.owl.apibinding.OWLManager; +import org.semanticweb.owl.inference.OWLReasoner; +import org.semanticweb.owl.model.OWLClass; +import org.semanticweb.owl.model.OWLIndividual; +import org.semanticweb.owl.model.OWLNamedObject; +import org.semanticweb.owl.model.OWLObjectProperty; +import org.semanticweb.owl.model.OWLOntology; +import org.semanticweb.owl.model.OWLOntologyCreationException; +import org.semanticweb.owl.model.OWLOntologyManager; + +/** + * Mapping to OWL API reasoner interface. The OWL API currently + * supports two reasoners: FaCT++ and Pellet. FaCT++ is connected + * using JNI and native libraries, while Pellet is a pure Java + * library. + * + * @author Jens Lehmann + * + */ +public class OWLAPIReasoner extends ReasonerComponent { + + private String reasonerType = "FaCT++"; + + private Set<KnowledgeSource> sources; + private OWLReasoner reasoner; + + private ConceptComparator conceptComparator = new ConceptComparator(); + private RoleComparator roleComparator = new RoleComparator(); + private SubsumptionHierarchy subsumptionHierarchy; + private RoleHierarchy roleHierarchy; + + public OWLAPIReasoner(Set<KnowledgeSource> sources) { + this.sources = sources; + } + + public static String getName() { + return "FaCT++ reasoner"; + } + + public static Collection<ConfigOption<?>> createConfigOptions() { + Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + StringConfigOption type = new StringConfigOption("reasonerType", "FaCT++ or Pellet", "FaCT++"); + type.setAllowedValues(new String[] {"FaCT++", "Pellet"}); + options.add(type); + return options; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Component#applyConfigEntry(org.dllearner.core.config.ConfigEntry) + */ + @Override + public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException { + String name = entry.getOptionName(); + if(name.equals("reasonerType")) + reasonerType = (String) entry.getValue(); + } + + @Override + public void init() { + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + + // it is a bit cumbersome to obtain all classes, because there + // are no reasoner queries to obtain them => hence we query them + // for each ontology and add them to a set; a comparator avoids + // duplicates by checking URIs + Comparator<OWLNamedObject> namedObjectComparator = new Comparator<OWLNamedObject>() { + public int compare(OWLNamedObject o1, OWLNamedObject o2) { + return o1.getURI().compareTo(o2.getURI()); + } + }; + Set<OWLClass> classes = new TreeSet<OWLClass>(namedObjectComparator); + Set<OWLObjectProperty> properties = new TreeSet<OWLObjectProperty>(namedObjectComparator); + Set<OWLIndividual> individuals = new TreeSet<OWLIndividual>(namedObjectComparator); + + for(KnowledgeSource source : sources) { + if(!(source instanceof OWLFile)) { + System.out.println("Currently, only OWL files are supported. Ignoring knowledge source " + source + "."); + } else { + URL url = ((OWLFile)source).getURL(); + try { + OWLOntology ontology = manager.loadOntologyFromPhysicalURI(url.toURI()); + classes.addAll(ontology.getReferencedClasses()); + properties.addAll(ontology.getReferencedObjectProperties()); + individuals.addAll(ontology.getReferencedIndividuals()); + } catch (OWLOntologyCreationException e) { + e.printStackTrace(); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + } + } + + // create actual reasoner + if(reasonerType.equals("FaCT++")) { + try { + reasoner = new uk.ac.manchester.cs.factplusplus.owlapi.Reasoner(manager); + } catch (Exception e) { + e.printStackTrace(); + } + } else { + // .. insert Pellet code here + } + } + + /* (non-Javadoc) + * @see org.dllearner.core.Reasoner#getAtomicConcepts() + */ + public Set<AtomicConcept> getAtomicConcepts() { + // reasoner + + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Reasoner#getAtomicRoles() + */ + public Set<AtomicRole> getAtomicRoles() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Reasoner#getIndividuals() + */ + public SortedSet<Individual> getIndividuals() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Reasoner#getReasonerType() + */ + public ReasonerType getReasonerType() { + // TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.dllearner.core.Reasoner#prepareSubsumptionHierarchy(java.util.Set) + */ + public void prepareSubsumptionHierarchy(Set<AtomicConcept> allowedConcepts) { + // TODO Auto-generated method stub + + } + + /** + * Test + * + * @param args + */ + public static void main(String[] args) { + // System.out.println(System.getProperty("java.library.path")); + + String uri = "http://www.co-ode.org/ontologies/pizza/2007/02/12/pizza.owl"; + + OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); + try { + manager.loadOntologyFromPhysicalURI(URI.create(uri)); + new org.mindswap.pellet.owlapi.Reasoner(manager); + System.out.println("Reasoner loaded succesfully."); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 10:56:42
|
Revision: 340 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=340&view=rev Author: jenslehmann Date: 2008-01-06 02:56:17 -0800 (Sun, 06 Jan 2008) Log Message: ----------- added FaCT++ native libraries (Windows,Linux,Mac) and OWL API binding for direct reasoner access Added Paths: ----------- trunk/lib/fact/ trunk/lib/fact/FaCT++OWLAPI-v1.1.10+.jar trunk/lib/fact/FaCTPlusPlusJNI.dll trunk/lib/fact/libFaCTPlusPlusJNI.jnilib trunk/lib/fact/libFaCTPlusPlusJNI.so Added: trunk/lib/fact/FaCT++OWLAPI-v1.1.10+.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/fact/FaCT++OWLAPI-v1.1.10+.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/fact/FaCTPlusPlusJNI.dll =================================================================== (Binary files differ) Property changes on: trunk/lib/fact/FaCTPlusPlusJNI.dll ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/fact/libFaCTPlusPlusJNI.jnilib =================================================================== (Binary files differ) Property changes on: trunk/lib/fact/libFaCTPlusPlusJNI.jnilib ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/fact/libFaCTPlusPlusJNI.so =================================================================== (Binary files differ) Property changes on: trunk/lib/fact/libFaCTPlusPlusJNI.so ___________________________________________________________________ Name: svn:executable + * Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-06 10:55:34
|
Revision: 339 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=339&view=rev Author: jenslehmann Date: 2008-01-06 02:54:45 -0800 (Sun, 06 Jan 2008) Log Message: ----------- added Pellet libraries for direct reasoner access Added Paths: ----------- trunk/lib/pellet/ trunk/lib/pellet/aterm-java-1.6.jar trunk/lib/pellet/pellet.jar trunk/lib/pellet/relaxngDatatype.jar trunk/lib/pellet/xsdlib.jar Added: trunk/lib/pellet/aterm-java-1.6.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/pellet/aterm-java-1.6.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/pellet/pellet.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/pellet/pellet.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/pellet/relaxngDatatype.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/pellet/relaxngDatatype.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/lib/pellet/xsdlib.jar =================================================================== (Binary files differ) Property changes on: trunk/lib/pellet/xsdlib.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ton...@us...> - 2008-01-03 15:33:45
|
Revision: 338 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=338&view=rev Author: tonytacker Date: 2008-01-03 07:33:41 -0800 (Thu, 03 Jan 2008) Log Message: ----------- version 1 Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/gui/ComponentRetrievalTest.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/gui/Config.java trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java trunk/src/dl-learner/org/dllearner/gui/StartGUI.java trunk/src/dl-learner/org/dllearner/gui/Startgui$1.class trunk/src/dl-learner/org/dllearner/gui/Startgui.class Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/gui/StartGUI_v4.java Modified: trunk/src/dl-learner/org/dllearner/gui/ComponentRetrievalTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ComponentRetrievalTest.java 2008-01-02 13:52:44 UTC (rev 337) +++ trunk/src/dl-learner/org/dllearner/gui/ComponentRetrievalTest.java 2008-01-03 15:33:41 UTC (rev 338) @@ -37,6 +37,7 @@ ComponentManager cm = ComponentManager.getInstance(); List<Class<? extends KnowledgeSource>> sources = cm.getKnowledgeSources(); cm.knowledgeSource(sources.get(0)); + System.out.println(sources.get(1).toString()); } } Added: trunk/src/dl-learner/org/dllearner/gui/Config.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/Config.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/Config.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,123 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import java.io.File; +import java.util.List; + +import org.dllearner.core.ComponentManager; +import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.ReasonerComponent; +import org.dllearner.core.ReasoningService; +import org.dllearner.core.dl.Individual; + +/** + * config + * + * this class save all together used variables + * + * @author Tilo Hielscher + * + */ + +public class Config { + protected static ComponentManager cm = ComponentManager.getInstance(); + protected static KnowledgeSource source; + protected static File selectedFile; + protected static ReasonerComponent reasoner; + protected static ReasoningService rs; + protected static List<Individual> individuals; + protected static String[] kbBoxItems = {"Pleae select a type", "KBFile", "OWLFile", "SparqleEndpoint"}; + + /** + * status should show witch variables are set + * status[0] ... cm + * status[1] ... KnowledgeSource + * status[2] ... File or URL + * status[3] ... + */ + protected static boolean[] status = new boolean[8]; + + protected boolean getStatus(int position) { + if (status[position]) + return true; + else + return false; + } + + protected ComponentManager getComponentManager() { + return cm; + } + + protected void setComponentManager (ComponentManager input) { + cm = input; + } + + protected File getFile () { + return selectedFile; + } + + protected void setFile (File input) { + status[2] = true; + selectedFile = input; + } + + protected ReasonerComponent getReasoner () { + return reasoner; + } + + protected void setReasoner (ReasonerComponent input) { + status[3] = true; + reasoner = input; + } + + + protected ReasoningService getReasoningService () { + return rs; + } + + protected void setReasoningService (ReasoningService input) { + status[4] = true; + rs = input; + } + + protected List<Individual> getListIndividuals () { + return individuals; + } + + protected void setListIndividuals (List<Individual> input) { + individuals = input; + } + + protected String[] getKBBoxItems() { + return kbBoxItems; + } + + protected KnowledgeSource getKnowledgeSource() { + status[1] = true; + return source; + } + + protected void setKnowledgeSource(KnowledgeSource input) { + source = input; + } + +} Added: trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/KnowledgeSourcePanel.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,122 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import java.io.File; +//import java.util.List; + +import javax.swing.*; + +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import org.dllearner.kb.OWLFile; +import org.dllearner.kb.KBFile; + + + +/** + * KnowledgeSourcePanel + * + * @author Tilo Hielscher + * + */ + +public class KnowledgeSourcePanel extends JPanel implements ActionListener { + + private static final long serialVersionUID = -7678275020058043937L; + + private JFileChooser fc; + private JButton openButton; + private JTextField fileDisplay; + private String[] kbBoxItems = StartGUI.config.getKBBoxItems(); + private JComboBox cb = new JComboBox(kbBoxItems); + private JPanel openPanel = new JPanel(); + + KnowledgeSourcePanel() { + super(new BorderLayout()); + + fc = new JFileChooser(new File("examples/")); + openButton = new JButton("Open File"); + openButton.addActionListener(this); + fileDisplay = new JTextField(35); + fileDisplay.setEditable(false); + + // test output + //List<Class<? extends KnowledgeSource>> sources = config.getComponentManager().getKnowledgeSources(); + //for (int i=0; i<sources.size(); i++) cb.addItem(sources.get(i)); + cb.addActionListener(this); + + JPanel choosePanel = new JPanel(); + choosePanel.add(cb); + + add(choosePanel, BorderLayout.PAGE_START); + add(openPanel, BorderLayout.CENTER); + } + + public void actionPerformed(ActionEvent e) { + // open File + if (e.getSource() == openButton) { + int returnVal = fc.showOpenDialog(KnowledgeSourcePanel.this); + if (returnVal == JFileChooser.APPROVE_OPTION) { + StartGUI.config.setFile(fc.getSelectedFile()); //save variable + fileDisplay.setText(StartGUI.config.getFile().toString()); + StartGUI.config.getComponentManager().applyConfigEntry(StartGUI.config.getKnowledgeSource(), "url", StartGUI.config.getFile().toURI().toString()); + StartGUI.config.getKnowledgeSource().init(); + } + } + // choose none + if (cb.getSelectedItem().toString() == kbBoxItems[0]) { + System.out.println("Item: " + cb.getSelectedItem()); + makeCenterClean(); + } + // choose KB class + if (cb.getSelectedItem().toString() == kbBoxItems[1]) { + System.out.println("Item: " + cb.getSelectedItem()); + makeCenterClean(); + openPanel.add(fileDisplay); + openPanel.add(openButton); + openPanel.repaint(); + StartGUI.config.setKnowledgeSource(StartGUI.config.getComponentManager().knowledgeSource(KBFile.class)); + } + // choose OWL class + if (cb.getSelectedItem().toString() == kbBoxItems[2]) { + makeCenterClean(); + openPanel.add(fileDisplay); + openPanel.add(openButton); + openPanel.repaint(); + StartGUI.config.setKnowledgeSource(StartGUI.config.getComponentManager().knowledgeSource(OWLFile.class)); + } + // choose SPARCLE class + if (cb.getSelectedItem().toString() == kbBoxItems[3]) { + System.out.println("Item: " + cb.getSelectedItem()); + makeCenterClean(); + } + } + + private void makeCenterClean() { + openPanel.remove(fileDisplay); + openPanel.remove(openButton); + openPanel.repaint(); + StartGUI.renew(); + } +} Added: trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/LearningAlgorithmPanel.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,39 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import javax.swing.*; + +/** + * LearningAlgorithmPanel + * + * @author Tilo Hielscher + * + */ + +public class LearningAlgorithmPanel extends JPanel { + + private static final long serialVersionUID = 8721490771860452959L; + + LearningAlgorithmPanel() { + + } +} Added: trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/LearningProblemPanel.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,39 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import javax.swing.*; + +/** + * LearningProblemPanel + * + * @author Tilo Hielscher + * + */ + +public class LearningProblemPanel extends JPanel { + + private static final long serialVersionUID = -3819627680918930203L; + + LearningProblemPanel() { + + } +} Added: trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/OutputPanel.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,71 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import java.awt.BorderLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.*; + +/** + * OutputPanel + * + * @author Tilo Hielscher + * + */ + +public class OutputPanel extends JPanel implements ActionListener { + + private static final long serialVersionUID = 1643304576470046636L; + + private JButton showButton; + private JTextArea infoArea; + + OutputPanel() { + super(new BorderLayout()); + + showButton = new JButton("Show Variables"); + showButton.addActionListener(this); + infoArea = new JTextArea(20,40); + + JPanel showPanel = new JPanel(); + showPanel.add(showButton); + JPanel infoPanel = new JPanel(); + infoPanel.add(infoArea); + + add(showPanel, BorderLayout.PAGE_START); + add(infoPanel, BorderLayout.CENTER); + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == showButton) { + if (StartGUI.config.getStatus(1)) { // file is selected and exist? + infoArea.append("SourceClass: " + StartGUI.config.getKnowledgeSource().toString() + "\n"); + infoArea.append("FILE: " + StartGUI.config.getFile().toString() + "\n"); + } + if (StartGUI.config.getStatus(2)) { + + } + + } + } +} Added: trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/ReasonerPanel.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,99 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.*; + +import org.dllearner.reasoning.DIGReasoner; + +//import org.dllearner.core.ReasonerComponent; +//import org.dllearner.reasoning.DIGReasoner; + +//import org.dllearner.core.ComponentManager; +//import org.dllearner.core.ReasoningService; + +/** + * ReasonerPanel + * + * @author Tilo Hielscher + * + */ + +public class ReasonerPanel extends JPanel implements ActionListener { + + private static final long serialVersionUID = -7678275020058043937L; + + private JPanel digPanel = new JPanel(); + private JPanel centerPanel = new JPanel(); + private JButton digButton; + private JList digList = new JList(); + + ReasonerPanel() { + super(new BorderLayout()); + + digButton = new JButton("Use DIG by default"); + digButton.addActionListener(this); + + // create a scrollable list of examples + digList.setLayoutOrientation(JList.VERTICAL); + digList.setVisibleRowCount(-1); + JScrollPane listScroller = new JScrollPane(digList); + listScroller.setPreferredSize(new Dimension(250, 80)); + centerPanel.add(listScroller); + + digPanel.add(digButton); + add(digPanel, BorderLayout.PAGE_START); + + centerPanel.add(digList); + add(centerPanel, BorderLayout.CENTER); + + } + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == digButton) { // DIG + StartGUI.config.setReasoner(StartGUI.config.getComponentManager().reasoner(DIGReasoner.class, StartGUI.config.getKnowledgeSource())); + //StartGUI.config.getReasoner().init(); //error + System.out.println("test"); + + //config.setReasoningService(config.getComponentManager().reasoningService(config.getReasoner())); + + // set list + //Set<Individual> individualsSet = config.getReasoningService().getIndividuals(); + //config.setListIndividuals(new LinkedList<Individual>(individualsSet)); + + // graphic + //DefaultListModel listModel = new DefaultListModel(); + //for(Individual ind : config.getListIndividuals()) + //listModel.addElement(ind); + + // graphic + //Set<String> exampleSet = new HashSet<String>(); + //int[] selectedIndices = digList.getSelectedIndices(); + //for(int i : selectedIndices) + //exampleSet.add(config.getListIndividuals().get(i).toString()); + } + } +} Added: trunk/src/dl-learner/org/dllearner/gui/StartGUI.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/StartGUI.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/gui/StartGUI.java 2008-01-03 15:33:41 UTC (rev 338) @@ -0,0 +1,71 @@ +package org.dllearner.gui; + +/** + * Copyright (C) 2007, Jens Lehmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import javax.swing.*; + +/** + * StartGUI + * + * @author Tilo Hielscher + * + */ + +public class StartGUI extends JFrame { + + private static final long serialVersionUID = -739265982906533775L; + + public static Config config = new Config(); + + private static final JTabbedPane tabPane = new JTabbedPane(); + private JPanel tab1 = new JPanel(); + private JPanel tab2 = new JPanel(); + private JPanel tab3 = new JPanel(); + private JPanel tab4 = new JPanel(); + private JPanel tab5 = new JPanel(); + + public StartGUI() { + this.setTitle("DL-Learner GUI"); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLocationByPlatform(true); + this.setSize(640, 480); + tab1.add(new KnowledgeSourcePanel()); + tab2.add(new ReasonerPanel()); + tab3.add(new LearningProblemPanel()); + tab4.add(new LearningAlgorithmPanel()); + tab5.add(new OutputPanel()); + tabPane.addTab("Knowledge Source", tab1); + tabPane.addTab("Reasoner", tab2); + tabPane.addTab("Learning Problem", tab3); + tabPane.addTab("Learning Algortihm", tab4); + tabPane.addTab("Output", tab5); + this.add(tabPane); + this.setVisible(true); + } + + public static void main(String[] args) { + new StartGUI(); + } + + protected static void renew() { + tabPane.repaint(); + } +} Deleted: trunk/src/dl-learner/org/dllearner/gui/StartGUI_v4.java =================================================================== --- trunk/src/dl-learner/org/dllearner/gui/StartGUI_v4.java 2008-01-02 13:52:44 UTC (rev 337) +++ trunk/src/dl-learner/org/dllearner/gui/StartGUI_v4.java 2008-01-03 15:33:41 UTC (rev 338) @@ -1,214 +0,0 @@ -package org.dllearner.gui; - -//File : gui/containers/dialogs/filechooser/CountWords.java -//Purpose: Counts words in file. -// Illustrates menus, JFileChooser, Scanner.. -//Author : Fred Swartz - 2006-10-10 - Placed in public domain. - -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; - -//import org.dllearner.algorithms.RandomGuesser; -//import org.dllearner.core.Component; -import org.dllearner.core.ComponentManager; -import org.dllearner.core.KnowledgeSource; -//import org.dllearner.core.LearningAlgorithm; -//import org.dllearner.core.LearningProblem; -//import org.dllearner.core.ReasonerComponent; -//import org.dllearner.core.ReasoningService; -import org.dllearner.kb.OWLFile; -//import org.dllearner.learningproblems.PosNegDefinitionLP; -//import org.dllearner.reasoning.DIGReasoner; - -import java.io.*; -import java.util.*; - -////////////////////////////////////////////////////////CountWords -public class StartGUI_v4 extends JFrame { - - - /** - * - */ - private static final long serialVersionUID = 9151367563590748364L; - -//====================================================== fields - JTextField _fileNameTF = new JTextField(15); - JTextField _wordCountTF = new JTextField(4); - JFileChooser _fileChooser = new JFileChooser(); - JTextArea _textField = new JTextArea(); - ComponentManager cm = ComponentManager.getInstance(); // create singleton instance - - //================================================= constructor - StartGUI_v4() { - //... Create / set component characteristics. - _fileNameTF.setEditable(false); - _wordCountTF.setEditable(false); - - //... Add listeners <-- extra classes - - //... Create content pane, layout components - JPanel content = new JPanel(); - content.setLayout(new FlowLayout()); - content.add(new JLabel("File:")); // name of opend file - content.add(_fileNameTF); - content.add(new JLabel("Word Count:")); // test - content.add(_wordCountTF); // test - content.add(_textField); // test_output - - //... Create menu elements (menubar, menu, menu item) - JMenuBar menubar = new JMenuBar(); - JMenu fileMenu = new JMenu("File"); - JMenuItem openItem = new JMenuItem("Open"); - openItem.addActionListener(new OpenAction()); - JMenuItem saveItem = new JMenuItem("Save"); - saveItem.addActionListener(new SaveAction()); - JMenuItem exitItem = new JMenuItem("Exit"); - exitItem.addActionListener(new ExitAction()); - - - //... Assemble the menu - menubar.add(fileMenu); - fileMenu.add(openItem); - //fileMenu.add(saveItem); - fileMenu.add(exitItem); - - //... _textField (TextArea) into a JScrollPane - JScrollPane scrollPane = new JScrollPane(_textField); - scrollPane.setPreferredSize(new Dimension(320, 240)); - - //... Set window characteristics - this.setJMenuBar(menubar); - this.setContentPane(content); - this.setTitle("DL-Learner"); - this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - this.add(scrollPane); - this.pack(); // Layout components. - this.setLocationRelativeTo(null); // Center window. - - // RUN - - - //System.out.println("components"); - //System.out.println(cm.getComponents()); // show components - //System.out.println("knowledgeSources"); - //System.out.println(cm.getKnowledgeSources()); // possible sources - - - -/* - // create DIG reasoning service with standard settings - ReasonerComponent reasoner = cm.reasoner(DIGReasoner.class, source); - // ReasoningService rs = cm.reasoningService(DIGReasonerNew.class, source); - reasoner.init(); - ReasoningService rs = cm.reasoningService(reasoner); - - // create a learning problem and set positive and negative examples - LearningProblem lp = cm.learningProblem(PosNegDefinitionLP.class, rs); - Set<String> positiveExamples = new TreeSet<String>(); - positiveExamples.add("http://example.com/father#stefan"); - positiveExamples.add("http://example.com/father#markus"); - positiveExamples.add("http://example.com/father#martin"); - Set<String> negativeExamples = new TreeSet<String>(); - negativeExamples.add("http://example.com/father#heinz"); - negativeExamples.add("http://example.com/father#anna"); - negativeExamples.add("http://example.com/father#michelle"); - cm.applyConfigEntry(lp, "positiveExamples", positiveExamples); - cm.applyConfigEntry(lp, "negativeExamples", negativeExamples); - lp.init(); - - // create the learning algorithm - LearningAlgorithm la = cm.learningAlgorithm(RandomGuesser.class, lp, rs); - cm.applyConfigEntry(la, "numberOfTrees", 100); - cm.applyConfigEntry(la, "maxDepth", 5); - la.init(); - - // start the algorithm and print the best concept found - //la.start(); - //System.out.println(la.getBestSolution()); -*/ - - } - - // a test method - //============================================= countWordsInFile - private int countWordsInFile(File f) { - - int numberOfWords = 0; // Count of words. - - try { - Scanner in = new Scanner(f); - - while (in.hasNext()) { - String word = in.next(); // Read a "token". - numberOfWords++; - } - in.close(); // Close Scanner's file. - - } catch (FileNotFoundException fnfex) { - // ... We just got the file from the JFileChooser, - // so it's hard to believe there's problem, but... - JOptionPane.showMessageDialog(StartGUI_v4.this, - fnfex.getMessage()); - } - return numberOfWords; - } - - - ///////////////////////////////////////////////////// OpenAction - class OpenAction implements ActionListener { - public void actionPerformed(ActionEvent ae) { - //... Open a file dialog. - int retval = _fileChooser.showOpenDialog(StartGUI_v4.this); - if (retval == JFileChooser.APPROVE_OPTION) { - //... The user selected a file, get it, use it. - File file = _fileChooser.getSelectedFile(); - - //... Update user interface. - _fileNameTF.setText(file.getName()); - _wordCountTF.setText("" + countWordsInFile(file)); - //show file in _textField - try { - _textField.read(new FileReader(file), ""); - } catch (Exception e) { - e.printStackTrace(); - } - // create knowledge source - KnowledgeSource source = cm.knowledgeSource(OWLFile.class); - //String example = "examples/father.owl"; - cm.applyConfigEntry(source, "url", file.toURI().toString()); - source.init(); - } - } - } - - ///////////////////////////////////////////////////// OpenAction - class SaveAction implements ActionListener { - public void actionPerformed(ActionEvent ae) { - //... Open a file dialog. - int retval = _fileChooser.showOpenDialog(StartGUI_v4.this); - if (retval == JFileChooser.APPROVE_OPTION) { - //... The user selected a file, get it, use it. - File file = _fileChooser.getSelectedFile(); - - //... Update user interface. - _fileNameTF.setText(file.getName()); - _wordCountTF.setText("" + countWordsInFile(file)); - } - } - } - - ///////////////////////////////////////////////////// ExitAction - class ExitAction implements ActionListener { - public void actionPerformed(ActionEvent ae) { - System.exit(0); - } - } - - //========================================================= main - public static void main(String[] args) { - JFrame window = new StartGUI_v4(); - window.setVisible(true); - } -} \ No newline at end of file Added: trunk/src/dl-learner/org/dllearner/gui/Startgui$1.class =================================================================== (Binary files differ) Property changes on: trunk/src/dl-learner/org/dllearner/gui/Startgui$1.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/dl-learner/org/dllearner/gui/Startgui.class =================================================================== (Binary files differ) Property changes on: trunk/src/dl-learner/org/dllearner/gui/Startgui.class ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-02 13:52:48
|
Revision: 337 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=337&view=rev Author: jenslehmann Date: 2008-01-02 05:52:44 -0800 (Wed, 02 Jan 2008) Log Message: ----------- fixed non-working option improveSubsumptionHierarchy in refinement based learning algorithm Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2008-01-02 12:59:17 UTC (rev 336) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2008-01-02 13:52:44 UTC (rev 337) @@ -59,6 +59,7 @@ private boolean useOverlyGeneralList = true; private boolean useShortConceptConstruction = true; private double horizontalExpansionFactor = 0.6; + private boolean improveSubsumptionHierarchy = true; private boolean useAllConstructor = true; private boolean useExistsConstructor = true; private boolean useNegation = true; @@ -236,6 +237,8 @@ useShortConceptConstruction = (Boolean) entry.getValue(); } else if(name.equals("horzontalExpansionFactor")) { horizontalExpansionFactor = (Double) entry.getValue(); + } else if(name.equals("improveSubsumptionHierarchy")) { + improveSubsumptionHierarchy = (Boolean) entry.getValue(); } else if(name.equals("useAllConstructor")) { useAllConstructor = (Boolean) entry.getValue(); } else if(name.equals("useExistsConstructor")) { @@ -297,7 +300,8 @@ // prepare subsumption and role hierarchies, because they are needed // during the run of the algorithm rs.prepareSubsumptionHierarchy(usedConcepts); - rs.getSubsumptionHierarchy().improveSubsumptionHierarchy(); + if(improveSubsumptionHierarchy) + rs.getSubsumptionHierarchy().improveSubsumptionHierarchy(); rs.prepareRoleHierarchy(usedRoles); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-01-02 12:59:34
|
Revision: 336 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=336&view=rev Author: jenslehmann Date: 2008-01-02 04:59:17 -0800 (Wed, 02 Jan 2008) Log Message: ----------- fixed a couple of errors and warnings Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-14 20:16:47 UTC (rev 335) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2008-01-02 12:59:17 UTC (rev 336) @@ -30,7 +30,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; -import java.util.Random; import java.util.Set; import org.dllearner.core.KnowledgeSource; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2007-12-14 20:16:47 UTC (rev 335) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2008-01-02 12:59:17 UTC (rev 336) @@ -23,8 +23,6 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; import java.util.Vector; import org.dllearner.utilities.StringTuple; @@ -103,11 +101,6 @@ } @Override - public int compareTo(Object n){ - return super.compareTo((Node)n); - // - } - @Override public int compareTo(Node n){ return super.compareTo(n); // Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2007-12-14 20:16:47 UTC (rev 335) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2008-01-02 12:59:17 UTC (rev 336) @@ -21,9 +21,6 @@ import java.net.URI; import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.TreeSet; import java.util.Vector; // this class is used to extract the information recursively Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-14 20:16:47 UTC (rev 335) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2008-01-02 12:59:17 UTC (rev 336) @@ -23,8 +23,6 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; import java.util.Vector; import org.dllearner.utilities.StringTuple; @@ -107,11 +105,6 @@ } @Override - public int compareTo(Object n){ - return 0; - // - } - @Override public int compareTo(Node n){ return super.compareTo(n); // Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java 2007-12-14 20:16:47 UTC (rev 335) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java 2008-01-02 12:59:17 UTC (rev 336) @@ -24,7 +24,7 @@ import java.util.Vector; // abstract class -public abstract class Node implements Comparable{ +public abstract class Node implements Comparable<Node> { URI uri; protected String type; protected boolean expanded = false; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2007-12-14 20:16:47 UTC (rev 335) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2008-01-02 12:59:17 UTC (rev 336) @@ -27,7 +27,7 @@ import org.dllearner.utilities.StringTuple; -public class PropertyNode extends Node implements Comparable{ +public class PropertyNode extends Node { // the a and b part of a property private Node a; @@ -102,15 +102,10 @@ if(this.uri.equals(n.uri))return true; else return false; } + @Override - public int compareTo(Object n){ - return 0; - // - } - @Override public int compareTo(Node n){ return super.compareTo(n); - // } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2007-12-14 20:16:54
|
Revision: 335 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=335&view=rev Author: kurzum Date: 2007-12-14 12:16:47 -0800 (Fri, 14 Dec 2007) Log Message: ----------- a lot of changes Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-14 20:16:47 UTC (rev 335) @@ -80,7 +80,7 @@ private boolean dumpToFile = true; private boolean useLits = false; private boolean getAllSuperClasses = true; - private int breakSuperClassRetrievalAfter = 500; + private int breakSuperClassRetrievalAfter = 200; private boolean learnDomain = false; private boolean learnRange = false; @@ -281,15 +281,16 @@ m.useConfiguration(sqt, sse, man, recursionDepth, getAllSuperClasses); try { String ont = ""; + System.out.println(learnDomain); // used to learn a domain of a role if (learnDomain || learnRange) { Set<String> pos=new HashSet<String>(); - //Set<String> neg=new HashSet<String>(); + Set<String> neg=new HashSet<String>(); if(learnDomain){ pos = m.getDomainInstancesForRole(role); - //neg = m.getRangeInstancesForRole(role); + neg = m.getRangeInstancesForRole(role); }else if(learnRange){ - //neg = m.getDomainInstancesForRole(role); + neg = m.getDomainInstancesForRole(role); pos = m.getRangeInstancesForRole(role); } //choose 30 @@ -303,24 +304,24 @@ pos=tmp; System.out.println("Instances used: "+pos.size()); - /*tmp=new HashSet<String>(); + tmp=new HashSet<String>(); for(String one:neg){ tmp.add(one); - if(tmp.size()>=5)break; + if(tmp.size()>=numberOfInstancesUsedForRoleLearning)break; } - neg=tmp;*/ + neg=tmp; instances=new HashSet<String>(); instances.addAll(pos); - //instances.addAll(neg); + instances.addAll(neg); for(String one:pos){ System.out.println("+\""+one+"\""); } - /*for(String one:neg){ + for(String one:neg){ System.out.println("-\""+one+"\""); - }*/ + } /*Random r= new Random(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2007-12-14 20:16:47 UTC (rev 335) @@ -32,6 +32,7 @@ // Object can be the cache itself // or a cache object(one entry) // it now uses a hashmap and can contain different queries at once + private HashMap<String, String> hm; final static long serialVersionUID = 104; transient String basedir = ""; @@ -39,7 +40,7 @@ long timestamp; long daysoffreshness = 15; long multiplier = 24 * 60 * 60 * 1000;// h m s ms - private HashMap<String, String> hm; + private HashMap<String, String> inmem_cache; // constructor for the cache itself public Cache(String path) { @@ -154,4 +155,5 @@ return content; } + } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2007-12-14 20:16:47 UTC (rev 335) @@ -40,7 +40,7 @@ //expands all directly connected nodes @Override - public Vector<Node> expand(TypedSparqlQuery tsq, Manipulator m) { + public Vector<Node> expand(TypedSparqlQueryInterface tsq, Manipulator m) { Set<StringTuple> s = tsq.query(this.uri); // see manipulator s = m.check(s, this); @@ -83,7 +83,7 @@ // gets the types for properties recursively @Override - public Vector<Node> expandProperties(TypedSparqlQuery tsq, Manipulator m) { + public Vector<Node> expandProperties(TypedSparqlQueryInterface tsq, Manipulator m) { // TODO return type doesn't make sense return new Vector<Node>(); } @@ -101,5 +101,16 @@ return s; } + + @Override + public int compareTo(Object n){ + return super.compareTo((Node)n); + // + } + @Override + public int compareTo(Node n){ + return super.compareTo(n); + // + } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ExtractionAlgorithm.java 2007-12-14 20:16:47 UTC (rev 335) @@ -20,6 +20,10 @@ package org.dllearner.kb.sparql; import java.net.URI; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.TreeSet; import java.util.Vector; // this class is used to extract the information recursively @@ -29,6 +33,8 @@ private Manipulator manipulator; private int recursionDepth = 2; private boolean getAllBackground = true; + private boolean closeAfterRecursion = true; + private boolean print_flag=false; public ExtractionAlgorithm(Configuration Configuration) { this.configuration = Configuration; @@ -42,7 +48,7 @@ return new InstanceNode(u); } - public Vector<Node> expandAll(URI[] u, TypedSparqlQuery tsp) { + public Vector<Node> expandAll(URI[] u, TypedSparqlQueryInterface tsp) { Vector<Node> v = new Vector<Node>(); for (URI one : u) { v.add(expandNode(one, tsp)); @@ -55,11 +61,12 @@ cave: the recursion is not a recursion anymore, it was transformed to an iteration */ - public Node expandNode(URI u, TypedSparqlQuery tsp) { + public Node expandNode(URI u, TypedSparqlQueryInterface tsp) { + long time=System.currentTimeMillis(); Node n = getFirstNode(u); Vector<Node> v = new Vector<Node>(); v.add(n); - System.out.println("StartVector: " + v); + p("StartVector: " + v); // n.expand(tsp, this.Manipulator); // Vector<Node> second= for (int x = 1; x <= recursionDepth; x++) { @@ -67,7 +74,7 @@ Vector<Node> tmp = new Vector<Node>(); while (v.size() > 0) { Node tmpNode = v.remove(0); - System.out.println("Expanding " + tmpNode); + p("Expanding " + tmpNode); // System.out.println(this.Manipulator); // these are the new not expanded nodes @@ -77,29 +84,74 @@ tmp.addAll(tmpVec); } v = tmp; - System.out - .println("Recursion counter: " + x + " with " + v.size() + " Nodes remaining"); + System.out.println("Recursion counter: " + x + + " with " + v.size() + " Nodes remaining, needed: " + +(System.currentTimeMillis()-time)); + time=System.currentTimeMillis(); } + HashSet<String> hadAlready=new HashSet<String>(); // gets All Class Nodes and expands them further if (this.getAllBackground) { + //Set<Node> classes = new TreeSet<Node>(); Vector<Node> classes = new Vector<Node>(); + + Vector<Node> instances = new Vector<Node>(); for (Node one : v) { if (one instanceof ClassNode) { classes.add(one); } + if (one instanceof InstanceNode) { + instances.add(one); + } + } + System.out.println(instances.size()); + TypedSparqlQueryClasses tsqc=new TypedSparqlQueryClasses(configuration); + if(closeAfterRecursion){ + while (instances.size() > 0) { + p("Getting classes for remaining instances: " + instances.size()); + Node next = instances.remove(0); + p("Getting classes for: " + next); + classes.addAll(next.expand(tsqc, manipulator)); + if (classes.size()>=manipulator.breakSuperClassRetrievalAfter){break;} + } + } + Vector<Node>tmp=new Vector<Node>(); + int i=0; while (classes.size() > 0) { - System.out.println("Remaining classes: " + classes.size()); + p("Remaining classes: " + classes.size()); + //Iterator<Node> it=classes.iterator(); + //Node next =(Node) it.next(); + //classes.remove(next); Node next = classes.remove(0); - System.out.println("Expanding: " + next); - classes.addAll(next.expand(tsp, manipulator)); - if (classes.size()>=manipulator.breakSuperClassRetrievalAfter){break;} + + if(!hadAlready.contains(next.uri.toString())){ + p("Expanding: " + next); + //System.out.println(hadAlready.size()); + hadAlready.add(next.uri.toString()); + tmp=next.expand(tsp, manipulator); + classes.addAll(tmp); + tmp=new Vector<Node>(); + if(i % 50==0)System.out.println("got "+i+" extra classes, max: "+manipulator.breakSuperClassRetrievalAfter); + i++; + if (i>=manipulator.breakSuperClassRetrievalAfter){break;} + } + //System.out.println("Skipping"); + + + //if (classes.size()>=manipulator.breakSuperClassRetrievalAfter){break;} + } + //System.out.println((System.currentTimeMillis()-time)+""); } return n; } + + void p(String s){ + if(print_flag)System.out.println(s); + } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-14 20:16:47 UTC (rev 335) @@ -44,7 +44,7 @@ //expands all directly connected nodes @Override - public Vector<Node> expand(TypedSparqlQuery tsq, Manipulator m) { + public Vector<Node> expand(TypedSparqlQueryInterface tsq, Manipulator m) { Set<StringTuple> s = tsq.query(uri); // see Manipulator @@ -80,7 +80,7 @@ // gets the types for properties recursively @Override - public Vector<Node> expandProperties(TypedSparqlQuery tsq, Manipulator m) { + public Vector<Node> expandProperties(TypedSparqlQueryInterface tsq, Manipulator m) { for (PropertyNode one : properties) { one.expandProperties(tsq, m); } @@ -105,5 +105,16 @@ return s; } + + @Override + public int compareTo(Object n){ + return 0; + // + } + @Override + public int compareTo(Node n){ + return super.compareTo(n); + // + } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-14 20:16:47 UTC (rev 335) @@ -52,7 +52,7 @@ } catch (Exception e) { e.printStackTrace(); } - Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u, true); + Set<StringTuple> t = ((TypedSparqlQuery)this.typedSparqlQuery).getTupelsForRole(u, true); Set<String> ret = new HashSet<String>(); for (StringTuple one : t) { @@ -68,7 +68,7 @@ } catch (Exception e) { e.printStackTrace(); } - Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u,false); + Set<StringTuple> t = ((TypedSparqlQuery)this.typedSparqlQuery).getTupelsForRole(u,false); Set<String> ret = new HashSet<String>(); for (StringTuple one : t) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manipulator.java 2007-12-14 20:16:47 UTC (rev 335) @@ -49,7 +49,7 @@ this.blankNodeIdentifier = blankNodeIdentifier; this.replaceObject=replaceObject; this.replacePredicate=replacePredicate; - + this.breakSuperClassRetrievalAfter=breakSuperClassRetrievalAfter; Set<String> classproperties = new HashSet<String>(); classproperties.add(subclass); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Node.java 2007-12-14 20:16:47 UTC (rev 335) @@ -24,7 +24,7 @@ import java.util.Vector; // abstract class -public abstract class Node { +public abstract class Node implements Comparable{ URI uri; protected String type; protected boolean expanded = false; @@ -33,9 +33,9 @@ this.uri = u; } - public abstract Vector<Node> expand(TypedSparqlQuery tsq, Manipulator m); + public abstract Vector<Node> expand(TypedSparqlQueryInterface tsq, Manipulator m); - public abstract Vector<Node> expandProperties(TypedSparqlQuery tsq, Manipulator m); + public abstract Vector<Node> expandProperties(TypedSparqlQueryInterface tsq, Manipulator m); public abstract Set<String> toNTriple(); @@ -48,5 +48,12 @@ public URI getURI() { return uri; } + public boolean equals(Node n){ + if(this.uri.equals(n.uri))return true; + else return false; + } + public int compareTo(Node n){ + return this.uri.toString().compareTo(n.uri.toString()); + } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedFilter.java 2007-12-14 20:16:47 UTC (rev 335) @@ -32,6 +32,10 @@ return YagoFilter(); case 2: return SKOS(); + case 3: + return YAGOSKOS(); + case 4: + return YagoSpecialHierarchy(); } return null; } @@ -47,11 +51,12 @@ pred.add("http://dbpedia.org/property/website"); pred.add("http://dbpedia.org/property/wikipage"); pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); - Set<String> obj = new HashSet<String>(); - obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); - obj.add("http://dbpedia.org/resource/Category:Articles_"); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Category:"); obj.add("http://dbpedia.org/resource/Template"); obj.add("http://xmlns.com/foaf/0.1/"); obj.add("http://upload.wikimedia.org/wikipedia/commons"); @@ -63,7 +68,36 @@ return new SparqlQueryType("forbid", obj, pred, "false"); } + public static SparqlQueryType YagoSpecialHierarchy(){ + Set<String> pred = new HashSet<String>(); + pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + pred.add("http://dbpedia.org/property/relatedInstance"); + pred.add("http://dbpedia.org/property/monarch"); + + + Set<String> obj = new HashSet<String>(); + obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://dbpedia.org/resource/Template"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + obj.add("http://www.w3.org/2004/02/skos/core"); + + return new SparqlQueryType("forbid", obj, pred, "false"); + } + public static SparqlQueryType SKOS(){ Set<String> pred = new HashSet<String>(); //pred.add("http://www.w3.org/2004/02/skos/core"); @@ -94,6 +128,36 @@ return new SparqlQueryType("forbid", obj, pred, "false"); } + public static SparqlQueryType YAGOSKOS(){ + Set<String> pred = new HashSet<String>(); + //pred.add("http://www.w3.org/2004/02/skos/core"); + pred.add("http://www.w3.org/2002/07/owl#sameAs"); + pred.add("http://xmlns.com/foaf/0.1/"); + + pred.add("http://dbpedia.org/property/reference"); + pred.add("http://dbpedia.org/property/website"); + pred.add("http://dbpedia.org/property/wikipage"); + //pred.add("http://www.w3.org/2004/02/skos/core#narrower"); + pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + + Set<String> obj = new HashSet<String>(); + //obj.add("http://dbpedia.org/resource/Category:Wikipedia_"); + //obj.add("http://dbpedia.org/resource/Category:Articles_"); + obj.add("http://xmlns.com/foaf/0.1/"); + obj.add("http://upload.wikimedia.org/wikipedia/commons"); + obj.add("http://upload.wikimedia.org/wikipedia"); + + obj.add("http://www.geonames.org"); + obj.add("http://www.w3.org/2006/03/wn/wn20/instances/synset"); + obj.add("http://www4.wiwiss.fu-berlin.de/flickrwrappr"); + + + //obj.add("http://dbpedia.org/class/yago"); + obj.add("http://dbpedia.org/resource/Template"); + + + return new SparqlQueryType("forbid", obj, pred, "false"); + } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2007-12-14 20:16:47 UTC (rev 335) @@ -23,13 +23,11 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; import java.util.Vector; import org.dllearner.utilities.StringTuple; -public class PropertyNode extends Node { +public class PropertyNode extends Node implements Comparable{ // the a and b part of a property private Node a; @@ -52,7 +50,7 @@ } @Override - public Vector<Node> expand(TypedSparqlQuery tsq, Manipulator m) { + public Vector<Node> expand(TypedSparqlQueryInterface tsq, Manipulator m) { Set<StringTuple> s = tsq.query(uri); Vector<Node> Nodes = new Vector<Node>(); // Manipulation @@ -75,7 +73,7 @@ // gets the types for properties recursively @Override - public Vector<Node> expandProperties(TypedSparqlQuery tsq, Manipulator m) { + public Vector<Node> expandProperties(TypedSparqlQueryInterface tsq, Manipulator m) { b.expandProperties(tsq, m); return this.expand(tsq, m); } @@ -98,5 +96,21 @@ return s; } + + @Override + public boolean equals(Node n){ + if(this.uri.equals(n.uri))return true; + else return false; + } + @Override + public int compareTo(Object n){ + return 0; + // + } + @Override + public int compareTo(Node n){ + return super.compareTo(n); + // + } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2007-12-14 20:16:47 UTC (rev 335) @@ -61,13 +61,15 @@ if(domain){ ret = "SELECT * WHERE { " + lineend + "?subject <" + role + "> ?object; a []. " + lineend - + "FILTER( " + lineend + "(" + Filter + ").}"; + + "FILTER( " + lineend + "(" + Filter + ").}" ; + //"ORDER BY ?subject"; // System.out.println(ret); }else{ ret = "SELECT * WHERE { " + lineend + "?object a [] . " + "?subject <" + role + "> ?object . " + lineend + "FILTER( " + lineend + "(" + Filter + ").}"; + //"ORDER BY ?object"; } //System.out.println(ret); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2007-12-08 19:37:08 UTC (rev 334) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2007-12-14 20:16:47 UTC (rev 335) @@ -35,9 +35,9 @@ import org.dllearner.utilities.StringTuple; // can execute different queries -public class TypedSparqlQuery { +public class TypedSparqlQuery implements TypedSparqlQueryInterface{ boolean print_flag=false; - boolean debug_no_cache=false; + boolean debug_no_cache=false;// true means no cahce is used private Configuration configuration; // private SparqlHTTPRequest SparqlHTTPRequest; private SparqlQueryMaker sparqlQueryMaker; @@ -106,7 +106,7 @@ //System.out.print("\n"); } else { xml = FromCache; - System.out.println("FROM CACHE"); + //System.out.println("FROM CACHE"); } // System.out.println(sparql); @@ -114,7 +114,7 @@ // process XML Set<StringTuple> s = processResult(xml, a, b); try { - System.out.println("retrieved " + s.size() + " tupels\n"); + //System.out.println("retrieved " + s.size() + " tupels\n"); } catch (Exception e) { } return s; @@ -124,30 +124,73 @@ Set<StringTuple> ret = new HashSet<StringTuple>(); // TODO if result is empty, catch exceptions - String one = "<binding name=\"" + a + "\">"; - String two = "<binding name=\"" + b + "\">"; + String resEnd="</result>"; + String one = "binding name=\"" + a + "\""; + String two = "binding name=\"" + b + "\""; + String endbinding= "binding"; + String uri="uri"; String uridel = "<uri>"; - String end = "</uri>"; + String bnode = "<bnode>"; + String uriend = "</uri>"; String predtmp = ""; String objtmp = ""; - - while (xml.indexOf(one) != -1) { + //System.out.println(getNextResult(xml)); + String nextResult=""; + while ((nextResult=getNextResult( xml))!=null){ + //System.out.println(xml.indexOf(resEnd)); + //System.out.println(xml); + if(nextResult.indexOf(bnode)!=-1) + {xml=xml.substring(xml.indexOf(resEnd)+resEnd.length());continue;} // get pred - xml = xml.substring(xml.indexOf(one) + one.length()); - xml = xml.substring(xml.indexOf(uridel) + uridel.length()); - predtmp = xml.substring(0, xml.indexOf(end)); - + //predtmp = nextResult.substring(nextResult.indexOf(one) + one.length()); + predtmp=getinTag(nextResult, one,endbinding); + predtmp=getinTag(predtmp, uri,uri); + //System.out.println(predtmp); + // getobj - xml = xml.substring(xml.indexOf(two) + two.length()); - xml = xml.substring(xml.indexOf(uridel) + uridel.length()); - objtmp = xml.substring(0, xml.indexOf(end)); - ret.add(new StringTuple(predtmp, objtmp)); - // System.out.println(new Tupel(predtmp,objtmp)); + objtmp=getinTag(nextResult, two,endbinding); + objtmp=getinTag(objtmp, uri,uri); + //System.out.println(objtmp); + + StringTuple st=new StringTuple(predtmp, objtmp); + //System.out.println(st); + ret.add(st); + xml=xml.substring(xml.indexOf(resEnd)+resEnd.length()); + } + /*while (xml.indexOf(one) != -1) { + + + + // System.out.println(new Tupel(predtmp,objtmp)); + }*/ + return ret; } + + private String getNextResult(String xml){ + String res1="<result>"; + String res2="</result>"; + if(xml.indexOf(res1)==-1)return null; + xml = xml.substring(xml.indexOf(res1) + res1.length()); + xml = xml.substring(0,xml.indexOf(res2) ); + //System.out.println(xml); + return xml; + } + private String getinTag(String xml, String starttag, String endtag){ + String res1="<"+starttag+">"; + //System.out.println(res1); + String res2="</"+endtag+">"; + if(xml.indexOf(res1)==-1)return null; + xml = xml.substring(xml.indexOf(res1) + res1.length()); + //System.out.println(xml); + xml = xml.substring(0,xml.indexOf(res2) ); + //System.out.println(xml); + + return xml; + } private String sendAndReceiveSPARQL(String sparql) throws IOException { p("sendAndReceiveSPARQL"); @@ -214,5 +257,7 @@ System.out.println(str); } } + + } Added: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryClasses.java 2007-12-14 20:16:47 UTC (rev 335) @@ -0,0 +1,245 @@ +/** + * Copyright (C) 2007, Sebastian Hellmann + * + * This file is part of DL-Learner. + * + * DL-Learner is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DL-Learner is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package org.dllearner.kb.sparql; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.URLEncoder; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import org.dllearner.utilities.StringTuple; + +// can execute different queries +public class TypedSparqlQueryClasses implements TypedSparqlQueryInterface{ + boolean print_flag=false; + boolean debug_no_cache=false; + private Configuration configuration; + // private SparqlHTTPRequest SparqlHTTPRequest; + //private SparqlQueryMaker sparqlQueryMaker; + Cache cache; + + + public TypedSparqlQueryClasses(Configuration configuration) { + this.configuration = configuration; + this.cache = new Cache("cache"); + } + + // standard query get a tupels (p,o) for subject s + public Set<StringTuple> query(URI u) { + + // getQuery + String sparql = "SELECT ?predicate ?object " + + "WHERE {" + + "<"+u.toString()+"> ?predicate ?object;" + + "a ?object . " + + " FILTER (!regex(str(?object),'http://xmlns.com/foaf/0.1/'))"+ + "}"; + + return cachedSparql(u, sparql, "predicate", "object"); + + } + + + + // uses a cache + private Set<StringTuple> cachedSparql(URI u, String sparql, String a, String b) { + // check cache + String FromCache = cache.get(u.toString(), sparql); + if(debug_no_cache) { + FromCache=null; + } + String xml = null; + // if not in cache get it from EndPoint + if (FromCache == null) { + try { + xml = sendAndReceiveSPARQL(sparql); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + p(sparql); + // System.out.println(xml); + if(!debug_no_cache) { + cache.put(u.toString(), sparql, xml); + } + //System.out.print("\n"); + } else { + xml = FromCache; + //System.out.println("FROM CACHE"); + } + + // System.out.println(sparql); + // System.out.println(xml); + // process XML + Set<StringTuple> s = processResult(xml, a, b); + try { + //System.out.println("retrieved " + s.size() + " tupels\n"); + } catch (Exception e) { + } + return s; + } + + public Set<StringTuple> processResult(String xml, String a, String b) { + + Set<StringTuple> ret = new HashSet<StringTuple>(); + // TODO if result is empty, catch exceptions + String resEnd="</result>"; + String one = "binding name=\"" + a + "\""; + String two = "binding name=\"" + b + "\""; + String endbinding= "binding"; + String uri="uri"; + String uridel = "<uri>"; + String bnode = "<bnode>"; + String uriend = "</uri>"; + String predtmp = ""; + String objtmp = ""; + //System.out.println(getNextResult(xml)); + String nextResult=""; + while ((nextResult=getNextResult( xml))!=null){ + //System.out.println(xml.indexOf(resEnd)); + //System.out.println(xml); + if(nextResult.indexOf(bnode)!=-1) + {xml=xml.substring(xml.indexOf(resEnd)+resEnd.length());continue;} + // get pred + //predtmp = nextResult.substring(nextResult.indexOf(one) + one.length()); + predtmp=getinTag(nextResult, one,endbinding); + predtmp=getinTag(predtmp, uri,uri); + //System.out.println(predtmp); + + // getobj + objtmp=getinTag(nextResult, two,endbinding); + objtmp=getinTag(objtmp, uri,uri); + //System.out.println(objtmp); + + StringTuple st=new StringTuple(predtmp, objtmp); + //System.out.println(st); + ret.add(st); + xml=xml.substring(xml.indexOf(resEnd)+resEnd.length()); + + } + /*while (xml.indexOf(one) != -1) { + + + + + // System.out.println(new Tupel(predtmp,objtmp)); + }*/ + + return ret; + + } + + private String getNextResult(String xml){ + String res1="<result>"; + String res2="</result>"; + if(xml.indexOf(res1)==-1)return null; + xml = xml.substring(xml.indexOf(res1) + res1.length()); + xml = xml.substring(0,xml.indexOf(res2) ); + //System.out.println(xml); + return xml; + } + private String getinTag(String xml, String starttag, String endtag){ + String res1="<"+starttag+">"; + //System.out.println(res1); + String res2="</"+endtag+">"; + if(xml.indexOf(res1)==-1)return null; + xml = xml.substring(xml.indexOf(res1) + res1.length()); + //System.out.println(xml); + xml = xml.substring(0,xml.indexOf(res2) ); + //System.out.println(xml); + + return xml; + } + + private String sendAndReceiveSPARQL(String sparql) throws IOException { + p("sendAndReceiveSPARQL"); + StringBuilder answer = new StringBuilder(); + //sparql="SELECT * WHERE {?a ?b ?c}LIMIT 10"; + + // String an Sparql-Endpoint schicken + HttpURLConnection connection; + SpecificSparqlEndpoint se = configuration.getSparqlEndpoint(); + p("URL: "+se.getURL()); + p("Host: "+se.getHost()); + + connection = (HttpURLConnection) se.getURL().openConnection(); + connection.setDoOutput(true); + + //connection.addRequestProperty("Host", se.getHost()); + connection.addRequestProperty("Connection", "close"); + connection + .addRequestProperty( + "Accept", + "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); + connection.addRequestProperty("Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"); + connection.addRequestProperty("Accept-Charset", "utf-8;q=1.0"); + connection + .addRequestProperty( + "User-Agent", + "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Web-Sniffer/1.0.24"); + + OutputStream os = connection.getOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(os); + + Set<String> s = se.getParameters().keySet(); + Iterator<String> it = s.iterator(); + String FullURI = ""; + while (it.hasNext()) { + String element = it.next(); + FullURI += "" + URLEncoder.encode(element, "UTF-8") + "=" + + URLEncoder.encode(se.getParameters().get(element), "UTF-8") + "&"; + } + + FullURI += "" + se.getHasQueryParameter() + "=" + URLEncoder.encode(sparql, "UTF-8"); + p(FullURI); + osw.write(FullURI); + osw.close(); + + // receive answer + InputStream is = connection.getInputStream(); + InputStreamReader isr = new InputStreamReader(is, "UTF-8"); + BufferedReader br = new BufferedReader(isr); + + String line; + do { + line = br.readLine(); + if (line != null) + answer.append(line); + } while (line != null); + + br.close(); + p(answer.toString()); + return answer.toString(); + } + public void p(String str){ + if(print_flag){ + System.out.println(str); + } + } + +} Added: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQueryInterface.java 2007-12-14 20:16:47 UTC (rev 335) @@ -0,0 +1,11 @@ +package org.dllearner.kb.sparql; + +import java.net.URI; +import java.util.Set; + +import org.dllearner.utilities.StringTuple; + +public interface TypedSparqlQueryInterface { + + public Set<StringTuple> query(URI u); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2007-12-08 19:37:11
|
Revision: 334 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=334&view=rev Author: kurzum Date: 2007-12-08 11:37:08 -0800 (Sat, 08 Dec 2007) Log Message: ----------- one more example Added Paths: ----------- trunk/examples/sparql/difference/DBPediaYAGO_angela_vs_hillary_ignoredConcepts.conf Added: trunk/examples/sparql/difference/DBPediaYAGO_angela_vs_hillary_ignoredConcepts.conf =================================================================== --- trunk/examples/sparql/difference/DBPediaYAGO_angela_vs_hillary_ignoredConcepts.conf (rev 0) +++ trunk/examples/sparql/difference/DBPediaYAGO_angela_vs_hillary_ignoredConcepts.conf 2007-12-08 19:37:08 UTC (rev 334) @@ -0,0 +1,58 @@ +/** + + * Solutions: +http://dbpedia.org/class/yago/Communicator109610660 (length 1, depth 1) + http://dbpedia.org/class/yago/Scientist110560637 (length 1, depth 1) + plus all ignored Concepts + + EXISTS http://dbpedia.org/property/birthDate.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/birthPlace.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/languagesspoken.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/occupation.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/order.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/predecessor.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/termStart.TOP (length 3, depth 2) + + Direct classes from DBPedia: + dbpedia:class/yago/Person100007846 [http] + dbpedia:class/yago/Head110162991 [http] + dbpedia:class/yago/Woman110787470 [http] + dbpedia:class/yago/Leader109623038 [http] + dbpedia:class/yago/Scientist110560637 [http] + dbpedia:class/yago/Chancellor109906986 [http] +dbpedia:class/yago/Politician110451263 [http] + +*/ + refinement.ignoredConcepts = { + "http://dbpedia.org/class/yago/Communicator109610660", + "http://dbpedia.org/class/yago/Negotiator110351874", + "http://dbpedia.org/class/yago/Representative110522035", + "http://dbpedia.org/class/yago/Scientist110560637", + "http://dbpedia.org/class/yago/HeadOfState110164747", + "http://dbpedia.org/class/yago/Chancellor109906986", + "http://dbpedia.org/class/yago/Head110162991" + }; + + +// recursion depth of extraction algorithm +sparql2.recursionDepth = 2; + + +//predefined filter (1 = YAGO based learning) +// 2 = SKOS, more Options are needed then though. replacePredicate, breakSuperClassRetrievalAfter +sparql2.predefinedFilter = 1; + +// use DBpedia endpoint +import("http://dbpedia.openlinksw.com:8890/sparql","SPARQL2"); + +// the set of objects as starting point for fragment selection +// (should be identical to the set of examples) +sparql2.instances = { + "http://dbpedia.org/resource/Angela_Merkel", + "http://dbpedia.org/resource/Hillary_Rodham_Clinton" +}; + + +/** examples **/ ++"http://dbpedia.org/resource/Angela_Merkel" +-"http://dbpedia.org/resource/Hillary_Rodham_Clinton" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2007-12-08 19:27:25
|
Revision: 333 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=333&view=rev Author: kurzum Date: 2007-12-08 11:27:22 -0800 (Sat, 08 Dec 2007) Log Message: ----------- one more example Added Paths: ----------- trunk/examples/sparql/difference/DBPediaYAGO_hillary_vs_angela_ignoredConcepts.conf Added: trunk/examples/sparql/difference/DBPediaYAGO_hillary_vs_angela_ignoredConcepts.conf =================================================================== --- trunk/examples/sparql/difference/DBPediaYAGO_hillary_vs_angela_ignoredConcepts.conf (rev 0) +++ trunk/examples/sparql/difference/DBPediaYAGO_hillary_vs_angela_ignoredConcepts.conf 2007-12-08 19:27:22 UTC (rev 333) @@ -0,0 +1,70 @@ +/** + + * Solutions: +http://dbpedia.org/class/yago/Achiever109762821 (length 1, depth 1) + http://dbpedia.org/class/yago/Intellectual109621545 (length 1, depth 1) +plus all ignored Concepts + + EXISTS http://dbpedia.org/property/almaMater.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/alongside.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/before.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/candidate.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/children.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/dateOfBirth.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/height.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/lawSchool.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/office.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/preceded.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/profession.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/state.TOP (length 3, depth 2) + EXISTS http://dbpedia.org/property/succeeded.TOP (length 3, depth 2) + + Direct classes from DBPedia: + dbpedia:class/yago/Person100007846 [http] + dbpedia:class/yago/Entity100001740 [http] + dbpedia:class/yago/Academician109759069 [http] + dbpedia:class/yago/Lawyer110249950 [http] + dbpedia:class/yago/Alumnus109786338 [http] + dbpedia:class/yago/Woman110787470 [http] + dbpedia:class/yago/FirstLady110092880 [http] + dbpedia:class/yago/Politician110451263 [http] + dbpedia:class/yago/Senator110578471 [http] + + */ +refinement.ignoredConcepts = { +"http://dbpedia.org/class/yago/Intellectual109621545", +"http://dbpedia.org/class/yago/Achiever109762821", +"http://dbpedia.org/class/yago/FirstLady110092880", +"http://dbpedia.org/class/yago/Scholar110557854", +"http://dbpedia.org/class/yago/Alumnus109786338", +"http://dbpedia.org/class/yago/Lawgiver110249270", +"http://dbpedia.org/class/yago/Legislator110253995", +"http://dbpedia.org/class/yago/Senator110578471", +"http://dbpedia.org/class/yago/Professional110480253", +"http://dbpedia.org/class/yago/Educator110045713", +"http://dbpedia.org/class/yago/Lawyer110249950", +"http://dbpedia.org/class/yago/Academician109759069"}; + + +// recursion depth of extraction algorithm +sparql2.recursionDepth = 2; + +//predefined filter (1 = YAGO based learning) +// 2 = SKOS, more Options are needed then though. replacePredicate, breakSuperClassRetrievalAfter +sparql2.predefinedFilter = 1; + + +// use DBpedia endpoint +import("http://dbpedia.openlinksw.com:8890/sparql","SPARQL2"); + +// the set of objects as starting point for fragment selection +// (should be identical to the set of examples) +sparql2.instances = { + "http://dbpedia.org/resource/Angela_Merkel", + "http://dbpedia.org/resource/Hillary_Rodham_Clinton" +}; + + +/** examples **/ ++"http://dbpedia.org/resource/Hillary_Rodham_Clinton" +-"http://dbpedia.org/resource/Angela_Merkel" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2007-12-08 18:46:58
|
Revision: 331 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=331&view=rev Author: kurzum Date: 2007-12-08 10:46:56 -0800 (Sat, 08 Dec 2007) Log Message: ----------- some code changes mainly needed for role learning Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-05 16:18:15 UTC (rev 330) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-08 18:46:56 UTC (rev 331) @@ -84,7 +84,8 @@ private boolean learnDomain = false; private boolean learnRange = false; - private String role; + private int numberOfInstancesUsedForRoleLearning=40; + private String role=""; private String blankNodeIdentifier = "bnode"; LinkedList<StringTuple> URIParameters = new LinkedList<StringTuple>(); @@ -170,8 +171,10 @@ options.add(new StringTupleListConfigOption("replacePredicate", "rule for replacing predicates")); options.add(new StringTupleListConfigOption("replaceObject", "rule for replacing predicates")); options.add(new IntegerConfigOption("breakSuperClassRetrievalAfter", "stops a cyclic hierarchy after specified number of classes")); + options.add(new IntegerConfigOption("numberOfInstancesUsedForRoleLearning", "")); + return options; } @@ -230,6 +233,8 @@ replaceObject = (LinkedList)entry.getValue(); }else if (option.equals("breakSuperClassRetrievalAfter")) { breakSuperClassRetrievalAfter = (Integer) entry.getValue(); + }else if (option.equals("numberOfInstancesUsedForRoleLearning")) { + numberOfInstancesUsedForRoleLearning = (Integer) entry.getValue(); } } @@ -279,12 +284,12 @@ // used to learn a domain of a role if (learnDomain || learnRange) { Set<String> pos=new HashSet<String>(); - Set<String> neg=new HashSet<String>(); + //Set<String> neg=new HashSet<String>(); if(learnDomain){ pos = m.getDomainInstancesForRole(role); - neg = m.getRangeInstancesForRole(role); + //neg = m.getRangeInstancesForRole(role); }else if(learnRange){ - neg = m.getDomainInstancesForRole(role); + //neg = m.getDomainInstancesForRole(role); pos = m.getRangeInstancesForRole(role); } //choose 30 @@ -293,29 +298,29 @@ Set<String> tmp=new HashSet<String>(); for(String one:pos){ tmp.add(one); - if(tmp.size()>=5)break; + if(tmp.size()>=numberOfInstancesUsedForRoleLearning)break; } pos=tmp; - System.out.println(pos.size()); + System.out.println("Instances used: "+pos.size()); - tmp=new HashSet<String>(); + /*tmp=new HashSet<String>(); for(String one:neg){ tmp.add(one); if(tmp.size()>=5)break; } - neg=tmp; + neg=tmp;*/ instances=new HashSet<String>(); - instances.addAll( pos); + instances.addAll(pos); - instances.addAll(neg); + //instances.addAll(neg); for(String one:pos){ System.out.println("+\""+one+"\""); } - for(String one:neg){ + /*for(String one:neg){ System.out.println("-\""+one+"\""); - } + }*/ /*Random r= new Random(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-05 16:18:15 UTC (rev 330) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-08 18:46:56 UTC (rev 331) @@ -52,7 +52,7 @@ } catch (Exception e) { e.printStackTrace(); } - Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u); + Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u, true); Set<String> ret = new HashSet<String>(); for (StringTuple one : t) { @@ -68,7 +68,7 @@ } catch (Exception e) { e.printStackTrace(); } - Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u); + Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u,false); Set<String> ret = new HashSet<String>(); for (StringTuple one : t) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2007-12-05 16:18:15 UTC (rev 330) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2007-12-08 18:46:56 UTC (rev 331) @@ -32,13 +32,13 @@ case 2: return localJoseki(); case 3: - return worldFactBook(); - case 4: return govTrack(); + case 4: + return revyu(); case 5: - return revyu(); - case 6: return myopenlink(); + case 6: + return worldFactBook(); } return null; } @@ -66,7 +66,7 @@ } catch (Exception e) { e.printStackTrace(); } - return new SpecificSparqlEndpoint(u, "localost", m); + return new SpecificSparqlEndpoint(u, "localhost", m); } public static SpecificSparqlEndpoint worldFactBook() { URL u = null; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2007-12-05 16:18:15 UTC (rev 330) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2007-12-08 18:46:56 UTC (rev 331) @@ -21,7 +21,8 @@ // can assemble sparql queries public class SparqlQueryMaker { - + String lineend="\n"; + boolean print_flag=false; /* can make queries for subject, predicate, object * according to the filter settings * object not yet implemented @@ -35,26 +36,47 @@ } public String makeSubjectQueryUsingFilters(String subject) { - String lineend = "\n"; + String Filter = internalFilterAssemblySubject(); String ret = "SELECT * WHERE { " + lineend + "<" + subject + "> ?predicate ?object. " + lineend + "FILTER( " + lineend + "(" + Filter + ").}"; // System.out.println(ret); + //System.out.println(sparqlQueryType.getPredicatefilterlist().length); return ret; } public String makeRoleQueryUsingFilters(String role) { - String lineend = "\n"; + String Filter = internalFilterAssemblyRole(); - String ret = "SELECT * WHERE { " + lineend + "?subject <" + role + "> ?object. " + lineend + String ret = "SELECT * WHERE { " + lineend + " ?subject <" + role + "> ?object. " + lineend + "FILTER( " + lineend + "(" + Filter + ").}"; // System.out.println(ret); return ret; } + public String makeRoleQueryUsingFilters(String role,boolean domain) { + + String Filter = internalFilterAssemblyRole(); + String ret=""; + if(domain){ + ret = "SELECT * WHERE { " + lineend + + "?subject <" + role + "> ?object; a []. " + lineend + + "FILTER( " + lineend + "(" + Filter + ").}"; + // System.out.println(ret); + }else{ + ret = "SELECT * WHERE { " + lineend + + "?object a [] . " + + "?subject <" + role + "> ?object . " + lineend + + "FILTER( " + lineend + "(" + Filter + ").}"; + + } + //System.out.println(ret); + return ret; + } + private String internalFilterAssemblySubject() { - String lineend = "\n"; + String Filter = ""; if (!this.sparqlQueryType.isLiterals()) Filter += "!isLiteral(?object))"; @@ -68,7 +90,7 @@ } private String internalFilterAssemblyRole() { - String lineend = "\n"; + String Filter = ""; if (!this.sparqlQueryType.isLiterals()) Filter += "!isLiteral(?object))"; @@ -92,4 +114,10 @@ public String filterObject(String ns) { return "&&( !regex(str(?object), '" + ns + "') )"; } + + public void p(String str){ + if(print_flag){ + System.out.println(str); + } + } } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2007-12-05 16:18:15 UTC (rev 330) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2007-12-08 18:46:56 UTC (rev 331) @@ -85,9 +85,11 @@ int i = 0; for (; i < predicatefilterlist.length; i++) { tmp[i] = predicatefilterlist[i]; - + //System.out.println(tmp[i]); } tmp[i] = filter; + predicatefilterlist=tmp; + //System.out.println("added filter: "+filter); } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2007-12-05 16:18:15 UTC (rev 330) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/TypedSparqlQuery.java 2007-12-08 18:46:56 UTC (rev 331) @@ -36,6 +36,8 @@ // can execute different queries public class TypedSparqlQuery { + boolean print_flag=false; + boolean debug_no_cache=false; private Configuration configuration; // private SparqlHTTPRequest SparqlHTTPRequest; private SparqlQueryMaker sparqlQueryMaker; @@ -68,13 +70,25 @@ return s; } + public Set<StringTuple> getTupelsForRole(URI u,boolean domain) { + // getQuery + String sparql = sparqlQueryMaker.makeRoleQueryUsingFilters(u.toString(),domain); + + Set<StringTuple> s = cachedSparql(u, sparql, "subject", "object"); + // System.out.println(s); + return s; + + } + // uses a cache private Set<StringTuple> cachedSparql(URI u, String sparql, String a, String b) { // check cache String FromCache = cache.get(u.toString(), sparql); - + if(debug_no_cache) { + FromCache=null; + } String xml = null; // if not in cache get it from EndPoint if (FromCache == null) { @@ -84,9 +98,11 @@ // TODO Auto-generated catch block e.printStackTrace(); } - // System.out.println(sparql); + p(sparql); // System.out.println(xml); - cache.put(u.toString(), sparql, xml); + if(!debug_no_cache) { + cache.put(u.toString(), sparql, xml); + } //System.out.print("\n"); } else { xml = FromCache; @@ -134,16 +150,20 @@ } private String sendAndReceiveSPARQL(String sparql) throws IOException { + p("sendAndReceiveSPARQL"); StringBuilder answer = new StringBuilder(); + //sparql="SELECT * WHERE {?a ?b ?c}LIMIT 10"; // String an Sparql-Endpoint schicken HttpURLConnection connection; SpecificSparqlEndpoint se = configuration.getSparqlEndpoint(); - + p("URL: "+se.getURL()); + p("Host: "+se.getHost()); + connection = (HttpURLConnection) se.getURL().openConnection(); connection.setDoOutput(true); - connection.addRequestProperty("Host", se.getHost()); + //connection.addRequestProperty("Host", se.getHost()); connection.addRequestProperty("Connection", "close"); connection .addRequestProperty( @@ -155,7 +175,7 @@ .addRequestProperty( "User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Web-Sniffer/1.0.24"); - + OutputStream os = connection.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os); @@ -167,9 +187,9 @@ FullURI += "" + URLEncoder.encode(element, "UTF-8") + "=" + URLEncoder.encode(se.getParameters().get(element), "UTF-8") + "&"; } - // System.out.println(FullURI); + FullURI += "" + se.getHasQueryParameter() + "=" + URLEncoder.encode(sparql, "UTF-8"); - + p(FullURI); osw.write(FullURI); osw.close(); @@ -186,8 +206,13 @@ } while (line != null); br.close(); - + p(answer.toString()); return answer.toString(); } + public void p(String str){ + if(print_flag){ + System.out.println(str); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2007-12-05 16:18:16
|
Revision: 330 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=330&view=rev Author: kurzum Date: 2007-12-05 08:18:15 -0800 (Wed, 05 Dec 2007) Log Message: ----------- added 4 endpoints. They are definitely alive. didin't test if the algorithm works with them Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2007-12-05 16:15:59 UTC (rev 329) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2007-12-05 16:18:15 UTC (rev 330) @@ -35,6 +35,10 @@ return worldFactBook(); case 4: return govTrack(); + case 5: + return revyu(); + case 6: + return myopenlink(); } return null; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2007-12-05 16:16:06
|
Revision: 329 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=329&view=rev Author: kurzum Date: 2007-12-05 08:15:59 -0800 (Wed, 05 Dec 2007) Log Message: ----------- some minor changes, role domain learning doesn't really work, because the instances have to be chosen in a smarter way. Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java Added Paths: ----------- trunk/examples/sparql/role_domain_placeOfBirth_yago.conf trunk/examples/sparql/role_range_placeOfBirth_yago.conf Added: trunk/examples/sparql/role_domain_placeOfBirth_yago.conf =================================================================== --- trunk/examples/sparql/role_domain_placeOfBirth_yago.conf (rev 0) +++ trunk/examples/sparql/role_domain_placeOfBirth_yago.conf 2007-12-05 16:15:59 UTC (rev 329) @@ -0,0 +1,58 @@ +/** + * + * solutions: + * + */ + + +// recursion depth of extraction algorithm +sparql2.recursionDepth = 1; + +// list of ignored roles +sparql2.predList = { + "http://www.w3.org/2004/02/skos/core", + "http://www.w3.org/2002/07/owl#sameAs", + "http://xmlns.com/foaf/0.1/", + "http://dbpedia.org/property/reference", + "http://dbpedia.org/property/website", + "http://dbpedia.org/property/wikipage" +}; + +// list of ignored objects +sparql2.objList = { + "http://dbpedia.org/resource/Category:Wikipedia_", + "http://dbpedia.org/resource/Category:Articles_", + "http://xmlns.com/foaf/0.1/", + "http://upload.wikimedia.org/wikipedia/commons", + "http://upload.wikimedia.org/wikipedia", + "http://www.geonames.org", + "http://www.w3.org/2006/03/wn/wn20/instances/synset", + "http://www4.wiwiss.fu-berlin.de/flickrwrappr", + "http://www.w3.org/2004/02/skos/core" +}; + +// use DBpedia endpoint +import("http://dbpedia.openlinksw.com:8890/sparql","SPARQL2"); + +// the set of objects as starting point for fragment selection +// (should be identical to the set of examples) +sparql2.instances = { + "http://dbpedia.org/resource/Angela_Merkel", + "http://dbpedia.org/resource/Gerhard_Schr%C3%B6der" +}; +sparql2.role = "http://dbpedia.org/property/placeOfBirth"; +sparql2.learnDomain=true; +sparql2.learnRange=false; + + +/** examples **/ ++"http://dbpedia.org/resource/Richard_Burton" ++"http://dbpedia.org/resource/Gregory_Bateson" ++"http://dbpedia.org/resource/Gennaro_Gattuso" ++"http://dbpedia.org/resource/Thomas_Bayes" ++"http://dbpedia.org/resource/W%C5%82adys%C5%82aw_Anders" +-"http://dbpedia.org/resource/Roman_Dacia" +-"http://dbpedia.org/resource/Petrovichi" +-"http://dbpedia.org/resource/Scotland" +-"http://dbpedia.org/resource/Lanuvium" +-"http://dbpedia.org/resource/Riga" \ No newline at end of file Added: trunk/examples/sparql/role_range_placeOfBirth_yago.conf =================================================================== --- trunk/examples/sparql/role_range_placeOfBirth_yago.conf (rev 0) +++ trunk/examples/sparql/role_range_placeOfBirth_yago.conf 2007-12-05 16:15:59 UTC (rev 329) @@ -0,0 +1,59 @@ +/** + * + * solutions: + *(http://dbpedia.org/class/yago/Isle109319456 OR http://dbpedia.org/class/yago/Location100027167) + */ + + +// recursion depth of extraction algorithm +sparql2.recursionDepth = 1; + +// list of ignored roles +sparql2.predList = { + "http://www.w3.org/2004/02/skos/core", + "http://www.w3.org/2002/07/owl#sameAs", + "http://xmlns.com/foaf/0.1/", + "http://dbpedia.org/property/reference", + "http://dbpedia.org/property/website", + "http://dbpedia.org/property/wikipage" +}; + +// list of ignored objects +sparql2.objList = { + "http://dbpedia.org/resource/Category:Wikipedia_", + "http://dbpedia.org/resource/Category:Articles_", + "http://xmlns.com/foaf/0.1/", + "http://upload.wikimedia.org/wikipedia/commons", + "http://upload.wikimedia.org/wikipedia", + "http://www.geonames.org", + "http://www.w3.org/2006/03/wn/wn20/instances/synset", + "http://www4.wiwiss.fu-berlin.de/flickrwrappr", + "http://www.w3.org/2004/02/skos/core" +}; + +// use DBpedia endpoint +import("http://dbpedia.openlinksw.com:8890/sparql","SPARQL2"); + +// the set of objects as starting point for fragment selection +// (should be identical to the set of examples) +sparql2.instances = { + "http://dbpedia.org/resource/Angela_Merkel", + "http://dbpedia.org/resource/Gerhard_Schr%C3%B6der" +}; + +sparql2.role = "http://dbpedia.org/property/placeOfBirth"; +sparql2.learnDomain=false; +sparql2.learnRange=true; + + +/** examples **/ ++"http://dbpedia.org/resource/Roman_Dacia" +//+"http://dbpedia.org/resource/Petrovichi" ++"http://dbpedia.org/resource/Scotland" ++"http://dbpedia.org/resource/Lanuvium" ++"http://dbpedia.org/resource/Riga" +-"http://dbpedia.org/resource/Richard_Burton" +-"http://dbpedia.org/resource/Gregory_Bateson" +-"http://dbpedia.org/resource/Gennaro_Gattuso" +-"http://dbpedia.org/resource/Thomas_Bayes" +-"http://dbpedia.org/resource/W%C5%82adys%C5%82aw_Anders" \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-05 13:09:58 UTC (rev 328) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpointRestructured.java 2007-12-05 16:15:59 UTC (rev 329) @@ -26,11 +26,11 @@ import java.net.MalformedURLException; import java.net.URI; import java.net.URL; -import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; +import java.util.Random; import java.util.Set; import org.dllearner.core.KnowledgeSource; @@ -83,6 +83,7 @@ private int breakSuperClassRetrievalAfter = 500; private boolean learnDomain = false; + private boolean learnRange = false; private String role; private String blankNodeIdentifier = "bnode"; @@ -160,7 +161,8 @@ options.add(new BooleanConfigOption("getAllSuperClasses", "If true then all superclasses are retrieved until the most general class (owl:Thing) is reached.", true)); options.add(new BooleanConfigOption("learnDomain", "learns the Domain for a Role")); - options.add(new StringConfigOption("role", "role to learn Domain from")); + options.add(new BooleanConfigOption("learnRange", "learns the Range for a Role")); + options.add(new StringConfigOption("role", "role to learn Domain/Range from")); options.add(new StringConfigOption("blankNodeIdentifier", "used to identify blanknodes in Tripels")); @@ -214,6 +216,8 @@ getAllSuperClasses = (Boolean) entry.getValue(); } else if (option.equals("learnDomain")) { learnDomain = (Boolean) entry.getValue(); + }else if (option.equals("learnRange")) { + learnRange = (Boolean) entry.getValue(); } else if (option.equals("role")) { role = (String) entry.getValue(); } else if (option.equals("blankNodeIdentifier")) { @@ -260,32 +264,76 @@ } // get Options for Filters - System.out.println("aaa"+predefinedFilter); + if (predefinedFilter >= 1) { sqt = PredefinedFilter.getFilter(predefinedFilter); } else { sqt = new SparqlQueryType("forbid", objList, predList, useLits + ""); - System.out.println(sqt); + } // give everything to the manager m.useConfiguration(sqt, sse, man, recursionDepth, getAllSuperClasses); try { String ont = ""; // used to learn a domain of a role - if (learnDomain) { - instances = m.getDomainInstancesForRole(role); + if (learnDomain || learnRange) { + Set<String> pos=new HashSet<String>(); + Set<String> neg=new HashSet<String>(); + if(learnDomain){ + pos = m.getDomainInstancesForRole(role); + neg = m.getRangeInstancesForRole(role); + }else if(learnRange){ + neg = m.getDomainInstancesForRole(role); + pos = m.getRangeInstancesForRole(role); + } + //choose 30 + + + Set<String> tmp=new HashSet<String>(); + for(String one:pos){ + tmp.add(one); + if(tmp.size()>=5)break; + } + pos=tmp; + System.out.println(pos.size()); + + tmp=new HashSet<String>(); + for(String one:neg){ + tmp.add(one); + if(tmp.size()>=5)break; + } + neg=tmp; + + instances=new HashSet<String>(); + instances.addAll( pos); + + instances.addAll(neg); + + for(String one:pos){ + System.out.println("+\""+one+"\""); + } + for(String one:neg){ + System.out.println("-\""+one+"\""); + } + + /*Random r= new Random(); + + + Object[] arr=instances.toArray(); + while(instances.size()>=30){ + + }*/ // add the role to the filter(a solution is always EXISTS // role.TOP) m.addPredicateFilter(role); //System.out.println(instances); // THIS is a workaround - for(String one:instances){ - System.out.println("+\""+one+"\""); - } + } // the actual extraction is started here ont = m.extract(instances); + System.out.println("Finished collecting Fragment"); if (dumpToFile) { String filename = System.currentTimeMillis() + ".nt"; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2007-12-05 13:09:58 UTC (rev 328) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/ClassNode.java 2007-12-05 16:15:59 UTC (rev 329) @@ -23,6 +23,8 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import java.util.Vector; import org.dllearner.utilities.StringTuple; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-05 13:09:58 UTC (rev 328) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/InstanceNode.java 2007-12-05 16:15:59 UTC (rev 329) @@ -23,6 +23,8 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import java.util.Vector; import org.dllearner.utilities.StringTuple; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-05 13:09:58 UTC (rev 328) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Manager.java 2007-12-05 16:15:59 UTC (rev 329) @@ -22,6 +22,8 @@ import java.net.URI; import java.util.HashSet; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import org.dllearner.utilities.StringTuple; @@ -53,6 +55,7 @@ Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u); Set<String> ret = new HashSet<String>(); for (StringTuple one : t) { + ret.add(one.a); } return ret; @@ -68,6 +71,7 @@ Set<StringTuple> t = this.typedSparqlQuery.getTupelsForRole(u); Set<String> ret = new HashSet<String>(); for (StringTuple one : t) { + ret.add(one.b); } return ret; @@ -91,7 +95,7 @@ // this.TypedSparqlQuery.query(uri); // System.out.println(ExtractionAlgorithm.getFirstNode(uri)); System.out.println("Start extracting"); - Set<String> ret = new HashSet<String>(); + SortedSet<String> ret = new TreeSet<String>(); for (String one : instances) { try { @@ -101,12 +105,26 @@ e.printStackTrace(); } } - - String nt = ""; - for (String str : ret) { + System.out.println("Finished extracting, start conversion"); + StringBuffer nt = new StringBuffer(); + Object[] arr=ret.toArray(); + for (int i = 0; i < arr.length; i++) { + nt.append((String) arr[i]+"\n"); + if(i%1000==0)System.out.println(i+" of "+arr.length+" triples done"); + } + /* + String tmp=""; + while ( ret.size() > 0) { + tmp=ret.first(); + nt+=tmp; + ret.remove(tmp); + System.out.println(ret.size()); + + } + /*for (String str : ret) { nt += str + "\n"; - } - return nt; + }*/ + return nt.toString(); } public void addPredicateFilter(String str) { Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2007-12-05 13:09:58 UTC (rev 328) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PredefinedEndpoint.java 2007-12-05 16:15:59 UTC (rev 329) @@ -76,6 +76,22 @@ } return new SpecificSparqlEndpoint(u, "www4.wiwiss.fu-berlin.de", m); } + + /* + * it only has 4 classes + public static SpecificSparqlEndpoint dblp() { + URL u = null; + HashMap<String, String> m = new HashMap<String, String>(); + // m.put("default-graph-uri", "http://dbpedia.org"); + // m.put("format", "application/sparql-results.xml"); + try { + u = new URL("http://www4.wiwiss.fu-berlin.de/dblp/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SpecificSparqlEndpoint(u, "www4.wiwiss.fu-berlin.de", m); + } + */ public static SpecificSparqlEndpoint govTrack() { URL u = null; HashMap<String, String> m = new HashMap<String, String>(); @@ -88,5 +104,55 @@ } return new SpecificSparqlEndpoint(u, "www.rdfabout.com", m); } + public static SpecificSparqlEndpoint revyu() { + URL u = null; + HashMap<String, String> m = new HashMap<String, String>(); + // m.put("default-graph-uri", "http://dbpedia.org"); + // m.put("format", "application/sparql-results.xml"); + //http://revyu.com/sparql?query=SELECT DISTINCT * WHERE {[] a ?c} + try { + u = new URL("http://revyu.com/sparql"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SpecificSparqlEndpoint(u, "revyu.com", m); + } + // returns strange xml + /*public static SpecificSparqlEndpoint dbtune() { + URL u = null; + HashMap<String, String> m = new HashMap<String, String>(); + // m.put("default-graph-uri", "http://dbpedia.org"); + // m.put("format", "application/sparql-results.xml"); + //http://dbtune.org:2020/sparql/?query=SELECT DISTINCT * WHERE {[] a ?c}Limit 10 + http://dbtune.org:2020/evaluateQuery?repository=default&serialization=rdfxml&queryLanguage=SPARQL&query=SELECT+DISTINCT+*+WHERE+%7B%5B%5D+a+%3Fc%7D + &resultFormat=xml + &resourceFormat=ns&entailment=none + http://dbtune.org:2020/evaluateQuery + ?repository=default&serialization=rdfxml&queryLanguage=SPARQL + &query=SELECT+DISTINCT+*+WHERE+%7B%5B%5D+a+%3Fc%7D + &resultFormat=xml + &resourceFormat=ns&entailment=none + try { + u = new URL("http://dbtune.org:2020/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SpecificSparqlEndpoint(u, "dbtune.org", m); + }*/ + + public static SpecificSparqlEndpoint myopenlink() { + URL u = null; + HashMap<String, String> m = new HashMap<String, String>(); + m.put("default-graph-uri", "http://myopenlink.net/dataspace"); + m.put("format", "application/sparql-results.xml"); + //http://myopenlink.net:8890/sparql/?query=select+distinct+%3FConcept+where+%7B%5B%5D+a+%3FConcept%7D + try { + u = new URL("http://myopenlink.net:8890/sparql/"); + } catch (Exception e) { + e.printStackTrace(); + } + return new SpecificSparqlEndpoint(u, "myopenlink.net", m); + } + } Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2007-12-05 13:09:58 UTC (rev 328) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/PropertyNode.java 2007-12-05 16:15:59 UTC (rev 329) @@ -23,6 +23,8 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.SortedSet; +import java.util.TreeSet; import java.util.Vector; import org.dllearner.utilities.StringTuple; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |