<?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; pygtk</title>
	<atom:link href="http://www.vazaar-project.org/blog/archives/tag/pygtk/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 12.199 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 10.833 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>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 9.909 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 11.047 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>Vazaar 0.4 (aka Sacabambaspis) released</title>
		<link>http://www.vazaar-project.org/blog/archives/214</link>
		<comments>http://www.vazaar-project.org/blog/archives/214#comments</comments>
		<pubDate>Sun, 06 Sep 2009 00:16:05 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/214">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[0.4]]></category>
		<category><![CDATA[beautifulsoup]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[download page]]></category>
		<category><![CDATA[feedparser]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[lxml]]></category>
		<category><![CDATA[model works]]></category>
		<category><![CDATA[PIM]]></category>
		<category><![CDATA[proof of concept]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[pynotify]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[rdflib]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[screenshot page]]></category>
		<category><![CDATA[semantic model]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[serializer]]></category>
		<category><![CDATA[tag widget]]></category>
		<category><![CDATA[vazaar]]></category>
		<category><![CDATA[web vision]]></category>
		<category><![CDATA[xml parser]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=214</guid>
		<description><![CDATA[<p>Hi everybody,</p>
<p>a new version of vazaar have been released for testing purposes. Although it&#8217;s stable you can consider it as proof of concept.</p>
<p>This version is a redesign of the previous one. While the old one was developed in C, the new one is being developed with Python. Also, I&#8217;ve been studying a new approach. Instead of work with tags and tagging operations, the new version is powered by the semantic web vision, ideas and tools.</p>
<p>I&#8217;d like to highlight RDFLib, a RDF library containing an RDF triple store and RDF/XML parser/serializer which deals with the logic of the application.</p>
<p>Go to the <a title="Download lastes version of Vazaar" href="http://www.vazaar-project.org/blog/download" target="_self">Download</a> page to get it. Check the <a title="Vazaar 0.4 screenshots" href="http://www.vazaar-project.org/blog/screenshots" target="_self">screenshot</a> page as well.</p>
<p>Development is carried out at <a title="Vazaar at Launchpad" href="https://launchpad.net/vazaar" target="_blank">Lauchpad</a>.</p>
<p>Now that I understand how a semantic model works I have more and better ideas to implement.</p>
<p>Next version will be released, hopefully, before this year ends.</p>
<p>Enjoy it.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/354" rel="bookmark" title="13/08/2010"><span property="dc:date" content="2009-09-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">Blog info updated</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-09-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">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="2009-09-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">GUI improvements</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-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">How to fix your sqlite database after corruption</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-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">What is coming in the next version</span></a></li>
</ul>
<p><!-- Similar Posts took 10.819 ms --></p>
<div class="shr-publisher-214"></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/214">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/214#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>Hi everybody,</p>
<p>a new version of vazaar have been released for testing purposes. Although it&#8217;s stable you can consider it as proof of concept.</p>
<p>This version is a redesign of the previous one. While the old one was developed in C, the new one is being developed with Python. Also, I&#8217;ve been studying a new approach. Instead of work with tags and tagging operations, the new version is powered by the semantic web vision, ideas and tools.</p>
<p>I&#8217;d like to highlight RDFLib, a RDF library containing an RDF triple store and RDF/XML parser/serializer which deals with the logic of the application.</p>
<p>Go to the <a title="Download lastes version of Vazaar" href="http://www.vazaar-project.org/blog/download" target="_self">Download</a> page to get it. Check the <a title="Vazaar 0.4 screenshots" href="http://www.vazaar-project.org/blog/screenshots" target="_self">screenshot</a> page as well.</p>
<p>Development is carried out at <a title="Vazaar at Launchpad" href="https://launchpad.net/vazaar" target="_blank">Lauchpad</a>.</p>
<p>Now that I understand how a semantic model works I have more and better ideas to implement.</p>
<p>Next version will be released, hopefully, before this year ends.</p>
<p>Enjoy it.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/354" rel="bookmark" title="13/08/2010"><span property="dc:date" content="2009-09-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">Blog info updated</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-09-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">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="2009-09-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">GUI improvements</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-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">How to fix your sqlite database after corruption</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-06 01:16:05" resource="http://www.vazaar-project.org/blog/archives/214" /><span rel="http://www.vazaar-project.org/blog/archives/214" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/214">What is coming in the next version</span></a></li>
</ul>
<p><!-- Similar Posts took 11.614 ms --></p>
<div class="shr-publisher-214"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/214/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 11.764 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.670 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>About Vazaar 0.4 Beta development</title>
		<link>http://www.vazaar-project.org/blog/archives/75</link>
		<comments>http://www.vazaar-project.org/blog/archives/75#comments</comments>
		<pubDate>Tue, 09 Jun 2009 16:30:08 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.vazaar-project.org/blog/archives/75">Tomás Vírseda</span></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[beta development]]></category>
		<category><![CDATA[database records]]></category>
		<category><![CDATA[desktop application]]></category>
		<category><![CDATA[escritorio semántico]]></category>
		<category><![CDATA[launchpad]]></category>
		<category><![CDATA[nepomuk]]></category>
		<category><![CDATA[NFO]]></category>
		<category><![CDATA[NIE]]></category>
		<category><![CDATA[PIMO]]></category>
		<category><![CDATA[presentation layer]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[qout]]></category>
		<category><![CDATA[reading documents]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[social semantic desktop]]></category>
		<category><![CDATA[web paradigm]]></category>
		<category><![CDATA[web semantica]]></category>

		<guid isPermaLink="false">http://www.vazaar-project.org/blog/?p=75</guid>
		<description><![CDATA[<p>After months of improving my skills with <a title="Python Programming Language" href="http://www.python.org" target="_self">Python</a> and <a title="GTK+ for Python" href="http://www.pygtk.org">PyGTK</a> and reading documents about semantic web and its integration with Desktops Interfaces (like GNOME or KDE) a lot of improvements have been made in Vazaar. This is an overview of the current state of development.</p>
<p>The presentation layer, the GUI, is more difficult to develop than I&#8217;ve ever thought. Althought the concept is simple: given any kind of data, transform them into triples (subject, predicate, object) and operate with them, the time consumed to create an infrastructure around the program has been very high.</p>
<p>As resources can be added at any time, I had to develop a system of queues (qIn and qOut). Furthermore, I had to deal with very high responsiveness times. It&#8217;s very annoying when the GUI gets frozen because the kernel is working in other stuff. So I had to implement threads (one thread for the kernel and another thread for the GUI). Along the way, I&#8217;ve found a lot of code (see source code in Launchpad) which has helped me to carry on.</p>
<p>In some way, I would like to forget these kind of glitches when I&#8217;m developing a Desktop application (not a kernel module). Maybe I&#8217;ve learnt something about gtk threads but nothing interesting for this project. Never mind&#8230;</p>
<p>I&#8217;m still reading some documents and asking about how to create a data model around <a title="NEPOMUK - The Social Semantic Desktop" href="http://nepomuk.semanticdesktop.org/">NEPOMUK</a>. By using the <a title="The Semantic Web" href="http://en.wikipedia.org/wiki/Semantic_Web" target="_self">semantic web</a> paradigm things change a lot. There are no database records or tables. Instead there are thousands (or hundreds of thousands) of triples.</p>
<p>But it looks easiest than I thought, at the moment.</p>
<p>Everything is a <a title="RFC 3986: URI Generic Syntax" href="http://www.ietf.org/rfc/rfc3986.txt" target="_blank">resource</a> (even <a title="pimo:Collection" href="http://www.semanticdesktop.org/ontologies/pimo/#Collection" target="_blank">collections</a>). A resource has a unique identifier (<a href="http://docs.python.org/library/uuid.html" target="_blank">UUID</a> objects according to <a href="http://www.rfc-editor.org/rfc/rfc4122.txt" target="_blank">RFC 4122</a>). Every resource belong to a unique Nepomuk class. They are a small subset of classes with their properties. Examples of Nepomuk classes are:</p>
<ul>
<li>nfo:Feed</li>
<li>nfo:Website</li>
<li>nfo:RemoteDataObject</li>
<li>nfo:Image</li>
<li>nfo:Audio</li>
<li>nfo:Clipboard (this class doesn&#8217;t belong to NFO but I need it until I find a smart solution for copypaste operations).</li>
</ul>
<p><span id="more-75"></span></p>
<p>As I say before, a collection is a resource. It belongs to the class Collection from PIMO namespace and use the property <em>nie:hasLogicalPart </em>to link resources.</p>
<p>Example of a single resource:</p>
<pre>&lt;<strong>nfo:Image</strong> rdf:about="<span style="color: #008000;"><strong>vazaar://7971c05a-3a69-469e-875c-5ec76b0d0cfb</strong></span>"&gt;
    &lt;<strong>nao:created</strong>&gt;2009-06-09 17:34:51&lt;/nao:created&gt;
    &lt;<strong>nie:title</strong>&gt;comment-icon.png&lt;/nie:title&gt;
    &lt;<strong>nao:lastModified</strong>&gt;2009-06-09 17:34:51&lt;/nao:lastModified&gt;
    &lt;nie:mimeMedia&gt;image&lt;/nie:mimeMedia&gt;
    &lt;nfo:fileUrl&gt;/home/kaskaras/Documentos/vazaar-export-r303/data/icons/comment-icon.png&lt;/nfo:fileUrl&gt;
    &lt;nfo:fileBasename&gt;comment-icon&lt;/nfo:fileBasename&gt;
    &lt;nfo:fileScheme&gt;file&lt;/nfo:fileScheme&gt;
    &lt;nfo:fileName&gt;comment-icon.png&lt;/nfo:fileName&gt;
    &lt;nfo:fileExtension&gt;png&lt;/nfo:fileExtension&gt;
    &lt;nfo:fileSize&gt;3269&lt;/nfo:fileSize&gt;
    &lt;nfo:belongsToContainer&gt;/home/kaskaras/Documentos/vazaar-export-r303/data/icons&lt;/nfo:belongsToContainer&gt;
    &lt;nie:mimeSubtype&gt;png&lt;/nie:mimeSubtype&gt;
    &lt;nie:mimeType&gt;image/png&lt;/nie:mimeType&gt;
&lt;/nfo:Image&gt;</pre>
<p>And here and example of a collection:</p>
<pre>&lt;<strong>pimo:Collection</strong> rdf:about="<span style="color: #008000;"><strong>vazaar://9fcea6ca-cc79-4259-baff-6c025319a36e</strong></span>"&gt;
    &lt;<strong>nao:created</strong>&gt;2009-06-09 17:35:13.338280&lt;/nao:created&gt;
    &lt;<strong>nie:title</strong>&gt;/home/kaskaras/Escritorio/screenshots&lt;/nie:title&gt;
    &lt;<strong>nao:lastModified</strong>&gt;2009-06-09 17:35:13.338280&lt;/nao:lastModified&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
      &lt;nfo:Image rdf:about="<span style="color: #008000;"><strong>vazaar://15e820cb-398c-4917-b162-3b6d10cd8054</strong></span>"&gt;
        &lt;nao:created&gt;2009-06-09 17:35:13&lt;/nao:created&gt;
        &lt;nie:title&gt;Pantallazo.png&lt;/nie:title&gt;
        &lt;nao:lastModified&gt;2009-06-09 17:35:13&lt;/nao:lastModified&gt;
        &lt;nie:mimeMedia&gt;image&lt;/nie:mimeMedia&gt;
        &lt;nfo:fileUrl&gt;/home/kaskaras/Escritorio/screenshots/Pantallazo.png&lt;/nfo:fileUrl&gt;
        &lt;nfo:fileBasename&gt;Pantallazo&lt;/nfo:fileBasename&gt;
        &lt;nfo:fileScheme&gt;file&lt;/nfo:fileScheme&gt;
        &lt;nfo:fileName&gt;Pantallazo.png&lt;/nfo:fileName&gt;
        &lt;nfo:fileExtension&gt;png&lt;/nfo:fileExtension&gt;
        &lt;nfo:fileSize&gt;188465&lt;/nfo:fileSize&gt;
        &lt;nfo:belongsToContainer&gt;/home/kaskaras/Escritorio/screenshots&lt;/nfo:belongsToContainer&gt;
        &lt;nie:mimeSubtype&gt;png&lt;/nie:mimeSubtype&gt;
        &lt;nie:mimeType&gt;image/png&lt;/nie:mimeType&gt;
      &lt;/nfo:Image&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
 &lt;/pimo:Collection&gt;</pre>
<p>Right now, no problems working with this model. It is simple and I think that powerful. But I haven&#8217;t finished of defining the basic core of properties for a given resource (single or collection). Thinking in the future of this application, I would like to expose public resources through a SPARQL End Point so another semantic application will be able to ask it. It shouldn&#8217;t be so hard as I&#8217;ve seen a couple of python libraries to implement it. But the most important now is to have a solid model which I can work with.</p>
<p>Summing up, this is the result of the of the current code:</p>
<div id="attachment_66" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-starthere.png"><img class="size-medium wp-image-66" title="vazaar-04-starthere" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-starthere-300x220.png" alt="Start Here" width="300" height="220" /></a><p class="wp-caption-text">Start Here</p></div>
<div id="attachment_64" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-query.png"><img class="size-medium wp-image-64" title="vazaar-04-query" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-query-300x220.png" alt="Make your own SPARQL queries" width="300" height="220" /></a><p class="wp-caption-text">Make your own SPARQL queries</p></div>
<div id="attachment_63" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-import.png"><img class="size-medium wp-image-63" title="vazaar-04-import" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-import-300x220.png" alt="Basic Import support" width="300" height="220" /></a><p class="wp-caption-text">Basic Import support</p></div>
<div id="attachment_62" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-export.png"><img class="size-medium wp-image-62" title="vazaar-04-export" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-export-300x220.png" alt="Basic Export support" width="300" height="220" /></a><p class="wp-caption-text">Basic Export support</p></div>
<div id="attachment_61" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-about.png"><img class="size-medium wp-image-61" title="vazaar-04-about" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-about-300x219.png" alt="About Vazaar" width="300" height="219" /></a><p class="wp-caption-text">About Vazaar</p></div>
<div id="attachment_65" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-sourceview.png"><img class="size-medium wp-image-65" title="vazaar-04-sourceview" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-sourceview-300x219.png" alt="Syntax Highlighting for your sourcecode-based resources" width="300" height="219" /></a><p class="wp-caption-text">Syntax Highlighting for your sourcecode-based resources</p></div>
<div id="attachment_67" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-viewimage.png"><img class="size-medium wp-image-67" title="vazaar-04-viewimage" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-viewimage-300x219.png" alt="Basic support for image displaying" width="300" height="219" /></a><p class="wp-caption-text">Basic support for image displaying</p></div>
<p>It&#8217;s a prototype. Don&#8217;t expect too much. In the next weeks  I&#8217;ll try to work in the GUI adding visual improvements and new funcionalities.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/17" rel="bookmark" title="02/12/2007"><span property="dc:date" content="2009-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">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="2009-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">Nepomuk</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-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">GUI improvements</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-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">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="2009-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">What is coming in the next version</span></a></li>
</ul>
<p><!-- Similar Posts took 13.052 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/06/vazaar-04-about.png' class='wam_link'>vazaar-04-about</a></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-export.png' class='wam_link'>vazaar-04-export</a><p>Serialize database into a RDF file. No compression.</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-import.png' class='wam_link'>vazaar-04-import</a><p>Import a previous database export.</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-query.png' class='wam_link'>vazaar-04-query</a><p>Basic SPARQL editor for advanced users.</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-sourceview.png' class='wam_link'>vazaar-04-sourceview</a><p>by using GtkSourceView python bindings</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-starthere.png' class='wam_link'>vazaar-04-starthere</a><p>It's the front page of the program where you can view last resources imported, copy pasted resources and collections</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-viewimage.png' class='wam_link'>vazaar-04-viewimage</a><p>Vazaar implements a very basic image viewer</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/backup-20090609173554.rdf' class='wam_link'>Vazaar RDF Model example</a><p>This example shows how Vazaar store data into RDF.</p></li></ul></div><div class="shr-publisher-75"></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/75">Tomás Vírseda</span> <a href="http://www.vazaar-project.org/blog/archives/75#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 months of improving my skills with <a title="Python Programming Language" href="http://www.python.org" target="_self">Python</a> and <a title="GTK+ for Python" href="http://www.pygtk.org">PyGTK</a> and reading documents about semantic web and its integration with Desktops Interfaces (like GNOME or KDE) a lot of improvements have been made in Vazaar. This is an overview of the current state of development.</p>
<p>The presentation layer, the GUI, is more difficult to develop than I&#8217;ve ever thought. Althought the concept is simple: given any kind of data, transform them into triples (subject, predicate, object) and operate with them, the time consumed to create an infrastructure around the program has been very high.</p>
<p>As resources can be added at any time, I had to develop a system of queues (qIn and qOut). Furthermore, I had to deal with very high responsiveness times. It&#8217;s very annoying when the GUI gets frozen because the kernel is working in other stuff. So I had to implement threads (one thread for the kernel and another thread for the GUI). Along the way, I&#8217;ve found a lot of code (see source code in Launchpad) which has helped me to carry on.</p>
<p>In some way, I would like to forget these kind of glitches when I&#8217;m developing a Desktop application (not a kernel module). Maybe I&#8217;ve learnt something about gtk threads but nothing interesting for this project. Never mind&#8230;</p>
<p>I&#8217;m still reading some documents and asking about how to create a data model around <a title="NEPOMUK - The Social Semantic Desktop" href="http://nepomuk.semanticdesktop.org/">NEPOMUK</a>. By using the <a title="The Semantic Web" href="http://en.wikipedia.org/wiki/Semantic_Web" target="_self">semantic web</a> paradigm things change a lot. There are no database records or tables. Instead there are thousands (or hundreds of thousands) of triples.</p>
<p>But it looks easiest than I thought, at the moment.</p>
<p>Everything is a <a title="RFC 3986: URI Generic Syntax" href="http://www.ietf.org/rfc/rfc3986.txt" target="_blank">resource</a> (even <a title="pimo:Collection" href="http://www.semanticdesktop.org/ontologies/pimo/#Collection" target="_blank">collections</a>). A resource has a unique identifier (<a href="http://docs.python.org/library/uuid.html" target="_blank">UUID</a> objects according to <a href="http://www.rfc-editor.org/rfc/rfc4122.txt" target="_blank">RFC 4122</a>). Every resource belong to a unique Nepomuk class. They are a small subset of classes with their properties. Examples of Nepomuk classes are:</p>
<ul>
<li>nfo:Feed</li>
<li>nfo:Website</li>
<li>nfo:RemoteDataObject</li>
<li>nfo:Image</li>
<li>nfo:Audio</li>
<li>nfo:Clipboard (this class doesn&#8217;t belong to NFO but I need it until I find a smart solution for copypaste operations).</li>
</ul>
<p><span id="more-75"></span></p>
<p>As I say before, a collection is a resource. It belongs to the class Collection from PIMO namespace and use the property <em>nie:hasLogicalPart </em>to link resources.</p>
<p>Example of a single resource:</p>
<pre>&lt;<strong>nfo:Image</strong> rdf:about="<span style="color: #008000;"><strong>vazaar://7971c05a-3a69-469e-875c-5ec76b0d0cfb</strong></span>"&gt;
    &lt;<strong>nao:created</strong>&gt;2009-06-09 17:34:51&lt;/nao:created&gt;
    &lt;<strong>nie:title</strong>&gt;comment-icon.png&lt;/nie:title&gt;
    &lt;<strong>nao:lastModified</strong>&gt;2009-06-09 17:34:51&lt;/nao:lastModified&gt;
    &lt;nie:mimeMedia&gt;image&lt;/nie:mimeMedia&gt;
    &lt;nfo:fileUrl&gt;/home/kaskaras/Documentos/vazaar-export-r303/data/icons/comment-icon.png&lt;/nfo:fileUrl&gt;
    &lt;nfo:fileBasename&gt;comment-icon&lt;/nfo:fileBasename&gt;
    &lt;nfo:fileScheme&gt;file&lt;/nfo:fileScheme&gt;
    &lt;nfo:fileName&gt;comment-icon.png&lt;/nfo:fileName&gt;
    &lt;nfo:fileExtension&gt;png&lt;/nfo:fileExtension&gt;
    &lt;nfo:fileSize&gt;3269&lt;/nfo:fileSize&gt;
    &lt;nfo:belongsToContainer&gt;/home/kaskaras/Documentos/vazaar-export-r303/data/icons&lt;/nfo:belongsToContainer&gt;
    &lt;nie:mimeSubtype&gt;png&lt;/nie:mimeSubtype&gt;
    &lt;nie:mimeType&gt;image/png&lt;/nie:mimeType&gt;
&lt;/nfo:Image&gt;</pre>
<p>And here and example of a collection:</p>
<pre>&lt;<strong>pimo:Collection</strong> rdf:about="<span style="color: #008000;"><strong>vazaar://9fcea6ca-cc79-4259-baff-6c025319a36e</strong></span>"&gt;
    &lt;<strong>nao:created</strong>&gt;2009-06-09 17:35:13.338280&lt;/nao:created&gt;
    &lt;<strong>nie:title</strong>&gt;/home/kaskaras/Escritorio/screenshots&lt;/nie:title&gt;
    &lt;<strong>nao:lastModified</strong>&gt;2009-06-09 17:35:13.338280&lt;/nao:lastModified&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
      &lt;nfo:Image rdf:about="<span style="color: #008000;"><strong>vazaar://15e820cb-398c-4917-b162-3b6d10cd8054</strong></span>"&gt;
        &lt;nao:created&gt;2009-06-09 17:35:13&lt;/nao:created&gt;
        &lt;nie:title&gt;Pantallazo.png&lt;/nie:title&gt;
        &lt;nao:lastModified&gt;2009-06-09 17:35:13&lt;/nao:lastModified&gt;
        &lt;nie:mimeMedia&gt;image&lt;/nie:mimeMedia&gt;
        &lt;nfo:fileUrl&gt;/home/kaskaras/Escritorio/screenshots/Pantallazo.png&lt;/nfo:fileUrl&gt;
        &lt;nfo:fileBasename&gt;Pantallazo&lt;/nfo:fileBasename&gt;
        &lt;nfo:fileScheme&gt;file&lt;/nfo:fileScheme&gt;
        &lt;nfo:fileName&gt;Pantallazo.png&lt;/nfo:fileName&gt;
        &lt;nfo:fileExtension&gt;png&lt;/nfo:fileExtension&gt;
        &lt;nfo:fileSize&gt;188465&lt;/nfo:fileSize&gt;
        &lt;nfo:belongsToContainer&gt;/home/kaskaras/Escritorio/screenshots&lt;/nfo:belongsToContainer&gt;
        &lt;nie:mimeSubtype&gt;png&lt;/nie:mimeSubtype&gt;
        &lt;nie:mimeType&gt;image/png&lt;/nie:mimeType&gt;
      &lt;/nfo:Image&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
    &lt;<strong>nie:hasLogicalPart</strong>&gt;
 &lt;/pimo:Collection&gt;</pre>
<p>Right now, no problems working with this model. It is simple and I think that powerful. But I haven&#8217;t finished of defining the basic core of properties for a given resource (single or collection). Thinking in the future of this application, I would like to expose public resources through a SPARQL End Point so another semantic application will be able to ask it. It shouldn&#8217;t be so hard as I&#8217;ve seen a couple of python libraries to implement it. But the most important now is to have a solid model which I can work with.</p>
<p>Summing up, this is the result of the of the current code:</p>
<div id="attachment_66" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-starthere.png"><img class="size-medium wp-image-66" title="vazaar-04-starthere" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-starthere-300x220.png" alt="Start Here" width="300" height="220" /></a><p class="wp-caption-text">Start Here</p></div>
<div id="attachment_64" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-query.png"><img class="size-medium wp-image-64" title="vazaar-04-query" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-query-300x220.png" alt="Make your own SPARQL queries" width="300" height="220" /></a><p class="wp-caption-text">Make your own SPARQL queries</p></div>
<div id="attachment_63" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-import.png"><img class="size-medium wp-image-63" title="vazaar-04-import" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-import-300x220.png" alt="Basic Import support" width="300" height="220" /></a><p class="wp-caption-text">Basic Import support</p></div>
<div id="attachment_62" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-export.png"><img class="size-medium wp-image-62" title="vazaar-04-export" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-export-300x220.png" alt="Basic Export support" width="300" height="220" /></a><p class="wp-caption-text">Basic Export support</p></div>
<div id="attachment_61" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-about.png"><img class="size-medium wp-image-61" title="vazaar-04-about" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-about-300x219.png" alt="About Vazaar" width="300" height="219" /></a><p class="wp-caption-text">About Vazaar</p></div>
<div id="attachment_65" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-sourceview.png"><img class="size-medium wp-image-65" title="vazaar-04-sourceview" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-sourceview-300x219.png" alt="Syntax Highlighting for your sourcecode-based resources" width="300" height="219" /></a><p class="wp-caption-text">Syntax Highlighting for your sourcecode-based resources</p></div>
<div id="attachment_67" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-viewimage.png"><img class="size-medium wp-image-67" title="vazaar-04-viewimage" src="http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-viewimage-300x219.png" alt="Basic support for image displaying" width="300" height="219" /></a><p class="wp-caption-text">Basic support for image displaying</p></div>
<p>It&#8217;s a prototype. Don&#8217;t expect too much. In the next weeks  I&#8217;ll try to work in the GUI adding visual improvements and new funcionalities.<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.vazaar-project.org/blog/archives/17" rel="bookmark" title="02/12/2007"><span property="dc:date" content="2009-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">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="2009-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">Nepomuk</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-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">GUI improvements</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-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">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="2009-06-09 17:30:08" resource="http://www.vazaar-project.org/blog/archives/75" /><span rel="http://www.vazaar-project.org/blog/archives/75" property="dc:title" resource="http://www.vazaar-project.org/blog/archives/75">What is coming in the next version</span></a></li>
</ul>
<p><!-- Similar Posts took 17.592 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/06/vazaar-04-about.png' class='wam_link'>vazaar-04-about</a></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-export.png' class='wam_link'>vazaar-04-export</a><p>Serialize database into a RDF file. No compression.</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-import.png' class='wam_link'>vazaar-04-import</a><p>Import a previous database export.</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-query.png' class='wam_link'>vazaar-04-query</a><p>Basic SPARQL editor for advanced users.</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-sourceview.png' class='wam_link'>vazaar-04-sourceview</a><p>by using GtkSourceView python bindings</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-starthere.png' class='wam_link'>vazaar-04-starthere</a><p>It's the front page of the program where you can view last resources imported, copy pasted resources and collections</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/vazaar-04-viewimage.png' class='wam_link'>vazaar-04-viewimage</a><p>Vazaar implements a very basic image viewer</p></li><li><a href='http://www.vazaar-project.org/blog/wp-content/uploads/2009/06/backup-20090609173554.rdf' class='wam_link'>Vazaar RDF Model example</a><p>This example shows how Vazaar store data into RDF.</p></li></ul></div><div class="shr-publisher-75"></div>]]></content:encoded>
			<wfw:commentRss>http://www.vazaar-project.org/blog/archives/75/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
