<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Szkoła Web 3.0 &#187; jena</title>
	<atom:link href="http://www.semanticschool.com/tag/jena/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.semanticschool.com</link>
	<description>Dowiedz się czym jest Sieć Semantyczna</description>
	<lastBuildDate>Mon, 06 Jun 2011 17:37:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<copyright>Copyright &#xA9; Szkoła Web 3.0 2010 </copyright>
	<managingEditor>info@semanticschool.com (Szkoła Web 3.0)</managingEditor>
	<webMaster>info@semanticschool.com (Szkoła Web 3.0)</webMaster>
	<image>
		<url>http://www.semanticschool.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Szkoła Web 3.0</title>
		<link>http://www.semanticschool.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>The School of Semantics</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Szkoła Web 3.0</itunes:author>
	<itunes:owner>
		<itunes:name>Szkoła Web 3.0</itunes:name>
		<itunes:email>info@semanticschool.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.semanticschool.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Nasz pierwszy semantyczny program z biblioteką Jena</title>
		<link>http://www.semanticschool.com/2009/11/jena-pierwszy-program/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/11/jena-pierwszy-program/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:48:00 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jdk]]></category>
		<category><![CDATA[jena]]></category>
		<category><![CDATA[odpowiedzi]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[przykład]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[rdf schema]]></category>
		<category><![CDATA[wnioskowanie]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=408</guid>
		<description><![CDATA[Wczoraj otrzymałem ciekawy komentarz/zapytanie do artykułu o wnioskowaniu z RDF Schema. Ponieważ przykład daje więcej niż tysiące opisów i wyjaśnień postanowiłem pokazać jak łatwo można wykonać wnioskowanie z RDF Schema korzystając z biblioteki Jena, o której pisałem niedawno. Jena jest biblioteką dostarczającą API w języku Java. Zacznijmy więc od zebrania potrzebnych narzędzi: kompilator i maszyna [...]]]></description>
			<content:encoded><![CDATA[<p>Wczoraj otrzymałem ciekawy <a href="http://www.semanticschool.com/2009/10/rdf-schema-wnioskowanie/#comment-54#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">komentarz/zapytanie</a> do artykułu o <a href="http://www.semanticschool.com/2009/10/rdf-schema-wnioskowanie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">wnioskowaniu z RDF Schema</a>. Ponieważ przykład daje więcej niż tysiące opisów i wyjaśnień postanowiłem pokazać jak łatwo można wykonać wnioskowanie z RDF Schema korzystając z biblioteki <a href="http://www.openjena.org/" target="_blank">Jena</a>, o której <a href="http://www.semanticschool.com/2009/10/hp-jena/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">pisałem niedawno</a>.</p>
<p><span id="more-408"></span>Jena jest biblioteką dostarczającą API w języku Java. Zacznijmy więc od zebrania potrzebnych narzędzi:</p>
<ul>
<li><a href="http://java.sun.com/" target="_blank">kompilator i maszyna wirtualna Java</a>, najlepiej w wersji JDK 5.0</li>
<li>środowisko programistyczne, np.: <a href="http://www.eclipse.org/" target="_blank">Eclipse</a></li>
<li>biblioteka Jena i biblioteki zależne [<a href="http://sourceforge.net/projects/jena/files/Jena/" target="_blank">pobierz najnowszą wersję tutaj</a>]</li>
</ul>
<p>W Eclipse rozpoczynamy nowy projekt typu Java, i przegrywamy i dodajemy do projektu JARy dostarczone z biblioteką Jena:</p>
<p><img class="aligncenter size-full wp-image-410" title="Jena i biblioteki zależne" src="http://www.semanticschool.com/wp-content/uploads/2009/11/screenshot-1.jpg" alt="Jena i biblioteki zależne" width="542" height="299" /></p>
<p>Następnie tworzymy nową klasę i zaczynamy nasz pierwszy "semantyczny" program. Polecam specyfikację biblioteki Jena: <a href="http://www.openjena.org/javadoc/index.html" target="_blank">http://www.openjena.org/javadoc/index.html</a>.</p>
<p>Zdefiniujmy dwie przestrzenie nazw, jedną na elementy ontologii w RDF Schema, a drugą na zasoby:</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #2a00ff;"><span style="color: #000000;"><span style="white-space: pre;"> </span></span><span style="color: #7f0055;">static</span><span style="color: #000000;"> </span><span style="color: #7f0055;">final</span><span style="color: #000000;"> String </span><span style="color: #0000c0;">NS_ONT</span><span style="color: #000000;"> = </span>"http://www.semanticschool.com/rdfs#"<span style="color: #000000;">;</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #2a00ff;"><span style="color: #000000;"><span style="white-space: pre;"> </span></span><span style="color: #7f0055;">static</span><span style="color: #000000;"> </span><span style="color: #7f0055;">final</span><span style="color: #000000;"> String </span><span style="color: #0000c0;">NS_DATA</span><span style="color: #000000;"> = </span>"http://www.semanticschool.com/data#"<span style="color: #000000;">;</span></p>
</div>
<p>Następnie tworzymy nowy model, czyli obiekt który będzie reprezentował tworzony przez nas graf RDF; pamiętajmy że RDF Schema jest również zapisana w postaci grafu RDF.</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;"><span style="white-space: pre;"> </span>Model model = ModelFactory.createDefaultModel();</p>
</div>
<p>W następnym kroku dodajemy do modelu definicje naszych klas i właściwości.</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f7f5f;">//[semschool:Samochod] [rdf:type] [rdfs:Class].</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Resource cSamochod = model.createResource(<span style="color: #0000c0;">NS_ONT</span>+<span style="color: #2a00ff;">"Samochod"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">cSamochod.addProperty(RDF.<span style="color: #0000c0;">type</span>, RDFS.<span style="color: #0000c0;">Class</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px;"><span style="white-space: pre;"> </span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f7f5f;">//[semschool:Czlowiek] [rdf:type] [rdfs:Class].</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Resource cCzlowiek = model.createResource(<span style="color: #0000c0;">NS_ONT</span>+<span style="color: #2a00ff;">"Czlowiek"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">cCzlowiek.addProperty(RDF.<span style="color: #0000c0;">type</span>, RDFS.<span style="color: #0000c0;">Class</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px;"><span style="white-space: pre;"> </span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3f7f5f;">//[semschool:kierowac] [rdf:type] [rdf:Property].</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Property pKierowac = model.createProperty(<span style="color: #0000c0;">NS_ONT</span>, <span style="color: #2a00ff;">"prowadzi"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">pKierowac.addProperty(RDF.<span style="color: #0000c0;">type</span>, RDF.<span style="color: #0000c0;">Property</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">pKierowac.addProperty(RDFS.<span style="color: #0000c0;">domain</span>, cCzlowiek);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">pKierowac.addProperty(RDFS.<span style="color: #0000c0;">range</span>, cSamochod);</p>
</div>
<p>W tym momencie możemy wypisać nasz graf RDF:</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">model.write(System.<span style="color: #0000c0;">out</span>, <span style="color: #2a00ff;">"N-TRIPLE"</span>);</p>
</div>
<p>otrzymamy w następujący wynik (z dokładnością do kolejności trójek):</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.w3.org/2000/01/rdf-schema#range&gt; &lt;http://www.semanticschool.com/rdfs#Samochod&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.w3.org/2000/01/rdf-schema#domain&gt; &lt;http://www.semanticschool.com/rdfs#Czlowiek&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#Property&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#Czlowiek&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2000/01/rdf-schema#Class&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#Samochod&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2000/01/rdf-schema#Class&gt; .</p>
</div>
<p>W kolejnym kroku stwórzmy nowy model bazujący na poprzednim. Model ten nie będzie wykorzystywał wnioskowania bazującego na RDF Schema (tzw. <a href="http://jena.sourceforge.net/inference/" target="_blank">inferencing</a>)</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Model model2 = ModelFactory.createDefaultModel();</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">model2.add(model);</p>
</div>
<p>A następnie dodajmy do niego dwa zasoby: <code>[Jan]</code> i <code>[Mazda]</code>, oraz stwórzmy zdanie <code>[Jan] [kieruje] [Mazdę]</code>.</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Resource rJan = model2.createResource(<span style="color: #0000c0;">NS_DATA</span>+<span style="color: #2a00ff;">"Jan"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Resource rMazda = model2.createResource(<span style="color: #0000c0;">NS_DATA</span>+<span style="color: #2a00ff;">"Mazda"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">rJan.addProperty(pKierowac, rMazda);</p>
</div>
<p>I ponownie jak poprzednio wypiszmy nasz obecny graf:</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">model2.write(System.<span style="color: #0000c0;">out</span>, <span style="color: #2a00ff;">"N-TRIPLE"</span>);</p>
</div>
<p>Jak widać poniżej, w wyniku doszło tylko jedno dodatkowe zdanie RDF:</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#Property&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.w3.org/2000/01/rdf-schema#domain&gt; &lt;http://www.semanticschool.com/rdfs#Czlowiek&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.w3.org/2000/01/rdf-schema#range&gt; &lt;http://www.semanticschool.com/rdfs#Samochod&gt; .</p>
<p style="color: red; margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/data#Jan&gt; &lt;http://www.semanticschool.com/rdfs#prowadzi&gt; &lt;http://www.semanticschool.com/data#Mazda&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#Samochod&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2000/01/rdf-schema#Class&gt; .</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">&lt;http://www.semanticschool.com/rdfs#Czlowiek&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2000/01/rdf-schema#Class&gt; .</p>
</div>
<p>A teraz czas na wnioskowanie w akcji. Dzięki bibliotece Jena uruchomienie wnioskowania jest bardzo proste.</p>
<p>Musimy najpierw stworzyć nowy model bazujący na poprzednim. Tym razem, nasz model będzie dedykowany dla wnioskowania z RDF Schema.</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">InfModel infmodel = ModelFactory.createRDFSModel(model);</p>
</div>
<p>Podobnie jak poprzednio dodajemy nasze przykładowe zdanie:</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Resource rJan = infmodel.createResource(<span style="color: #0000c0;">NS_DATA</span>+<span style="color: #2a00ff;">"Jan"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">Resource rMazda = infmodel.createResource(<span style="color: #0000c0;">NS_DATA</span>+<span style="color: #2a00ff;">"Mazda"</span>);</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; min-height: 15.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">rJan.addProperty(pKierowac, rMazda);</p>
</div>
<p>Ponieważ cały model infmodel zawiera również trójki związane ze specyfikacją języka ontologii RDF Schema, więc odpytajmy nasz model tylko o typy zasobów <code>[Jan]</code> i <code>[Mazda]</code>.</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">System.<span style="color: #0000c0;">out</span>.println(rJan.getProperty(RDF.<span style="color: #0000c0;">type</span>));</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">System.<span style="color: #0000c0;">out</span>.println(rMazda.getProperty(RDF.<span style="color: #0000c0;">type</span>));</p>
</div>
<p>W wyniku otrzymamy:</p>
<div class="java">
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">[http://www.semanticschool.com/data#Jan, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://www.semanticschool.com/rdfs#Czlowiek]</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco;">[http://www.semanticschool.com/data#Mazda, http://www.w3.org/1999/02/22-rdf-syntax-ns#type, http://www.semanticschool.com/rdfs#Samochod]</p>
</div>
<p>Co tym samym kończy nasz dowód: maszyna wnioskująca poprawnie określiła typ zasobów <code>[Jan]</code> i <code>[Mazda]</code>.</p>
<p>Pełen kod projektu razem z biblioteką Jena, znajdziecie [<a href="http://www.semanticschool.com/wp-content/uploads/2009/11/JenaReasoningExample.zip#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed" target="_blank">tutaj</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/11/jena-pierwszy-program/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HP uwalnia bibliotekę Jena</title>
		<link>http://www.semanticschool.com/2009/10/hp-jena/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/10/hp-jena/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 10:58:07 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Wiadomości]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[biblioteka]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[graf]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jena]]></category>
		<category><![CDATA[mapowanie]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[quady]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[rdf schema]]></category>
		<category><![CDATA[sparql]]></category>
		<category><![CDATA[wnioskowanie]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=337</guid>
		<description><![CDATA[Jednym z założeń Szkoły Web 3.0 jest nie tylko systematyczne przedstawianie założeń, technologii i rozwiązań związanych z Siecią Semantyczną i Web 3.0; staramy się również informować na bieżąco o tym co się dzieje w "świecie" Web 3.0. Chociaż do tej pory nie opisywaliśmy  jeszcze biblioteki Jena udostępniającej za pomocą API Java dostęp do grafu RDF [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.openjena.org/" target="_blank"><img class="c1_nofloat alignright" src="http://www.hpl.hp.com/semweb/images/jena-logo-small.png" alt="Jena framework" width="105" height="62" /></a>Jednym z założeń Szkoły Web 3.0 jest nie tylko systematyczne przedstawianie założeń, technologii i rozwiązań związanych z Siecią Semantyczną i Web 3.0; staramy się również informować na bieżąco o tym co się dzieje w "świecie" Web 3.0.</p>
<p><a href="http://www.hpl.hp.com/" target="_blank"><img class="alignleft" style="border: 0px initial initial; margin-right: 1em;" src="http://welcome.hp-ww.com/img/hpc60_topnav_hp_logo.gif" border="0" alt="hp.com home" width="63" height="53" /></a>Chociaż do tej pory nie opisywaliśmy  jeszcze biblioteki <a href="http://www.openjena.org/" target="_blank">Jena</a> udostępniającej za pomocą API Java dostęp do <a href="http://www.semanticschool.com/2009/09/rdf-wstep/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">grafu RDF</a> i <a href="http://www.semanticschool.com/2009/10/rdf-schema-wnioskowanie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">mechanizmów wnioskowania</a>, postanowiliśmy <a href="http://www.hpl.hp.com/semweb/" target="_blank">poinformować o zmianach</a> jakie zapowiedziała firma <a href="http://www.hp.com/" target="_blank">HP</a>, w której ośrodku badawczym powstała ta biblioteka.</p>
<p><span id="more-337"></span>Zgodnie z opublikowaną niedawno <a href="http://www.hpl.hp.com/semweb/" target="_blank">notką prasową</a>, firma HP postanowiła zakończyć działanie ośrodka badawczego "<a href="http://www.hpl.hp.com/semweb/" target="_blank">Semantic Web Research</a>". Ciężko w tej chwili dociekać powodów, bo ten ośrodek istniał już bardzo wielu lat; być może, jest to związane ze znaczącym upowszechnieniem się technologii semantycznych, i (co należy zauważyć) brakiem znaczących osiągnięć tego ośrodka w ostatnim czasie. Najważniejszą jednak informacją jest ta, że biblioteka Jena (oraz inne rozwiązania) pozostaną dostępne na licencji open source (<a href="http://www.opensource.org/licenses/bsd-license.php" target="_blank">BSD</a>), zmieni się jedynie adres strony domowej biblioteki na <a href="http://www.openjena.org/" target="_blank">http://www.openjena.org/</a>. Najprawdopodobniej powstanie również firma, niezależna od HP, która będzie dostarczała komercyjnego wsparcia oraz nadzorowała dalszy rozwój tej biblioteki.</p>
<p>Dla osób które do tej pory nie słyszały o bibliotece Jena: jest ona jedną z najstarszych, i (przynajmniej do niedawna pozostawała) jedną z najbardziej popularnych bibliotek udostępniających za pomocą Java API dostępu do grafu RDF. Jej największą zaletą jest to, że do informacji zapisanych w grafie RDF można uzyskać dostęp za pomocą API podobnego do <a href="http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html" target="_blank">Java DOM</a> znanego z przetwarzania XMLa. Poza podstawowymi operacjami zapisu i odczytu informacji z grafu, Jena oferuje również:</p>
<ul>
<li>możliwość odpytywania grafu RDF za pomocą zapytań w języku <a href="http://www.w3.org/TR/rdf-sparql-query/" target="_blank">SPARQL</a>,</li>
<li>połączenie z mechanizmami wnioskowania na przechowywanym grafie RDF i <a href="http://www.semanticschool.com/2009/10/owl-wprowadzenie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">ontologiach</a></li>
<li>wsparcie dla tzw. quadów, czyli zdań RDF składających się z czterech elementów, gdzie dodatkowym elementem jest wskazanie na kontekst (napiszemy o nich niedługo),</li>
<li>możliwość wygenerowania hierarchii klas Java odpowiadających zadanej ontologii (w <a href="http://www.semanticschool.com/2009/10/rdf-schema/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">RDF Schema</a> lub <a href="http://www.semanticschool.com/2009/10/owl-wprowadzenie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">OWL</a>); warto jednak pamiętać w tym miejscu, że takie mapowanie nie gwarantuje nam pozbycia się <a href="http://www.semanticschool.com/2009/10/rdf-schema-dziedziczeni/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">problemów z przejściem pomiędzy programowaniem obiektowym a logiką opisową</a>, o czym pisaliśmy niedawno.</li>
</ul>
<p>Już niedługo pokażemy na prostych przykładach jak korzystając z biblioteki Jena napisać pierwszą aplikację operującą na grafie RDF.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/10/hp-jena/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.107 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-09 06:16:35 -->
<!-- Compression = gzip -->
