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()).'');
}
}
}
?>