Changeset 143
- Timestamp:
- 10/31/11 17:12:28 (14 years ago)
- Location:
- Dev/branches/jos-branch
- Files:
-
- 10 added
- 11 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 { -
Dev/branches/jos-branch/data/applications/applications.rdf
r130 r143 32 32 </rdf:Description> 33 33 34 <rdf:Description rdf:about="http://tbm.tudelft.nl/researchtool/resources/application/c9390a27f525d84c1795bcb5c6caf33f"> 35 <ns1:resource_type rdf:resource="http://tbm.tudelft.nl/researchtool/resources/application"/> 36 <ns1:uid>c9390a27f525d84c1795bcb5c6caf33f</ns1:uid> 37 <ns1:title>DotA</ns1:title> 38 <ns1:description>Best game ever</ns1:description> 39 <ns1:style>highskill eu pm</ns1:style> 40 </rdf:Description> 41 42 34 43 </rdf:RDF> -
Dev/branches/jos-branch/data/questions/questions.rdf
r138 r143 36 36 <ns1:question_type>int</ns1:question_type> 37 37 <ns1:question_category>Gaming</ns1:question_category> 38 <ns1:has_answer>4</ns1:has_answer> 39 </rdf:Description> 40 41 <rdf:Description rdf:about="http://tbm.tudelft.nl/researchtool/resources/question/2807fdaf2fe624323d24a5d85599eb83"> 42 <ns1:resource_type rdf:resource="http://tbm.tudelft.nl/researchtool/resources/question"/> 43 <ns1:question_code>2807fdaf2fe624323d24a5d85599eb83</ns1:question_code> 44 <ns1:title>How much wood could a woodchuck chuck if a woodchuck could chuck wood?</ns1:title> 45 <ns1:description>Een vraag</ns1:description> 46 <ns1:question_type>INT</ns1:question_type> 47 <ns1:question_category>Tongue Twisters</ns1:question_category> 38 48 </rdf:Description> 39 49 -
Dev/branches/jos-branch/data/surveys/surveys.rdf
r138 r143 18 18 </rdf:Description> 19 19 20 <rdf:Description rdf:about="http://tbm.tudelft.nl/researchtool/resources/survey/bab0492e295700ed0324f724b9c8a815"> 21 <ns1:resource_type rdf:resource="http://tbm.tudelft.nl/researchtool/resources/survey"/> 22 <ns1:uid>bab0492e295700ed0324f724b9c8a815</ns1:uid> 23 <ns1:title>TestSurveyDeluxe</ns1:title> 24 <ns1:description>Zomaar, jeweetwel</ns1:description> 25 <ns1:has_question>q2</ns1:has_question> 26 <ns1:has_question>2807fdaf2fe624323d24a5d85599eb83</ns1:has_question> 27 </rdf:Description> 28 29 20 30 </rdf:RDF> -
Dev/branches/jos-branch/rdfConstants.php
r100 r143 14 14 define('QUESTION',SURVEYTOOL_RESOURCES_NAMESPACE . 'question'); 15 15 define('APPLICATION',SURVEYTOOL_RESOURCES_NAMESPACE . 'application'); 16 define('ANSWER', SURVEYTOOL_RESOURCES_NAMESPACE . 'answer'); 17 define('ANSWERSET', SURVEYTOOL_RESOURCES_NAMESPACE . 'answerset'); 16 18 define('SESSION',SURVEYTOOL_RESOURCES_NAMESPACE . 'session'); 17 19 define('DASHBOARD',SURVEYTOOL_RESOURCES_NAMESPACE . 'dashboard'); 18 20 define('GRAPH',SURVEYTOOL_RESOURCES_NAMESPACE . 'graph'); 19 21 define('DATA',SURVEYTOOL_RESOURCES_NAMESPACE . 'data'); 22 define('RESPONDENT',SURVEYTOOL_RESOURCES_NAMESPACE . 'respondent'); 20 23 define('APPDATA',SURVEYTOOL_RESOURCES_NAMESPACE . 'graph'); 21 24 … … 27 30 define('TITLE',SURVEYTOOL_PREDICATES_NAMESPACE . 'title'); 28 31 define('DESCRIPTION',SURVEYTOOL_PREDICATES_NAMESPACE . 'description'); 32 define('DATETIME',SURVEYTOOL_PREDICATES_NAMESPACE . 'datetime'); 29 33 define('PART_OF',SURVEYTOOL_PREDICATES_NAMESPACE . 'part_of'); 30 34 define('STYLE',SURVEYTOOL_PREDICATES_NAMESPACE . 'style'); … … 33 37 define('QCODE',SURVEYTOOL_PREDICATES_NAMESPACE . 'question_code'); 34 38 define('ANSWERED',SURVEYTOOL_PREDICATES_NAMESPACE . 'answered'); 35 define('RESPONDENT',SURVEYTOOL_PREDICATES_NAMESPACE . 'respondent');36 39 define('QCATEGORY',SURVEYTOOL_PREDICATES_NAMESPACE . 'question_category'); 37 40 define('HAS_QUESTION',SURVEYTOOL_PREDICATES_NAMESPACE . 'has_question'); … … 43 46 define('HAS_DATA',SURVEYTOOL_PREDICATES_NAMESPACE . 'has_data'); 44 47 define('DATA_TYPE',SURVEYTOOL_PREDICATES_NAMESPACE . 'data_type'); 48 define('FOR_SURVEY',SURVEYTOOL_PREDICATES_NAMESPACE . 'for_survey'); 49 define('BY_RESPONDENT',SURVEYTOOL_PREDICATES_NAMESPACE . 'by_respondent'); 50 define('GIVEN_ANSWER',SURVEYTOOL_PREDICATES_NAMESPACE . 'given_answer'); 51 define('HAS_APPLICATION', SURVEYTOOL_PREDICATES_NAMESPACE . 'has_application'); 52 define('HAS_SURVEY', SURVEYTOOL_PREDICATES_NAMESPACE . 'has_survey'); 53 define('HAS_ANSWERSET', SURVEYTOOL_PREDICATES_NAMESPACE . 'has_answerset'); 45 54 46 55 ?> -
Dev/branches/jos-branch/testpage.php
r138 r143 2 2 require 'classes/master.php'; 3 3 4 5 $result = $db->get("survey", array("questions" => array("q4")));6 print_r($result); 4 $db = new DatabaseInterface(); 5 $results = $db->get("session", array()); 6 7 7 ?>
Note: See TracChangeset
for help on using the changeset viewer.