Changeset 143 for Dev/branches/jos-branch/classes
- Timestamp:
- 10/31/11 17:12:28 (14 years ago)
- Location:
- Dev/branches/jos-branch/classes
- Files:
-
- 4 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/branches/jos-branch/classes/AnswerConnector.php
r141 r143 12 12 class AnswerConnector implements IConnector{ 13 13 protected $model; 14 protected $fileName = 'data/users/users.rdf'; 14 protected $fileName = 'data/answers/answers.rdf'; 15 protected $db; 15 16 16 17 /** … … 44 45 } 45 46 47 /** 48 * Function get() 49 * Get the answers corresponding to the arguments 50 * 'Question' argument is supposed to be the question ID 51 * 'Values' has to be an array to make sure multiple answers can be selected. 52 */ 46 53 public function get($arguments) 47 { 48 49 } 50 54 { 55 $this->load(); 56 $keys = array_keys($arguments); 57 $uid = "?uid"; $question = "?question_code"; $value = ""; 58 if(in_array("uid", $keys)) 59 $uid = '\''.$arguments["uid"].'\''; 60 if(in_array("question", $keys)) 61 $question = '\''.$arguments["question"].'\''; 62 if(in_array("values", $keys)) 63 { 64 foreach ($arguments["values"] as $val) 65 { 66 $value = $value . 'predicates:answered \'' . $val . '\' '; 67 } 68 } 69 //Create the querystring 70 $querystring = ' 71 PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> 72 PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> 73 SELECT DISTINCT ?uid, ?question_code 74 WHERE 75 { 76 _answer predicates:resource_type resources:answer; 77 78 predicates:uid ?uid ; 79 predicates:question_code ?question_code; 80 81 predicates:uid ' . $uid . ' 82 predicates:question_code ' . $question . ' 83 ' . $value . ' 84 }'; 85 86 //Query the model 87 $results = $this->model->sparqlQuery($querystring); 88 //An answer can have multiple values, get all these values for the answer instances found. 89 $answers = array(); 90 if(!empty($results)) 91 { 92 $this->db = new DatabaseInterface(); 93 foreach($results as $result) 94 { 95 $values = $this->getValues($result['?uid']->label); 96 $questionResult = $this->db->get("question", array("uid" => $result['?question_code']->label)); 97 $answers[] = new Answer($result['?uid']->label, $questionResult[0], $values); 98 } 99 } 100 return $answers; 101 102 } 103 /** 104 * Gets the values that belong to the answer 105 * specified by the UID 106 */ 107 private function getValues($uid) 108 { 109 $querystring = ' 110 PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> 111 PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> 112 SELECT DISTINCT ?answered 113 WHERE 114 { 115 _answer predicates:resource_type resources:answer ; 116 predicates:answered ?answered ; 117 predicates:uid \''. $uid . '\' 118 }'; 119 $values = $this->model->sparqlQuery($querystring); 120 $returnArray = array(); 121 if(!empty($values)) 122 { 123 foreach($values as $value) 124 { 125 $returnArray[] = $value['?answered']->label; 126 } 127 } 128 return $returnArray; 129 } 130 51 131 /** 52 * 132 * Saves the answer Object to the RDF file. 53 133 * @param type $rToolObject 54 134 */ 55 135 public function set($rToolObject) 56 136 { 137 $this->load(); 57 138 139 $resourceAnswer = new Resource(ANSWER.'/'.$rToolObject->uid); 140 //Remove the old value stored with the given id 141 $this->model->subtract($this->model->find($resourceAnswer, null, null)); 142 143 //Save all the new values 144 $resourceAnswerType = new Resource(ANSWER); 145 $predicateRType = new Resource(RTYPE); 146 $this->model->add(new Statement($resourceAnswer,$predicateRType,$resourceAnswerType)); 147 148 $answerId = new Literal($rToolObject->uid); 149 $predicateId = new Resource(UID); 150 $this->model->add(new Statement($resourceAnswer, $predicateId, $answerId)); 151 152 $questionId = new Literal($rToolObject->question->uid); 153 $predicateQId = new Resource(QCODE); 154 $this->model->add(new Statement($resourceAnswer, $predicateQId, $questionId)); 155 156 if(isset($rToolObject->values)) 157 { 158 foreach($rToolObject->values as $value) 159 { 160 $answerValue = new Literal($value); 161 $predicateAnswer = new Resource(ANSWERED); 162 $this->model->add(new Statement($resourceAnswer, $predicateAnswer, $answerValue)); 163 } 164 } 165 $this->save(); 58 166 } 59 167 } -
Dev/branches/jos-branch/classes/DatabaseInterface.php
r141 r143 22 22 private $surveyConnector; 23 23 private $respondentConnector; 24 private $answerConnector; 24 private $answerConnector; 25 private $answerSetConnector; 26 private $sessionConnector; 25 27 26 28 /** … … 34 36 $this->surveyConnector = new SurveyConnector(); 35 37 $this->respondentConnector = new RespondentConnector(); 36 $this->answerConnector = new AnswerConnector(); 38 $this->answerConnector = new AnswerConnector(); 39 $this->answerSetConnector = new AnswerSetConnector(); 40 $this->sessionConnector = new SessionConnector(); 37 41 } 38 42 … … 64 68 case "answer": 65 69 return $this->answerConnector->get($arguments); 66 break; 67 70 break; 71 case "answerset": 72 return $this->answerSetConnector->get($arguments); 73 case "session": 74 return $this->sessionConnector->get($arguments); 75 68 76 } 69 77 } … … 87 95 break; 88 96 case "Survey": 89 $this->surveyConnector->set($rToolObject); 97 $this->surveyConnector->set($rToolObject); 98 break; 90 99 case "Respondent": 91 $this->respondentConnector->set($rToolObject); 100 $this->respondentConnector->set($rToolObject); 101 break; 92 102 case "Answer": 93 $this->answerConnector->set($rToolObject); 103 $this->answerConnector->set($rToolObject); 104 break; 105 case "AnswerSet": 106 $this->answerSetConnector->set($rToolObject); 107 break; 108 case "Session": 109 $this->sessionConnector->set($rToolObject); 110 break; 111 94 112 } 95 113 } -
Dev/branches/jos-branch/classes/Question.php
r130 r143 29 29 public function __construct($uid, $title = null, $type = null, $description = null, $category = null, $answers = null) 30 30 { 31 if(!isset($uid)) 32 { 33 $uid = md5(uniqid(rand(), true)); 34 } 31 35 $this->uid = $uid; 32 36 $this->title = $title; -
Dev/branches/jos-branch/classes/QuestionConnector.php
r138 r143 59 59 $keys = array_keys($arguments); 60 60 //Set default values for arguments 61 $uid = "?uid"; $title = "?title"; $type = "?type"; $description = "?description"; $category = "?category"; 61 $uid = "?uid"; $title = "?title"; $type = "?type"; $description = "?description"; $category = "?category"; $has_answer = ""; 62 62 //Set the arguments if they are supplied 63 63 if(in_array("uid", $keys)) … … 70 70 $description = "\"".$arguments["description"]."\""; 71 71 if(in_array("category", $keys)) 72 $style = "\"".$arguments["category"]."\""; 72 $style = "\"".$arguments["category"]."\""; 73 if(in_array("answers", $keys)) 74 { 75 foreach($arguments["answers"] as $answer) 76 { 77 $has_answer = $has_answer . 'predicates:has_answer \'' . $answer . '\' '; 78 } 79 } 73 80 74 81 $querystring = ' … … 89 96 predicates:question_type ' . $type . ' 90 97 predicates:description ' . $description . ' 91 predicates:question_category ' . $category . ' 98 predicates:question_category ' . $category . ' 99 ' . $has_answer . ' 92 100 }'; 93 101 //Create the querystring -
Dev/branches/jos-branch/classes/RespondentConnector.php
r140 r143 73 73 WHERE 74 74 { 75 _ user predicates:resource_type resources:user;75 _respondent predicates:resource_type resources:respondent ; 76 76 predicates:uid ?uid ; 77 77 predicates:name ?name ; 78 78 predicates:password ?password ; 79 79 predicates:uid ' . $uid . ' 80 80 predicates:name ' . $name . ' 81 81 predicates:password ' . $password . ' 82 82 }'; 83 echo $querystring;84 83 //Query the model 85 84 $results = $this->model->sparqlQuery($querystring); 86 85 $respondents = array(); 87 86 if(!empty($results)) 88 87 { … … 107 106 $this->model->subtract($this->model->find($resourceRespondent, null, null)); 108 107 108 //Set the new values 109 109 $resourceRespondentType = new Resource(RESPONDENT); 110 110 $predicateRType = new Resource(RTYPE); -
Dev/branches/jos-branch/classes/SurveyConnector.php
r138 r143 95 95 if(!empty($results)) 96 96 { 97 $this->db = new DatabaseInterface();98 97 foreach($results as $result) 99 98 { … … 128 127 if(!empty($results)) 129 128 { 129 $this->db = new DatabaseInterface(); 130 130 foreach($results as $questionId) 131 131 {
Note: See TracChangeset
for help on using the changeset viewer.