<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>Soprano.Serializer</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <link rel="stylesheet" type="text/css" href="../common/doxygen.css" /> <link rel="stylesheet" media="screen" type="text/css" title="KDE Colors" href="../common/kde.css" /> </head> <body> <div id="container"> <div id="header"> <div id="header_top"> <div> <div> <img alt ="" src="../common/top-kde.jpg"/> KDE 4.4 PyKDE API Reference </div> </div> </div> <div id="header_bottom"> <div id="location"> <ul> <li>KDE's Python API</li> </ul> </div> <div id="menu"> <ul> <li><a href="../modules.html">Overview</a></li> <li><a href="http://techbase.kde.org/Development/Languages/Python">PyKDE Home</a></li> <li><a href="http://kde.org/family/">Sitemap</a></li> <li><a href="http://kde.org/contact/">Contact Us</a></li> </ul> </div> </div> </div> <div id="body_wrapper"> <div id="body"> <div id="right"> <div class="content"> <div id="main"> <div class="clearer"> </div> <h1>Serializer Class Reference</h1> <code>from PyKDE4.soprano import *</code> <p> Inherits: Soprano.Plugin,Soprano.Error.ErrorCache<br /> Namespace: Soprano.Serializer<br /> <h2>Detailed Description</h2> <p>\class Serializer serializer.h Soprano/Serializer </p> <p> Soprano.Serializer defines the interface for a Soprano RDF serializer plugin. </p> <p> Each serializer plugin may support multiple RDF serializations (supportedSerializations()). </p> <p> <b>Usage </b> </p> <p> Using a Serializer is straightforward. One starts by getting a plugin that supports the requested RDF data serialization: </p> <p> <pre class="fragment"> Soprano.Serializer* s = Soprano.PluginManager.instance()->discoverSerializerForSerialization( Soprano.SerializationRdfXml ); </pre> </p> <p> Then serializing RDF data is done in a single method call which writes the serialized data to a QTextStream: </p> <p> <pre class="fragment"> QTextStream stream( stdout ); s->serialize( model->listStatements(), stream, Soprano.SerializationRdfXml ); </pre> </p> <p> \sa soprano_writing_plugins </p> <p> <dl class="author" compact><dt><b>Author:</b></dt><dd> Sebastian Trueg <trueg@kde.org> </dd></dl> </p> <table border="0" cellpadding="0" cellspacing="0"><tr><td colspan="2"><br><h2>Methods</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#Serializer">__init__</a> (self, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> name)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#addPrefix">addPrefix</a> (self, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> qname, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qurl.html">QUrl</a> uri)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#clearPrefixes">clearPrefixes</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">{<a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>:<a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qurl.html">QUrl</a>} </td><td class="memItemRight" valign="bottom"><a class="el" href="#prefixes">prefixes</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#serialize">serialize</a> (self, <a href="../soprano/Soprano.StatementIterator.html">Soprano.StatementIterator</a> it, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qtextstream.html">QTextStream</a> stream, <a href="../soprano/Soprano.html#RdfSerialization">Soprano.RdfSerialization</a> serialization, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> userSerialization=QString())</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="../soprano/Soprano.RdfSerializations.html">Soprano.RdfSerializations</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#supportedSerializations">supportedSerializations</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstringlist.html">QStringList</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="#supportedUserSerializations">supportedUserSerializations</a> (self)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#supportsSerialization">supportsSerialization</a> (self, <a href="../soprano/Soprano.html#RdfSerialization">Soprano.RdfSerialization</a> s, <a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> userSerialization=QString())</td></tr> </table> <hr><h2>Method Documentation</h2><a class="anchor" name="Serializer"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">__init__</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> </td> <td class="paramname"><em>name</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"></div></div><a class="anchor" name="addPrefix"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> addPrefix</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> </td> <td class="paramname"><em>qname</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qurl.html">QUrl</a> </td> <td class="paramname"><em>uri</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Add a prefix to be used by the serializer. </p> <p> Be aware that serializer instances are reused. Thus, it is highly recommended to clear prefixes after using the Serializer. A future version of %Soprano will have a revised %Serializer API which handles this issue more effective. </p> <p> Method is const for historical reasons. </p> <p> <dl class="since" compact><dt><b>Since:</b></dt><dd> 2.3 </dd></dl> </p></div></div><a class="anchor" name="clearPrefixes"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"> clearPrefixes</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Clear all prefixes set via addPrefix. </p> <p> Method is const for historical reasons. </p> <p> <dl class="since" compact><dt><b>Since:</b></dt><dd> 2.3 </dd></dl> </p></div></div><a class="anchor" name="prefixes"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">{<a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a>:<a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qurl.html">QUrl</a>} prefixes</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>Retrieve all prefixes set via addPrefix. </p> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> a QHash containing of the prefixe qnames and their URIs. </dd></dl> </p> <p> <dl class="since" compact><dt><b>Since:</b></dt><dd> 2.3 </dd></dl> </p></div></div><a class="anchor" name="serialize"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool serialize</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../soprano/Soprano.StatementIterator.html">Soprano.StatementIterator</a> </td> <td class="paramname"><em>it</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qtextstream.html">QTextStream</a> </td> <td class="paramname"><em>stream</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../soprano/Soprano.html#RdfSerialization">Soprano.RdfSerialization</a> </td> <td class="paramname"><em>serialization</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> </td> <td class="paramname"><em>userSerialization=QString()</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><dl compact><dt><b>Abstract method:</b></dt><dd>This method is abstract and can be overridden but not called directly.</dd></dl><p>Serialize a list of statements. </p> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>it</em> </td><td> An iterator containing the statements to be serialized. </td></tr> </table></dl> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>stream</em> </td><td> The stream the serialized data should be written to. </td></tr> </table></dl> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>serialization</em> </td><td> The encoding to be used. </td></tr> </table></dl> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>userSerialization</em> </td><td> If serialization is set to Soprano.SerializationUser this parameter specifies the serialization to use. It allows the extension of the %Soprano Serializer interface with new RDF serializations that are not officially supported by %Soprano. </td></tr> </table></dl> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> <b>true</b> if the %serialization was successful, false otherwise. </dd></dl> </p></div></div><a class="anchor" name="supportedSerializations"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="../soprano/Soprano.RdfSerializations.html">Soprano.RdfSerializations</a> supportedSerializations</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><dl compact><dt><b>Abstract method:</b></dt><dd>This method is abstract and can be overridden but not called directly.</dd></dl><p>The serialiazation types supported by this serializer. <dl class="return" compact><dt><b>Returns:</b></dt><dd> A combination of Soprano.RdfSerialization types. If the list contains Soprano.SerializationUser the serializer supports additional RDF serialiazations not officially supported by %Soprano. </dd></dl> </p></div></div><a class="anchor" name="supportedUserSerializations"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstringlist.html">QStringList</a> supportedUserSerializations</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname"><em>self</em> )</td> <td width="100%"> </td> </tr> </table> </div> <div class="memdoc"><p>A serializer can support additional RDF serializations that are not defined in Soprano.RdfSerialization. In that case supportedSerializations() has to include Soprano.SerializationUser. </p> <p> The default implementation returns an empty list. </p> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> A list of supported user RDF serializations. </dd></dl> </p></div></div><a class="anchor" name="supportsSerialization"></a> <div class="memitem"> <div class="memproto"> <table class="memname"><tr> <td class="memname">bool supportsSerialization</td> <td>(</td> <td class="paramtype"> <em>self</em>, </td> <td class="paramname"></td> </tr><tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="../soprano/Soprano.html#RdfSerialization">Soprano.RdfSerialization</a> </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="memname"></td> <td></td> <td class="paramtype"><a href="http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qstring.html">QString</a> </td> <td class="paramname"><em>userSerialization=QString()</em></td> </tr> <tr> <td></td> <td>)</td> <td></td> <td></td> <td width="100%"> </td> </tr></table> </div> <div class="memdoc"><p>Check if a plugin supports a specific serialization. </p> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>s</em> </td><td> The requested serialization. </td></tr> </table></dl> <p> </p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td></td><td valign="top"><em>userSerialization</em> </td><td> If serialization is set to Soprano.SerializationUser this parameter specifies the requested serialization. It allows the extension of the %Soprano Serializer interface with new RDF serializations that are not officially supported by %Soprano. </td></tr> </table></dl> <p> <dl class="return" compact><dt><b>Returns:</b></dt><dd> <b>true</b> if the serializer is able to parse RDF data encoded in serialization s, <b>false</b> otherwise. </dd></dl> </p></div></div> </div> </div> </div> <div id="left"> <div class="menu_box"> <div class="nav_list"> <ul> <li><a href="../allclasses.html">Full Index</a></li> </ul> </div> <a name="cp-menu" /><div class="menutitle"><div> <h2 id="cp-menu-project">Modules</h2> </div></div> <div class="nav_list"> <ul><li><a href="../akonadi/index.html">akonadi</a></li> <li><a href="../dnssd/index.html">dnssd</a></li> <li><a href="../kdecore/index.html">kdecore</a></li> <li><a href="../kdeui/index.html">kdeui</a></li> <li><a href="../khtml/index.html">khtml</a></li> <li><a href="../kio/index.html">kio</a></li> <li><a href="../knewstuff/index.html">knewstuff</a></li> <li><a href="../kparts/index.html">kparts</a></li> <li><a href="../kutils/index.html">kutils</a></li> <li><a href="../nepomuk/index.html">nepomuk</a></li> <li><a href="../phonon/index.html">phonon</a></li> <li><a href="../plasma/index.html">plasma</a></li> <li><a href="../polkitqt/index.html">polkitqt</a></li> <li><a href="../solid/index.html">solid</a></li> <li><a href="../soprano/index.html">soprano</a></li> </ul></div></div> </div> </div> <div class="clearer"/> </div> <div id="end_body"></div> </div> <div id="footer"><div id="footer_text"> This documentation is maintained by <a href="mailto:simon@simonzone.com">Simon Edwards</a>.<br /> KDE<sup>®</sup> and <a href="../images/kde_gear_black.png">the K Desktop Environment<sup>®</sup> logo</a> are registered trademarks of <a href="http://ev.kde.org/" title="Homepage of the KDE non-profit Organization">KDE e.V.</a> | <a href="http://www.kde.org/contact/impressum.php">Legal</a> </div></div> </body> </html>