<?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>Schloenvoigt.de</title>
	<atom:link href="http://www.schloenvoigt.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.schloenvoigt.de</link>
	<description>Weblog</description>
	<lastBuildDate>Fri, 27 Aug 2010 15:45:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>KDE: Plasmoiden mit JavaScript</title>
		<link>http://www.schloenvoigt.de/2010/07/kde-plasmoiden-mit-javascript/</link>
		<comments>http://www.schloenvoigt.de/2010/07/kde-plasmoiden-mit-javascript/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 01:14:18 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/07/kde-plasmoiden-mit-javascript/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Desktop environment]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[plasma]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=271</guid>
		<description><![CDATA[Der freie Desktop KDE hat mit der Version 4.0 eine neue Desktop-Shell  namens Plasma  eingeführt. Die ganze Oberfläche wird dabei aus einer Vielzahl von Widgets, sogenannter Plasmoiden, zusammengesetzt. Plasmoiden können dabei prinzipiell jede mögliche Funktion realisieren. Es existieren  bereits eine Vielzahl von Uhren, Kalendern, Taschenrechnern aber auch komplexere Applikationen wie etwa ein Twitter-Client oder . Auch die Grundelemente des Desktops wie die Taskleiste aber auch der Desktop selbst sind spezielle Widgets. Der Benutzer kann dabei selbst entscheiden welche Plasmoiden er wo verwenden möchte. Neue Plasmoiden können einfach über das Netz nachgeladen werden.

In den Anfangszeiten war die Entwicklung von Plasmoiden recht kompliziert und erforderte neben Kenntnissen in C++ tiefe Einblicke in das Plasma-Framework. Seit KDE 4.4 können Plasmoiden nun sehr einfach mit Hilfe von Skriptsprachen wie JavaScript erstellt werden. Wie einfach das von statten geht, möchte ich euch hier gerne demonstrieren.]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 138px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/File:KDE_logo.svg"><img title="Logo of the KDE Project &quot;KDE, K Desktop E..." src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/8d/KDE_logo.svg/128px-KDE_logo.svg.png" alt="Logo of the KDE Project &quot;KDE, K Desktop E..." width="128" height="128" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/File:KDE_logo.svg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>Der freie Desktop <a class="zem_slink" title="KDE" rel="homepage" href="http://www.kde.org/">KDE</a> hat mit der Version 4.0 eine neue <a class="zem_slink" title="Shell (computing)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Shell_%28computing%29">Desktop-Shell</a> namens <a class="zem_slink" title="Plasma (KDE)" rel="homepage" href="http://plasma.kde.org">Plasma</a> eingeführt. Die ganze Oberfläche wird dabei aus einer Vielzahl von Widgets, sogenannter Plasmoiden, zusammengesetzt. Plasmoiden können dabei prinzipiell jede mögliche Funktion realisieren. Es existieren  bereits eine Vielzahl von Uhren, Kalendern, Taschenrechnern aber auch komplexere Applikationen wie etwa ein <a class="zem_slink" title="Twitter" rel="homepage" href="http://twitter.com">Twitter</a>-Client oder . Auch die Grundelemente des Desktops wie die Taskleiste aber auch der Desktop selbst sind spezielle Widgets. Der Benutzer kann dabei selbst entscheiden welche Plasmoiden er wo verwenden möchte. Neue Plasmoiden können einfach über das Netz nachgeladen werden.</p>
<p>In den Anfangszeiten war die Entwicklung von Plasmoiden recht kompliziert und erforderte neben Kenntnissen in <a class="zem_slink" title="C++" rel="wikipedia" href="http://en.wikipedia.org/wiki/C%2B%2B">C++</a> tiefe Einblicke in das Plasma-Framework. Seit KDE 4.4 können Plasmoiden nun sehr einfach mit Hilfe von Skriptsprachen wie <a class="zem_slink" title="JavaScript" rel="wikipedia" href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a> erstellt werden. Wie einfach das von statten geht, möchte ich euch hier gerne demonstrieren.</p>
<h3>Los gehts</h3>
<p>Ganz traditionell fangen wir hier mit einem einfachen &#8220;HelloWorld&#8221; an. Zunächst müssen wir einen Ordner anlegen, der unseren Plasmoiden erhalten soll. Dieser erhält den Namen hello_world:</p>
<pre>mkdir hello_world</pre>
<p>In diesem Ordner benötigen wir eine Datei mit dem Namen <strong>metadata.desktop</strong>.</p>
<pre>touch hello_world/metadata.desktop</pre>
<p>Diese Datei beschreibt den Plasmoiden, kann mit jedem Editor (z.B. <a class="zem_slink" title="KWrite" rel="homepage" href="http://www.kate-editor.org">KWrite</a>) bearbeitet werden, und sollte in etwa folgenden Inhalt haben:</p>
<pre class="brush: plain;">
[Desktop Entry]
Name=Hello World
Comment=Eine kurze Beschreibung des Plasmoiden
Icon=kate
Type=Service
X-KDE-ServiceTypes=Plasma/Applet
X-Plasma-API=javascript
X-Plasma-MainScript=main.js
X-Plasma-DefaultSize=300,100
X-KDE-PluginInfo-Author=Steffen Schloenvoigt
X-KDE-PluginInfo-Email=steffen@schloenvoigt.de
X-KDE-PluginInfo-Name=hello_world
X-KDE-PluginInfo-Version=0.0.1
X-KDE-PluginInfo-Website=http://plasma.schloenvoigt.de/
X-KDE-PluginInfo-Category=Examples
X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=GPL
X-KDE-PluginInfo-EnabledByDefault=true
</pre>
<p>Die Datei ist größtenteils selbsterklärend. Als Icon für das Plasmoid hab ich hier einfacherweise das bereits im System vorhandene des Programms KWrite verwendet. Man könnte hier aber auch einen Dateinamen eines eigenen Icons angeben. Wichtig ist noch der Parameter <strong>X-Plasma-MainScript</strong>. Er gibt den Namen der Datei an, die später unseren Code enthält.</p>
<p>Alle weiteren Dateien, die zum Plasmoid gehören, müssen in einem Unterordner namens contents abgelegt werden. Diesen erstellen wir nun:</p>
<pre>mkdir hello_world/contents</pre>
<p>In diesem Ordner legen wir nun die Datei main.js an, die später den Code des Plasmoids enthält:</p>
<pre>touch hello_world/contents/main.js
</pre>
<h3>Das erste Programm</h3>
<p>Um einfach den Schriftzug &#8220;Hallo Welt&#8221; anzuzeigen, reicht folgender Code aus:</p>
<pre class="brush: jscript;">
layout = new LinearLayout( plasmoid );
label = new Label( );
label.text = &quot;Hallo Welt&quot;;
layout.addItem( label );
</pre>
<p>In Zeile 1 erstellen wir ein LinearLayout für den Plasmoiden. Die Variable plasmoid ist eine statische Variable, die vom Plasma Framework bereitgestellt wird. Das LinearLayout ist ein Container, der alle in ihm enthaltenen Elemente nacheinander (oder untereinander wenn die Orientierung auf Vertikal umgestellt wurde) in gleichmäßiger Größe anordnet. In der zweiten Zeile erstellen wir dann ein Label-Objekt, dessen Eigenschaft &#8220;text&#8221; wir in der dritten Zeile den später anzuzeigenden Text &#8220;Hallo Welt&#8221; zuweisen. Zu guter Letzt wird das label in Zeile 4 zum Layout-Container hinzugefügt.</p>
<p>Das ist im Prinzip auch schon alles. Nun können wir uns den Plasmoiden mit dem Programm <strong>plasmoidviewer </strong>einfach ansehen:</p>
<pre>plasmoidviewer hello_world</pre>
<p>Wenn wir alles richtig gemacht haben, sollte sich nun folgendes Fenster öffnen:</p>
<p><img class="aligncenter size-full wp-image-307" title="Hello World" src="http://www.schloenvoigt.de/wp-content/uploads/2010/07/helloworld.png" alt="Die &quot;Hallo Welt&quot;-Applikation im plasmoidviewer" width="437" height="102" /></p>
<h3>Benutzerinteraktion</h3>
<p>Natürlich wollen wir nich nur einfach einen Schriftzug anzeigen sondern auch auf Benutzereingaben reagieren können. Wir erweitern das Programm deswegen folgendermaßen:</p>
<pre class="brush: jscript;">
layout = new LinearLayout( plasmoid );
label = new Label( );
label.text = &quot;Hallo Welt&quot;;
layout.addItem( label );

layout.orientation = QtVertical;

inputField = new LineEdit( );
layout.addItem( inputField );

button = new PushButton( );
button.text = &quot;Klick mich&quot;;
button.clicked.connect( onButtonClick );
layout.addItem( button );

function onButtonClick( )
{
 if( inputField.text != &quot;&quot; )
 {
   anotherLabel = new Label( );
   anotherLabel.text = inputField.text;
   layout.addItem( anotherLabel );
   inputField.text = &quot;&quot;;
 }
}
</pre>
<p>Zunächst setzen wir hier zusätzlich die Orientierung auf vertikal indem wir der orientation Eigenschaft des Layouts die globale Konstante QtVertical zuweisen. Als nächstes erzeugen wir  in den Zeilen 8 und 9 ein einfaches Texteingabefeld und fügen es zum Layout hinzu. In den Zeilen 11-14 erzeugen wir einen Button mit der Aufschrift &#8220;Klick mich&#8221;, der die Funktion <strong>onButtonClick</strong> aufruft, wenn er gedrückt wird.</p>
<p>In den Zeilen 16-25 wird dann diese onButtonClick Funktion implementiert. Hier prüfen wir zuerst, dass das Eingabefeld nicht leer ist. Ist etwas im Eingabefeld enthalten, wird ein neues Label Objekt erzeugt und der Inhalt des Eingabefelds an dessen <strong>text</strong> Eigenschaft zugewiesen. Das neue Label wird dann ebenfalls an das Layout angehängt und der Inhalt des Eingabefelds geleert.</p>
<p>Wenn wir uns den Plasmoiden nun wieder im plasmoidviewer ansehen, sollte nach ein paar Eingaben der Inhalt in etwa folgendermaßen aussehen:</p>
<p><img class="aligncenter size-full wp-image-310" title="Hello World 2" src="http://www.schloenvoigt.de/wp-content/uploads/2010/07/helloworld2.png" alt="Die erweiterte Hello World Applikation" width="309" height="277" /></p>
<h3>Installieren und Paketieren</h3>
<p>Wenn wir mit unserem Plasmoiden zufrieden sind, können wir ihn mit Hilfe des Tools <strong>plasmapkg</strong> installieren:</p>
<pre>plasmapkg -i hello_world</pre>
<p>Haben wir alles richtig gemacht, können wir unseren Plasmoiden jetzt einfach zum Beispiel zum Desktop hinzufügen indem wir diesen mit der rechten Maustaste anklicken und im erscheinenden Kontextmenu den Eintrag &#8220;Miniprogramme hinzufügen&#8230;&#8221; wählen (Falls diese Option nicht vorhanden ist, muss man eventuell erst die Option &#8220;Miniprogramme entsperren&#8221; anklicken). Nun können wir nach unserem Plasmoid in der Auswahlliste suchen. Da wir in den Meta-Daten die Vorgabekategorie &#8220;Example&#8221; eingestellt haben, sollte sich unser Plasmoid im Reiter &#8220;Beispiele&#8221; befinden.</p>
<p><img class="aligncenter size-full wp-image-312" title="Auswahl des Plasmoiden aus der Liste" src="http://www.schloenvoigt.de/wp-content/uploads/2010/07/helloworld3.png" alt="Auswahl des Plasmoiden aus der Liste" width="540" height="404" />Wenn wir unseren Plasmoiden nun aus der Liste auf den Desktop ziehen, sollte er sich dort genauso problemlos öffnen.</p>
<p><img class="aligncenter size-full wp-image-313" title="Hello World Plasmoid auf dem Desktop" src="http://www.schloenvoigt.de/wp-content/uploads/2010/07/helloworld4.png" alt="Hello World Plasmoid auf dem Desktop" width="419" height="284" /></p>
<p>Solange wir den Plasmoiden nur für uns entwickeln, ist die bisher vorgestellte Vorgehensweise natürlich ohne weiteres gangbar. Wollen wir den Plasmoid allerdings auch mit anderen teilen oder gar etwa auf <a href="http://opendesktop.org">http://opendesktop.org</a> zum Download bereitstellen ist dieser Weg so nicht sinnvoll. Das größte Hindernis ist sicherlich die Verzeichnisstruktur und die Vielzahl der darin enthaltenen Dateien (Später können hier ja auch weitere Quelltexte, Bilder, Übersetzungen usw. hinzukommen). Das Plasma-Framework setzt daher auf .plasmoid Dateien, die im Grunde genommen nichts anderes sind als ganz normale ZIP Dateien mit einer anderen Endung (So wird das im übrigen bei vielen Dateien wie z.B. von OpenOffice oder den neuen MS Office Formaten auch gemacht). Um aus unserem Plasmoiden also ein Paket zu schnüren, gehen wir folgendermaßen vor:</p>
<pre>cd hello_world
zip -r hello_world.zip *
mv hello_world.zip hello_world.plasmoid
</pre>
<p>Die Datei hello_world.plasmoid kann nun problemlos verteilt werden. Installiert werden .plasmoid Dateien übrigens genauso wie vorher das Verzeichnis:</p>
<pre>plasmapkg -i hello_world.plasmoid
</pre>
<p>Wollen wir einen installierten Plasmoid wieder entfernen, verwenden wir den Schalter -r:</p>
<pre>plasmapkg -r hello_world
</pre>
<p>Hierbei spielt es allerdings dann keine Rolle, ob aus einem Verzechnis oder aus einer .plasmoid-Datei installiert wurde, wichtig ist allein der Name des Plasmoiden, den wir in den Meta-Daten mit dem Feld <strong>X-KDE-PluginInfo-Name</strong> angegeben haben.</p>
<h3>Weitere Informationen</h3>
<p>Natürlich hat dieser Beitrag nur die absoluten Grundlagen der Entwicklung von Plasmoiden mit JavaScript beleuchtet. Das Framework bietet eine unmenge an weiteren Funktionalitäten wie die Abfrage oder auch Implementierung von Plasma-DataEngines (Plasma-Programme, die Daten aus verschiedensten Quellen bereitstellen), die Ausgabe von Graphen, Animationen, den Zugriff auf das Netzwerk oder das Starten vor Programmen. Einen guten Überblick bieten folgende Development Tutorials in der KDE Techbase:</p>
<ul>
<li><a href="http://techbase.kde.org/index.php?title=Development/Tutorials/Plasma/JavaScript/API">http://techbase.kde.org/index.php?title=Development/Tutorials/Plasma/JavaScript/API</a></li>
<li><a href="http://techbase.kde.org/Development/Tutorials/Plasma/JavaScript/DataEngine">http://techbase.kde.org/Development/Tutorials/Plasma/JavaScript/DataEngine</a></li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=b37b657a-4207-4b1c-8ac0-cc950dc25842" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/07/kde-plasmoiden-mit-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT SS2010 &#8211; Prüfungsplan</title>
		<link>http://www.schloenvoigt.de/2010/07/swt-ss2010-prufungsplan/</link>
		<comments>http://www.schloenvoigt.de/2010/07/swt-ss2010-prufungsplan/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 14:42:56 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/07/swt-ss2010-prufungsplan/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=265</guid>
		<description><![CDATA[Hallo zusammen, hier noch einmal der Prüfungsplan: Uhrzeit Name 14:05 Mathias Hodler 14:30 Andreas Knöpfle 14:55 Tobias Schmid 15:20 Norbert Stroh 15:45 Rainer Schlönvoigt 16:10 Markus Grandpré 16:35 Matthias Hillert 17:00 Pascal Laube 17:25 Falko Burghausen Den Raum werde ich hier veröffentlichen, sobald er mir bekannt ist. UPDATE: Die Prüfung findet im Raum F109 statt. [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo zusammen, hier noch einmal der Prüfungsplan:</p>
<table>
<tbody>
<tr>
<th>Uhrzeit</th>
<th>Name</th>
</tr>
<tr>
<td>14:05</td>
<td>Mathias Hodler</td>
</tr>
<tr>
<td>14:30</td>
<td>Andreas Knöpfle</td>
</tr>
<tr>
<td>14:55</td>
<td>Tobias Schmid</td>
</tr>
<tr>
<td>15:20</td>
<td>Norbert Stroh</td>
</tr>
<tr>
<td>15:45</td>
<td>Rainer Schlönvoigt</td>
</tr>
<tr>
<td>16:10</td>
<td>Markus Grandpré</td>
</tr>
<tr>
<td>16:35</td>
<td>Matthias Hillert</td>
</tr>
<tr>
<td>17:00</td>
<td>Pascal Laube</td>
</tr>
<tr>
<td>17:25</td>
<td>Falko Burghausen</td>
</tr>
</tbody>
</table>
<p>Den Raum werde ich hier veröffentlichen, sobald er mir bekannt ist.</p>
<h2>UPDATE:</h2>
<p>Die Prüfung findet im Raum F109 statt. Als Beisitzer hat sich freundlicherweise Prof. Dr. Wilhelm Erben bereit erklärt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/07/swt-ss2010-prufungsplan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT SS2010 &#8211; OWL</title>
		<link>http://www.schloenvoigt.de/2010/07/swt-ss2010-owl/</link>
		<comments>http://www.schloenvoigt.de/2010/07/swt-ss2010-owl/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 14:32:07 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/07/swt-ss2010-owl/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>
		<category><![CDATA[OWL]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=260</guid>
		<description><![CDATA[SWT_SS10_07_OWL (PDF)]]></description>
			<content:encoded><![CDATA[<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=4672509&amp;doc=swtss1007owl-100703092836-phpapp01" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=4672509&amp;doc=swtss1007owl-100703092836-phpapp01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355" wmode="transparent"></embed></object></p>
<p><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/07/SWT_SS10_07_OWL.pdf">SWT_SS10_07_OWL (PDF)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/07/swt-ss2010-owl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT 2010 &#8211; Korrektur Übung 3</title>
		<link>http://www.schloenvoigt.de/2010/06/swt-2010-korrektur-ubung-3/</link>
		<comments>http://www.schloenvoigt.de/2010/06/swt-2010-korrektur-ubung-3/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 20:54:03 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/06/swt-2010-korrektur-ubung-3/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Übung]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=256</guid>
		<description><![CDATA[In das Datenmodell der Aufgabe 2 in Übung 3 (SPARQL) haben sich leider ein paar &#8220;Bugs&#8221; eingeschlichen. Das korrekte Datenmodell lautet: @prefix   ex: &#60;http://example.org/&#62; . @prefix   xsd: &#60;http://www.w3.org/2001/XMLSchema#&#62; . ex:Sonne  ex:radius   "1.392e6"^^xsd:double ; ex:satellit ex:Merkur, ex:Venus, ex:Erde, ex:Mars . ex:Merkur ex:radius   "2439.7"^^xsd:double . ex:Venus  ex:radius   "6051.9"^^xsd:double . ex:Erde   ex:radius   "6372.8"^^xsd:double ; ex:satellit ex:Mond . ex:Mars   [...]]]></description>
			<content:encoded><![CDATA[<p>In das Datenmodell der Aufgabe 2 in Übung 3 (<a class="zem_slink" title="SPARQL" rel="wikipedia" href="http://en.wikipedia.org/wiki/SPARQL">SPARQL</a>) haben sich leider ein paar &#8220;Bugs&#8221; eingeschlichen. Das korrekte Datenmodell lautet:</p>
<pre>@prefix   ex: &lt;http://example.org/&gt; .
@prefix   xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt; .
ex:Sonne  ex:radius   "1.392e6"^^xsd:double ;
 ex:satellit ex:Merkur,
 ex:Venus,
 ex:Erde,
 ex:Mars .
ex:Merkur ex:radius   "2439.7"^^xsd:double .
ex:Venus  ex:radius   "6051.9"^^xsd:double .
ex:Erde   ex:radius   "6372.8"^^xsd:double ;
 ex:satellit ex:Mond .
ex:Mars   ex:radius   "3402.5"^^xsd:double ;
 ex:satellit ex:Phobos, ex:Deimos .
ex:Mond   ex:name     "Mond"@de, "Moon"@en ;
 ex:radius   "1737.1"^^xsd:double .
ex:Phobos ex:name     "Phobos" .
ex:Deimos ex:name     "Deimos" .
</pre>
<p>Es ist also der Prefix für xsd hinzugekommen und die Literalwerte mit Sprachangabe müssen selbstverständlich die Form &#8220;Wert&#8221;@Sprachkürzel an Stelle von &#8220;Wert@Sprachkürzel&#8221; besitzen. Vielen Dank an Markus für die Hinweise!</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=38395fba-f5ae-4f67-8bbb-c7df920a8d80" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/06/swt-2010-korrektur-ubung-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT 2010 &#8211; Lösung Übung 2</title>
		<link>http://www.schloenvoigt.de/2010/06/swt-2010-losung-ubung-2/</link>
		<comments>http://www.schloenvoigt.de/2010/06/swt-2010-losung-ubung-2/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 20:49:48 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/06/swt-2010-losung-ubung-2/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>
		<category><![CDATA[Java (programming language)]]></category>
		<category><![CDATA[Jena]]></category>
		<category><![CDATA[Resource Description Framework]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=249</guid>
		<description><![CDATA[Hallo zusammen, Markus Grandpré hat die Übung 2 sehr schön ausgearbeitet und den Lösungsweg dazu recht ausführlich beschrieben. Dabei werden einige Dinge, denke ich, wesentlich verständlicher und es treten Erkenntnisse ans Licht die man sonst so vielleicht nicht gesehen hätte. Ausarbeitung der Übung 2 von Markus Grandpré (PDF) Java Source von Markus Grandpré zur Übung [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo zusammen,</p>
<p>Markus Grandpré hat die Übung 2 sehr schön ausgearbeitet und den Lösungsweg dazu recht ausführlich beschrieben. Dabei werden einige Dinge, denke ich, wesentlich verständlicher und es treten Erkenntnisse ans Licht die man sonst so vielleicht nicht gesehen hätte.</p>
<ul>
<li><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/06/semweb_uebung02_grandpre.pdf">Ausarbeitung der Übung 2 von Markus Grandpré (PDF)</a></li>
<li><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/06/semweb_uebung02_grandpre_java.zip">Java Source von Markus Grandpré zur Übung 2 (ZIP)</a></li>
</ul>
<p>In  der Ausarbeitung auf Seite 6 werden die wichtigsten Schnittstellen von Jena beschrieben. Ich habe dies hier nochmal in einem Diagramm zusammengefasst:</p>
<div id="attachment_252" class="wp-caption aligncenter" style="width: 598px"><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/06/JenaRDFSInterfaces.png"><img class="size-full wp-image-252" title="Jena RDF(S) Interfaces" src="http://www.schloenvoigt.de/wp-content/uploads/2010/06/JenaRDFSInterfaces.png" alt="Jena RDF(S) Interfaces" width="588" height="426" /></a><p class="wp-caption-text">Jena RDF(S) Interfaces</p></div>
<p>Man sieht hier sehr schön, das man in Jena mit RDFNode jedes RDF Element bezeichnen kann. RDFNodes teilen sich in Resource (Objektwerte/Ressourcen) und Literal(Datenwerte) auf. Auch Resource kann man noch weiter unterteilen.</p>
<p>Wenn wir uns die erlaubten Werte für die einzelnen Teile der Triple aus dem RDF-Kapitel noch mal in Erinnerung rufen so erhalten wir folgende Zuordnung</p>
<table>
<tbody>
<tr>
<th>Stelle</th>
<th>Erlaubte Werte</th>
<th>Passendes Jena Interface</th>
</tr>
<tr>
<td>Subjekt</td>
<td><a class="zem_slink" title="Uniform Resource Identifier" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a> oder Blank Node</td>
<td>Resource</td>
</tr>
<tr>
<td>Prädikat</td>
<td>URI</td>
<td>Property (ist etwas spezieller als Resource)</td>
</tr>
<tr>
<td>Objekt</td>
<td>URI, Blank Node, Literal</td>
<td>RDFNode</td>
</tr>
</tbody>
</table>
<p>Mit diesen Interfaces sind dann auch die jeweiligen Teile der Statement Objekte die z.B. ein StmtIterator zurückliefert getypt.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=e5b649be-44b3-470c-81b3-7a28cfe1fd4b" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/06/swt-2010-losung-ubung-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT 2010 &#8211; HEUTE KEINE VERANSTALTUNG!</title>
		<link>http://www.schloenvoigt.de/2010/06/swt-2010-heute-keine-veranstaltung/</link>
		<comments>http://www.schloenvoigt.de/2010/06/swt-2010-heute-keine-veranstaltung/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 11:41:07 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/06/swt-2010-heute-keine-veranstaltung/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=247</guid>
		<description><![CDATA[Hallo zusammen, aufgrund von Sonderveranstaltungen der Fachschaft Informatik findet die Veranstaltung Semantic Web Technologien am heutigen Montag, 14. Juni 2010, nicht statt! Wir werden nächste Woche (21.Juni 2010) einen möglichen Ausweichtermin besprechen. Bitte teilt diese Information auch den anderen Kommilitonen mit! Mit besten Grüßen, Steffen Schlönvoigt]]></description>
			<content:encoded><![CDATA[<p>Hallo zusammen,</p>
<p>aufgrund von Sonderveranstaltungen der Fachschaft Informatik findet die Veranstaltung <em>Semantic Web Technologien </em>am heutigen Montag, 14. Juni 2010, <strong><span style="color: #ff0000;">nicht statt!</span></strong></p>
<p>Wir werden nächste Woche (21.Juni 2010) einen möglichen Ausweichtermin besprechen.</p>
<p>Bitte teilt diese Information auch den anderen Kommilitonen mit!</p>
<p>Mit besten Grüßen,<br />
Steffen Schlönvoigt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/06/swt-2010-heute-keine-veranstaltung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hagwaar:  Vuvuzela-Filter</title>
		<link>http://www.schloenvoigt.de/2010/06/hagwaarvuvuzela-filter/</link>
		<comments>http://www.schloenvoigt.de/2010/06/hagwaarvuvuzela-filter/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 11:27:57 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/06/hagwaarvuvuzela-filter/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[tumblr]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Vuvuzela]]></category>

		<guid isPermaLink="false">http://derseso.tumblr.com/post/697204558</guid>
		<description><![CDATA[hagwaar:

Vuvuzela-Filter
]]></description>
			<content:encoded><![CDATA[<img src="http://27.media.tumblr.com/tumblr_l401pnjYJP1qz824ho1_400.jpg" alt="" />

<a href="http://hagwaar.ch/post/697055764/vuvuzela-filter">hagwaar</a>:
<blockquote><a href="http://www.surfpoeten.de/tube/vuvuzela_filter">Vuvuzela-Filter</a></blockquote>]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/06/hagwaarvuvuzela-filter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT 2010 &#8211; Übung 3 &#8211; SPARQL</title>
		<link>http://www.schloenvoigt.de/2010/06/swt-2010-ubung-3-sparql/</link>
		<comments>http://www.schloenvoigt.de/2010/06/swt-2010-ubung-3-sparql/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 07:32:56 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/06/swt-2010-ubung-3-sparql/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>
		<category><![CDATA[DBpedia]]></category>
		<category><![CDATA[Linked Data]]></category>
		<category><![CDATA[Resource Description Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Übung]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=243</guid>
		<description><![CDATA[Image via Wikipedia Nachdem wir uns jetzt in den letzten Vorlesungen mit SPARQL beschäftigt haben, ist es nun an der Zeit, dieses Wissen einmal selbst auszuprobieren. Dies soll nun in Übung 3 geschehen: Uebung 3 &#8211; SPARQL (PDF) Wir beschäftigen uns in dieser Übung mit der DBpedia (http://www.dbpedia.org) die ein wichtiger Bestandteil der Linked-Open-Data Initiative [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 273px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/File:DBpediaLogo.svg"><img title="Logo of the DBpedia project" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/73/DBpediaLogo.svg/263px-DBpediaLogo.svg.png" alt="Logo of the DBpedia project" width="263" height="162" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/File:DBpediaLogo.svg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>Nachdem wir uns jetzt in den letzten Vorlesungen mit <a class="zem_slink" title="SPARQL" rel="wikipedia" href="http://en.wikipedia.org/wiki/SPARQL">SPARQL</a> beschäftigt haben, ist es nun an der Zeit, dieses Wissen einmal selbst auszuprobieren. Dies soll nun in Übung 3 geschehen:</p>
<p><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/06/Uebung-3-SPARQL.pdf">Uebung 3 &#8211; SPARQL (PDF)</a></p>
<p>Wir beschäftigen uns in dieser Übung mit der <a class="zem_slink" title="DBpedia" rel="homepage" href="http://dbpedia.org/About">DBpedia</a> (<a href="http://www.dbpedia.org">http://www.dbpedia.org</a>) die ein wichtiger Bestandteil der <a class="zem_slink" title="Linked Data" rel="homepage" href="http://linkeddata.org/">Linked-Open-Data</a> Initiative darstellt.</p>
<p>Das DBpedia Projekt extrahiert die strukturierten Daten die in der <a class="zem_slink" title="Wikipedia" rel="homepage" href="http://wikipedia.org/">Wikipedia</a> in den Informationskästen vorhanden sind und stellt sie für das <a class="zem_slink" title="Semantic Web" rel="homepage" href="http://semanticweb.org">Semantic Web</a> im <a class="zem_slink" title="Resource Description Framework" rel="wikipedia" href="http://en.wikipedia.org/wiki/Resource_Description_Framework">RDF</a>-Format zur Verfügung. Desweiteren bietet die DBpedia diverse Schnittstellen über die man die in ihr enthaltenen Daten mit Hilfe von SPARQL abfragen kann. Genau dies wollen wir in dieser Übung nun tun.</p>
<p>Hilfreiche Links:</p>
<ul>
<li>DBpedia
<ul>
<li><a href="http://dbpedia.org/sparql">SPARQL Endpunkt</a></li>
<li><a href="http://dbpedia.org/isparql/">SPARQL Endpunkt &#8211; Rich Web-based Interface</a></li>
<li><a href="http://dbpedia.org/snorql/">Vereinfachter SPARQL &#8211; Explorer (SNORQL)</a></li>
</ul>
</li>
<li>W3C
<ul>
<li><a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL Query Language Recommendation</a></li>
</ul>
</li>
<li>SPARQL Test Tool
<ul>
<li><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/01/SPARQLTestTool.src.zip">SPARQL Test Tool (Source)</a></li>
<li><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/01/SPARQLTestTool.jar">SPARQL Test Tool (Executable JAR File, including Jena)</a></li>
</ul>
</li>
</ul>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Enhanced by Zemanta" href="http://www.zemanta.com/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/zemified_e.png?x-id=b433f1c4-579c-43c4-966a-ae3775cbb038" alt="Enhanced by Zemanta" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/06/swt-2010-ubung-3-sparql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT SS10 &#8211; SPARQL</title>
		<link>http://www.schloenvoigt.de/2010/06/swt-ss10-sparql/</link>
		<comments>http://www.schloenvoigt.de/2010/06/swt-ss10-sparql/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 07:13:27 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/06/swt-ss10-sparql/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[SPARQL]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=239</guid>
		<description><![CDATA[SPARQL (PDF)]]></description>
			<content:encoded><![CDATA[<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=4491721&amp;doc=swtss1006sparql-100614020655-phpapp02" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=4491721&amp;doc=swtss1006sparql-100614020655-phpapp02" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355" wmode="transparent"></embed></object></p>
<p><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/06/SWT_SS10_06_SPARQL.pdf">SPARQL (PDF)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/06/swt-ss10-sparql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWT SS2010 &#8211; Übung 2 &#8211; FOAF und Jena</title>
		<link>http://www.schloenvoigt.de/2010/05/swt-ss2010-ubung-2-foaf-und-jena/</link>
		<comments>http://www.schloenvoigt.de/2010/05/swt-ss2010-ubung-2-foaf-und-jena/#comments</comments>
		<pubDate>Mon, 10 May 2010 09:26:12 +0000</pubDate>
		<dc:creator><span property="dc:creator" resource="http://www.schloenvoigt.de/2010/05/swt-ss2010-ubung-2-foaf-und-jena/">Steffen Schloenvoigt</span></dc:creator>
				<category><![CDATA[Lehrveranstaltung Semantic Web Technologien]]></category>
		<category><![CDATA[FOAF]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Jean]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[Resource Description Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://www.schloenvoigt.de/?p=228</guid>
		<description><![CDATA[Image via Wikipedia In der heutigen Übung geht es vor allem darum, dass sie mit dem Jena Framework vertraut werden. Anhand von Friend-Of-A-Friend (FOAF) Profilen soll die Funktionsweise der Bibliothek gelernt werden. FOAF ist ein Internet-Standard, um Menschen und ihre Beziehungen untereinander in einer maschinen-verständlichen Form zu beschreiben. Ziel der Übung soll es sein, einen [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img">
<div>
<dl class="wp-caption alignleft">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:FoafLogo.svg"><img title="An updated SVG of the FOAF logo. I created the..." src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/FoafLogo.svg/300px-FoafLogo.svg.png" alt="An updated SVG of the FOAF logo. I created the..." /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution">Image via <a href="http://commons.wikipedia.org/wiki/Image:FoafLogo.svg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>In der heutigen Übung geht es vor allem darum, dass sie mit dem <a class="zem_slink freebase/en/jena_framework" title="Jena (framework)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Jena_%28framework%29">Jena Framework</a> vertraut werden. Anhand von Friend-Of-A-Friend (<a class="zem_slink freebase/en/foaf" title="FOAF (software)" rel="wikipedia" href="http://en.wikipedia.org/wiki/FOAF_%28software%29">FOAF</a>) Profilen soll die Funktionsweise der Bibliothek gelernt werden. FOAF ist ein <a class="zem_slink freebase/guid/9202a8c04000641f800000000001de59" title="Internet" rel="wikipedia" href="http://en.wikipedia.org/wiki/Internet">Internet</a>-Standard, um Menschen und  ihre Beziehungen untereinander in einer <em>maschinen-verständlichen</em> Form zu beschreiben.</p>
<p>Ziel der Übung soll es sein, einen Crawler zu schreiben, der sich von einem Startpunkt aus durchs Netz angelt und weitere Informationen findet.</p>
<p><a href="http://www.schloenvoigt.de/wp-content/uploads/2010/05/Uebung-2-FOAF.pdf">Uebung 2 &#8211; FOAF (PDF)</a></p>
<p>Interessante Links:</p>
<ul>
<li><a href="http://foaf.me/" target="_blank">http://foaf.me/</a></li>
<li><a href="http://www.ldodds.com/foaf/foaf-a-matic.de.html">FOAF-a-matic</a></li>
<li><a href="http://xmlns.com/foaf/spec/">FOAF Spezifikation</a></li>
<li><a href="http://www.w3.org/People/Berners-Lee/card">FOAF Profil von Sir Tim Berners-Lee</a></li>
<li><a href="http://was-ist-foaf.de/">Was-ist-FOAF</a></li>
<li><a href="http://jena.sourceforge.net/tutorial/RDF_API/">Jena RDF Tutorial</a></li>
<li><a href="http://www.ibm.com/developerworks/xml/library/j-jena/">Introduction to Jena by IBM</a></li>
</ul>
<p>Java Code um einen InputStream von einer Remote-URL zu bekommen:</p>
<pre>URL location = new URL( "http://www.w3.org/People/Berners-Lee/card" );
 InputStream in = location.openStream();</pre>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/236602b9-c0f9-4f5b-aca0-060fa59a0547/"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=236602b9-c0f9-4f5b-aca0-060fa59a0547" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.schloenvoigt.de/2010/05/swt-ss2010-ubung-2-foaf-und-jena/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
