Ignore:
File:
1 edited

Legend:

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

    r16 r28  
    33class SurveyRDFWriter
    44{
    5         var $model;
     5        protected $model;
    66               
    7         var $resourceSurvey;
    8     /**
    9     * Use SurveyRDFWriter::getInstance() instead of this
    10     * constructor.
    11     */
    12     public function __construct()
     7        protected $resourceSurvey;
     8        protected $surveyUID;
     9       
     10    public function __construct($surveyUID)
    1311    {
    1412        // Create empty MemModel
     
    1614                $this->model = $factory->getDefaultModel();
    1715               
    18                 $this->initResources();
    19     }
    20 
    21         function initResources()
    22         {
     16                $this->surveyUID = $surveyUID;
    2317               
    24                 $this->resourceSurvey = new Resource(SURVEY);
     18    }   
     19       
     20        public function saveSurvey()
     21        {       
     22                $this->model->saveAs('surveys/survey_'.$this->surveyUID.'.rdf','rdf');
    2523        }
    2624       
    2725        public function createSurvey($sTitle, $sDescription)
    2826        {               
     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));
    2936               
    3037                $predicateTitle = new Resource(TITLE);         
     
    3946        public function addQuestion($qTitle,$qDescription,$qType,$qAnswers)
    4047        {
    41                 $resourceQuestion = new Resource(QUESTION);
    42                 $predicateQuestion = new Resource(HAS_QUESTION);
    43                 $this->model->add(new Statement($this->resourceSurvey,$predicateQuestion,$resourceQuestion));
    44                
     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                               
    4559                $predicateTitle = new Resource(TITLE);         
    4660                $questionTitle = new Literal($qTitle);
     
    5165                $this->model->add(new Statement($resourceQuestion,$predicateDescription,$questionDescription));         
    5266               
    53                 $predicateType = new Resource(TYPE);
    54                 $resourceQuestionType = new Resource(QUESTION_TYPE);
    55                 $this->model->add(new Statement($resourceQuestion,$predicateType,$resourceQuestionType));
     67                $predicateQType = new Resource(QTYPE);
     68                $resourceQuestionType = new Literal($qType);
     69                $this->model->add(new Statement($resourceQuestion,$predicateQType,$resourceQuestionType));
    5670               
    5771                foreach($qAnswers as $answer)
    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);
     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                                               
    6484                        $answerTitle = new Literal($answer['Title']);
    6585                        $this->model->add(new Statement($resourceAnswer,$predicateTitle,$answerTitle));
    6686                       
    67                         $predicateDescription = new Resource(DESCRIPTION);
    6887                        $answerDescription = new Literal($answer['Description']);
    6988                        $this->model->add(new Statement($resourceAnswer,$predicateDescription,$answerDescription));
    7089                       
     90                        $predicateAnswer = new Resource(HAS_ANSWER);   
     91                        $this->model->add(new Statement($resourceQuestion,$predicateAnswer,$resourceAnswer));
    7192                }
    7293               
    73                
     94                $predicateQuestion = new Resource(HAS_QUESTION);
     95                $this->model->add(new Statement($this->resourceSurvey,$predicateQuestion,$resourceQuestion));           
    7496        }
    75        
    76         public function saveSurvey($sTitle)
    77         {
    78                 $this->model->saveAs('surveys/'.$sTitle.'.rdf','rdf');
    79                
    80                 return true;
    81         }
    82 
    8397}
    8498
Note: See TracChangeset for help on using the changeset viewer.