syntax
[ class tree: syntax ] [ index: syntax ] [ all elements ]

Source for file Serializer.php

Documentation is available at Serializer.php

  1. <?php
  2. // ----------------------------------------------------------------------------------
  3. // Class: RDF_NTriple_Serializer
  4. // ----------------------------------------------------------------------------------
  5. /**
  6.  * PHP N-Triple Serializer
  7.  *
  8.  * This class serialises models to N-Triple Syntax.
  9.  *
  10.  * @author Daniel Westphal <mail@d-westphal.de>
  11.  * @version V0.7
  12.  * @package syntax
  13.  * @access public
  14.  */
  15.  
  16. class RDF_NTriple_Serializer extends RDF_Object
  17. {
  18.     var $debug;
  19.     var $model;
  20.     var $res;
  21.  
  22.     /**
  23.      * @access public
  24.      */
  25.     function RDF_NTriple_Serializer()
  26.     {
  27.         $this->debug = false;
  28.     }
  29.  
  30.     /**
  31.      * Serializes a model to N Triple syntax.
  32.      *
  33.      * @param object Model $model 
  34.      * @return string 
  35.      * @access public
  36.      */
  37.     function &serialize(&$m)
  38.     {
  39.         if (!is_a($m'RDF_Model_Memory')) {
  40.             $m =$m->getMemModel();
  41.         }
  42.  
  43.         $this->reset();
  44.         if (!RDF_HIDE_ADVERTISE{
  45.             $this->res .= '# Generated by NTripleSerializer.php from RDF RAP.' .
  46.                 RDF_LINEFEED . '# http://www.wiwiss.fu-berlin.de/suhl/bizer/rdfapi/index.html'.
  47.                 RDF_LINEFEED . RDF_LINEFEED;
  48.         }
  49.  
  50.         foreach ($m->triples as $t{
  51.             $s $t->getSubject();
  52.             if (is_a($s'RDF_BlankNode')) {
  53.                 $subject '_:' $s->getURI();
  54.             else {
  55.                 $subject '<' str_replace(' '''$s->getURI()) '>';
  56.             }
  57.  
  58.             $p $t->getPredicate();
  59.             $predicate '<' str_replace(' '''$p->getURI()) '>';
  60.  
  61.             $o $t->getObject();
  62.             if (is_a($o'RDF_Literal')) {
  63.                 $object '"' $o->getLabel('"';
  64.                 if ($o->getLanguage(!= ''{
  65.                     $object .= '@' $o->getLanguage();
  66.                 }
  67.                 if ($o->getDatatype(!= ''{
  68.                     $object .= '^^<' $o->getDatatype('>';
  69.                 }
  70.             elseif (is_a($o'RDF_BlankNode')) {
  71.                 $object '_:' $o->getURI();
  72.             else {
  73.                 $object '<' str_replace(' '''$o->getURI()) '>';
  74.             ;
  75.  
  76.             $this->res .= $subject ' ' $predicate ' ' $object ' .';
  77.             $this->res .= RDF_LINEFEED . RDF_LINEFEED;
  78.         }
  79.  
  80.         return $this->res;
  81.     }
  82.  
  83.     /**
  84.      * Serializes a model and saves it into a file.
  85.      * Returns FALSE if the model couldn't be saved to the file.
  86.      *
  87.      * @access public
  88.      * @param object Model_Memory $model 
  89.      * @param string $filename 
  90.      * @return boolean 
  91.      * @access public
  92.      */
  93.     function saveAs(&$model$filename)
  94.     {
  95.         // serialize model
  96.         $n3 $this->serialize($model);
  97.         // write serialized model to file
  98.         $file_handle @fopen($filename'w');
  99.         if ($file_handle{
  100.             fwrite($file_handle$n3);
  101.             fclose($file_handle);
  102.             return true;
  103.         else {
  104.             return false;
  105.         ;
  106.     }
  107.  
  108.     /* ==================== protected Methods from here ==================== */
  109.  
  110.     /**
  111.      * Readies this object for serializing another model
  112.      *
  113.      * @access protected
  114.      * @param void 
  115.      * @returns void
  116.      */
  117.     function reset()
  118.     {
  119.         $this->res = "";
  120.         $this->model = null;
  121.     }
  122. }
  123.  
  124. ?>

Documentation generated on Mon, 11 Mar 2019 15:39:49 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.