<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vazaar Project Blog &#187; Workshop</title>
	<atom:link href="http://www.vazaar-project.org/blog/archives/category/my-workshop/feed" rel="self" type="application/rss+xml" />
	<link>http://www.vazaar-project.org/blog</link>
	<description>The semantic store</description>
	<lastBuildDate>Thu, 02 Sep 2010 02:15:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>New custom timeline widget</title>
		<link>http://www.vazaar-project.org/blog/archives/558</link>
		<comments>http://www.vazaar-project.org/blog/archives/558#comments</comments>
		<pubDate>Thu, 02 Sep 2010 02:15:14 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/558">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[GUI]]></category>
		<category><![CDATA[PyGTK Widgets]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SPARQL Queries]]></category>
		<category><![CDATA[Workshop]]></category>
		<category><![CDATA[custom timeline]]></category>
		<category><![CDATA[custom widget]]></category>
		<category><![CDATA[Graphical user interface]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[simple 1]]></category>
		<category><![CDATA[Timeline]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=558</guid>
		<description><![CDATA[<p>Tired of looking for a timeline widget in PyGTK for Vazaar I&#8217;ve decided to develop it  by myself.</p>
<p>It&#8217;s very simple: 1 calendar and 3 treeviews.</p>
<p>The user clicks a day in the calendar and with the selected date Vazaar asks to the database for those resources created that day, the day before and the day after.</p>
<p>Here is a screenshot:</p>

<a href="http://www.vazaar-project.org/blog/wp-content/gallery/pygtk-custom-widgets/vazaar-timeline_0.png" title="" class="shutterset_singlepic74" >
	<img class="ngg-singlepic ngg-center" src="http://www.vazaar-project.org/blog/wp-content/gallery/cache/74__640x480_vazaar-timeline_0.png" alt="vazaar-timeline_0" title="vazaar-timeline_0" />
</a>

<p>You can find an example in the repository.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75" rel="bookmark" title="09/06/2009"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">About Vazaar 0.4 Beta development</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">Querying remote ontologies from integrated SPARQL editor</span></a></li>
</ul>
<p><!-- Similar Posts took 17.634 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/vazaar-timeline.png' class='wam_link'>Vazaar Timeline</a><p>A timeline for vazaar showing resources for selected, previous and next day.</p></li></ul></div><div class="shr-publisher-558"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/gui-my-workshop">GUI</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/558">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/558#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>Tired of looking for a timeline widget in PyGTK for Vazaar I&#8217;ve decided to develop it  by myself.</p>
<p>It&#8217;s very simple: 1 calendar and 3 treeviews.</p>
<p>The user clicks a day in the calendar and with the selected date Vazaar asks to the database for those resources created that day, the day before and the day after.</p>
<p>Here is a screenshot:</p>

<a href="http://www.vazaar-project.org/blog/wp-content/gallery/pygtk-custom-widgets/vazaar-timeline_0.png" title="" class="shutterset_singlepic74" >
	<img class="ngg-singlepic ngg-center" src="http://www.vazaar-project.org/blog/wp-content/gallery/cache/74__640x480_vazaar-timeline_0.png" alt="vazaar-timeline_0" title="vazaar-timeline_0" />
</a>

<p>You can find an example in the repository.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75" rel="bookmark" title="09/06/2009"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">About Vazaar 0.4 Beta development</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-09-02 03:15:14" resource="http://www.vazaar-project.org/blog/archives/558" /><span rel="http://www.vazaar-project.org/blog/archives/558" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/558">Querying remote ontologies from integrated SPARQL editor</span></a></li>
</ul>
<p><!-- Similar Posts took 13.112 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/vazaar-timeline.png' class='wam_link'>Vazaar Timeline</a><p>A timeline for vazaar showing resources for selected, previous and next day.</p></li></ul></div><div class="shr-publisher-558"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/558/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to fix your sqlite database after corruption</title>
		<link>http://www.vazaar-project.org/blog/archives/550</link>
		<comments>http://www.vazaar-project.org/blog/archives/550#comments</comments>
		<pubDate>Wed, 01 Sep 2010 23:45:00 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/550">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[RDFLib]]></category>
		<category><![CDATA[Workshop]]></category>
		<category><![CDATA[accesses]]></category>
		<category><![CDATA[berkeley database]]></category>
		<category><![CDATA[Concurrency control]]></category>
		<category><![CDATA[corruption]]></category>
		<category><![CDATA[crashes]]></category>
		<category><![CDATA[database directory]]></category>
		<category><![CDATA[database files]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[file bin]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[Lock]]></category>
		<category><![CDATA[MemoryError]]></category>
		<category><![CDATA[self store]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[system administration]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=550</guid>
		<description><![CDATA[<p>If you get something like this:</p>
<pre>Traceback (most recent call last):
  File "./bin/vazaar", line 79, in
    Vazaar(options, args)
  File "/home/t00m/dev/trunk/vazaarlib/main.py", line 61, in __init__
    self.store = StoreManager(self)
  File "/home/t00m/dev/trunk/vazaarlib/store.py", line 54, in __init__
    self.__get_graph()
  File "/home/t00m/dev/trunk/vazaarlib/store.py", line 85, in __get_graph
    self.graph.store.open(self.options)
  File "/usr/lib/pymodules/python2.6/rdflib/store/Sleepycat.py", line 77, in open
    index.open(index_name, dbname, dbtype, dbopenflags|db.DB_CREATE, dbmode)

<span style="color: #ff0000;">MemoryError: (12, 'Cannot allocate memory -- Lock table is out of available locker entries')</span>
</pre>
<p><strong>Just go to database directory and delete all files similar to __db. </strong></p>
<p>Reason:<br />
This problem occurs when Vazaar accesses the Berkeley database files, it makes temporary locker entries within the tables while it searches for data. If Vazaar crashes often, this issue will occur much sooner because the <span style="text-decoration: underline;">locks are never cleared</span>.</p>
<p><em>Tip found at http://www.linuxmaza.com/system-administration/solved-lock-table-is-out-of-available-locker-entries-yum-install-yum-upgrade-3/</em><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/5" rel="bookmark" title="01/11/2007"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">Initial import</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75/vazaar-04-export" rel="bookmark" title="08/06/2009"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">vazaar-04-export</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">Vazaar 0.4.8: a new release for testing</span></a></li>
</ul>
<p><!-- Similar Posts took 14.059 ms --></p>
<div class="shr-publisher-550"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/python-my-workshop">Python</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/550">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/550#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>If you get something like this:</p>
<pre>Traceback (most recent call last):
  File "./bin/vazaar", line 79, in
    Vazaar(options, args)
  File "/home/t00m/dev/trunk/vazaarlib/main.py", line 61, in __init__
    self.store = StoreManager(self)
  File "/home/t00m/dev/trunk/vazaarlib/store.py", line 54, in __init__
    self.__get_graph()
  File "/home/t00m/dev/trunk/vazaarlib/store.py", line 85, in __get_graph
    self.graph.store.open(self.options)
  File "/usr/lib/pymodules/python2.6/rdflib/store/Sleepycat.py", line 77, in open
    index.open(index_name, dbname, dbtype, dbopenflags|db.DB_CREATE, dbmode)

<span style="color: #ff0000;">MemoryError: (12, 'Cannot allocate memory -- Lock table is out of available locker entries')</span>
</pre>
<p><strong>Just go to database directory and delete all files similar to __db. </strong></p>
<p>Reason:<br />
This problem occurs when Vazaar accesses the Berkeley database files, it makes temporary locker entries within the tables while it searches for data. If Vazaar crashes often, this issue will occur much sooner because the <span style="text-decoration: underline;">locks are never cleared</span>.</p>
<p><em>Tip found at http://www.linuxmaza.com/system-administration/solved-lock-table-is-out-of-available-locker-entries-yum-install-yum-upgrade-3/</em><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/5" rel="bookmark" title="01/11/2007"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">Initial import</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75/vazaar-04-export" rel="bookmark" title="08/06/2009"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">vazaar-04-export</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2010-09-02 00:45:00" resource="http://www.vazaar-project.org/blog/archives/550" /><span rel="http://www.vazaar-project.org/blog/archives/550" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/550">Vazaar 0.4.8: a new release for testing</span></a></li>
</ul>
<p><!-- Similar Posts took 12.903 ms --></p>
<div class="shr-publisher-550"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/550/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyGTK XDot Widget</title>
		<link>http://www.vazaar-project.org/blog/archives/527</link>
		<comments>http://www.vazaar-project.org/blog/archives/527#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:15:54 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/527">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[GUI]]></category>
		<category><![CDATA[PyGTK Widgets]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[RDFLib]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[application features]]></category>
		<category><![CDATA[Cairo]]></category>
		<category><![CDATA[DOT language]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[Graphviz]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[GUI widget]]></category>
		<category><![CDATA[interactive graphs]]></category>
		<category><![CDATA[interactive viewer]]></category>
		<category><![CDATA[intermediate format]]></category>
		<category><![CDATA[intuitive graphical interface]]></category>
		<category><![CDATA[keyboard mouse]]></category>
		<category><![CDATA[library class]]></category>
		<category><![CDATA[memory footprint]]></category>
		<category><![CDATA[mouse navigation]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python application]]></category>
		<category><![CDATA[set filter]]></category>
		<category><![CDATA[standalone application]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[User interface]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=527</guid>
		<description><![CDATA[<p>XDot es un magnífico componente para representar grafos interactivos con Python, Graphviz y GTK.</p>
<p>De la <a href="http://code.google.com/p/jrfonseca/wiki/XDot">web</a> del autor:</p>
<blockquote><p><strong><em>xdot.py is an interactive viewer for graphs written in Graphviz&#8217;s dot language.</em></strong></p>
<p><em>It uses internally the graphviz&#8217;s xdot output format as an intermediate format, and PyGTK and Cairo for rendering.<br />
xdot.py can be used either as a standalone application from command line, or as a library embedded in your python application.</em></p>
<p><em><strong>Features</strong></em></p>
<ul>
<li><em> Since it doesn&#8217;t use bitmaps it is fast and has a small memory footprint.</em></li>
<li><em>Arbitrary zoom.</em></li>
<li><em>Keyboard/mouse navigation.</em></li>
<li><em>Supports events on the nodes with URLs.</em></li>
<li><em>Animated jumping between nodes.</em></li>
<li><em>Highlights node/edge under mouse. </em></li>
</ul>
</blockquote>
<p>Este código ilustra como usar el widget en una aplicación. En la mía, genero dinámicamente el código <em>dot</em> según los nodos (recursos) que haya eligido el usuario. En los adjuntos puedes encontrar otro ejemplo mezclando rdflib y xdot:</p>
<p><span id="more-527"></span></p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw1">import</span> gtk <span class="co1"># gtk bindings</span><br />
<span class="kw1">import</span> xdot <span class="co1"># xdot library</span></p>
<p><span class="kw1">class</span> FooXDot<span class="br0">&#40;</span>xdot.<span class="me1">DotWidget</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, func<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; xdot.<span class="me1">DotWidget</span>.<span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Filters allowed: &#8216;dot&#8217;, &#8216;neato&#8217;, &#8216;twopi&#8217;, &#8216;circo&#8217;, &#8216;fdp&#8217;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">set_filter</span><span class="br0">&#40;</span><span class="st0">&#8216;circo&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&#8216;clicked&#8217;</span>, func<span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> display_dot<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Header</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_head = <span class="st0">&quot;&quot;</span><span class="st0">&quot;digraph Vazaar {<span class="es0">\n</span>charset=&quot;</span>UTF<span class="nu0">-8</span><span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Relations</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body = <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; -&gt; &quot;</span>tennis<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body = <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; -&gt; &quot;</span>basket<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user2<span class="st0">&quot; -&gt; &quot;</span>basket<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user2<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user3<span class="st0">&quot; -&gt; &quot;</span>tennis<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user3<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; -&gt; &quot;</span>karate<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; -&gt; &quot;</span>tennis<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Key Nodes</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># people</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user1&#8242;</span>, <span class="st0">&#8216;user1&#8242;</span>, <span class="st0">&#8216;John&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user2<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user2&#8242;</span>, <span class="st0">&#8216;user2&#8242;</span>, <span class="st0">&#8216;Steven&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user3<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user3&#8242;</span>, <span class="st0">&#8216;user3&#8242;</span>, <span class="st0">&#8216;Paul&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user4&#8242;</span>, <span class="st0">&#8216;user4&#8242;</span>, <span class="st0">&#8216;Thomas&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># plays</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>tennis<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>green<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;tennis&#8217;</span>, <span class="st0">&#8216;tennis&#8217;</span>, <span class="st0">&#8216;Tennis&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>basket<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>lightblue<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;basket&#8217;</span>, <span class="st0">&#8216;basket&#8217;</span>, <span class="st0">&#8216;Basket&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>soccer<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>hotpink<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;soccer&#8217;</span>, <span class="st0">&#8216;soccer&#8217;</span>, <span class="st0">&#8216;Soccer&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>karate<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s &nbsp; tyle=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>white<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;karate&#8217;</span>, <span class="st0">&#8216;Karate&#8217;</span>, <span class="st0">&#8216;Karate&#8217;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Fotter</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_footer = <span class="st0">&quot;}&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Join all parts</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; xdot_code = dc_head + dc_body + dc_footer</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Update widget with the new dot code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">set_dotcode</span><span class="br0">&#40;</span>xdot_code<span class="br0">&#41;</span></p>
<p><span class="co1"># callback called after user clicks in a node</span><br />
<span class="kw1">def</span> on_url_clicked<span class="br0">&#40;</span>widget, keynode, event<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#8216;Key Node:&#8217;</span>, keynode</p>
<p><span class="kw1">if</span> __name__ == <span class="st0">&#8216;__main__&#8217;</span>:<br />
&nbsp; &nbsp; <span class="co1"># create widget and display dot code</span><br />
&nbsp; &nbsp; xdot = FooXDot<span class="br0">&#40;</span>on_url_clicked<span class="br0">&#41;</span><br />
&nbsp; &nbsp; xdot.<span class="me1">display_dot</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; xdot.<span class="me1">show_all</span><span class="br0">&#40;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="co1"># gtk stuff</span><br />
&nbsp; &nbsp; window = gtk.<span class="me1">Window</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; window.<span class="me1">resize</span><span class="br0">&#40;</span><span class="nu0">800</span>, <span class="nu0">600</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; window.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&#8216;destroy&#8217;</span>, gtk.<span class="me1">main_quit</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; window.<span class="me1">show_all</span><span class="br0">&#40;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="co1"># Embed XDot widget</span><br />
&nbsp; &nbsp; window.<span class="me1">add</span><span class="br0">&#40;</span>xdot<span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="co1"># Get fun</span><br />
&nbsp; &nbsp; gtk.<span class="me1">main</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
<p>Resultado:</p>
<div id="attachment_529" class="wp-caption aligncenter" style="width: 816px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_012.png"><img class="size-full wp-image-529" title="XDot Widget example output" src="http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_012.png" alt="" width="806" height="485" /></a><p class="wp-caption-text">XDot widget in action</p></div>
<p>Código fuente de otro ejemplo: <a href="http://www.vazaar-project.org/blog/wp-content/uploads/xdot.zip">xdot.zip</a><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/558" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">New custom timeline widget</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/514/xdot" rel="bookmark" title="19/08/2010"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">xdot</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">Querying remote ontologies from integrated SPARQL editor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">GUI improvements</span></a></li>
</ul>
<p><!-- Similar Posts took 12.032 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_012.png' class='wam_link'>XDot Widget example output</a></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_0121.png' class='wam_link'>XDot widget example</a></li></ul></div><div class="shr-publisher-527"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/gui-my-workshop">GUI</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/527">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/527#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>XDot es un magnífico componente para representar grafos interactivos con Python, Graphviz y GTK.</p>
<p>De la <a href="http://code.google.com/p/jrfonseca/wiki/XDot">web</a> del autor:</p>
<blockquote><p><strong><em>xdot.py is an interactive viewer for graphs written in Graphviz&#8217;s dot language.</em></strong></p>
<p><em>It uses internally the graphviz&#8217;s xdot output format as an intermediate format, and PyGTK and Cairo for rendering.<br />
xdot.py can be used either as a standalone application from command line, or as a library embedded in your python application.</em></p>
<p><em><strong>Features</strong></em></p>
<ul>
<li><em> Since it doesn&#8217;t use bitmaps it is fast and has a small memory footprint.</em></li>
<li><em>Arbitrary zoom.</em></li>
<li><em>Keyboard/mouse navigation.</em></li>
<li><em>Supports events on the nodes with URLs.</em></li>
<li><em>Animated jumping between nodes.</em></li>
<li><em>Highlights node/edge under mouse. </em></li>
</ul>
</blockquote>
<p>Este código ilustra como usar el widget en una aplicación. En la mía, genero dinámicamente el código <em>dot</em> según los nodos (recursos) que haya eligido el usuario. En los adjuntos puedes encontrar otro ejemplo mezclando rdflib y xdot:</p>
<p><span id="more-527"></span></p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw1">import</span> gtk <span class="co1"># gtk bindings</span><br />
<span class="kw1">import</span> xdot <span class="co1"># xdot library</span></p>
<p><span class="kw1">class</span> FooXDot<span class="br0">&#40;</span>xdot.<span class="me1">DotWidget</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, func<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; xdot.<span class="me1">DotWidget</span>.<span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Filters allowed: &#8216;dot&#8217;, &#8216;neato&#8217;, &#8216;twopi&#8217;, &#8216;circo&#8217;, &#8216;fdp&#8217;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">set_filter</span><span class="br0">&#40;</span><span class="st0">&#8216;circo&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&#8216;clicked&#8217;</span>, func<span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> display_dot<span class="br0">&#40;</span><span class="kw2">self</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Header</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_head = <span class="st0">&quot;&quot;</span><span class="st0">&quot;digraph Vazaar {<span class="es0">\n</span>charset=&quot;</span>UTF<span class="nu0">-8</span><span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Relations</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body = <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; -&gt; &quot;</span>tennis<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body = <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; -&gt; &quot;</span>basket<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user2<span class="st0">&quot; -&gt; &quot;</span>basket<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user2<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user3<span class="st0">&quot; -&gt; &quot;</span>tennis<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user3<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; -&gt; &quot;</span>karate<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; -&gt; &quot;</span>soccer<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; -&gt; &quot;</span>tennis<span class="st0">&quot;;<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Key Nodes</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># people</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user1<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user1&#8242;</span>, <span class="st0">&#8216;user1&#8242;</span>, <span class="st0">&#8216;John&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user2<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user2&#8242;</span>, <span class="st0">&#8216;user2&#8242;</span>, <span class="st0">&#8216;Steven&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user3<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user3&#8242;</span>, <span class="st0">&#8216;user3&#8242;</span>, <span class="st0">&#8216;Paul&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>user4<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>box<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>yellow<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;user4&#8242;</span>, <span class="st0">&#8216;user4&#8242;</span>, <span class="st0">&#8216;Thomas&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># plays</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>tennis<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>green<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;tennis&#8217;</span>, <span class="st0">&#8216;tennis&#8217;</span>, <span class="st0">&#8216;Tennis&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>basket<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>lightblue<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;basket&#8217;</span>, <span class="st0">&#8216;basket&#8217;</span>, <span class="st0">&#8216;Basket&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>soccer<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; style=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>hotpink<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;soccer&#8217;</span>, <span class="st0">&#8216;soccer&#8217;</span>, <span class="st0">&#8216;Soccer&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_body += <span class="st0">&quot;&quot;</span><span class="st0">&quot;&quot;</span>karate<span class="st0">&quot; [URL=&quot;</span>%s<span class="st0">&quot;, url=&quot;</span>%s<span class="st0">&quot;, label=&quot;</span>%s<span class="st0">&quot;, shape=&quot;</span>circle<span class="st0">&quot;, <span class="es0">\</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; s &nbsp; tyle=&quot;</span>filled<span class="st0">&quot;, fillcolor=&quot;</span>white<span class="st0">&quot;];<span class="es0">\n</span>&quot;</span><span class="st0">&quot;&quot;</span> % <span class="br0">&#40;</span><span class="st0">&#8216;karate&#8217;</span>, <span class="st0">&#8216;Karate&#8217;</span>, <span class="st0">&#8216;Karate&#8217;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Fotter</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; dc_footer = <span class="st0">&quot;}&quot;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Join all parts</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; xdot_code = dc_head + dc_body + dc_footer</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1"># Update widget with the new dot code</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">self</span>.<span class="me1">set_dotcode</span><span class="br0">&#40;</span>xdot_code<span class="br0">&#41;</span></p>
<p><span class="co1"># callback called after user clicks in a node</span><br />
<span class="kw1">def</span> on_url_clicked<span class="br0">&#40;</span>widget, keynode, event<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">&#8216;Key Node:&#8217;</span>, keynode</p>
<p><span class="kw1">if</span> __name__ == <span class="st0">&#8216;__main__&#8217;</span>:<br />
&nbsp; &nbsp; <span class="co1"># create widget and display dot code</span><br />
&nbsp; &nbsp; xdot = FooXDot<span class="br0">&#40;</span>on_url_clicked<span class="br0">&#41;</span><br />
&nbsp; &nbsp; xdot.<span class="me1">display_dot</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; xdot.<span class="me1">show_all</span><span class="br0">&#40;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="co1"># gtk stuff</span><br />
&nbsp; &nbsp; window = gtk.<span class="me1">Window</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; window.<span class="me1">resize</span><span class="br0">&#40;</span><span class="nu0">800</span>, <span class="nu0">600</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; window.<span class="me1">connect</span><span class="br0">&#40;</span><span class="st0">&#8216;destroy&#8217;</span>, gtk.<span class="me1">main_quit</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; window.<span class="me1">show_all</span><span class="br0">&#40;</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="co1"># Embed XDot widget</span><br />
&nbsp; &nbsp; window.<span class="me1">add</span><span class="br0">&#40;</span>xdot<span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; <span class="co1"># Get fun</span><br />
&nbsp; &nbsp; gtk.<span class="me1">main</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
<p>Resultado:</p>
<div id="attachment_529" class="wp-caption aligncenter" style="width: 816px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_012.png"><img class="size-full wp-image-529" title="XDot Widget example output" src="http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_012.png" alt="" width="806" height="485" /></a><p class="wp-caption-text">XDot widget in action</p></div>
<p>Código fuente de otro ejemplo: <a href="http://www.vazaar-project.org/blog/wp-content/uploads/xdot.zip">xdot.zip</a><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/558" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">New custom timeline widget</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/514/xdot" rel="bookmark" title="19/08/2010"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">xdot</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">Querying remote ontologies from integrated SPARQL editor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-08-19 16:15:54" resource="http://www.vazaar-project.org/blog/archives/527" /><span rel="http://www.vazaar-project.org/blog/archives/527" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/527">GUI improvements</span></a></li>
</ul>
<p><!-- Similar Posts took 14.811 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_012.png' class='wam_link'>XDot Widget example output</a></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/fooxdot.py_0121.png' class='wam_link'>XDot widget example</a></li></ul></div><div class="shr-publisher-527"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/527/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Question about UTF-8</title>
		<link>http://www.vazaar-project.org/blog/archives/496</link>
		<comments>http://www.vazaar-project.org/blog/archives/496#comments</comments>
		<pubDate>Wed, 18 Aug 2010 14:56:11 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/496">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[application doesn]]></category>
		<category><![CDATA[ASCII]]></category>
		<category><![CDATA[Character encoding]]></category>
		<category><![CDATA[Character sets]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[Encodings]]></category>
		<category><![CDATA[rarr]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[utf 8]]></category>
		<category><![CDATA[x80]]></category>
		<category><![CDATA[x92]]></category>
		<category><![CDATA[x98]]></category>
		<category><![CDATA[xa2]]></category>
		<category><![CDATA[xb2]]></category>
		<category><![CDATA[xb8]]></category>
		<category><![CDATA[xbe]]></category>
		<category><![CDATA[xcf]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=496</guid>
		<description><![CDATA[<p>Sometimes, I&#8217;ve noticed that my application doesn&#8217;t deal very well with UTF-8 input/output. UTF-8 is mandatory but it&#8217;s a headache when you have to spend your time guessing what is wrong and how display the right characteres. I&#8217;ve found this function to force encode any text into UTF-8.</p>
<div class="dean_ch" style="white-space: wrap;">keydict = <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="st0">&#8216;zwnj&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;aring&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;gt&#8217;</span>: <span class="st0">&#8216;&gt;&#8217;</span>, <span class="st0">&#8216;yen&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ograve&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b2&#8242;</span>, <span class="st0">&#8216;Chi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;delta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;rang&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e3<span class="es0">\x</span>80<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;sup&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>83&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;trade&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>a2&#8242;</span>, <span class="st0">&#8216;ge&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;xi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>be&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;upsih&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;nbsp&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;Atilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>83&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;radic&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>9a&#8217;</span>, <span class="st0">&#8216;otimes&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>97&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;aelig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;oelig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;equiv&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a1&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ni&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>8b&#8217;</span>, <span class="st0">&#8216;le&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a4&#8242;</span>, <span class="st0">&#8216;auml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;cup&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>aa&#8217;</span>, <span class="st0">&#8216;Epsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>95&#8242;</span>, <span class="st0">&#8216;otilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lt&#8217;</span>: <span class="st0">&#8216;&lt; &#8216;</span>, <span class="st0">&#8216;Icirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8e&#8217;</span>, <span class="st0">&#8216;shy&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;Eacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>89&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ndash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;yacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bd&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Prime&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b3&#8242;</span>, <span class="st0">&#8216;prime&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b2&#8242;</span>, <span class="st0">&#8216;psi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Kappa&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9a&#8217;</span>, <span class="st0">&#8216;rsaquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;Tau&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;alefsym&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>b5&#8242;</span>, <span class="st0">&#8216;ocirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b4&#8242;</span>, <span class="st0">&#8216;lrm&#8217;</span>: <span class="st0">&#8221;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;zwj&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;cedil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b8&#8242;</span>, <span class="st0">&#8216;Ecirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8a&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;not&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ac&#8217;</span>, <span class="st0">&#8216;Dagger&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a1&#8242;</span>, <span class="st0">&#8216;AElig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>86&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;oslash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b8&#8242;</span>, <span class="st0">&#8216;acute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b4&#8242;</span>, <span class="st0">&#8216;lceil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;iquest&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>bf&#8217;</span>, <span class="st0">&#8216;uacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;laquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ab&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;dArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;rdquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Ntilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;Igrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8c&#8217;</span>, <span class="st0">&#8216;nu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bd&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lsquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>98&#8242;</span>, <span class="st0">&#8216;lsaquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b9&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sube&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>86&#8242;</span>, <span class="st0">&#8216;rarr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>92&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sdot&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8b<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;supe&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>87&#8242;</span>, <span class="st0">&#8216;Yacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lfloor&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>8a&#8217;</span>, <span class="st0">&#8216;lArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>90&#8242;</span>, <span class="st0">&#8216;Auml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;asymp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>88&#8242;</span>, <span class="st0">&#8216;Otilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>95&#8242;</span>, <span class="st0">&#8216;szlig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9f&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;clubs&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a3&#8242;</span>, <span class="st0">&#8216;agrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;Ocirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>94&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Theta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>98&#8242;</span>, <span class="st0">&#8216;Pi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;harr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>94&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Scaron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;frac14&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>bc&#8217;</span>, <span class="st0">&#8216;egrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a8&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sub&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>82&#8242;</span>, <span class="st0">&#8216;iexcl&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a1&#8242;</span>, <span class="st0">&#8216;frac12&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>bd&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ordf&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>aa&#8217;</span>, <span class="st0">&#8216;rlm&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;prop&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;circ&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cb<span class="es0">\x</span>86&#8242;</span>, <span class="st0">&#8216;ntilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b1&#8242;</span>, <span class="st0">&#8216;apos&#8217;</span>: <span class="st0">&quot;&#8217;&quot;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;atilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a3&#8242;</span>, <span class="st0">&#8216;THORN&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;theta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b8&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;prod&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>8f&#8217;</span>, <span class="st0">&#8216;nsub&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;hArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>94&#8242;</span>, <span class="st0">&#8216;rArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;Oslash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>98&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;omicron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bf&#8217;</span>, <span class="st0">&#8216;infin&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;yuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bf&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Mu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9c&#8217;</span>, <span class="st0">&#8216;Psi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a8&#8242;</span>, <span class="st0">&#8216;thinsp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>89&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ecirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>aa&#8217;</span>, <span class="st0">&#8216;bdquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;Sigma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a3&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;kappa&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;Aring&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8217;tilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cb<span class="es0">\x</span>9c&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;emsp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>83&#8242;</span>, <span class="st0">&#8216;mdash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>94&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;uarr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;permil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b0&#8242;</span>, <span class="st0">&#8216;tau&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Ugrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>99&#8242;</span>, <span class="st0">&#8216;fnof&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c6<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;Agrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>80&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sup1&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b9&#8242;</span>, <span class="st0">&#8216;forall&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>80&#8242;</span>, <span class="st0">&#8216;eth&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b0&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;rceil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;iuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>af&#8217;</span>, <span class="st0">&#8216;gamma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b3&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lambda&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bb&#8217;</span>, <span class="st0">&#8216;reg&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ae&#8217;</span>, <span class="st0">&#8216;Egrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sup3&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b3&#8242;</span>, <span class="st0">&#8216;dagger&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;divide&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b7&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Ouml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>96&#8242;</span>, <span class="st0">&#8216;image&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;hellip&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;igrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ac&#8217;</span>, <span class="st0">&#8216;Yuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>b8&#8242;</span>, <span class="st0">&#8216;Oacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>93&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;pound&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a3&#8242;</span>, <span class="st0">&#8216;eacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a9&#8242;</span>, <span class="st0">&#8216;frasl&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>81<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ETH&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>90&#8242;</span>, <span class="st0">&#8216;lowast&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>97&#8242;</span>, <span class="st0">&#8216;Nu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;plusmn&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b1&#8242;</span>, <span class="st0">&#8216;chi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>87&#8242;</span>, <span class="st0">&#8216;sup2&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b2&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;frac34&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>be&#8217;</span>, <span class="st0">&#8216;Aacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>81&#8242;</span>, <span class="st0">&#8216;cent&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a2&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;oline&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>be&#8217;</span>, <span class="st0">&#8216;Beta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;perp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>a5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Delta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>94&#8242;</span>, <span class="st0">&#8216;loz&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>97<span class="es0">\x</span>8a&#8217;</span>, <span class="st0">&#8216;pi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>80&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;iota&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b9&#8242;</span>, <span class="st0">&#8216;empty&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;euml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ab&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;brvbar&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;iacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ad&#8217;</span>, <span class="st0">&#8216;para&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ordm&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;epsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b5&#8242;</span>, <span class="st0">&#8216;uuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bc&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;OElig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;there4&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>b4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;part&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>82&#8242;</span>, <span class="st0">&#8216;icirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ae&#8217;</span>, <span class="st0">&#8216;bull&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a2&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;upsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;copy&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a9&#8242;</span>, <span class="st0">&#8216;Iuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8f&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Lambda&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9b&#8217;</span>, <span class="st0">&#8216;Xi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;ensp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>82&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ccedil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;Ucirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9b&#8217;</span>, <span class="st0">&#8216;cap&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a9&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Upsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;mu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bc&#8217;</span>, <span class="st0">&#8216;sigmaf&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>82&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;scaron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>a1&#8242;</span>, <span class="st0">&#8216;nabla&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>87&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;isin&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>88&#8242;</span>, <span class="st0">&#8216;Zeta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>96&#8242;</span>, <span class="st0">&#8216;minus&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>92&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;deg&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b0&#8242;</span>, <span class="st0">&#8216;and&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;real&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>9c&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ang&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;curren&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a4&#8242;</span>, <span class="st0">&#8216;int&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>ab&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ucirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bb&#8217;</span>, <span class="st0">&#8216;rfloor&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>8b&#8217;</span>, <span class="st0">&#8216;crarr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>b5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ugrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b9&#8242;</span>, <span class="st0">&#8216;notin&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;exist&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>83&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;cong&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;Uuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9c&#8217;</span>, <span class="st0">&#8216;oplus&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>95&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;times&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>97&#8242;</span>, <span class="st0">&#8216;Acirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>82&#8242;</span>, <span class="st0">&#8216;piv&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>96&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Euml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8b&#8217;</span>, <span class="st0">&#8216;Phi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;raquo&#8217;</span>: <span class="st0">&#8216; <span class="es0">\x</span>c2<span class="es0">\x</span>bb&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Iacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8d&#8217;</span>, <span class="st0">&#8216;quot&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;Uacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9a&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Omicron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9f&#8217;</span>, <span class="st0">&#8216;ne&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;Iota&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>99&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;eta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b7&#8242;</span>, <span class="st0">&#8216;sbquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9a&#8217;</span>, <span class="st0">&#8216;Rho&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a1&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;darr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;Alpha&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;zeta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Omega&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a9&#8242;</span>, <span class="st0">&#8216;acirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a2&#8242;</span>, <span class="st0">&#8216;sim&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>bc&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;phi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>86&#8242;</span>, <span class="st0">&#8216;diams&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;macr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>af&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;larr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>90&#8242;</span>, <span class="st0">&#8216;Ccedil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>87&#8242;</span>, <span class="st0">&#8216;aacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a1&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;uArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;beta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b2&#8242;</span>, <span class="st0">&#8216;Eta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>97&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;weierp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>98&#8242;</span>, <span class="st0">&#8216;rho&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>81&#8242;</span>, <span class="st0">&#8216;micro&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;alpha&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b1&#8242;</span>, <span class="st0">&#8216;omega&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;middot&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b7&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Gamma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;euro&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>82<span class="es0">\x</span>ac&#8217;</span>, <span class="st0">&#8216;lang&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e3<span class="es0">\x</span>80<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;spades&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;amp&#8217;</span>: <span class="st0">&#8216;and&#8217;</span>, <span class="st0">&#8216;rsquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>99&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;uml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a8&#8242;</span>, <span class="st0">&#8216;thorn&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>be&#8217;</span>, <span class="st0">&#8216;ouml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;thetasym&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;or&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a8&#8242;</span>, <span class="st0">&#8216;Ograve&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>92&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sect&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;ldquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9c&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;hearts&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;sigma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>83&#8242;</span>,<span class="st0">&#8216;sum&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>91&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;oacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b3&#8242;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>
<span class="kw1">def</span> decode_unicode_references<span class="br0">&#40;</span>data<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; text = data<br />
&nbsp; &nbsp; &nbsp; &nbsp; pos1 = text.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&#8216;&amp;&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; pos2 = text.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&#8216;;&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>pos1 != <span class="nu0">-1</span><span class="br0">&#41;</span> <span class="kw1">or</span> <span class="br0">&#40;</span>pos2 != <span class="nu0">-1</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">and</span> <span class="br0">&#40;</span>pos2 &#8211; pos1 &lt; <span class="nu0">15</span><span class="br0">&#41;</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; entity = text<span class="br0">&#91;</span>pos1<span class="nu0">+1</span>: pos2<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a = text<span class="br0">&#91;</span>pos1:pos2<span class="nu0">+1</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> text.<span class="me1">replace</span><span class="br0">&#40;</span>a, keydict<span class="br0">&#91;</span>entity<span class="br0">&#93;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> data<br />
&nbsp; &nbsp; <span class="kw1">except</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> data</p>
<p>
<span class="kw1">def</span> str2utf8<span class="br0">&#40;</span>data<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; data = decode_unicode_references<span class="br0">&#40;</span>data<span class="br0">&#41;</span><br />
&nbsp; &nbsp; guess_list=<span class="br0">&#91;</span><span class="st0">&#8216;utf-8&#8242;</span>,<span class="st0">&#8216;iso8859-1&#8242;</span>,<span class="st0">&#8216;iso8859-2&#8242;</span>, \ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;iso8859-15&#8242;</span>,<span class="st0">&#8216;ascii&#8217;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; encoding = <span class="st0">&#8216;iso8859-1&#8242;</span><br />
&nbsp; &nbsp; text = <span class="kw2">None</span><br />
&nbsp; &nbsp; <span class="kw3">string</span> = <span class="kw2">None</span><br />
&nbsp; &nbsp; <span class="kw1">for</span> best_enc <span class="kw1">in</span> guess_list:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encoding = best_enc<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text = data.<span class="me1">decode</span><span class="br0">&#40;</span>encoding<span class="br0">&#41;</span>.<span class="me1">encode</span><span class="br0">&#40;</span><span class="st0">&#8216;utf-8&#8242;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">except</span> <span class="kw2">Exception</span>, error:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#print &quot;ERROR:&quot;, error</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">pass</span></p>
<p>&nbsp; &nbsp; <span class="kw1">return</span> text</div>
<p><strong>How do you deal with UTF-8, python and gtk? Am I doing right? Do you know a better way?</strong></pre>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/329" rel="bookmark" title="21/07/2010"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Searching strings</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/10" rel="bookmark" title="26/11/2007"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Nepomuk</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75/backup-20090609173554" rel="bookmark" title="09/06/2009"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Vazaar RDF Model example</span></a></li>
</ul>
<p><!-- Similar Posts took 15.288 ms --></p>
<div class="shr-publisher-496"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/python-my-workshop">Python</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/496">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/496#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>Sometimes, I&#8217;ve noticed that my application doesn&#8217;t deal very well with UTF-8 input/output. UTF-8 is mandatory but it&#8217;s a headache when you have to spend your time guessing what is wrong and how display the right characteres. I&#8217;ve found this function to force encode any text into UTF-8.</p>
<div class="dean_ch" style="white-space: wrap;">keydict = <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="st0">&#8216;zwnj&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;aring&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;gt&#8217;</span>: <span class="st0">&#8216;&gt;&#8217;</span>, <span class="st0">&#8216;yen&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ograve&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b2&#8242;</span>, <span class="st0">&#8216;Chi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;delta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;rang&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e3<span class="es0">\x</span>80<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;sup&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>83&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;trade&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>a2&#8242;</span>, <span class="st0">&#8216;ge&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;xi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>be&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;upsih&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;nbsp&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;Atilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>83&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;radic&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>9a&#8217;</span>, <span class="st0">&#8216;otimes&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>97&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;aelig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;oelig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;equiv&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a1&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ni&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>8b&#8217;</span>, <span class="st0">&#8216;le&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a4&#8242;</span>, <span class="st0">&#8216;auml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;cup&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>aa&#8217;</span>, <span class="st0">&#8216;Epsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>95&#8242;</span>, <span class="st0">&#8216;otilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lt&#8217;</span>: <span class="st0">&#8216;&lt; &#8216;</span>, <span class="st0">&#8216;Icirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8e&#8217;</span>, <span class="st0">&#8216;shy&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;Eacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>89&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ndash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;yacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bd&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Prime&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b3&#8242;</span>, <span class="st0">&#8216;prime&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b2&#8242;</span>, <span class="st0">&#8216;psi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Kappa&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9a&#8217;</span>, <span class="st0">&#8216;rsaquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;Tau&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;alefsym&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>b5&#8242;</span>, <span class="st0">&#8216;ocirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b4&#8242;</span>, <span class="st0">&#8216;lrm&#8217;</span>: <span class="st0">&#8221;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;zwj&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;cedil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b8&#8242;</span>, <span class="st0">&#8216;Ecirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8a&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;not&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ac&#8217;</span>, <span class="st0">&#8216;Dagger&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a1&#8242;</span>, <span class="st0">&#8216;AElig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>86&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;oslash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b8&#8242;</span>, <span class="st0">&#8216;acute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b4&#8242;</span>, <span class="st0">&#8216;lceil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;iquest&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>bf&#8217;</span>, <span class="st0">&#8216;uacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;laquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ab&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;dArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;rdquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Ntilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;Igrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8c&#8217;</span>, <span class="st0">&#8216;nu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bd&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lsquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>98&#8242;</span>, <span class="st0">&#8216;lsaquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b9&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sube&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>86&#8242;</span>, <span class="st0">&#8216;rarr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>92&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sdot&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8b<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;supe&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>87&#8242;</span>, <span class="st0">&#8216;Yacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lfloor&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>8a&#8217;</span>, <span class="st0">&#8216;lArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>90&#8242;</span>, <span class="st0">&#8216;Auml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;asymp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>88&#8242;</span>, <span class="st0">&#8216;Otilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>95&#8242;</span>, <span class="st0">&#8216;szlig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9f&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;clubs&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a3&#8242;</span>, <span class="st0">&#8216;agrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;Ocirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>94&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Theta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>98&#8242;</span>, <span class="st0">&#8216;Pi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;harr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>94&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Scaron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;frac14&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>bc&#8217;</span>, <span class="st0">&#8216;egrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a8&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sub&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>82&#8242;</span>, <span class="st0">&#8216;iexcl&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a1&#8242;</span>, <span class="st0">&#8216;frac12&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>bd&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ordf&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>aa&#8217;</span>, <span class="st0">&#8216;rlm&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;prop&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;circ&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cb<span class="es0">\x</span>86&#8242;</span>, <span class="st0">&#8216;ntilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b1&#8242;</span>, <span class="st0">&#8216;apos&#8217;</span>: <span class="st0">&quot;&#8217;&quot;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;atilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a3&#8242;</span>, <span class="st0">&#8216;THORN&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;theta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b8&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;prod&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>8f&#8217;</span>, <span class="st0">&#8216;nsub&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;hArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>94&#8242;</span>, <span class="st0">&#8216;rArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;Oslash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>98&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;omicron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bf&#8217;</span>, <span class="st0">&#8216;infin&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;yuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bf&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Mu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9c&#8217;</span>, <span class="st0">&#8216;Psi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a8&#8242;</span>, <span class="st0">&#8216;thinsp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>89&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ecirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>aa&#8217;</span>, <span class="st0">&#8216;bdquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;Sigma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a3&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;kappa&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;Aring&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8217;tilde&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cb<span class="es0">\x</span>9c&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;emsp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>83&#8242;</span>, <span class="st0">&#8216;mdash&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>94&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;uarr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;permil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>b0&#8242;</span>, <span class="st0">&#8216;tau&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Ugrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>99&#8242;</span>, <span class="st0">&#8216;fnof&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c6<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;Agrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>80&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sup1&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b9&#8242;</span>, <span class="st0">&#8216;forall&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>80&#8242;</span>, <span class="st0">&#8216;eth&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b0&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;rceil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;iuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>af&#8217;</span>, <span class="st0">&#8216;gamma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b3&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;lambda&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bb&#8217;</span>, <span class="st0">&#8216;reg&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ae&#8217;</span>, <span class="st0">&#8216;Egrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sup3&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b3&#8242;</span>, <span class="st0">&#8216;dagger&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;divide&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b7&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Ouml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>96&#8242;</span>, <span class="st0">&#8216;image&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;hellip&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;igrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ac&#8217;</span>, <span class="st0">&#8216;Yuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>b8&#8242;</span>, <span class="st0">&#8216;Oacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>93&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;pound&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a3&#8242;</span>, <span class="st0">&#8216;eacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a9&#8242;</span>, <span class="st0">&#8216;frasl&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>81<span class="es0">\x</span>84&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ETH&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>90&#8242;</span>, <span class="st0">&#8216;lowast&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>97&#8242;</span>, <span class="st0">&#8216;Nu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9d&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;plusmn&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b1&#8242;</span>, <span class="st0">&#8216;chi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>87&#8242;</span>, <span class="st0">&#8216;sup2&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b2&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;frac34&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>be&#8217;</span>, <span class="st0">&#8216;Aacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>81&#8242;</span>, <span class="st0">&#8216;cent&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a2&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;oline&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>be&#8217;</span>, <span class="st0">&#8216;Beta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;perp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>a5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Delta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>94&#8242;</span>, <span class="st0">&#8216;loz&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>97<span class="es0">\x</span>8a&#8217;</span>, <span class="st0">&#8216;pi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>80&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;iota&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b9&#8242;</span>, <span class="st0">&#8216;empty&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;euml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ab&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;brvbar&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;iacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ad&#8217;</span>, <span class="st0">&#8216;para&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ordm&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>ba&#8217;</span>, <span class="st0">&#8216;epsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b5&#8242;</span>, <span class="st0">&#8216;uuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bc&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;OElig&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>92&#8242;</span>, <span class="st0">&#8216;there4&#8242;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>b4&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;part&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>82&#8242;</span>, <span class="st0">&#8216;icirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>ae&#8217;</span>, <span class="st0">&#8216;bull&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>a2&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;upsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;copy&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a9&#8242;</span>, <span class="st0">&#8216;Iuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8f&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Lambda&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9b&#8217;</span>, <span class="st0">&#8216;Xi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9e&#8217;</span>, <span class="st0">&#8216;ensp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>82&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ccedil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;Ucirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9b&#8217;</span>, <span class="st0">&#8216;cap&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a9&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Upsilon&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;mu&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>bc&#8217;</span>, <span class="st0">&#8216;sigmaf&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>82&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;scaron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c5<span class="es0">\x</span>a1&#8242;</span>, <span class="st0">&#8216;nabla&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>87&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;isin&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>88&#8242;</span>, <span class="st0">&#8216;Zeta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>96&#8242;</span>, <span class="st0">&#8216;minus&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>92&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;deg&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b0&#8242;</span>, <span class="st0">&#8216;and&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;real&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>9c&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ang&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;curren&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a4&#8242;</span>, <span class="st0">&#8216;int&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>ab&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ucirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>bb&#8217;</span>, <span class="st0">&#8216;rfloor&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8c<span class="es0">\x</span>8b&#8217;</span>, <span class="st0">&#8216;crarr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>b5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;ugrave&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b9&#8242;</span>, <span class="st0">&#8216;notin&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;exist&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>83&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;cong&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>85&#8242;</span>, <span class="st0">&#8216;Uuml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9c&#8217;</span>, <span class="st0">&#8216;oplus&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>8a<span class="es0">\x</span>95&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;times&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>97&#8242;</span>, <span class="st0">&#8216;Acirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>82&#8242;</span>, <span class="st0">&#8216;piv&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>96&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Euml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8b&#8217;</span>, <span class="st0">&#8216;Phi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;raquo&#8217;</span>: <span class="st0">&#8216; <span class="es0">\x</span>c2<span class="es0">\x</span>bb&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Iacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>8d&#8217;</span>, <span class="st0">&#8216;quot&#8217;</span>: <span class="st0">&#8221;</span>, <span class="st0">&#8216;Uacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>9a&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Omicron&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>9f&#8217;</span>, <span class="st0">&#8216;ne&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>89<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;Iota&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>99&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;eta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b7&#8242;</span>, <span class="st0">&#8216;sbquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9a&#8217;</span>, <span class="st0">&#8216;Rho&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a1&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;darr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;Alpha&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;zeta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Omega&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>a9&#8242;</span>, <span class="st0">&#8216;acirc&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a2&#8242;</span>, <span class="st0">&#8216;sim&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>bc&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;phi&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>86&#8242;</span>, <span class="st0">&#8216;diams&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a6&#8242;</span>, <span class="st0">&#8216;macr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>af&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;larr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>86<span class="es0">\x</span>90&#8242;</span>, <span class="st0">&#8216;Ccedil&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>87&#8242;</span>, <span class="st0">&#8216;aacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>a1&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;uArr&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>87<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;beta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b2&#8242;</span>, <span class="st0">&#8216;Eta&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>97&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;weierp&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>84<span class="es0">\x</span>98&#8242;</span>, <span class="st0">&#8216;rho&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>81&#8242;</span>, <span class="st0">&#8216;micro&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b5&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;alpha&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>b1&#8242;</span>, <span class="st0">&#8216;omega&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>89&#8242;</span>, <span class="st0">&#8216;middot&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>b7&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;Gamma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>ce<span class="es0">\x</span>93&#8242;</span>, <span class="st0">&#8216;euro&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>82<span class="es0">\x</span>ac&#8217;</span>, <span class="st0">&#8216;lang&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e3<span class="es0">\x</span>80<span class="es0">\x</span>88&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;spades&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a0&#8242;</span>, <span class="st0">&#8216;amp&#8217;</span>: <span class="st0">&#8216;and&#8217;</span>, <span class="st0">&#8216;rsquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>99&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;uml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a8&#8242;</span>, <span class="st0">&#8216;thorn&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>be&#8217;</span>, <span class="st0">&#8216;ouml&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b6&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;thetasym&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>91&#8242;</span>, <span class="st0">&#8216;or&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>a8&#8242;</span>, <span class="st0">&#8216;Ograve&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>92&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;sect&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c2<span class="es0">\x</span>a7&#8242;</span>, <span class="st0">&#8216;ldquo&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>80<span class="es0">\x</span>9c&#8217;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;hearts&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>99<span class="es0">\x</span>a5&#8242;</span>, <span class="st0">&#8216;sigma&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>cf<span class="es0">\x</span>83&#8242;</span>,<span class="st0">&#8216;sum&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>e2<span class="es0">\x</span>88<span class="es0">\x</span>91&#8242;</span>,<br />
&nbsp; &nbsp; <span class="st0">&#8216;oacute&#8217;</span>: <span class="st0">&#8216;<span class="es0">\x</span>c3<span class="es0">\x</span>b3&#8242;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p>
<span class="kw1">def</span> decode_unicode_references<span class="br0">&#40;</span>data<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; text = data<br />
&nbsp; &nbsp; &nbsp; &nbsp; pos1 = text.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&#8216;&amp;&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; pos2 = text.<span class="me1">find</span><span class="br0">&#40;</span><span class="st0">&#8216;;&#8217;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span>pos1 != <span class="nu0">-1</span><span class="br0">&#41;</span> <span class="kw1">or</span> <span class="br0">&#40;</span>pos2 != <span class="nu0">-1</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">and</span> <span class="br0">&#40;</span>pos2 &#8211; pos1 &lt; <span class="nu0">15</span><span class="br0">&#41;</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; entity = text<span class="br0">&#91;</span>pos1<span class="nu0">+1</span>: pos2<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; a = text<span class="br0">&#91;</span>pos1:pos2<span class="nu0">+1</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> text.<span class="me1">replace</span><span class="br0">&#40;</span>a, keydict<span class="br0">&#91;</span>entity<span class="br0">&#93;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> data<br />
&nbsp; &nbsp; <span class="kw1">except</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> data</p>
<p>
<span class="kw1">def</span> str2utf8<span class="br0">&#40;</span>data<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; data = decode_unicode_references<span class="br0">&#40;</span>data<span class="br0">&#41;</span><br />
&nbsp; &nbsp; guess_list=<span class="br0">&#91;</span><span class="st0">&#8216;utf-8&#8242;</span>,<span class="st0">&#8216;iso8859-1&#8242;</span>,<span class="st0">&#8216;iso8859-2&#8242;</span>, \ <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&#8216;iso8859-15&#8242;</span>,<span class="st0">&#8216;ascii&#8217;</span><span class="br0">&#93;</span><br />
&nbsp; &nbsp; encoding = <span class="st0">&#8216;iso8859-1&#8242;</span><br />
&nbsp; &nbsp; text = <span class="kw2">None</span><br />
&nbsp; &nbsp; <span class="kw3">string</span> = <span class="kw2">None</span><br />
&nbsp; &nbsp; <span class="kw1">for</span> best_enc <span class="kw1">in</span> guess_list:<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">try</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; encoding = best_enc<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text = data.<span class="me1">decode</span><span class="br0">&#40;</span>encoding<span class="br0">&#41;</span>.<span class="me1">encode</span><span class="br0">&#40;</span><span class="st0">&#8216;utf-8&#8242;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">except</span> <span class="kw2">Exception</span>, error:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">#print &quot;ERROR:&quot;, error</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">pass</span></p>
<p>&nbsp; &nbsp; <span class="kw1">return</span> text</div>
<p><strong>How do you deal with UTF-8, python and gtk? Am I doing right? Do you know a better way?</strong></pre>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/329" rel="bookmark" title="21/07/2010"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Searching strings</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/10" rel="bookmark" title="26/11/2007"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Nepomuk</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75/backup-20090609173554" rel="bookmark" title="09/06/2009"><span property="dc:date" content="2010-08-18 15:56:11" resource="http://www.vazaar-project.org/blog/archives/496" /><span rel="http://www.vazaar-project.org/blog/archives/496" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/496">Vazaar RDF Model example</span></a></li>
</ul>
<p><!-- Similar Posts took 18.516 ms --></p>
<div class="shr-publisher-496"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/496/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reports with Cheetah templates</title>
		<link>http://www.vazaar-project.org/blog/archives/365</link>
		<comments>http://www.vazaar-project.org/blog/archives/365#comments</comments>
		<pubDate>Mon, 16 Aug 2010 09:32:37 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/365">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[Reports]]></category>
		<category><![CDATA[cheetah]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[dynamic content]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[import time]]></category>
		<category><![CDATA[knowledge database]]></category>
		<category><![CDATA[license gpl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[reports]]></category>
		<category><![CDATA[resource contents]]></category>
		<category><![CDATA[rtype]]></category>
		<category><![CDATA[strict dtd]]></category>
		<category><![CDATA[syntactic rules]]></category>
		<category><![CDATA[template engine]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[vstore]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=365</guid>
		<description><![CDATA[<p><a class="shutterset_" href="http://www.vazaar-project.org/blog/wp-content/gallery/vazaar-0-5-development/vazaar0483-12.png"><img class="ngg-singlepic ngg-left" src="http://www.vazaar-project.org/blog/wp-content/gallery/vazaar-0-5-development/thumbs/thumbs_vazaar0483-12.png" alt="Start Here Report" /></a> I&#8217;ve found <a href="http://www.cheetahtemplate.org/" target="_blank">Cheetah</a> template engine very useful to build custom reports. With a very small set of syntactic rules you can mix html and python to generate dynamic content.</p>
<p>This is a small example extracted from my project:</p>
<p>filename <strong>default.html</strong>:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#import time</span><br />
<span class="co1">#from vazaarlib.i18n import _</span><br />
<span class="co1">#from vazaarlib.utils import fuzzy_date, str2utf8, get_resource_contents</span><br />
<span class="co1">#from vazaarlib.utils import get_beautiful_rtype</span><br />
<span class="co1">#from vazaarlib.namespaces import *</span><br />
<span class="co1">#from vazaarlib.constants import GPATH, LPATH</span></p>
<p><span class="co1">#set $user_owner_pim_uri = $self.gui.app.cfgmgr.get_value(&#8216;PIMO&#8217;, &#8216;PIM&#8217;)</span><br />
<span class="co1">#set $user_owner_uri = $self.gui.ask.get_owner($user_owner_pim_uri)</span><br />
<span class="co1">#set $user_owner_email_uri = $self.gui.ask.get_owner_email($user_owner_uri)</span><br />
<span class="co1">#set $uemail = $self.gui.app.vstore.get_property($user_owner_email_uri)</span><br />
<span class="co1">#set $uowner = $self.gui.app.vstore.get_property($user_owner_uri)</span><br />
<span class="co1">#set $totres = $self.gui.ask.get_total_resources()</span><br />
<span class="co1">#set $typefreq = $self.gui.ask.get_qname_frequency($RDF.type)</span><br />
<span class="co1">#set $medate = time.strftime(&quot;%A, %d %b %Y&quot;, $time.localtime(time.time()))</span><br />
<span class="co1">#set $metime = time.strftime(&quot;%H:%M&quot;, $time.localtime(time.time()))</span><br />
<span class="co1">#set $css = $open($GPATH['CSS'] + &#8216;/default/style.css&#8217;, &#8216;r&#8217;).read()</span></p>
<p>&lt; !DOCTYPE HTML PUBLIC <span class="st0">&quot;-//W3C//DTD HTML 4.01//EN&quot;</span> <span class="st0">&quot;http://www.w3.org/TR/html4/strict.dtd&quot;</span>&gt;</p>
<p>Vazaar<br />
&lt;!&#8211;<br />
$css<br />
&#8211;&gt;<br />
&lt;div&gt;<br />
&lt;div&gt;&lt;strong&gt;$medate @ $metime&lt;/strong&gt;&lt;/div&gt;<br />
$_<span class="br0">&#40;</span><span class="st0">&quot;Hi&quot;</span><span class="br0">&#41;</span> &lt;strong&gt;&lt;em&gt;$uowner&lt;/em&gt;&lt;/strong&gt;, your Knowledge Database has &lt;strong&gt;$totres&lt;/strong&gt; resources</p>
<p><span class="co1">#for $rtype in $typefreq:</span><br />
&nbsp; &nbsp; <span class="co1">#set $title = get_beautiful_rtype($rtype)</span><br />
&nbsp; &nbsp; <span class="co1">#set $freq = $typefreq[$rtype]</span></p>
<p><span class="co1">#end for</span><br />
&lt;table style=<span class="st0">&quot;font-size: 10pt;&quot;</span> cellspacing=<span class="st0">&quot;3px&quot;</span> cellpadding=<span class="st0">&quot;3px&quot;</span> width=<span class="st0">&quot;100%&quot;</span>&gt;<br />
&lt;tbody&gt;<br />
&lt;tr <span class="kw2">id</span>=<span class="st0">&quot;row&quot;</span>&gt;<br />
&lt;td style=<span class="st0">&quot;border-bottom: 1px solid gray;&quot;</span> align=<span class="st0">&quot;left&quot;</span>&gt;&lt;strong&gt;$title&lt;/strong&gt;&lt;/td&gt;<br />
&lt;td style=<span class="st0">&quot;border-bottom: 0px dotted gray;&quot;</span> align=<span class="st0">&quot;right&quot;</span>&gt;$freq&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td style=<span class="st0">&quot;border-top: 0px solid black; color: black;&quot;</span> align=<span class="st0">&quot;right&quot;</span>&gt;$_<span class="br0">&#40;</span><span class="st0">&quot;&lt;strong&gt;Total resources&lt;/strong&gt;: &quot;</span><span class="br0">&#41;</span>&lt;/td&gt;<br />
&lt;td style=<span class="st0">&quot;border-top: 1px solid black; color: black;&quot;</span> align=<span class="st0">&quot;right&quot;</span>&gt;&lt;strong&gt;$totres&lt;/strong&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/tbody&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;</div>
<p>filename <strong>reports.py</strong>:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#!/usr/bin/python</span><br />
<span class="co1"># -*- coding: utf-8 -*-</span><br />
<span class="co1"># File: reports.py</span><br />
<span class="co1"># Author: Tomás Vírseda</span><br />
<span class="co1"># License: GPL v3</span><br />
<span class="co1"># Description: Report builder for Vazaar</span></p>
<p><span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span><br />
<span class="kw1">from</span> Cheetah.<span class="me1">Template</span> <span class="kw1">import</span> Template</p>
<p><span class="kw1">class</span> Report<span class="br0">&#40;</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, gui<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8230;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8230;</p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> build_starthere_report<span class="br0">&#40;</span><span class="kw2">self</span>, params<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; template = GPATH<span class="br0">&#91;</span><span class="st0">&#8216;TEMPLATES&#8217;</span><span class="br0">&#93;</span> + <span class="st0">&#8216;/default.html&#8217;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report = Template<span class="br0">&#40;</span><span class="kw2">file</span>=template<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">css_content</span> = <span class="kw2">self</span>.<span class="me1">css_content</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">author</span> = <span class="st0">&#8216;Tomás Vírseda García&#8217;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">date</span> = <span class="st0">&#8217;14/12/2010&#8242;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">params</span> = params</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">str</span><span class="br0">&#40;</span>report<span class="br0">&#41;</span><br />
<span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
<p>Check the code at vazaarlib/ui/reports.py in the source project repository.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">Vazaar 0.4.8: a new release for testing</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/158" rel="bookmark" title="26/08/2009"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">Dynamic SPARQL queries and Datatypes</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/527" rel="bookmark" title="19/08/2010"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">PyGTK XDot Widget</span></a></li>
</ul>
<p><!-- Similar Posts took 12.637 ms --></p>
<div class="shr-publisher-365"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/reports">Reports</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/365">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/365#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p><a class="shutterset_" href="http://www.vazaar-project.org/blog/wp-content/gallery/vazaar-0-5-development/vazaar0483-12.png"><img class="ngg-singlepic ngg-left" src="http://www.vazaar-project.org/blog/wp-content/gallery/vazaar-0-5-development/thumbs/thumbs_vazaar0483-12.png" alt="Start Here Report" /></a> I&#8217;ve found <a href="http://www.cheetahtemplate.org/" target="_blank">Cheetah</a> template engine very useful to build custom reports. With a very small set of syntactic rules you can mix html and python to generate dynamic content.</p>
<p>This is a small example extracted from my project:</p>
<p>filename <strong>default.html</strong>:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#import time</span><br />
<span class="co1">#from vazaarlib.i18n import _</span><br />
<span class="co1">#from vazaarlib.utils import fuzzy_date, str2utf8, get_resource_contents</span><br />
<span class="co1">#from vazaarlib.utils import get_beautiful_rtype</span><br />
<span class="co1">#from vazaarlib.namespaces import *</span><br />
<span class="co1">#from vazaarlib.constants import GPATH, LPATH</span></p>
<p><span class="co1">#set $user_owner_pim_uri = $self.gui.app.cfgmgr.get_value(&#8216;PIMO&#8217;, &#8216;PIM&#8217;)</span><br />
<span class="co1">#set $user_owner_uri = $self.gui.ask.get_owner($user_owner_pim_uri)</span><br />
<span class="co1">#set $user_owner_email_uri = $self.gui.ask.get_owner_email($user_owner_uri)</span><br />
<span class="co1">#set $uemail = $self.gui.app.vstore.get_property($user_owner_email_uri)</span><br />
<span class="co1">#set $uowner = $self.gui.app.vstore.get_property($user_owner_uri)</span><br />
<span class="co1">#set $totres = $self.gui.ask.get_total_resources()</span><br />
<span class="co1">#set $typefreq = $self.gui.ask.get_qname_frequency($RDF.type)</span><br />
<span class="co1">#set $medate = time.strftime(&quot;%A, %d %b %Y&quot;, $time.localtime(time.time()))</span><br />
<span class="co1">#set $metime = time.strftime(&quot;%H:%M&quot;, $time.localtime(time.time()))</span><br />
<span class="co1">#set $css = $open($GPATH['CSS'] + &#8216;/default/style.css&#8217;, &#8216;r&#8217;).read()</span></p>
<p>&lt; !DOCTYPE HTML PUBLIC <span class="st0">&quot;-//W3C//DTD HTML 4.01//EN&quot;</span> <span class="st0">&quot;http://www.w3.org/TR/html4/strict.dtd&quot;</span>&gt;</p>
<p>Vazaar<br />
&lt;!&#8211;<br />
$css<br />
&#8211;&gt;<br />
&lt;div&gt;<br />
&lt;div&gt;&lt;strong&gt;$medate @ $metime&lt;/strong&gt;&lt;/div&gt;<br />
$_<span class="br0">&#40;</span><span class="st0">&quot;Hi&quot;</span><span class="br0">&#41;</span> &lt;strong&gt;&lt;em&gt;$uowner&lt;/em&gt;&lt;/strong&gt;, your Knowledge Database has &lt;strong&gt;$totres&lt;/strong&gt; resources</p>
<p><span class="co1">#for $rtype in $typefreq:</span><br />
&nbsp; &nbsp; <span class="co1">#set $title = get_beautiful_rtype($rtype)</span><br />
&nbsp; &nbsp; <span class="co1">#set $freq = $typefreq[$rtype]</span></p>
<p><span class="co1">#end for</span><br />
&lt;table style=<span class="st0">&quot;font-size: 10pt;&quot;</span> cellspacing=<span class="st0">&quot;3px&quot;</span> cellpadding=<span class="st0">&quot;3px&quot;</span> width=<span class="st0">&quot;100%&quot;</span>&gt;<br />
&lt;tbody&gt;<br />
&lt;tr <span class="kw2">id</span>=<span class="st0">&quot;row&quot;</span>&gt;<br />
&lt;td style=<span class="st0">&quot;border-bottom: 1px solid gray;&quot;</span> align=<span class="st0">&quot;left&quot;</span>&gt;&lt;strong&gt;$title&lt;/strong&gt;&lt;/td&gt;<br />
&lt;td style=<span class="st0">&quot;border-bottom: 0px dotted gray;&quot;</span> align=<span class="st0">&quot;right&quot;</span>&gt;$freq&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&lt;td style=<span class="st0">&quot;border-top: 0px solid black; color: black;&quot;</span> align=<span class="st0">&quot;right&quot;</span>&gt;$_<span class="br0">&#40;</span><span class="st0">&quot;&lt;strong&gt;Total resources&lt;/strong&gt;: &quot;</span><span class="br0">&#41;</span>&lt;/td&gt;<br />
&lt;td style=<span class="st0">&quot;border-top: 1px solid black; color: black;&quot;</span> align=<span class="st0">&quot;right&quot;</span>&gt;&lt;strong&gt;$totres&lt;/strong&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/tbody&gt;<br />
&lt;/table&gt;<br />
&lt;/div&gt;</div>
<p>filename <strong>reports.py</strong>:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1">#!/usr/bin/python</span><br />
<span class="co1"># -*- coding: utf-8 -*-</span><br />
<span class="co1"># File: reports.py</span><br />
<span class="co1"># Author: Tomás Vírseda</span><br />
<span class="co1"># License: GPL v3</span><br />
<span class="co1"># Description: Report builder for Vazaar</span></p>
<p><span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span><br />
<span class="kw1">from</span> Cheetah.<span class="me1">Template</span> <span class="kw1">import</span> Template</p>
<p><span class="kw1">class</span> Report<span class="br0">&#40;</span><span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">&#40;</span><span class="kw2">self</span>, gui<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8230;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8230;</p>
<p>&nbsp; &nbsp; <span class="kw1">def</span> build_starthere_report<span class="br0">&#40;</span><span class="kw2">self</span>, params<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; template = GPATH<span class="br0">&#91;</span><span class="st0">&#8216;TEMPLATES&#8217;</span><span class="br0">&#93;</span> + <span class="st0">&#8216;/default.html&#8217;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report = Template<span class="br0">&#40;</span><span class="kw2">file</span>=template<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">css_content</span> = <span class="kw2">self</span>.<span class="me1">css_content</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">author</span> = <span class="st0">&#8216;Tomás Vírseda García&#8217;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">date</span> = <span class="st0">&#8217;14/12/2010&#8242;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; report.<span class="me1">params</span> = params</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">str</span><span class="br0">&#40;</span>report<span class="br0">&#41;</span><br />
<span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
<p>Check the code at vazaarlib/ui/reports.py in the source project repository.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">Vazaar 0.4.8: a new release for testing</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/158" rel="bookmark" title="26/08/2009"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">Dynamic SPARQL queries and Datatypes</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/527" rel="bookmark" title="19/08/2010"><span property="dc:date" content="2010-08-16 10:32:37" resource="http://www.vazaar-project.org/blog/archives/365" /><span rel="http://www.vazaar-project.org/blog/archives/365" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/365">PyGTK XDot Widget</span></a></li>
</ul>
<p><!-- Similar Posts took 13.319 ms --></p>
<div class="shr-publisher-365"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/365/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching strings</title>
		<link>http://www.vazaar-project.org/blog/archives/329</link>
		<comments>http://www.vazaar-project.org/blog/archives/329#comments</comments>
		<pubDate>Wed, 21 Jul 2010 10:53:51 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/329">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[SPARQL Queries]]></category>
		<category><![CDATA[literal]]></category>
		<category><![CDATA[literal search]]></category>
		<category><![CDATA[rdf graph]]></category>
		<category><![CDATA[return result]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[sparql]]></category>
		<category><![CDATA[term query]]></category>
		<category><![CDATA[term result]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=329</guid>
		<description><![CDATA[<p>Well, another thing I learnt today: how to search a given string in a RDF graph but matching only Literals:</p>
<div class="dean_ch" style="white-space: wrap;">
&nbsp; &nbsp; <span class="kw1">def</span> by_term<span class="br0">&#40;</span><span class="kw2">self</span>, search_term<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; query = <span class="st0">&quot;&quot;</span><span class="st0">&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SELECT DISTINCT ?rid<br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?rid ?predicate ?object .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER isLiteral(?object) .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER regex(?object, &quot;</span>%s<span class="st0">&quot;, &quot;</span>i<span class="st0">&quot;)<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; ORDER BY ?object<br />
&nbsp; &nbsp; &nbsp; &nbsp; &quot;</span><span class="st0">&quot;&quot;</span> % Literal<span class="br0">&#40;</span>search_term<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; result = run_query<span class="br0">&#40;</span>query, <span class="kw2">self</span>.<span class="me1">graph</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> result.<span class="me1">selected</span><br />
&nbsp;</div>
<p>The most important here is the operator <strong>isLiteral</strong> used in the filters.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/158" rel="bookmark" title="26/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">Dynamic SPARQL queries and Datatypes</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">Querying remote ontologies from integrated SPARQL editor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155/querying-remote-ontologies" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">Querying remote ontologies</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/550" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">How to fix your sqlite database after corruption</span></a></li>
</ul>
<p><!-- Similar Posts took 10.582 ms --></p>
<div class="shr-publisher-329"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/sparql-queries">SPARQL Queries</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/329">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/329#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>Well, another thing I learnt today: how to search a given string in a RDF graph but matching only Literals:</p>
<div class="dean_ch" style="white-space: wrap;">
&nbsp; &nbsp; <span class="kw1">def</span> by_term<span class="br0">&#40;</span><span class="kw2">self</span>, search_term<span class="br0">&#41;</span>:<br />
&nbsp; &nbsp; &nbsp; &nbsp; query = <span class="st0">&quot;&quot;</span><span class="st0">&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SELECT DISTINCT ?rid<br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?rid ?predicate ?object .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER isLiteral(?object) .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER regex(?object, &quot;</span>%s<span class="st0">&quot;, &quot;</span>i<span class="st0">&quot;)<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; ORDER BY ?object<br />
&nbsp; &nbsp; &nbsp; &nbsp; &quot;</span><span class="st0">&quot;&quot;</span> % Literal<span class="br0">&#40;</span>search_term<span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; result = run_query<span class="br0">&#40;</span>query, <span class="kw2">self</span>.<span class="me1">graph</span><span class="br0">&#41;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> result.<span class="me1">selected</span><br />
&nbsp;</div>
<p>The most important here is the operator <strong>isLiteral</strong> used in the filters.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/158" rel="bookmark" title="26/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">Dynamic SPARQL queries and Datatypes</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">Querying remote ontologies from integrated SPARQL editor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155/querying-remote-ontologies" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">Querying remote ontologies</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/550" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2010-07-21 11:53:51" resource="http://www.vazaar-project.org/blog/archives/329" /><span rel="http://www.vazaar-project.org/blog/archives/329" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/329">How to fix your sqlite database after corruption</span></a></li>
</ul>
<p><!-- Similar Posts took 15.038 ms --></p>
<div class="shr-publisher-329"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/329/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>distutils implemented</title>
		<link>http://www.vazaar-project.org/blog/archives/271</link>
		<comments>http://www.vazaar-project.org/blog/archives/271#comments</comments>
		<pubDate>Sat, 12 Sep 2009 00:48:39 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/271">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[distutils]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[launch]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python2.5]]></category>
		<category><![CDATA[python2.6]]></category>
		<category><![CDATA[setup.py]]></category>
		<category><![CDATA[tarball]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=271</guid>
		<description><![CDATA[<p>Finally, I got the way to implement distutils into Vazaar. It lacks support for i18n/gettext but it is in the way. I&#8217;ve released a new tarball. You can launch it as developer inside your home with the command ./launch</p>
<p>But if you prefer a wide-system install, you must use the following command:</p>
<p>sudo python2.5 setup.py install</p>
<p>You can find an entry under Applications -&gt; Office -&gt; Vazaar</p>
<p>python 2.6 also works but it throws warnings.</p>
<p>Please, note that you can NOT combine different versions of python because database sqlite formats differs each from other.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">Vazaar 0.4.8: a new release for testing</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/214" rel="bookmark" title="06/09/2009"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">Vazaar 0.4 (aka Sacabambaspis) released</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/550" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">How to fix your sqlite database after corruption</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/527" rel="bookmark" title="19/08/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">PyGTK XDot Widget</span></a></li>
</ul>
<p><!-- Similar Posts took 11.932 ms --></p>
<div class="shr-publisher-271"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/python-my-workshop">Python</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/271">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/271#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>Finally, I got the way to implement distutils into Vazaar. It lacks support for i18n/gettext but it is in the way. I&#8217;ve released a new tarball. You can launch it as developer inside your home with the command ./launch</p>
<p>But if you prefer a wide-system install, you must use the following command:</p>
<p>sudo python2.5 setup.py install</p>
<p>You can find an entry under Applications -&gt; Office -&gt; Vazaar</p>
<p>python 2.6 also works but it throws warnings.</p>
<p>Please, note that you can NOT combine different versions of python because database sqlite formats differs each from other.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">Vazaar 0.4.8: a new release for testing</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/214" rel="bookmark" title="06/09/2009"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">Vazaar 0.4 (aka Sacabambaspis) released</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/550" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">How to fix your sqlite database after corruption</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/527" rel="bookmark" title="19/08/2010"><span property="dc:date" content="2009-09-12 01:48:39" resource="http://www.vazaar-project.org/blog/archives/271" /><span rel="http://www.vazaar-project.org/blog/archives/271" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/271">PyGTK XDot Widget</span></a></li>
</ul>
<p><!-- Similar Posts took 12.482 ms --></p>
<div class="shr-publisher-271"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/271/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic SPARQL queries and Datatypes</title>
		<link>http://www.vazaar-project.org/blog/archives/158</link>
		<comments>http://www.vazaar-project.org/blog/archives/158#comments</comments>
		<pubDate>Wed, 26 Aug 2009 09:24:44 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/158">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[SPARQL Queries]]></category>
		<category><![CDATA[bit floating point]]></category>
		<category><![CDATA[datatype]]></category>
		<category><![CDATA[datatypes]]></category>
		<category><![CDATA[decimal numbers]]></category>
		<category><![CDATA[duration time]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[dynamic query]]></category>
		<category><![CDATA[entity references]]></category>
		<category><![CDATA[PIMO]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[rdflib]]></category>
		<category><![CDATA[resource identifier]]></category>
		<category><![CDATA[schema definition language]]></category>
		<category><![CDATA[sparql]]></category>
		<category><![CDATA[sparql query]]></category>
		<category><![CDATA[time durations]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=158</guid>
		<description><![CDATA[<p>After some headaches I&#8217;ve found how to write dynamic SPARQL queries by passing parameters. For example, to query graph about resources collected last hour this code could be a first approach:</p>
<div class="dean_ch" style="white-space: wrap;">#!/usr/bin/env python<br />
# Dynamic query (example code)</p>
<p>from datetime import datetime<br />
import rdflib<br />
from namespaces import XSD</p>
<p>def last_day():<br />
&nbsp; &nbsp; &quot;&quot;&quot; get date &quot;&quot;&quot;<br />
&nbsp; &nbsp; now = datetime.now()<br />
&nbsp; &nbsp; date = now &#8211; timedelta(hours=24)</p>
<p>&nbsp; &nbsp; return date</p>
<p>def get_date_filtered_query():<br />
&nbsp; &nbsp; &quot;&quot;&quot; build query &quot;&quot;&quot;<br />
&nbsp; &nbsp; period = last_day()<br />
&nbsp; &nbsp; mydate = Literal(period, datatype=URIRef(XSD))</p>
<p>&nbsp; &nbsp; query = &quot;&quot;&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX rdf: &lt;http ://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX nie: &lt;http ://www.semanticdesktop.org/ontologies/nie/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX nfo: &lt;http ://www.semanticdesktop.org/ontologies/nfo/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX nao: &lt;http ://www.semanticdesktop.org/ontologies/nao/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX pimo: &lt;http ://www.semanticdesktop.org/ontologies/pimo/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX xsd: &lt;/http&gt;&lt;http ://www.w3.org/2001/XMLSchema#&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SELECT ?id<br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?id rdf:type ?type .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?id nao:created ?date .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER (?type != pimo:Collection) .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER (xsd:dateTime(?date) &gt;= xsd:dateTime(&quot;%s&quot;)) .<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; ORDER BY DESC(?date)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &quot;&quot;&quot; % mydate</p>
<p>&nbsp; &nbsp; return query</p>
<p># query graph<br />
query = get_date_filtered_query()<br />
result = graph.query(query)</p>
<p>for id in result.selected:<br />
&nbsp; &nbsp; print id&lt;/http&gt;</div>
<p><span id="more-158"></span></p>
<p>For more information is worth to take a look <a title="XML Schema datatypes" href="http://www.w3.org/TR/xmlschema11-2/" target="_blank">W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes</a>. A self explained list of XML datatypes:</p>
<div>
<dl>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77009.html">xsd:anyURI</a> &#8211; URI (Uniform Resource Identifier) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77017.html">xsd:base64Binary</a> &#8211; Binary content coded as &#8220;base64&#8243; </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77025.html">xsd:boolean</a> &#8211; Boolean (true or false) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77033.html">xsd:byte</a> &#8211; Signed value of 8 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77041.html">xsd:date</a> &#8211; Gregorian calendar date </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77049.html">xsd:dateTime</a> &#8211; Instant of time (Gregorian calendar) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77057.html">xsd:decimal</a> &#8211; Decimal numbers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77065.html">xsd:double</a> &#8211; IEEE 64-bit floating-point </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77073.html">xsd:duration</a> &#8211; Time durations </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77080.html">xsd:ENTITIES</a> &#8211; Whitespace-separated list of unparsed entity references </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77087.html">xsd:ENTITY</a> &#8211; Reference to an unparsed entity </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77095.html">xsd:float</a> &#8211; IEEE 32-bit floating-point </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77103.html">xsd:gDay</a> &#8211; Recurring period of time: monthly day </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77111.html">xsd:gMonth</a> &#8211; Recurring period of time: yearly month </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77119.html">xsd:gMonthDay</a> &#8211; Recurring period of time: yearly day </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77127.html">xsd:gYear</a> &#8211; Period of one year </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77135.html">xsd:gYearMonth</a> &#8211; Period of one month </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77143.html">xsd:hexBinary</a> &#8211; Binary contents coded in hexadecimal </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77151.html">xsd:ID</a> &#8211; Definition of unique identifiers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77159.html">xsd:IDREF</a> &#8211; Definition of references to unique identifiers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77167.html">xsd:IDREFS</a> &#8211; Definition of lists of references to unique identifiers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77175.html">xsd:int</a> &#8211; 32-bit signed integers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77183.html">xsd:integer</a> &#8211; Signed integers of arbitrary length </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77191.html">xsd:language</a> &#8211; RFC 1766 language codes </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77199.html">xsd:long</a> &#8211; 64-bit signed integers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77207.html">xsd:Name</a> &#8211; XML 1.O name </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77215.html">xsd:NCName</a> &#8211; Unqualified names </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77223.html">xsd:negativeInteger</a> &#8211; Strictly negative integers of arbitrary length </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77231.html">xsd:NMTOKEN</a> &#8211; XML 1.0 name token (NMTOKEN) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77239.html">xsd:NMTOKENS</a> &#8211; List of XML 1.0 name tokens (NMTOKEN) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77247.html">xsd:nonNegativeInteger</a> &#8211; Integers of arbitrary length positive or equal to zero </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77255.html">xsd:nonPositiveInteger</a> &#8211; Integers of arbitrary length negative or equal to zero </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77263.html">xsd:normalizedString</a> &#8211; Whitespace-replaced strings </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77271.html">xsd:NOTATION</a> &#8211; Emulation of the XML 1.0 feature </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77279.html">xsd:positiveInteger</a> &#8211; Strictly positive integers of arbitrary length</dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77287.html">xsd:QName</a> &#8211; Namespaces in XML-qualified names </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77295.html">xsd:short</a> &#8211; 32-bit signed integers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77303.html">xsd:string</a> &#8211; Any string </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77311.html">xsd:time</a> &#8211; Point in time recurring each day </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77319.html">xsd:token</a> &#8211; Whitespace-replaced and collapsed strings </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77327.html">xsd:unsignedByte</a> &#8211; Unsigned value of 8 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77335.html">xsd:unsignedInt</a> &#8211; Unsigned integer of 32 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77343.html">xsd:unsignedLong</a> &#8211; Unsigned integer of 64 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77351.html">xsd:unsignedShort</a> &#8211; Unsigned integer of 16 bits </dt>
</dl>
</div>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/17" rel="bookmark" title="02/12/2007"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Extrayendo metadatos: libextractor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Querying remote ontologies from integrated SPARQL editor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/33" rel="bookmark" title="03/09/2008"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">My SVN is gone!</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/329" rel="bookmark" title="21/07/2010"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Searching strings</span></a></li>
</ul>
<p><!-- Similar Posts took 11.614 ms --></p>
<div class="shr-publisher-158"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/sparql-queries">SPARQL Queries</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/158">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/158#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>After some headaches I&#8217;ve found how to write dynamic SPARQL queries by passing parameters. For example, to query graph about resources collected last hour this code could be a first approach:</p>
<div class="dean_ch" style="white-space: wrap;">#!/usr/bin/env python<br />
# Dynamic query (example code)</p>
<p>from datetime import datetime<br />
import rdflib<br />
from namespaces import XSD</p>
<p>def last_day():<br />
&nbsp; &nbsp; &quot;&quot;&quot; get date &quot;&quot;&quot;<br />
&nbsp; &nbsp; now = datetime.now()<br />
&nbsp; &nbsp; date = now &#8211; timedelta(hours=24)</p>
<p>&nbsp; &nbsp; return date</p>
<p>def get_date_filtered_query():<br />
&nbsp; &nbsp; &quot;&quot;&quot; build query &quot;&quot;&quot;<br />
&nbsp; &nbsp; period = last_day()<br />
&nbsp; &nbsp; mydate = Literal(period, datatype=URIRef(XSD))</p>
<p>&nbsp; &nbsp; query = &quot;&quot;&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX rdf: &lt;http ://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX nie: &lt;http ://www.semanticdesktop.org/ontologies/nie/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX nfo: &lt;http ://www.semanticdesktop.org/ontologies/nfo/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX nao: &lt;http ://www.semanticdesktop.org/ontologies/nao/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX pimo: &lt;http ://www.semanticdesktop.org/ontologies/pimo/&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; PREFIX xsd: &lt;/http&gt;&lt;http ://www.w3.org/2001/XMLSchema#&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SELECT ?id<br />
&nbsp; &nbsp; &nbsp; &nbsp; WHERE<br />
&nbsp; &nbsp; &nbsp; &nbsp; {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?id rdf:type ?type .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ?id nao:created ?date .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER (?type != pimo:Collection) .<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FILTER (xsd:dateTime(?date) &gt;= xsd:dateTime(&quot;%s&quot;)) .<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; &nbsp; &nbsp; ORDER BY DESC(?date)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &quot;&quot;&quot; % mydate</p>
<p>&nbsp; &nbsp; return query</p>
<p># query graph<br />
query = get_date_filtered_query()<br />
result = graph.query(query)</p>
<p>for id in result.selected:<br />
&nbsp; &nbsp; print id&lt;/http&gt;</div>
<p><span id="more-158"></span></p>
<p>For more information is worth to take a look <a title="XML Schema datatypes" href="http://www.w3.org/TR/xmlschema11-2/" target="_blank">W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes</a>. A self explained list of XML datatypes:</p>
<div>
<dl>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77009.html">xsd:anyURI</a> &#8211; URI (Uniform Resource Identifier) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77017.html">xsd:base64Binary</a> &#8211; Binary content coded as &#8220;base64&#8243; </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77025.html">xsd:boolean</a> &#8211; Boolean (true or false) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77033.html">xsd:byte</a> &#8211; Signed value of 8 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77041.html">xsd:date</a> &#8211; Gregorian calendar date </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77049.html">xsd:dateTime</a> &#8211; Instant of time (Gregorian calendar) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77057.html">xsd:decimal</a> &#8211; Decimal numbers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77065.html">xsd:double</a> &#8211; IEEE 64-bit floating-point </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77073.html">xsd:duration</a> &#8211; Time durations </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77080.html">xsd:ENTITIES</a> &#8211; Whitespace-separated list of unparsed entity references </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77087.html">xsd:ENTITY</a> &#8211; Reference to an unparsed entity </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77095.html">xsd:float</a> &#8211; IEEE 32-bit floating-point </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77103.html">xsd:gDay</a> &#8211; Recurring period of time: monthly day </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77111.html">xsd:gMonth</a> &#8211; Recurring period of time: yearly month </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77119.html">xsd:gMonthDay</a> &#8211; Recurring period of time: yearly day </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77127.html">xsd:gYear</a> &#8211; Period of one year </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77135.html">xsd:gYearMonth</a> &#8211; Period of one month </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77143.html">xsd:hexBinary</a> &#8211; Binary contents coded in hexadecimal </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77151.html">xsd:ID</a> &#8211; Definition of unique identifiers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77159.html">xsd:IDREF</a> &#8211; Definition of references to unique identifiers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77167.html">xsd:IDREFS</a> &#8211; Definition of lists of references to unique identifiers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77175.html">xsd:int</a> &#8211; 32-bit signed integers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77183.html">xsd:integer</a> &#8211; Signed integers of arbitrary length </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77191.html">xsd:language</a> &#8211; RFC 1766 language codes </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77199.html">xsd:long</a> &#8211; 64-bit signed integers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77207.html">xsd:Name</a> &#8211; XML 1.O name </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77215.html">xsd:NCName</a> &#8211; Unqualified names </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77223.html">xsd:negativeInteger</a> &#8211; Strictly negative integers of arbitrary length </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77231.html">xsd:NMTOKEN</a> &#8211; XML 1.0 name token (NMTOKEN) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77239.html">xsd:NMTOKENS</a> &#8211; List of XML 1.0 name tokens (NMTOKEN) </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77247.html">xsd:nonNegativeInteger</a> &#8211; Integers of arbitrary length positive or equal to zero </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77255.html">xsd:nonPositiveInteger</a> &#8211; Integers of arbitrary length negative or equal to zero </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77263.html">xsd:normalizedString</a> &#8211; Whitespace-replaced strings </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77271.html">xsd:NOTATION</a> &#8211; Emulation of the XML 1.0 feature </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77279.html">xsd:positiveInteger</a> &#8211; Strictly positive integers of arbitrary length</dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77287.html">xsd:QName</a> &#8211; Namespaces in XML-qualified names </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77295.html">xsd:short</a> &#8211; 32-bit signed integers </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77303.html">xsd:string</a> &#8211; Any string </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77311.html">xsd:time</a> &#8211; Point in time recurring each day </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77319.html">xsd:token</a> &#8211; Whitespace-replaced and collapsed strings </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77327.html">xsd:unsignedByte</a> &#8211; Unsigned value of 8 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77335.html">xsd:unsignedInt</a> &#8211; Unsigned integer of 32 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77343.html">xsd:unsignedLong</a> &#8211; Unsigned integer of 64 bits </dt>
<dt><a href="http://books.xmlschemata.org/relaxng/ch19-77351.html">xsd:unsignedShort</a> &#8211; Unsigned integer of 16 bits </dt>
</dl>
</div>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/17" rel="bookmark" title="02/12/2007"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Extrayendo metadatos: libextractor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/155" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Querying remote ontologies from integrated SPARQL editor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/33" rel="bookmark" title="03/09/2008"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">My SVN is gone!</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/329" rel="bookmark" title="21/07/2010"><span property="dc:date" content="2009-08-26 10:24:44" resource="http://www.vazaar-project.org/blog/archives/158" /><span rel="http://www.vazaar-project.org/blog/archives/158" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/158">Searching strings</span></a></li>
</ul>
<p><!-- Similar Posts took 12.141 ms --></p>
<div class="shr-publisher-158"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/158/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Querying remote ontologies from integrated SPARQL editor</title>
		<link>http://www.vazaar-project.org/blog/archives/155</link>
		<comments>http://www.vazaar-project.org/blog/archives/155#comments</comments>
		<pubDate>Sun, 02 Aug 2009 16:28:44 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/155">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[SPARQL Queries]]></category>
		<category><![CDATA[calc]]></category>
		<category><![CDATA[csv file]]></category>
		<category><![CDATA[entities]]></category>
		<category><![CDATA[ontologies]]></category>
		<category><![CDATA[ontology]]></category>
		<category><![CDATA[queries]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[result data]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[sparql]]></category>
		<category><![CDATA[spreadsheet program]]></category>
		<category><![CDATA[vocabularies]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=155</guid>
		<description><![CDATA[<p><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/querying-remote-ontologies.png"><img class="alignleft size-medium wp-image-156" title="Querying remote ontologies" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/querying-remote-ontologies-300x178.png" alt="Querying remote ontologies" width="300" height="178" /></a> Checking others parts of the Vazaar GUI, I&#8217;ve realized that I can query remote ontologies and vocabularies with a simple SPARQL sentence. In the screenshot you can see how I query for the comments of all NAO entities.</p>
<p>Just for the record, it would be nice to save user queries and integrate them within Vazaar. And, of course, to export result data to a file (eg.: in a CSV file) ready to import to a any spreadsheet program like OpenOffice Calc.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/329" rel="bookmark" title="21/07/2010"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">Searching strings</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/158" rel="bookmark" title="26/08/2009"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">Dynamic SPARQL queries and Datatypes</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75/vazaar-04-import" rel="bookmark" title="08/06/2009"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">vazaar-04-import</span></a></li>
</ul>
<p><!-- Similar Posts took 11.637 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/querying-remote-ontologies.png' class='wam_link'>Querying remote ontologies</a><p>By using the integrated SPARQL editor it is possible to query remote ontologies and vocabularies</p></li></ul></div><div class="shr-publisher-155"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/sparql-queries">SPARQL Queries</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/155">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/155#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/querying-remote-ontologies.png"><img class="alignleft size-medium wp-image-156" title="Querying remote ontologies" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/querying-remote-ontologies-300x178.png" alt="Querying remote ontologies" width="300" height="178" /></a> Checking others parts of the Vazaar GUI, I&#8217;ve realized that I can query remote ontologies and vocabularies with a simple SPARQL sentence. In the screenshot you can see how I query for the comments of all NAO entities.</p>
<p>Just for the record, it would be nice to save user queries and integrate them within Vazaar. And, of course, to export result data to a file (eg.: in a CSV file) ready to import to a any spreadsheet program like OpenOffice Calc.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/329" rel="bookmark" title="21/07/2010"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">Searching strings</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/158" rel="bookmark" title="26/08/2009"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">Dynamic SPARQL queries and Datatypes</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/146" rel="bookmark" title="02/08/2009"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">GUI improvements</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75/vazaar-04-import" rel="bookmark" title="08/06/2009"><span property="dc:date" content="2009-08-02 17:28:44" resource="http://www.vazaar-project.org/blog/archives/155" /><span rel="http://www.vazaar-project.org/blog/archives/155" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/155">vazaar-04-import</span></a></li>
</ul>
<p><!-- Similar Posts took 11.564 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/querying-remote-ontologies.png' class='wam_link'>Querying remote ontologies</a><p>By using the integrated SPARQL editor it is possible to query remote ontologies and vocabularies</p></li></ul></div><div class="shr-publisher-155"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/155/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GUI improvements</title>
		<link>http://www.vazaar-project.org/blog/archives/146</link>
		<comments>http://www.vazaar-project.org/blog/archives/146#comments</comments>
		<pubDate>Sun, 02 Aug 2009 14:02:17 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/146">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[GUI]]></category>
		<category><![CDATA[cuestion]]></category>
		<category><![CDATA[design ideas]]></category>
		<category><![CDATA[filtering properties]]></category>
		<category><![CDATA[glitches]]></category>
		<category><![CDATA[gui improvements]]></category>
		<category><![CDATA[important things]]></category>
		<category><![CDATA[mockup]]></category>
		<category><![CDATA[new resources]]></category>
		<category><![CDATA[paste operations]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=146</guid>
		<description><![CDATA[<p>After a long weekend coding and trying new design ideas finally I think I got a nice GUI. At least for the StartHere module:</p>
<p><a title="Vazaar screentshot" href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/screenshot-vazaar-0.4b.png" target="_blank"><img class="size-medium wp-image-147" title="Screenshot for Vazaar 0.4b" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/screenshot-vazaar-0.4b-300x178.png" alt="Screenshot for last development version (commit 316)" width="300" height="178" /></a></p>
<p>There are still too much glitches in the GUI but I&#8217;m trying to fix them as I go. But for now, I feel satisfied. Queries against the model are working as expected.</p>
<p>After clicking in any stats button you get a nice visual for your resources. In next commits, you will be able of choosing one the two kinds of views: ListViews and IconViews. By default, the IconView is preferred.</p>
<p>More ideas are coming like content filtering, properties tagcloud, timeline widget, etc&#8230;</p>
<p>At this moment, you can only add new resources by copy&amp;paste operations. An improved dialog for this operation is in the way. Resources can be selected for be deleted. If the selected resource is a collection, all resources which belong to this collection will be deleted. There is no actions popup menu yet but it&#8217;s planned.</p>
<p>I&#8217;m thinking if a Trash resource is worth. NEPOMUK brings especial classes for this cuestion. I need check twice these. Anyway, it wouldn&#8217;t be very difficult.</p>
<p><span id="more-146"></span>One of the most important things now is to code common operation for resources: tagging, annotations, relations between them and how to display their content. For example, display text or an image is easy to do but it is not very easy to display websites content. There is not a good browser widget ready to use in PyGTK yet. I put my hope in webkit bindings for Python.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/558" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">New custom timeline widget</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75" rel="bookmark" title="09/06/2009"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">About Vazaar 0.4 Beta development</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">Vazaar 0.4.8: a new release for testing</span></a></li>
</ul>
<p><!-- Similar Posts took 12.049 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/screenshot-vazaar-0.4b.png' class='wam_link'>Screenshot for Vazaar 0.4b</a></li></ul></div><div class="shr-publisher-146"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/gui-my-workshop">GUI</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/146">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/146#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>After a long weekend coding and trying new design ideas finally I think I got a nice GUI. At least for the StartHere module:</p>
<p><a title="Vazaar screentshot" href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/screenshot-vazaar-0.4b.png" target="_blank"><img class="size-medium wp-image-147" title="Screenshot for Vazaar 0.4b" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/screenshot-vazaar-0.4b-300x178.png" alt="Screenshot for last development version (commit 316)" width="300" height="178" /></a></p>
<p>There are still too much glitches in the GUI but I&#8217;m trying to fix them as I go. But for now, I feel satisfied. Queries against the model are working as expected.</p>
<p>After clicking in any stats button you get a nice visual for your resources. In next commits, you will be able of choosing one the two kinds of views: ListViews and IconViews. By default, the IconView is preferred.</p>
<p>More ideas are coming like content filtering, properties tagcloud, timeline widget, etc&#8230;</p>
<p>At this moment, you can only add new resources by copy&amp;paste operations. An improved dialog for this operation is in the way. Resources can be selected for be deleted. If the selected resource is a collection, all resources which belong to this collection will be deleted. There is no actions popup menu yet but it&#8217;s planned.</p>
<p>I&#8217;m thinking if a Trash resource is worth. NEPOMUK brings especial classes for this cuestion. I need check twice these. Anyway, it wouldn&#8217;t be very difficult.</p>
<p><span id="more-146"></span>One of the most important things now is to code common operation for resources: tagging, annotations, relations between them and how to display their content. For example, display text or an image is easy to do but it is not very easy to display websites content. There is not a good browser widget ready to use in PyGTK yet. I put my hope in webkit bindings for Python.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/558" rel="bookmark" title="02/09/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">New custom timeline widget</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/298" rel="bookmark" title="23/05/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">What is coming in the next version</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/75" rel="bookmark" title="09/06/2009"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">About Vazaar 0.4 Beta development</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/365" rel="bookmark" title="16/08/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">Reports with Cheetah templates</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/317" rel="bookmark" title="11/07/2010"><span property="dc:date" content="2009-08-02 15:02:17" resource="http://www.vazaar-project.org/blog/archives/146" /><span rel="http://www.vazaar-project.org/blog/archives/146" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/146">Vazaar 0.4.8: a new release for testing</span></a></li>
</ul>
<p><!-- Similar Posts took 12.866 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/08/screenshot-vazaar-0.4b.png' class='wam_link'>Screenshot for Vazaar 0.4b</a></li></ul></div><div class="shr-publisher-146"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/146/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extrayendo metadatos: libextractor</title>
		<link>http://www.vazaar-project.org/blog/archives/17</link>
		<comments>http://www.vazaar-project.org/blog/archives/17#comments</comments>
		<pubDate>Sun, 02 Dec 2007 19:41:15 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/17">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[artist description]]></category>
		<category><![CDATA[data publication]]></category>
		<category><![CDATA[date camera]]></category>
		<category><![CDATA[DC]]></category>
		<category><![CDATA[DCTERMS]]></category>
		<category><![CDATA[dublincore]]></category>
		<category><![CDATA[host os]]></category>
		<category><![CDATA[libextractor]]></category>
		<category><![CDATA[license distribution]]></category>
		<category><![CDATA[MDX]]></category>
		<category><![CDATA[page orientation]]></category>
		<category><![CDATA[proyecto gnu]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[resource identifier]]></category>
		<category><![CDATA[software disclaimer]]></category>
		<category><![CDATA[subject keywords]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/archives/17</guid>
		<description><![CDATA[<p>   Para que Vazaar sea realmente útil debe extraer un alto porcentaje de metadatos que casi haga innecesaria la interacción del usuario. Hay una entrada en el wiki dedicada al análisis de utilidades y/o bibliotecas útiles para el proyecto. Ahora estoy probando con <a href="http://www.vazaar-project.org/wiki/doku.php/python-extractore-features" title="vazaar libextractor wiki page" target="_blank">libextractor</a>.<br />
<span id="more-17"></span></p>
<address><em><a href="http://gnunet.org/libextractor/?xlang=Spanish" class="urlextern" target="_blank" title="http://gnunet.org/libextractor/?xlang=Spanish" rel="nofollow">libextractor</a></em> es una libreria cuyo fin es extraer metadatos de archivos de cualquier tipo. Se diseñó para utilizar otras liberias para ayudar en el proceso concreto de extraccion de metadatos, y tambien para que se pudiera ampliar facilmente su función con solo enlazar con extractores externos para tipos de archivo adicionales. libextractor es parte del proyecto GNU.</address>
<p>Lo interesante de esta herramienta es la cantidad de metadatos que es capaz de extraer. Este es un listado de los tags soportados por libextractor en mi sistema:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw1">from</span> extractor <span class="kw1">import</span> Extractor<br />
extractor = Extractor<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
extractor.<span class="me1">keywordTypes</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#40;</span><span class="st0">&#8216;unknown&#8217;</span>, <span class="st0">&#8216;filename&#8217;</span>, <span class="st0">&#8216;mimetype&#8217;</span>, <span class="st0">&#8216;title&#8217;</span>, <span class="st0">&#8216;author&#8217;</span>, <span class="st0">&#8216;artist&#8217;</span>, <span class="st0">&#8216;description&#8217;</span>, <span class="st0">&#8216;comment&#8217;</span>, <span class="st0">&#8216;date&#8217;</span>, <span class="st0">&#8216;publisher&#8217;</span>,<span class="st0">&#8216;language&#8217;</span>,<br />
<span class="st0">&#8216;album&#8217;</span>, <span class="st0">&#8216;genre&#8217;</span>, <span class="st0">&#8216;location&#8217;</span>, <span class="st0">&#8216;version&#8217;</span>, <span class="st0">&#8216;organization&#8217;</span>, <span class="st0">&#8216;copyright&#8217;</span>, <span class="st0">&#8216;subject&#8217;</span>, <span class="st0">&#8216;keywords&#8217;</span>, <span class="st0">&#8216;contributor&#8217;</span>,<br />
<span class="st0">&#8216;resource-type&#8217;</span>, <span class="st0">&#8216;format&#8217;</span>, <span class="st0">&#8216;resource-identifier&#8217;</span>, <span class="st0">&#8216;source&#8217;</span>, <span class="st0">&#8216;relation&#8217;</span>, <span class="st0">&#8216;coverage&#8217;</span>, <span class="st0">&#8216;software&#8217;</span>, <span class="st0">&#8216;disclaimer&#8217;</span>, <span class="st0">&#8216;warning&#8217;</span>,<br />
<span class="st0">&#8216;translated&#8217;</span>, <span class="st0">&#8216;creation date&#8217;</span>, <span class="st0">&#8216;modification date&#8217;</span>, <span class="st0">&#8216;creator&#8217;</span>, <span class="st0">&#8216;producer&#8217;</span>, <span class="st0">&#8216;page count&#8217;</span>, <span class="st0">&#8216;page orientation&#8217;</span>,<br />
<span class="st0">&#8216;paper size&#8217;</span>, <span class="st0">&#8216;used fonts&#8217;</span>, <span class="st0">&#8216;page order&#8217;</span>, <span class="st0">&#8216;created for&#8217;</span>, <span class="st0">&#8216;magnification&#8217;</span>, <span class="st0">&#8216;release&#8217;</span>, <span class="st0">&#8216;group&#8217;</span>, <span class="st0">&#8216;size&#8217;</span>, <span class="st0">&#8216;summary&#8217;</span>,<br />
<span class="st0">&#8216;packager&#8217;</span>, <span class="st0">&#8216;vendor&#8217;</span>, <span class="st0">&#8216;license&#8217;</span>, <span class="st0">&#8216;distribution&#8217;</span>, <span class="st0">&#8216;build-host&#8217;</span>, <span class="st0">&#8216;os&#8217;</span>, <span class="st0">&#8216;dependency&#8217;</span>, <span class="st0">&#8216;MD4&#8242;</span>, <span class="st0">&#8216;MD5&#8242;</span>, <span class="st0">&#8216;SHA-0&#8242;</span>, <span class="st0">&#8216;SHA-1&#8242;</span>,<br />
<span class="st0">&#8216;RipeMD160&#8242;</span>, <span class="st0">&#8216;resolution&#8217;</span>, <span class="st0">&#8216;category&#8217;</span>, <span class="st0">&#8216;book title&#8217;</span>, <span class="st0">&#8216;priority&#8217;</span>, <span class="st0">&#8216;conflicts&#8217;</span>, <span class="st0">&#8216;replaces&#8217;</span>, <span class="st0">&#8216;provides&#8217;</span>, <span class="st0">&#8216;conductor&#8217;</span>, <span class="st0">&#8216;interpreter&#8217;</span>,<br />
<span class="st0">&#8216;owner&#8217;</span>, <span class="st0">&#8216;lyrics&#8217;</span>, <span class="st0">&#8216;media type&#8217;</span>, <span class="st0">&#8216;contact&#8217;</span>, <span class="st0">&#8216;binary thumbnail data&#8217;</span>, <span class="st0">&#8216;publication date&#8217;</span>, <span class="st0">&#8216;camera make&#8217;</span>, <span class="st0">&#8216;camera model&#8217;</span>,<br />
<span class="st0">&#8216;exposure&#8217;</span>, <span class="st0">&#8216;aperture&#8217;</span>, <span class="st0">&#8216;exposure bias&#8217;</span>, <span class="st0">&#8216;flash&#8217;</span>, <span class="st0">&#8216;flash bias&#8217;</span>, <span class="st0">&#8216;focal length&#8217;</span>, <span class="st0">&#8216;focal length (35mm equivalent)&#8217;</span>, <span class="st0">&#8216;iso speed&#8217;</span>,<br />
<span class="st0">&#8216;exposure mode&#8217;</span>, <span class="st0">&#8216;metering mode&#8217;</span>, <span class="st0">&#8216;macro mode&#8217;</span>, <span class="st0">&#8216;image quality&#8217;</span>, <span class="st0">&#8216;white balance&#8217;</span>, <span class="st0">&#8216;orientation&#8217;</span><span class="br0">&#41;</span></div>
<p>A pesar de la  gran cantidad de metadatos que puede extraer no facilita manera alguna de saber con que tipo de metadato estás jugando. Según los creadores de esta librería, la mayor parte de los metadatos extraídos están basados en el vocabulario de Dublin Core. Sin embargo, otros metadatos han sido añadidos ante la necesidad de ciertos tipos de formato. Es decir, extrae un conjunto de parejas tipo clave/valor sin orden ni concierto dejando a la imaginación de los programadores la interpretación de los mismos.</p>
<p>En vazaar, MDX es el módulo encargado de la extracción de metadatos.  Dado que libextractor está en la mayor parte de los sistemas y existen bindings para python me ha parecido razonable incluirlo. El mayor problema que estoy encontrando para implementarlo es la cantidad de tiempo que gasto buscando que significa cada cosa. Para ello estoy mapeando cada keyword de libextractor con su correspondiente elemento en Dublin Core. También tengo en cuenta los elementos <em>cualificados</em>:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1"># keyword['LIBEXTRACTOR KEYWORD-TYPE'] = (&#8216;DC-ELEMENT&#8217;, &#8216;DC-TERM&#8217;)</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;album&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;type&#8217;</span>, <span class="st0">&#8216;collection&#8217;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;aperture&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;artist&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;creator&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;author&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;creator&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;binary thumbnail data&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;book title&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;title&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;build-host&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
&#8230;</div>
<p>Ejemplo del uso de MDX:</p>
<pre>kaskaras@laptop:~/share/wc/vazaar/trunk/devel/swx$ python mdx.py screenshot.png
Adding item: screenshot.png
http://purl.org/dc/elements/1.1/description -&gt; Created with GIMP
http://purl.org/dc/terms/modified -&gt; 2007-11-01 22:04:54
http://purl.org/dc/elements/1.1/format -&gt; image/png</pre>
<p>Updated 19/XII/2009:<br />
<a href="https://blueprints.launchpad.net/vazaar/+spec/extract-metadata">extract-metadata blueprint</a> @ <a href="http://launchpad.net/vazaar">launchpad.net</a><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/22" rel="bookmark" title="14/02/2008"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Revisión: 117. Estado del proyecto</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/5" rel="bookmark" title="01/11/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Initial import</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/3" rel="bookmark" title="31/10/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Comenzando&#8230;</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/20" rel="bookmark" title="07/12/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Dublin Core</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/10" rel="bookmark" title="26/11/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Nepomuk</span></a></li>
</ul>
<p><!-- Similar Posts took 13.692 ms --></p>
<div class="shr-publisher-17"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/my-workshop/python-my-workshop">Python</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/17">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/17#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>   Para que Vazaar sea realmente útil debe extraer un alto porcentaje de metadatos que casi haga innecesaria la interacción del usuario. Hay una entrada en el wiki dedicada al análisis de utilidades y/o bibliotecas útiles para el proyecto. Ahora estoy probando con <a href="http://www.vazaar-project.org/wiki/doku.php/python-extractore-features" title="vazaar libextractor wiki page" target="_blank">libextractor</a>.<br />
<span id="more-17"></span></p>
<address><em><a href="http://gnunet.org/libextractor/?xlang=Spanish" class="urlextern" target="_blank" title="http://gnunet.org/libextractor/?xlang=Spanish" rel="nofollow">libextractor</a></em> es una libreria cuyo fin es extraer metadatos de archivos de cualquier tipo. Se diseñó para utilizar otras liberias para ayudar en el proceso concreto de extraccion de metadatos, y tambien para que se pudiera ampliar facilmente su función con solo enlazar con extractores externos para tipos de archivo adicionales. libextractor es parte del proyecto GNU.</address>
<p>Lo interesante de esta herramienta es la cantidad de metadatos que es capaz de extraer. Este es un listado de los tags soportados por libextractor en mi sistema:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="kw1">from</span> extractor <span class="kw1">import</span> Extractor<br />
extractor = Extractor<span class="br0">&#40;</span><span class="br0">&#41;</span><br />
extractor.<span class="me1">keywordTypes</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
<span class="br0">&#40;</span><span class="st0">&#8216;unknown&#8217;</span>, <span class="st0">&#8216;filename&#8217;</span>, <span class="st0">&#8216;mimetype&#8217;</span>, <span class="st0">&#8216;title&#8217;</span>, <span class="st0">&#8216;author&#8217;</span>, <span class="st0">&#8216;artist&#8217;</span>, <span class="st0">&#8216;description&#8217;</span>, <span class="st0">&#8216;comment&#8217;</span>, <span class="st0">&#8216;date&#8217;</span>, <span class="st0">&#8216;publisher&#8217;</span>,<span class="st0">&#8216;language&#8217;</span>,<br />
<span class="st0">&#8216;album&#8217;</span>, <span class="st0">&#8216;genre&#8217;</span>, <span class="st0">&#8216;location&#8217;</span>, <span class="st0">&#8216;version&#8217;</span>, <span class="st0">&#8216;organization&#8217;</span>, <span class="st0">&#8216;copyright&#8217;</span>, <span class="st0">&#8216;subject&#8217;</span>, <span class="st0">&#8216;keywords&#8217;</span>, <span class="st0">&#8216;contributor&#8217;</span>,<br />
<span class="st0">&#8216;resource-type&#8217;</span>, <span class="st0">&#8216;format&#8217;</span>, <span class="st0">&#8216;resource-identifier&#8217;</span>, <span class="st0">&#8216;source&#8217;</span>, <span class="st0">&#8216;relation&#8217;</span>, <span class="st0">&#8216;coverage&#8217;</span>, <span class="st0">&#8216;software&#8217;</span>, <span class="st0">&#8216;disclaimer&#8217;</span>, <span class="st0">&#8216;warning&#8217;</span>,<br />
<span class="st0">&#8216;translated&#8217;</span>, <span class="st0">&#8216;creation date&#8217;</span>, <span class="st0">&#8216;modification date&#8217;</span>, <span class="st0">&#8216;creator&#8217;</span>, <span class="st0">&#8216;producer&#8217;</span>, <span class="st0">&#8216;page count&#8217;</span>, <span class="st0">&#8216;page orientation&#8217;</span>,<br />
<span class="st0">&#8216;paper size&#8217;</span>, <span class="st0">&#8216;used fonts&#8217;</span>, <span class="st0">&#8216;page order&#8217;</span>, <span class="st0">&#8216;created for&#8217;</span>, <span class="st0">&#8216;magnification&#8217;</span>, <span class="st0">&#8216;release&#8217;</span>, <span class="st0">&#8216;group&#8217;</span>, <span class="st0">&#8216;size&#8217;</span>, <span class="st0">&#8216;summary&#8217;</span>,<br />
<span class="st0">&#8216;packager&#8217;</span>, <span class="st0">&#8216;vendor&#8217;</span>, <span class="st0">&#8216;license&#8217;</span>, <span class="st0">&#8216;distribution&#8217;</span>, <span class="st0">&#8216;build-host&#8217;</span>, <span class="st0">&#8216;os&#8217;</span>, <span class="st0">&#8216;dependency&#8217;</span>, <span class="st0">&#8216;MD4&#8242;</span>, <span class="st0">&#8216;MD5&#8242;</span>, <span class="st0">&#8216;SHA-0&#8242;</span>, <span class="st0">&#8216;SHA-1&#8242;</span>,<br />
<span class="st0">&#8216;RipeMD160&#8242;</span>, <span class="st0">&#8216;resolution&#8217;</span>, <span class="st0">&#8216;category&#8217;</span>, <span class="st0">&#8216;book title&#8217;</span>, <span class="st0">&#8216;priority&#8217;</span>, <span class="st0">&#8216;conflicts&#8217;</span>, <span class="st0">&#8216;replaces&#8217;</span>, <span class="st0">&#8216;provides&#8217;</span>, <span class="st0">&#8216;conductor&#8217;</span>, <span class="st0">&#8216;interpreter&#8217;</span>,<br />
<span class="st0">&#8216;owner&#8217;</span>, <span class="st0">&#8216;lyrics&#8217;</span>, <span class="st0">&#8216;media type&#8217;</span>, <span class="st0">&#8216;contact&#8217;</span>, <span class="st0">&#8216;binary thumbnail data&#8217;</span>, <span class="st0">&#8216;publication date&#8217;</span>, <span class="st0">&#8216;camera make&#8217;</span>, <span class="st0">&#8216;camera model&#8217;</span>,<br />
<span class="st0">&#8216;exposure&#8217;</span>, <span class="st0">&#8216;aperture&#8217;</span>, <span class="st0">&#8216;exposure bias&#8217;</span>, <span class="st0">&#8216;flash&#8217;</span>, <span class="st0">&#8216;flash bias&#8217;</span>, <span class="st0">&#8216;focal length&#8217;</span>, <span class="st0">&#8216;focal length (35mm equivalent)&#8217;</span>, <span class="st0">&#8216;iso speed&#8217;</span>,<br />
<span class="st0">&#8216;exposure mode&#8217;</span>, <span class="st0">&#8216;metering mode&#8217;</span>, <span class="st0">&#8216;macro mode&#8217;</span>, <span class="st0">&#8216;image quality&#8217;</span>, <span class="st0">&#8216;white balance&#8217;</span>, <span class="st0">&#8216;orientation&#8217;</span><span class="br0">&#41;</span></div>
<p>A pesar de la  gran cantidad de metadatos que puede extraer no facilita manera alguna de saber con que tipo de metadato estás jugando. Según los creadores de esta librería, la mayor parte de los metadatos extraídos están basados en el vocabulario de Dublin Core. Sin embargo, otros metadatos han sido añadidos ante la necesidad de ciertos tipos de formato. Es decir, extrae un conjunto de parejas tipo clave/valor sin orden ni concierto dejando a la imaginación de los programadores la interpretación de los mismos.</p>
<p>En vazaar, MDX es el módulo encargado de la extracción de metadatos.  Dado que libextractor está en la mayor parte de los sistemas y existen bindings para python me ha parecido razonable incluirlo. El mayor problema que estoy encontrando para implementarlo es la cantidad de tiempo que gasto buscando que significa cada cosa. Para ello estoy mapeando cada keyword de libextractor con su correspondiente elemento en Dublin Core. También tengo en cuenta los elementos <em>cualificados</em>:</p>
<div class="dean_ch" style="white-space: wrap;"><span class="co1"># keyword['LIBEXTRACTOR KEYWORD-TYPE'] = (&#8216;DC-ELEMENT&#8217;, &#8216;DC-TERM&#8217;)</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;album&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;type&#8217;</span>, <span class="st0">&#8216;collection&#8217;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;aperture&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;artist&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;creator&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;author&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;creator&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;binary thumbnail data&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;book title&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8216;title&#8217;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
<span class="kw3">keyword</span><span class="br0">&#91;</span><span class="st0">&#8216;build-host&#8217;</span><span class="br0">&#93;</span> = <span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8221;</span><span class="br0">&#41;</span><br />
&#8230;</div>
<p>Ejemplo del uso de MDX:</p>
<pre>kaskaras@laptop:~/share/wc/vazaar/trunk/devel/swx$ python mdx.py screenshot.png
Adding item: screenshot.png
http://purl.org/dc/elements/1.1/description -&gt; Created with GIMP
http://purl.org/dc/terms/modified -&gt; 2007-11-01 22:04:54
http://purl.org/dc/elements/1.1/format -&gt; image/png</pre>
<p>Updated 19/XII/2009:<br />
<a href="https://blueprints.launchpad.net/vazaar/+spec/extract-metadata">extract-metadata blueprint</a> @ <a href="http://launchpad.net/vazaar">launchpad.net</a><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/22" rel="bookmark" title="14/02/2008"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Revisión: 117. Estado del proyecto</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/5" rel="bookmark" title="01/11/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Initial import</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/3" rel="bookmark" title="31/10/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Comenzando&#8230;</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/20" rel="bookmark" title="07/12/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Dublin Core</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/10" rel="bookmark" title="26/11/2007"><span property="dc:date" content="2007-12-02 20:41:15" resource="http://www.vazaar-project.org/blog/archives/17" /><span rel="http://www.vazaar-project.org/blog/archives/17" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/17">Nepomuk</span></a></li>
</ul>
<p><!-- Similar Posts took 13.592 ms --></p>
<div class="shr-publisher-17"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/17/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Initial import</title>
		<link>http://www.vazaar-project.org/blog/archives/5</link>
		<comments>http://www.vazaar-project.org/blog/archives/5#comments</comments>
		<pubDate>Thu, 01 Nov 2007 21:41:56 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/5">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Workshop]]></category>
		<category><![CDATA[ala web]]></category>
		<category><![CDATA[glade]]></category>
		<category><![CDATA[initial import]]></category>
		<category><![CDATA[metadatos]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[redland]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[svn screenshot vazaar swx]]></category>
		<category><![CDATA[swx]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/archives/5</guid>
		<description><![CDATA[<p>Por fin me he decidido a hacer el <em>Initial import</em> de lo que tengo en este momento. Tan solo una prueba de concepto para aprender a manejarme con python, rdf y pygtk.</p>
<p>Se trata de un explorador/visor de ficheros (si se lo puede llamar así) <em>ala web semántica</em>. Mapea un directorio dado en un grafo y muestra los triples, metadatos encontrados* y una imagen del grafo del directorio actual.</p>
<p>Este módulo (al que he llamado swx) se encargará en un futuro de añadir ficheros y directorios al repositorio central así como de proveer de metadatos la base de datos de conocimiento de Vazaar.<br />
<span id="more-5"></span><br />
El código:</p>
<pre>kaskaras@laptop:~/share/wc$ svn co http://vazaar-project.org/svn/trunk/
A    trunk/devel
A    trunk/devel/swx
A    trunk/devel/swx/vazaar.glade
A    trunk/devel/swx/RdfDir.py
A    trunk/devel/swx/file.xpm
A    trunk/devel/swx/namespaces.py
A    trunk/devel/swx/swx.py
A    trunk/devel/swx/folder.xpm
A    trunk/frozen
A    trunk/play
Revisión obtenida: 1</pre>
<p align="center"> Pantallazo:</p>
<p><a href="http://vazaar-project.org/svn/trunk/devel/swx/screenshot.png"></a></p>
<p style="text-align: center"><a href="http://vazaar-project.org/svn/trunk/devel/swx/screenshot.png"><img src="http://vazaar-project.org/svn/trunk/devel/swx/tb-screenshot.png" alt="SWX module screenshot" height="157" width="245" /></a></p>
<p><em>* letra pequeña: obtiene pocos metadatos. Falta desarrollar el módulo que se encargue de esta parte</em></p>
<p><u>Actualización</u>: instala las utilidades de Redland (no he conseguido hacer funcionar bien pydot) para ver convertir RDF a DOT y poder ver la imagen del grafo.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/22" rel="bookmark" title="14/02/2008"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Revisión: 117. Estado del proyecto</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/17" rel="bookmark" title="02/12/2007"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Extrayendo metadatos: libextractor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/10" rel="bookmark" title="26/11/2007"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Nepomuk</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/3" rel="bookmark" title="31/10/2007"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Comenzando&#8230;</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/33" rel="bookmark" title="03/09/2008"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">My SVN is gone!</span></a></li>
</ul>
<p><!-- Similar Posts took 12.087 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2007/11/screenshot.png' class='wam_link'>SWX module screenshot</a></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2007/11/tb-screenshot.png' class='wam_link'>SWX module screenshot thumbnail</a></li></ul></div><div class="shr-publisher-5"></div><div style="display:block"><small><em>posted in <a href="http://www.vazaar-project.org/blog/archives/category/news-about-vazaar">News</a> by <span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/5">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/5#comments">Leave A Comment</a><br />&copy;2010 <a href="http://www.vazaar-project.org/blog">Vazaar Project Blog</a>. All Rights Reserved.</em></small></div>]]></description>
			<content:encoded><![CDATA[<p>Por fin me he decidido a hacer el <em>Initial import</em> de lo que tengo en este momento. Tan solo una prueba de concepto para aprender a manejarme con python, rdf y pygtk.</p>
<p>Se trata de un explorador/visor de ficheros (si se lo puede llamar así) <em>ala web semántica</em>. Mapea un directorio dado en un grafo y muestra los triples, metadatos encontrados* y una imagen del grafo del directorio actual.</p>
<p>Este módulo (al que he llamado swx) se encargará en un futuro de añadir ficheros y directorios al repositorio central así como de proveer de metadatos la base de datos de conocimiento de Vazaar.<br />
<span id="more-5"></span><br />
El código:</p>
<pre>kaskaras@laptop:~/share/wc$ svn co http://vazaar-project.org/svn/trunk/
A    trunk/devel
A    trunk/devel/swx
A    trunk/devel/swx/vazaar.glade
A    trunk/devel/swx/RdfDir.py
A    trunk/devel/swx/file.xpm
A    trunk/devel/swx/namespaces.py
A    trunk/devel/swx/swx.py
A    trunk/devel/swx/folder.xpm
A    trunk/frozen
A    trunk/play
Revisión obtenida: 1</pre>
<p align="center"> Pantallazo:</p>
<p><a href="http://vazaar-project.org/svn/trunk/devel/swx/screenshot.png"></a></p>
<p style="text-align: center"><a href="http://vazaar-project.org/svn/trunk/devel/swx/screenshot.png"><img src="http://vazaar-project.org/svn/trunk/devel/swx/tb-screenshot.png" alt="SWX module screenshot" height="157" width="245" /></a></p>
<p><em>* letra pequeña: obtiene pocos metadatos. Falta desarrollar el módulo que se encargue de esta parte</em></p>
<p><u>Actualización</u>: instala las utilidades de Redland (no he conseguido hacer funcionar bien pydot) para ver convertir RDF a DOT y poder ver la imagen del grafo.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/22" rel="bookmark" title="14/02/2008"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Revisión: 117. Estado del proyecto</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/17" rel="bookmark" title="02/12/2007"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Extrayendo metadatos: libextractor</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/10" rel="bookmark" title="26/11/2007"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Nepomuk</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/3" rel="bookmark" title="31/10/2007"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">Comenzando&#8230;</span></a></li>
<li><a href="http://www.vazaar-project.org/blog/archives/33" rel="bookmark" title="03/09/2008"><span property="dc:date" content="2007-11-01 22:41:56" resource="http://www.vazaar-project.org/blog/archives/5" /><span rel="http://www.vazaar-project.org/blog/archives/5" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/5">My SVN is gone!</span></a></li>
</ul>
<p><!-- Similar Posts took 11.866 ms --></p>
<div class="wam_wrap"><h4 class="wam">Attached Files:</h4><ul class="wam_ul"><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2007/11/screenshot.png' class='wam_link'>SWX module screenshot</a></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2007/11/tb-screenshot.png' class='wam_link'>SWX module screenshot thumbnail</a></li></ul></div><div class="shr-publisher-5"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
