Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/classes/SurveyRDFWriter.php

    r28 r16  
    33class SurveyRDFWriter
    44{
    5         protected $model;
     5        var $model;
    66               
    7         protected $resourceSurvey;
    8         protected $surveyUID;
    9        
    10     public function __construct($surveyUID)
     7        var $resourceSurvey;
     8    /**
     9    * Use SurveyRDFWriter::getInstance() instead of this
     10    * constructor.
     11    */
     12    public function __construct()
    1113    {
    1214        // Create empty MemModel
     
    1416                $this->model = $factory->getDefaultModel();
    1517               
    16                 $this->surveyUID = $surveyUID;
     18                $this->initResources();
     19    }
     20
     21        function initResources()
     22        {
    1723               
    18     }   
    19        
    20         public function saveSurvey()
    21         {       
    22                 $this->model->saveAs('surveys/survey_'.$this->surveyUID.'.rdf','rdf');
     24                $this->resourceSurvey = new Resource(SURVEY);
    2325        }
    2426       
    2527        public function createSurvey($sTitle, $sDescription)
    2628        {               
    27                 $this->resourceSurvey = new Resource(SURVEY.'/'.$this->surveyUID);
    28                
    29                 $resourceSurveyType = new Resource(SURVEY);
    30                 $predicateRType = new Resource(RTYPE);
    31                 $this->model->add(new Statement($this->resourceSurvey,$predicateRType,$resourceSurveyType));
    32                
    33                 $literalSurveyID = new Literal($this->surveyUID);
    34                 $predicateUniqueID = new Resource(UID);
    35                 $this->model->add(new Statement($this->resourceSurvey,$predicateUniqueID,$literalSurveyID));
    3629               
    3730                $predicateTitle = new Resource(TITLE);         
     
    4639        public function addQuestion($qTitle,$qDescription,$qType,$qAnswers)
    4740        {
    48                 $questionID = md5( uniqid(rand(), true) );
    49                 $resourceQuestion = new Resource(QUESTION.'/'.$questionID);
    50                                
    51                 $resourceQuestionType = new Resource(QUESTION);
    52                 $predicateRType = new Resource(RTYPE);
    53                 $this->model->add(new Statement($resourceQuestion,$predicateRType,$resourceQuestionType));
    54                                
    55                 $predicateUniqueID = new Resource(UID);
    56                 $questionUID = new Literal($questionID);
    57                 $this->model->add(new Statement($resourceQuestion,$predicateUniqueID,$questionUID));
    58                                
     41                $resourceQuestion = new Resource(QUESTION);
     42                $predicateQuestion = new Resource(HAS_QUESTION);
     43                $this->model->add(new Statement($this->resourceSurvey,$predicateQuestion,$resourceQuestion));
     44               
    5945                $predicateTitle = new Resource(TITLE);         
    6046                $questionTitle = new Literal($qTitle);
     
    6551                $this->model->add(new Statement($resourceQuestion,$predicateDescription,$questionDescription));         
    6652               
    67                 $predicateQType = new Resource(QTYPE);
    68                 $resourceQuestionType = new Literal($qType);
    69                 $this->model->add(new Statement($resourceQuestion,$predicateQType,$resourceQuestionType));
     53                $predicateType = new Resource(TYPE);
     54                $resourceQuestionType = new Resource(QUESTION_TYPE);
     55                $this->model->add(new Statement($resourceQuestion,$predicateType,$resourceQuestionType));
    7056               
    7157                foreach($qAnswers as $answer)
    72                 {               
    73                         $answerID = md5( uniqid(rand(), true) );       
    74                         $resourceAnswer = new Resource(ANSWER.'/'.$answerID);
    75                                
    76                         $resourceAnswerType = new Resource(ANSWER);
    77                         $predicateRType = new Resource(RTYPE);
    78                         $this->model->add(new Statement($resourceAnswer,$predicateRType,$resourceAnswerType)); 
    79 
    80                         $predicateUniqueID = new Resource(UID);
    81                         $answerUID = new Literal($answerID);
    82                         $this->model->add(new Statement($resourceAnswer,$predicateUniqueID,$answerUID));                       
    83                                                
     58                {
     59                        $resourceAnswer = new Resource(ANSWER);
     60                        $predicateAnswer = new Resource(HAS_ANSWER);   
     61                        $this->model->add(new Statement($resourceQuestion,$predicateAnswer,$resourceAnswer));
     62                       
     63                        $predicateTitle = new Resource(TITLE);
    8464                        $answerTitle = new Literal($answer['Title']);
    8565                        $this->model->add(new Statement($resourceAnswer,$predicateTitle,$answerTitle));
    8666                       
     67                        $predicateDescription = new Resource(DESCRIPTION);
    8768                        $answerDescription = new Literal($answer['Description']);
    8869                        $this->model->add(new Statement($resourceAnswer,$predicateDescription,$answerDescription));
    8970                       
    90                         $predicateAnswer = new Resource(HAS_ANSWER);   
    91                         $this->model->add(new Statement($resourceQuestion,$predicateAnswer,$resourceAnswer));
    9271                }
    9372               
    94                 $predicateQuestion = new Resource(HAS_QUESTION);
    95                 $this->model->add(new Statement($this->resourceSurvey,$predicateQuestion,$resourceQuestion));           
     73               
    9674        }
     75       
     76        public function saveSurvey($sTitle)
     77        {
     78                $this->model->saveAs('surveys/'.$sTitle.'.rdf','rdf');
     79               
     80                return true;
     81        }
     82
    9783}
    9884
Note: See TracChangeset for help on using the changeset viewer.