/src/php/strip-vis/getsentence.php
PHP | 127 lines | 113 code | 7 blank | 7 comment | 14 complexity | 2c65257cb4c3b3f44b58bedd0be2d91b MD5 | raw file
Possible License(s): Apache-2.0, LGPL-3.0, BSD-3-Clause
- <?php
- /* Copyright 2012 Aditi Muralidharan. See the file "LICENSE" for the full license governing this code. */
- /** Utilities and functions for getting a specific set of sentences
- */
- include_once '../util.php';
- include_once '../document/get-metadata.php';
- $wordseer_instance = getGetParam('instance');
- $path = '../../../instances/'.$wordseer_instance.'/config.php';
- include_once $path;
- /** Returns a the sentence with the given number in the given document
- */
- function getSentence($documentID, $number){
- $result = array();
- $query = "INSERT INTO filtered_sent_ids (id)
- SELECT id from sentence
- WHERE number <= ".($number)."
- AND number >= ".($number)."
- AND document_id =$documentID;";
- $results = mysql_query($query);
-
- $query = "SELECT * from sentence
- WHERE number <= ".($number)."
- AND number >= ".($number)."
- AND document_id =$documentID;";
- $results = mysql_query($query);
-
- $sentences = array();
- $gov_words = str_replace("\"", "", getGetParam('gov'));
- if ($govtype == 'word-set') {
- $gov_words = getWordsFromWordSet($gov_words);
- }
- $gov = explode(' ', strtolower($gov_words));
- $dep_words = str_replace("\"", "", getGetParam('dep'));
- if ($deptype == 'word-set') {
- $dep_words = getWordsFromWordSet($dep_words);
- }
- $dep = explode(' ', $dep_words);
- $result['govIndex'] = array(-1);
- $result['depIndex'] = -1;
- while($row = mysql_fetch_assoc($results)){
- $words = getWordsInSentence($row['id']);
- $sentences = array_merge($sentences, $words);
- if($row['number'] == $number){
- $result['sentenceID'] = $row['id'];
- $i = 0;
- foreach($words as $word){
- if(in_array(strtolower($word['word']), $gov)){
- array_push($result['govIndex'], $i);
- }
- if(in_array(strtolower($word['word']), $dep)){
- $result['depIndex'] = $i;
- }
- $i += 1;
- }
- }
- $result['documentID'] = $row['document_id'];
- }
- $result['words'] = $sentences;
- $result['metadata'] = getMetadataTreeFromSentenceIDs(
- array($result['sentenceID']), false);
- return $result;
- }
- //if used as a script
- $document = getGetParam('document');
- $numbers = getGetParam('numbers');
- if($document){
- $sentenceNumbers = explode(" ", $numbers);
- $sentences = array();
- foreach($sentenceNumbers as $number){
- $sent = getSentence($document, $number);
- array_push($sentences, $sent);
- }
- echo json_encode($sentences);
- }
- else if($_GET['id'] && $_GET['wordtree']){
- $id = getGetParam('id');
- $sql = "INSERT INTO filtered_sent_ids (id) VALUES ($id);";
- $result = mysql_query($sql);
- // get document information
- $ids = explode(" ", trim($_GET['id']));
- $info = getMetadataTreeFromSentenceIDs(array($id), false);
- if ($timing) {
- echo "<br>".json_encode($info)."<br><br>";
- }
- $query2 = "SELECT * FROM `sentence`
- WHERE `sentence`.`id`='$id' LIMIT 1";
- $result2 = mysql_query($query2) or die(mysql_error().' SQL error,
- <br/> at getsentence.php line 86 on query '.$query2);
- $row = mysql_fetch_assoc($result2);
- $sentence = iconv('UTF-8', 'UTF-8//IGNORE', $row['sentence']); //remove non-UTF-8 characters like smartquotes
- $to_encode = array(
- 'metadata'=>$info,
- 'sentence'=>$sentence,
- 'words'=> getWordsInSentence($id),
- 'sentence_id'=>$id,
- 'document_id'=> $row['document_id'],
- );
- echo json_encode($to_encode);
- }
- else if($_GET['ids']){
- $ids = explode(" ", trim($_GET['ids']));
- $sentences = array();
- for($i= 0; $i < count($ids); $i++){
- $html = "";
- $sql = 'SELECT * from sentence_xref_word WHERE sentence_id = '.$ids[$i].' order by position ASC;';
- $results = mysql_query($sql) or die(mysql_error().'<br>
- SQL error, getsentence.php line 86.On query:
- '.$sql);
- $previous = "'";
- while($row = mysql_fetch_array($results)){
- $word = $row['surface'];
- $wordID = $row['word_id'];
- $sentenceID = $row['sentence_id'];
- $space = str_replace("\n", "<br>", $row['space_after']);
- $html = $html.$space.'<span class="word" word-id="'.$wordID.'" sentence-id="'.$sentenceID.'">'.$word.'</span>';
- $previous = $word;
- }
- array_push($sentences, array('id'=>$id, 'sentence'=>$html));
- }
- echo json_encode($sentences);
- }
- ?>