/** * Serialize the model as a string. * * @param LibRDF_Serializer $serializer The serializer to use * @param string $base_uri The base URI to use if relative URIs are desired * @return string The model as a string * @throws LibRDF_Error If unable to serialize the model * @access public */ public function serializeStatements(LibRDF_Serializer $serializer, $base_uri = NULL) { if ($base_uri) { $base_uri = new LibRDF_URI($base_uri); } $ret = librdf_serializer_serialize_model_to_string($serializer->getSerializer(), $base_uri ? $base_uri->getURI() : $base_uri, $this->model); if (!$ret) { throw new LibRDF_Error("Unable to serialize model"); } else { return $ret; } }
function CONSTRUCT($query, $base_uri = null) { if (is_null($base_uri)) { $base_uri = $this->_base_uri; } timings($query); $q = librdf_new_query($this->_world, 'sparql', null, $query, $base_uri); $r = librdf_model_query_execute($this->_model, $q); $r_stream = librdf_query_results_as_stream($r); $r_store = librdf_new_storage($this->_world, 'memory', '', null); $r_model = librdf_new_model($this->_world, $r_store, null); librdf_model_add_statements($r_model, $r_stream); librdf_free_stream($r_stream); $serializer = librdf_new_serializer($this->_world, 'json', null, null); $r = librdf_serializer_serialize_model_to_string($serializer, null, $r_model); librdf_free_serializer($serializer); $r = json_decode($r, 1); if (is_null($r)) { $r = array(); } librdf_free_model($r_model); librdf_free_storage($r_store); librdf_free_query($q); timings(); return $r; }