<?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; xsl</title>
	<atom:link href="http://www.semanticschool.com/tag/xsl/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ęść 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>
	</channel>
</rss>

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