From: <sk...@us...> - 2008-09-24 13:36:52
|
Revision: 1254 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1254&view=rev Author: sknappe Date: 2008-09-24 13:36:46 +0000 (Wed, 24 Sep 2008) Log Message: ----------- worked on getting instances from concepts, should now work for some more concepts, still some are missing (some with NOT and ALL,...) Modified Paths: -------------- trunk/src/dbpedia-navigator/DLLearnerConnection.php trunk/src/dbpedia-navigator/ajax_get_article.php trunk/src/dbpedia-navigator/ajax_get_subjects_from_concept.php trunk/src/dbpedia-navigator/helper_functions.php Modified: trunk/src/dbpedia-navigator/DLLearnerConnection.php =================================================================== --- trunk/src/dbpedia-navigator/DLLearnerConnection.php 2008-09-24 13:35:30 UTC (rev 1253) +++ trunk/src/dbpedia-navigator/DLLearnerConnection.php 2008-09-24 13:36:46 UTC (rev 1254) @@ -150,11 +150,9 @@ if (count($result['results']['bindings'])==0) throw new Exception("An article with that name does not exist. The Search is started ..."); $ret=array(); foreach ($result['results']['bindings'] as $results){ - if (isset($results['obj'])) $value=$results['obj']; - else if (isset($results['sub'])) $value=$results['sub']; - if (!(isset($value['xml:lang'])&&($value['xml:lang']!=$this->lang))){ - if (isset($results['obj'])) $ret[0][$results['pred']['value']][]=$value; - else if (isset($results['sub'])) $ret[1][$results['pred']['value']][]=$value; + if (!(isset($results['xml:lang'])&&($results['xml:lang']!=$this->lang))){ + if (isset($results['obj'])) $ret[0][$results['pred']['value']][]=$results['obj']; + else if (isset($results['sub'])) $ret[1][$results['pred']['value']][]=$results['sub']; } } @@ -258,9 +256,9 @@ return $return; }*/ - function getSubjectsFromConcept($concept) + function getSubjectsFromConcept($concept,$number) { - $query=$this->client->SparqlRetrieval($concept); + $query=$this->client->SparqlRetrieval($concept,$number); $result=json_decode($this->getSparqlResultThreaded($query),true); if (count($result['results']['bindings'])==0) throw new Exception("Your query brought no result."); $ret=array(); Modified: trunk/src/dbpedia-navigator/ajax_get_article.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_article.php 2008-09-24 13:35:30 UTC (rev 1253) +++ trunk/src/dbpedia-navigator/ajax_get_article.php 2008-09-24 13:36:46 UTC (rev 1254) @@ -49,7 +49,7 @@ $alltriples=$sc->getTriples($uri); $triples=$alltriples[0]; $subjecttriples=$alltriples[1]; - + //BUILD ARTICLE // goal: display the data in a nice (DBpedia specific way), maybe similar to // dbpedia.org/search @@ -294,7 +294,7 @@ $content.='<br/><hr><h4>Remaining Triples</h4><br/>'; // display the remaining properties as list which can be used for further navigation - $content .= get_triple_table($triples,$subjecttriples); + $content .= get_triple_table($triples,$subjecttriples,$predicatelabels); } //Restart the Session Modified: trunk/src/dbpedia-navigator/ajax_get_subjects_from_concept.php =================================================================== --- trunk/src/dbpedia-navigator/ajax_get_subjects_from_concept.php 2008-09-24 13:35:30 UTC (rev 1253) +++ trunk/src/dbpedia-navigator/ajax_get_subjects_from_concept.php 2008-09-24 13:36:46 UTC (rev 1254) @@ -19,17 +19,16 @@ require_once("DLLearnerConnection.php"); $sc=new DLLearnerConnection($id,$ksID); $label=$sc->getNaturalDescription($kb); + //connect to the database + $settings=new Settings(); + $databaseConnection=new DatabaseConnection($settings->database_type); + $databaseConnection->connect($settings->database_server,$settings->database_user,$settings->database_pass); + $databaseConnection->select_database($settings->database_name); $test=preg_match("/^([\(]*\"http:\/\/dbpedia\.org\/class\/yago\/[^\040]+\"[\)]*(\040(AND|OR)\040)?)+$/",$kb); $content=""; if ($test){ - //connect to the database - $settings=new Settings(); - $databaseConnection=new DatabaseConnection($settings->database_type); - $databaseConnection->connect($settings->database_server,$settings->database_user,$settings->database_pass); - $databaseConnection->select_database($settings->database_name); - preg_match_all("/\"http:\/\/dbpedia\.org\/class\/yago\/[^\040()]+\"/",$kb,$treffer,PREG_OFFSET_CAPTURE); $final=''; @@ -70,21 +69,35 @@ $result2=$databaseConnection->nextEntry($res2); $labels[]=$result2['label']; } - $content.=getConceptResultsTable($names,$labels,htmlentities($kb),$label,$number); + $content.=getConceptResultsTable($names,$labels,htmlentities($kb),$number); $bestsearches=getBestSearches($names,$labels); } else $content.="Your Search brought no results."; } else{ - /*try{ - require_once("DLLearnerConnection.php"); - $sc=new DLLearnerConnection($id,$ksID); - $subjects=$sc->getSubjectsFromConcept($concept); - $content.=getResultsTable($subjects); + try{ + $subjects=$sc->getSubjectsFromConcept($kb,$number); + $names=array(); + $labels=array(); + foreach ($subjects as $subject){ + $query='SELECT number, label FROM rank WHERE name="'.$subject.'"'; + $res=$databaseConnection->query($query); + $result=$databaseConnection->nextEntry($res); + $names[]=$result['number'].'<'.$subject; + $labels[]=$result['number'].$subject.'<'.$result['label']; + } + rsort($labels); + rsort($names); + for ($i=0;$i<count($names);$i++){ + $labels[$i]=substr($labels[$i],strpos($labels[$i],'<')+1); + $names[$i]=substr($names[$i],strpos($names[$i],'<')+1); + } + $content.=getConceptResultsTable($names,$labels,htmlentities($kb),$number); + $bestsearches=getBestSearches($names,$labels); } catch (Exception $e){ $content=$e->getMessage(); - }*/ + } } print $content; Modified: trunk/src/dbpedia-navigator/helper_functions.php =================================================================== --- trunk/src/dbpedia-navigator/helper_functions.php 2008-09-24 13:35:30 UTC (rev 1253) +++ trunk/src/dbpedia-navigator/helper_functions.php 2008-09-24 13:36:46 UTC (rev 1254) @@ -154,7 +154,7 @@ return $ret; } -function getConceptResultsTable($names,$labels,$kb,$label,$number) +function getConceptResultsTable($names,$labels,$kb,$number) { $ret="<p>These are your results. Show best "; for ($k=10;$k<125;){ @@ -224,7 +224,7 @@ fclose($file); } -function get_triple_table($triples,$subjecttriples) { +function get_triple_table($triples,$subjecttriples,$predicateLabels) { $table = '<table border="0" style="width:100%;overflow:hidden"><tr><td><b>Predicate</b></td><td><b>Object/Subject</b></td></tr>'; $i=1; @@ -313,15 +313,15 @@ function nicePredicate($predicate) { if (strripos ($predicate, "#")>strripos ($predicate, "/")){ - $namespace=substr ($predicate,0,strripos ($predicate, "#")); + //$namespace=substr ($predicate,0,strripos ($predicate, "#")); $name=substr ($predicate,strripos ($predicate, "#")+1); } else{ - $namespace=substr ($predicate,0,strripos ($predicate, "/")); + //$namespace=substr ($predicate,0,strripos ($predicate, "/")); $name=substr ($predicate,strripos ($predicate, "/")+1); } - switch ($namespace){ + /*switch ($namespace){ case "http://www.w3.org/2000/01/rdf-schema": $namespace="rdfs"; break; case "http://www.w3.org/2002/07/owl": $namespace="owl"; @@ -336,11 +336,15 @@ break; case "http://www.georss.org/georss/point": $namespace="georss"; break; - } + }*/ - //fl\xE4che has strange url - $name=str_replace('fl_percent_C3_percent_A4che','fl%C3%A4che',$name); - return $namespace.':'.urldecode($name); + //change urls with \xE4,\xF6,\xFC + $name=str_replace('_percent_C3_percent_A4','%C3%A4',$name); + $name=str_replace('_percent_C3_percent_B6','%C3%B6',$name); + $name=str_replace('_percent_C3_percent_BC','%C3%BC',$name); + $name=str_replace('_',' ',$name); + + return urldecode($name); } function formatClassArray($ar) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |