Changeset 148


Ignore:
Timestamp:
11/07/11 16:54:41 (13 years ago)
Author:
jkraaijeveld
Message:

Finished DatabaseInterface? v0.1? I hate version numbering.

Location:
Dev/branches/jos-branch
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • Dev/branches/jos-branch/classes/DatabaseInterface.php

    r143 r148  
    4747     * @return type
    4848     */
    49     public function get($type, $arguments)
     49    public function get($type, $arguments = array())
    5050    {
    5151        switch(strtolower($type))
     
    7171                        case "answerset":
    7272                                return $this->answerSetConnector->get($arguments);
     73                                break;
    7374                        case "session":
    7475                                return $this->sessionConnector->get($arguments);
    75 
     76                                break;
    7677        }
    7778    }
     
    109110                                $this->sessionConnector->set($rToolObject);
    110111                                break;
    111 
    112112        }
    113113    }
  • Dev/branches/jos-branch/classes/SessionConnector.php

    r143 r148  
    11<?php
     2// Survey database interface class as intermediate for storing data from the site to the RDF database
     3require_once 'rdfConstants.php';
     4// Include RAP Library to write RDF files
     5include(RDFAPI_INCLUDE_DIR . "RDFAPI.php");
     6
    27/**
    38 * Description of SessionConnector
     
    103108                        foreach($results as $result)
    104109                        {
     110                                //Create a session object out of every result, get all required fields as well.
    105111                                $pipeline = $this->getPipeline($result['?uid']->label);
    106112                                $answersets = $this->getAnswerSets($result['?uid']->label);
     
    118124        private function getPipeline($uid)
    119125        {
    120                 $querystring = '
    121                         PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE .'>
    122                         PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE .'>
    123                         SELECT DISTINCT ?object
    124                         WHERE
    125                         {
    126                                 _session predicates:resource_type resources:session .
    127                                 ?x predicates:uid \'' . $uid . '\' .
    128                                 { ?x predicates:has_application ?object .}
    129                                 UNION
    130                                 { ?x predicates:has_survey ?object .}
    131 
    132                        
    133                 }';     
    134                 $result = $this->model->sparqlQuery($querystring);
    135                 print_r($result);
     126                $result = $this->model->findRegex("[(".$uid.")]", "[(has_application)|(has_survey)]" ,null);
     127                $iterator = $result->getStatementIterator();
     128                $pipeline = array();
     129                while($iterator->hasNext())
     130                {
     131                        $element = $iterator->next();
     132                        if(strpos($element->getLabelPredicate(), "has_application") != false)
     133                        {
     134                                $applications = $this->db->get("application", array("uid" => $element->getLabelObject()));
     135                                $pipeline[] = $applications[0];
     136                        }
     137                        else
     138                        {
     139                                $surveys = $this->db->get("survey", array("uid" => $element->getLabelObject()));
     140                                $pipeline[] = $surveys[0];
     141                        }
     142                }
     143                return $pipeline;
    136144        }
    137145
     
    142150        private function getAnswerSets($uid)
    143151        {
     152                $result = $this->model->findRegex("[(".$uid.")]", "[(has_answerset)]" ,null);
     153                $iterator = $result->getStatementIterator();
     154                $answersets = array();
     155                while($iterator->hasNext())
     156                {
     157                        $element = $iterator->next();
     158                        $resultsets = $this->db->get("answerset", array("uid" => $element->getLabelObject()));
     159                        $answersets[] = $resultsets[0];
     160                }
     161                return $answersets;
    144162        }
    145163
     
    172190                $this->model->add(new Statement($resourceSession, $predicateTimestamp, $sessionTimestamp));
    173191
     192                //Create a sequence to store the different applications and surveys.
    174193                if(isset($rToolObject->pipeline))
    175194                {
     
    187206                }
    188207
    189                 if(isset($rToolObjects->answerSets))
     208                if(isset($rToolObject->answersets))
    190209                {
    191210                        foreach($rToolObject->answersets as $answerset)
     
    199218                $this->save();
    200219        }
    201 
    202 
    203 
    204220}
    205221?>
  • Dev/branches/jos-branch/classes/Survey.php

    r138 r148  
    1212    public $questions;
    1313   
    14     public function __construct($uid = null, $title = null, $description = null, $questions = null) {
     14    public function __construct($uid = null, $title = null, $description = null, $creator = null, $questions = null) {
    1515        if(!isset($uid))
    1616        {
     
    1919        $this->uid = $uid;
    2020        $this->title = $title;
    21         $this->description = $description;
     21                $this->description = $description;
     22                $this->creator = $creator;
    2223        $this->questions = $questions;
    2324    }
  • Dev/branches/jos-branch/classes/SurveyConnector.php

    r143 r148  
    5555        $keys = array_keys($arguments);
    5656        //Set default values for arguments
    57         $uid = "?uid"; $title = "?title"; $description = "?description"; $questions = "";
     57        $uid = "?uid"; $title = "?title"; $description = "?description"; $creator = "?creator"; $questions = "";
    5858        if(in_array("uid", $keys))
    5959            $uid = '\''.$arguments["uid"].'\'';
     
    6161            $title = '\''.$arguments["title"].'\'';
    6262        if(in_array("description", $keys))
    63             $description = "\"".$arguments["description"]."\"";
     63                        $description = "\"".$arguments["description"]."\"";
     64                if(in_array("creator", $keys))
     65                        $creator = "\"".$arguments["creator"]."\"";
    6466        if(in_array("questions", $keys))
    6567        {
     
    7577            PREFIX  predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '>
    7678            PREFIX  resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '>
    77             SELECT DISTINCT ?uid, ?title, ?description
     79            SELECT DISTINCT ?uid, ?title, ?description, ?creator
    7880            WHERE
    7981            {
     
    8486                predicates:uid ' . $uid . '
    8587                predicates:title ' . $title . '
    86                 predicates:description ' . $description . '
     88                                predicates:description ' . $description . '
     89                                predicates:creator ' . $creator . '
    8790                ' . $questions . '
    8891            }';
     
    9598        if(!empty($results))
    9699        {
     100            $this->db = new DatabaseInterface();
    97101            foreach($results as $result)
    98102            {
    99                 $questions = $this->getQuestions($result['?uid']->label);
    100                 $surveys[] = new Survey($result['?uid']->label, $result['?title']->label, $result['?description']->label, $questions);
     103                                $questions = $this->getQuestions($result['?uid']->label);
     104                                $creator = $this->db->get("user", array("uid" => $result['?creator']->label));
     105                $surveys[] = new Survey($result['?uid']->label, $result['?title']->label, $result['?description']->label, $creator[0], $questions);
    101106            }
    102107        }
     
    127132        if(!empty($results))
    128133        {
    129             $this->db = new DatabaseInterface();
    130134            foreach($results as $questionId)
    131135            {
     
    165169        $this->model->add(new Statement($resourceSurvey,$predicateDescription,$surveyDescription));
    166170       
     171                $predicateCreator = new Resource(CREATOR);
     172                $surveyCreator = new Literal($rToolObject->creator->uid);
     173                $this->model->add(new Statement($resourceSurvey, $predicateCreator, $surveyCreator));
     174
    167175        if(isset($rToolObject->questions))
    168176        {
  • Dev/branches/jos-branch/classes/UserConnector.php

    r140 r148  
    8181                                        predicates:password ' . $password . '
    8282            }';
    83         echo $querystring;
    8483        //Query the model
    8584        $results = $this->model->sparqlQuery($querystring);
  • Dev/branches/jos-branch/data/sessions/sessions.rdf

    r143 r148  
    77   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    88   xmlns:ns1="http://tbm.tudelft.nl/researchtool/predicates/">
    9    
     9
    1010<rdf:Description rdf:about="http://tbm.tudelft.nl/researchtool/resources/session/f2989fac2de2ac27f78162b637ae84b5">
    1111   <ns1:resource_type rdf:resource="http://tbm.tudelft.nl/researchtool/resources/session"/>
     
    2020   <ns1:uid>6cf683023d644b1794cd8c410134ca91</ns1:uid>
    2121   <ns1:title>Supervet, deze sessie</ns1:title>
    22    <ns1:datetime>1320072148</ns1:datetime>
     22   <ns1:datetime>0</ns1:datetime>
    2323   <ns1:has_survey>b91d39e8667372e220bb861b3f94b5bd</ns1:has_survey>
    2424   <ns1:has_application>c571ae05fa6e69ad63a8793f1484206f</ns1:has_application>
    2525   <ns1:has_application>c9390a27f525d84c1795bcb5c6caf33f</ns1:has_application>
    2626   <ns1:has_survey>bab0492e295700ed0324f724b9c8a815</ns1:has_survey>
     27   <ns1:has_answerset>52fe4a3e1f42f0f646226e184852dd00</ns1:has_answerset>
    2728</rdf:Description>
    2829
  • Dev/branches/jos-branch/data/surveys/surveys.rdf

    r143 r148  
    1313   <ns1:title>SuperSurvey</ns1:title>
    1414   <ns1:description>Dit is een surveybeschrijving</ns1:description>
     15   <ns1:creator>b76cbf38cac7a3f048ca0d64a6c3ef58</ns1:creator>
    1516   <ns1:has_question>q1</ns1:has_question>
    16    <ns1:has_question>q2</ns1:has_question>
    1717   <ns1:has_question>q3</ns1:has_question>
     18   <ns1:has_question>2807fdaf2fe624323d24a5d85599eb83</ns1:has_question>
    1819</rdf:Description>
    1920
     
    2324   <ns1:title>TestSurveyDeluxe</ns1:title>
    2425   <ns1:description>Zomaar, jeweetwel</ns1:description>
     26   <ns1:creator>b76cbf38cac7a3f048ca0d64a6c3ef58</ns1:creator>
    2527   <ns1:has_question>q2</ns1:has_question>
    2628   <ns1:has_question>2807fdaf2fe624323d24a5d85599eb83</ns1:has_question>
    2729</rdf:Description>
    2830
    29 
    3031</rdf:RDF>
  • Dev/branches/jos-branch/testpage.php

    r143 r148  
    33
    44        $db = new DatabaseInterface();
    5         $results = $db->get("session", array());
     5        $user = $db->get("user", array("name" => "jkraaijeveld"));
     6        print_r($user[0]);
    67
    78?>
Note: See TracChangeset for help on using the changeset viewer.