Changeset 171 for Dev/trunk/classes/AnswerSetConnector.php
- Timestamp:
- 12/02/11 15:26:01 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/classes/AnswerSetConnector.php
r158 r171 6 6 * @author jkraaijeveld 7 7 */ 8 class AnswerSetConnector implements IConnector{ 9 protected $model; 10 protected $fileName = 'data/answers/answersets.rdf'; 8 class AnswerSetConnector extends Connector{ 11 9 protected $db; 12 10 … … 16 14 public function __construct() 17 15 { 16 $this->fileName = 'data/answers/answersets.rdf'; 18 17 //Ensure the required folder for this connector exists 19 18 if(!is_dir('data/answers')) 20 19 mkdir('data/answers'); 21 }22 23 /**24 * function load()25 * Loads the file into the standard MemModel26 */27 public function load()28 {29 //Get the Memory Model from the ModelFactory30 $this->model = ModelFactory::getDefaultModel();31 32 //Ensure the required file exists before loading33 if(file_exists($this->fileName))34 $this->model->load($this->fileName);35 }36 37 /**38 * function save()39 * Saves the MemModel into the given file.40 */41 public function save() {42 $this->model->saveAs($this->fileName,'rdf');43 20 } 44 21 … … 51 28 { 52 29 $this->load(); 53 54 $keys = array_keys($arguments);55 $uid = ""; $survey = ""; $respondent = ""; $answers = "";56 if(in_array("uid", $keys))57 $uid = 'predicates:uid \''.$arguments["uid"].'\' ';58 if(in_array("survey", $keys))59 $survey = 'predicates:for_survey \''.$arguments["survey"].'\' ';60 if(in_array("respondent", $keys))61 $respondent = 'predicates:by_respondent \''.$arguments["respondent"].'\' ';62 if(in_array("answers", $keys))63 {64 foreach ($arguments["answers"] as $answer)65 {66 $answers = $answers . 'predicates:given_answer \'' . $answer . '\' ';67 }68 }69 30 70 31 //Build the query string … … 79 40 predicates:for_survey ?for_survey ; 80 41 predicates:by_respondent ?by_respondent ; 81 ' . $ uid . $survey . $respondent . $answers. '42 ' . $this->createArguments($arguments) . ' 82 43 }'; 83 84 44 //Query the model 85 45 $results = $this->model->sparqlQuery($querystring); … … 105 65 private function getAnswers($uid) 106 66 { 107 $querystring = ' 108 PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE .'> 109 PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE .'> 110 SELECT DISTINCT ?given_answer 111 WHERE 112 { 113 _answerset predicates:resource_type resources:answerset ; 114 predicates:given_answer ?given_answer ; 115 predicates:uid \'' . $uid . '\' 116 }'; 117 $answers = $this->model->sparqlQuery($querystring); 118 $returnArray = array(); 119 if(!empty($answers)) 67 $result = $this->model->findRegex("[(".$uid.")]", "[(given_answer)]", null); 68 $iterator = $result->getStatementIterator(); 69 $answers = array(); 70 while($iterator->hasNext()) 120 71 { 121 foreach($answers as $answer) 122 { 123 $answerR = $this->db->get("answer", array("uid" => $answer["?given_answer"]->label)); 124 $returnArray[] = $answerR[0]; 125 } 72 $element = $iterator->next(); 73 $answersR = $this->db->get("answer", array("uid" => $element->getLabelObject())); 74 $answers[] = $answersR[0]; 126 75 } 127 return $ returnArray;76 return $answers; 128 77 } 129 78
Note: See TracChangeset
for help on using the changeset viewer.