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: <sk...@us...> - 2007-11-05 13:07:13
|
Revision: 277 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=277&view=rev Author: sknappe Date: 2007-11-05 05:07:09 -0800 (Mon, 05 Nov 2007) Log Message: ----------- changed the search funtion Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/Settings.php trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php trunk/src/dbpedia-navigator/Ajax-Test/ajax-loader.gif trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/default.css trunk/src/dbpedia-navigator/Ajax-Test/index.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/Settings.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/Settings.php 2007-11-05 13:03:14 UTC (rev 276) +++ trunk/src/dbpedia-navigator/Ajax-Test/Settings.php 2007-11-05 13:07:09 UTC (rev 277) @@ -3,6 +3,6 @@ class Settings{ public $wsdluri="http://localhost:8181/services?wsdl"; public $dbpediauri="http://dbpedia.openlinksw.com:8890/sparql"; - public $sparqlttl=40; + public $sparqlttl=120; } ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-11-05 13:03:14 UTC (rev 276) +++ trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-11-05 13:07:09 UTC (rev 277) @@ -1,12 +1,12 @@ <?php -//require_once 'pear/HTTP_Request.php'; - class SparqlConnection { private $DBPediaUrl; private $DLLearnerUri; private $client; + private $id; + private $ksID; function SparqlConnection($DBPediaUrl,$DLLearnerUri) { @@ -14,41 +14,40 @@ $this->DBPediaUrl=$DBPediaUrl; $this->DLLearnerUri=$DLLearnerUri; $this->client=new SoapClient("main.wsdl"); + $this->id=$this->client->generateID(); + $this->ksID = $this->client->addKnowledgeSource($this->id, "sparql", $this->DBPediaUrl); } function getConceptFromExamples($ttl,$posExamples,$negExamples) { - $id=$this->client->generateID(); + $this->client->applyConfigEntryInt($this->id, $this->ksID, "numberOfRecursions", 2); + $this->client->applyConfigEntryStringArray($this->id, $this->ksID, "instances", array_merge($posExamples,$negExamples)); + $this->client->applyConfigEntryInt($this->id, $this->ksID, "filterMode", 0); + $this->client->applyConfigEntryStringArray($this->id, $this->ksID, "predList", array()); + $this->client->applyConfigEntryStringArray($this->id, $this->ksID, "objList", array()); + $this->client->applyConfigEntryStringArray($this->id, $this->ksID, "classList", array()); + $this->client->applyConfigEntryString($this->id, $this->ksID, "format", "KB"); + $this->client->applyConfigEntryBoolean($this->id, $this->ksID, "dumpToFile", true); - $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); - $this->client->applyConfigEntryInt($id, $ksID, "numberOfRecursions", 2); - $this->client->applyConfigEntryStringArray($id, $ksID, "instances", array_merge($posExamples,$negExamples)); - $this->client->applyConfigEntryInt($id, $ksID, "filterMode", 0); - $this->client->applyConfigEntryStringArray($id, $ksID, "predList", array()); - $this->client->applyConfigEntryStringArray($id, $ksID, "objList", array()); - $this->client->applyConfigEntryStringArray($id, $ksID, "classList", array()); - $this->client->applyConfigEntryString($id, $ksID, "format", "KB"); - $this->client->applyConfigEntryBoolean($id, $ksID, "dumpToFile", true); + $this->client->setReasoner($this->id, "dig"); + $this->client->setLearningProblem($this->id, "posNegDefinition"); + $this->client->setPositiveExamples($this->id, $posExamples); + $this->client->setNegativeExamples($this->id, $negExamples); + $this->client->setLearningAlgorithm($this->id, "refinement"); - $this->client->setReasoner($id, "dig"); - $this->client->setLearningProblem($id, "posNegDefinition"); - $this->client->setPositiveExamples($id, $posExamples); - $this->client->setNegativeExamples($id, $negExamples); - $this->client->setLearningAlgorithm($id, "refinement"); - $start = microtime(true); - $this->client->init($id); + $this->client->init($this->id); $threaded=true; if($threaded == false) { - $concept = $this->client->learn($id); + $concept = $this->client->learn($this->id); } else { - $this->client->learnThreaded($id); + $this->client->learnThreaded($this->id); $i = 1; $sleeptime = 1; @@ -58,36 +57,23 @@ sleep($sleeptime); // see what we have learned so far - $concept=$this->client->getCurrentlyBestConcept($id); - $running=$this->client->isAlgorithmRunning($id); + $concept=$this->client->getCurrentlyBestConcept($this->id); + $running=$this->client->isAlgorithmRunning($this->id); $seconds = $i * $sleeptime; $i++; } while($seconds<$ttl&&$running); - $this->client->stop($id); + $this->client->stop($this->id); } return $concept; } function getTriples($ttl,$individual) { - $id=$this->client->generateID(); - - $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); - $this->client->applyConfigEntryInt($id, $ksID, "numberOfRecursions", 1); - $this->client->applyConfigEntryStringArray($id, $ksID, "instances", array($individual)); - $this->client->applyConfigEntryInt($id, $ksID, "filterMode", -1); - $this->client->applyConfigEntryStringArray($id, $ksID, "predList", array()); - $this->client->applyConfigEntryStringArray($id, $ksID, "objList", array()); - $this->client->applyConfigEntryStringArray($id, $ksID, "classList", array()); - $this->client->applyConfigEntryString($id, $ksID, "format", "Array"); - $this->client->applyConfigEntryBoolean($id, $ksID, "dumpToFile", false); - $this->client->applyConfigEntryBoolean($id,$ksID,"useLits",true); - - $options=array("triples"); - $this->client->startThread($id,$ksID,$options); + $options=array("triples",$individual); + $this->client->startThread($this->id,$this->ksID,$options); $i = 1; $sleeptime = 1; @@ -96,15 +82,16 @@ sleep($sleeptime); // see if algorithm is running - if (!$this->client->isThreadRunning($id,$ksID,"triples")) + if (!$this->client->isThreadRunning($this->id,$this->ksID,"triples")) { - $object=$this->client->getFromSparql($id,$ksID,"triples"); + $object=$this->client->getFromSparql($this->id,$this->ksID,"triples"); $array=$object->item; + if (count($array)==1) return $array; $ret=array(); foreach ($array as $element) { $items=preg_split("[<]",$element,-1, PREG_SPLIT_NO_EMPTY); - $ret[$items[1]]=$items[2]; + $ret[$items[0]]=$items[1]; } return $ret; } @@ -113,18 +100,14 @@ $i++; } while($seconds<$ttl); - $this->client->stopSparqlThread($id,$ksID,"triples"); + $this->client->stopSparqlThread($this->id,$this->ksID,"triples"); return array(); } function getSubjects($ttl,$label='Leipzig',$limit=5) { - $id=$this->client->generateID(); - - $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); - $options=array("subjects",$label,$limit); - $this->client->startThread($id,$ksID,$options); + $this->client->startThread($this->id,$this->ksID,$options); $i = 1; $sleeptime = 1; @@ -133,9 +116,9 @@ sleep($sleeptime); // see if algorithm is running - if (!$this->client->isThreadRunning($id,$ksID,"subjects")) + if (!$this->client->isThreadRunning($this->id,$this->ksID,"subjects")) { - $object=$this->client->getFromSparql($id,$ksID,"subjects"); + $object=$this->client->getFromSparql($this->id,$this->ksID,"subjects"); return $object->item; } @@ -143,17 +126,14 @@ $i++; } while($seconds<$ttl); - $this->client->stopSparqlThread($id,$ksID,"subjects"); + $this->client->stopSparqlThread($this->id,$this->ksID,"subjects"); return array(); } function getSubjectsFromConcept($ttl,$concept) { - $id=$this->client->generateID(); - - $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); $options=array("conceptSubjects",$concept); - $this->client->startThread($id,$ksID,$options); + $this->client->startThread($this->id,$this->ksID,$options); $i = 1; $sleeptime = 1; do { @@ -161,9 +141,9 @@ sleep($sleeptime); // see if algorithm is running - if (!$this->client->isThreadRunning($id,$ksID,"conceptSubjects")) + if (!$this->client->isThreadRunning($this->id,$this->ksID,"conceptSubjects")) { - $object=$this->client->getFromSparql($id,$ksID,"conceptSubjects"); + $object=$this->client->getFromSparql($this->id,$this->ksID,"conceptSubjects"); return $object->item; } @@ -171,10 +151,71 @@ $i++; } while($seconds<$ttl); - $this->client->stopSparqlThread($id,$ksID,"conceptSubjects"); + $this->client->stopSparqlThread($this->id,$this->ksID,"conceptSubjects"); return array(); } + /*public function testSoapTime() + { + $start = microtime(true); + $this->id=$this->client->generateID(); + $test=$this->client->debug("Test"); + $time=microtime(true)-$start; + return "Word: ".$test." got from SOAP in: ".$time; + }*/ + + public function startSearchAndShowArticle($keyword) + { + //TODO work on $keyword to get white space out + //TODO change article get function + $options=array("triples","http://dbpedia.org/resource/".$keyword); + $this->client->startThread($this->id,$this->ksID,$options); + + $options=array("subjects",$keyword,15); + $this->client->startThread($this->id,$this->ksID,$options); + } + + public function checkSearch($stop) + { + $this->client=new SoapClient("main.wsdl"); + if ($stop){ + $this->client->stopSparqlThread($this->id,$this->ksID,"subjects"); + return; + } + + // see if algorithm is running + if (!$this->client->isThreadRunning($this->id,$this->ksID,"subjects")) + { + $object=$this->client->getFromSparql($this->id,$this->ksID,"subjects"); + return $object->item; + } + return NULL; + } + + public function checkShowArticle($stop) + { + $this->client=new SoapClient("main.wsdl"); + if ($stop){ + $this->client->stopSparqlThread($this->id,$this->ksID,"triples"); + return; + } + + if (!$this->client->isThreadRunning($this->id,$this->ksID,"triples")) + { + $object=$this->client->getFromSparql($this->id,$this->ksID,"triples"); + $array=$object->item; + if (count($array)==1) return $array; + $ret=array(); + foreach ($array as $element) + { + $items=preg_split("[<]",$element,-1, PREG_SPLIT_NO_EMPTY); + $ret[$items[0]]=$items[1]; + } + return $ret; + } + return NULL; + } + public function loadWSDLfiles($wsdluri){ ini_set("soap.wsdl_cache_enabled","0"); Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax-loader.gif =================================================================== (Binary files differ) Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-11-05 13:03:14 UTC (rev 276) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-11-05 13:07:09 UTC (rev 277) @@ -1,7 +1,8 @@ <?php require_once ("xajax/xajax_core/xajax.inc.php"); +$sid = session_id(); -$xajax = new xajax("ajaxfunctions.php"); +$xajax = new xajax("ajaxfunctions.php?sid=$sid"); $xajax->register(XAJAX_FUNCTION, 'getsubjects', array( 'onResponseDelay' => 'showLoadingSubjects', 'beforeResponseProcessing' => 'hideLoadingSubjects' @@ -22,4 +23,10 @@ 'onResponseDelay' => 'showLoadingConceptSubjects', 'beforeResponseProcessing' => 'hideLoadingConceptSubjects' )); +$xajax->registerFunction('searchAndShowArticle'); +$xajax->register(XAJAX_FUNCTION, 'showThisSearchResult', array( + 'onResponseDelay' => 'showLoadingSubjects', + 'beforeResponseProcessing' => 'hideLoadingSubjects' + )); +$xajax->registerFunction('showThisArticle'); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-11-05 13:03:14 UTC (rev 276) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-11-05 13:07:09 UTC (rev 277) @@ -1,6 +1,12 @@ <?php ini_set('max_execution_time',200); +$sid = $_GET['sid']; +session_id($sid); session_start(); + +require("ajax.php"); +$xajax->processRequest(); + function getsubjects($label, $limit) { include_once("Settings.php"); @@ -10,7 +16,12 @@ $content=""; $subjects=$sc->getSubjects($settings->sparqlttl,$label,$limit); - if (count($subjects)==0) $content.="No search result found in time."; + if (count($subjects)==1) + { + if (strpos($subjects,"[Error]")===0) $content.=substr($subjects,7); + else $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subjects."');return false;\">".urldecode(substr (strrchr ($subjects, "/"), 1))."</a><br/>"; + } + else if (count($subjects)==0) $content.="No search result found in time."; else{ foreach ($subjects as $subject) { @@ -30,11 +41,16 @@ $settings=new Settings(); $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); $triples=$sc->getTriples($settings->sparqlttl,$subject); - if (count($triples)==0) $content.="Article not found."; + $content=""; + if (count($triples)==1) + { + $content.=substr($triples,7); + } + else if (count($triples)==0) $content.="Article not found."; else { $content=""; - $content.="<img src=\"".$triples['http://xmlns.com/foaf/0.1/img']."\" alt=\"Picture of ".urldecode(substr (strrchr ($subject, "/"), 1))."\" width=\"50\"/ style=\"float:left\">"; - $content.="<div>".$triples['http://dbpedia.org/property/abstract']."</div>"; + $content.="<img src=\"".$triples['http://xmlns.com/foaf/0.1/depiction']."\" alt=\"Picture of ".urldecode(substr (strrchr ($subject, "/"), 1))."\" width=\"50\"/ style=\"float:left\">"; + $content.="<div>".urldecode($triples['http://dbpedia.org/property/abstract'])."</div>"; $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; } @@ -132,7 +148,12 @@ if (isset($_SESSION['lastLearnedConcept'])) { $subjects=$sc->getSubjectsFromConcept($settings->sparqlttl,$_SESSION['lastLearnedConcept']); - if (count($subjects)==0) $content.="No examples for concept found in time."; + if (count($subjects)==1) + { + if (strpos($subjects,"[Error]")===0) $content.=substr($subjects,7); + else $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subjects."');return false;\">".urldecode(substr (strrchr ($subjects, "/"), 1))."</a><br/>"; + } + else if (count($subjects)==0) $content.="No examples for concept found in time."; else { foreach ($subjects as $subject) { @@ -147,6 +168,117 @@ return $objResponse; } -require("ajax.php"); -$xajax->processRequest(); +function searchAndShowArticle($keyword) +{ + require_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + + $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); + + $content=""; + + $sc->startSearchAndShowArticle($keyword); + $objResponse = new xajaxResponse(); + $objResponse->call('xajax_showThisArticle', urlencode(serialize($sc)),"http://dbpedia.org/resource/".$keyword); + $objResponse->call('xajax_showThisSearchResult', urlencode(serialize($sc))); + return $objResponse; +} + +function showThisSearchResult($sc) +{ + require_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + $sc=unserialize(urldecode($sc)); + $objResponse = new xajaxResponse(); + $i = 1; + $sleeptime = 1; + $searchComplete=false; + do { + if (!$searchComplete) $searchResult=$sc->checkSearch(false); + if (!is_null($searchResult)){ + $searchComplete=true; + break; + } + + $seconds = $i * $sleeptime; + $i++; + + // sleep a while + sleep($sleeptime); + } while ($seconds<$settings->sparqlttl); + + if (!$searchComplete){ + $sc->checkSearch(true); + $objResponse->assign("searchcontent","innerHtml","No search result found in time."); + } + + $content=""; + if (count($searchResult)==1) + { + if (strpos($searchResult,"[Error]")===0) $content.=substr($searchResult,7); + else $content.="<a href=\"\" onclick=\"xajax_getarticle('".$searchResult."');return false;\">".urldecode(substr (strrchr ($searchResult, "/"), 1))."</a><br/>"; + } + else if (count($searchResult)==0) $content.="No search result found in time."; + else{ + foreach ($searchResult as $result) + { + $content.="<a href=\"\" onclick=\"xajax_getarticle('".$result."');return false;\">".urldecode(substr (strrchr ($result, "/"), 1))."</a><br/>"; + } + } + + + $objResponse->assign("searchcontent", "innerHTML", $content); + return $objResponse; +} + +function showThisArticle($sc,$subject) +{ + require_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + $sc=unserialize(urldecode($sc)); + $i = 1; + $sleeptime = 1; + $showArticleComplete=false; + do { + if (!$showArticleComplete) $article=$sc->checkShowArticle(false); + if (!is_null($article)){ + $showArticleComplete=true; + break; + } + + $seconds = $i * $sleeptime; + $i++; + + // sleep a while + sleep($sleeptime); + } while ($seconds<$settings->sparqlttl); + + $content=""; + if (!$showArticleComplete){ + $sc->checkShowArticle(true); + } + + + if (count($article)==1) + { + $content.=substr($article,7); + } + else if (count($article)==0) $content.="Article not found."; + else { + $content=""; + $content.="<img src=\"".$article['http://xmlns.com/foaf/0.1/depiction']."\" alt=\"Picture of ".urldecode(substr (strrchr ($subject, "/"), 1))."\" width=\"50\"/ style=\"float:left\">"; + $content.="<div>".urldecode($article['http://dbpedia.org/property/abstract'])."</div>"; + + $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; + } + + $objResponse = new xajaxResponse(); + $objResponse->assign("articlecontent", "innerHTML", $content); + $objResponse->assign("contentbuttons", "innerHTML", $contentbuttons); + return $objResponse; +} + ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/default.css =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-11-05 13:03:14 UTC (rev 276) +++ trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-11-05 13:07:09 UTC (rev 277) @@ -327,4 +327,12 @@ 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 Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-11-05 13:03:14 UTC (rev 276) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-11-05 13:07:09 UTC (rev 277) @@ -5,15 +5,14 @@ echo "<a href='clearsession.php'>start from scratch</a>"; -require("ajax.php"); - +require("ajax.php"); -echo '<?xml version="1.0" encoding="UTF-8"?>' +echo '<?xml version="1.0" encoding="UTF-8"?>'; ?> <html> <head> <title>DL Learner</title> - <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\"/> + <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <link rel="stylesheet" href="default.css"/> <?php $xajax->printJavascript('xajax/'); ?> <script type="text/javascript"> @@ -57,26 +56,19 @@ <div id="wrapper"> <div id="leftSidebar"> -<div class="box" id="search"> +<div class="box"> <div class="boxtitle">Search</div> - <div class="boxcontent"> - <table border="0"> - <tr><tb>Search:<br/></tb></tr> - <tr><tb><input type="textfield" name="label" id="label"> <select name="limit" size="1" id="limit"> - <option>1</option> - <option selected="selected">5</option> - <option>10</option> - <option>15</option> - </select><br/></tb></tr> - <tr><tb><input type="button" value="Search" class="button" onclick="xajax_getsubjects(document.getElementById('label').value,document.getElementById('limit').value);return false;"/></tb></tr> - </table> + <div class="boxcontent" id="search"> + Search:<br/> + <input type="textfield" name="label" id="label"><br/> + <input type="button" value="Article" class="button" onclick="xajax_searchAndShowArticle(document.getElementById('label').value);return false;" /> <input type="button" value="Fulltext" class="button" onclick=""/> </div> <!-- boxcontent --> </div> <!-- box --> -<div class="box" id="search"> +<div class="box"> <div class="boxtitle">Searchresults</div> <div class="boxcontent"> - <div id="searchcontent" style="display:none"></div> + <div id="searchcontent" style="display:block"></div> <div id="loadingSubject" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> </div> <!-- box --> @@ -104,7 +96,7 @@ <div class="box"> <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Article</td><td class="right"><span id="contentbuttons"></span></td></tr></table></div> <div class="boxcontent" id="article"> - <div id="articlecontent" style="display:none"></div> + <div id="articlecontent" style="display:block"></div> <div id="loadingArticle" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> </div> <!-- box --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-11-05 13:03:22
|
Revision: 276 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=276&view=rev Author: sknappe Date: 2007-11-05 05:03:14 -0800 (Mon, 05 Nov 2007) Log Message: ----------- added some comments and changed behaviour of some functions Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java 2007-11-01 14:49:08 UTC (rev 275) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java 2007-11-05 13:03:14 UTC (rev 276) @@ -90,12 +90,12 @@ public String get(String key, String sparql){ String ret=null; try{ - SparqlCache c =readFromFile(makeFilename(key)) ; - if(c==null)return null; - if(!c.checkFreshness())return null; - if(!c.validate(sparql))return null; - - ret=c.content; + SparqlCache c =readFromFile(makeFilename(key)); + if(c==null)return null; + if(!c.checkFreshness())return null; + if(!c.validate(sparql))return null; + + ret=c.content; }catch (Exception e) {e.printStackTrace();} return ret; } Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-11-01 14:49:08 UTC (rev 275) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-11-05 13:03:14 UTC (rev 276) @@ -21,6 +21,7 @@ import java.io.File; import java.io.FileWriter; +import java.io.IOException; import java.io.StringReader; import java.net.MalformedURLException; import java.net.URI; @@ -47,8 +48,6 @@ /** * Represents a SPARQL Endpoint. - * TODO: move org.dllearner.modules.sparql to this package and - * integrate its classes * TODO: Is it necessary to create a class DBpediaSparqlEndpoint? * * @author Jens Lehmann @@ -175,29 +174,34 @@ System.out.println("SparqlModul: Collecting Ontology"); SparqlOntologyCollector oc=new SparqlOntologyCollector(Datastructures.setToArray(instances), numberOfRecursions, filterMode, Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); - String ont=oc.collectOntology(); - - if (dumpToFile){ - String filename=System.currentTimeMillis()+".nt"; - String basedir="cache"+File.separator; - try{ - if(!new File(basedir).exists()) - new File(basedir).mkdir(); - FileWriter fw=new FileWriter(new File(basedir+filename),true); - fw.write(ont); - fw.flush(); - fw.close(); - - dumpFile=(new File(basedir+filename)).toURI().toURL(); - }catch (Exception e) {e.printStackTrace();} + try + { + String ont=oc.collectOntology(); + + if (dumpToFile){ + String filename=System.currentTimeMillis()+".nt"; + String basedir="cache"+File.separator; + try{ + if(!new File(basedir).exists()) + new File(basedir).mkdir(); + + FileWriter fw=new FileWriter(new File(basedir+filename),true); + fw.write(ont); + fw.flush(); + fw.close(); + + dumpFile=(new File(basedir+filename)).toURI().toURL(); + }catch (Exception e) {e.printStackTrace();} + } + if (format.equals("KB")) { + try{ + kb=KBParser.parseKBFile(new StringReader(ont)); + } catch(Exception e) {e.printStackTrace();} + } + }catch(IOException e) { + e.printStackTrace(); } - if (format.equals("KB")) { - try{ - kb=KBParser.parseKBFile(new StringReader(ont)); - } catch(Exception e) {e.printStackTrace();} - } - System.out.println("SparqlModul: ****Finished"); } @@ -233,15 +237,24 @@ { System.out.println("SparqlModul: Collecting Subjects"); SparqlOntologyCollector oc=new SparqlOntologyCollector(url); - subjects=oc.getSubjectsFromLabel(label,limit); + try{ + subjects=oc.getSubjectsFromLabel(label,limit); + }catch (IOException e){ + subjects=new String[1]; + subjects[0]="[Error]Sparql Endpoint could not be reached."; + } System.out.println("SparqlModul: ****Finished"); } - public void calculateTriples(){ + public void calculateTriples(String subject) { System.out.println("SparqlModul: Collecting Triples"); - SparqlOntologyCollector oc=new SparqlOntologyCollector(Datastructures.setToArray(instances), numberOfRecursions, filterMode, - Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); - triples=oc.collectTriples(); + SparqlOntologyCollector oc=new SparqlOntologyCollector(url); + try{ + triples=oc.collectTriples(subject); + }catch (IOException e){ + triples=new String[1]; + triples[0]="[Error]Sparql Endpoint could not be reached."; + } System.out.println("SparqlModul: ****Finished"); } @@ -249,7 +262,12 @@ { System.out.println("SparqlModul: Collecting Subjects"); SparqlOntologyCollector oc=new SparqlOntologyCollector(url); - conceptSubjects=oc.getSubjectsFromConcept(concept); + try{ + conceptSubjects=oc.getSubjectsFromConcept(concept); + }catch (IOException e){ + conceptSubjects=new String[1]; + conceptSubjects[0]="[Error]Sparql Endpoint could not be reached."; + } System.out.println("SparqlModul: ****Finished"); } Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java 2007-11-01 14:49:08 UTC (rev 275) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java 2007-11-05 13:03:14 UTC (rev 276) @@ -26,6 +26,7 @@ * see the documentation for more help * * @author Sebastian Hellmann + * @author Sebastian Knappe * */ public class SparqlFilter { @@ -104,7 +105,7 @@ } public SparqlFilter(int mode, String[] pred, String[] obj,boolean uselits) throws Exception{ - this(mode, pred,obj); + this(mode,pred,obj); this.useLiterals=uselits; } Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-11-01 14:49:08 UTC (rev 275) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-11-05 13:03:14 UTC (rev 276) @@ -120,7 +120,7 @@ * * @return all triples in n-triple format */ - public String collectOntology(){ + public String collectOntology() throws IOException{ getRecursiveList(subjectList, numberOfRecursions); finalize(); String ret=""; @@ -130,12 +130,57 @@ return ret; } - public String[] collectTriples(){ - getRecursive(subjectList[0], 1); - return Datastructures.setToArray(triples); + public String[] collectTriples(String subject) throws IOException{ + System.out.println("Searching for Article: "+subject); + String sparql=q.makeArticleQuery(subject); + String FromCache=c.get(subject, sparql); + String xml; + // if not in cache get it from dbpedia + if(FromCache==null){ + xml=sendAndReceive(sparql); + c.put(subject, xml, sparql); + System.out.print("\n"); + } + else{ + xml=FromCache; + System.out.println("FROM CACHE"); + } + + return processArticle(xml); } - public String[] getSubjectsFromLabel(String label, int limit){ + public String[] processArticle(String xml) + { + Vector<String> vec=new Vector<String>(); + String one="<binding name=\"predicate\"><uri>"; + String two="<binding name=\"object\">"; + String end="</uri></binding>"; + String predtmp=""; + String objtmp=""; + ArrayList<String> al=new ArrayList<String>(); + while(xml.indexOf(one)!=-1){ + //get pred + xml=xml.substring(xml.indexOf(one)+one.length()); + predtmp=xml.substring(0,xml.indexOf(end)); + //getobj + xml=xml.substring(xml.indexOf(two)+two.length()); + if (xml.startsWith("<literal xml:lang=\"en\">")){ + xml=xml.substring(xml.indexOf(">")+1); + objtmp=xml.substring(0,xml.indexOf("</literal>")); + } + else if (xml.startsWith("<uri>")) objtmp=xml.substring(5,xml.indexOf(end)); + else continue; + + System.out.println("Pred: "+predtmp+" Obj: "+objtmp); + + vec.add(predtmp+"<"+objtmp); + } + + String[] ret=new String[vec.size()]; + return vec.toArray(ret); + } + + public String[] getSubjectsFromLabel(String label, int limit) throws IOException{ System.out.println("Searching for Label: "+label); String sparql=q.makeLabelQuery(label,limit); String FromCache=c.get(label, sparql); @@ -154,7 +199,7 @@ return processSubjects(xml); } - public String[] getSubjectsFromConcept(String concept) + public String[] getSubjectsFromConcept(String concept) throws IOException { System.out.println("Searching for Subjects of type: "+concept); String sparql=q.makeConceptQuery(concept); @@ -179,7 +224,7 @@ * @param subjects * @param NumberofRecursions */ - public void getRecursiveList(String[] subjects,int NumberofRecursions){ + public void getRecursiveList(String[] subjects,int NumberofRecursions) throws IOException{ for (int i = 0; i < subjects.length; i++) { getRecursive(subjects[i], NumberofRecursions); } @@ -191,36 +236,33 @@ * @param StartingSubject * @param NumberofRecursions */ - public void getRecursive(String StartingSubject,int NumberofRecursions){ + public void getRecursive(String StartingSubject,int NumberofRecursions) throws IOException{ System.out.print("SparqlModul: Depth: "+NumberofRecursions+" @ "+StartingSubject+" "); if(NumberofRecursions<=0) return; else {NumberofRecursions--;} - try{ - String sparql=q.makeQueryFilter(StartingSubject,this.sf); - // checks cache - String FromCache=c.get(StartingSubject, sparql); - String xml; - // if not in cache get it from dbpedia - if(FromCache==null){ - xml=sendAndReceive(sparql); - c.put(StartingSubject, xml, sparql); - System.out.print("\n"); - } - else{ - xml=FromCache; - System.out.println("FROM CACHE"); - } - // get new Subjects - String[] newSubjects=processResult(StartingSubject,xml); + String sparql=q.makeQueryFilter(StartingSubject,this.sf); + // checks cache + String FromCache=c.get(StartingSubject, sparql); + String xml; + // if not in cache get it from dbpedia + if(FromCache==null){ + xml=sendAndReceive(sparql); + c.put(StartingSubject, xml, sparql); + System.out.print("\n"); + } + else{ + xml=FromCache; + System.out.println("FROM CACHE"); + } + + // get new Subjects + String[] newSubjects=processResult(StartingSubject,xml); - for (int i = 0; (i < newSubjects.length)&& NumberofRecursions!=0; i++) { - getRecursive(newSubjects[i], NumberofRecursions); - } - - }catch (Exception e) {e.printStackTrace();} - + for (int i = 0; (i < newSubjects.length)&& NumberofRecursions!=0; i++) { + getRecursive(newSubjects[i], NumberofRecursions); + } } /** @@ -427,49 +469,43 @@ } } //TODO alles dbpedia-spezifische rausbekommen - private String sendAndReceive(String sparql) { + private String sendAndReceive(String sparql) throws IOException{ StringBuilder answer = new StringBuilder(); // String an Sparql-Endpoint schicken HttpURLConnection connection; - try { - connection = (HttpURLConnection) url.openConnection(); - connection.setDoOutput(true); + connection = (HttpURLConnection) url.openConnection(); + connection.setDoOutput(true); - connection.addRequestProperty("Host", "dbpedia.openlinksw.com"); - 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","ISO-8859-1,utf-8;q=0.7,*;q=0.7"); - 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"); + connection.addRequestProperty("Host", "dbpedia.openlinksw.com"); + 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); - osw.write("default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + - URLEncoder.encode(sparql, "UTF-8")+ - "&format=application%2Fsparql-results%2Bxml"); - osw.close(); + OutputStream os = connection.getOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(os); + osw.write("default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + + URLEncoder.encode(sparql, "UTF-8")+ + "&format=application%2Fsparql-results%2Bxml"); + osw.close(); - // receive answer - InputStream is = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(is); - BufferedReader br = new BufferedReader(isr); + // 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); + String line; + do { + line = br.readLine(); + if(line!=null) + answer.append(line); + } while (line != null); + + br.close(); - br.close(); - - } catch (IOException e) { - System.out.println("Communication problem with Sparql Server."); - System.exit(0); - } - return answer.toString(); } } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java 2007-11-01 14:49:08 UTC (rev 275) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java 2007-11-05 13:03:14 UTC (rev 276) @@ -24,13 +24,14 @@ * This class produces sparql queries * * @author Sebastian Hellmann + * @author Sebastian Knappe * */ public class SparqlQueryMaker { /** - * reads all the options and makes the sparql query accordingly - * @param subject + * creates a query with the specified filters for alls triples with subject + * @param subject the searched subject * @param sf special object encapsulating all options * @return sparql query */ @@ -78,15 +79,31 @@ return "&&( !regex(str(?predicate), '"+ns+"') )"; } + /** + * creates a query for subjects with the specified label + * @param label a phrase that is part of the label of a subject + * @param limit this limits the amount of results + * @return + */ public String makeLabelQuery(String label,int limit){ - return "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>\n"+ - "SELECT DISTINCT ?subject\n"+ - "WHERE { ?subject rdfs:label ?object.FILTER regex(?object,\""+label+"\"@en)}\n"+ + //TODO maybe use http://xmlns:com/foaf/0.1/page + return "SELECT DISTINCT ?subject\n"+ + "WHERE { ?subject <http://xmlns.com/foaf/0.1/page> ?object.FILTER regex(?object,\""+label+"\"@en)}\n"+ "LIMIT "+limit; } + /** + * creates a query for all subjects that are of the type concept + * @param concept the type that subjects are searched for + * @return + */ public String makeConceptQuery(String concept){ return "SELECT DISTINCT ?subject\n"+ "WHERE { ?subject a <"+concept+">}\n"; } + + public String makeArticleQuery(String subject){ + return "SELECT ?predicate,?object\n"+ + "WHERE { <"+subject+"> ?predicate ?object}\n"; + } } Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-11-01 14:49:08 UTC (rev 275) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-11-05 13:03:14 UTC (rev 276) @@ -20,6 +20,8 @@ package org.dllearner.server; import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Random; @@ -474,12 +476,13 @@ } }; } else if (method.equals("triples")){ + final String subject=options[1]; thread = new Thread() { @Override public void run() { ((SparqlEndpoint)component).setTriplesThread(this); ((SparqlEndpoint)component).setTriplesThreadRunning(true); - ((SparqlEndpoint)component).calculateTriples(); + ((SparqlEndpoint)component).calculateTriples(subject); ((SparqlEndpoint)component).setTriplesThreadRunning(false); } }; @@ -540,8 +543,8 @@ } @WebMethod - public void debug(String deb) + public String debug(String deb) { - System.out.println(deb); + return "Test"; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ton...@us...> - 2007-11-01 14:49:13
|
Revision: 275 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=275&view=rev Author: tonytacker Date: 2007-11-01 07:49:08 -0700 (Thu, 01 Nov 2007) Log Message: ----------- removed <classpathentry kind="lib" path="lib/modules/sparqlModule.jar"/> in classpath.dist Modified Paths: -------------- trunk/doc/eclipse/classpath.dist Modified: trunk/doc/eclipse/classpath.dist =================================================================== --- trunk/doc/eclipse/classpath.dist 2007-10-30 16:30:24 UTC (rev 274) +++ trunk/doc/eclipse/classpath.dist 2007-11-01 14:49:08 UTC (rev 275) @@ -12,7 +12,6 @@ <classpathentry kind="lib" path="lib/jena/iri.jar"/> <classpathentry kind="lib" path="lib/jena/jena.jar"/> <classpathentry kind="lib" path="lib/jena/xercesImpl.jar"/> - <classpathentry kind="lib" path="lib/modules/sparqlModule.jar"/> <classpathentry kind="lib" path="lib/owlapi/antlr-runtime-3.0.jar"/> <classpathentry kind="lib" path="lib/owlapi/commons-lang-2.2.jar"/> <classpathentry kind="lib" path="lib/owlapi/owlapi-api.jar"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-30 16:30:32
|
Revision: 274 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=274&view=rev Author: sknappe Date: 2007-10-30 09:30:24 -0700 (Tue, 30 Oct 2007) Log Message: ----------- All calls of the dllearner from the application are now done with threads Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/Settings.php trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/index.php trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dbpedia-navigator/Ajax-Test/Settings.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/Settings.php 2007-10-29 13:15:28 UTC (rev 273) +++ trunk/src/dbpedia-navigator/Ajax-Test/Settings.php 2007-10-30 16:30:24 UTC (rev 274) @@ -2,6 +2,7 @@ class Settings{ public $wsdluri="http://localhost:8181/services?wsdl"; - public $dbpediauri="http://dbpedia.openlinksw.com:8890/sparql"; + public $dbpediauri="http://dbpedia.openlinksw.com:8890/sparql"; + public $sparqlttl=40; } ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-29 13:15:28 UTC (rev 273) +++ trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-30 16:30:24 UTC (rev 274) @@ -16,7 +16,7 @@ $this->client=new SoapClient("main.wsdl"); } - function getConceptFromExamples($posExamples,$negExamples) + function getConceptFromExamples($ttl,$posExamples,$negExamples) { $id=$this->client->generateID(); @@ -64,13 +64,14 @@ $seconds = $i * $sleeptime; $i++; - } while($running); + } while($seconds<$ttl&&$running); + $this->client->stop($id); } return $concept; } - function getTriples($individual) + function getTriples($ttl,$individual) { $id=$this->client->generateID(); @@ -85,34 +86,93 @@ $this->client->applyConfigEntryBoolean($id, $ksID, "dumpToFile", false); $this->client->applyConfigEntryBoolean($id,$ksID,"useLits",true); - $object=$this->client->getTriples($id,$ksID); - $array=$object->item; - $ret=array(); - foreach ($array as $element) - { - $items=preg_split("[<]",$element,-1, PREG_SPLIT_NO_EMPTY); - $ret[$items[1]]=$items[2]; - } + $options=array("triples"); + $this->client->startThread($id,$ksID,$options); + $i = 1; + $sleeptime = 1; + + do { + // sleep a while + sleep($sleeptime); + + // see if algorithm is running + if (!$this->client->isThreadRunning($id,$ksID,"triples")) + { + $object=$this->client->getFromSparql($id,$ksID,"triples"); + $array=$object->item; + $ret=array(); + foreach ($array as $element) + { + $items=preg_split("[<]",$element,-1, PREG_SPLIT_NO_EMPTY); + $ret[$items[1]]=$items[2]; + } + return $ret; + } + + $seconds = $i * $sleeptime; + $i++; + } while($seconds<$ttl); - return $ret; + $this->client->stopSparqlThread($id,$ksID,"triples"); + return array(); } - function getSubjects($label='Leipzig',$limit=5) + function getSubjects($ttl,$label='Leipzig',$limit=5) { $id=$this->client->generateID(); $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); - $object=$this->client->getSubjects($id,$ksID,$label,$limit); - return $object->item; + + $options=array("subjects",$label,$limit); + $this->client->startThread($id,$ksID,$options); + $i = 1; + $sleeptime = 1; + + do { + // sleep a while + sleep($sleeptime); + + // see if algorithm is running + if (!$this->client->isThreadRunning($id,$ksID,"subjects")) + { + $object=$this->client->getFromSparql($id,$ksID,"subjects"); + return $object->item; + } + + $seconds = $i * $sleeptime; + $i++; + } while($seconds<$ttl); + + $this->client->stopSparqlThread($id,$ksID,"subjects"); + return array(); } - function getSubjectsFromConcept($concept) + function getSubjectsFromConcept($ttl,$concept) { $id=$this->client->generateID(); $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); - $object=$this->client->getSubjectsFromConcept($id,$ksID,$concept); - return $object->item; + $options=array("conceptSubjects",$concept); + $this->client->startThread($id,$ksID,$options); + $i = 1; + $sleeptime = 1; + do { + // sleep a while + sleep($sleeptime); + + // see if algorithm is running + if (!$this->client->isThreadRunning($id,$ksID,"conceptSubjects")) + { + $object=$this->client->getFromSparql($id,$ksID,"conceptSubjects"); + return $object->item; + } + + $seconds = $i * $sleeptime; + $i++; + } while($seconds<$ttl); + + $this->client->stopSparqlThread($id,$ksID,"conceptSubjects"); + return array(); } public function loadWSDLfiles($wsdluri){ Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 13:15:28 UTC (rev 273) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-30 16:30:24 UTC (rev 274) @@ -1,4 +1,5 @@ <?php +ini_set('max_execution_time',200); session_start(); function getsubjects($label, $limit) { @@ -8,10 +9,13 @@ $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); $content=""; - $subjects=$sc->getSubjects($label,$limit); - foreach ($subjects as $subject) - { - $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode(substr (strrchr ($subject, "/"), 1))."</a><br/>"; + $subjects=$sc->getSubjects($settings->sparqlttl,$label,$limit); + if (count($subjects)==0) $content.="No search result found in time."; + else{ + foreach ($subjects as $subject) + { + $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode(substr (strrchr ($subject, "/"), 1))."</a><br/>"; + } } $objResponse = new xajaxResponse(); @@ -25,13 +29,16 @@ require_once("SparqlConnection.php"); $settings=new Settings(); $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); - $triples=$sc->getTriples($subject); - $content=""; - $content.="<img src=\"".$triples['http://xmlns.com/foaf/0.1/img']."\" alt=\"Picture of ".urldecode(substr (strrchr ($subject, "/"), 1))."\" width=\"50\"/ style=\"float:left\">"; - $content.="<div>".$triples['http://dbpedia.org/property/abstract']."</div>"; + $triples=$sc->getTriples($settings->sparqlttl,$subject); + if (count($triples)==0) $content.="Article not found."; + else { + $content=""; + $content.="<img src=\"".$triples['http://xmlns.com/foaf/0.1/img']."\" alt=\"Picture of ".urldecode(substr (strrchr ($subject, "/"), 1))."\" width=\"50\"/ style=\"float:left\">"; + $content.="<div>".$triples['http://dbpedia.org/property/abstract']."</div>"; + + $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; + } - $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; - $objResponse = new xajaxResponse(); $objResponse->assign("articlecontent", "innerHTML", $content); $objResponse->assign("contentbuttons", "innerHTML", $contentbuttons); @@ -103,9 +110,9 @@ $settings=new Settings(); $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); - $concept=$sc->getConceptFromExamples($_SESSION['positive'],$_SESSION['negative']); + $concept=$sc->getConceptFromExamples($settings->sparqlttl,$_SESSION['positive'],$_SESSION['negative']); $_SESSION['lastLearnedConcept']=$concept; - $concept=urldecode(substr (strrchr ($concept, "/"), 1)); + if (strlen(substr (strrchr ($concept, "/"), 1))>0) $concept=urldecode(substr (strrchr ($concept, "/"), 1)); } else $concept="You must choose at least one<br/> positive and one negative example."; @@ -124,10 +131,13 @@ $content=""; if (isset($_SESSION['lastLearnedConcept'])) { - $subjects=$sc->getSubjectsFromConcept($_SESSION['lastLearnedConcept']); - foreach ($subjects as $subject) - { - $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode(substr (strrchr ($subject, "/"), 1))."</a><br/>"; + $subjects=$sc->getSubjectsFromConcept($settings->sparqlttl,$_SESSION['lastLearnedConcept']); + if (count($subjects)==0) $content.="No examples for concept found in time."; + else { + foreach ($subjects as $subject) + { + $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode(substr (strrchr ($subject, "/"), 1))."</a><br/>"; + } } } else $content.="No concept to get Subjects from."; Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-29 13:15:28 UTC (rev 273) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-30 16:30:24 UTC (rev 274) @@ -1,12 +1,13 @@ <?php +ini_set('error_reporting',E_ALL); +ini_set('max_execution_time',200); session_start(); echo "<a href='clearsession.php'>start from scratch</a>"; require("ajax.php"); - ini_set('error_reporting',E_ALL); - ini_set('max_execution_time',200); + echo '<?xml version="1.0" encoding="UTF-8"?>' ?> <html> @@ -14,7 +15,7 @@ <title>DL Learner</title> <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\"/> <link rel="stylesheet" href="default.css"/> - <?php $xajax->printJavascript('xajax/'); ?> + <?php $xajax->printJavascript('xajax/'); ?> <script type="text/javascript"> showLoadingSubjects = function() { xajax.$('loadingSubject').style.display='block'; @@ -49,7 +50,7 @@ xajax.$('conceptsubjectcontent').style.display = 'block'; } </script> - </head> + </head> <body> <h3>DBPedia-Navigator-Test</h3> <div id="layer" style="display:none"><div id="layerContent" style="display:none"></div></div> @@ -59,7 +60,6 @@ <div class="box" id="search"> <div class="boxtitle">Search</div> <div class="boxcontent"> - <form action="index.php" method="GET" id="searchForm"> <table border="0"> <tr><tb>Search:<br/></tb></tr> <tr><tb><input type="textfield" name="label" id="label"> <select name="limit" size="1" id="limit"> @@ -68,9 +68,8 @@ <option>10</option> <option>15</option> </select><br/></tb></tr> - <tr><tb><input type="button" value="Search" class="button" onclick="xajax_getsubjects(document.getElementById('label').value,document.getElementById('limit').value);return false;" /></tb></tr> + <tr><tb><input type="button" value="Search" class="button" onclick="xajax_getsubjects(document.getElementById('label').value,document.getElementById('limit').value);return false;"/></tb></tr> </table> - </form> </div> <!-- boxcontent --> </div> <!-- box --> Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-10-29 13:15:28 UTC (rev 273) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-10-30 16:30:24 UTC (rev 274) @@ -69,6 +69,39 @@ private boolean dumpToFile; private boolean useLits=false; + /** + * Holds the results of the calculateSubjects method + */ + private String[] subjects; + + /** + * Holds the results of the calculateTriples method + */ + private String[] triples; + + /** + * Holds the results of the calculateConceptSubjects method + */ + private String[] conceptSubjects; + + /** + * if a method is running this becomes true + */ + private boolean subjectThreadRunning=false; + + private boolean triplesThreadRunning=false; + + private boolean conceptThreadRunning=false; + + /** + * the Thread that is running a method + */ + private Thread subjectThread; + + private Thread triplesThread; + + private Thread conceptThread; + //received ontology as array, used if format=Array(an element of the //array consists of the subject, predicate and object separated by '<' private String[] ontArray; @@ -196,30 +229,96 @@ return ontArray; } - public String[] getSubjects(String label,int limit) + public void calculateSubjects(String label,int limit) { System.out.println("SparqlModul: Collecting Subjects"); SparqlOntologyCollector oc=new SparqlOntologyCollector(url); - String[] ret=oc.getSubjectsFromLabel(label,limit); + subjects=oc.getSubjectsFromLabel(label,limit); System.out.println("SparqlModul: ****Finished"); - return ret; } - public String[] getTriples(){ + public void calculateTriples(){ System.out.println("SparqlModul: Collecting Triples"); SparqlOntologyCollector oc=new SparqlOntologyCollector(Datastructures.setToArray(instances), numberOfRecursions, filterMode, Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); - String[] ret=oc.collectTriples(); + triples=oc.collectTriples(); System.out.println("SparqlModul: ****Finished"); - return ret; } - public String[] getSubjectsFromConcept(String concept) + public void calculateConceptSubjects(String concept) { System.out.println("SparqlModul: Collecting Subjects"); SparqlOntologyCollector oc=new SparqlOntologyCollector(url); - String[] ret=oc.getSubjectsFromConcept(concept); + conceptSubjects=oc.getSubjectsFromConcept(concept); System.out.println("SparqlModul: ****Finished"); - return ret; } + + public boolean subjectThreadIsRunning() + { + return subjectThreadRunning; + } + + public void setSubjectThreadRunning(boolean bool) + { + subjectThreadRunning=bool; + } + + public boolean triplesThreadIsRunning() + { + return triplesThreadRunning; + } + + public void setTriplesThreadRunning(boolean bool) + { + triplesThreadRunning=bool; + } + + public boolean conceptThreadIsRunning() + { + return conceptThreadRunning; + } + + public void setConceptThreadRunning(boolean bool) + { + conceptThreadRunning=bool; + } + + public String[] getSubjects() + { + return subjects; + } + + public Thread getSubjectThread() { + return subjectThread; + } + + public void setSubjectThread(Thread subjectThread) { + this.subjectThread = subjectThread; + } + + public Thread getTriplesThread() { + return triplesThread; + } + + public void setTriplesThread(Thread triplesThread) { + this.triplesThread = triplesThread; + } + + public Thread getConceptThread() { + return conceptThread; + } + + public void setConceptThread(Thread conceptThread) { + this.conceptThread = conceptThread; + } + + public String[] getTriples() + { + return triples; + } + + public String[] getConceptSubjects() + { + return conceptSubjects; + } } Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-29 13:15:28 UTC (rev 273) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-30 16:30:24 UTC (rev 274) @@ -449,27 +449,99 @@ return Datastructures.sortedSet2StringListIndividuals(individuals); } + //////////////////////////////////// + // sparql modul methods // + //////////////////////////////////// + + @WebMethod - public String[] getTriples(int id, int componentID) throws ClientNotKnownException + public void startThread(int id, int componentID, String[] options) throws ClientNotKnownException { - ClientState state=getState(id); + final ClientState state = getState(id); + final Component component = state.getComponent(componentID); + String method=options[0]; + Thread thread=null; + if (method.equals("subjects")){ + final String label=options[1]; + final int limit=Integer.parseInt(options[2]); + thread = new Thread() { + @Override + public void run() { + ((SparqlEndpoint)component).setSubjectThread(this); + ((SparqlEndpoint)component).setSubjectThreadRunning(true); + ((SparqlEndpoint)component).calculateSubjects(label,limit); + ((SparqlEndpoint)component).setSubjectThreadRunning(false); + } + }; + } else if (method.equals("triples")){ + thread = new Thread() { + @Override + public void run() { + ((SparqlEndpoint)component).setTriplesThread(this); + ((SparqlEndpoint)component).setTriplesThreadRunning(true); + ((SparqlEndpoint)component).calculateTriples(); + ((SparqlEndpoint)component).setTriplesThreadRunning(false); + } + }; + } else if (method.equals("conceptSubjects")){ + final String concept=options[1]; + thread = new Thread() { + @Override + public void run() { + ((SparqlEndpoint)component).setConceptThread(this); + ((SparqlEndpoint)component).setConceptThreadRunning(true); + ((SparqlEndpoint)component).calculateConceptSubjects(concept); + ((SparqlEndpoint)component).setConceptThreadRunning(false); + } + }; + } + thread.start(); + } + + @WebMethod + public boolean isThreadRunning(int id, int componentID, String option) throws ClientNotKnownException + { + ClientState state = getState(id); Component component = state.getComponent(componentID); - return ((SparqlEndpoint)component).getTriples(); + if (option.equals("subjects")) + return ((SparqlEndpoint)component).subjectThreadIsRunning(); + else if (option.equals("triples")) + return ((SparqlEndpoint)component).triplesThreadIsRunning(); + else if (option.equals("conceptSubjects")) + return ((SparqlEndpoint)component).conceptThreadIsRunning(); + return true; } @WebMethod - public String[] getSubjects(int id, int componentID, String label, int limit) throws ClientNotKnownException + public void stopSparqlThread(int id, int componentID, String option) throws ClientNotKnownException { - ClientState state=getState(id); + ClientState state = getState(id); Component component = state.getComponent(componentID); - return ((SparqlEndpoint)component).getSubjects(label,limit); + if (option.equals("subjects")) + ((SparqlEndpoint)component).getSubjectThread().stop(); + else if (option.equals("triples")) + ((SparqlEndpoint)component).getTriplesThread().stop(); + else if (option.equals("conceptSubjects")) + ((SparqlEndpoint)component).getConceptThread().stop(); } @WebMethod - public String[] getSubjectsFromConcept(int id, int componentID, String concept) throws ClientNotKnownException + public String[] getFromSparql(int id, int componentID, String option) throws ClientNotKnownException { - ClientState state=getState(id); + ClientState state = getState(id); Component component = state.getComponent(componentID); - return ((SparqlEndpoint)component).getSubjectsFromConcept(concept); + if (option.equals("subjects")) + return ((SparqlEndpoint)component).getSubjects(); + else if (option.equals("triples")) + return ((SparqlEndpoint)component).getTriples(); + else if (option.equals("conceptSubjects")) + return ((SparqlEndpoint)component).getConceptSubjects(); + return new String[0]; } + + @WebMethod + public void debug(String deb) + { + System.out.println(deb); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 13:15:31
|
Revision: 273 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=273&view=rev Author: sknappe Date: 2007-10-29 06:15:28 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Changed view of article Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-29 12:37:30 UTC (rev 272) +++ trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-29 13:15:28 UTC (rev 273) @@ -91,7 +91,7 @@ foreach ($array as $element) { $items=preg_split("[<]",$element,-1, PREG_SPLIT_NO_EMPTY); - $ret[]=$items; + $ret[$items[1]]=$items[2]; } return $ret; Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 12:37:30 UTC (rev 272) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 13:15:28 UTC (rev 273) @@ -27,9 +27,8 @@ $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); $triples=$sc->getTriples($subject); $content=""; - foreach ($triples as $triple){ - $content.="Subject: ".urldecode($triple[0])."<br/>Predicate: ".urldecode($triple[1])."<br/>Object: ".urldecode($triple[2])."<br/><br/>\n"; - } + $content.="<img src=\"".$triples['http://xmlns.com/foaf/0.1/img']."\" alt=\"Picture of ".urldecode(substr (strrchr ($subject, "/"), 1))."\" width=\"50\"/ style=\"float:left\">"; + $content.="<div>".$triples['http://dbpedia.org/property/abstract']."</div>"; $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 12:37:34
|
Revision: 272 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=272&view=rev Author: sknappe Date: 2007-10-29 05:37:30 -0700 (Mon, 29 Oct 2007) Log Message: ----------- shortened displayed uris (deleted http://dbpedia.org/resource/) Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 12:27:27 UTC (rev 271) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 12:37:30 UTC (rev 272) @@ -51,7 +51,7 @@ $_SESSION['positive']=$array; } - $content=$subject."<br/>"; + $content=urldecode(substr (strrchr ($subject, "/"), 1))."<br/>"; $objResponse = new xajaxResponse(); $objResponse->append("Positives", "innerHTML", $content); @@ -70,7 +70,7 @@ $_SESSION['negative']=$array; } - $content=$subject."<br/>"; + $content=urldecode(substr (strrchr ($subject, "/"), 1))."<br/>"; $objResponse = new xajaxResponse(); $objResponse->append("Negatives", "innerHTML", $content); @@ -97,7 +97,6 @@ function learnConcept() { - $concept=""; if (isset($_SESSION['positive'])&&isset($_SESSION['negative'])) { require_once("Settings.php"); @@ -105,10 +104,11 @@ $settings=new Settings(); $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); - $concept.=$sc->getConceptFromExamples($_SESSION['positive'],$_SESSION['negative']); + $concept=$sc->getConceptFromExamples($_SESSION['positive'],$_SESSION['negative']); $_SESSION['lastLearnedConcept']=$concept; + $concept=urldecode(substr (strrchr ($concept, "/"), 1)); } - else $concept.="You must choose at least one<br/> positive and one negative example."; + else $concept="You must choose at least one<br/> positive and one negative example."; $objResponse = new xajaxResponse(); $objResponse->assign("conceptcontent", "innerHTML", $concept); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 12:27:29
|
Revision: 271 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=271&view=rev Author: sknappe Date: 2007-10-29 05:27:27 -0700 (Mon, 29 Oct 2007) Log Message: ----------- added function to show subjects according to the last learned concept Added Paths: ----------- trunk/src/dbpedia-navigator/Ajax-Test/clearsession.php Added: trunk/src/dbpedia-navigator/Ajax-Test/clearsession.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/clearsession.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/clearsession.php 2007-10-29 12:27:27 UTC (rev 271) @@ -0,0 +1,12 @@ +<?php +session_start(); + +session_unset(); +ob_start(); +require_once 'pear/HTTP_Request.php'; +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"); +?> \ 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: <sk...@us...> - 2007-10-29 12:26:53
|
Revision: 270 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=270&view=rev Author: sknappe Date: 2007-10-29 05:26:51 -0700 (Mon, 29 Oct 2007) Log Message: ----------- added function to show subjects according to the last learned concept Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-10-29 12:26:01 UTC (rev 269) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-10-29 12:26:51 UTC (rev 270) @@ -213,4 +213,13 @@ System.out.println("SparqlModul: ****Finished"); return ret; } + + public String[] getSubjectsFromConcept(String concept) + { + System.out.println("SparqlModul: Collecting Subjects"); + SparqlOntologyCollector oc=new SparqlOntologyCollector(url); + String[] ret=oc.getSubjectsFromConcept(concept); + System.out.println("SparqlModul: ****Finished"); + return ret; + } } Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-10-29 12:26:01 UTC (rev 269) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-10-29 12:26:51 UTC (rev 270) @@ -154,6 +154,26 @@ return processSubjects(xml); } + public String[] getSubjectsFromConcept(String concept) + { + System.out.println("Searching for Subjects of type: "+concept); + String sparql=q.makeConceptQuery(concept); + String FromCache=c.get(concept, sparql); + String xml; + // if not in cache get it from dbpedia + if(FromCache==null){ + xml=sendAndReceive(sparql); + c.put(concept, xml, sparql); + System.out.print("\n"); + } + else{ + xml=FromCache; + System.out.println("FROM CACHE"); + } + + return processSubjects(xml); + } + /** * calls getRecursive for each subject in list * @param subjects Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java 2007-10-29 12:26:01 UTC (rev 269) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlQueryMaker.java 2007-10-29 12:26:51 UTC (rev 270) @@ -84,4 +84,9 @@ "WHERE { ?subject rdfs:label ?object.FILTER regex(?object,\""+label+"\"@en)}\n"+ "LIMIT "+limit; } + + public String makeConceptQuery(String concept){ + return "SELECT DISTINCT ?subject\n"+ + "WHERE { ?subject a <"+concept+">}\n"; + } } Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-29 12:26:01 UTC (rev 269) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-29 12:26:51 UTC (rev 270) @@ -464,4 +464,12 @@ Component component = state.getComponent(componentID); return ((SparqlEndpoint)component).getSubjects(label,limit); } + + @WebMethod + public String[] getSubjectsFromConcept(int id, int componentID, String concept) throws ClientNotKnownException + { + ClientState state=getState(id); + Component component = state.getComponent(componentID); + return ((SparqlEndpoint)component).getSubjectsFromConcept(concept); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 12:26:05
|
Revision: 269 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=269&view=rev Author: sknappe Date: 2007-10-29 05:26:01 -0700 (Mon, 29 Oct 2007) Log Message: ----------- added function to show subjects according to the last learned concept Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/index.php Added Paths: ----------- trunk/src/dbpedia-navigator/Ajax-Test/pear/ trunk/src/dbpedia-navigator/Ajax-Test/pear/HTTP_Request.php trunk/src/dbpedia-navigator/Ajax-Test/pear/PEAR.php trunk/src/dbpedia-navigator/Ajax-Test/pear/Socket.php trunk/src/dbpedia-navigator/Ajax-Test/pear/URL.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-29 10:38:02 UTC (rev 268) +++ trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-29 12:26:01 UTC (rev 269) @@ -10,11 +10,9 @@ function SparqlConnection($DBPediaUrl,$DLLearnerUri) { - ini_set("soap.wsdl_cache_enabled","0"); ini_set('default_socket_timeout',200); $this->DBPediaUrl=$DBPediaUrl; $this->DLLearnerUri=$DLLearnerUri; - //$this->loadWSDLfiles($DLLearnerUri); $this->client=new SoapClient("main.wsdl"); } @@ -108,14 +106,25 @@ return $object->item; } - private function loadWSDLfiles($wsdluri){ - $main=$this->getwsdl($wsdluri); - $other=$this->getOtherWSDL($main); - $newMain=$this->changeWSDL($main); - $this->writeToFile("main.wsdl",$newMain); + function getSubjectsFromConcept($concept) + { + $id=$this->client->generateID(); + + $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); + $object=$this->client->getSubjectsFromConcept($id,$ksID,$concept); + return $object->item; + } + + public function loadWSDLfiles($wsdluri){ + ini_set("soap.wsdl_cache_enabled","0"); + + $main=SparqlConnection::getwsdl($wsdluri); + $other=SparqlConnection::getOtherWSDL($main); + $newMain=SparqlConnection::changeWSDL($main); + SparqlConnection::writeToFile("main.wsdl",$newMain); $x=0; foreach ($other as $o){ - $this->writeToFile("def".($x++).".xsd",$this->getwsdl($o)); + SparqlConnection::writeToFile("def".($x++).".xsd",SparqlConnection::getwsdl($o)); } } Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-29 10:38:02 UTC (rev 268) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-29 12:26:01 UTC (rev 269) @@ -18,4 +18,8 @@ 'onResponseDelay' => 'showLoadingConcept', 'beforeResponseProcessing' => 'hideLoadingConcept' )); +$xajax->register(XAJAX_FUNCTION, 'getSubjectsFromConcept', array( + 'onResponseDelay' => 'showLoadingConceptSubjects', + 'beforeResponseProcessing' => 'hideLoadingConceptSubjects' + )); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 10:38:02 UTC (rev 268) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 12:26:01 UTC (rev 269) @@ -11,7 +11,7 @@ $subjects=$sc->getSubjects($label,$limit); foreach ($subjects as $subject) { - $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode($subject)."</a><br/>"; + $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode(substr (strrchr ($subject, "/"), 1))."</a><br/>"; } $objResponse = new xajaxResponse(); @@ -106,6 +106,7 @@ $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); $concept.=$sc->getConceptFromExamples($_SESSION['positive'],$_SESSION['negative']); + $_SESSION['lastLearnedConcept']=$concept; } else $concept.="You must choose at least one<br/> positive and one negative example."; @@ -114,6 +115,29 @@ return $objResponse; } +function getSubjectsFromConcept() +{ + require_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); + + $content=""; + if (isset($_SESSION['lastLearnedConcept'])) + { + $subjects=$sc->getSubjectsFromConcept($_SESSION['lastLearnedConcept']); + foreach ($subjects as $subject) + { + $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode(substr (strrchr ($subject, "/"), 1))."</a><br/>"; + } + } + else $content.="No concept to get Subjects from."; + + $objResponse = new xajaxResponse(); + $objResponse->assign("conceptsubjectcontent", "innerHTML", $content); + return $objResponse; +} + require("ajax.php"); $xajax->processRequest(); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-29 10:38:02 UTC (rev 268) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-29 12:26:01 UTC (rev 269) @@ -1,10 +1,8 @@ <?php session_start(); -unset($_SESSION['positive']); -unset($_SESSION['negative']); +echo "<a href='clearsession.php'>start from scratch</a>"; - require("ajax.php"); ini_set('error_reporting',E_ALL); ini_set('max_execution_time',200); @@ -41,6 +39,14 @@ hideLoadingConcept = function() { xajax.$('loadingConcept').style.display = 'none'; xajax.$('conceptcontent').style.display = 'block'; + }; + showLoadingConceptSubjects = function() { + xajax.$('loadingConceptSubjects').style.display='block'; + xajax.$('conceptsubjectcontent').style.display = 'none'; + }; + hideLoadingConceptSubjects = function() { + xajax.$('loadingConceptSubjects').style.display = 'none'; + xajax.$('conceptsubjectcontent').style.display = 'block'; } </script> </head> @@ -84,6 +90,14 @@ </div> <!-- boxcontent --> </div> <!-- box --> +<div class="box" id="conceptSubjects"> + <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Subjects From Concept</td><td class="right"><input type="button" value="Show" class="button" onclick="xajax_getSubjectsFromConcept();return false;" /></td></tr></table></div> + <div class="boxcontent"> + <div id="conceptsubjectcontent" style="display:none"></div> + <div id="loadingConceptSubjects" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> + </div> <!-- boxcontent --> +</div> <!-- box --> + <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div><!-- END leftSidebar --> Added: trunk/src/dbpedia-navigator/Ajax-Test/pear/HTTP_Request.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/pear/HTTP_Request.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/pear/HTTP_Request.php 2007-10-29 12:26:01 UTC (rev 269) @@ -0,0 +1,2760 @@ +<?php + +// +-----------------------------------------------------------------------+ +// | Copyright (c) 2002-2003, Richard Heyes | +// | All rights reserved. | +// | | +// | Redistribution and use in source and binary forms, with or without | +// | modification, are permitted provided that the following conditions | +// | are met: | +// | | +// | o Redistributions of source code must retain the above copyright | +// | notice, this list of conditions and the following disclaimer. | +// | o Redistributions in binary form must reproduce the above copyright | +// | notice, this list of conditions and the following disclaimer in the | +// | documentation and/or other materials provided with the distribution.| +// | o The names of the authors may not be used to endorse or promote | +// | products derived from this software without specific prior written | +// | permission. | +// | | +// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | +// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | +// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | +// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | + +// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | + +// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | + +// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | + +// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | + +// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | + +// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | + +// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | + +// | | + +// +-----------------------------------------------------------------------+ + +// | Author: Richard Heyes <ri...@ph...> | + +// +-----------------------------------------------------------------------+ + +/* +// $Id: Request.php,v 1.1 2006/12/12 16:42:26 punkrock Exp $ +// +// HTTP_Request Class +// +// Simple example, (Fetches yahoo.com and displays it): +// +// $a = &new HTTP_Request('http://localhost:8081'); +// $a->sendRequest(); +// echo $a->getResponseBody(); +*/ + + + +require_once 'PEAR.php'; + +require_once 'Socket.php'; + +require_once 'URL.php'; + + + +define('HTTP_REQUEST_METHOD_GET', 'GET', true); + +define('HTTP_REQUEST_METHOD_HEAD', 'HEAD', true); + +define('HTTP_REQUEST_METHOD_POST', 'POST', true); + +define('HTTP_REQUEST_METHOD_PUT', 'PUT', true); + +define('HTTP_REQUEST_METHOD_DELETE', 'DELETE', true); + +define('HTTP_REQUEST_METHOD_OPTIONS', 'OPTIONS', true); + +define('HTTP_REQUEST_METHOD_TRACE', 'TRACE', true); + + + +define('HTTP_REQUEST_HTTP_VER_1_0', '1.0', true); + +define('HTTP_REQUEST_HTTP_VER_1_1', '1.1', true); + + + +class HTTP_Request { + + + + /** + + * Instance of Net_URL + + * @var object Net_URL + + */ + + var $_url; + + + + /** + + * Type of request + + * @var string + + */ + + var $_method; + + + + /** + + * HTTP Version + + * @var string + + */ + + var $_http; + + + + /** + + * Request headers + + * @var array + + */ + + var $_requestHeaders; + + + + /** + + * Basic Auth Username + + * @var string + + */ + + var $_user; + + + + /** + + * Basic Auth Password + + * @var string + + */ + + var $_pass; + + + + /** + + * Socket object + + * @var object Net_Socket + + */ + + var $_sock; + + + + /** + + * Proxy server + + * @var string + + */ + + var $_proxy_host; + + + + /** + + * Proxy port + + * @var integer + + */ + + var $_proxy_port; + + + + /** + + * Proxy username + + * @var string + + */ + + var $_proxy_user; + + + + /** + + * Proxy password + + * @var string + + */ + + var $_proxy_pass; + + + + /** + + * Post data + + * @var array + + */ + + var $_postData; + + + + /** + + * Request body + + * @var string + + */ + + var $_body; + + + + /** + + * A list of methods that MUST NOT have a request body, per RFC 2616 + + * @var array + + */ + + var $_bodyDisallowed = array('TRACE'); + + + + /** + + * Files to post + + * @var array + + */ + + var $_postFiles = array(); + + + + /** + + * Connection timeout. + + * @var float + + */ + + var $_timeout; + + + + /** + + * HTTP_Response object + + * @var object HTTP_Response + + */ + + var $_response; + + + + /** + + * Whether to allow redirects + + * @var boolean + + */ + + var $_allowRedirects; + + + + /** + + * Maximum redirects allowed + + * @var integer + + */ + + var $_maxRedirects; + + + + /** + + * Current number of redirects + + * @var integer + + */ + + var $_redirects; + + + + /** + + * Whether to append brackets [] to array variables + + * @var bool + + */ + + var $_useBrackets = true; + + + + /** + + * Attached listeners + + * @var array + + */ + + var $_listeners = array(); + + + + /** + + * Whether to save response body in response object property + + * @var bool + + */ + + var $_saveBody = true; + + + + /** + + * Timeout for reading from socket (array(seconds, microseconds)) + + * @var array + + */ + + var $_readTimeout = null; + + + + /** + + * Options to pass to Net_Socket::connect. See stream_context_create + + * @var array + + */ + + var $_socketOptions = null; + + + + /** + + * Constructor + + * + + * Sets up the object + + * @param string The url to fetch/access + + * @param array Associative array of parameters which can have the following keys: + + * <ul> + + * <li>method - Method to use, GET, POST etc (string)</li> + + * <li>http - HTTP Version to use, 1.0 or 1.1 (string)</li> + + * <li>user - Basic Auth username (string)</li> + + * <li>pass - Basic Auth password (string)</li> + + * <li>proxy_host - Proxy server host (string)</li> + + * <li>proxy_port - Proxy server port (integer)</li> + + * <li>proxy_user - Proxy auth username (string)</li> + + * <li>proxy_pass - Proxy auth password (string)</li> + + * <li>timeout - Connection timeout in seconds (float)</li> + + * <li>allowRedirects - Whether to follow redirects or not (bool)</li> + + * <li>maxRedirects - Max number of redirects to follow (integer)</li> + + * <li>useBrackets - Whether to append [] to array variable names (bool)</li> + + * <li>saveBody - Whether to save response body in response object property (bool)</li> + + * <li>readTimeout - Timeout for reading / writing data over the socket (array (seconds, microseconds))</li> + + * <li>socketOptions - Options to pass to Net_Socket object (array)</li> + + * </ul> + + * @access public + + */ + + function HTTP_Request($url = '', $params = array()) + + { + + $this->_method = HTTP_REQUEST_METHOD_GET; + + $this->_http = HTTP_REQUEST_HTTP_VER_1_1; + + $this->_requestHeaders = array(); + + $this->_postData = array(); + + $this->_body = null; + + + + $this->_user = null; + + $this->_pass = null; + + + + $this->_proxy_host = null; + + $this->_proxy_port = null; + + $this->_proxy_user = null; + + $this->_proxy_pass = null; + + + + $this->_allowRedirects = false; + + $this->_maxRedirects = 3; + + $this->_redirects = 0; + + + + $this->_timeout = null; + + $this->_response = null; + + + + foreach ($params as $key => $value) { + + $this->{'_' . $key} = $value; + + } + + + + if (!empty($url)) { + + $this->setURL($url); + + } + + + + // Default useragent + + $this->addHeader('User-Agent', 'PEAR HTTP_Request class ( http://pear.php.net/ )'); + + + + // We don't do keep-alives by default + + $this->addHeader('Connection', 'close'); + + + + // Basic authentication + + if (!empty($this->_user)) { + + $this->addHeader('Authorization', 'Basic ' . base64_encode($this->_user . ':' . $this->_pass)); + + } + + + + // Proxy authentication (see bug #5913) + + if (!empty($this->_proxy_user)) { + + $this->addHeader('Proxy-Authorization', 'Basic ' . base64_encode($this->_proxy_user . ':' . $this->_proxy_pass)); + + } + + + + // Use gzip encoding if possible + + // Avoid gzip encoding if using multibyte functions (see #1781) + + if (HTTP_REQUEST_HTTP_VER_1_1 == $this->_http && extension_loaded('zlib') && + + 0 == (2 & ini_get('mbstring.func_overload'))) { + + + + $this->addHeader('Accept-Encoding', 'gzip'); + + } + + } + + + + /** + + * Generates a Host header for HTTP/1.1 requests + + * + + * @access private + + * @return string + + */ + + function _generateHostHeader() + + { + + if ($this->_url->port != 80 AND strcasecmp($this->_url->protocol, 'http') == 0) { + + $host = $this->_url->host . ':' . $this->_url->port; + + + + } elseif ($this->_url->port != 443 AND strcasecmp($this->_url->protocol, 'https') == 0) { + + $host = $this->_url->host . ':' . $this->_url->port; + + + + } elseif ($this->_url->port == 443 AND strcasecmp($this->_url->protocol, 'https') == 0 AND strpos($this->_url->url, ':443') !== false) { + + $host = $this->_url->host . ':' . $this->_url->port; + + + + } else { + + $host = $this->_url->host; + + } + + + + return $host; + + } + + + + /** + + * Resets the object to its initial state (DEPRECATED). + + * Takes the same parameters as the constructor. + + * + + * @param string $url The url to be requested + + * @param array $params Associative array of parameters + + * (see constructor for details) + + * @access public + + * @deprecated deprecated since 1.2, call the constructor if this is necessary + + */ + + function reset($url, $params = array()) + + { + + $this->HTTP_Request($url, $params); + + } + + + + /** + + * Sets the URL to be requested + + * + + * @param string The url to be requested + + * @access public + + */ + + function setURL($url) + + { + + $this->_url = &new Net_URL($url, $this->_useBrackets); + + + + if (!empty($this->_url->user) || !empty($this->_url->pass)) { + + $this->setBasicAuth($this->_url->user, $this->_url->pass); + + } + + + + if (HTTP_REQUEST_HTTP_VER_1_1 == $this->_http) { + + $this->addHeader('Host', $this->_generateHostHeader()); + + } + + + + // set '/' instead of empty path rather than check later (see bug #8662) + + if (empty($this->_url->path)) { + + $this->_url->path = '/'; + + } + + } + + + + /** + + * Returns the current request URL + + * + + * @return string Current request URL + + * @access public + + */ + + function getUrl($url) + + { + + return empty($this->_url)? '': $this->_url->getUrl(); + + } + + + + /** + + * Sets a proxy to be used + + * + + * @param string Proxy host + + * @param int Proxy port + + * @param string Proxy username + + * @param string Proxy password + + * @access public + + */ + + function setProxy($host, $port = 8080, $user = null, $pass = null) + + { + + $this->_proxy_host = $host; + + $this->_proxy_port = $port; + + $this->_proxy_user = $user; + + $this->_proxy_pass = $pass; + + + + if (!empty($user)) { + + $this->addHeader('Proxy-Authorization', 'Basic ' . base64_encode($user . ':' . $pass)); + + } + + } + + + + /** + + * Sets basic authentication parameters + + * + + * @param string Username + + * @param string Password + + */ + + function setBasicAuth($user, $pass) + + { + + $this->_user = $user; + + $this->_pass = $pass; + + + + $this->addHeader('Authorization', 'Basic ' . base64_encode($user . ':' . $pass)); + + } + + + + /** + + * Sets the method to be used, GET, POST etc. + + * + + * @param string Method to use. Use the defined constants for this + + * @access public + + */ + + function setMethod($method) + + { + + $this->_method = $method; + + } + + + + /** + + * Sets the HTTP version to use, 1.0 or 1.1 + + * + + * @param string Version to use. Use the defined constants for this + + * @access public + + */ + + function setHttpVer($http) + + { + + $this->_http = $http; + + } + + + + /** + + * Adds a request header + + * + + * @param string Header name + + * @param string Header value + + * @access public + + */ + + function addHeader($name, $value) + + { + + $this->_requestHeaders[strtolower($name)] = $value; + + } + + + + /** + + * Removes a request header + + * + + * @param string Header name to remove + + * @access public + + */ + + function removeHeader($name) + + { + + if (isset($this->_requestHeaders[strtolower($name)])) { + + unset($this->_requestHeaders[strtolower($name)]); + + } + + } + + + + /** + + * Adds a querystring parameter + + * + + * @param string Querystring parameter name + + * @param string Querystring parameter value + + * @param bool Whether the value is already urlencoded or not, default = not + + * @access public + + */ + + function addQueryString($name, $value, $preencoded = false) + + { + + $this->_url->addQueryString($name, $value, $preencoded); + + } + + + + /** + + * Sets the querystring to literally what you supply + + * + + * @param string The querystring data. Should be of the format foo=bar&x=y etc + + * @param bool Whether data is already urlencoded or not, default = already encoded + + * @access public + + */ + + function addRawQueryString($querystring, $preencoded = true) + + { + + $this->_url->addRawQueryString($querystring, $preencoded); + + } + + + + /** + + * Adds postdata items + + * + + * @param string Post data name + + * @param string Post data value + + * @param bool Whether data is already urlencoded or not, default = not + + * @access public + + */ + + function addPostData($name, $value, $preencoded = false) + + { + + if ($preencoded) { + + $this->_postData[$name] = $value; + + } else { + + $this->_postData[$name] = $this->_arrayMapRecursive('urlencode', $value); + + } + + } + + + + /** + + * Recursively applies the callback function to the value + + * + + * @param mixed Callback function + + * @param mixed Value to process + + * @access private + + * @return mixed Processed value + + */ + + function _arrayMapRecursive($callback, $value) + + { + + if (!is_array($value)) { + + return call_user_func($callback, $value); + + } else { + + $map = array(); + + foreach ($value as $k => $v) { + + $map[$k] = $this->_arrayMapRecursive($callback, $v); + + } + + return $map; + + } + + } + + + + /** + + * Adds a file to upload + + * + + * This also changes content-type to 'multipart/form-data' for proper upload + + * + + * @access public + + * @param string name of file-upload field + + * @param mixed file name(s) + + * @param mixed content-type(s) of file(s) being uploaded + + * @return bool true on success + + * @throws PEAR_Error + + */ + + function addFile($inputName, $fileName, $contentType = 'application/octet-stream') + + { + + if (!is_array($fileName) && !is_readable($fileName)) { + + return PEAR::raiseError("File '{$fileName}' is not readable"); + + } elseif (is_array($fileName)) { + + foreach ($fileName as $name) { + + if (!is_readable($name)) { + + return PEAR::raiseError("File '{$name}' is not readable"); + + } + + } + + } + + $this->addHeader('Content-Type', 'multipart/form-data'); + + $this->_postFiles[$inputName] = array( + + 'name' => $fileName, + + 'type' => $contentType + + ); + + return true; + + } + + + + /** + + * Adds raw postdata (DEPRECATED) + + * + + * @param string The data + + * @param bool Whether data is preencoded or not, default = already encoded + + * @access public + + * @deprecated deprecated since 1.3.0, method setBody() should be used instead + + */ + + function addRawPostData($postdata, $preencoded = true) + + { + + $this->_body = $preencoded ? $postdata : urlencode($postdata); + + } + + + + /** + + * Sets the request body (for POST, PUT and similar requests) + + * + + * @param string Request body + + * @access public + + */ + + function setBody($body) + + { + + $this->_body = $body; + + } + + + + /** + + * Clears any postdata that has been added (DEPRECATED). + + * + + * Useful for multiple request scenarios. + + * + + * @access public + + * @deprecated deprecated since 1.2 + + */ + + function clearPostData() + + { + + $this->_postData = null; + + } + + + + /** + + * Appends a cookie to "Cookie:" header + + * + + * @param string $name cookie name + + * @param string $value cookie value + + * @access public + + */ + + function addCookie($name, $value) + + { + + $cookies = isset($this->_requestHeaders['cookie']) ? $this->_requestHeaders['cookie']. '; ' : ''; + + $this->addHeader('Cookie', $cookies . $name . '=' . $value); + + } + + + + /** + + * Clears any cookies that have been added (DEPRECATED). + + * + + * Useful for multiple request scenarios + + * + + * @access public + + * @deprecated deprecated since 1.2 + + */ + + function clearCookies() + + { + + $this->removeHeader('Cookie'); + + } + + + + /** + + * Sends the request + + * + + * @access public + + * @param bool Whether to store response body in Response object property, + + * set this to false if downloading a LARGE file and using a Listener + + * @return mixed PEAR error on error, true otherwise + + */ + + function sendRequest($saveBody = true){ + + if (!is_a($this->_url, 'Net_URL')) { + + return PEAR::raiseError('No URL given.'); + + } + + + + $host = isset($this->_proxy_host) ? $this->_proxy_host : $this->_url->host; + + $port = isset($this->_proxy_port) ? $this->_proxy_port : $this->_url->port; + + + + // 4.3.0 supports SSL connections using OpenSSL. The function test determines + + // we running on at least 4.3.0 + + if (strcasecmp($this->_url->protocol, 'https') == 0 AND function_exists('file_get_contents') AND extension_loaded('openssl')) { + + if (isset($this->_proxy_host)) { + + return PEAR::raiseError('HTTPS proxies are not supported.'); + + } + + $host = 'ssl://' . $host; + + } + + + + // magic quotes may fuck up file uploads and chunked response processing + + $magicQuotes = ini_get('magic_quotes_runtime'); + + ini_set('magic_quotes_runtime', false); + + + + // RFC 2068, section 19.7.1: A client MUST NOT send the Keep-Alive + + // connection token to a proxy server... + + if (isset($this->_proxy_host) && !empty($this->_requestHeaders['connection']) && + + 'Keep-Alive' == $this->_requestHeaders['connection']) + + { + + $this->removeHeader('connection'); + + } + + + + $keepAlive = (HTTP_REQUEST_HTTP_VER_1_1 == $this->_http && empty($this->_requestHeaders['connection'])) || + + (!empty($this->_requestHeaders['connection']) && 'Keep-Alive' == $this->_requestHeaders['connection']); + + $sockets = &PEAR::getStaticProperty('HTTP_Request', 'sockets'); + + $sockKey = $host . ':' . $port; + + unset($this->_sock); + + + + // There is a connected socket in the "static" property? + + if ($keepAlive && !empty($sockets[$sockKey]) && + + !empty($sockets[$sockKey]->fp)) + + { + + $this->_sock =& $sockets[$sockKey]; + + $err = null; + + } else { + + $this->_notify('connect'); + + $this->_sock =& new Net_Socket(); + + $err = $this->_sock->connect($host, $port, null, $this->_timeout, $this->_socketOptions); + + } + + PEAR::isError($err) or $err = $this->_sock->write($this->_buildRequest()); + + + + if (!PEAR::isError($err)) { + + if (!empty($this->_readTimeout)) { + + $this->_sock->setTimeout($this->_readTimeout[0], $this->_readTimeout[1]); + + } + + + + $this->_notify('sentRequest'); + + + + // Read the response + + $this->_response = &new HTTP_Response($this->_sock, $this->_listeners); + + $err = $this->_response->process( + + $this->_saveBody && $saveBody, + + HTTP_REQUEST_METHOD_HEAD != $this->_method + + ); + + + + if ($keepAlive) { + + $keepAlive = (isset($this->_response->_headers['content-length']) + + || (isset($this->_response->_headers['transfer-encoding']) + + && strtolower($this->_response->_headers['transfer-encoding']) == 'chunked')); + + if ($keepAlive) { + + if (isset($this->_response->_headers['connection'])) { + + $keepAlive = strtolower($this->_response->_headers['connection']) == 'keep-alive'; + + } else { + + $keepAlive = 'HTTP/'.HTTP_REQUEST_HTTP_VER_1_1 == $this->_response->_protocol; + + } + + } + + } + + } + + + + ini_set('magic_quotes_runtime', $magicQuotes); + + + + if (PEAR::isError($err)) { + + return $err; + + } + + + + if (!$keepAlive) { + + $this->disconnect(); + + // Store the connected socket in "static" property + + } elseif (empty($sockets[$sockKey]) || empty($sockets[$sockKey]->fp)) { + + $sockets[$sockKey] =& $this->_sock; + + } + + + + // Check for redirection + + if ( $this->_allowRedirects + + AND $this->_redirects <= $this->_maxRedirects + + AND $this->getResponseCode() > 300 + + AND $this->getResponseCode() < 399 + + AND !empty($this->_response->_headers['location'])) { + + + + + + $redirect = $this->_response->_headers['location']; + + + + // Absolute URL + + if (preg_match('/^https?:\/\//i', $redirect)) { + + $this->_url = &new Net_URL($redirect); + + $this->addHeader('Host', $this->_generateHostHeader()); + + // Absolute path + + } elseif ($redirect{0} == '/') { + + $this->_url->path = $redirect; + + + + // Relative path + + } elseif (substr($redirect, 0, 3) == '../' OR substr($redirect, 0, 2) == './') { + + if (substr($this->_url->path, -1) == '/') { + + $redirect = $this->_url->path . $redirect; + + } else { + + $redirect = dirname($this->_url->path) . '/' . $redirect; + + } + + $redirect = Net_URL::resolvePath($redirect); + + $this->_url->path = $redirect; + + + + // Filename, no path + + } else { + + if (substr($this->_url->path, -1) == '/') { + + $redirect = $this->_url->path . $redirect; + + } else { + + $redirect = dirname($this->_url->path) . '/' . $redirect; + + } + + $this->_url->path = $redirect; + + } + + + + $this->_redirects++; + + return $this->sendRequest($saveBody); + + + + // Too many redirects + + } elseif ($this->_allowRedirects AND $this->_redirects > $this->_maxRedirects) { + + return PEAR::raiseError('Too many redirects'); + + } + + + + return true; + + } + + + + /** + + * Disconnect the socket, if connected. Only useful if using Keep-Alive. + + * + + * @access public + + */ + + function disconnect() + + { + + if (!empty($this->_sock) && !empty($this->_sock->fp)) { + + $this->_notify('disconnect'); + + $this->_sock->disconnect(); + + } + + } + + + + /** + + * Returns the response code + + * + + * @access public + + * @return mixed Response code, false if not set + + */ + + function getResponseCode() + + { + + return isset($this->_response->_code) ? $this->_response->_code : false; + + } + + + + /** + + * Returns either the named header or all if no name given + + * + + * @access public + + * @param string The header name to return, do not set to get all headers + + * @return mixed either the value of $headername (false if header is not present) + + * or an array of all headers + + */ + + function getResponseHeader($headername = null) + + { + + if (!isset($headername)) { + + return isset($this->_response->_headers)? $this->_response->_headers: array(); + + } else { + + $headername = strtolower($headername); + + return isset($this->_response->_headers[$headername]) ? $this->_response->_headers[$headername] : false; + + } + + } + + + + /** + + * Returns the body of the response + + * + + * @access public + + * @return mixed response body, false if not set + + */ + + function getResponseBody() + + { + + return isset($this->_response->_body) ? $this->_response->_body : false; + + } + + + + /** + + * Returns cookies set in response + + * + + * @access public + + * @return mixed array of response cookies, false if none are present + + */ + + function getResponseCookies() + + { + + return isset($this->_response->_cookies) ? $this->_response->_cookies : false; + + } + + + + /** + + * Builds the request string + + * + + * @access private + + * @return string The request string + + */ + + function _buildRequest() + + { + + $separator = ini_get('arg_separator.output'); + + ini_set('arg_separator.output', '&'); + + $querystring = ($querystring = $this->_url->getQueryString()) ? '?' . $querystring : ''; + + ini_set('arg_separator.output', $separator); + + + + $host = isset($this->_proxy_host) ? $this->_url->protocol . '://' . $this->_url->host : ''; + + $port = (isset($this->_proxy_host) AND $this->_url->port != 80) ? ':' . $this->_url->port : ''; + + $path = $this->_url->path . $querystring; + + $url = $host . $port . $path; + + + + $request = $this->_method . ' ' . $url . ' HTTP/' . $this->_http . "\r\n"; + + + + if (in_array($this->_method, $this->_bodyDisallowed) || + + (empty($this->_body) && (HTTP_REQUEST_METHOD_POST != $this->_method || + + (empty($this->_postData) && empty($this->_postFiles))))) + + { + + $this->removeHeader('Content-Type'); + + } else { + + if (empty($this->_requestHeaders['content-type'])) { + + // Add default content-type + + $this->addHeader('Content-Type', 'application/x-www-form-urlencoded'); + + } elseif ('multipart/form-data' == $this->_requestHeaders['content-type']) { + + $boundary = 'HTTP_Request_' . md5(uniqid('request') . microtime()); + + $this->addHeader('Content-Type', 'multipart/form-data; boundary=' . $boundary); + + } + + } + + + + // Request Headers + + if (!empty($this->_requestHeaders)) { + + foreach ($this->_requestHeaders as $name => $value) { + + $canonicalName = implode('-', array_map('ucfirst', explode('-', $name))); + + $request .= $canonicalName . ': ' . $value . "\r\n"; + + } + + } + + + + // No post data or wrong method, so simply add a final CRLF + + if (in_array($this->_method, $this->_bodyDisallowed) || + + (HTTP_REQUEST_METHOD_POST != $this->_method && empty($this->_body))) { + + + + $request .= "\r\n"; + + + + // Post data if it's an array + + } elseif (HTTP_REQUEST_METHOD_POST == $this->_method && + + (!empty($this->_postData) || !empty($this->_postFiles))) { + + + + // "normal" POST request + + if (!isset($boundary)) { + + $postdata = implode('&', array_map( + + create_function('$a', 'return $a[0] . \'=\' . $a[1];'), + + $this->_flattenArray('', $this->_postData) + + )); + + + + // multipart request, probably with file uploads + + } else { + + $postdata = ''; + + if (!empty($this->_postData)) { + + $flatData = $this->_flattenArray('', $this->_postData); + + foreach ($flatData as $item) { + + $postdata .= '--' . $boundary . "\r\n"; + + $postdata .= 'Content-Disposition: form-data; name="' . $item[0] . '"'; + + $postdata .= "\r\n\r\n" . urldecode($item[1]) . "\r\n"; + + } + + } + + foreach ($this->_postFiles as $name => $value) { + + if (is_array($value['name'])) { + + $varname = $name . ($this->_useBrackets? '[]': ''); + + } else { + + $varname = $name; + + $value['name'] = array($value['name']); + + } + + foreach ($value['name'] as $key => $filename) { + + $fp = fopen($filename, 'r'); + + $data = fread($fp, filesize($filename)); + + fclose($fp); + + $basename = basename($filename); + + $type = is_array($value['type'])? @$value['type'][$key]: $value['type']; + + + + $postdata .= '--' . $boundary . "\r\n"; + + $postdata .= 'Content-Disposition: form-data; name="' . $varname . '"; filename="' . $basename . '"'; + + $postdata .= "\r\nContent-Type: " . $type; + + $postdata .= "\r\n\r\n" . $data . "\r\n"; + + } + + } + + $postdata .= '--' . $boundary . "--\r\n"; + + } + + $request .= 'Content-Length: ' . strlen($postdata) . "\r\n\r\n"; + + $request .= $postdata; + + + + // Explicitly set request body + + } elseif (!empty($this->_body)) { + + + + $request .= 'Content-Length: ' . strlen($this->_body) . "\r\n\r\n"; + + $request .= $this->_body; + + } + + + + return $request; + + } + + + + /** + + * Helper function to change the (probably multidimensional) associative array + + * into the simple one. + + * + + * @param string name for item + + * @param mixed item's values + + * @return array array with the following items: array('item name', 'item value'); + + */ + + function _flattenArray($name, $values) + + { + + if (!is_array($values)) { + + return array(array($name, $values)); + + } else { + + $ret = array(); + + foreach ($values as $k => $v) { + + if (empty($name)) { + + $newName = $k; + + } elseif ($this->_useBrackets) { + + $newName = $name . '[' . $k . ']'; + + } else { + + $newName = $name; + + } + + $ret = array_merge($ret, $this->_flattenArray($newName, $v)); + + } + + return $ret; + + } + + } + + + + + + /** + + * Adds a Listener to the list of listeners that are notified of + + * the object's events + + * + + * @param object HTTP_Request_Listener instance to attach + + * @return boolean whether the listener was successfully attached + + * @access public + + */ + + function attach(&$listener) + + { + + if (!is_a($listener, 'HTTP_Request_Listener')) { + + return false; + + } + + $this->_listeners[$listener->getId()] =& $listener; + + return true; + + } + + + + + + /** + + * Removes a Listener from the list of listeners + + * + + * @param object HTTP_Request_Listener instance to detach + + * @return boolean whether the listener was successfully detached + + * @access public + + */ + + function detach(&$listener) + + { + + if (!is_a($listener, 'HTTP_Request_Listener') || + + !isset($this->_listeners[$listener->getId()])) { + + return false; + + } + + unset($this->_listeners[$listener->getId()]); + + return true; + + } + + + + + + /** + + * Notifies all registered listeners of an event. + + * + + * Events sent by HTTP_Request object + + * - 'connect': on connection to server + + * - 'sentRequest': after the request was sent + + * - 'disconnect': on disconnection from server + + * + + * Events sent by HTTP_Response object + + * - 'gotHeaders': after receiving response headers (headers are passed in $data) + + * - 'tick': on receiving a part of response body (the part is passed in $data) + + * - 'gzTick': on receiving a gzip-encoded part of response body (ditto) + + * - 'gotBody': after receiving the response body (passes the decoded body in $data if it was gzipped) + + * + + * @param string Event name + + * @param mixed Additional data + + * @access private + + */ + + function _notify($event, $data = null) + + { + + foreach (array_keys($this->_listeners) as $id) { + + $this->_listeners[$id]->update($this, $event, $data); + + } + + } + +} + + + + + +/** + +* Response class to complement the Request class + +*/ + +class HTTP_Response + +{ + + /** + + * Socket object + + * @var object + + */ + + var $_sock; + + + + /** + + * Protocol + + * @var string + + */ + + var $_protocol; + + + + /** + + * Return code + + * @var string + + */ + + var $_code; + + + + /** + + * Response headers + + * @var array + + */ + + var $_headers; + + + + /** + + * Cookies set in response + + * @var array + + */ + + var $_cookies; + + + + /** + + * Response body + + * @var string + + */ + + var $_body = ''; + + + + /** + + * Used by _readChunked(): remaining length of the current chunk + + * @var string + + */ + + var $_chunkLength = 0; + + + + /** + + * Attached listeners + + * @var array + + */ + + var $_listeners = array(); + + + + /** + + * Bytes left to read from message-body + + * @var null|int + + */ + + var $_toRead; + + + + /** + + * Constructor + + * + + * @param object Net_Socket socket to read the response from + + * @param array listeners attached to request + + * @return mixed PEAR Error on error, true otherwise + + */ + + function HTTP_Response(&$sock, &$listeners) + + { + + $this->_sock =& $sock; + + $this->_listeners =& $listeners; + + } + + + + + + /** + + * Processes a HTTP response + + * + + * This extracts response code, headers, cookies and decodes body if it + + * was encoded in some way + + * + + * @access public + + * @param bool Whether to store response body in object property, set + + * this to false if downloading a LARGE file and using a Listener. + + * This is assumed to be true if body is gzip-encoded. + + * @param bool Whether the response can actually have a message-body. + + * Will be set to false for HEAD requests. + + * @throws PEAR_Error + + * @return mixed true on success, PEAR_Error in case of malformed response + + */ + + function process($saveBody = true, $canHaveBody = true) + + { + + do { + + $line = $this->_sock->readLine(); + + if (sscanf($line, 'HTTP/%s %s', $http_version, $returncode) != 2) { + + return PEAR::raiseError('Malformed response.'); + + } else { + + $this->_protocol = 'HTTP/' . $http_version; + + $this->_code = intval($returncode); + + } + + while ('' !== ($header = $this->_sock->readLine())) { + + $this->_processHeader($header); + + } + + } while (100 == $this->_code); + + + + $this->_notify('gotHeaders', $this->_headers); + + + + // RFC 2616, section 4.4: + + // 1. Any response message which "MUST NOT" include a message-body ... + + // is always terminated by the first empty line after the header fields + + // 3. ... If a message is received with both a + + // Transfer-Encoding header field and a Content-Length header field, + + // the latter MUST be ignored. + + $canHaveBody = $canHaveBody && $this->_code >= 200 && + + $this->_code != 204 && $this->_code != 304; + + + + // If response body is present, read it and decode + + $chunked = isset($this->_headers['transfer-encoding']) && ('chunked' == $this->_headers['transfer-encoding']); + + $gzipped = isset($this->_headers['content-encoding']) && ('gzip' == $this->_headers['content-encoding']); + + $hasBody = false; + + if ($canHaveBody && ($chunked || !isset($this->_headers['content-length']) || + + 0 != $this->_headers['content-length'])) + + { + + if ($chunked || !isset($this->_headers['content-length'])) { + + $this->_toRead = null; + + } else { + + $this->_toRead = $this->_headers['content-length']; + + } + + while (!$this->_sock->eof() && (is_null($this->_toRead) || 0 < $this->_toRead)) { + + if ($chunked) { + + $data = $this->_readChunked(); + + } elseif (is_null($this->_toRead)) { + + $data = $this->_sock->read(4096); + + } else { + + $data = $this->_sock->read(min(4096, $this->_toRead)); + + $this->_toRead -= strlen($data); + + } + + if ('' == $data) { + + break; + + } else { + + $hasBody = true; + + if ($saveBody || $gzipped) { + + $this->_body .= $data; + + } + + $this->_notify($gzipped? 'gzTick': 'tick', $data); + + } + + } + + } + + + + if ($hasBody) { + + // Uncompress the body if needed + + if ($gzipped) { + + $body = $this->_decodeGzip($this->_body); + + if (PEAR::isError($body)) { + + return $body; + + } + + $this->_body = $body; + + $this->_notify('gotBody', $this->_body); + + } else { + + $this->_notify('gotBody'); + + } + + } + + return true; + + } + + + + + + /** + + * Processes the response header + + * + + * @access private + + * @param string HTTP header + + */ + + function _processHeader($header) + + { + + if (false === strpos($header, ':')) { + + return; + + } + + list($headername, $headervalue) = explode(':', $header, 2); + + $headername = strtolower($headername); + + $headervalue = ltrim($headervalue); + + + + if ('set-cookie' != $headername) { + + if (isset($this->_headers[$headername])) { + + $this->_headers[$headername] .= ',' . $headervalue; + + } else { + + $this->_headers[$headername] = $headervalue; + + } + + } else { + + $this->_parseCookie($headervalue); + + } + + } + + + + + + /** + + * Parse a Set-Cookie header to fill $_cookies array + + * + + * @access private + + * @param string value of Set-Cookie header + + */ + + function _parseCookie($headervalue) + + { + + $cookie = array( + + 'expires' => null, + + 'domain' => null, + + 'path' => null, + + 'secure' => false + + ); + + + + // Only a name=value pair + + if (!strpos($headervalue, ';')) { + + $pos = strpos($headervalue, '='); + + $cookie['name'] = trim(substr($headervalue, 0, $pos)); + + $cookie['value'] = trim(substr($headervalue, $pos + 1)); + + + + // Some optional parameters are supplied + + } else { + + $elements = explode(';', $headervalue); + + $pos = strpos($elements[0], '='); + + $cookie['name'] = trim(substr($elements[0], 0, $pos)); + + $cookie['value'] = trim(substr($elements[0], $pos + 1)); + + + + for ($i = 1; $i < count($elements); $i++) { + + if (false === strpos($elements[$i], '=')) { + + $elName = trim($elements[$i]); + + $elValue = null; + + } else { + + list ($elName, $elValue) = array_map('trim', explode('=', $elements[$i])); + + } + + $elName = strtolower($elName); + + if ('secure' == $elName) { + + $cookie['secure'] = true; + + } elseif ('expires' == $elName) { + + $cookie['expires'] = str_replace('"', '', $elValue); + + } elseif ('path' == $elName || 'domain' == $elName) { + + $cookie[$elName] = urldecode($elValue); + + } else { + + $cookie[$elName] = $elValue; + + } + + } + + } + + $this->_cookies[] = $cookie; + + } + + + + + + /** + + * Read a part of response body encoded with chunked Transfer-Encoding + + * + + * @access private + + * @return string + + */ + + function _readChunked() + + { + + // at start of the next chunk? + + if (0 == $this->_chunkLength) { + + $line = $this->_sock->readLine(); + + if (preg_match('/^([0-9a-f]+)/i', $line, $matches)) { + + $this->_chunkLength = hexdec($matches[1]); + + // Chunk with zero length indicates the end + + if (0 == $this->_chunkLength) { + + $this->_sock->readLine(); // make this an eof() + + return ''; + + } + + } else { + + return ''; + + } + + } + + $data = $this->_sock->read($this->_chunkLength); + + $this->_chunkLength -= strlen($data); + + if (0 == $this->_chunkLength) { + + $this->_sock->readLine(); // Trailing CRLF + + } + + return $data; + + } + + + + + + /** + + * Notifies all registered listeners of an event. + + * + + * @param string Event name + + * @param mixed Additional data + + * @access private + + * @see HTTP_Request::_notify() + + */ + + function _notify($event, $data = null) + + { + + foreach (array_keys($this->_listeners) as $id) { + + $this->_listeners[$id]->update($this, $event, $data); + + } + + } + + + + + + /** + + * Decodes the message-body encoded by gzip + + * + + * The real decoding work is done by gzinflate() built-in function, this + + * method only parses the header and checks data for compliance with + + * RFC 1952 + + * + + * @access private + + * @param string gzip-encoded data + + * @return string decoded data + + */ + + function _decodeGzip($data) + + { + + $length = strlen($data); + + // If it doesn't look like gzip-encoded data, don't bother + + if (18 > $length || strcmp(substr($data, 0, 2), "\x1f\x8b")) { + + return $data; + + } + + $method = ord(substr($data, 2, 1)); + + if (8 != $method) { + + return PEAR::raiseError('_decodeGzip(): unknown compression method'); + + } + + $flags = ord(substr($data, 3, 1)); + + if ($flags & 224) { + + return PEAR::raiseError('_decodeGzip(): reserved bits are set'); + + } + + + + // header is 10 bytes minimum. may be longer, though. + + $headerLength = 10; + + // extra fields, need to skip 'em + + if ($flags & 4) { + + if ($length - $headerLength - 2 < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $extraLength = unpack('v', substr($data, 10, 2)); + + if ($length - $headerLength - 2 - $extraLength[1] < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $headerLength += $extraLength[1] + 2; + + } + + // file name, need to skip that + + if ($flags & 8) { + + if ($length - $headerLength - 1 < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $filenameLength = strpos(substr($data, $headerLength), chr(0)); + + if (false === $filenameLength || $length - $headerLength - $filenameLength - 1 < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $headerLength += $filenameLength + 1; + + } + + // comment, need to skip that also + + if ($flags & 16) { + + if ($length - $headerLength - 1 < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $commentLength = strpos(substr($data, $headerLength), chr(0)); + + if (false === $commentLength || $length - $headerLength - $commentLength - 1 < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $headerLength += $commentLength + 1; + + } + + // have a CRC for header. let's check + + if ($flags & 1) { + + if ($length - $headerLength - 2 < 8) { + + return PEAR::raiseError('_decodeGzip(): data too short'); + + } + + $crcReal = 0xffff & crc32(substr($data, 0, $headerLength)); + + $crcStored = unpack('v', substr($data, $headerLength, 2)); + + if ($crcReal != $crcStored[1]) { + + return PEAR::raiseError('_decodeGzip(): header CRC check failed'); + + } + + $headerLength += 2; + + } + + // unpacked data CRC and size at the end of encoded data + + $tmp = unpack('V2', substr($data, -8)); + + $dataCrc = $tmp[1]; + + $dataSize = $tmp[2]; + + + + // finally, call the gzinflate() function + + $unpacked = @gzinflate(substr($data, $headerLength, -8), $dataSize); + + if (false === $unpacked) { + + return PEAR::raiseError('_decodeGzip(): gzinflate() call failed'); + + } elseif ($dataSize != strlen($unpacked)) { + + return PEAR::raiseError('_decodeGzip(): data size check failed'); + + } elseif ($dataCrc != crc32($unpacked)) { + + return PEAR::raiseError('_decodeGzip(): data CRC check failed'); + + } + + return $unpacked; + + } + +} // End class HTTP_Response + +?> + Added: trunk/src/dbpedia-navigator/Ajax-Test/pear/PEAR.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/pear/PEAR.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/pear/PEAR.php 2007-10-29 12:26:01 UTC (rev 269) @@ -0,0 +1,1108 @@ +<?php +/** + * PEAR, the PHP Extension and Application Repository + * + * PEAR class and PEAR_Error class + * + * PHP versions 4 and 5 + * + * LICENSE: This source file is subject to version 3.0 of the PHP license + * that is available through the world-wide-web at the following URI: + * http://www.php.net/license/3_0.txt. If you did not receive a copy of + * the PHP License and are unable to obtain it through the web, please + * send a note to li...@ph... so we can mail you a copy immediately. + * + * @category pear + * @package PEAR + * @author Sterling Hughes <ste...@ph...> + * @author Stig Bakken <ss...@ph...> + * @author Tomas V.V.Cox <co...@id...> + * @author Greg Beaver <ce...@ph...> + * @copyright 1997-2006 The PHP Group + * @license http://www.php.net/license/3_0.txt PHP License 3.0 + * @version CVS: $Id: PEAR.php,v 1.101 2006/04/25 02:41:03 cellog Exp $ + * @link http://pear.php.net/package/PEAR + * @since File available since Release 0.1 + */ + +/**#@+ + * ERROR constants + */ +define('PEAR_ERROR_RETURN', 1); +define('PEAR_ERROR_PRINT', 2); +define('PEAR_ERROR_TRIGGER', 4); +define('PEAR_ERROR_DIE', 8); +define('PEAR_ERROR_CALLBACK', 16); +/** + * WARNING: obsolete + * @deprecated + */ +define('PEAR_ERROR_EXCEPTION', 32); +/**#@-*/ +define('PEAR_ZE2', (function_exists('version_compare') && + version_compare(zend_version(), "2-dev", "ge"))); + +if (substr(PHP_OS, 0, 3) == 'WIN') { + define('OS_WINDOWS', true); + define('OS_UNIX', false); + define('PEAR_OS', 'Windows'); +} else { + define('OS_WINDOWS', false); + define('OS_UNIX', true); + define('PEAR_OS', 'Unix'); // blatant assumption +} + +// instant backwards compatibility +if (!defined('PATH_SEPARATOR')) { + if (OS_WINDOWS) { + define('PATH_SEPARATOR', ';'); + } else { + define('PATH_SEPARATOR', ':'); + } +} + +$GLOBALS['_PEAR_default_error_mode'] = PEAR_ERROR_RETURN; +$GLOBALS['_PEAR_default_error_options'] = E_USER_NOTICE; +$GLOBALS['_PEAR_destructor_object_list'] = array(); +$GLOBALS['_PEAR_shutdown_funcs'] = array(); +$GLOBALS['_PEAR_error_handler_stack'] = array(); + +@ini_set('track_errors', true); + +/** + * Base class for other PEAR classes. Provides rudimentary + * emulation of destructors. + * + * If you want a destructor in your class, inherit PEAR and make a + * destructor method called _yourclassname (same name as the + * constructor, but with a "_" prefix). Also, in your constructor you + * have to call the PEAR constructor: $this->PEAR();. + * The destructor method will be called without parameters. Note that + * at in some SAPI implementations (such as Apache), any output during + * the request shutdown (in which destructors are called) seems to be + * discarded. If you need to get any debug information from your + * destructor, use error_log(), syslog() or something similar. + * + * IMPORTANT! To use the emulated destructors you need to create the + * objects by reference: $obj =& new PEAR_child; + * + * @category pear + * @package PEAR + * @author Stig Bakken <ss...@ph...> + * @author Tomas V.V. Cox <co...@id...> + * @author Greg Beaver <ce...@ph...> + * @copyright 1997-2006 The PHP Gro... [truncated message content] |
From: <sk...@us...> - 2007-10-29 10:38:05
|
Revision: 268 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=268&view=rev Author: sknappe Date: 2007-10-29 03:38:02 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Modified Sparql Classes to work with all functions of ajax version of dbpedia-navigator Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-29 10:36:50 UTC (rev 267) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-29 10:38:02 UTC (rev 268) @@ -454,8 +454,7 @@ { ClientState state=getState(id); Component component = state.getComponent(componentID); - component.init(); - return ((SparqlEndpoint)component).getOntArray(); + return ((SparqlEndpoint)component).getTriples(); } @WebMethod This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 10:36:53
|
Revision: 267 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=267&view=rev Author: sknappe Date: 2007-10-29 03:36:50 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Modified Sparql Classes to work with all functions of ajax version of dbpedia-navigator Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-10-29 10:36:36 UTC (rev 266) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlOntologyCollector.java 2007-10-29 10:36:50 UTC (rev 267) @@ -33,13 +33,16 @@ import java.util.Iterator; import java.util.Vector; +import org.dllearner.utilities.Datastructures; + /** * This class collects the ontology from dbpedia, * everything is saved in hashsets, so the doublettes are taken care of * * * @author Sebastian Hellmann + * @author Sebastian Knappe * */ public class SparqlOntologyCollector { @@ -56,9 +59,7 @@ HashSet<String> instances; HashSet<String> triples; String format; - static final char value[]={13,10}; - static final String cut=new String(value); - + // some namespaces String subclass="http://www.w3.org/2000/01/rdf-schema#subClassOf"; String type="http://www.w3.org/1999/02/22-rdf-syntax-ns#type"; @@ -72,7 +73,7 @@ "http://dbpedia.org/resource/Category:", "http://dbpedia.org/resource/Template:", "http://www.w3.org/2004/02/skos/core", - "http://dbpedia.org/class/"}; //TODO FEHLER hier fehlt yago + "http://dbpedia.org/class/"}; /** @@ -105,6 +106,14 @@ }catch (Exception e) {e.printStackTrace();} } + + public SparqlOntologyCollector(URL url) + { + this.q=new SparqlQueryMaker(); + this.c=new SparqlCache("cache"); + this.url=url; + } + /** * first collects the ontology * then types everything so it becomes owl-dl @@ -117,16 +126,13 @@ String ret=""; for (Iterator<String> iter = triples.iterator(); iter.hasNext();) { ret += iter.next(); - } return ret; } - public String[] collectOntologyAsArray(){ - getRecursiveList(subjectList, numberOfRecursions); - if (sf.mode!=3) finalize(); - String[] a=new String[0]; - return triples.toArray(a); + public String[] collectTriples(){ + getRecursive(subjectList[0], 1); + return Datastructures.setToArray(triples); } public String[] getSubjectsFromLabel(String label, int limit){ @@ -155,10 +161,8 @@ */ public void getRecursiveList(String[] subjects,int NumberofRecursions){ for (int i = 0; i < subjects.length; i++) { - getRecursive(subjects[i], NumberofRecursions); - - } - + getRecursive(subjects[i], NumberofRecursions); + } } /** @@ -170,38 +174,31 @@ public void getRecursive(String StartingSubject,int NumberofRecursions){ System.out.print("SparqlModul: Depth: "+NumberofRecursions+" @ "+StartingSubject+" "); if(NumberofRecursions<=0) - { return; - } + return; else {NumberofRecursions--;} - //System.out.println(NumberofRecursions); + try{ - - String sparql=q.makeQueryFilter(StartingSubject,this.sf); - p(sparql); - p("*******************"); - // checks cache - String FromCache=c.get(StartingSubject, sparql); - String xml; - // if not in cache get it from dbpedia - if(FromCache==null){ - xml=sendAndReceive(sparql); - c.put(StartingSubject, xml, sparql); - System.out.print("\n"); + String sparql=q.makeQueryFilter(StartingSubject,this.sf); + // checks cache + String FromCache=c.get(StartingSubject, sparql); + String xml; + // if not in cache get it from dbpedia + if(FromCache==null){ + xml=sendAndReceive(sparql); + c.put(StartingSubject, xml, sparql); + System.out.print("\n"); } - else{ - xml=FromCache; - System.out.println("FROM CACHE"); - } - p(xml); - p("***********************"); - // get new Subjects - String[] newSubjects=processResult(StartingSubject,xml); + else{ + xml=FromCache; + System.out.println("FROM CACHE"); + } + // get new Subjects + String[] newSubjects=processResult(StartingSubject,xml); + + for (int i = 0; (i < newSubjects.length)&& NumberofRecursions!=0; i++) { + getRecursive(newSubjects[i], NumberofRecursions); + } - for (int i = 0; (i < newSubjects.length)&& NumberofRecursions!=0; i++) { - getRecursive(newSubjects[i], NumberofRecursions); - } - - //System.out.println(xml); }catch (Exception e) {e.printStackTrace();} } @@ -250,8 +247,6 @@ ret[i]=(String)o[i]; } return ret; - //return (String[])al.toArray(); - //System.out.println(xml); } @@ -266,205 +261,195 @@ * @param al */ public void processTriples(String s,String p, String o,ArrayList<String> al){ - // the next two lines bump out some inconsistencies within dbpedia - String t="/Category"; - if(s.equals(t) || o.equals(t))return ; - - if(sf.mode==2) - { - if( o.startsWith("http://dbpedia.org/resource/Category:") - && - !p.startsWith("http://www.w3.org/2004/02/skos/core") - ) - {return;} - if(p.equals("http://www.w3.org/2004/02/skos/core#broader")){ - p=subclass; - } - else if(p.equals("http://www.w3.org/2004/02/skos/core#subject")){ + // the next two lines bump out some inconsistencies within dbpedia + String t="/Category"; + if(s.equals(t) || o.equals(t))return ; + + if(sf.mode==2) + { + if( o.startsWith("http://dbpedia.org/resource/Category:") + && + !p.startsWith("http://www.w3.org/2004/02/skos/core")) + return; + if(p.equals("http://www.w3.org/2004/02/skos/core#broader")){ + p=subclass; + } + else if(p.equals("http://www.w3.org/2004/02/skos/core#subject")){ p=type; - } - else {} } + else {} + } - //save for further processing - al.add(o); + //save for further processing + al.add(o); - // type classes - if(isClass(o)){ - classes.add(o); - if(isClass(s))p=subclass; - else p=type; - } - else { - instances.add(o); - this.properties.add(p); - } - - - - //maketriples - try{ + // type classes + if(isClass(o)){ + classes.add(o); + if(isClass(s))p=subclass; + else p=type; + } + else { + instances.add(o); + this.properties.add(p); + } + + //maketriples + try{ this.triples.add(makeTriples(s, p, o)); //fw.write(makeTriples(subject, predtmp, objtmp)); - }catch (Exception e) {e.printStackTrace();} + }catch (Exception e) {e.printStackTrace();} - return; - } + return; + } - private String[] processSubjects(String xml){ - Vector<String> vec=new Vector<String>(); - String one="<binding name=\"subject\"><uri>"; - String end="</uri></binding>"; - String subject=""; - while(xml.indexOf(one)!=-1){ - //get subject - xml=xml.substring(xml.indexOf(one)+one.length()); - subject=xml.substring(0,xml.indexOf(end)); - - System.out.println("Subject: "+subject); - vec.addElement(subject); - } - String[] a=new String[vec.size()]; - return vec.toArray(a); + private String[] processSubjects(String xml){ + Vector<String> vec=new Vector<String>(); + String one="<binding name=\"subject\"><uri>"; + String end="</uri></binding>"; + String subject=""; + while(xml.indexOf(one)!=-1){ + //get subject + xml=xml.substring(xml.indexOf(one)+one.length()); + subject=xml.substring(0,xml.indexOf(end)); + + System.out.println("Subject: "+subject); + vec.addElement(subject); + } + String[] a=new String[vec.size()]; + return vec.toArray(a); + } + + /** + * also makes subclass property between classes + * + * @param s + * @param p + * @param o + * @return triple in the n triple notation + */ + public String makeTriples(String s,String p, String o){ + String ret=""; + if (format.equals("N-TRIPLES")) ret="<"+s+"> <"+p+"> <"+o+">.\n"; + else if (format.equals("KB")){ + if (p.equals("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")) ret="\""+o+"\"(\""+s+"\").\n"; + else ret="\""+p+"\"(\""+s+"\",\""+o+"\").\n"; } -// - /** - * also makes subclass property between classes - * - * @param s - * @param p - * @param o - * @return triple in the n triple notation - */ - public String makeTriples(String s,String p, String o){ - String ret=""; - if (format.equals("N-TRIPLES")) ret="<"+s+"> <"+p+"> <"+o+">.\n"; - else if (format.equals("KB")){ - if (p.equals("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")) ret="\""+o+"\"(\""+s+"\").\n"; - else ret="\""+p+"\"(\""+s+"\",\""+o+"\").\n"; - } - else if (format.equals("Array")) - { - ret=s+"<"+p+"<"+o+"\n"; - } - return ret; + else if (format.equals("Array")) + { + ret=s+"<"+p+"<"+o+"\n"; } + return ret; + } - /** - * decides if an object is treated as a class - * - * @param obj - * @return true if obj is in the defaultClassesList - */ - public boolean isClass(String obj){ - - boolean retval=false; - for (String defclass : defaultClasses) { - if(obj.contains(defclass))retval=true; - } - return retval; + /** + * decides if an object is treated as a class + * + * @param obj + * @return true if obj is in the defaultClassesList + */ + public boolean isClass(String obj){ + + boolean retval=false; + for (String defclass : defaultClasses) { + if(obj.contains(defclass))retval=true; } + return retval; + } - /** - * @see java.lang.Object#finalize() - */ - @Override - public void finalize(){ - typeProperties(); - typeClasses(); - typeInstances(); - } + /** + * @see java.lang.Object#finalize() + */ + @Override + public void finalize(){ + typeProperties(); + typeClasses(); + typeInstances(); + } - public void typeProperties(){ - String rdfns="http://www.w3.org/1999/02/22-rdf-syntax-ns"; - String owlns="http://www.w3.org/2002/07/owl"; - Iterator<String> it=properties.iterator(); - String current=""; - while (it.hasNext()){ - try{ - current=it.next(); - if(current.equals(subclass))continue; - if(current.contains(rdfns)||current.contains(owlns)){/*DO NOTHING*/} - else {this.triples.add(makeTriples(current,type,objectProperty));} - }catch (Exception e) {} + public void typeProperties(){ + String rdfns="http://www.w3.org/1999/02/22-rdf-syntax-ns"; + String owlns="http://www.w3.org/2002/07/owl"; + Iterator<String> it=properties.iterator(); + String current=""; + while (it.hasNext()){ + try{ + current=it.next(); + if(current.equals(subclass))continue; + if(current.contains(rdfns)||current.contains(owlns)){/*DO NOTHING*/} + else {this.triples.add(makeTriples(current,type,objectProperty));} + }catch (Exception e) {} - } } - public void typeClasses(){ - Iterator<String> it=classes.iterator(); - String current=""; - while (it.hasNext()){ - try{ - current=it.next(); - this.triples.add(makeTriples(current,type,classns)); - }catch (Exception e) {} - } + } + + public void typeClasses(){ + Iterator<String> it=classes.iterator(); + String current=""; + while (it.hasNext()){ + try{ + current=it.next(); + this.triples.add(makeTriples(current,type,classns)); + }catch (Exception e) {} } - public void typeInstances(){ - Iterator<String> it=instances.iterator(); - String current=""; - while (it.hasNext()){ - try{ + } + + public void typeInstances(){ + Iterator<String> it=instances.iterator(); + String current=""; + while (it.hasNext()){ + try{ current=it.next(); this.triples.add(makeTriples(current,type,thing)); - }catch (Exception e) {} - } + }catch (Exception e) {} } + } + //TODO alles dbpedia-spezifische rausbekommen + private String sendAndReceive(String sparql) { + StringBuilder answer = new StringBuilder(); - /** - * debug print turn on print_flag - * @param s - */ - public void p(String s){ - if(print_flag) - System.out.println(s); - } - - private String sendAndReceive(String sparql) { - StringBuilder answer = new StringBuilder(); + // String an Sparql-Endpoint schicken + HttpURLConnection connection; - // String an Sparql-Endpoint schicken - HttpURLConnection connection; - - try { - connection = (HttpURLConnection) url.openConnection(); - connection.setDoOutput(true); + try { + connection = (HttpURLConnection) url.openConnection(); + connection.setDoOutput(true); - connection.addRequestProperty("Host", "dbpedia.openlinksw.com"); - 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","ISO-8859-1,utf-8;q=0.7,*;q=0.7"); - 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"); + connection.addRequestProperty("Host", "dbpedia.openlinksw.com"); + 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","ISO-8859-1,utf-8;q=0.7,*;q=0.7"); + 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); - osw.write("default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + - URLEncoder.encode(sparql, "UTF-8")+ - "&format=application%2Fsparql-results%2Bxml"); + OutputStream os = connection.getOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(os); + osw.write("default-graph-uri=http%3A%2F%2Fdbpedia.org&query=" + + URLEncoder.encode(sparql, "UTF-8")+ + "&format=application%2Fsparql-results%2Bxml"); osw.close(); - // receive answer - InputStream is = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(is); - BufferedReader br = new BufferedReader(isr); + // receive answer + InputStream is = connection.getInputStream(); + InputStreamReader isr = new InputStreamReader(is); + BufferedReader br = new BufferedReader(isr); + + String line; + do { + line = br.readLine(); + if(line!=null) + answer.append(line); + } while (line != null); - String line; - do { - line = br.readLine(); - if(line!=null) - answer.append(line); - } while (line != null); + br.close(); - br.close(); - - } catch (IOException e) { - System.out.println("Communication problem with Sparql Server."); - System.exit(0); - } + } catch (IOException e) { + System.out.println("Communication problem with Sparql Server."); + System.exit(0); + } - return answer.toString(); - } -} + return answer.toString(); + } +} \ 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: <sk...@us...> - 2007-10-29 10:36:38
|
Revision: 266 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=266&view=rev Author: sknappe Date: 2007-10-29 03:36:36 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Modified Sparql Classes to work with all functions of ajax version of dbpedia-navigator Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-10-29 10:30:25 UTC (rev 265) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlEndpoint.java 2007-10-29 10:36:36 UTC (rev 266) @@ -55,7 +55,8 @@ * @author Sebastian Knappe */ public class SparqlEndpoint extends KnowledgeSource { - + + //ConfigOptions private URL url; private Set<String> instances; private URL dumpFile; @@ -64,16 +65,25 @@ private Set<String> predList; private Set<String> objList; private Set<String> classList; - private KB kb; private String format; private boolean dumpToFile; private boolean useLits=false; + + //received ontology as array, used if format=Array(an element of the + //array consists of the subject, predicate and object separated by '<' private String[] ontArray; + //received ontology as KB, the internal format + private KB kb; + public static String getName() { return "SPARQL Endpoint"; } - + + /** + * sets the ConfigOptions for this KnowledgeSource + * @return + */ public static Collection<ConfigOption<?>> createConfigOptions() { Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); options.add(new StringConfigOption("url", "URL of SPARQL Endpoint")); @@ -130,16 +140,9 @@ @Override public void init() { System.out.println("SparqlModul: Collecting Ontology"); - String[] a=new String[0]; - SparqlOntologyCollector oc=new SparqlOntologyCollector(instances.toArray(a), numberOfRecursions, - filterMode, Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); - String ont=""; - if (format.equals("Array")){ - ontArray=oc.collectOntologyAsArray(); - } - else{ - ont=oc.collectOntology(); - } + SparqlOntologyCollector oc=new SparqlOntologyCollector(Datastructures.setToArray(instances), numberOfRecursions, filterMode, + Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); + String ont=oc.collectOntology(); if (dumpToFile){ String filename=System.currentTimeMillis()+".nt"; @@ -196,9 +199,18 @@ public String[] getSubjects(String label,int limit) { System.out.println("SparqlModul: Collecting Subjects"); - SparqlOntologyCollector oc=new SparqlOntologyCollector(null, 1,0,null,null,null,null,url,false); + SparqlOntologyCollector oc=new SparqlOntologyCollector(url); String[] ret=oc.getSubjectsFromLabel(label,limit); System.out.println("SparqlModul: ****Finished"); return ret; } + + public String[] getTriples(){ + System.out.println("SparqlModul: Collecting Triples"); + SparqlOntologyCollector oc=new SparqlOntologyCollector(Datastructures.setToArray(instances), numberOfRecursions, filterMode, + Datastructures.setToArray(predList),Datastructures.setToArray( objList),Datastructures.setToArray(classList),format,url,useLits); + String[] ret=oc.collectTriples(); + System.out.println("SparqlModul: ****Finished"); + return ret; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 10:30:52
|
Revision: 265 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=265&view=rev Author: sknappe Date: 2007-10-29 03:30:25 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Modified Sparql Classes to work with all functions of ajax version of dbpedia-navigator Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java 2007-10-29 10:30:08 UTC (rev 264) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlCache.java 2007-10-29 10:30:25 UTC (rev 265) @@ -38,11 +38,10 @@ * before returning the SPARQL xml-result * * @author Sebastian Hellmann - * + * @author Sebastian Knappe */ public class SparqlCache implements Serializable{ - final static long serialVersionUID=104; transient String basedir=""; transient String fileending=".cache"; @@ -89,16 +88,13 @@ * @return the cached sparql result or null */ public String get(String key, String sparql){ - //System.out.println("get From "+key); String ret=null; try{ SparqlCache c =readFromFile(makeFilename(key)) ; if(c==null)return null; - //System.out.println(" file found"); if(!c.checkFreshness())return null; - //System.out.println("fresh"); if(!c.validate(sparql))return null; - //System.out.println("valid"); + ret=c.content; }catch (Exception e) {e.printStackTrace();} return ret; @@ -113,7 +109,6 @@ * @param sparql the sparql query */ public void put(String key, String content, String sparql){ - //System.out.println("put into "+key); SparqlCache c=new SparqlCache(content,sparql); putIntoFile(makeFilename(key), c); } @@ -180,12 +175,11 @@ */ public void putIntoFile(String Filename,SparqlCache content){ try{ - //FileWriter fw=new FileWriter(new File(Filename),true); - FileOutputStream fos = new FileOutputStream( Filename , false ); - ObjectOutputStream o = new ObjectOutputStream( fos ); - o.writeObject( content ); - fos.flush(); - fos.close(); + FileOutputStream fos = new FileOutputStream( Filename , false ); + ObjectOutputStream o = new ObjectOutputStream( fos ); + o.writeObject( content ); + fos.flush(); + fos.close(); }catch (Exception e) {System.out.println("Not in cache creating: "+Filename);} } @@ -198,11 +192,9 @@ public SparqlCache readFromFile(String Filename){ SparqlCache content=null; try{ - FileInputStream fos = new FileInputStream( Filename ); - ObjectInputStream o = new ObjectInputStream( fos ); - content=(SparqlCache)o.readObject(); - //FileReader fr=new FileReader(new File(Filename,"r")); - //BufferedReader br=new BufferedReader(fr); + FileInputStream fos = new FileInputStream( Filename ); + ObjectInputStream o = new ObjectInputStream( fos ); + content=(SparqlCache)o.readObject(); }catch (Exception e) {} return content; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-29 10:30:11
|
Revision: 264 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=264&view=rev Author: sknappe Date: 2007-10-29 03:30:08 -0700 (Mon, 29 Oct 2007) Log Message: ----------- Modified Sparql Classes to work with all functions of ajax version of dbpedia-navigator Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java Modified: trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java 2007-10-29 10:26:51 UTC (rev 263) +++ trunk/src/dl-learner/org/dllearner/kb/SparqlFilter.java 2007-10-29 10:30:08 UTC (rev 264) @@ -79,9 +79,9 @@ "http://upload.wikimedia.org/wikipedia/commons"}; public SparqlFilter(int mode, String[] pred, String[] obj) { - if (mode==-1 && (pred==null || pred.length==0 || obj==null||obj.length==0)) + if (mode==-1 && (pred==null || obj==null)) {mode=0;} - else this.mode=mode; + this.mode=mode; switch (mode){ case 0: //yago @@ -100,8 +100,9 @@ ObjFilter=obj; PredFilter=pred; break; - - }} + } + } + public SparqlFilter(int mode, String[] pred, String[] obj,boolean uselits) throws Exception{ this(mode, pred,obj); this.useLiterals=uselits; @@ -109,12 +110,9 @@ public String[] getObjFilter(){ return this.ObjFilter; - } + } + public String[] getPredFilter(){ return this.PredFilter; - } - - - - } - + } +} \ 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: <sk...@us...> - 2007-10-29 10:26:55
|
Revision: 263 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=263&view=rev Author: sknappe Date: 2007-10-29 03:26:51 -0700 (Mon, 29 Oct 2007) Log Message: ----------- added function to learn a concept to ajax version Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/index.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-28 09:14:13 UTC (rev 262) +++ trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-29 10:26:51 UTC (rev 263) @@ -42,21 +42,12 @@ $this->client->init($id); - $learn_start = microtime(true); - $init = $learn_start - $start; - echo 'components initialised in '.$init.' seconds<br />'; - $threaded=true; if($threaded == false) { $concept = $this->client->learn($id); - $learn = microtime(true) - $learn_start; - echo 'concept learned in '.$learn.' seconds<br />'; - - echo 'result: '.$concept; - } else { $this->client->learnThreaded($id); @@ -74,12 +65,9 @@ $seconds = $i * $sleeptime; - echo 'result after '.$seconds.' seconds of sleep: '.$concept.'<br />'; - $i++; } while($running); - echo 'algorithm finished'; } return $concept; } Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-28 09:14:13 UTC (rev 262) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-29 10:26:51 UTC (rev 263) @@ -14,4 +14,8 @@ $xajax->registerFunction('addNegative'); $xajax->registerFunction('clearPositives'); $xajax->registerFunction('clearNegatives'); +$xajax->register(XAJAX_FUNCTION, 'learnConcept', array( + 'onResponseDelay' => 'showLoadingConcept', + 'beforeResponseProcessing' => 'hideLoadingConcept' + )); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-28 09:14:13 UTC (rev 262) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-29 10:26:51 UTC (rev 263) @@ -1,4 +1,5 @@ <?php +session_start(); function getsubjects($label, $limit) { include_once("Settings.php"); @@ -94,6 +95,25 @@ return $objResponse; } +function learnConcept() +{ + $concept=""; + if (isset($_SESSION['positive'])&&isset($_SESSION['negative'])) + { + require_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); + + $concept.=$sc->getConceptFromExamples($_SESSION['positive'],$_SESSION['negative']); + } + else $concept.="You must choose at least one<br/> positive and one negative example."; + + $objResponse = new xajaxResponse(); + $objResponse->assign("conceptcontent", "innerHTML", $concept); + return $objResponse; +} + require("ajax.php"); $xajax->processRequest(); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-28 09:14:13 UTC (rev 262) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-29 10:26:51 UTC (rev 263) @@ -1,6 +1,10 @@ <?php session_start(); +unset($_SESSION['positive']); +unset($_SESSION['negative']); + + require("ajax.php"); ini_set('error_reporting',E_ALL); ini_set('max_execution_time',200); @@ -29,6 +33,14 @@ hideLoadingArticle = function() { xajax.$('loadingArticle').style.display = 'none'; xajax.$('articlecontent').style.display = 'block'; + }; + showLoadingConcept = function() { + xajax.$('loadingConcept').style.display='block'; + xajax.$('conceptcontent').style.display = 'none'; + }; + hideLoadingConcept = function() { + xajax.$('loadingConcept').style.display = 'none'; + xajax.$('conceptcontent').style.display = 'block'; } </script> </head> @@ -64,6 +76,14 @@ </div> <!-- boxcontent --> </div> <!-- box --> +<div class="box" id="concept"> + <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Learned Concept</td><td class="right"><input type="button" value="Learn" class="button" onclick="xajax_learnConcept();return false;" /></td></tr></table></div> + <div class="boxcontent"> + <div id="conceptcontent" style="display:none"></div> + <div id="loadingConcept" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> + </div> <!-- boxcontent --> +</div> <!-- box --> + <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div><!-- END leftSidebar --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-10-28 09:14:16
|
Revision: 262 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=262&view=rev Author: jenslehmann Date: 2007-10-28 02:14:13 -0700 (Sun, 28 Oct 2007) Log Message: ----------- - converted trains example to new structure - without imports empty backgroud knowledge is used Modified Paths: -------------- trunk/examples/trains/trains.conf trunk/src/dl-learner/org/dllearner/cli/Start.java Added Paths: ----------- trunk/examples/trains/trains.kb Modified: trunk/examples/trains/trains.conf =================================================================== --- trunk/examples/trains/trains.conf 2007-10-24 15:11:58 UTC (rev 261) +++ trunk/examples/trains/trains.conf 2007-10-28 09:14:13 UTC (rev 262) @@ -30,268 +30,19 @@ * Copyright (C) 2007, Jens Lehmann */ -useRetrievalForClassification = false; -refinement.useDIGMultiInstanceChecks = twoChecks; +// refinement.writeSearchTree = true; +// refinement.searchTreeFile = "log/searchTreeTrains.txt"; -/** background knowledge **/ -// TODO: more knowledge could be added here, e.g. that all classes are disjoint; -// shape can be described using nominals i.e. a fixed set of values; etc. +import("trains.kb"); -car(car_11). car(car_12). car(car_13). car(car_14). -car(car_21). car(car_22). car(car_23). -car(car_31). car(car_32). car(car_33). -car(car_41). car(car_42). car(car_43). car(car_44). -car(car_51). car(car_52). car(car_53). -car(car_61). car(car_62). -car(car_71). car(car_72). car(car_73). -car(car_81). car(car_82). -car(car_91). car(car_92). car(car_93). car(car_94). -car(car_101). car(car_102). - -train(east1). train(east2). train(east3). train(east4). train(east5). -train(west6). train(west7). train(west8). train(west9). train(west10). - -// eastbound train 1 -short(car_12). -closed(car_12). -long(car_11). -long(car_13). -short(car_14). -open_car(car_11). -open_car(car_13). -open_car(car_14). -shape(car_11,rectangle). -shape(car_12,rectangle). -shape(car_13,rectangle). -shape(car_14,rectangle). -load(car_11,rectangle). -load_count(car_11,three). -load(car_12,triangle). -load_count(car_12,one). -load(car_13,hexagon). -load_count(car_13,one). -load(car_14,circle). -load(car_14,one). -wheels(car_11,two). -wheels(car_12,two). -wheels(car_13,three). -wheels(car_14,two). -has_car(east1,car_11). -has_car(east1,car_12). -has_car(east1,car_13). -has_car(east1,car_14). - -// eastbound train 2 -has_car(east2,car_21). -has_car(east2,car_22). -has_car(east2,car_23). -short(car_21). -short(car_22). -short(car_23). -shape(car_21,u_shaped). -shape(car_22,u_shaped). -shape(car_23,rectangle). -open_car(car_21). -open_car(car_22). -closed(car_23). -load(car_21,triangle). -load_count(car_21,one). -load(car_22,rectangle). -load_count(car_22,one). -load(car_23,circle). -load_count(car_23,two). -wheels(car_21,two). -wheels(car_22,two). -wheels(car_23,two). - -// eastbound train 3 -has_car(east3,car_31). -has_car(east3,car_32). -has_car(east3,car_33). -short(car_31). -short(car_32). -long(car_33). -shape(car_31,rectangle). -shape(car_32,hexagon). -shape(car_33,rectangle). -open_car(car_31). -closed(car_32). -closed(car_33). -load(car_31,circle). -load_count(car_31,one). -load(car_32,triangle). -load_count(car_32,one). -load(car_33,triangle). -load_count(car_33,one). -wheels(car_31,two). -wheels(car_32,two). -wheels(car_33,three). - -// eastbound train 4 -has_car(east4,car_41). -has_car(east4,car_42). -has_car(east4,car_43). -has_car(east4,car_44). -short(car_41). -short(car_42). -short(car_43). -short(car_44). -shape(car_41,u_shaped). -shape(car_42,rectangle). -shape(car_43,elipse). -shape(car_44,rectangle). -double(car_42). -open_car(car_41). -open_car(car_42). -closed(car_43). -open_car(car_44). -load(car_41,triangle). -load_count(car_41,one). -load(car_42,triangle). -load_count(car_42,one). -load(car_43,rectangle). -load_count(car_43,one). -load(car_44,rectangle). -load_count(car_44,one). -wheels(car_41,two). -wheels(car_42,two). -wheels(car_43,two). -wheels(car_44,two). - -// eastbound train 5 -has_car(east5,car_51). -has_car(east5,car_52). -has_car(east5,car_53). -short(car_51). -short(car_52). -short(car_53). -shape(car_51,rectangle). -shape(car_52,rectangle). -shape(car_53,rectangle). -double(car_51). -open_car(car_51). -closed(car_52). -closed(car_53). -load(car_51,triangle). -load_count(car_51,one). -load(car_52,rectangle). -load_count(car_52,one). -load(car_53,circle). -load_count(car_53,one). -wheels(car_51,two). -wheels(car_52,three). -wheels(car_53,two). - -// westbound train 6 -has_car(west6,car_61). -has_car(west6,car_62). -long(car_61). -short(car_62). -shape(car_61,rectangle). -shape(car_62,rectangle). -closed(car_61). -open_car(car_62). -load(car_61,circle). -load_count(car_61,three). -load(car_62,triangle). -load_count(car_62,one). -wheels(car_61,two). -wheels(car_62,two). - -// westbound train 7 -has_car(west7,car_71). -has_car(west7,car_72). -has_car(west7,car_73). -short(car_71). -short(car_72). -long(car_73). -shape(car_71,rectangle). -shape(car_72,u_shaped). -shape(car_73,rectangle). -double(car_71). -open_car(car_71). -open_car(car_72). -jagged(car_73). -load(car_71,circle). -load_count(car_71,one). -load(car_72,triangle). -load_count(car_72,one). -// load(car_73,nil). -load_count(car_73,zero). -wheels(car_71,two). -wheels(car_72,two). -wheels(car_73,two). - -// westbound train 8 -has_car(west8,car_81). -has_car(west8,car_82). -long(car_81). -short(car_82). -shape(car_81,rectangle). -shape(car_82,u_shaped). -closed(car_81). -open_car(car_82). -load(car_81,rectangle). -load_count(car_81,one). -load(car_82,circle). -load_count(car_82,one). -wheels(car_81,three). -wheels(car_82,two). - -// westbound train 9 -has_car(west9,car_91). -has_car(west9,car_92). -has_car(west9,car_93). -has_car(west9,car_94). -short(car_91). -long(car_92). -short(car_93). -short(car_94). -shape(car_91,u_shaped). -shape(car_92,rectangle). -shape(car_93,rectangle). -shape(car_94,u_shaped). -open_car(car_91). -jagged(car_92). -open_car(car_93). -open_car(car_94). -load(car_91,circle). -load_count(car_91,one). -load(car_92,rectangle). -load_count(car_92,one). -load(car_93,rectangle). -load_count(car_93,one). -load(car_94,circle). -load_count(car_94,one). -wheels(car_91,two). -wheels(car_92,two). -wheels(car_93,two). -wheels(car_94,two). - -// westbound train 10 -has_car(west10,car_101). -has_car(west10,car_102). -short(car_101). -long(car_102). -shape(car_101,u_shaped). -shape(car_102,rectangle). -open_car(car_101). -open_car(car_102). -load(car_101,rectangle). -load_count(car_101,one). -load(car_102,rectangle). -load_count(car_102,two). -wheels(car_101,two). -wheels(car_102,two). - /** examples **/ -+eastbound(east1). -+eastbound(east2). -+eastbound(east3). -+eastbound(east4). -+eastbound(east5). --eastbound(west6). --eastbound(west7). --eastbound(west8). --eastbound(west9). --eastbound(west10). ++east1 ++east2 ++east3 ++east4 ++east5 +-west6 +-west7 +-west8 +-west9 +-west10 Added: trunk/examples/trains/trains.kb =================================================================== --- trunk/examples/trains/trains.kb (rev 0) +++ trunk/examples/trains/trains.kb 2007-10-28 09:14:13 UTC (rev 262) @@ -0,0 +1,251 @@ +/** background knowledge **/ +// TODO: more knowledge could be added here, e.g. that all classes are disjoint; +// shape can be described using nominals i.e. a fixed set of values; etc. + +car(car_11). car(car_12). car(car_13). car(car_14). +car(car_21). car(car_22). car(car_23). +car(car_31). car(car_32). car(car_33). +car(car_41). car(car_42). car(car_43). car(car_44). +car(car_51). car(car_52). car(car_53). +car(car_61). car(car_62). +car(car_71). car(car_72). car(car_73). +car(car_81). car(car_82). +car(car_91). car(car_92). car(car_93). car(car_94). +car(car_101). car(car_102). + +train(east1). train(east2). train(east3). train(east4). train(east5). +train(west6). train(west7). train(west8). train(west9). train(west10). + +// eastbound train 1 +short(car_12). +closed(car_12). +long(car_11). +long(car_13). +short(car_14). +open_car(car_11). +open_car(car_13). +open_car(car_14). +shape(car_11,rectangle). +shape(car_12,rectangle). +shape(car_13,rectangle). +shape(car_14,rectangle). +load(car_11,rectangle). +load_count(car_11,three). +load(car_12,triangle). +load_count(car_12,one). +load(car_13,hexagon). +load_count(car_13,one). +load(car_14,circle). +load(car_14,one). +wheels(car_11,two). +wheels(car_12,two). +wheels(car_13,three). +wheels(car_14,two). +has_car(east1,car_11). +has_car(east1,car_12). +has_car(east1,car_13). +has_car(east1,car_14). + +// eastbound train 2 +has_car(east2,car_21). +has_car(east2,car_22). +has_car(east2,car_23). +short(car_21). +short(car_22). +short(car_23). +shape(car_21,u_shaped). +shape(car_22,u_shaped). +shape(car_23,rectangle). +open_car(car_21). +open_car(car_22). +closed(car_23). +load(car_21,triangle). +load_count(car_21,one). +load(car_22,rectangle). +load_count(car_22,one). +load(car_23,circle). +load_count(car_23,two). +wheels(car_21,two). +wheels(car_22,two). +wheels(car_23,two). + +// eastbound train 3 +has_car(east3,car_31). +has_car(east3,car_32). +has_car(east3,car_33). +short(car_31). +short(car_32). +long(car_33). +shape(car_31,rectangle). +shape(car_32,hexagon). +shape(car_33,rectangle). +open_car(car_31). +closed(car_32). +closed(car_33). +load(car_31,circle). +load_count(car_31,one). +load(car_32,triangle). +load_count(car_32,one). +load(car_33,triangle). +load_count(car_33,one). +wheels(car_31,two). +wheels(car_32,two). +wheels(car_33,three). + +// eastbound train 4 +has_car(east4,car_41). +has_car(east4,car_42). +has_car(east4,car_43). +has_car(east4,car_44). +short(car_41). +short(car_42). +short(car_43). +short(car_44). +shape(car_41,u_shaped). +shape(car_42,rectangle). +shape(car_43,elipse). +shape(car_44,rectangle). +double(car_42). +open_car(car_41). +open_car(car_42). +closed(car_43). +open_car(car_44). +load(car_41,triangle). +load_count(car_41,one). +load(car_42,triangle). +load_count(car_42,one). +load(car_43,rectangle). +load_count(car_43,one). +load(car_44,rectangle). +load_count(car_44,one). +wheels(car_41,two). +wheels(car_42,two). +wheels(car_43,two). +wheels(car_44,two). + +// eastbound train 5 +has_car(east5,car_51). +has_car(east5,car_52). +has_car(east5,car_53). +short(car_51). +short(car_52). +short(car_53). +shape(car_51,rectangle). +shape(car_52,rectangle). +shape(car_53,rectangle). +double(car_51). +open_car(car_51). +closed(car_52). +closed(car_53). +load(car_51,triangle). +load_count(car_51,one). +load(car_52,rectangle). +load_count(car_52,one). +load(car_53,circle). +load_count(car_53,one). +wheels(car_51,two). +wheels(car_52,three). +wheels(car_53,two). + +// westbound train 6 +has_car(west6,car_61). +has_car(west6,car_62). +long(car_61). +short(car_62). +shape(car_61,rectangle). +shape(car_62,rectangle). +closed(car_61). +open_car(car_62). +load(car_61,circle). +load_count(car_61,three). +load(car_62,triangle). +load_count(car_62,one). +wheels(car_61,two). +wheels(car_62,two). + +// westbound train 7 +has_car(west7,car_71). +has_car(west7,car_72). +has_car(west7,car_73). +short(car_71). +short(car_72). +long(car_73). +shape(car_71,rectangle). +shape(car_72,u_shaped). +shape(car_73,rectangle). +double(car_71). +open_car(car_71). +open_car(car_72). +jagged(car_73). +load(car_71,circle). +load_count(car_71,one). +load(car_72,triangle). +load_count(car_72,one). +// load(car_73,nil). +load_count(car_73,zero). +wheels(car_71,two). +wheels(car_72,two). +wheels(car_73,two). + +// westbound train 8 +has_car(west8,car_81). +has_car(west8,car_82). +long(car_81). +short(car_82). +shape(car_81,rectangle). +shape(car_82,u_shaped). +closed(car_81). +open_car(car_82). +load(car_81,rectangle). +load_count(car_81,one). +load(car_82,circle). +load_count(car_82,one). +wheels(car_81,three). +wheels(car_82,two). + +// westbound train 9 +has_car(west9,car_91). +has_car(west9,car_92). +has_car(west9,car_93). +has_car(west9,car_94). +short(car_91). +long(car_92). +short(car_93). +short(car_94). +shape(car_91,u_shaped). +shape(car_92,rectangle). +shape(car_93,rectangle). +shape(car_94,u_shaped). +open_car(car_91). +jagged(car_92). +open_car(car_93). +open_car(car_94). +load(car_91,circle). +load_count(car_91,one). +load(car_92,rectangle). +load_count(car_92,one). +load(car_93,rectangle). +load_count(car_93,one). +load(car_94,circle). +load_count(car_94,one). +wheels(car_91,two). +wheels(car_92,two). +wheels(car_93,two). +wheels(car_94,two). + +// westbound train 10 +has_car(west10,car_101). +has_car(west10,car_102). +short(car_101). +long(car_102). +shape(car_101,u_shaped). +shape(car_102,rectangle). +open_car(car_101). +open_car(car_102). +load(car_101,rectangle). +load_count(car_101,one). +load(car_102,rectangle). +load_count(car_102,two). +wheels(car_101,two). +wheels(car_102,two). + Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2007-10-24 15:11:58 UTC (rev 261) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2007-10-28 09:14:13 UTC (rev 262) @@ -318,6 +318,7 @@ List<List<String>> imports = parser.getFunctionCalls().get("import"); Map<URL, Class<? extends KnowledgeSource>> importedFiles = new HashMap<URL, Class<? extends KnowledgeSource>>(); + if(imports != null) { for (List<String> arguments : imports) { // step 1: detect URL URL url = null; @@ -371,6 +372,7 @@ importedFiles.put(url, ksClass); } } + } return importedFiles; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-24 15:12:00
|
Revision: 261 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=261&view=rev Author: sknappe Date: 2007-10-24 08:11:58 -0700 (Wed, 24 Oct 2007) Log Message: ----------- css file added Added Paths: ----------- trunk/src/dbpedia-navigator/Ajax-Test/default.css Added: trunk/src/dbpedia-navigator/Ajax-Test/default.css =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/default.css (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-24 15:11:58 UTC (rev 261) @@ -0,0 +1,330 @@ +/** + * 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; +} \ 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: <sk...@us...> - 2007-10-24 15:11:34
|
Revision: 260 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=260&view=rev Author: sknappe Date: 2007-10-24 08:11:23 -0700 (Wed, 24 Oct 2007) Log Message: ----------- changed css, so that all buttons are at the right position Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/index.php Removed Paths: ------------- trunk/src/dbpedia-navigator/Ajax-Test/default.css Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-24 08:32:25 UTC (rev 259) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-24 15:11:23 UTC (rev 260) @@ -12,4 +12,6 @@ )); $xajax->registerFunction('addPositive'); $xajax->registerFunction('addNegative'); +$xajax->registerFunction('clearPositives'); +$xajax->registerFunction('clearNegatives'); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-24 08:32:25 UTC (rev 259) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-24 15:11:23 UTC (rev 260) @@ -33,7 +33,7 @@ $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; $objResponse = new xajaxResponse(); - $objResponse->assign("article", "innerHTML", $content); + $objResponse->assign("articlecontent", "innerHTML", $content); $objResponse->assign("contentbuttons", "innerHTML", $contentbuttons); return $objResponse; } @@ -76,6 +76,24 @@ return $objResponse; } +function clearPositives() +{ + unset($_SESSION['positive']); + + $objResponse = new xajaxResponse(); + $objResponse->assign("Positives", "innerHTML", ""); + return $objResponse; +} + +function clearNegatives() +{ + unset($_SESSION['negative']); + + $objResponse = new xajaxResponse(); + $objResponse->assign("Negatives", "innerHTML", ""); + return $objResponse; +} + require("ajax.php"); $xajax->processRequest(); ?> \ No newline at end of file Deleted: trunk/src/dbpedia-navigator/Ajax-Test/default.css =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-24 08:32:25 UTC (rev 259) +++ trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-24 15:11:23 UTC (rev 260) @@ -1,477 +0,0 @@ -/** - * 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; -} - -/* - * Tables - */ - -tr.odd { - background-color: #ccc; -} - -tr.even { - background-color: #eee; -} - -table.instanceTable th { - text-align: left; -/* background-color: #eee;*/ -} - -table.instanceTable > tbody > tr > td { - padding-top: 0.5em; -} - -table.instanceTable td.property { - text-align: right; - font-style: italic; - padding-right: 5px; -} - -table.instanceTable ul { - margin: 0px; - padding-left: 20px; -} - -table.instanceTable { - width: 100%; -} - -.searchHighlight { - background-color: orange; -} - -table.tripletable { - width: 100%; - font-size: 90%; -} - -.tripletable td { - padding: 0.4em; -} - -table.blind tr td { - padding-top: 0.4em; -} - -/* - * Instances - */ - -.instance .instance { - margin-left: 13px; - background-color: #ddd; -} -.instance .instance td { - font-size: 90%; -} -.instance .instance .instance { - background-color: #eee; -} - -.instance .instance .instance .instance { - background-color: #fff; -} - -#instanceEdit { - border-spacing: 0px; - width: 100%; -} - -#instanceEdit input, #instanceEdit textarea { -/* width: 250px;*/ - background-color: #fff; - font-size: 95%; - font-family: "Lucida Grande", Helvetica, Arial, sans-serif; - padding: 0.1em 0; -} - -#instanceEdit > tbody > tr > td, #instanceEdit > tr > td { - background-color: #eee; - padding: 5px; - border-bottom: 2px solid #fdfdfd; -} - -/* - * Calendar - */ - -table.calendar { - margin-top: 1em; - width: 100%; - height: 730px; - table-layout: fixed; - font-size: 90%; -} - -.calendar .weekday0 { - background-color: #eee; - padding: 0.4em; -} -.calendar .weekday1 { - background-color: #f5f5f5; - padding: 0.4em; -} -.calendar .weekend0 { - background-color: #ddd; - padding: 0.4em; -} -.calendar .weekend1 { - background-color: #eaeaea; - padding: 0.4em; -} - -#map { - margin-top: 0.5em; - width: 100%; - height: 750px; - font-size: 90%; -} - -#map .instance td { - font-size: 80%; - padding: 0 3px; - border-bottom: 5px solid white; -} - -#superClassPath { - margin-bottom: 0.5em; -} - -img { - border: none; -} - -span.submit { - float: right; - padding-right: 100px; -} - -/* - * Autosuggest box - */ -div.autosuggest { - font-size: 85%; - position: absolute; - background-color: #fff; - border: 1px solid #bbb; -} - -div.autosuggest ul { - list-style-type: none; - list-style-position: inside; - padding-left: 0px; -} - -div.autosuggest ul li.selected { - background-color: #bde; -} - -div.autosuggest ul li { - display: block; - padding: 0.2em; -/* height: 22px;*/ - cursor: pointer; -} - -span.formal { - display: 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; -} - -#contentbuttons{ - text-align:right; -} \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-24 08:32:25 UTC (rev 259) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-24 15:11:23 UTC (rev 260) @@ -24,14 +24,17 @@ }; showLoadingArticle = function() { xajax.$('loadingArticle').style.display='block'; + xajax.$('articlecontent').style.display = 'none'; }; hideLoadingArticle = function() { xajax.$('loadingArticle').style.display = 'none'; + xajax.$('articlecontent').style.display = 'block'; } </script> </head> <body> <h3>DBPedia-Navigator-Test</h3> +<div id="layer" style="display:none"><div id="layerContent" style="display:none"></div></div> <div id="wrapper"> <div id="leftSidebar"> @@ -65,9 +68,10 @@ </div><!-- END leftSidebar --> <div id="content"> -<div class="box" id="search"> - <div class="boxtitle">Content<div id="contentbuttons"></div></div> +<div class="box"> + <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Article</td><td class="right"><span id="contentbuttons"></span></td></tr></table></div> <div class="boxcontent" id="article"> + <div id="articlecontent" style="display:none"></div> <div id="loadingArticle" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> </div> <!-- box --> @@ -77,13 +81,13 @@ <div id="rightSidebar"> <div class="box"> - <div class="boxtitle">Positives</div> + <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Positives</td><td class="right"><input type="button" value="Clear" class="button" onclick="xajax_clearPositives();return false;" /></td></tr></table></div> <div class="boxcontent" id="Positives"> </div> <!-- boxcontent --> </div> <!-- box --> <div class="box"> - <div class="boxtitle">Negatives</div> + <div class="boxtitlewithbutton"><table border="0" class="titletable"><tr><td class="left">Negatives</td><td class="right"><input type="button" value="Clear" class="button" onclick="xajax_clearNegatives();return false;" /></td></tr></table></div> <div class="boxcontent" id="Negatives"> </div> <!-- boxcontent --> </div> <!-- box --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-24 08:32:31
|
Revision: 259 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=259&view=rev Author: sknappe Date: 2007-10-24 01:32:25 -0700 (Wed, 24 Oct 2007) Log Message: ----------- added some functions Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/default.css trunk/src/dbpedia-navigator/Ajax-Test/index.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-22 18:57:44 UTC (rev 258) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-24 08:32:25 UTC (rev 259) @@ -10,4 +10,6 @@ 'onResponseDelay' => 'showLoadingArticle', 'beforeResponseProcessing' => 'hideLoadingArticle' )); +$xajax->registerFunction('addPositive'); +$xajax->registerFunction('addNegative'); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-22 18:57:44 UTC (rev 258) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-24 08:32:25 UTC (rev 259) @@ -30,11 +30,52 @@ $content.="Subject: ".urldecode($triple[0])."<br/>Predicate: ".urldecode($triple[1])."<br/>Object: ".urldecode($triple[2])."<br/><br/>\n"; } + $contentbuttons="<input type=\"button\" value=\"Positive\" class=\"button\" onclick=\"xajax_addPositive('".$subject."');return false;\" /> <input type=\"button\" value=\"Negative\" class=\"button\" onclick=\"xajax_addNegative('".$subject."');return false;\" />"; + $objResponse = new xajaxResponse(); $objResponse->assign("article", "innerHTML", $content); + $objResponse->assign("contentbuttons", "innerHTML", $contentbuttons); return $objResponse; } +function addPositive($subject) +{ + if (!isset($_SESSION['positive'])){ + $array=array($subject); + $_SESSION['positive']=$array; + } + else{ + $array=$_SESSION['positive']; + $array[]=$subject; + $_SESSION['positive']=$array; + } + + $content=$subject."<br/>"; + + $objResponse = new xajaxResponse(); + $objResponse->append("Positives", "innerHTML", $content); + return $objResponse; +} + +function addNegative($subject) +{ + if (!isset($_SESSION['negative'])){ + $array=array($subject); + $_SESSION['negative']=$array; + } + else{ + $array=$_SESSION['negative']; + $array[]=$subject; + $_SESSION['negative']=$array; + } + + $content=$subject."<br/>"; + + $objResponse = new xajaxResponse(); + $objResponse->append("Negatives", "innerHTML", $content); + return $objResponse; +} + require("ajax.php"); $xajax->processRequest(); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/default.css =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-22 18:57:44 UTC (rev 258) +++ trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-24 08:32:25 UTC (rev 259) @@ -463,4 +463,15 @@ 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; +} + +#contentbuttons{ + text-align:right; } \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-22 18:57:44 UTC (rev 258) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-24 08:32:25 UTC (rev 259) @@ -1,4 +1,6 @@ <?php +session_start(); + require("ajax.php"); ini_set('error_reporting',E_ALL); ini_set('max_execution_time',200); @@ -14,9 +16,11 @@ <script type="text/javascript"> showLoadingSubjects = function() { xajax.$('loadingSubject').style.display='block'; + xajax.$('searchcontent').style.display = 'none'; }; hideLoadingSubjects = function() { xajax.$('loadingSubject').style.display = 'none'; + xajax.$('searchcontent').style.display='block'; }; showLoadingArticle = function() { xajax.$('loadingArticle').style.display='block'; @@ -37,13 +41,13 @@ <form action="index.php" method="GET" id="searchForm"> <table border="0"> <tr><tb>Search:<br/></tb></tr> - <tr><tb><input type="textfield" name="label" id="label"><select name="limit" size="1" id="limit"> + <tr><tb><input type="textfield" name="label" id="label"> <select name="limit" size="1" id="limit"> <option>1</option> <option selected="selected">5</option> <option>10</option> <option>15</option> </select><br/></tb></tr> - <tr><tb><input type="button" value="Calculate" class="button" onclick="xajax_getsubjects(document.getElementById('label').value,document.getElementById('limit').value);return false;" /></tb></tr> + <tr><tb><input type="button" value="Search" class="button" onclick="xajax_getsubjects(document.getElementById('label').value,document.getElementById('limit').value);return false;" /></tb></tr> </table> </form> </div> <!-- boxcontent --> @@ -51,7 +55,8 @@ <div class="box" id="search"> <div class="boxtitle">Searchresults</div> - <div class="boxcontent" id="searchcontent"> + <div class="boxcontent"> + <div id="searchcontent" style="display:none"></div> <div id="loadingSubject" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> </div> <!-- box --> @@ -61,7 +66,7 @@ <div id="content"> <div class="box" id="search"> - <div class="boxtitle">Content</div> + <div class="boxtitle">Content<div id="contentbuttons"></div></div> <div class="boxcontent" id="article"> <div id="loadingArticle" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> @@ -69,6 +74,23 @@ <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> </div><!-- content --> +<div id="rightSidebar"> + +<div class="box"> + <div class="boxtitle">Positives</div> + <div class="boxcontent" id="Positives"> + </div> <!-- boxcontent --> +</div> <!-- box --> + +<div class="box"> + <div class="boxtitle">Negatives</div> + <div class="boxcontent" id="Negatives"> + </div> <!-- boxcontent --> +</div> <!-- box --> + +<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> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-22 18:57:47
|
Revision: 258 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=258&view=rev Author: sknappe Date: 2007-10-22 11:57:44 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Added Loading message Modified Paths: -------------- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/default.css trunk/src/dbpedia-navigator/Ajax-Test/index.php Modified: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-22 18:35:37 UTC (rev 257) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-22 18:57:44 UTC (rev 258) @@ -3,8 +3,11 @@ $xajax = new xajax("ajaxfunctions.php"); $xajax->register(XAJAX_FUNCTION, 'getsubjects', array( - 'onResponseDelay' => 'showLoading', - 'onComplete' => 'hideLoading' + 'onResponseDelay' => 'showLoadingSubjects', + 'beforeResponseProcessing' => 'hideLoadingSubjects' )); -$xajax->registerFunction("getarticle"); +$xajax->register(XAJAX_FUNCTION, 'getarticle', array( + 'onResponseDelay' => 'showLoadingArticle', + 'beforeResponseProcessing' => 'hideLoadingArticle' + )); ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/default.css =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-22 18:35:37 UTC (rev 257) +++ trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-22 18:57:44 UTC (rev 258) @@ -463,16 +463,4 @@ font-weight: bold; white-space: nowrap; font-size: 85%; -} - -/* - * Loading - */ -#loading { - padding: 20px; - display: none; /* hidden */ - left: 50%; - top: 25%; - font-weight: bold; - font-size: large; } \ No newline at end of file Modified: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-22 18:35:37 UTC (rev 257) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-22 18:57:44 UTC (rev 258) @@ -12,11 +12,17 @@ <link rel="stylesheet" href="default.css"/> <?php $xajax->printJavascript('xajax/'); ?> <script type="text/javascript"> - showLoading = function() { - xajax.$('loading').style.display='block'; + showLoadingSubjects = function() { + xajax.$('loadingSubject').style.display='block'; }; - hideLoading = function() { - xajax.$('loading').style.display = 'none'; + hideLoadingSubjects = function() { + xajax.$('loadingSubject').style.display = 'none'; + }; + showLoadingArticle = function() { + xajax.$('loadingArticle').style.display='block'; + }; + hideLoadingArticle = function() { + xajax.$('loadingArticle').style.display = 'none'; } </script> </head> @@ -46,7 +52,7 @@ <div class="box" id="search"> <div class="boxtitle">Searchresults</div> <div class="boxcontent" id="searchcontent"> - <div id="loading"><img src="ajax-loader.gif" alt="Loading..."/></div> + <div id="loadingSubject" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> </div> <!-- box --> @@ -57,6 +63,7 @@ <div class="box" id="search"> <div class="boxtitle">Content</div> <div class="boxcontent" id="article"> + <div id="loadingArticle" style="display:none"><img src="ajax-loader.gif" alt="Loading..."/></div> </div> <!-- boxcontent --> </div> <!-- box --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2007-10-22 18:35:41
|
Revision: 257 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=257&view=rev Author: sknappe Date: 2007-10-22 11:35:37 -0700 (Mon, 22 Oct 2007) Log Message: ----------- added Ajax-Test, an Ajax enhanced dbpedia navigator Modified Paths: -------------- trunk/src/dbpedia-navigator/Settings.php trunk/src/dbpedia-navigator/SparqlConnection.php trunk/src/dbpedia-navigator/index.php Added Paths: ----------- trunk/src/dbpedia-navigator/Ajax-Test/ trunk/src/dbpedia-navigator/Ajax-Test/Settings.php trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php trunk/src/dbpedia-navigator/Ajax-Test/ajax-loader.gif trunk/src/dbpedia-navigator/Ajax-Test/ajax.php trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php trunk/src/dbpedia-navigator/Ajax-Test/default.css trunk/src/dbpedia-navigator/Ajax-Test/index.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/LICENSE.txt trunk/src/dbpedia-navigator/Ajax-Test/xajax/README.txt trunk/src/dbpedia-navigator/Ajax-Test/xajax/copyright.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/copyright-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/helloworld-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/multiply/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/multiply/multiply-common-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/multiply/multiply-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/multiply/multiply-server-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/signup/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/signup/signup-common-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/signup/signup-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/signup/signup-server-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/thewall/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/thewall/thewall-common-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/thewall/thewall-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/thewall/thewall-server-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/xul/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/xul/xulApplication-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/examples/xul/xulServer-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/errorHandlingTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/index-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/legacy_tests/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/legacy_tests/catchAllFunctionTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/legacy_tests/index-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/legacy_tests/jsLoadingTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/legacy_tests/preFunctionTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/registerObjectTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/searchReplaceTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/alert_confirm-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/assign_append-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/callScriptTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/controls_html_401_transitional-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/controls_xhtml_10_transitional-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/css-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/delayEvents-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/events-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/functions-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/index-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/scriptContext-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/server_events-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/suite/theFrame-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/tests/xajaxResponseTest-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/content-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/document-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/form-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/group-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/misc-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_controls/structure-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/support/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/support/xajaxCallableObject-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/support/xajaxEvent-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/support/xajaxUserFunction-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/xajaxCallableObjectPlugin-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/xajaxDefaultIncludePlugin-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/xajaxEventPlugin-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/xajaxFunctionPlugin-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/plugin_layer/xajaxScriptPlugin-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajax-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxArgumentManager-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxCall-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxCompress-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxControl-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxLanguageManager-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxPlugin-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxPluginManager-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxRequest-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxResponse-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajaxResponseManager-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_core/xajax_lang_de-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_js/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_js/xajax_core_uncompressed-js.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_js/xajax_debug_uncompressed-js.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_js/xajax_lang_de_uncompressed-js.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_js/xajax_legacy_uncompressed-js.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_js/xajax_verbose_uncompressed-js.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_plugins/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_plugins/response/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_plugins/response/googleMap-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/xajax_plugins/response/tableUpdater-inc-php.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Classes.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Constants.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Files.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Functions.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Functions2.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Functions3.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Functions4.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Functions5.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General10.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General2.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General3.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General4.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General5.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General6.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General7.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General8.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/General9.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Variables.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index/Variables2.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/index.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/javascript/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/javascript/main.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/styles/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/styles/main.css trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/helloworld.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/multiply/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/multiply/multiply.common.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/multiply/multiply.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/multiply/multiply.server.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/signup/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/signup/signup.common.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/signup/signup.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/signup/signup.server.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/thewall/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/thewall/brick.jpg trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/thewall/thewall.common.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/thewall/thewall.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/thewall/thewall.server.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/xul/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/xul/xulApplication.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/xul/xulClient.xul trunk/src/dbpedia-navigator/Ajax-Test/xajax/examples/xul/xulServer.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/release_notes.txt trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/HTTPStatusTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/basicPluginTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/callScriptTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/callTechniquesTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/catchAllFunctionTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/changeEventTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/charEncodingTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/createFormInputTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/customResponseClassTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/disabledFormElementsTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/errorHandlingTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/eventHandlerTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/fluentInterfaceTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/formSubmissionTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/includeExternalScriptTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/index.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/largeResponseTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/legacy_tests/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/legacy_tests/catchAllFunctionTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/legacy_tests/index.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/legacy_tests/jsLoadingTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/legacy_tests/preFunctionTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/myExternalFunction.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/myExternalFunction.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/nonXajaxResponseTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/performance.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/phpWhitespaceTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/preFunctionTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/redirectTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/registerExternalFunctionTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/registerObjectTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/searchReplaceTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/alert_confirm.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/alert_confirm_external.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/assign_append.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/callScriptTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/controls_html_401_transitional.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/controls_xhtml_10_transitional.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/css.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/css1.css trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/css2.css trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/delayEvents.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/events.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/frame_left.htm trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/frame_right.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/frameset.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/functions.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/googleMap.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/iframe.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/iframe.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/index.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/none.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/options.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/pluginTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/scriptContext.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/server_events.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/tables.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/theFrame.html trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/theFrame.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/suite/transport.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/tests/xajaxResponseTest.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/content.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/document.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/form.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/group.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/misc.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/structure.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/validate_HTML401TRANSITIONAL.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_controls/validate_XHTML10TRANSITIONAL.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/legacy.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/support/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/support/xajaxCallableObject.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/support/xajaxEvent.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/support/xajaxUserFunction.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/xajaxCallableObjectPlugin.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/xajaxDefaultIncludePlugin.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/xajaxEventPlugin.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/xajaxFunctionPlugin.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/plugin_layer/xajaxScriptPlugin.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajax.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxArgumentManager.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxCall.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxCompress.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxControl.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxLanguageManager.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxPlugin.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxPluginManager.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxRequest.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxResponse.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajaxResponseManager.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_core/xajax_lang_de.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_core.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_core_uncompressed.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_debug.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_debug_uncompressed.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_lang_de.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_lang_de_uncompressed.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_legacy.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_legacy_uncompressed.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_verbose.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_js/xajax_verbose_uncompressed.js trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_plugins/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_plugins/request/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_plugins/response/ trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_plugins/response/googleMap.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_plugins/response/tableUpdater.inc.php trunk/src/dbpedia-navigator/Ajax-Test/xajax/xajax_plugins/response/tableUpdater.js Added: trunk/src/dbpedia-navigator/Ajax-Test/Settings.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/Settings.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/Settings.php 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,7 @@ +<?php + +class Settings{ + public $wsdluri="http://localhost:8181/services?wsdl"; + public $dbpediauri="http://dbpedia.openlinksw.com:8890/sparql"; +} +?> \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/SparqlConnection.php 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,195 @@ +<?php + +//require_once 'pear/HTTP_Request.php'; + +class SparqlConnection +{ + private $DBPediaUrl; + private $DLLearnerUri; + private $client; + + function SparqlConnection($DBPediaUrl,$DLLearnerUri) + { + ini_set("soap.wsdl_cache_enabled","0"); + ini_set('default_socket_timeout',200); + $this->DBPediaUrl=$DBPediaUrl; + $this->DLLearnerUri=$DLLearnerUri; + //$this->loadWSDLfiles($DLLearnerUri); + $this->client=new SoapClient("main.wsdl"); + } + + function getConceptFromExamples($posExamples,$negExamples) + { + $id=$this->client->generateID(); + + $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); + $this->client->applyConfigEntryInt($id, $ksID, "numberOfRecursions", 2); + $this->client->applyConfigEntryStringArray($id, $ksID, "instances", array_merge($posExamples,$negExamples)); + $this->client->applyConfigEntryInt($id, $ksID, "filterMode", 0); + $this->client->applyConfigEntryStringArray($id, $ksID, "predList", array()); + $this->client->applyConfigEntryStringArray($id, $ksID, "objList", array()); + $this->client->applyConfigEntryStringArray($id, $ksID, "classList", array()); + $this->client->applyConfigEntryString($id, $ksID, "format", "KB"); + $this->client->applyConfigEntryBoolean($id, $ksID, "dumpToFile", true); + + $this->client->setReasoner($id, "dig"); + $this->client->setLearningProblem($id, "posNegDefinition"); + $this->client->setPositiveExamples($id, $posExamples); + $this->client->setNegativeExamples($id, $negExamples); + $this->client->setLearningAlgorithm($id, "refinement"); + + $start = microtime(true); + + $this->client->init($id); + + $learn_start = microtime(true); + $init = $learn_start - $start; + echo 'components initialised in '.$init.' seconds<br />'; + + $threaded=true; + + if($threaded == false) { + + $concept = $this->client->learn($id); + + $learn = microtime(true) - $learn_start; + echo 'concept learned in '.$learn.' seconds<br />'; + + echo 'result: '.$concept; + + } else { + + $this->client->learnThreaded($id); + + $i = 1; + $sleeptime = 1; + + do { + // sleep a while + sleep($sleeptime); + + // see what we have learned so far + $concept=$this->client->getCurrentlyBestConcept($id); + $running=$this->client->isAlgorithmRunning($id); + + $seconds = $i * $sleeptime; + + echo 'result after '.$seconds.' seconds of sleep: '.$concept.'<br />'; + + $i++; + } while($running); + + echo 'algorithm finished'; + } + return $concept; + } + + function getTriples($individual) + { + $id=$this->client->generateID(); + + $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); + $this->client->applyConfigEntryInt($id, $ksID, "numberOfRecursions", 1); + $this->client->applyConfigEntryStringArray($id, $ksID, "instances", array($individual)); + $this->client->applyConfigEntryInt($id, $ksID, "filterMode", -1); + $this->client->applyConfigEntryStringArray($id, $ksID, "predList", array()); + $this->client->applyConfigEntryStringArray($id, $ksID, "objList", array()); + $this->client->applyConfigEntryStringArray($id, $ksID, "classList", array()); + $this->client->applyConfigEntryString($id, $ksID, "format", "Array"); + $this->client->applyConfigEntryBoolean($id, $ksID, "dumpToFile", false); + $this->client->applyConfigEntryBoolean($id,$ksID,"useLits",true); + + $object=$this->client->getTriples($id,$ksID); + $array=$object->item; + $ret=array(); + foreach ($array as $element) + { + $items=preg_split("[<]",$element,-1, PREG_SPLIT_NO_EMPTY); + $ret[]=$items; + } + + return $ret; + } + + function getSubjects($label='Leipzig',$limit=5) + { + $id=$this->client->generateID(); + + $ksID = $this->client->addKnowledgeSource($id, "sparql", $this->DBPediaUrl); + $object=$this->client->getSubjects($id,$ksID,$label,$limit); + return $object->item; + } + + private function loadWSDLfiles($wsdluri){ + $main=$this->getwsdl($wsdluri); + $other=$this->getOtherWSDL($main); + $newMain=$this->changeWSDL($main); + $this->writeToFile("main.wsdl",$newMain); + $x=0; + foreach ($other as $o){ + $this->writeToFile("def".($x++).".xsd",$this->getwsdl($o)); + } + + } + + private function changeWSDL($wsdl){ + $before="<xsd:import schemaLocation=\""; + $after="\" namespace=\""; + $newWSDL=""; + $desca="def"; + $descb=".xsd"; + $x=0; + while($posstart= strpos ( $wsdl, $before )){ + + $posstart+=strlen($before); + $newWSDL.=substr($wsdl,0,$posstart); + $wsdl=substr($wsdl,$posstart); + $newWSDL.=$desca.($x++).$descb; + $posend= strpos ( $wsdl, $after ); + $wsdl=substr($wsdl,$posend); + + } + return $newWSDL.$wsdl; + + } + + private function getOtherWSDL($wsdl){ + $before="<xsd:import schemaLocation=\""; + $after="\" namespace=\""; + $ret=array(); + while($posstart= strpos ( $wsdl, $before )){ + $posstart+=strlen($before); + $wsdl=substr($wsdl,$posstart); + $posend= strpos ( $wsdl, $after ); + $tmp=substr($wsdl,0,$posend); + $ret[]=$tmp; + $wsdl=substr($wsdl,$posend+strlen($after)); + } + return $ret; + } + + + + + private function getwsdl($wsdluri){ + // this is copied from the Pear example + // please don't ask me how it works + $req = &new HTTP_Request($wsdluri); + $message=""; + $req->setMethod(HTTP_REQUEST_METHOD_GET); + $req->sendRequest(); + $ret=$req->getResponseBody(); + return $ret; + } + + + + private function writeToFile($filename,$content){ + + $fp=fopen($filename,"w"); + fwrite($fp,$content); + fclose($fp); + + } +} +?> \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/ajax-loader.gif =================================================================== (Binary files differ) Property changes on: trunk/src/dbpedia-navigator/Ajax-Test/ajax-loader.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: trunk/src/dbpedia-navigator/Ajax-Test/ajax.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajax.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajax.php 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,10 @@ +<?php +require_once ("xajax/xajax_core/xajax.inc.php"); + +$xajax = new xajax("ajaxfunctions.php"); +$xajax->register(XAJAX_FUNCTION, 'getsubjects', array( + 'onResponseDelay' => 'showLoading', + 'onComplete' => 'hideLoading' + )); +$xajax->registerFunction("getarticle"); +?> \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/ajaxfunctions.php 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,40 @@ +<?php +function getsubjects($label, $limit) +{ + include_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); + + $content=""; + $subjects=$sc->getSubjects($label,$limit); + foreach ($subjects as $subject) + { + $content.="<a href=\"\" onclick=\"xajax_getarticle('".$subject."');return false;\">".urldecode($subject)."</a><br/>"; + } + + $objResponse = new xajaxResponse(); + $objResponse->assign("searchcontent", "innerHTML", $content); + return $objResponse; +} + +function getarticle($subject) +{ + include_once("Settings.php"); + require_once("SparqlConnection.php"); + $settings=new Settings(); + $sc=new SparqlConnection($settings->dbpediauri,$settings->wsdluri); + $triples=$sc->getTriples($subject); + $content=""; + foreach ($triples as $triple){ + $content.="Subject: ".urldecode($triple[0])."<br/>Predicate: ".urldecode($triple[1])."<br/>Object: ".urldecode($triple[2])."<br/><br/>\n"; + } + + $objResponse = new xajaxResponse(); + $objResponse->assign("article", "innerHTML", $content); + return $objResponse; +} + +require("ajax.php"); +$xajax->processRequest(); +?> \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/default.css =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/default.css (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/default.css 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,478 @@ +/** + * 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; +} + +/* + * Tables + */ + +tr.odd { + background-color: #ccc; +} + +tr.even { + background-color: #eee; +} + +table.instanceTable th { + text-align: left; +/* background-color: #eee;*/ +} + +table.instanceTable > tbody > tr > td { + padding-top: 0.5em; +} + +table.instanceTable td.property { + text-align: right; + font-style: italic; + padding-right: 5px; +} + +table.instanceTable ul { + margin: 0px; + padding-left: 20px; +} + +table.instanceTable { + width: 100%; +} + +.searchHighlight { + background-color: orange; +} + +table.tripletable { + width: 100%; + font-size: 90%; +} + +.tripletable td { + padding: 0.4em; +} + +table.blind tr td { + padding-top: 0.4em; +} + +/* + * Instances + */ + +.instance .instance { + margin-left: 13px; + background-color: #ddd; +} +.instance .instance td { + font-size: 90%; +} +.instance .instance .instance { + background-color: #eee; +} + +.instance .instance .instance .instance { + background-color: #fff; +} + +#instanceEdit { + border-spacing: 0px; + width: 100%; +} + +#instanceEdit input, #instanceEdit textarea { +/* width: 250px;*/ + background-color: #fff; + font-size: 95%; + font-family: "Lucida Grande", Helvetica, Arial, sans-serif; + padding: 0.1em 0; +} + +#instanceEdit > tbody > tr > td, #instanceEdit > tr > td { + background-color: #eee; + padding: 5px; + border-bottom: 2px solid #fdfdfd; +} + +/* + * Calendar + */ + +table.calendar { + margin-top: 1em; + width: 100%; + height: 730px; + table-layout: fixed; + font-size: 90%; +} + +.calendar .weekday0 { + background-color: #eee; + padding: 0.4em; +} +.calendar .weekday1 { + background-color: #f5f5f5; + padding: 0.4em; +} +.calendar .weekend0 { + background-color: #ddd; + padding: 0.4em; +} +.calendar .weekend1 { + background-color: #eaeaea; + padding: 0.4em; +} + +#map { + margin-top: 0.5em; + width: 100%; + height: 750px; + font-size: 90%; +} + +#map .instance td { + font-size: 80%; + padding: 0 3px; + border-bottom: 5px solid white; +} + +#superClassPath { + margin-bottom: 0.5em; +} + +img { + border: none; +} + +span.submit { + float: right; + padding-right: 100px; +} + +/* + * Autosuggest box + */ +div.autosuggest { + font-size: 85%; + position: absolute; + background-color: #fff; + border: 1px solid #bbb; +} + +div.autosuggest ul { + list-style-type: none; + list-style-position: inside; + padding-left: 0px; +} + +div.autosuggest ul li.selected { + background-color: #bde; +} + +div.autosuggest ul li { + display: block; + padding: 0.2em; +/* height: 22px;*/ + cursor: pointer; +} + +span.formal { + display: 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%; +} + +/* + * Loading + */ +#loading { + padding: 20px; + display: none; /* hidden */ + left: 50%; + top: 25%; + font-weight: bold; + font-size: large; +} \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/index.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/index.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/index.php 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,68 @@ +<?php +require("ajax.php"); + ini_set('error_reporting',E_ALL); + ini_set('max_execution_time',200); + +echo '<?xml version="1.0" encoding="UTF-8"?>' +?> +<html> + <head> + <title>DL Learner</title> + <meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\"/> + <link rel="stylesheet" href="default.css"/> + <?php $xajax->printJavascript('xajax/'); ?> + <script type="text/javascript"> + showLoading = function() { + xajax.$('loading').style.display='block'; + }; + hideLoading = function() { + xajax.$('loading').style.display = 'none'; + } + </script> + </head> + <body> +<h3>DBPedia-Navigator-Test</h3> +<div id="wrapper"> +<div id="leftSidebar"> + +<div class="box" id="search"> + <div class="boxtitle">Search</div> + <div class="boxcontent"> + <form action="index.php" method="GET" id="searchForm"> + <table border="0"> + <tr><tb>Search:<br/></tb></tr> + <tr><tb><input type="textfield" name="label" id="label"><select name="limit" size="1" id="limit"> + <option>1</option> + <option selected="selected">5</option> + <option>10</option> + <option>15</option> + </select><br/></tb></tr> + <tr><tb><input type="button" value="Calculate" class="button" onclick="xajax_getsubjects(document.getElementById('label').value,document.getElementById('limit').value);return false;" /></tb></tr> + </table> + </form> + </div> <!-- boxcontent --> +</div> <!-- box --> + +<div class="box" id="search"> + <div class="boxtitle">Searchresults</div> + <div class="boxcontent" id="searchcontent"> + <div id="loading"><img src="ajax-loader.gif" alt="Loading..."/></div> + </div> <!-- boxcontent --> +</div> <!-- box --> + +<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> +</div><!-- END leftSidebar --> + +<div id="content"> +<div class="box" id="search"> + <div class="boxtitle">Content</div> + <div class="boxcontent" id="article"> + </div> <!-- boxcontent --> +</div> <!-- box --> + +<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> +</div><!-- content --> +</div> + </body> +</html> + \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/xajax/LICENSE.txt =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/xajax/LICENSE.txt (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/xajax/LICENSE.txt 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,11 @@ +Copyright (c) 2006 - 2007, Jared White & J. Max Wilson +Portions Copyright (c) 2007, Joseph Woolley +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the name of xajax nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file Added: trunk/src/dbpedia-navigator/Ajax-Test/xajax/README.txt =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/xajax/README.txt (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/xajax/README.txt 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,149 @@ +=============================================================================== + + xajax PHP & Javascript Library + The easiest way to develop powerful Ajax applications with PHP + + Version 0.5 (Beta 4) + README Text File + September 5, 2007 + + ------------------------------------------------------ + | ** Release Notes: | + | See release_notes.txt in this download archive | + | | + | ** Project Managers: | + | Joseph Woolley (jo...@ca...) | + | J. Max Wilson (jma...@us...) | + | | + | ** Developers: | + | Steffen Konerow (st...@nr...) | + | Jared White (ja...@in...) | + | Eion Robb (ei...@bi...) | + ------------------------------------------------------ + +=============================================================================== + + :: To find out what's changed since the 0.5 Beta 3 release of xajax, :: + :: view the Release Notes in the file listed above. :: + +=============================================================================== + +xajax 0.5 is leaps and bounds forward from the last stable release, however, +xajax 0.2.5 was released to help bridge the gap. xajax 0.5 has an +extensible and flexible plugin interface so both the php and javascript +engines can be adapted to fit your needs. With xajax 0.5 beta 3, we've added +an HTML control library with built in support for both plain and xajax based +javascript and added new features that will give you a development platform +to build on for years to come. In this release, we've added the ability +to customize debug, warning and error messages, thus allowing for easier +development and debugging for non-english speaking programmers. + +Beta 4 represents a solidification of the xajax php and javascript code, so +from this point, the xajax interface will remain mostly unchanged until stable +release. We have greatly improved the documentation that is available for +the xajax api. In addition, we will continue to work hard to resolve any +issues that are discovered in the code, the documentation, wiki and to answer +questions in the forum. + +We published an updated website at http://xajaxproject.com Thanks to Jared and +Steffen for putting together a great looking site with a lot of functionality +and flexibility! The forums continue to be active and interesting, so be sure +to check in from time to time to keep current with all things xajax at +http://community.xajaxproject.com and visit sourceforge for posting feature +requests, bug fix requests and patches at http://www.sourceforge.net/projects/xajax + +Thank you for downloading xajax 0.5 beta 4! + +____________________________________________________________________ + + +"it's safer, better, faster and even more bright and shiny" - Steffen + +____________________________________________________________________ + +1. Introduction + +xajax is a PHP library that you can include in your PHP scripts +to provide an easy way for Web pages to call PHP functions or +object methods using Ajax (Asynchronous Javascript And XML). Simply +register one or more functions/methods with the xajax object that +return a proper XML response using the supplied response class, add +a statement in your HTML header to print the Javascript include, +and run a request processor prior to outputting any HTML. Then add +some simple Javascript function calls to your HTML, and xajax takes +care of the rest! + +xajax includes a Javascript object to facilitate the communication +between the browser and the server, and it can also be used as a +Javascript library directly to simplify certain DOM and event +manipulations. However, you can definitely choose to use a +dedicated Javascript "engine" of your liking and integrate it with +xajax's client/server communication features. Since xajax is moving +towards a highly modular, plugin-based system, you can alter and extend +its behavior in a number of ways. + +2. For More Information + +The official xajax Web site is located at: +http://www.xajaxproject.org + +Visit the xajax Forums at: +http://community.xajaxproject.org +to keep track of the latest news and participate in the community +discussion. + +There is also a wiki with documentation, tips & tricks, and other +information located at: +http://wiki.xajaxproject.org + +3. Installation + +To run xajax, you need: +* Apache Web Server or IIS for Windows XP/2003 Server + (other servers may or may not work and are not supported at this + time) +* PHP 4.3.x or PHP 5.x +* Minimum supported browsers: Internet Explorer 5.5, Firefox 1.0 (or + equivalent Gecko-based browser), Safari 1.3, Opera 8.5 (older + versions only work with GET requests) + +To install xajax: +Unpack the contents of this archive and copy them to your main Web +site folder. Or if you wish, you can put all of the files in a +dedicated "xajax" folder on your Web server (make sure that you +know what that URL is relative your site pages so you can provide +xajax with the correct installed folder URL). Note that the +"thewall" folder in the "examples" folder needs to be writable by +the Web server for that example to function. + +Within the main xajax folder there are four folders: "examples", +"tests", "xajax_js", and "xajax_core". Only "xajax_js" and +"xajax_core" are required to use xajax. + +You should be able to view the PHP pages in "tests" from your +Web browser and see xajax working in action. If you can view the +pages but the AJAX calls are not working, there may be something +wrong with your server setup or perhaps your browser is not +supported or configured correctly. If worst comes to worst, post +a message in our forums and someone may be able to help you. + +4. Documentation + +Detailed documentation for the xajax PHP classes is available on +our wiki (URL listed above in section 2), and more is on the way +(particularly in regards to the Javascript component of xajax). +Another good way of learning xajax is to look at the code for the +examples and tests. If you need any help, pop in the forums and +ask for assistance (and the more specific your questions are, +the better the answers will be). + +5. Contributing to xajax + +xajax is released under the BSD open source license. If you wish +to contribute to the project or suggest new features, introduce +yourself on the forums or you can e-mail the project managers +and developers at the addresses listed at the top of this README. + +6. Good luck and enjoy! + +==================================================================== Added: trunk/src/dbpedia-navigator/Ajax-Test/xajax/copyright.inc.php =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/xajax/copyright.inc.php (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/xajax/copyright.inc.php 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,54 @@ +<?php +/* + File: copyright.inc.php + + This file contains detailed information regarding the xajax project, + current version, copyrights, licnese and documentation. + + You do not need to include this file in your project for xajax to + function properly. +*/ + +/* + Section: Current Version + + xajax version 0.5 (beta 4) +*/ + +/* + Section: Copyright + + - copyright (c) 2005-2007 by Jared White & J. Max Wilson + - portions copyright (c) 2006-2007 by Joseph Woolley +*/ + +/* + Section: Description + + xajax is an open source PHP class library for easily creating powerful + PHP-driven, web-based Ajax Applications. Using xajax, you can asynchronously + call PHP functions and update the content of your your webpage without + reloading the page. +*/ + +/* + Section: License + + xajax is released under the terms of the BSD license + http://www.xajaxproject.org/bsd_license.txt +*/ + +/* + @package xajax + @version $Id: copyright.inc.php 327 2007-02-28 16:55:26Z calltoconstruct $ + @copyright Copyright (c) 2005-2006 by Jared White & J. Max Wilson + @license http://www.xajaxproject.org/bsd_license.txt BSD License +*/ + +/* + Section: Online documentation + + Online documentation for this class is available on the xajax wiki at: + http://wiki.xajaxproject.org/Documentation:xajax.inc.php +*/ + Added: trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/copyright-inc-php.html =================================================================== --- trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/copyright-inc-php.html (rev 0) +++ trunk/src/dbpedia-navigator/Ajax-Test/xajax/documentation/files/copyright-inc-php.html 2007-10-22 18:35:37 UTC (rev 257) @@ -0,0 +1,33 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> + +<html><head><title>copyright.inc.php</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class=UnframedPage onLoad="NDOnLoad()"><script language=JavaScript><!-- +if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script> + +<!-- Generated by Natural Docs, version 1.35 --> +<!-- http://www.naturaldocs.org --> + +<!-- saved from url=(0026)http://www.naturaldocs.org --> + +<table border=0 cellspacing=0 cellpadding=0 width=100%><tr><td class=MenuSection valign=top><!--START_ND_MENU--><div class=MEntry><div class=MFile id=MSelected>copyright.<span class=HB> </span>inc.php</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Examples</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="examples/helloworld-php.html">helloworld.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Multiply</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="examples/multiply/multiply-common-php.html">common.php</a></div></div><div class=MEntry><div class=MFile><a href="examples/multiply/multiply-php.html">php</a></div></div><div class=MEntry><div class=MFile><a href="examples/multiply/multiply-server-php.html">server.php</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Signup</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="examples/signup/signup-common-php.html">common.php</a></div></div><div class=MEntry><div class=MFile><a href="examples/signup/signup-php.html">php</a></div></div><div class=MEntry><div class=MFile><a href="examples/signup/signup-server-php.html">server.php</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Thewall</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="examples/thewall/thewall-common-php.html">common.php</a></div></div><div class=MEntry><div class=MFile><a href="examples/thewall/thewall-php.html">php</a></div></div><div class=MEntry><div class=MFile><a href="examples/thewall/thewall-server-php.html">server.php</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="examples/xul/xulApplication-php.html">xulApplication.php</a></div></div><div class=MEntry><div class=MFile><a href="examples/xul/xulServer-php.html">xulServer.php</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="xajax_plugins/response/googleMap-inc-php.html">googleMap.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_plugins/response/tableUpdater-inc-php.html">tableUpdater.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Tests</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="tests/errorHandlingTest-php.html">errorHandlingTest.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/index-php.html">index.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Legacy_tests</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MFile><a href="tests/legacy_tests/catchAllFunctionTest-php.html">catchAllFunctionTest.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/legacy_tests/index-php.html">index.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/legacy_tests/jsLoadingTest-php.html">jsLoadingTest.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/legacy_tests/preFunctionTest-php.html">preFunctionTest.php</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="tests/registerObjectTest-php.html">registerObjectTest.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/searchReplaceTest-php.html">searchReplaceTest.php</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Suite</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="tests/suite/alert_confirm-php.html">alert_confirm.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/assign_append-php.html">assign_append.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/callScriptTest-php.html">callScriptTest.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/controls_html_401_transitional-php.html">controls_html_401_transitional.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/controls_xhtml_10_transitional-php.html">controls_xhtml_10_transitional.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/css-php.html">css.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/delayEvents-php.html">delayEvents.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/events-php.html">events.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/functions-php.html">functions.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/index-php.html">index.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/scriptContext-php.html">scriptContext.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/server_events-php.html">server_events.php</a></div></div><div class=MEntry><div class=MFile><a href="tests/suite/theFrame-php.html">theFrame.php</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="tests/xajaxResponseTest-php.html">xajaxResponseTest.php</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent10')">Xajax_core</a><div class=MGroupContent id=MGroupContent10><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent9')">Plugin_layer</a><div class=MGroupContent id=MGroupContent9><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Support</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/support/xajaxCallableObject-inc-php.html">xajaxCallableObject.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/support/xajaxEvent-inc-php.html">xajaxEvent.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/support/xajaxUserFunction-inc-php.html">xajaxUserFunction.<span class=HB> </span>inc.php</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/xajaxCallableObjectPlugin-inc-php.html">xajaxCallableObjectPlugin.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/xajaxDefaultIncludePlugin-inc-php.html">xajaxDefaultIncludePlugin.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/xajaxEventPlugin-inc-php.html">xajaxEventPlugin.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/xajaxFunctionPlugin-inc-php.html">xajaxFunctionPlugin.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/plugin_layer/xajaxScriptPlugin-inc-php.html">xajaxScriptPlugin.<span class=HB> </span>inc.php</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="xajax_core/xajax-inc-php.html">xajax.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/xajax_lang_de-inc-php.html">xajax_lang_de.<span class=HB> </span>inc.php</a></div></div><div class=MEntry><div class=MFile><a href="xajax_core/xajaxA... [truncated message content] |
From: <jen...@us...> - 2007-10-19 17:04:13
|
Revision: 256 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=256&view=rev Author: jenslehmann Date: 2007-10-19 10:04:12 -0700 (Fri, 19 Oct 2007) Log Message: ----------- implemented feature request #1816656 use "refinement.replaceSearchTree = true;" to replace the search tree at each iteration instead of appending it 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 2007-10-19 15:42:38 UTC (rev 255) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2007-10-19 17:04:12 UTC (rev 256) @@ -44,6 +44,7 @@ // configuration options private boolean writeSearchTree; private File searchTreeFile; + private boolean replaceSearchTree = false; private static String defaultSearchTreeFile = "log/searchTree.txt"; private Heuristic heuristic = Heuristic.LEXICOGRAPHIC; Set<AtomicConcept> allowedConcepts; @@ -100,7 +101,7 @@ // boolean quiet = false; boolean showBenchmarkInformation = false; // boolean createTreeString = false; - String searchTree = new String(); + // String searchTree = new String(); TreeSet<Node> expandedNodes = new TreeSet<Node>(nodeComparatorStable); // Konfiguration des Algorithmus @@ -159,6 +160,7 @@ Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); options.add(new BooleanConfigOption("writeSearchTree", "specifies whether to write a search tree", false)); options.add(new StringConfigOption("searchTreeFile","file to use for the search tree", defaultSearchTreeFile)); + options.add(new BooleanConfigOption("replaceSearchTree","specifies whether to replace the search tree in the log file after each run or append the new search tree", false)); StringConfigOption heuristicOption = new StringConfigOption("heuristic", "specifiy the heuristic to use", "lexicographic"); heuristicOption.setAllowedValues(new String[] {"lexicographic", "flexible"}); options.add(heuristicOption); @@ -196,6 +198,8 @@ writeSearchTree = (Boolean) entry.getValue(); else if(name.equals("searchTreeFile")) searchTreeFile = new File((String)entry.getValue()); + else if(name.equals("replaceSearchTree")) + replaceSearchTree = (Boolean) entry.getValue(); else if(name.equals("heuristic")) { String value = (String) entry.getValue(); if(value.equals("lexicographic")) @@ -222,6 +226,9 @@ if(searchTreeFile == null) searchTreeFile = new File(defaultSearchTreeFile); + if(writeSearchTree) + Files.clearFile(searchTreeFile); + // adjust heuristic if(heuristic == Heuristic.LEXICOGRAPHIC) nodeComparator = new NodeComparator(); @@ -407,11 +414,15 @@ expandedNodes.clear(); treeString += "horizontal expansion: " + minimumHorizontalExpansion + " to " + maximumHorizontalExpansion + "\n"; treeString += topNode.getTreeString(); + treeString += "\n"; // System.out.println(treeString); - searchTree += treeString + "\n"; + // searchTree += treeString + "\n"; // TODO: ev. immer nur einen search tree speichern und den an die // Datei anhängen => spart Speicher - Files.createFile(searchTreeFile, searchTree); + if(replaceSearchTree) + Files.createFile(searchTreeFile, treeString); + else + Files.appendFile(searchTreeFile, treeString); } // Anzahl Schleifendurchläufe @@ -423,8 +434,8 @@ } // Suchbaum in Datei schreiben - if(writeSearchTree) - Files.createFile(searchTreeFile, searchTree); +// if(writeSearchTree) +// Files.createFile(searchTreeFile, searchTree); // Ergebnisausgabe /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-10-19 15:42:40
|
Revision: 255 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=255&view=rev Author: jenslehmann Date: 2007-10-19 08:42:38 -0700 (Fri, 19 Oct 2007) Log Message: ----------- fix for #1816596 Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/config/CommonConfigMappings.java Modified: trunk/src/dl-learner/org/dllearner/core/config/CommonConfigMappings.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/config/CommonConfigMappings.java 2007-10-19 14:53:57 UTC (rev 254) +++ trunk/src/dl-learner/org/dllearner/core/config/CommonConfigMappings.java 2007-10-19 15:42:38 UTC (rev 255) @@ -26,6 +26,7 @@ import org.dllearner.core.dl.AtomicConcept; import org.dllearner.core.dl.AtomicRole; import org.dllearner.core.dl.Individual; +import org.dllearner.utilities.ConceptComparator; /** * @author Jens Lehmann @@ -33,6 +34,9 @@ */ public class CommonConfigMappings { + private static ConceptComparator cm = new ConceptComparator(); + // private static RoleComparator rc = new RoleComparator(); + public static SortedSet<Individual> getIndividualSet(Set<String> individuals) { SortedSet<Individual> set = new TreeSet<Individual>(); for(String individual : individuals) @@ -41,7 +45,7 @@ } public static SortedSet<AtomicConcept> getAtomicConceptSet(Set<String> atomicConcepts) { - SortedSet<AtomicConcept> set = new TreeSet<AtomicConcept>(); + SortedSet<AtomicConcept> set = new TreeSet<AtomicConcept>(cm); for(String atomicConcept : atomicConcepts) set.add(new AtomicConcept(atomicConcept)); return set; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2007-10-19 13:53:32
|
Revision: 253 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=253&view=rev Author: jenslehmann Date: 2007-10-19 06:53:31 -0700 (Fri, 19 Oct 2007) Log Message: ----------- added possibility to query the n best concepts of a running learning algorithm Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java trunk/src/dl-learner/org/dllearner/cli/Start.java trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java trunk/src/dl-learner/org/dllearner/utilities/Datastructures.java Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java =================================================================== --- trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2007-10-19 12:01:07 UTC (rev 252) +++ trunk/src/dl-learner/org/dllearner/algorithms/refinement/ROLearner.java 2007-10-19 13:53:31 UTC (rev 253) @@ -901,6 +901,19 @@ } @Override + public synchronized List<Concept> getBestSolutions(int nrOfSolutions) { + List<Concept> best = new LinkedList<Concept>(); + int i=0; + for(Node n : candidatesStable.descendingSet()) { + best.add(n.getConcept()); + if(i==nrOfSolutions) + return best; + i++; + } + return best; + } + + @Override public Score getSolutionScore() { if(posOnly) return posOnlyLearningProblem.computeScore(getBestSolution()); Modified: trunk/src/dl-learner/org/dllearner/cli/Start.java =================================================================== --- trunk/src/dl-learner/org/dllearner/cli/Start.java 2007-10-19 12:01:07 UTC (rev 252) +++ trunk/src/dl-learner/org/dllearner/cli/Start.java 2007-10-19 13:53:31 UTC (rev 253) @@ -208,7 +208,7 @@ printConclusions(rs, algDuration); } - + } // creates a mapping from components to option prefix strings Modified: trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java 2007-10-19 12:01:07 UTC (rev 252) +++ trunk/src/dl-learner/org/dllearner/core/LearningAlgorithm.java 2007-10-19 13:53:31 UTC (rev 253) @@ -21,6 +21,7 @@ import java.util.Collection; import java.util.LinkedList; +import java.util.List; import org.dllearner.core.dl.Concept; @@ -56,6 +57,12 @@ */ public abstract Concept getBestSolution(); + public synchronized List<Concept> getBestSolutions(int nrOfSolutions) { + List<Concept> single = new LinkedList<Concept>(); + single.add(getBestSolution()); + return single; + } + /** * Returns all learning problems supported by this component. */ Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-19 12:01:07 UTC (rev 252) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2007-10-19 13:53:31 UTC (rev 253) @@ -48,6 +48,7 @@ import org.dllearner.kb.SparqlEndpoint; import org.dllearner.learningproblems.PosNegDefinitionLP; import org.dllearner.learningproblems.PosNegInclusionLP; +import org.dllearner.learningproblems.PosOnlyDefinitionLP; import org.dllearner.parser.KBParser; import org.dllearner.parser.ParseException; import org.dllearner.reasoning.DIGReasoner; @@ -82,6 +83,7 @@ reasonerMapping.put("dig", DIGReasoner.class); learningProblemMapping.put("posNegDefinition", PosNegDefinitionLP.class); learningProblemMapping.put("posNegInclusion", PosNegInclusionLP.class); + learningProblemMapping.put("posOnlyDefinition", PosOnlyDefinitionLP.class); learningAlgorithmMapping.put("refinement", ROLearner.class); components = Helper.union(knowledgeSourceMapping.keySet(),reasonerMapping.keySet()); components = Helper.union(components, learningProblemMapping.keySet()); @@ -289,6 +291,13 @@ } @WebMethod + public String[] getCurrentlyBestConcepts(int id, int nrOfConcepts) throws ClientNotKnownException { + ClientState state = getState(id); + List<Concept> bestConcepts = state.getLearningAlgorithm().getBestSolutions(nrOfConcepts); + return bestConcepts.toArray(new String[bestConcepts.size()]); + } + + @WebMethod public boolean isAlgorithmRunning(int id) throws ClientNotKnownException { return getState(id).isAlgorithmRunning(); } Modified: trunk/src/dl-learner/org/dllearner/utilities/Datastructures.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/Datastructures.java 2007-10-19 12:01:07 UTC (rev 252) +++ trunk/src/dl-learner/org/dllearner/utilities/Datastructures.java 2007-10-19 13:53:31 UTC (rev 253) @@ -63,7 +63,7 @@ return ret; } - + public static String[] sortedSet2StringListIndividuals(Set<Individual> individuals){ String[] ret=new String[individuals.size()]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |