From: <sk...@us...> - 2008-08-20 13:12:59
|
Revision: 1107 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1107&view=rev Author: sknappe Date: 2008-08-20 13:12:53 +0000 (Wed, 20 Aug 2008) Log Message: ----------- corrected mistake with classes (one article can have several classes, had only one class for each article) changed database accordingly(changed database schema and also the Pagerankcalculation) the search now works correct with correct tag cloud, you can search for articles, in articles you can search for instances of the same class like the article or you can show a class view of one of the classes, the article has as type in the class view you can see the class you selected, all father classes and all child classes in select boxes, you can show the class view of these father or child classes or you can show instances of father, child or current class added box last classes, is the same as last articles for classes deleted the navigate box, because I now use the class view, the tree I showed in navigate box couldn't handel 11k classes in one level (Entity has ca. 11k subclasses) and it was too small to work properly with, new class view should be better minor bugfixing Modified Paths: -------------- trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php trunk/src/dbpedia-navigator/ajax_search.php trunk/src/dbpedia-navigator/helper_functions.php trunk/src/dbpedia-navigator/index.php trunk/src/dbpedia-navigator/js/ajax.js trunk/src/dbpedia-navigator/localhost.sql trunk/src/dbpedia-navigator/processTreeMenu.php Added Paths: ----------- trunk/src/dbpedia-navigator/ajax_get_class.php Added: trunk/src/dbpedia-navigator/ajax_get_class.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_class.php (rev 0) +++ trunk/src/dbpedia-navigator/ajax_get_class.php 2008-08-20 13:12:53 UTC (rev 1107) @@ -0,0 +1,117 @@ +<?php + include('helper_functions.php'); + + $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(); + + + //if article is in session, get it out of the session + if (isset($classes)){ + foreach ($classes as $key => $value) + { + if ($value['uri']==$uri){ + $fromCache=$key; + break; + } + } + } + + //initialize the content variables + $content=""; + $lastClasses=""; + $title=""; + + //get the article + //if $fromCache is -1, everything is normal + //if $fromCache is >=0, the article is taken out of the cache + if ($fromCache<0) { + //if there are errors see catch block + try{ + mysql_connect('localhost','navigator','dbpedia'); + mysql_select_db("navigator_db"); + + //build Select box with Child Classes + $query="SELECT child FROM classhierarchy WHERE father='$class'"; + $res=mysql_query($query); + $childClasses=''; + while ($result=mysql_fetch_array($res)){ + $query="SELECT label FROM categories WHERE category='".$result['child']."' LIMIT 1"; + $res2=mysql_query($query); + $result2=mysql_fetch_array($res2); + $identify=urldecode(str_replace("_"," ",substr (strrchr ($result['child'], "/"), 1))); + if ((strlen($identify)+strlen($result2['label']))>100) $identify=substr($identify,0,100-strlen($result2['label'])); + $childClasses.='<option value="'.$result['child'].'">'.utf8_to_html($result2['label']).' ('.$identify.')</option>'; + } + if (strlen($childClasses)>0) + $childClasses='<select size="1" style="width:500px" id="childSelect">'.$childClasses.'</select>'; + + + //build Select box with Father Classes + $query="SELECT father FROM classhierarchy WHERE child='$class'"; + $res=mysql_query($query); + $fatherClasses=''; + while ($result=mysql_fetch_array($res)){ + $query="SELECT label FROM categories WHERE category='".$result['father']."' LIMIT 1"; + $res2=mysql_query($query); + $result2=mysql_fetch_array($res2); + $identify=urldecode(str_replace("_"," ",substr (strrchr ($result['father'], "/"), 1))); + if ((strlen($identify)+strlen($result2['label']))>100) $identify=substr($identify,0,100-strlen($result2['label'])); + $fatherClasses.='<option value="'.$result['father'].'">'.utf8_to_html($result2['label']).' ('.$identify.')</option>'; + } + if (strlen($fatherClasses)>0) + $fatherClasses='<select size="1" style="width:500px" id="fatherSelect">'.$fatherClasses.'</select>'; + + //build Title + $query="SELECT label FROM categories WHERE category='$class' LIMIT 1"; + $res=mysql_query($query); + $result=mysql_fetch_array($res); + $title=$result['label']; + + $content.=getClassView($fatherClasses,$childClasses,$title,$class); + + //Restart the Session + session_start(); + + //store class in session, to navigate between last 5 classes quickly + $contentArray=array('content' => $content,'title' => $title,'uri' => $class); + if (!isset($_SESSION['nextClass'])){ + $_SESSION['nextClass']=0; + $_SESSION['classes']=array(); + } + if ($_SESSION['nextClass']==5) $_SESSION['nextClass']=0; + $_SESSION['classes'][$_SESSION['nextClass']]=$contentArray; + $_SESSION['currentClass']=$_SESSION['nextClass']; + $_SESSION['nextClass']++; + } catch (Exception $e) + { + $content="An error occured while trying to get Class information. Please try again later."; + $title="Class not found"; + } + } + else { + session_start(); + //Article is in session + $content=$_SESSION['classes'][$fromCache]['content']; + $title=$_SESSION['classes'][$fromCache]['title']; + } + + //Build lastClasses + if (isset($_SESSION['classes'])){ + foreach ($_SESSION['classes'] as $key => $value) + { + $lastClasses.="<a href=\"\" onclick=\"get_class('class=&cache=".$key."');return false;\">".$value['title']."</a><br/>"; + } + } + + print $content; + print '$$'; + print "Class: ".$title; + print '$$'; + print $lastClasses; +?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/ajax_get_subjects_from_category.php 2008-08-20 13:12:53 UTC (rev 1107) @@ -11,15 +11,18 @@ mysql_connect('localhost','navigator','dbpedia'); mysql_select_db("navigator_db"); - $query="SELECT name, label FROM rank WHERE category='$category' ORDER BY number DESC LIMIT ".$number; + $query="SELECT name FROM articlecategories WHERE category='$category' ORDER BY number DESC LIMIT ".$number; $res=mysql_query($query); $bestsearches=""; if (mysql_num_rows($res)>0){ $names=array(); $labels=array(); while ($result=mysql_fetch_array($res)){ - $labels[]=$result['label']; - $names[]=$result['name']; + $names[]=$result['name']; + $query="SELECT label FROM rank WHERE name='".$result['name']."' LIMIT 1"; + $res2=mysql_query($query); + $result2=mysql_fetch_array($res2); + $labels[]=$result2['label']; } $content.=getCategoryResultsTable($names,$labels,$category,$label,$number); $bestsearches=getBestSearches($names,$labels); Modified: trunk/src/dbpedia-navigator/ajax_search.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_search.php 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/ajax_search.php 2008-08-20 13:12:53 UTC (rev 1107) @@ -2,18 +2,14 @@ include('helper_functions.php'); $label=$_POST['label']; - $list=$_POST['list']; $number=$_POST['number']; - //get parts of the list - $checkedInstances=preg_split("[,]",$list,-1,PREG_SPLIT_NO_EMPTY); - //initialise content $content=""; mysql_connect('localhost','navigator','dbpedia'); mysql_select_db("navigator_db"); - $query="SELECT name, label, category FROM rank WHERE MATCH (label) AGAINST ('$label') ORDER BY number DESC LIMIT ".$number; + $query="SELECT name, label FROM rank WHERE MATCH (label) AGAINST ('$label') ORDER BY number DESC LIMIT ".$number; $res=mysql_query($query); $bestsearches=""; if (mysql_num_rows($res)>0){ @@ -25,20 +21,30 @@ while ($result=mysql_fetch_array($res)){ $labels[]=$result['label']; $names[]=$result['name']; - if (!isset($result['category'])){ - $result['category']="NoCategory"; - $result2['label']="No Category"; + $query="SELECT category FROM articlecategories WHERE name='".$result['name']."'"; + $res3=mysql_query($query); + $arr=array(); + while ($result3=mysql_fetch_array($res3)){ + $arr[]=$result3['category']; } + if (count($arr)==0){ + $arr[]="NoCategory"; + if (!isset($tags['NoCategory'])) $tags['NoCategory']=1; + else $tags['NoCategory']++; + if (!isset($catlabels['NoCategory'])) $catlabels['NoCategory']='No Category'; + } else { - $query="SELECT label FROM categories WHERE category='".$result['category']."' LIMIT 1"; - $res2=mysql_query($query); - $result2=mysql_fetch_array($res2); + for ($i=0;$i<count($arr);$i++){ + if (!isset($tags[$arr[$i]])) $tags[$arr[$i]]=1; + else $tags[$arr[$i]]++; + $query="SELECT label FROM categories WHERE category='".$arr[$i]."' LIMIT 1"; + $res2=mysql_query($query); + $result2=mysql_fetch_array($res2); + if (!isset($catlabels[$arr[$i]])) $catlabels[$arr[$i]]=$result2['label']; + } } - $classes[]=$result['category']; - if (!isset($tags[$result['category']])) $tags[$result['category']]=1; - else $tags[$result['category']]++; - if (!isset($catlabels[$result['category']])) $catlabels[$result['category']]=$result2['label']; + $classes[]=$arr; } $content.=getTagCloud($tags,$catlabels); $content.=getResultsTable($names,$labels,$classes,$number); Modified: trunk/src/dbpedia-navigator/helper_functions.php =================================================================== --- trunk/src/dbpedia-navigator/helper_functions.php 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/helper_functions.php 2008-08-20 13:12:53 UTC (rev 1107) @@ -50,7 +50,7 @@ { $ret="<p>These are your Searchresults. Show best "; for ($k=10;$k<125;){ - $ret.="<a href=\"#\" onclick=\"var list=tree.getAllChecked();search_it('label='+document.getElementById('label').value+'&list='+list+'&number=".$k."');return false;\""; + $ret.="<a href=\"#\" onclick=\"search_it('label='+document.getElementById('label').value+'&number=".$k."');return false;\""; if ($k==$number) $ret.=" style=\"text-decoration:none;\""; else $ret.=" style=\"text-decoration:underline;\""; $ret.=">".($k)."</a>"; @@ -69,7 +69,13 @@ $name=$names[$i*25+$j]; $label=$labels[$i*25+$j]; if (strlen($label)==0) $label=urldecode(str_replace("_"," ",substr (strrchr ($name, "/"), 1))); - $class=$classes[$i*25+$j]; + $class=""; + $k=0; + foreach ($classes[$i*25+$j] as $cl){ + if ($k!=count($classes[$i*25+$j])-1) $class.=$cl.' '; + else $class.=$cl; + $k++; + } $ret.='<p style="display:'.$display.'"> '.($i*25+$j+1).'. <a href="" class="'.$class.'" onclick="get_article(\'label='.$name.'&cache=-1\');return false;">'.utf8_to_html($label).'</a></p>'; } $i++; @@ -231,15 +237,14 @@ function formatClassArray($ar) { mysql_connect('localhost','navigator','dbpedia'); mysql_select_db("navigator_db"); - $string=""; + $string="<ul>"; for($i=0; $i<count($ar); $i++) { $query="SELECT label FROM categories WHERE category='".$ar[$i]['value']."' LIMIT 1"; $res=mysql_query($query); $result=mysql_fetch_array($res); - if ($ar[$i]['value']!="http://xmlns.com/foaf/0.1/Person"&&strlen($string)>0) $string .= ', ' . formatClass($ar[$i]['value'],$result['label']); - else if ($ar[$i]['value']!="http://xmlns.com/foaf/0.1/Person"&&strlen($string)==0) $string .= formatClass($ar[$i]['value'],$result['label']); + if ($ar[$i]['value']!="http://xmlns.com/foaf/0.1/Person") $string .= '<li>' . formatClass($ar[$i]['value'],$result['label']).'</li>'; } - return $string; + return $string."</ul>"; } // format a class nicely, i.e. link to it and possibly display @@ -247,7 +252,7 @@ function formatClass($className,$label) { $yagoPrefix = 'http://dbpedia.org/class/yago/'; if(substr($className,0,30)==$yagoPrefix) { - return '<a href="#" onclick="getSubjectsFromCategory(\'category='.$className.'&label='.$label.'&number=10\');">'.$label.'</a>'; + 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>'; // 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 @@ -280,4 +285,47 @@ return $ret; } + +function getClassView($fathers,$childs,$title,$class) +{ + $ret='This is the class view. You can browse through the hierarchy and search for instances of classes.<br/><br/>'; + $childButtons=true; + if (strlen($childs)==0){ + $childs='There are no Child classes'; + $childButtons=false; + } + $fatherButtons=true; + if (strlen($fathers)==0){ + $fathers='There are no Father classes'; + $fatherButtons=false; + } + + $ret.='<table border="0" style="text-align:left;width:100%">'; + $ret.='<tr><td style="width:90%"><b>Father classes</b></td></tr>'; + $ret.='<tr style="height:10px"><td></td></tr>'; + $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."/>'; + $ret.='</td></tr>'; + $ret.='<tr style="height:20px"><td><hr/></td></tr>'; + $ret.='<tr><td><b>Current class</b></td></tr>'; + $ret.='<tr style="height:10px"><td></td></tr>'; + $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.='</td></tr>'; + $ret.='<tr style="height:20px"><td><hr/></td></tr>'; + $ret.='<tr><td style="width:30%"><b>Child classes</b></td></tr>'; + $ret.='<tr style="height:10px"><td></td></tr>'; + $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."/>'; + $ret.='</td></tr>'; + $ret.='</table>'; + + return $ret; +} ?> \ No newline at end of file Modified: trunk/src/dbpedia-navigator/index.php =================================================================== --- trunk/src/dbpedia-navigator/index.php 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/index.php 2008-08-20 13:12:53 UTC (rev 1107) @@ -43,9 +43,7 @@ <link rel="stylesheet" type="text/css" href="<?php print $path;?>treemenu/dhtmlxtree.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;?>treemenu/dhtmlxcommon.js"></script> - <script src="<?php print $path;?>treemenu/dhtmlxtree.js"></script> - <script src="<?php print $path;?>js/ajax.js"></script> + <script src="<?php print $path;?>js/ajax.js"></script> <script type="text/javascript"> function setRunning(running) { @@ -64,6 +62,51 @@ map.addOverlay(marker); } } + + function show_results(class, number) + { + var links=document.getElementById('results').getElementsByTagName('p'); + var j=0; + var names; + var hasClass; + for (var i=0;i<links.length;i++){ + if (class=='all'){ + if ((j+1)>number&&j<(number+25)) links[i].style.display='block'; + else links[i].style.display='none'; + j++; + } + else{ + names=links[i].getElementsByTagName('a')[0].className.split(' '); + hasClass=false; + for (var k=0;k<names.length;k++){ + if (names[k]==class){ + hasClass=true; + break; + } + } + if (hasClass){ + if ((j+1)>number&&j<(number+25)) links[i].style.display='block'; + else links[i].style.display='none'; + j++; + } + else links[i].style.display='none'; + } + } + if (j<number){ + show_results(class,0); + return; + } + + var sitenumbers=document.getElementById('sitenumbers').getElementsByTagName('span'); + for (var i=0;i<sitenumbers.length;i++){ + if ((parseInt(sitenumbers[i].getElementsByTagName('a')[0].innerHTML)-1)*25==number) sitenumbers[i].getElementsByTagName('a')[0].style.textDecoration='none'; + else sitenumbers[i].getElementsByTagName('a')[0].style.textDecoration='underline'; + if ((parseInt(sitenumbers[i].getElementsByTagName('a')[0].innerHTML)-1)*25>=j) + sitenumbers[i].style.display='none'; + else + sitenumbers[i].style.display='inline'; + } + } </script> </head> <body <?php print $onLoad;?>> @@ -83,7 +126,7 @@ <!-- Search:<br/> --> <form onsubmit="get_article('label='+document.getElementById('label').value+'&cache=-1');return false;"> <input type="text" name="label" id="label"/><br/> - <input type="button" value="Article" class="button" onclick="get_article('label='+document.getElementById('label').value+'&cache=-1');return false;" title="Search an article with that name."/> <input type="button" value="Search" class="button" onclick="var list=tree.getAllChecked();search_it('label='+document.getElementById('label').value+'&list='+list+'&number=10');return false;" title="Search a number of articles related to that name."/> + <input type="button" value="Article" class="button" onclick="get_article('label='+document.getElementById('label').value+'&cache=-1');return false;" title="Search an article with that name."/> <input type="button" value="Search" class="button" onclick="search_it('label='+document.getElementById('label').value+'&number=10');return false;" title="Search a number of articles related to that name."/> <!-- <input type="button" value="Fulltext" class="button" onclick=""/> --> </form> </div> <!-- boxcontent --> @@ -96,32 +139,6 @@ </div> <!-- boxcontent --> </div> <!-- box --> - <div class="box" id="NavigationBox"> - <div class="boxtitle" style="cursor:help;" title="Navigate through the Class hierarchy and show instances of that class.">Navigate</div> - <div class="boxcontent"> - <div id="treeboxbox_tree" style="height:218px;overflow:auto;"> - </div> - </div> <!-- boxcontent --> - </div> <!-- box --> - <script> - tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); - tree.setImagePath("<?php print $path;?>images/csh_bluebooks/"); - tree.enableCheckBoxes(1); - tree.setOnClickHandler(doOnClick); - function doOnClick(nodeId){ - var myUrl = tree.getUserData(nodeId,"myurl"); - var myLabel = tree.getUserData(nodeId,"mylabel"); - getSubjectsFromCategory('category='+myUrl+'&label='+myLabel+'&number=10'); - } - function myErrorHandler(type, desc, erData){ - alert('An error occured while trying to navigate through Class Tree.\nPlease try again later.'); - } - dhtmlxError.catchError("ALL",myErrorHandler); - tree.setXMLAutoLoading("processTreeMenu.php"); - tree.loadXML("processTreeMenu.php?id=0"); - </script> - - <div class="box" id="credits"> <p>DBpedia Navigator is powered by ... <br /> <a href="http://dl-learner.org">DL-Learner</a><br /> @@ -169,6 +186,12 @@ <div class="boxcontent" id="lastarticles"> </div> <!-- boxcontent --> </div> <!-- box --> + + <div class="box" id="LastClassesBox" style="display:none"> + <div class="boxtitle" style="cursor:help;" title="Up to 5 classes, that were last displayed, are shown here.">Classes Last Viewed</div> + <div class="boxcontent" id="lastclasses"> + </div> <!-- boxcontent --> + </div> <!-- box --> </div><!-- rightSidebar --> Modified: trunk/src/dbpedia-navigator/js/ajax.js =================================================================== --- trunk/src/dbpedia-navigator/js/ajax.js 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/js/ajax.js 2008-08-20 13:12:53 UTC (rev 1107) @@ -53,7 +53,7 @@ document.getElementById('Negatives').innerHTML=response[4]; setRunning(false); if (response[1]=='Article not found'){ - setTimeout("var list=tree.getAllChecked();search_it('label='+document.getElementById('label').value+'&list='+list+'&number=10')",2000); + setTimeout("search_it('label='+document.getElementById('label').value+'&number=10')",2000); } else document.getElementById('LastArticlesBox').style.display='block'; @@ -65,33 +65,33 @@ XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XhrObj.send(param); } - -function show_results(class, number) + +function get_class(param) { - var links=document.getElementById('results').getElementsByTagName('p'); - var j=0; - for (var i=0;i<links.length;i++){ - if (links[i].getElementsByTagName('a')[0].className==class||class=='all'){ - if ((j+1)>number&&j<(number+25)) links[i].style.display='block'; - else links[i].style.display='none'; - j++; - } - else links[i].style.display='none'; + if (document.all){ + //IE + var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); } - if (j<number){ - show_results(class,0); - return; + else{ + //Mozilla + var XhrObj = new XMLHttpRequest(); } - var sitenumbers=document.getElementById('sitenumbers').getElementsByTagName('span'); - for (var i=0;i<sitenumbers.length;i++){ - if ((parseInt(sitenumbers[i].getElementsByTagName('a')[0].innerHTML)-1)*25==number) sitenumbers[i].getElementsByTagName('a')[0].style.textDecoration='none'; - else sitenumbers[i].getElementsByTagName('a')[0].style.textDecoration='underline'; - if ((parseInt(sitenumbers[i].getElementsByTagName('a')[0].innerHTML)-1)*25>=j) - sitenumbers[i].style.display='none'; - else - sitenumbers[i].style.display='inline'; + XhrObj.open("POST",'ajax_get_class.php'); + + XhrObj.onreadystatechange = function() + { + if (XhrObj.readyState == 4 && XhrObj.status == 200){ + var response = XhrObj.responseText.split('$$'); + document.getElementById('articlecontent').innerHTML=response[0]; + document.getElementById('ArticleTitle').innerHTML=response[1]; + document.getElementById('lastclasses').innerHTML=response[2]; + document.getElementById('LastClassesBox').style.display='block'; + } } + + XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); + XhrObj.send(param); } function toPositive(param) @@ -146,79 +146,79 @@ XhrObj.send(param); } - function clearPositives() - { - if (document.all){ - //IE - var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); - } - else{ - //Mozilla - var XhrObj = new XMLHttpRequest(); - } +function clearPositives() +{ + if (document.all){ + //IE + var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); + } + else{ + //Mozilla + var XhrObj = new XMLHttpRequest(); + } - XhrObj.open("POST",'ajax_clear_positives.php'); + XhrObj.open("POST",'ajax_clear_positives.php'); - XhrObj.onreadystatechange = function() - { - if (XhrObj.readyState == 4 && XhrObj.status == 200){ - document.getElementById('Positives').innerHTML = XhrObj.responseText; - } - } + XhrObj.onreadystatechange = function() + { + if (XhrObj.readyState == 4 && XhrObj.status == 200){ + document.getElementById('Positives').innerHTML = XhrObj.responseText; + } + } - XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); - XhrObj.send(); - } + XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); + XhrObj.send(); +} - function clearNegatives() - { - if (document.all){ - //IE - var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); - } - else{ - //Mozilla - var XhrObj = new XMLHttpRequest(); - } +function clearNegatives() +{ + if (document.all){ + //IE + var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); + } + else{ + //Mozilla + var XhrObj = new XMLHttpRequest(); + } + + XhrObj.open("POST",'ajax_clear_negatives.php'); - XhrObj.open("POST",'ajax_clear_negatives.php'); - - XhrObj.onreadystatechange = function() - { - if (XhrObj.readyState == 4 && XhrObj.status == 200){ - document.getElementById('Negatives').innerHTML = XhrObj.responseText; - } - } - - XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); - XhrObj.send(); + XhrObj.onreadystatechange = function() + { + if (XhrObj.readyState == 4 && XhrObj.status == 200){ + document.getElementById('Negatives').innerHTML = XhrObj.responseText; } + } - function removePosInterest(param) - { - if (document.all){ - //IE - var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); - } - else{ - //Mozilla - var XhrObj = new XMLHttpRequest(); - } + XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); + XhrObj.send(); +} + +function removePosInterest(param) +{ + if (document.all){ + //IE + var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); + } + else{ + //Mozilla + var XhrObj = new XMLHttpRequest(); + } - XhrObj.open("POST",'ajax_remove_pos_interest.php'); + XhrObj.open("POST",'ajax_remove_pos_interest.php'); - XhrObj.onreadystatechange = function() - { - if (XhrObj.readyState == 4 && XhrObj.status == 200){ - var response = XhrObj.responseText.split('$$'); - document.getElementById('Positives').innerHTML=response[0]; - document.getElementById('Negatives').innerHTML=response[1]; - } - } + XhrObj.onreadystatechange = function() + { + if (XhrObj.readyState == 4 && XhrObj.status == 200){ + var response = XhrObj.responseText.split('$$'); + document.getElementById('Positives').innerHTML=response[0]; + document.getElementById('Negatives').innerHTML=response[1]; + } + } - XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); - XhrObj.send(param); - } + XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); + XhrObj.send(param); +} function removeNegInterest(param) { @@ -272,28 +272,28 @@ XhrObj.send(); } - function stopServerCall() - { - if (document.all){ - //IE - var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); - } - else{ - //Mozilla - var XhrObj = new XMLHttpRequest(); - } +function stopServerCall() +{ + if (document.all){ + //IE + var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); + } + else{ + //Mozilla + var XhrObj = new XMLHttpRequest(); + } - XhrObj.open("POST",'ajax_stop_server_call.php'); + XhrObj.open("POST",'ajax_stop_server_call.php'); + + XhrObj.onreadystatechange = function() + { + if (XhrObj.readyState == 4 && XhrObj.status == 200){ + } + } - XhrObj.onreadystatechange = function() - { - if (XhrObj.readyState == 4 && XhrObj.status == 200){ - } - } - - XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); - XhrObj.send(); - } + XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); + XhrObj.send(); +} function getSubjectsFromConcept(param) { Modified: trunk/src/dbpedia-navigator/localhost.sql =================================================================== --- trunk/src/dbpedia-navigator/localhost.sql 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/localhost.sql 2008-08-20 13:12:53 UTC (rev 1107) @@ -1,50 +1,90 @@ --- phpMyAdmin SQL Dump --- version 2.9.1 --- http://www.phpmyadmin.net --- --- Host: localhost --- Erstellungszeit: 15. August 2008 um 15:51 --- Server Version: 5.0.67 --- PHP-Version: 5.2.5 --- --- Datenbank: `navigator_db` --- -CREATE DATABASE `navigator_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; -USE `navigator_db`; - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `categories` --- - -CREATE TABLE `categories` ( - `category` varchar(330) NOT NULL, - `label` varchar(330) NOT NULL, - PRIMARY KEY (`category`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- Daten für Tabelle `categories` --- - - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `rank` --- - -CREATE TABLE `rank` ( - `name` varchar(330) NOT NULL, - `number` int(8) NOT NULL default '0', - `label` varchar(330) default NULL, - `category` varchar(330) default NULL, - PRIMARY KEY (`name`), - FULLTEXT KEY `Label` (`label`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- Daten für Tabelle `rank` --- - +-- phpMyAdmin SQL Dump +-- version 2.9.1 +-- http://www.phpmyadmin.net +-- +-- Host: localhost +-- Erstellungszeit: 20. August 2008 um 12:05 +-- Server Version: 5.0.67 +-- PHP-Version: 5.2.5 +-- +-- Datenbank: `navigator_db` +-- +CREATE DATABASE `navigator_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; +USE `navigator_db`; + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `articlecategories` +-- + +CREATE TABLE `articlecategories` ( + `id` int(11) NOT NULL auto_increment, + `name` varchar(330) NOT NULL, + `category` varchar(330) NOT NULL, + `number` int(8) default '0', + PRIMARY KEY (`id`), + KEY `Category` (`category`), + KEY `Names` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Daten für Tabelle `articlecategories` +-- + + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `categories` +-- + +CREATE TABLE `categories` ( + `category` varchar(330) NOT NULL, + `label` varchar(330) NOT NULL, + PRIMARY KEY (`category`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Daten für Tabelle `categories` +-- + + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `classhierarchy` +-- + +CREATE TABLE `classhierarchy` ( + `id` int(11) NOT NULL auto_increment, + `father` varchar(330) NOT NULL, + `child` varchar(330) NOT NULL, + PRIMARY KEY (`id`), + KEY `Father` (`father`), + KEY `Child` (`child`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; + +-- +-- Daten für Tabelle `classhierarchy` +-- + + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `rank` +-- + +CREATE TABLE `rank` ( + `name` varchar(330) NOT NULL, + `label` varchar(330) default NULL, + `number` int(8) NOT NULL default '0', + PRIMARY KEY (`name`), + FULLTEXT KEY `Label` (`label`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Daten für Tabelle `rank` +-- + Modified: trunk/src/dbpedia-navigator/processTreeMenu.php =================================================================== --- trunk/src/dbpedia-navigator/processTreeMenu.php 2008-08-20 12:13:48 UTC (rev 1106) +++ trunk/src/dbpedia-navigator/processTreeMenu.php 2008-08-20 13:12:53 UTC (rev 1107) @@ -9,15 +9,24 @@ print("<tree id='".$url_var."'>"); if (!$url_var) print("<item child=\"1\" id=\"http://dbpedia.org/class/yago/Entity100001740\" text=\"Entity\"><userdata name='ud_block'>ud_data</userdata></item>"); else{ - require_once("DLLearnerConnection.php"); + /*require_once("DLLearnerConnection.php"); $sc=new DLLearnerConnection(); $ids=$sc->getIDs(); $sc=new DLLearnerConnection($ids[0],$ids[1]); - $categories=$sc->getYagoSubCategories($url_var); - foreach ($categories as $category){ - if ($category['subclasses']=="0") $child=0; - else $child=1; - print("<item child=\"".$child."\" id=\"".$category['value']."\" text=\"".$category['label']."\"><userdata name=\"myurl\">".$category['value']."</userdata><userdata name=\"mylabel\">".$category['label']."</userdata></item>"); + $categories=$sc->getYagoSubCategories($url_var);*/ + mysql_connect('localhost','navigator','dbpedia'); + mysql_select_db("navigator_db"); + $query="SELECT name FROM articlecategories WHERE category='$url_var' AND name LIKE 'http://dbpedia.org/class/yago/%' LIMIT 100"; + $res=mysql_query($query); + while ($result=mysql_fetch_array($res)){ + $query="SELECT name FROM articlecategories WHERE category='".$result['name']."' AND name LIKE 'http://dbpedia.org/class/yago/%' LIMIT 1"; + $res2=mysql_query($query); + if (mysql_num_rows($res2)>0) $child=1; + else $child=0; + $query="SELECT label FROM categories WHERE category='".$result['name']."' LIMIT 1"; + $res2=mysql_query($query); + $result2=mysql_fetch_array($res2); + print("<item child=\"".$child."\" id=\"".$result['name']."\" text=\"".$result2['label']."\"><userdata name=\"myurl\">".$result['name']."</userdata><userdata name=\"mylabel\">".$result2['label']."</userdata></item>"); } } print("</tree>"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |