From: <sk...@us...> - 2008-08-20 19:21:25
|
Revision: 1113 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1113&view=rev Author: sknappe Date: 2008-08-20 19:21:18 +0000 (Wed, 20 Aug 2008) Log Message: ----------- REST is now working so far with URLs like dbpedia-navigator/showArticle/Leipzig dbpedia-navigator/search/Leipzig dbpedia-navigator/showClass/CapitalsInAsia dbpedia-navigator/searchInstances/CapitalsInAsia Modified Paths: -------------- trunk/src/dbpedia-navigator/ajax_get_article.php trunk/src/dbpedia-navigator/ajax_get_class.php trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php trunk/src/dbpedia-navigator/helper_functions.php trunk/src/dbpedia-navigator/index.php Added Paths: ----------- trunk/src/dbpedia-navigator/CalculatePageRank.java Added: trunk/src/dbpedia-navigator/CalculatePageRank.java =================================================================== --- trunk/src/dbpedia-navigator/CalculatePageRank.java (rev 0) +++ trunk/src/dbpedia-navigator/CalculatePageRank.java 2008-08-20 19:21:18 UTC (rev 1113) @@ -0,0 +1,231 @@ +package org.dllearner.test; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.Statement; + +public class CalculatePageRank { + + private final String wikilinks="../pagelinks_en.nt"; + private final String labels="../articles_label_en.nt"; + private final String categories="../yago_en.nt"; + + private void calculateLinks() + { + try{ + Statement stmt; + ResultSet rs; + int number; + + Class.forName("com.mysql.jdbc.Driver"); + + String url = + "jdbc:mysql://localhost:3306/navigator_db"; + + Connection con = DriverManager.getConnection( + url,"navigator", "dbpedia"); + + stmt = con.createStatement(); + BufferedReader in = new BufferedReader(new FileReader(wikilinks)); + + String line; + String[] split; + String name; + int i=0; + while ((line=in.readLine())!=null) + { + split=line.split(" "); + name=split[2].substring(1, split[2].length()-1); + rs=stmt.executeQuery("SELECT number FROM rank WHERE name='"+name+"'"); + if (rs.next()){ + number=rs.getInt(1); + number++; + stmt.executeUpdate("UPDATE rank SET number="+number+" WHERE name='"+name+"'"); + } + else{ + try{ + stmt.executeUpdate("INSERT INTO rank (name,number) VALUES ('"+name+"',1)"); + }catch(Exception e) + {} + } + if (i%100000==0) System.out.println(i); + i++; + } + + in.close(); + con.close(); + } catch (FileNotFoundException e) + { + System.out.println("File not found"); + } catch (IOException e) + { + System.out.println("IOException"); + } catch (Exception e) + { + e.printStackTrace(); + } + } + + private void addLabels() + { + try{ + Statement stmt; + ResultSet rs; + + Class.forName("com.mysql.jdbc.Driver"); + + String url = + "jdbc:mysql://localhost:3306/navigator_db"; + + Connection con = DriverManager.getConnection( + url,"navigator", "dbpedia"); + + stmt = con.createStatement(); + BufferedReader in = new BufferedReader(new FileReader(labels)); + + String line; + String[] split; + String name; + String label; + int i=0; + while ((line=in.readLine())!=null) + { + split=line.split(">"); + name=split[0].substring(1); + label=split[2].substring(split[2].indexOf("\"")+1, split[2].lastIndexOf("\"")); + rs=stmt.executeQuery("SELECT number FROM rank WHERE name='"+name+"'"); + if (rs.next()){ + stmt.executeUpdate("UPDATE rank SET label=\""+label+"\" WHERE name='"+name+"'"); + } + else{ + try{ + stmt.executeUpdate("INSERT INTO rank (name,label) VALUES ('"+name+"',\""+label+"\")"); + }catch(Exception e) + {} + } + if (i%100000==0) System.out.println(i); + i++; + } + + in.close(); + con.close(); + } catch (FileNotFoundException e) + { + System.out.println("File not found"); + } catch (IOException e) + { + System.out.println("IOException"); + } catch (Exception e) + { + e.printStackTrace(); + } + } + + private void calculateCategories() + { + try{ + Statement stmt; + + Class.forName("com.mysql.jdbc.Driver"); + + String url = + "jdbc:mysql://localhost:3306/navigator_db"; + + Connection con = DriverManager.getConnection( + url,"navigator", "dbpedia"); + + stmt = con.createStatement(); + + stmt.executeUpdate("ALTER TABLE rank DROP COLUMN category"); + + BufferedReader in = new BufferedReader(new FileReader(categories)); + + String line; + String[] split; + String name; + String label; + String pred; + int i=0; + while ((line=in.readLine())!=null) + { + split=line.split(">"); + name=split[0].substring(1); + pred=split[1].substring(2); + if (pred.equals("http://www.w3.org/2000/01/rdf-schema#label")) + label=split[2].substring(split[2].indexOf("\"")+1, split[2].lastIndexOf("\"")); + else + label=split[2].substring(2); + if (pred.equals("http://www.w3.org/2000/01/rdf-schema#label")){ + try{ + stmt.executeUpdate("INSERT INTO categories (category,label) VALUES (\""+name+"\",\""+label+"\")"); + }catch(Exception e) + {} + } + else{ + if (name.startsWith("http://dbpedia.org/resource")){ + try{ + stmt.executeUpdate("INSERT INTO articlecategories (name,category) VALUES ('"+name+"','"+label+"')"); + }catch(Exception e) + {} + }else{ + try{ + stmt.executeUpdate("INSERT INTO classhierarchy (father,child) VALUES ('"+label+"','"+name+"')"); + }catch(Exception e) + {} + } + } + if (i%100000==0) System.out.println(i); + i++; + } + + in.close(); + con.close(); + } catch (FileNotFoundException e) + { + System.out.println("File not found"); + } catch (IOException e) + { + System.out.println("IOException"); + } catch (Exception e) + { + e.printStackTrace(); + } + } + + private void copyNumbers() + { + try{ + Statement stmt; + + Class.forName("com.mysql.jdbc.Driver"); + + String url = + "jdbc:mysql://localhost:3306/navigator_db"; + + Connection con = DriverManager.getConnection( + url,"navigator", "dbpedia"); + + stmt = con.createStatement(); + + stmt.executeUpdate("UPDATE articlecategories SET number=(SELECT number FROM rank WHERE articlecategories.name=rank.name)"); + + con.close(); + } catch (Exception e) + { + e.printStackTrace(); + } + } + + public static void main(String[] args){ + CalculatePageRank cal=new CalculatePageRank(); + cal.calculateLinks(); + cal.addLabels(); + cal.calculateCategories(); + cal.copyNumbers(); + } +} \ No newline at end of file Modified: trunk/src/dbpedia-navigator/ajax_get_article.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_article.php 2008-08-20 17:01:28 UTC (rev 1112) +++ trunk/src/dbpedia-navigator/ajax_get_article.php 2008-08-20 19:21:18 UTC (rev 1113) @@ -5,9 +5,7 @@ $subject=$_POST['label']; $fromCache=$_POST['cache']; - if (isset($_POST['path'])) $path=$_POST['path']; - else $path=""; - + if (isset($_SESSION['articles'])) $articles=$_SESSION['articles']; $id=$_SESSION['id']; $ksID=$_SESSION['ksID']; @@ -32,6 +30,8 @@ $content=""; $lastArticles=""; $artTitle=""; + $lat=""; + $long=""; //get the article //if $fromCache is -1, everything is normal @@ -69,11 +69,11 @@ // give the link to the corresponding Wikipedia article if(isset($triples['http://xmlns.com/foaf/0.1/page'])) - $content .= '<p><img src="'.$path.'images/wikipedia_favicon.png" alt="Wikipedia" style="max-width:20px;" /> <a href="#" onclick="window.open(\''.getPrintableURL($triples['http://xmlns.com/foaf/0.1/page'][0]['value']).'\',\'Wikiwindow\',\'width=800,height=500,top=50,left=50,scrollbars=yes\');">view Wikipedia article</a>, '; - $content .= '<img src="'.$path.'images/dbpedia-favicon.ico" alt="DBpedia" style="max-width:20px;"/> <a href="#" onclick="window.open(\''.$uri.'\',\'Wikiwindow\',\'width=800,height=500,top=50,left=50,scrollbars=yes\');">view DBpedia resource description</a>'; + $content .= '<p><img src="images/wikipedia_favicon.png" alt="Wikipedia" style="max-width:20px;" /> <a href="#" onclick="window.open(\''.getPrintableURL($triples['http://xmlns.com/foaf/0.1/page'][0]['value']).'\',\'Wikiwindow\',\'width=800,height=500,top=50,left=50,scrollbars=yes\');">view Wikipedia article</a>, '; + $content .= '<img src="images/dbpedia-favicon.ico" alt="DBpedia" style="max-width:20px;"/> <a href="#" onclick="window.open(\''.$uri.'\',\'Wikiwindow\',\'width=800,height=500,top=50,left=50,scrollbars=yes\');">view DBpedia resource description</a>'; //display photo collection, if there is one if (isset($triples['http://dbpedia.org/property/hasPhotoCollection'])){ - $content.=', <img src="'.$path.'images/flickr.png" alt="Flickr" style="max-width:20px;" /> <a href="#" onclick="window.open(\''.$triples['http://dbpedia.org/property/hasPhotoCollection'][0]['value'].'\',\'Wikiwindow\',\'width=800,height=500,top=50,left=50,scrollbars=yes\');">view photo collection</a></p>'; + $content.=', <img src="images/flickr.png" alt="Flickr" style="max-width:20px;" /> <a href="#" onclick="window.open(\''.$triples['http://dbpedia.org/property/hasPhotoCollection'][0]['value'].'\',\'Wikiwindow\',\'width=800,height=500,top=50,left=50,scrollbars=yes\');">view photo collection</a></p>'; } $content.='<br/><hr><h4>Classes and Categories</h4><br/>'; Modified: trunk/src/dbpedia-navigator/ajax_get_class.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_class.php 2008-08-20 17:01:28 UTC (rev 1112) +++ trunk/src/dbpedia-navigator/ajax_get_class.php 2008-08-20 19:21:18 UTC (rev 1113) @@ -3,9 +3,7 @@ $class=$_POST['class']; $fromCache=$_POST['cache']; - if (isset($_POST['path'])) $path=$_POST['path']; - else $path=""; - + session_start(); if (isset($_SESSION['classes'])) $classes=$_SESSION['classes']; session_write_close(); @@ -15,7 +13,7 @@ if (isset($classes)){ foreach ($classes as $key => $value) { - if ($value['uri']==$uri){ + if ($value['uri']==$class){ $fromCache=$key; break; } Modified: trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php 2008-08-20 17:01:28 UTC (rev 1112) +++ trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php 2008-08-20 19:21:18 UTC (rev 1113) @@ -2,7 +2,6 @@ include('helper_functions.php'); $category=$_POST['category']; - $label=$_POST['label']; $number=$_POST['number']; //initialise content @@ -11,6 +10,13 @@ mysql_connect('localhost','navigator','dbpedia'); mysql_select_db("navigator_db"); + + //get label of the category + $query="SELECT label FROM categories WHERE category='$category' LIMIT 1"; + $res=mysql_query($query); + $result=mysql_fetch_array($res); + $label=$result['label']; + $query="SELECT name FROM articlecategories WHERE category='$category' ORDER BY number DESC LIMIT ".$number; $res=mysql_query($query); $bestsearches=""; @@ -24,7 +30,7 @@ $result2=mysql_fetch_array($res2); $labels[]=$result2['label']; } - $content.=getCategoryResultsTable($names,$labels,$category,$label,$number); + $content.=getCategoryResultsTable($names,$labels,$category,$number); $bestsearches=getBestSearches($names,$labels); } else Modified: trunk/src/dbpedia-navigator/helper_functions.php =================================================================== --- trunk/src/dbpedia-navigator/helper_functions.php 2008-08-20 17:01:28 UTC (rev 1112) +++ trunk/src/dbpedia-navigator/helper_functions.php 2008-08-20 19:21:18 UTC (rev 1113) @@ -108,11 +108,11 @@ return $string; } -function getCategoryResultsTable($names,$labels,$category,$catlabel,$number) +function getCategoryResultsTable($names,$labels,$category,$number) { $ret="<p>These are your Searchresults. Show best "; for ($k=10;$k<125;){ - $ret.="<a href=\"#\" onclick=\"getSubjectsFromCategory('category=".$category."&label=".$catlabel."&number=".$k."');return false;\""; + $ret.="<a href=\"#\" onclick=\"getSubjectsFromCategory('category=".$category."&number=".$k."');return false;\""; if ($k==$number) $ret.=" style=\"text-decoration:none;\""; else $ret.=" style=\"text-decoration:underline;\""; $ret.=">".($k)."</a>"; @@ -252,7 +252,7 @@ function formatClass($className,$label) { $yagoPrefix = 'http://dbpedia.org/class/yago/'; if(substr($className,0,30)==$yagoPrefix) { - return $label.' <a href="#" onclick="getSubjectsFromCategory(\'category='.$className.'&label='.$label.'&number=10\');">→ search Instances</a> <a href="#" onclick="get_class(\'class='.$className.'&cache=-1\');">→ show Class in Hierarchy</a>'; + return $label.' <a href="#" onclick="getSubjectsFromCategory(\'category='.$className.'&number=10\');">→ search Instances</a> <a href="#" onclick="get_class(\'class='.$className.'&cache=-1\');">→ show Class in Hierarchy</a>'; // DBpedia is Linked Data, so it makes always sense to link it // ToDo: instead of linking to other pages, the resource should better // be openened within DBpedia Navigator @@ -277,10 +277,10 @@ $ret[0]=""; $ret[1]=""; if (isset($sess['positive'])) foreach($sess['positive'] as $name=>$lab){ - $ret[0].=$lab." <a href=\"\" onclick=\"toNegative('subject=".$name."&label=".$lab."');return false;\"><img src=\"".$_GET['path']."images/minus.jpg\" alt=\"Minus\"/></a> <a href=\"\" onclick=\"removePosInterest('subject=".$name."');return false;\"><img src=\"".$_GET['path']."images/remove.png\" alt=\"Delete\"/></a><br/>"; + $ret[0].=$lab." <a href=\"\" onclick=\"toNegative('subject=".$name."&label=".$lab."');return false;\"><img src=\"images/minus.jpg\" alt=\"Minus\"/></a> <a href=\"\" onclick=\"removePosInterest('subject=".$name."');return false;\"><img src=\"images/remove.png\" alt=\"Delete\"/></a><br/>"; } if (isset($sess['negative'])) foreach($sess['negative'] as $name=>$lab){ - $ret[1].=$lab." <a href=\"\" onclick=\"toPositive('subject=".$name."&label=".$lab."');return false;\"><img src=\"".$_GET['path']."images/plus.jpg\" alt=\"Plus\"/></a> <a href=\"\" onclick=\"removeNegInterest('subject=".$name."');return false;\"><img src=\"".$_GET['path']."images/remove.png\" alt=\"Delete\"/></a><br/>"; + $ret[1].=$lab." <a href=\"\" onclick=\"toPositive('subject=".$name."&label=".$lab."');return false;\"><img src=\"images/plus.jpg\" alt=\"Plus\"/></a> <a href=\"\" onclick=\"removeNegInterest('subject=".$name."');return false;\"><img src=\"images/remove.png\" alt=\"Delete\"/></a><br/>"; } return $ret; @@ -306,7 +306,7 @@ $ret.='<tr><td>'.$fathers.'</td></tr>'; $ret.='<tr style="height:10px"><td></td></tr>'; $ret.='<tr><td>'; - if ($fatherButtons) $ret.='<input style="width:70px" type="button" value="Instances" class="button" onclick="getSubjectsFromCategory(\'category=\'+document.getElementById(\'fatherSelect\').options[document.getElementById(\'fatherSelect\').selectedIndex].value+\'&label=\'+document.getElementById(\'fatherSelect\').options[document.getElementById(\'fatherSelect\').selectedIndex].innerHTML+\'&number=10\');" title="Search Instances of Father class."/> <input style="width:70px" type="button" value="Class" class="button" onclick="get_class(\'class=\'+document.getElementById(\'fatherSelect\').options[document.getElementById(\'fatherSelect\').selectedIndex].value+\'&cache=-1\');" title="Show Father class in class view."/>'; + if ($fatherButtons) $ret.='<input style="width:70px" type="button" value="Instances" class="button" onclick="getSubjectsFromCategory(\'category=\'+document.getElementById(\'fatherSelect\').options[document.getElementById(\'fatherSelect\').selectedIndex].value+\'&number=10\');" title="Search Instances of Father class."/> <input style="width:70px" type="button" value="Class" class="button" onclick="get_class(\'class=\'+document.getElementById(\'fatherSelect\').options[document.getElementById(\'fatherSelect\').selectedIndex].value+\'&cache=-1\');" title="Show Father class in class view."/>'; $ret.='</td></tr>'; $ret.='<tr style="height:20px"><td><hr/></td></tr>'; $ret.='<tr><td><b>Current class</b></td></tr>'; @@ -314,7 +314,7 @@ $ret.='<tr><td><b>'.$title.'</b></td></tr>'; $ret.='<tr style="height:10px"><td></td></tr>'; $ret.='<tr><td>'; - $ret.='<input style="width:70px" type="button" value="Instances" class="button" onclick="getSubjectsFromCategory(\'category='.$class.'&label='.$title.'&number=10\');" title="Search Instances of Shown class."/>'; + $ret.='<input style="width:70px" type="button" value="Instances" class="button" onclick="getSubjectsFromCategory(\'category='.$class.'&number=10\');" title="Search Instances of Shown class."/>'; $ret.='</td></tr>'; $ret.='<tr style="height:20px"><td><hr/></td></tr>'; $ret.='<tr><td style="width:30%"><b>Child classes</b></td></tr>'; @@ -322,7 +322,7 @@ $ret.='<tr><td>'.$childs.'</td></tr>'; $ret.='<tr style="height:10px"><td></td></tr>'; $ret.='<tr><td>'; - if ($childButtons) $ret.='<input style="width:70px" type="button" value="Instances" class="button" onclick="getSubjectsFromCategory(\'category=\'+document.getElementById(\'childSelect\').options[document.getElementById(\'childSelect\').selectedIndex].value+\'&label=\'+document.getElementById(\'childSelect\').options[document.getElementById(\'childSelect\').selectedIndex].innerHTML+\'&number=10\');" title="Search Instances of Child class."/> <input style="width:70px" type="button" value="Class" class="button" onclick="get_class(\'class=\'+document.getElementById(\'childSelect\').options[document.getElementById(\'childSelect\').selectedIndex].value+\'&cache=-1\');" title="Show Child class in class view."/>'; + if ($childButtons) $ret.='<input style="width:70px" type="button" value="Instances" class="button" onclick="getSubjectsFromCategory(\'category=\'+document.getElementById(\'childSelect\').options[document.getElementById(\'childSelect\').selectedIndex].value+\'&number=10\');" title="Search Instances of Child class."/> <input style="width:70px" type="button" value="Class" class="button" onclick="get_class(\'class=\'+document.getElementById(\'childSelect\').options[document.getElementById(\'childSelect\').selectedIndex].value+\'&cache=-1\');" title="Show Child class in class view."/>'; $ret.='</td></tr>'; $ret.='</table>'; Modified: trunk/src/dbpedia-navigator/index.php =================================================================== --- trunk/src/dbpedia-navigator/index.php 2008-08-20 17:01:28 UTC (rev 1112) +++ trunk/src/dbpedia-navigator/index.php 2008-08-20 19:21:18 UTC (rev 1113) @@ -11,19 +11,15 @@ $_SESSION['id']=$ids[0]; $_SESSION['ksID']=$ids[1]; -if (isset($_GET['path'])) $path=$_GET['path']; -else $path=""; - require_once('Settings.php'); $settings=new Settings(); - //what happens onLoad $onLoad="onLoad=\"document.getElementById('label').focus();"; -if (isset($_GET['resource'])){ - $onLoad.="get_article('label=".$_GET['resource']."&cache=-1');"; - unset($_GET['resource']); -} +if (isset($_GET['showArticle'])) $onLoad.="get_article('label=".$_GET['showArticle']."&cache=-1');"; +else if (isset($_GET['search'])) $onLoad.="search_it('label=".$_GET['search']."&number=10');"; +else if (isset($_GET['showClass'])) $onLoad.="get_class('class=http://dbpedia.org/class/yago/".$_GET['showClass']."&cache=-1');"; +else if (isset($_GET['searchInstances'])) $onLoad.="getSubjectsFromCategory('category=http://dbpedia.org/class/yago/".$_GET['searchInstances']."&number=10');"; else if (isset($_SESSION['currentArticle'])){ $onLoad.="get_article('label=&cache=".$_SESSION['currentArticle']."');"; } @@ -39,11 +35,10 @@ <head> <title>DBpedia Navigator</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> - <link rel="stylesheet" href="<?php print $path;?>default.css"/> - <link rel="stylesheet" type="text/css" href="<?php print $path;?>treemenu/dhtmlxtree.css"> + <link rel="stylesheet" href="css/default.css"/> <script src="http://maps.google.com/maps?file=api&v=2&key=<?php print $settings->googleMapsKey;?>" type="text/javascript"></script> - <script src="<?php print $path;?>js/ajax.js"></script> + <script src="js/ajax.js"></script> <script type="text/javascript"> function setRunning(running) { @@ -112,7 +107,7 @@ <body <?php print $onLoad;?>> <!-- <h1>DBpedia Navigator</h1> --> -<div><table border="0" width="100%"><tr><td width="35%"><img src="<?php print $path;?>images/dbpedia_navigator.png" alt="DBpedia Navigator" style="padding:5px" /></td><td width="50%"><span id="conceptlink"></span></td><td width="15%"><span id="Loading" style="display:none">Server Call... <a href=""><img src="<?php print $path;?>images/remove.png" onclick="stopServerCall();return false;" /></a></span></td></tr></table></div> +<div><table border="0" width="100%"><tr><td width="35%"><img src="images/dbpedia_navigator.png" alt="DBpedia Navigator" style="padding:5px" /></td><td width="50%"><span id="conceptlink"></span></td><td width="15%"><span id="Loading" style="display:none">Server Call... <a href=""><img src="images/remove.png" onclick="stopServerCall();return false;" /></a></span></td></tr></table></div> <div id="layer" style="display:none"> <div id="layerContent" style="display:none"></div> </div> @@ -147,8 +142,8 @@ ... and implemented by <a href="http://jens-lehmann.org">Jens Lehmann</a> and Sebastian Knappe at the <a href="http:/aksw.org">AKSW</a> research group (University of Leipzig).</p> - <a href="http://www.w3.org/2004/OWL/"><img src="<?php print $path;?>images/sw-owl-green.png" alt="OWL logo" /></a> - <a href="http://www.w3.org/2001/sw/DataAccess/"><img src="<?php print $path;?>images/sw-sparql-green.png" alt="SPARQL logo"/></a> + <a href="http://www.w3.org/2004/OWL/"><img src="images/sw-owl-green.png" alt="OWL logo" /></a> + <a href="http://www.w3.org/2001/sw/DataAccess/"><img src="images/sw-sparql-green.png" alt="SPARQL logo"/></a> </div> </div><!-- END leftSidebar --> @@ -170,13 +165,13 @@ <div id="rightSidebar"> <div class="box"> - <div class="boxtitlewithbutton" id="positivesboxtitle" style="cursor:help;" title="The shown articles are considered when generating navigation tips.">search relevant <a href="#"><img src="<?php print $path;?>images/remove.png" onclick="clearPositives()" title="Delete all articles of interest."/></a> </div> + <div class="boxtitlewithbutton" id="positivesboxtitle" style="cursor:help;" title="The shown articles are considered when generating navigation tips.">search relevant <a href="#"><img src="images/remove.png" onclick="clearPositives()" title="Delete all articles of interest."/></a> </div> <div class="boxcontent" id="Positives"> </div> <!-- boxcontent --> </div> <!-- box --> <div class="box"> - <div class="boxtitlewithbutton" id="negativesboxtitle" style="cursor:help;" title="The shown articles are avoided when generating navigation tips.">not relevant <a href="#"><img src="<?php print $path;?>images/remove.png" onclick="clearNegatives()" title="Delete all avoided articles."/></a> </div> + <div class="boxtitlewithbutton" id="negativesboxtitle" style="cursor:help;" title="The shown articles are avoided when generating navigation tips.">not relevant <a href="#"><img src="images/remove.png" onclick="clearNegatives()" title="Delete all avoided articles."/></a> </div> <div class="boxcontent" id="Negatives"> </div> <!-- boxcontent --> </div> <!-- box --> @@ -206,12 +201,12 @@ $uri = 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; echo '<div><a href="http://validator.w3.org/check?uri='.$uri.'"'; - echo '><img src="'.$path.'images/valid-xhtml10.png" alt="valid XHTML 1.0" /></a>'."\n"; + echo '><img src="images/valid-xhtml10.png" alt="valid XHTML 1.0" /></a>'."\n"; echo '<a href="http://jigsaw.w3.org/css-validator/validator?uri='.$uri.'"'; - echo '><img src="'.$path.'images/valid-css.png" alt="valid CSS" /></a></div>'."\n"; + echo '><img src="images/valid-css.png" alt="valid CSS" /></a></div>'."\n"; ?> </div> - <p><a href='<?php print $path;?>rebuild.php'>rebuild [restart session and redownload WSDL file (for debugging)]</a></p> + <p><a href='rebuild.php'>rebuild [restart session and redownload WSDL file (for debugging)]</a></p> </div> <div id="todo"> @@ -227,7 +222,6 @@ examples it classifies (in-)correctly.</li> <li>Create a small number of test cases (e.g. 3), which can be used to verify that DBpedia Navigator is working in typical scenarios (in particular cases where concepts with length greater one are learned).</li> - <li>Allow to disable caching functionality (in Settings.php).</li> <li>Make DBpedia Navigator RESTful, e.g. URLs $base/showArticle/$URL for displaying an article; $base/search/$phrase for searching; $base/listInstances/$complexClass for listing the instances of a learned. Maybe session variables (in particuar the selected positive and negative examples) can @@ -236,20 +230,13 @@ easier external access (just give someone a link instead of saying exactly which actions have to be done to get to a state), simplifies debugging the application, and may be of use for creating further features.</li> - <li>Improve search functionality [we will probably get feedback from Georgi in February].</li> - <li>[maybe] Display a tag cloud similar to <a href="http://dbpedia.org/search/">DBpedia search</a>.</li> - <li>[maybe] Instead of only allowing a search as entry point to the application, also display - a navigatable class tree.</li> <li>[if possible] When expensive SPARQL queries or learning problems have been posed, there should be some way to abandon these if the user has already switched to doing something else. Example: The user has added 3 positive and 1 negative examples. This is executed as a learning problem, but has no solution (so DL-Learner would run forever unless we pose some internal time limit). The user adds another negative example a second later, so instead of letting the previous learning problem run for a long time (and needing much resources), it should be stopped by DBpedia Navigator.</li> - <li>[if possible] Find an easy way to validate HTML/JS in AJAX applications.</li> - <li>[maybe] Would be interesting to somehow view the Wikipedia article (without the left navigation part, - tabs etc.) as an overlay, because the Wikipedia article will almost always be a human-friendlier - description of an object compared to the extracted one.</li> + <li>[if possible] Find an easy way to validate HTML/JS in AJAX applications.</li> </ul> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |