model = $factory->getDefaultModel(); $this->filePath = 'data/questions/'; if (!is_dir($this->filePath)) mkdir($this->filePath); $this->reloadQuestions(); } public function reloadQuestions() { // Create empty MemModel $factory = new ModelFactory(); $this->model = $factory->getDefaultModel(); if(file_exists($this->filePath.'questions.rdf')) { $this->model->load($this->filePath.'questions.rdf'); } } public function readQuestionByCode($questionCode) { $result = array(); $result['title'] = $this->readQuestionTitle($questionCode); $result['description'] = $this->readQuestionDescription($questionCode); $result['type'] = $this->readQuestionType($questionCode); $result['category'] = $this->readQuestionCategory($questionCode); $result['answers'] = $this->readQuestionAnswers($questionCode); return $result; } public function readQuestionCodes() { $result = null; if(file_exists($this->filePath.'questions.rdf')) { // Create empty MemModel $factory = new ModelFactory(); $tempmodel= $factory->getDefaultModel(); $tempmodel->load($this->filePath.'questions.rdf'); $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?questionCode WHERE { _question predicates:resource_type resources:question ; predicates:question_code ?questionCode }'; $result = $tempmodel->sparqlQuery($querystring); } return $result; } public function readQuestionTitle($questionCode) { $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?questionTitle WHERE { _question predicates:resource_type resources:question ; predicates:question_code "' . $questionCode . '" ; predicates:title ?questionTitle }'; $result = $this->model->sparqlQuery($querystring); return $result; } public function readQuestionDescription($questionCode) { $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?questionDescription WHERE { _question predicates:resource_type resources:question ; predicates:question_code "' . $questionCode . '" ; predicates:description ?questionDescription }'; $result = $this->model->sparqlQuery($querystring); return $result; } public function readQuestionType($questionCode) { $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?questionType WHERE { _question predicates:resource_type resources:question ; predicates:question_code "' . $questionCode . '" ; predicates:question_type ?questionType }'; $result = $this->model->sparqlQuery($querystring); return $result; } public function readQuestionCategory($questionCode) { $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?questionCategory WHERE { _question predicates:resource_type resources:question ; predicates:question_code "' . $questionCode . '" ; predicates:question_category ?questionCategory }'; $result = $this->model->sparqlQuery($querystring); return $result; } public function readQuestionAnswers($questionCode) { $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?answerDescription WHERE { _question predicates:resource_type resources:question ; predicates:question_code "' . $questionCode . '" ; predicates:has_answer ?answerDescription }'; $result = $this->model->sparqlQuery($querystring); return $result; } } ?>