graphSet=&$graphSet; } /** * Serialize the dataset to a TriX string * * @return string * @access public */ function & serializeToString() { return $this->_serialize(); } /** * Serialize the dataset to a TriX string and save in file * * @param string * @access public */ function serializeToFile($fileName) { $serializedString=&$this->_serialize(); $handle = fopen($fileName, 'w'); fwrite($handle, $serializedString); fclose($handle); } /** * Serialize the dataset to a TriX string * * @return string * @access private */ function & _serialize() { //Trix header $serializedString= ''. ''; //serialize defaultGraph if it is not empty $defaultGraph=& $this->graphSet->getDefaultGraph(); if ($defaultGraph->isEmpty()===false) { $serializedString.=''; for($iterator = $this->graphSet->findInDefaultGraph(null,null,null); $iterator->valid(); $iterator->next()) { $serializedString.=''; $statement=$iterator->current(); $serializedString.=$this->_node2string($statement->getSubject()); $serializedString.=$this->_node2string($statement->getPredicate()); $serializedString.=$this->_node2string($statement->getObject()); $serializedString.=''; }; $serializedString.=''; } //serialize namedGraphs foreach ($this->graphSet->listGraphNames() as $graphName) { $serializedString.=''; $serializedString.=''.$graphName.''; for($iterator = $this->graphSet->findInNamedGraphs(new Resource($graphName),null,null,null); $iterator->valid(); $iterator->next()) { $serializedString.=''; $statement=$iterator->current(); $serializedString.=$this->_node2string($statement->getSubject()); $serializedString.=$this->_node2string($statement->getPredicate()); $serializedString.=$this->_node2string($statement->getObject()); $serializedString.=''; }; $serializedString.=''; }; //TriX footer $serializedString.=''; return $serializedString; } /** * Serialize node to a TriX string * * @param Node * @return string * @access private */ function _node2string($node) { switch ($node) { case (is_a($node,'BlankNode')): return (''.$node->getLabel().''); case (is_a($node,'Resource')): return (''.$node->getLabel().''); case (is_a($node,'Literal')): if ($node->dtype!=null) return (''.$node->getLabel().''); if ($node->lang!=null) return (''.$node->getLabel().''); return (''.htmlentities($node->getLabel()).''); } } } ?>