<?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; uri</title>
	<atom:link href="http://www.semanticschool.com/tag/uri/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>Publikujemy w Web 3.0 &#8211; część 4: Semantyczny agent rozmawia z naszym serwisem</title>
		<link>http://www.semanticschool.com/2009/12/schemat-uri-303/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/12/schemat-uri-303/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 08:00:03 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[303]]></category>
		<category><![CDATA[cool uri]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[przekierowanie]]></category>
		<category><![CDATA[uri]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=549</guid>
		<description><![CDATA[W poprzednich artykułach cyklu "Publikujemy w Web 3.0" dowiedzieliśmy się w jaki sposób sprawić, aby nasz serwis dostarczał semantyki. W ostatnim odcinku rozważaliśmy potrzebę tworzenia URI tak aby nigdy nie musiały ulegać zmianie. W tym odcinku opiszemy kiedy stosować przekierowania protokołu HTTP czy też adresy URL z tzw. hashtagami. Jeżeli chcemy zdefiniować schemat URI dla [...]]]></description>
			<content:encoded><![CDATA[<p>W poprzednich artykułach cyklu "Publikujemy w Web 3.0" dowiedzieliśmy się w jaki sposób sprawić, aby nasz serwis dostarczał semantyki. W ostatnim odcinku rozważaliśmy potrzebę tworzenia URI tak aby nigdy nie musiały ulegać zmianie. W tym odcinku opiszemy kiedy stosować przekierowania protokołu HTTP czy też adresy URL z tzw. hashtagami.</p>
<p><span id="more-549"></span></p>
<p>Jeżeli chcemy zdefiniować schemat URI dla zasobów opisywanych w dokumentach RDF niezależnych od treści HTML (czyli <a href="http://www.semanticschool.com/2009/11/publikowanie-semantyki/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">nie osadzonych</a>), mamy do wyboru <a href="http://www.w3.org/TR/cooluris/" target="_blank">dwa rozwiązania</a>:</p>
<ul>
<li>schemat URI oparty na hash tagach,</li>
<li>schemat URI oparty na przekierowaniach HTTP 303.</li>
</ul>
<h2>Schemat URI oparty na hash tagach</h2>
<p>W pierwszym wypadku nasz serwis dostarcza pojedynczy dokument RDF, w którym poszczególne zasoby identyfikowane są za pomocą lokalnych nazw. Pełne URI zasobu składa się z URI dokumentu RDF i lokalnej nazwy zasobu.</p>
<p>Na przykład nasza firma może zebrać wszystkie informacje w jednym dokumencie RDF i opublikować go pod adresem <code>http://www.przyklad.pl/informacje</code>. Zasób RDF opisujący firmę może mieć lokalna nazwę <code>ofirmie</code>, skąd globalne URI będzie postaci <code>http://www.przyklad.pl/informacje#ofirmie</code>.</p>
<p>Korzystając ze schematów URI opartych na hash tagach możemy dostarczać zawartości w formacie rozpoznawalnym przez danego agenta. Poniższy rysunek pokazuje poszczególne etapy procesu. Agent semantyczny pytając o zasób o URI <code>http://www.przyklad.pl/informacje#ofirmie</code> korzystając z protokołu HTTP otrzymuje cały dokument <code>http://www.przyklad.pl/informacje</code> (hash tagi nie są przetwarzane w ramach protokołu HTTP). W przypadku agenta, który poprosi o dokument RDF (<code>application/rdf+xml</code>) nastąpi de facto przekazanie zawartości dokumentu <code>http://www.przyklad.pl/informacje.rdf</code>; zamiast przekazania bezpośrednio zawartości zasobu <code>http://www.przyklad.pl/informacje</code>. Podobnie w przypadku agenta proszącego o dokument HTML.</p>
<p style="text-align: center;"><img class="size-medium wp-image-615  aligncenter" title="Negocjacja zawartości dla schematu URI opartego na hash tagach" src="http://www.semanticschool.com/wp-content/uploads/2009/12/hashtag.png" alt="Negocjacja zawartości dla schematu URI opartego na hash tagach" width="540" height="250" /></p>
<h2>Schemat URI oparty na przekierowaniach HTTP 303</h2>
<p>W przypadku schematu URI opartego na przekierowaniach HTTP, każdy zasób dla którego dostarczony jest dokument RDF posiada globalne URI. W powyższym przykładzie, taki URI byłby następujący: <code>http://www.przyklad.pl/id/ofirmie</code>. W odpowiedzi na zapytanie agenta o zasób o podanym URI, serwer wysyła status odpowiedzi 303, wraz z nagłówkiem <code>Location</code> o docelowym dokumencie. W przypadku agenta semantycznego proszącego o dokument RDF, zostanie on przekierowany do dokumentu <code>http://www.przyklad.pl/doc/ofirmie.rdf</code></p>
<p style="text-align: center; ">
<p style="text-align: center;"><img class="aligncenter size-full wp-image-617" title="Schemat URI oparty na przekierowaniach 303" src="http://www.semanticschool.com/wp-content/uploads/2009/12/redirect3031.png" alt="Schemat URI oparty na przekierowaniach 303" width="544" height="250" /></p>
<h2>Który schemat wybrać ?</h2>
<p>Zaletą schematów opartych na hash tagach jest mniejsza ilość zapytań HTTP, które musi wykonać agent komunikujący się z naszym serwisem. Niewątpliwą jednak wadą jest konieczność pobrania całego dokumentu opisującego wszystkie zasoby; szczególnie w przypadku dużej liczby zasobów może to prowadzić do sporych opóźnień w komunikacji. Dlatego też schematy URI oparte na hash tagach doskonale nadają się do niewielkich zestawów zasobów, o których informacje zmieniają się rzadko; przykładem mogą być <a href="http://www.semanticschool.com/2009/10/ontologie-przyklady/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">lekkie ontologie</a>. Na zakończenie, warto zauważyć, że oba rozwiązania nie wykluczają się wzajemnie; jeżeli nasz system potrafi skorzystać z hybrytowego rozwiązania opartego na obu schematach, tak powinniśmy uczynić.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/12/schemat-uri-303/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Publikujemy w Web 3.0 &#8211; część 3: Niezmienne URI</title>
		<link>http://www.semanticschool.com/2009/11/niezmienne-uri/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/11/niezmienne-uri/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 10:40:40 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[organizacja]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[URN]]></category>
		<category><![CDATA[usługa]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=464</guid>
		<description><![CDATA[Dziś zaczniemy od pewnego eksperymentu. Wyobraźmy sobie, że wchodzimy do supermarketu, w którym bywamy co kilka dni, idziemy do stoiska z pieczywem, a tam ... buty. Idziemy do stoiska z mięsem a tam gry wideo, a na stoisku z warzywami - pieczywo. Chyba nikt nie będzie zadowolony z takiej sytuacji, prawda ? Nie pozostaje nam [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-535" title="Proper locations emerging" src="http://www.semanticschool.com/wp-content/uploads/2009/11/ist2_674922-compass-11-150x150.png" alt="Proper locations emerging" width="150" height="150" />Dziś zaczniemy od pewnego eksperymentu. Wyobraźmy sobie, że wchodzimy do supermarketu, w którym bywamy co kilka dni, idziemy do stoiska z pieczywem, a tam ... buty. Idziemy do stoiska z mięsem a tam gry wideo, a na stoisku z warzywami - pieczywo. Chyba nikt nie będzie zadowolony z takiej sytuacji, prawda ? Nie pozostaje nam nic innego jak tylko albo obejść cały supermarket albo zapytać sprzedawców, i na nowo "nauczyć się" co gdzie się teraz znajduje.</p>
<p>A teraz, załóżmy, że supermarket to nasz serwis internetowy, a my jesteśmy agentem semantycznym próbującym uzyskać dostęp do poprzednio zidentyfikowanego źródła informacji. W momencie kiedy nasze położenie dokumentów i usług zmienia się na naszym serwisie, nie agent semantyczny (i nie tylko) musi na nowo sporządzić sobie mapę serwisu (czyli zaindeksować go).</p>
<p>Jak możemy ustrzec siebie i nasz serwis przez niestabilnymi URLami, które będą się zmieniały ? Rozwiązaniem promowanym m.in. przez sir Tima Bernersa-Lee są tak zwane "<a href="http://www.w3.org/Provider/Style/URI" target="_blank">Cool URIs</a>" (czyli "odjazdowe" URI), które nie ulegają zmianie.</p>
<p><span id="more-464"></span></p>
<p>Według TBL, kluczową kwestią w projektowaniu schematów URI jest zapewnienie ich niezmienności w czasie. Dzięki temu dany zasób lub usługa będzie zawsze dostępna pod tym samym adresem. Tak na marginesie, to podobne podejście ma środowisko bibliotekarzy; nie ma się co dziwić, w końcu od wieków muszą odnajdywać książki w przepastnych bibliotekach.</p>
<p>Wielu z was zapewne stwierdzi, że niezmienne URI to ciekawa naukowa wizja, ale w rzeczywistości; wymienicie nawet kilka kontr-przykładów:</p>
<ol>
<li><strong>Konieczność przeorganizowanie serwisu</strong> - po pewnym czasie doszliście do wniosku, że obecny sposób funkcjonowania waszego systemu i tego jakie URLe są generowane musi zostać poprawiony; tym samym schemat URI waszego serwisu ulegnie zmianie. To prawda, tak się może zdarzyć i niestety zdarza się zbyt często. A powód jest zazwyczaj jeden i ten sam: w czasie projektowania serwisu nie przemyślano dobrze architektury informacji i usług, a jedynie skupiono się (jeśli wogóle) na architekturze samego systemu. To doprowadziło do problemów z reprezentacją identyfikatorów zasobów.<strong>Wniosek: </strong>projektowanie architektury informacji jest równie ważne (o ile nie ważniejsze) od projektu samego systemu; system zawsze można poprawić, zmienić technologię, ale URI są jego interfejsem dla innych usług, i nie należy tego zaniedbywać.<br />
<strong> </strong></li>
<li><strong>Prawa dostępu</strong> - może się zdarzyć, że w natłoku dokumentów, którymi zarządza nasz system będziemy zmuszeni do zmiany uprawnień dostępu do nich. Jeżeli nasze URI będą budowane w oparciu o tę informację, np:
<ul>
<li>/archive/documents/123 - dla dokumentów archiwalnych,</li>
<li>/secret/documents/234 - dla dokumentów prywatnych,</li>
<li>/public/documents/345 - dla dokumentów publicznych,</li>
</ul>
</li>
<li>to przenoszenie dokumentów np. do archiwum, powoduje że ich identyfikator się zmienia, i wszystkie referencje w innych dokumentach powinny zostać zaktualizowane.<strong>Rozwiązanie</strong>: przechowywać informacje o stanie i prawie dostępu na poziomie metadanych i stosować jednolity schemat URI dla wszystkich dokumentów w systemie.</li>
<li><strong>Dokument zmienił swoje miejsce na dysku</strong> - sytuacja kiedy jeden z pracowników przejmuje obowiązki kolegi w czasie jego urlopu, i w tym czasie część dokumentów jest dostarczana z jego przestrzeni dyskowej zamiast z przestrzeni dyskowej kolegi, mogłaby teoretycznie prowadzić do zmiany adresu URL tych dokumentów, np. z /~pracownikA/documents/123.pdf do /~pracownikB/documents/123.pdf. .<strong>Rozwiązanie: </strong>wykorzystać mechanizmy mapowania dostarczne przez serwery HTTPD (np. <a href="http://httpd.apache.org/" target="_blank">Apache</a>).</li>
<li><strong>Zmiana implementacji usługi wystawiającej dokumenty</strong> - pierwsza wersja systemu powstała w PHP, a teraz z uwagi na wydajność musimy zaimplementować nasze usługi w JEE; w najlepszym wypadku będziemy musieli zmienić rozszerzenia skryptów z <code>php</code> na <code>jsp</code>. Ale przecież nie musiało do tego dość, tworzone przez nas schematy URI powinny być niezależne od implementacji danej usługi. <strong>Podpowiedź:</strong> ponownie mogą nam pomóc mechanizmy mapowania i przekierować dostarczane przez serwery HTTPD; część środowisk  umożliwia definiowanie schematów bez "rozszerzeń", np. JEE za pomocą serwletów.</li>
<li><strong>URN vs URI</strong> - z założenia unikalne i niezmienialne miałybyć <a href="http://pl.wikipedia.org/wiki/Uniform_Resource_Name" target="_blank">URN</a> (ang. <em>Universal Resource Name</em>). To prawda, ale sam schemat HTTP z którego chcemy korzystać w URI, nie uniemożliwia niezmienialności identyfikatorów. Niestety, zazwyczaj jesteśmy sami winni temu, że one się zmieniają.</li>
<li><strong>Brak odpowiednich narzędzi </strong>- chyba najczęstrza wymówka. Niestety dla wielu prawdziwa. Jedyne co mogę tutaj zaoferować to pomoc z <a href="http://www.knowledgehives.com/lang-pl/contact" target="_blank">naszej strony</a> w dobraniu lub wyprodukowaniu odpowiednich rozwiązań.</li>
</ol>
<p>Podsumowując, czego nie umieszczamy w URI?</p>
<ol>
<li>Nazw i nazwisk - np. dokumentów, twórców, włascicieli</li>
<li>Tematow, klasyfikacji, opisów</li>
<li>Stanu dokumentów</li>
<li>Praw dostepu</li>
<li>Typów plików i ich rozszrzeń</li>
<li>Informacji o implementacji danej usługi dostarczającej dokumenty, np. PHP lub JSP.</li>
</ol>
<p>Pamiętajmy również, że nazwa domeny jest częścia URI - więc trzeba zapewnić, żeby się nie zmieniała.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/11/niezmienne-uri/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Publikujemy w Web 3.0 &#8211; część 2: Mój serwis jest Web 3.0</title>
		<link>http://www.semanticschool.com/2009/11/publikowanie-semantyki/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/11/publikowanie-semantyki/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 07:13:24 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[303]]></category>
		<category><![CDATA[erdf]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[grddl]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[link]]></category>
		<category><![CDATA[linked open data]]></category>
		<category><![CDATA[lod]]></category>
		<category><![CDATA[microformats]]></category>
		<category><![CDATA[mikroformaty]]></category>
		<category><![CDATA[ntriples]]></category>
		<category><![CDATA[publikowanie]]></category>
		<category><![CDATA[rdfa]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[semantyka]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[wlasciwosc]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xsl]]></category>
		<category><![CDATA[xstl]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=487</guid>
		<description><![CDATA[Kiedy po wielu dniach czy tygodniach pracy nasz serwis internetowy lub strona internetowa jest gotowa, zastanawiamy się jak uczynić ją popularną. W grę wchodzi wiele rozwiązań zajmujących się optymalizacją strony pod wyszukiwarki (ang. Search Engine Optimization - SEO) czy też marketingiem wspieranym mechanizmami wyszukiwarek internetowych (ang. Search Engine Marketing - SEM). Kilka miesięcy temu Google [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-506" title="Embedding Semantics" src="http://www.semanticschool.com/wp-content/uploads/2009/11/embedsemantics-300x195.png" alt="Embedding Semantics" width="240" height="156" />Kiedy po wielu dniach czy tygodniach pracy nasz serwis internetowy lub strona internetowa jest gotowa, zastanawiamy się jak uczynić ją popularną. W grę wchodzi wiele rozwiązań zajmujących się optymalizacją strony pod wyszukiwarki (ang. <em>Search Engine Optimization - SEO</em>) czy też marketingiem wspieranym mechanizmami wyszukiwarek internetowych (ang. <em>Search Engine Marketing - SEM</em>). Kilka miesięcy temu <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=99170" target="_blank">Google zapowiedział</a> wsparcie dla technologii semantycznych dzięki indeksowaniu fragmentów stron wzbogaconych o semantykę (ang. <em>rich snippets</em>).</p>
<p>O tworzeniu stron bogatych w semantykę pod kątem indeksowania przez Google napiszemy w kolejnych artykułach.  W tym artykule przedstawimy przegląd technik publikowania semantyki na naszych serwisach internetowych.</p>
<p><span id="more-487"></span></p>
<p>Kiedy nasza witryna internetowa zasilana jest bazą danych, np. relacyjną, możemy niskim kosztem uczynić ją bardziej semantyczną, publikując nie tylko jej wersję czytelną dla ludzi, ale również wersję czytelną dla maszyn. Jeżeli nasza strona tworzona jest "ręcznie", a narzędzie którego używamy nie wspiera oznaczeń semantycznych, będzie nas to kosztowało trochę więcej pracy.</p>
<p>Aby powiązać wersję czytelną dla maszyn z naszym serwisem stworzonym dla ludzi, mam do wyboru trzy rozwiązania:</p>
<ol>
<li>Wskazujemy na zewnętrzny dokument (lub usługę), który zawiera reprezentację danej strony w formacie zrozumiałym przez maszyny, np.: RDF (najlepiej w wersji <a href="http://www.semanticschool.com/2009/09/rdf-zapis/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">Turtle lub N3</a>).</li>
<li>Osadzamy (ang. <em>embed</em>) semantykę bezpośrednio w źródle naszej strony HTML.</li>
<li>Podajemy reguły translacji źródła naszej strony do dokumentu RDF.</li>
<li>Dostarczamy usługę negocjacji zawartości (ang. <em>content negotiation</em>) w ramach naszego serwisu.</li>
</ol>
<h4>Wskazujemy na dokumenty RDF</h4>
<p>Wskazanie na zewnętrzny dokument RDF jest zapewne najprostrzym rozwiązaniem. Wystarczy, że w źródle HTML naszej strony internetowej, w sekcji <code>&lt;head&gt;</code> umieścimy poniższy odnośnik wskazujący na inny dokument po podanym adresem URL.</p>
<p><code>&lt;link rel="media" type="text/turtle" title="wersja semantyczna" href="http://adres.naszego.serwisu/dane/dokument.ttl"/&gt;</code></p>
<p>Wskazany w ten sposób dokument może opisywać zarówno pojedynczą stronę HTML naszego serwisu, jak i dostarczać zbiorczy opis dla wszystkich stron opisu. Oczywiście idealnie byłoby gdybyśmy dostarczali osobne dokumenty RDF dla każdej strony HTML.</p>
<p><a href="http://sioc-project.org/wordpress" target="_blank">Plugin dla WordPress</a> eksportujący źródło blogu w <a href="http://www.semanticschool.com/2009/11/sioc/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">ontologii SIOC</a>, którego używamy w Szkole Web 3.0, w informuje agenty Web 3.0 o powiązanych danych semantycznych w następujący sposób:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; color: #9b6800;"><span style="color: #0000ff;">&lt;link</span><span style="color: #000000;"> </span><span style="color: #592600;">rel=</span>"meta"<span style="color: #000000;"> </span><span style="color: #592600;">type=</span>"application/rdf+xml"<span style="color: #000000;"> </span><span style="color: #592600;">title=</span>"SIOC"<span style="color: #000000;"> </span><span style="color: #592600;">href=</span>"http://www.semanticschool.com/index.php?sioc_type=post&amp;amp;sioc_id=487"<span style="color: #0000ff;"> /&gt;</span></p>
<h4>Osadzamy semantykę w źródle strony WWW</h4>
<p>Innym sposobem, sugerowanym m.in. przez Google, jest osadzenie semantyki bezpośrednio w kodzie strony WWW. Wykorzystujemy do tego celu elementy definiowane przez specyfikację (X)HTML, m.in. wartości atrybutów <code>class</code>, <code>id</code>, <code>title</code>, <code>rev</code> i <code>rel</code>. W chwili obecnej do najbardziej popularnych standardów osadzania danych RDF w stronie HTML należą:</p>
<ul>
<li><a href="http://microformats.org/" target="_blank">mikroformaty</a> (ang. <em>microformats</em>) - są chyba najstarszym sposobem osadzania semantyki. Chociaż przez pewien czas społeczność mikroformatów występowała niejako w opozycji do środowiska Semantic Web, w chwili obecnej są one jednym z rekomendowanych sposobów osadzania semantyki, wspierane zarówno przez Yahoo! i Google. Chyba największym minusem mikroformatów jest fakt, że są one nie tylko sposobem osadzania semantyki, ale również  zamkniętym (w dużej mierze) zestawem mini-ontologii.</li>
<li><a href="http://research.talis.com/2005/erdf/wiki/Main/RdfInHtml" target="_blank">eRDF</a> - umożliwia osadzenie semantyki z dowolnej ontologii. W tym celu, najpierw w <code>&lt;head&gt; </code>definiujemy listę wspieranych ontologii, deklarując mapowanie nazwy ontologii na URI jej specyfikacji:
<pre>&lt;link rel="schema.foaf" href="http://xmlns.com/foaf/0.1/" /&gt;</pre>
<p>a następnie wykorzystujemy atrybuty <code>class</code> do określania predykatów zdań RDF osadzonych w stronie:</p>
<pre>&lt;span class="foaf-firstName"&gt;Sebastian&lt;/span&gt;</pre>
<p>Co zostanie zinterpretowane przez agenta semantycznego jako:</p>
<pre>&lt;&gt; foaf:firstName "Sebastian".</pre>
<p>Podmiot zdań RDF deklarujemy za pomocą elementu <code>&lt;link&gt;</code></p>
<pre>&lt;link href="#sebastian" rev="foaf-made" rel="foaf-maker" /&gt;</pre>
<p>gdzie atrybut <code>rel</code> odczytujemy jako predykat pomiędzy daną stroną a określonym przez <code>href</code> zasobem, a atrybut <code>rev</code> odczytujemy jako predykat pomiędzy określonym zasobem a daną stroną.<br />
Powyższy przykład zostałby odczytany jako:</p>
<pre>&lt;http://www.semanticschool.com/2009/11/publikowanie-semantyki/#sebastian&gt; foaf:made &lt;http://www.semanticschool.com/2009/11/publikowanie-semantyki/&gt;.
&lt;http://www.semanticschool.com/2009/11/publikowanie-semantyki/&gt; foaf:maker &lt;http://www.semanticschool.com/2009/11/publikowanie-semantyki/#sebastian&gt; .</pre>
</li>
<li><a href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa</a> jest oficjalną rekomendacją W3C, wspieraną m.in. przez Yahoo i Google. Jest dużo bardziej zaawansowana pod względem możliwych konstrukcji osadzania semantyki. Rozszerza ona mechanizmy zdefiniowane w eRDF o m.in. na określaniu przestrzeni nazw (ang. <em>namespace</em>) dla danego fragmentu strony za pomocą meta-atrybutów <code>xmlns:*</code>. Predykaty definiowane są za pomocą atrybutu <code>property</code>. RDFa umożliwia również na definiowanie dowolnych podmiotów zdań RDF, za pomocą atrybutu <code>about</code>, oraz na określanie typów (klas) zasobów za pomocą atrybutów <code>typeof</code>. Standard RDFa opiszemy w jednym z przyszłych artykułów.</li>
</ul>
<h4>Określamy reguły translacji do dokumentów RDF</h4>
<p>Zanim osadzanie semantyki za pomocą standardów typu RDFa stało się popularne, środowisko Semantic Web promowało standard <a href="http://www.w3.org/2004/01/rdxh/spec" target="_blank">GRDDL</a> (czyt: <em>grid'l</em>). Idea tego rozwiązania opierała się na deklarowaniu dla danej strony HTML transformaty XSTL za pomocą której dana strona może zostać przekształcona do postaci dokumentu RDF. Oto przykład takiej definicji:</p>
<pre>&lt;html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:grddl='http://www.w3.org/2003/g/data-view#'
      grddl:transformation="glean_title.xsl
			    http://www.w3.org/2001/sw/grddl-wg/td/getAuthor.xsl"
 &gt;</pre>
<h4>Budujemy usługę negocjacji zawartości</h4>
<p>Ostatnim, i w chwili obecnej najbardziej popularnym rozwiązaniem dla wszelkiego rodzaju serwisów internetowych, jest dostarczenie usługi negocjacji zawartości. Pomysł opiera się na określeniu (co najmniej) trzech schematów URI dla każdego typu zasobu obsługiwanego przez nasz serwis, np. dla blogu typami takimi byłby: osóby, artykuły, tagi i kategorie.  Tymi podstawowymi trzema schematami są:</p>
<ol>
<li>Identyfikator zasobu, np.: URI autora artykułów.</li>
<li>Wersja zasobu zrozumiała dla ludzi, np.: strona HTML z profilem danego autora artykułów.</li>
<li>Wersja zasobu zrozumiała dla maszyn, np.: dokument RDF z profile FOAF danego autora artykułów.</li>
</ol>
<p>Rozwiązanie oparte o usługę negocjacji zawartości jest sposobem rekomendowanym przez inicjatywę publicznych, połączonych danych (ang. <em>linked data</em>) o której pisałem w <a href="http://www.semanticschool.com/2009/11/publikujemy-w-web3/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">poprzednim odcinku tego cyklu</a>. Autorzy <a href="http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/" target="_blank">mini-podręcznika</a> o tym jak publikować połączone dane omawiają różne sposoby deklarowania schematów URI:</p>
<ol>
<li>Różne domeny:
<ul>
<li>http://id.nasz-serwis.pl/autorzy/Sebastian</li>
<li>http://www.nasz-serwis.pl/autorzy/Sebastian</li>
<li>http://rdf.nasz-serwis.pl/autorzy/Sebastian</li>
</ul>
</li>
<li>Różne rozszerzenia (pseudo-) plików udostępnianych przez serwis:
<ul>
<li>http://www.nasz-serwis.pl/autorzy/Sebastian</li>
<li>http://www.nasz-serwis.pl/autorzy/Sebastian.html</li>
<li>http://www.nasz-serwis.pl/autorzy/Sebastian.rdf</li>
</ul>
</li>
<li>Różne człony wewnątrz schematu URI:
<ul>
<li>http://www.nasz-serwis.pl/id/autorzy/Sebastian</li>
<li>http://www.nasz-serwis.pl/html/autorzy/Sebastian</li>
<li>http://www.nasz-serwis.pl/rdf/autorzy/Sebastian</li>
</ul>
</li>
</ol>
<p>W następnym odcinku tego cyklu przedstawimy wytyczne budowania tzw. cool URI.</p>
<p>Kiedy określimy już schemat URI dla naszych typów zasobów, konieczne jest takie skonfigurowanie naszego serwisu (np. na poziomie konfiguracji serwera HTTPD), aby w odpowiedzi na zapytanie o stronę z identyfikatorem zasobu, przekierowywał albo na stronę HTML albo do dokument RDF, w zależności od możliwości interpretowania treści określonych przez klienta (przeglądarkę WWW lub agenta semantycznego).</p>
<p>Ideę przekierowań 303 prezentuje poniższy rysunek. Aplikacja kliencka za pomocą nagłówka HTTP określa rozpoznawany typ zasobów, w tym wypadku <code>application/rdf+xml</code>, na co serwer w odpowiedzi wysyła przekierowanie do dokumentu RDF zawierającemu opis danego zasobu.</p>
<p>Należy pamiętać, aby zarówno na stronach HTML jak i dokumentach RDF posługiwać się URI będącym identyfikatorem zasobu, a nie jego wersją w postaci strony HTML lub dokumentu RDF.</p>
<div id="attachment_520" class="wp-caption aligncenter" style="width: 588px"><a href="http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/#Terminology"><img class="size-full wp-image-520 " title="Przekierowania 303" src="http://www.semanticschool.com/wp-content/uploads/2009/11/deref-ont-uri-rdf.png" alt="Przekierowania 303 (źródło: http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/)" width="578" height="207" /></a><p class="wp-caption-text">Przekierowania 303 (źródło: http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/)</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/11/publikowanie-semantyki/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RDF: tłumaczył człowiek maszynie</title>
		<link>http://www.semanticschool.com/2009/09/rdf-wstep/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/09/rdf-wstep/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 07:15:12 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[Artificial intelligence]]></category>
		<category><![CDATA[bnode]]></category>
		<category><![CDATA[literal]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[predicate]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[reprezentacja]]></category>
		<category><![CDATA[resource]]></category>
		<category><![CDATA[Resource Description Framework]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>
		<category><![CDATA[uri]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=136</guid>
		<description><![CDATA[Od kiedy człowiek stworzył pierwszą maszynę, tak długo pewnie marzeniem (i horrorem) była chęć rozumienia nas przez maszyny. Jeżeli czytając o historii Web 3.0 podążyliście za wskazaniem do słynnego artykułu sir Tima Bernersa-Lee to zwróciliście pewnie uwagę na stronę tytułową tego wydania Scientific American - ekran komputera ze słowami: "Wiem co masz na myśli" (I [...]]]></description>
			<content:encoded><![CDATA[<p>Od kiedy człowiek stworzył pierwszą maszynę, tak długo pewnie marzeniem (i horrorem) była chęć rozumienia nas przez maszyny. Jeżeli czytając o <a href="http://www.semanticschool.com/2009/09/historia-web-3-0/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">historii Web 3.0</a> podążyliście za wskazaniem do <a href="http://www.scientificamerican.com/article.cfm?id=the-semantic-web" target="_blank">słynnego artykułu</a> sir Tima Bernersa-Lee to zwróciliście pewnie uwagę na stronę tytułową tego wydania <a class="zem_slink" title="Scientific American" rel="homepage" href="http://www.sciam.com/">Scientific American</a> - ekran komputera ze słowami: "Wiem co masz na myśli" (I know what you mean):</p>
<div id="attachment_421" class="wp-caption aligncenter" style="width: 360px"><a href="http://derivadow.com/2008/06/03/semantic-web-why-bother/"><img class="size-full wp-image-421 " title="I know what you mean" src="http://derivadow.files.wordpress.com/2008/06/i-know-what-you-mean.jpg?w=500&amp;h=367" alt="" width="350" height="257" /></a><p class="wp-caption-text">Wiem co masz na myśli</p></div>
<p>O ile lata sukcesów i porażek badań nad Sztuczną Inteligencją (ang. <em><a class="zem_slink" title="Artificial intelligence" rel="wikipedia" href="http://en.wikipedia.org/wiki/Artificial_intelligence">Artificial Intelligence</a></em>) przyniosły bardziej złą sławę niż konkretne rezultaty, to należy pamiętać, że ludzie pracujący nad Siecią Semantyczną odcinają się od sztucznej inteligencji, proponując w zamian dość radykalnie różne podejście: przetwarzanie znaczeniowe a nie numeryczne.</p>
<p>Oczywiście wymaga to również odmiennego sposobu reprezentacji informacji: jest nią RDF (<a class="zem_slink" title="Resource Description Framework" rel="wikipedia" href="http://en.wikipedia.org/wiki/Resource_Description_Framework">Resource Description Framework</a>). Zanim omówimy czym jest RDF, małe ćwiczenie: postarajcie się opisać krzesło (np. z obrazka poniżej) używając do tego jak najprostszych zdań.</p>
<div id="attachment_140" class="wp-caption aligncenter" style="width: 129px"><img class="size-medium wp-image-140 " title="new_oak_jenna_chair" src="http://www.semanticschool.com/wp-content/uploads/2009/09/new_oak_jenna_chair1-170x300.jpg" alt="Krzesło: jak je opiszesz?" width="119" height="210" /><p class="wp-caption-text">Krzesło: jak je opiszesz?</p></div>
<p><span id="more-136"></span>I jak? Udało się? Oto kilka zdań które mi przyszły do głowy:</p>
<ul>
<li>To jest krzesło.</li>
<li>Jest zrobione z drewna i skóry.</li>
<li>Posiada oparcie i nogi.</li>
<li>Ma cztery nogi.</li>
<li>Służy do siedzenia.</li>
<li>Wykonane jest przez stolarza.</li>
</ul>
<p>Możemy też dalej rozszerzać nasz opis:</p>
<ul>
<li>Stolarz wykonuje krzesła.</li>
<li>Mężczyzna siedzi na krześle.</li>
<li>Stolarz i mężczyzna są ludźmi.</li>
</ul>
<p>I oczywiście moglibyśmy kontynuować nasz opis w nieskończoność. To co powstaje w naszej głowie to mapa myśli (ang. <em><a class="zem_slink" title="Mind map" rel="wikipedia" href="http://en.wikipedia.org/wiki/Mind_map">mind map</a></em>). Jeżeli pominiemy restrykcje i wytyczne narzucone przez technikę tworzenia map myśli, to nasz opis krzesła możemy przedstawić następująco.</p>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 511px"><img class="size-full wp-image-142" title="rdf-graph-example-chair" src="http://www.semanticschool.com/wp-content/uploads/2009/09/rdf-graph-example-chair.png" alt="rdf-graph-example-chair" width="501" height="327" /><p class="wp-caption-text">Pojęcie &quot;krzesło&quot; opisane jako mapa myśli</p></div>
<p style="text-align: left; ">Tym samym stworzyliśmy nasz pierwszy opis w RDF.</p>
<p style="text-align: left; ">Jak to możliwe? Otóż RDF jest właśnie językiem reprezentacji informacji zapisanej w <a href="http://pl.wikipedia.org/wiki/Graf_(matematyka)" target="_blank">grafie</a> (skierowanym). Każde proste zdanie (w języku naturalnym) odpowiada jednej krawędzi w grafie, tj. wyróżniamy 3 elementy każdego zdania RDF (ang. <em>RDF statement)</em>:</p>
<ul>
<li>podmiot (ang. <em>subject</em>) to wierzchołek, czyli zasób (ang. <em>resource</em>), w którym zaczyna się dana krawędź,</li>
<li>predykat (ang. <em>predicate</em>) nazywa daną krawędź w grafie,</li>
<li>obiekt (ang. <em>object)</em> to drugi wierzchołek, zasób lub <a href="http://pl.wikipedia.org/wiki/Literał" target="_blank">literał</a> (ang. <em>literal</em>), w którym kończy się dana krawędź.</li>
</ul>
<p>Na przykład nasze zdania możemy zapisać następująco, wyróżniając poszczególne elementy zdania RDF:</p>
<ul>
<li>[Krzesło] [posiada] [oparcie].</li>
<li>[Krzesło] [służy do] [siedzenia].</li>
<li>[Krzesło] [wykonane jest przez] [stolarza].</li>
<li>[Stolarz] [wykonuje] [krzesła].</li>
<li>[Mężczyzna] [siedzi na] [krześle].</li>
</ul>
<p>Jest jednak kilka zdań, których zapis nie jest aż tak oczywisty.</p>
<ul>
<li>"Jest zrobione z drewna i skóry" - możemy zapisać jako dwa zdania:
<ul>
<li>[Krzesło] [jest zrobione z] [drewna].</li>
<li>[Krzesło] [jest zrobione ze] [skóry].</li>
</ul>
</li>
<li>"Posiada cztery nogi." - tutaj ujawnia się ciekawa właściwość RDF, tzw. reifikacja (ang. <em><a href="http://en.wikipedia.org/wiki/Reification_(computer_science)#RDF_and_OWL" target="_blank">reification</a></em>), czyli wypowiadanie zdania o zdaniu. W tym przypadku będzimy potrzebowali dwóch zdań RDF do zapisania tego przykładu (tak naprawdę będziemy potrzebowali aż 6 zdań, ale o tym w jednym z kolejnych artykułów):
<ul>
<li>[Krzesło] [ma] [nogi].</li>
<li>[W powyższym zdaniu] [jest nóg sztuk] "4".</li>
</ul>
</li>
<li>Zadania z "to jest" wymagają specjalnego predykatu do określenia klasy, tzn. typu, opisywanego zasobu. Ten predykat to "<a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#type" target="_blank">rdf:type</a>" i jest jednym z istotnych elementów opisu RDF (więcej na ten temat niedługo):
<ul>
<li>[Nasze krzesło] [rdf:type] [Krzesło].</li>
<li>[Nasz mężczyzna] [rdf:type] [Człowiek].</li>
<li>[Nasz stolarz] [rdf:type] [Człowiek].</li>
</ul>
</li>
</ul>
<p>Chociaż nie potrafimy jeszcze zapisać formalnie opisu RDF (o tym w artykule o sposobach reprezentacji grafu RDF), to na zakończenie warto zapamiętać jeszcze kilka (trochę technicznych informacji, więc nie przejmujcie się jeżeli wrócimy do nich w najbliższych artykułach).</p>
<p>W grafie RDF występują dwa typy wierzchołków: zasoby (ang. <em>resource</em>) i literały (ang. <em>literal</em>). Zasoby są identyfikowane przez <a class="zem_slink" title="Uniform Resource Identifier" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a> (patrz artykuł o semantycznym torcie), i mogą być początkiem, jak i końcem krawędzi w grafie; sama krawędź jest również identyfikowana przez URI. Literały są ciągami znaków, liczbami, datami, itp., i tym samym mogą być jedynie końcowym wierzchołkiem krawędzi.</p>
<p>RDF definiuje jeszcze jeden specjalny typ wierzchołka: tzw. nienazwany wierzchołek (ang. <em><a href="http://en.wikipedia.org/wiki/Blank_node" target="_blank">blank node</a></em>). Nienazwane wierzchołki nie mogą być identyfikowane poza systemem, który przechowuje informacje o grafie. Możemy użyć ich do reprezentacji wierzchołków grafu, ale nie do reprezentacji jego krawędzi. Do nienazwanych wierzchołków jeszcze wrócimy, ale zapamiętajcie, że <strong>należy ich unikać ze wszystkich sił</strong>.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/39e80abc-631e-408d-b9b0-aecaa7928436/"><img class="zemanta-pixie-img" style="border:none;float:right" src="http://img.zemanta.com/reblog_e.png?x-id=39e80abc-631e-408d-b9b0-aecaa7928436" 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.semanticschool.com/2009/09/rdf-wstep/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Semantyczny tort: jak przełknąć wizję Web 3.0</title>
		<link>http://www.semanticschool.com/2009/09/semantyczny-tort/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/09/semantyczny-tort/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 07:00:15 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[dublin core]]></category>
		<category><![CDATA[historia]]></category>
		<category><![CDATA[iri]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[ontologia]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[Resource Description Framework]]></category>
		<category><![CDATA[Semantic Web]]></category>
		<category><![CDATA[sparql]]></category>
		<category><![CDATA[specyfikacja]]></category>
		<category><![CDATA[Tim Berners-Lee]]></category>
		<category><![CDATA[tort]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>
		<category><![CDATA[Uniform Resource Locator]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[Web 3.0]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=115</guid>
		<description><![CDATA[We wczorajszym artykule przedstawiłem historię narodzin i rozwoju Web 3.0. Nie ma co ukrywać, że do jej pełnego spopularyzowania jeszcze trochę brakuje. Można by długo rozprawiać co się stało, że po 20 latach od powstania Internetu nadal nie wygląda on w pełni tak jak go wymyślił sir Tim Berners-Lee (na zdjęciu poniżej). Jednym ze sposobów [...]]]></description>
			<content:encoded><![CDATA[<p>We <a href="http://www.semanticschool.com/2009/09/historia-web-3-0/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">wczorajszym artykule</a> przedstawiłem historię narodzin i rozwoju Web 3.0. Nie ma co ukrywać, że do jej pełnego spopularyzowania jeszcze trochę brakuje. Można by długo rozprawiać co się stało, że po 20 latach od powstania Internetu nadal nie wygląda on w pełni tak jak go wymyślił sir <a class="zem_slink" title="Tim Berners-Lee" rel="homepage" href="http://www.w3.org/People/Berners-Lee/">Tim Berners-Lee</a> (<em>na zdjęciu poniżej)</em>.</p>
<div class="zemanta-img zemanta-action-dragged" style="display: block; width: 310px; margin: 1em;">
<div class="wp-caption aligncenter" style="width: 310px"><a href="http://commons.wikipedia.org/wiki/Image:Tim_Berners-Lee.jpg"><img title="Tim Berners-Lee at a Podcast Interview" src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Tim_Berners-Lee.jpg/300px-Tim_Berners-Lee.jpg" alt="Tim Berners-Lee at a Podcast Interview" width="300" height="300" /></a><p class="wp-caption-text">Image via Wikipedia</p></div>
</div>
<p><span id="more-115"></span></p>
<p>Jednym ze sposobów na przedstawienie wizji rozwoju Web 3.0, a dokładniej Sieci Semantycznej, jest analiza tzw. semantycznego tortu (ang. <em><a class="zem_slink" title="Semantic Web Stack" rel="wikipedia" href="http://en.wikipedia.org/wiki/Semantic_Web_Stack">Semantic Web Layer Cake</a></em>), który przedstawia stos technologii i standardów potrzebnych do stworzenia w pełni funkcjonalnej Sieci Semantycznej. Jedna z jego pierwszych wersji (prezentowana w 2002 roku przez TBL) była następująca:</p>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 541px"><a href="http://www.w3.org/2002/Talks/04-sweb/slide12-0.html"><img class="size-full wp-image-119" title="Semantyczny tort (rok 2002) źródło" src="http://www.semanticschool.com/wp-content/uploads/2009/09/sw-stack-2002.png" alt="Semantyczny tort (rok 2002) źródło: http://www.w3.org/2002/Talks/04-sweb/slide12-0.html" width="531" height="449" /></a><p class="wp-caption-text">Semantyczny tort (rok 2002) źródło: http://www.w3.org/2002/Talks/04-sweb/slide12-0.html</p></div>
<p>Podstawą Sieci Semantycznej są dwie technologie, dzięki którym możliwe jest wskazanie dowolnej treści i obiektu (nie tylko w Internecie) oraz opisanie ich w dowolnym języku; są to odpowiednio <a class="zem_slink" title="Uniform Resource Identifier" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a> (<a class="zem_slink" title="Uniform Resource Identifier" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">Uniform Resource Identifier</a>) i <a class="zem_slink" title="Unicode" rel="wikipedia" href="http://en.wikipedia.org/wiki/Unicode">Unicode</a>. Adres URI jest podobny do adresu <a class="zem_slink" title="Uniform Resource Locator" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uniform_Resource_Locator">URL</a> (<a class="zem_slink" title="Uniform Resource Locator" rel="wikipedia" href="http://en.wikipedia.org/wiki/Uniform_Resource_Locator">Uniform Resource Locator</a>), z którym mamy codziennie do czynienia w Internecie; różni go jednak to iż umożliwia (przynajmniej teoretycznie) na <strong>wskazanie</strong> nawet przedmiotów w świecie rzeczywistym, a zatem również ich opisanie i połączenie z dokumentami w Internecie. Unicode umożliwia <strong>zapis</strong> znaków ze wszystkich znanych obecnie alfabetów.</p>
<p>Kolejna warstwa to bardzo popularny obecnie standard <a class="zem_slink" title="XML" rel="wikipedia" href="http://en.wikipedia.org/wiki/XML">XML</a> i związane z nim przestrzenie nazw (ang. <em>namespaces</em>). W XMLu można zapisać informacje tak, aby maszyna mogła je <strong>przetworzyć</strong> (ale nie zrozumieć!). W jednym z przyszłych artykułów postaramy się wyjaśnić dlaczego wprowadzenie warstwy XML do "semantycznego tortu" nie było najlepszym pomysłem.</p>
<p>Warstwę wyżej zdefiniowany jest standard nieodłącznie związany z Siecią Semantyczna: RDF (<a class="zem_slink" title="Resource Description Framework" rel="wikipedia" href="http://en.wikipedia.org/wiki/Resource_Description_Framework">Resource Description Framework</a>). W odróżnieniu od XMLa umożliwia on na zapis <strong>grafu</strong> (skierowanego) w postaci przetwarzanej przez maszyny; m.in. właśnie na bazie informacji zapisanych w grafie powiązań znaczeniowych (tj. semantycznych) maszyny mogą podjąć próbę zrozumienia prezentowanej treści. Aby wspomóc proces "rozumienia" informacji zapisanej w RDF, kolejne dwie warstwy związane są z definiowaniem znaczenia pojęć wykorzystanych w opisie grafu RDF. Tak zgadliście: chodzi o okryte złą sławą <a class="dict" href="/slownik/#ontologia#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">ontologie</a> (o tym w jednym z następnych <em>odcinków serialu</em>). RDF <a class="zem_slink" title="Ontology (information science)" rel="wikipedia" href="http://en.wikipedia.org/wiki/Ontology_%28information_science%29">Schema</a> umożliwia na definiowanie prostych ontologii za pomocą hierarchii klas (ang. <em>class)</em> i właściwości (ang. <em>property); </em>nie, tym razem nie ma to nic wspólnego z programowaniem obiektowym poza samą nazwą. Omówimy ten problem w osobnym artykule.</p>
<p>Kolejna warstwa, czyli reguły (ang. <em>rules</em>), pozwala na definiowanie (w językach formalnych, np. <a href="http://www.w3.org/2005/rules/wiki/RIF_Working_Group" target="_blank">RIF</a>) reguł przetwarzania wiedzy zapisanej w RDF i ontologiach. W zestawieniu z budowanymi obecnie mechanizmami struktur logicznych (ang. <em>logic framework</em>) umożliwią maszynom zrozumienie informacji, a nie tylko jej przetwarzanie.</p>
<p>Ostatnie dwie warstwy konieczne są do zapewnienia maszynom (pewnej) autonomiczności w przetwarzaniu informacji i podejmowaniu decyzji w imieniu ich właścicieli. Wymaga to jednak możliwości dostarczenia formalnych dowodów (ang. <em>proof</em>) na poprawność wysuniętych wniosków, oraz ustalenia poziomu zaufania do przeprowadzonego procesu wnioskowania (ang. <em>trust</em>).</p>
<p>Pozostałe dwa elementy, podpisy cyfrowe (ang. <em>signature</em>) i szyfrowanie (ang. <em>encryption</em>), zapewniają bezpieczeństwo operacji w Sieci Semantycznej.</p>
<p>Uff, dużo tego, a co gorsza - same suche specyfikacje, rekomendacje, standardy. Całe szczęście w ciągu ostatnich lat udało się zmienić tę wizję chociaż częściowo w rzeczywistość.</p>
<p>W ciągu ostatnich lat "semantyczny tort" ewoluował wraz z implementacją kolejnych jego warstw. Już dwa lata póżniej, TBL dodał dodatkową warstwę: zapytań (ang. <em>queries</em>) i schematów XML. Pojawiły się też pierwsze narzędzia (Annotea), słowniki (<a href="http://www.w3.org/P3P/" target="_blank">P3P</a>, <a href="http://www.w3.org/Mobile/CCPP/" target="_blank">CC/PP</a>) i standardy (<a href="http://www.dublincore.org/" target="_blank">Dublin Core</a>, <a class="zem_slink" title="RSS" rel="wikipedia" href="http://en.wikipedia.org/wiki/RSS">RSS</a>) implementujące dolne warstwy tortu:</p>
<div id="attachment_123" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.w3.org/2004/Talks/0412-RDF-functions/slide4-0.html"><img class="size-full wp-image-123 " title="sw_stack" src="http://www.semanticschool.com/wp-content/uploads/2009/09/sw_stack.png" alt="Kolejna wersja semantycznego tortu (rok 2004)" width="400" height="400" /></a><p class="wp-caption-text">Kolejna wersja semantycznego tortu (rok 2004) http://www.w3.org/2004/Talks/0412-RDF-functions/slide4-0.html</p></div>
<p>Obecna wersja "semantycznego tortu" zawiera przede wszystkim specyfikacje, które stały się standardami implementującymi poszczególne warstwy: OWL (<a class="zem_slink" title="Web Ontology Language" rel="wikipedia" href="http://en.wikipedia.org/wiki/Web_Ontology_Language">Web Ontology Language</a>), RIF (<a class="zem_slink" title="Rule Interchange Format" rel="wikipedia" href="http://en.wikipedia.org/wiki/Rule_Interchange_Format">Rule Interchange Format</a>), <a class="zem_slink" title="SPARQL" rel="wikipedia" href="http://en.wikipedia.org/wiki/SPARQL">SPARQL</a> (język zapytań dla RDF). Istotne jest, że ontologie, reguły i logika stały się <em>de facto</em> jedną warstwą. Ograniczone też zostało znaczenie formatu XML, bo tak na prawdę w Sieci Semantycznej można radzić sobie bez ograniczeń wprowadzonych przez XML. Pojawiła się też nowa warstwa "docelowa" - interfejs użytkownika (ang. <em>user interface</em>) i aplikacje. Dodatkowo, wskazywanie obiektów możliwe jest teraz za pomocą standardu IRI (<a href="http://pl.wikipedia.org/wiki/Internationalized_Resource_Identifier" target="_blank">Internationalized Resource Identifier</a>) rozszerzającego URI o możliwość używania znaków spoza standardu ASCII do zapisu identyfikatora obiektu.</p>
<p>Do niedawna cały nacisk na prace nad Siecią Semantyczną skierowany był na rozumienie znaczenia treści przez maszyny. To m.in. sukces Web 2.0 spowodował, że zrozumiano potrzebę i ogromne znaczenie interakcji użytkowników z systemami opartymi o rozwiązania semantyczne.</p>
<div id="attachment_124" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.w3.org/2007/03/layerCake.png"><img class="size-full wp-image-124 " title="layerCake" src="http://www.semanticschool.com/wp-content/uploads/2009/09/layerCake.png" alt="Obecna wersja semantycznego tortu" width="480" height="504" /></a><p class="wp-caption-text">Obecna wersja semantycznego tortu http://www.w3.org/2007/03/layerCake.png</p></div>
<p>Na zakończenie, wisienka na torcie (ang. <em>cherry on the cake</em>): wersja 3D semantycznego tortu przygotowana przez <a href="http://bnode.org/" target="_blank">Benjamina Nowacka</a>. To co w niej istotne to najnowszy element zestawu technologii semantycznych: powiązane dane (ang. <em>linked data</em>). Nie ma co ukrywać, że są one niezmiernie ważne dla sukcesu Web 3.0:  bez semantycznych (czyt. powiązanych) danych, dostępnych w dużej mierze publicznie, żadne mechanizmy wnioskowania nie będą miały znaczenia.</p>
<div id="attachment_125" class="wp-caption aligncenter" style="width: 560px"><a href="http://bnode.org/blog/2009/07/08/the-semantic-web-not-a-piece-of-cake"><img class="size-full wp-image-125 " title="semantic_web_technology_stack_small" src="http://www.semanticschool.com/wp-content/uploads/2009/09/semantic_web_technology_stack_small.png" alt="Semantyczny tort w wersji 3D wraz z powiązanymi danymi" width="550" height="367" /></a><p class="wp-caption-text">Semantyczny tort w wersji 3D wraz z powiązanymi danymi http://bnode.org/blog/2009/07/08/the-semantic-web-not-a-piece-of-cake</p></div>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/65f4bb70-69e5-43a9-bf2a-7ec4318fe923/"><img class="zemanta-pixie-img" style="border:none;float:right" src="http://img.zemanta.com/reblog_e.png?x-id=65f4bb70-69e5-43a9-bf2a-7ec4318fe923" 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.semanticschool.com/2009/09/semantyczny-tort/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.587 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-09 05:54:40 -->
<!-- Compression = gzip -->
