Source for file NTripleSerializer.php

Documentation is available at NTripleSerializer.php

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

Documentation generated on Fri, 1 Jun 2007 16:50:04 +0200 by phpDocumentor 1.3.2