<?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; owl</title>
	<atom:link href="http://www.semanticschool.com/tag/owl/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>Przyjaciel mojego przyjaciela &#8211; czyli o sieciach społecznych w Sieci Semantycznej</title>
		<link>http://www.semanticschool.com/2009/10/foaf/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/10/foaf/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 09:50:20 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Ontologie]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[blip]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[foaf]]></category>
		<category><![CDATA[ifp]]></category>
		<category><![CDATA[nasza klasa]]></category>
		<category><![CDATA[ontologia]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[sieci społeczne]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wnioskowanie]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=380</guid>
		<description><![CDATA[Media społeczne stały się tak popularne w obecnym Internecie, że szczególnie młodsi użytkownicy nie wyobrażają sobie Sieci bez serwisów społecznościowych typu Nasza Klasa, Facebook, Blip, Twitter, i wiele wiele innych. W czasie prowadzonych przeze mnie badan nad semantycznymi bibliotekami cyfrowymi, wielokrotnie spotykałem się ze stanowiskiem, że w chwili obecnej system, który chce zyskać na popluralności [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.foaf-project.org/"><img class="alignright" title="FOAF Project" src="http://www.foaf-project.org/sites/all/themes/tapestry/foaf-project/SmileysTransp.gif" alt="" width="104" height="56" /></a>Media społeczne stały się tak popularne w obecnym Internecie, że szczególnie młodsi użytkownicy nie wyobrażają sobie Sieci bez serwisów społecznościowych typu <a href="http://www.nasza-klasa.pl/" target="_blank">Nasza Klasa</a>, <a href="http://www.facebook.com/" target="_blank">Facebook</a>, <a href="http://www.blip.pl/" target="_blank">Blip</a>, <a href="http://www.twitter.com/" target="_blank">Twitter</a>, i wiele wiele innych.  W czasie prowadzonych przeze mnie badan nad semantycznymi bibliotekami cyfrowymi, wielokrotnie spotykałem się ze stanowiskiem, że w chwili obecnej system, który chce zyskać na popluralności musi umożliwiać użytkownikom połączenie się w sieć społeczną z ich znajomymi, i np. ustawienie swojego zdjęcia/awatara do profilu; pierwszymi pytaniami, które padały podczas prezentacji prototypów kolejnych systemów były: "gdzie mogę dodać znajomych ?".  Jak zapewne pamiętacie z pierwszych artykułów ze Szkoły Web 3.0, pisałem, że Web 3.0 jest etapem rozwoju Sieci bazującym m.in. na sieciach społecznych i Sieci Semantycznej. Czas więc na omówienie <a href="http://www.semanticschool.com/2009/10/ontologie-przyklady/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">lekkiej ontologii</a> <a href="http://www.foaf-project.org/" target="_blank">FOAF</a> (Friend of a Friend), która umożliwia przedstawianie zależności istniejących w sieci społecznej w postaci grafy RDF.  <span id="more-380"></span></p>
<h2>Pojęcia zdefiniowane w ontologii FOAF</h2>
<p>Zgodnie z ideą tworzenia lekkich ontologii, FOAF koncentruje się na podstawowych pojęciach pozwalających opisać nasz profil użytkownika w systemach społecznościowych (i nie tylko). FOAF został zdefiniowany w 2002 roku i od tamtej pory jego podstawowe pojęcia nie zmieniły się znacząco; doszło jednak kilka nowych właściwości odpowiadające zmianom w kierunku Web 2.0 jakim podlegała Sieć.</p>
<p>Do podstawowych pojęć zdefiniowanych przez FOAF należą:</p>
<ul>
<li>klasa <code>foaf:Person</code>, która definiuje użytkownika, którego profil społeczny opisujemy.</li>
<li>klasa <code>foaf:Agent</code>, będąca nad klasą foaf:Person, umożliwia stworzenie profilu nie tylko dla osób, ale również dla usług, agentów, itp.</li>
<li> <code>foaf:knows</code> jest właściwością za pomocą której budujemy skierowany graf powiązań pomiędzy użytkownikami, czyli sieć społeczną. Sam foaf:knows nie wyraża ani stopnia ani rodzaju znajomości: może oznaczać od "widziałem tę osobę w telewizji" do "jesteśmy najlepszymi kumplami na świecie"; systemy bazujące na FOAF mają możliwość rozszerzenia słownika o właściwości o bardziej konkretnych znaczeniach.</li>
<li>właściwość <code>foaf:mbox</code> umożliwia zdefiniowanie adresu email użytkownika; podajemy go w postaci [<code>mbox:moj.adres@poczta.pl</code>]; foaf:mbox jest zdefiniowana jako <a href="http://www.semanticschool.com/2009/10/owl-lite/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">właściwość odwrotnie funkcyjna (ang. IFP - inverse functional property)</a>, co umożliwia identyfikowanie i łączenie wielu profili FOAF należących do tej samej osoby. Ponieważ, nie zawsze chcemy ujawniać nasz adres email, szczególnie jeżeli dany dokument FOAF (czyli dokument RDF z danymi FOAF) jest ogólnie dostępny, możemy skorzystać z właściwości <code>foaf:mbox_sha1sum</code>, w której zapisujemy wynik funkcji SHA1SUM na naszym adresie email (w formacie <code>mbox:*</code>); ta właściwość jest również zdefiniowana jako IFP.</li>
<li>FOAF umożliwia również na podanie naszego imienia (<code>foaf:firstName</code>, <code>foaf:givenname</code>) i nazwiska (<code>foaf:surname</code>, <code>foaf:family_name</code>), lub poprostu łącznie naszego imienia i nazwiska (<code>foaf:name</code>). Jeżeli chcemy określić nasze ksywki to korzystamy z właściwości <code>foaf:nick</code>; tworzymy po jednym zdaniu RDF dla każdej ksywki (zobacz przykład poniżej)</li>
<li>ostatnią bardzo popularną właściwością jest <code>foaf:depiction</code> za pomocą, której możemy wskazać lokalizację naszego zdjęcia.</li>
</ul>
<p>FOAF definiuje również całą gamę innych klas jak <code>foaf:Project</code>, <code>foaf:Organization</code>, <code>foaf:Group</code>, <code>foaf:Document</code>, i właściwości jak np.: <code>foaf:weblog</code>, <code>foaf:geekcode</code>, <code>foaf:schoolHomepage</code>, itp. Zachęcam do lektury<a href="http://xmlns.com/foaf/spec/" target="_blank"> specyfikacji FOAFa</a> gdzie wszystko jest dość spójnie opisane. Ciekawostką jest właściwość <code>foaf:myersBriggs</code> za pomocą określamy naszą osobowość; więcej informacji na temat Myers Briggs (MBTI) personality classification znajdziecie pod <a href="http://www.personalitypage.com/four-temps.html" target="_blank">http://www.personalitypage.com/four-temps.html</a>.</p>
<h2>Systemy i usługi bazujące na FOAF</h2>
<p>Ontologia FOAF jest bardzo popularna, i wiele osób tworzy i publikuje swoje FOAFy. Najlepszym miejscem, żeby rozpocząć zabawę z FOAFem jest serwis FOAF-o-matic. Jego pierwsza wersja jest dostępna pod adresem <a href="http://www.ldodds.com/foaf/foaf-a-matic" target="_blank">http://www.ldodds.com/foaf/foaf-a-matic</a>, ja jednak polecam najnowszą wersję, stworzoną w ramach projektu <a href="http://fp7.okkam.org/" target="_blank">OKKAM</a>, dostępna pod adresem: <a href="http://www.foaf-o-matic.org/" target="_blank">http://www.foaf-o-matic.org/</a>.</p>
<p>Oto przykładowy dokument FOAF wygenerowany za pomocą usługi FOAF-o-matic:</p>
<pre>&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/"
	xmlns:admin="http://webns.net/mvcb/"&gt;
	&lt;foaf:PersonalProfileDocument rdf:about=""&gt;
		&lt;foaf:maker rdf:resource="#me" /&gt;
		&lt;foaf:primaryTopic rdf:resource="#me" /&gt;
		&lt;admin:generatorAgent rdf:resource="http://www.ldodds.com/foaf/foaf-a-matic" /&gt;
		&lt;admin:errorReportsTo rdf:resource="mailto:leigh@ldodds.com" /&gt;
	&lt;/foaf:PersonalProfileDocument&gt;
	&lt;foaf:Person rdf:ID="me"&gt;
		&lt;foaf:title&gt;Dr&lt;/foaf:title&gt;
		&lt;foaf:name&gt;Sebastian Kruk&lt;/foaf:name&gt;
		&lt;foaf:givenname&gt;Sebastian&lt;/foaf:givenname&gt;
		&lt;foaf:family_name&gt;Kruk&lt;/foaf:family_name&gt;
		&lt;foaf:nick&gt;skruk&lt;/foaf:nick&gt;
		&lt;foaf:mbox_sha1sum&gt;959ef7bc9db1f3038f1301fe7c53654fa4f85d3f&lt;/foaf:mbox_sha1sum&gt;
		&lt;foaf:homepage rdf:resource="http://www.sebastiankruk.com/" /&gt;
		&lt;foaf:depiction
			rdf:resource="http://www.knowledgehives.com/images/stories/skruk_200808.jpg" /&gt;
		&lt;foaf:workplaceHomepage rdf:resource="http://www.knowledgehives.com/" /&gt;
		&lt;foaf:schoolHomepage rdf:resource="http://www.semanticschool.com/" /&gt;
		&lt;foaf:knows&gt;
			&lt;foaf:Person&gt;
				&lt;foaf:name&gt;Stefan Decker&lt;/foaf:name&gt;
				&lt;foaf:mbox_sha1sum&gt;1bc1f862b688a45b7e0c8d4a8467c23177c53fad&lt;/foaf:mbox_sha1sum&gt;
			&lt;/foaf:Person&gt;
		&lt;/foaf:knows&gt;
		&lt;foaf:knows&gt;
			&lt;foaf:Person&gt;
				&lt;foaf:name&gt;Dan Brickley&lt;/foaf:name&gt;
				&lt;foaf:mbox_sha1sum&gt;6e80d02de4cb3376605a34976e31188bb16180d0&lt;/foaf:mbox_sha1sum&gt;
				&lt;rdfs:seeAlso rdf:resource="http://danbri.org/foaf.rdf" /&gt;
			&lt;/foaf:Person&gt;
		&lt;/foaf:knows&gt;
	&lt;/foaf:Person&gt;
&lt;/rdf:RDF&gt;</pre>
<p><a href="http://xml.mfd-consult.dk/foaf/explorer/"><img class="alignright" style="margin-left: 1em;" src="http://xml.mfd-consult.dk/images/foaf-explorer.240.png" alt="" width="86" height="86" /></a>Kolejną ciekawą usługą jest <a href="http://xml.mfd-consult.dk/foaf/explorer/" target="_blank">FOAF Explorer</a>, który umożliwia przeglądanie sieci znajomości zapisanych w dokumentach FOAF. Na przykład, jeżeli chcecie rozpocząć przeglądanie od mojego profilu wystarczy, że udacie się pod <a href="http://xml.mfd-consult.dk/foaf/explorer/?foaf=http%3A%2F%2Fwww.sebastiankruk.com%2Ffoaf.rdf" target="_blank">ten adres</a>.</p>
<p><a href="http://www.foafrealm.org/"><img class="alignleft" style="margin-right: 1em;" src="http://www.w3.org/2001/sw/Europe/events/foaf-galway/papers/fp/foaf_realm/foafrealm.png" alt="" width="129" height="74" /></a>W projektach <a href="http://www.knowledgehives.com/lang-pl/opensource" target="_blank">open source</a>, które wspiera nasza firma, <a href="http://www.knowledgehives.com/" target="_blank">Knowledge Hives</a>, korzystamy z komponentu <a href="http://www.foafrealm.org/" target="_blank">FOAFRealm</a>, który wykorzystuje ontologię FOAF do zarządzanie społecznymi profilami użytkowników w systemie. Projekt FOAFRealm powstał jako przykład działania (ang. <em>proof of concept</em>) usługi zarządzania użytkownikami opartego o FOAF, prezentowanej na <a href="http://sw.deri.org/~jbreslin/foaf-galway/" target="_blank">FOAF Workshop</a>, który odbył się w 2004 roku w Galway.</p>
<p>Do FOAF wrócimy jeszcze prezentując inne ontologie zależne od niej, np. <a href="http://www.sioc-project.org/" target="_blank">SIOC</a> (Semantycznie Połączone Społeczoności Online) oraz <a href="http://ramonantonio.net/doac/" target="_blank">DOAC</a> (Opis Kariery) oraz rozszerzenie <a href="http://blogs.sun.com/bblfish/entry/foaf_ssl_creating_a_global" target="_blank">FOAF-SSL</a> umożliwiające tworzenie rozproszonej sieci uwierzytelniającej.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/10/foaf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tworzymy lekkie ontologie sieciowe z OWL Lite</title>
		<link>http://www.semanticschool.com/2009/10/owl-lite/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/10/owl-lite/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 08:15:51 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Ontologie]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[Lite]]></category>
		<category><![CDATA[ontologia]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[RDF]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=351</guid>
		<description><![CDATA[W jednym z poprzednich artykułów opisaliśmy język OWL rekomendowany przez W3C do opisu ontologii sieciowych. W tym artykule omówimy podstawowe mechanizmy najprostszej wersji tego języka: OWL Lite. W następnych artykułach przedstawimy dwie lekkie ontologie: FOAF i SIOC, które wykorzystują pewne pojęcia z OWL Lite. OWL Lite rozszerza zestaw pojęć zdefiniowany przez RDF Schema o mechanizmy umożliwiające [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/skruk/1324850047/" target="_blank"><img class="alignright size-medium wp-image-356" title="owl-lite" src="http://www.semanticschool.com/wp-content/uploads/2009/10/owl-lite-255x300.png" alt="owl-lite" width="125" height="147" /></a><br />
W jednym z <a href="http://www.semanticschool.com/2009/10/owl-wprowadzenie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">poprzednich artykułów</a> opisaliśmy język <a href="http://www.w3.org/TR/owl-guide/" target="_blank">OWL</a> rekomendowany przez W3C do opisu ontologii sieciowych. W tym artykule omówimy podstawowe mechanizmy najprostszej wersji tego języka: <a href="http://www.w3.org/TR/2004/REC-owl-features-20040210/#s3" target="_blank">OWL Lite</a>. W następnych artykułach przedstawimy dwie <a href="http://www.semanticschool.com/2009/10/ontologie-przyklady/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">lekkie ontologie</a>: <a href="http://www.foaf-project.org/" target="_blank">FOAF</a> i <a href="http://www.sioc-project.org/" target="_blank">SIOC</a>, które wykorzystują pewne pojęcia z OWL Lite.</p>
<p><span id="more-351"></span></p>
<p><a href="http://www.flickr.com/photos/skruk/1324891135/" target="_blank"><img class="alignleft size-medium wp-image-357" style="margin-right: 1em;" title="owl-lite2" src="http://www.semanticschool.com/wp-content/uploads/2009/10/owl-lite2-238x300.png" alt="owl-lite2" width="143" height="180" /></a></p>
<p>OWL Lite rozszerza zestaw pojęć zdefiniowany przez RDF Schema o mechanizmy umożliwiające na bardziej precyzyjne definiowanie znaczenia właściwości i klas:</p>
<ul>
<li>podobieństwa elementów zdefiniowanych w ontologii:
<ul>
<li>aby określić, że dwie klasy lub właściwości są sobie równe korzystamy (odpowiednio) z <code>equivalentClass</code> i <code>equivalentProperty</code>. Równość w przypadku klas oznacza, że instancje należące do jednej należą jednocześnie do drugiej. Podobnie zdefiniowane równości właściwości oznacza, że połączenie dwóch instancji jedną z właściwości podpowiada, że są one połączone jednocześnie drugą z równych sobie właściwości. Poniższy przykład w pseudo-RDF prezentuje równoznaczność klas:
<pre>[semschool:Grzejnik] [rdf:type] [rdfs:Class].
[semschool:Kaloryfer] [rdf:type] [rdfs:Class].
[semschool:Grzejnik] [owl:equivalentClass] [semschool:Kaloryfer].</pre>
</li>
<li>aby określić, że dwie instancje są sobie równe (takie same) lub zupełnie różne, korzystamy (odpowiednio) z <code>sameAs</code> i <code>differentFrom</code>.
<pre>[semschool:Fiat126p] [rdf:type] [semschool:Samochod].
[semschool:Maluch] [rdf:type] [semschool:Samochod].
[semschool:Linea] [rdf:type] [semschool:Samochod].
[semschool:Fiat126p] [semschool:sameAs] [semschool:Maluch].
[semschool:Linea] [semschool:differentFrom] [semschool:Maluch].</pre>
</li>
<li>możemy też za pomocą pojedynczego opisu określić, że wszystkie instancje w danym zestawie są wzajemnie różne, korzystając z pojęć <code>AllDifferent</code> i <code>distinctMembers</code>. Poniższy przykład w zapisie RDF/XML prezentuje użycie pojęcia <code>AllDifferent</code> i <code>distinctMembers</code>:
<pre>&lt;owl:AllDifferent&gt;
  &lt;owl:distinctMembers rdf:parseType="Collection"&gt;
    &lt;semschool:Samochod rdf:about="#Maluch" /&gt;
    &lt;semschool:Samochod rdf:about="#Linea" /&gt;
    &lt;semschool:Samochod rdf:about="#Sedici" /&gt;
  &lt;/owl:distinctMembers&gt;
&lt;/owl:AllDifferent&gt;</pre>
</li>
</ul>
</li>
<li>typy właściwości:
<ul>
<li>OWL Lite umożliwia zdefiniowanie wzajemnie odwrotnych właściwości za pomocą pojęcia <code>inverseOf</code>, np.:
<pre>[semschool:produkuje] [rdf:type] [rdf:Property].
[semschool:jestProdukowany] [rdf:type] [rdf:Property].
[semschool:produkuje] [owl:inverseOf] [semschool:jestProdukowany].</pre>
</li>
<li>OWL Lite umożliwia również zdefiniowane typu właściwości:
<ul>
<li><code>DatatypeProperty</code> - obiekty w zdaniu, w którym są zdefiniowane dane właściwości, są literałami a nie obiektami</li>
<li><code>TransitiveProperty</code> - dana właściwość jest przechodnia, tzn. z tego że <code>[A] [powiązane] [B].</code> i <code>[B] [powiazane] [C]</code> wynika <code>[A] [powiązane] [C]</code></li>
<li><code>SymetricProperty</code> - dana właściwość jest symetryczna, tzn. z tego, że <code>[A] [powiązane] [B]</code> wynika <code>[B] [powiązane] [C]</code>.</li>
<li><code>FunctionalProperty</code> - dla danego podmiotu w zdaniu z tą właściwością, może istnieć tylko jeden obiekt (wartość).</li>
<li><code>InverseFunctionalProperty</code> - oznacza, że dla danego obiektu w zdaniu z tą właściwością, może istnieć tylko jeden podmiot. Jest to niesamowicie ważna właściwość, gdyż jej zidentyfikowanie w ontologii umożliwia wnioskowanie, że dwa zasoby o róznych URI, są w rzeczywistości tym samym zasobem.</li>
</ul>
</li>
</ul>
</li>
<li>ograniczenia na wykorzystanie właściwości przez instancje:
<ul>
<li>możemy zdefiniować, że wszystkie obiekty powiązane daną właściwością są określonego typu, np.:
<pre>&lt;owl:Class rdf:ID="Samochod"&gt;
  ...
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#maProducenta" /&gt;
      &lt;owl:allValuesFrom rdf:resource="#FabrykaSamochodow" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
  ...
&lt;/owl:Class&gt;</pre>
</li>
<li>możemy zdefiniować, że conajmniej jeden z obiektów powiązanych daną właściwością jest określonego typu, np.:
<pre>&lt;owl:Class rdf:ID="Samochod"&gt;
  ...
  &lt;rdfs:subClassOf&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#dostawcaCzesci" /&gt;
      &lt;owl:someValuesFrom rdf:resource="#FabrykaOpon" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/rdfs:subClassOf&gt;
  ...
&lt;/owl:Class&gt;</pre>
</li>
<li>możemy również określić oczekiwaną ilość właściwości, lub zdefiniować minimalne lub maksymalne ograniczenie na ilość właściwości dla danego podmiotu; do tego celu korzystamy (odpowiednio) z pojęć: <code>cardinality</code>, <code>minCardinality</code>, <code>maxCardinality</code>.</li>
</ul>
</li>
<li>definiowanie przecięć zbiorów klas i właściwości - korzystamy z pojęcia <code>intersectionOf</code>, jak w poniższym przykładzie:
<pre>&lt;owl:Class rdf:ID="BialySamochod"&gt;
  &lt;owl:intersectionOf rdf:parseType="Collection"&gt;
    &lt;owl:Class rdf:about="#Samochod" /&gt;
    &lt;owl:Restriction&gt;
      &lt;owl:onProperty rdf:resource="#maKolor" /&gt;
      &lt;owl:hasValue rdf:resource="#Bialy" /&gt;
    &lt;/owl:Restriction&gt;
  &lt;/owl:intersectionOf&gt;
&lt;/owl:Class&gt;</pre>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/10/owl-lite/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sowy wiedzą wszystko: Web Ontology Language (OWL)</title>
		<link>http://www.semanticschool.com/2009/10/owl-wprowadzenie/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/10/owl-wprowadzenie/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 07:00:00 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Ontologie]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[DAML]]></category>
		<category><![CDATA[DL]]></category>
		<category><![CDATA[Full]]></category>
		<category><![CDATA[indywiduum]]></category>
		<category><![CDATA[instancja]]></category>
		<category><![CDATA[klasa]]></category>
		<category><![CDATA[Lite]]></category>
		<category><![CDATA[OIL]]></category>
		<category><![CDATA[ontologia]]></category>
		<category><![CDATA[operacja]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[rdf schema]]></category>
		<category><![CDATA[wlasciwosc]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=301</guid>
		<description><![CDATA[Kiedy prezentowaliśmy różne specyfikacje tworzące semantyczny tort, wspomnieliśmy o ontologiach i języku OWL, umożliwiającym ich opis w sposób bardziej dokładny niż umożliwia to RDF Schema.  Ponieważ OWL jest dużo bardziej skomplikowanym standardem niż RDF Schema jego omówieniu poświęcimy kilka najbliższych artykułów. Na wstępie, omówimy czym jest, a właściwie czym są, specyfikacje OWL. Na zakończenie cyklu [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-302" title="Diagram Venna dla specyfikacji OWL" src="http://www.semanticschool.com/wp-content/uploads/2009/10/owl-venn-182x300.jpg" alt="Diagram Venna dla specyfikacji OWL" width="182" height="300" /></p>
<p>Kiedy prezentowaliśmy różne specyfikacje tworzące <a href="http://www.semanticschool.com/2009/09/semantyczny-tort/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">semantyczny tort</a>, wspomnieliśmy o ontologiach i języku <a href="http://www.w3.org/TR/owl-features/" target="_blank">OWL</a>, umożliwiającym ich opis w sposób bardziej dokładny niż umożliwia to <a href="http://www.semanticschool.com/2009/10/rdf-schema/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">RDF Schema</a>.  Ponieważ OWL jest dużo bardziej skomplikowanym standardem niż <a href="http://www.semanticschool.com/2009/10/rdfschema-podsumowanie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">RDF Schema</a> jego omówieniu poświęcimy kilka najbliższych artykułów.</p>
<p>Na wstępie, omówimy czym jest, a właściwie czym są, specyfikacje <a href="http://www.w3.org/TR/owl-features/" target="_blank">OWL</a>. Na zakończenie cyklu omówimy zmiany i rozszerzenia sugerowane w tworzonym obecnie standardzie <a href="http://www.w3.org/TR/owl2-overview/" target="_blank">OWL-2</a>.</p>
<p><span id="more-301"></span></p>
<p>Specyfikacja języka OWL zyskała status rekomendacji W3C w roku 2004. OWL został opracowany przez grupę naukowców pod kierownictwem Guus Schreiber, Franka van Harmelena, Jamesa Hendlera i Deborah'y McGuinness. OWL powstał w wyniku ewolucji z wcześniejszych standardów opisu ontologii, w tym szczególnie <a href="http://www.daml.org/2001/03/daml+oil-index.html" target="_blank">DAML+OIL</a>.</p>
<p>Podobnie jak w przypadku RDF Schema, w OWL mamy do czynienia z klasami obiektów, interpretowanymi jako zestawy indywiduów (ang. <em>individual</em>), właściwościami (ang. <em>property assertions</em>) i aksjomatami (ang. <em>axioms</em>) określającymi zależności pomiędzy nimi. OWL znacząco rozszerza możliwości opisu ontologii w porównaniu do RDF Schema, definiując dodatkowe słownictwo (ang. <em>vocabulary</em>) opisu klas i właściwości, m.in.:</p>
<ul>
<li>typy relacji pomiędzy klasami, np.: rozłączność (ang. <em>disjointness</em>),</li>
<li>ilość oczekiwanych relacji (ang. <em>cardinality</em>),</li>
<li>równoważność (ang. <em>equality</em>),</li>
<li>dodatkowe typy właściwości, np.: właściwość odwrotnie funkcyjna (ang. <em>inverse functional property</em>, IPF),</li>
<li>cechy właściwości, np. symetryczność czy przechodniość.</li>
</ul>
<p>OWL umożliwia definiowanie czterech typów pojęć:</p>
<ul>
<li><strong>klasy</strong> zasobów dziedziczące po <code>owl:Thing</code>,</li>
<li><strong>właściwości</strong>, czyli binarne relacje pomiędzy zasobami i literałami,</li>
<li><strong>instancje</strong> będące indywiduami należącymi (tworzącymi zbiór) danej klasy,</li>
<li><strong>operacje</strong> (typu suma, przecięcie, różnica) na zbiorach indywiduów, czyli klasach.</li>
</ul>
<p>Ponieważ wzrost możliwości wyrażania cech ontologii prowadzi do wzrostu złożoności obliczeniowej procesu wnioskowania, zdefiniowane zostały trzy typy specyfikacji OWL (patrz rysunek): OWL Lite, OWL DL (ang. <em>Description Logic</em>) i OWL Full.</p>
<p>Następujące zależności są spełnione pomiędzy ontologiami i wnioskami zdefiniowanymi w różnych wersjach OWL:</p>
<ul>
<li>Każda poprawna ontologia OWL Lite jest również poprawną ontologią OWL DL.</li>
<li>Każda poprawna ontologia OWL DL jest również poprawną ontologią OWL Full.</li>
<li>Każdy poprawny wniosek w OWL Lite jest również poprawnym wnioskiem w OWL DL.</li>
<li>Każdy poprawny wniosek w OWL DL jest również poprawnym wnioskiem w OWL Full.</li>
</ul>
<p>W kolejnych artykułach omówimy każdą z wersji OWL, zaczynając od OWL Lite.</p>
<p>Na zakończenie, powróćmy do akronimów, poprawnej pisowni i sów. Wbrew temu co myślicie - akronim nazwy standardu opisu ontologii internetowych, czyli Web Ontology Language, to właśnie OWL. Jeżeli czytaliście "Kubusia Puchatka" po angielsku, to zapewne pamiętacie poniższy fragment:</p>
<blockquote><p><strong>Owl</strong> took Christopher Robin’s notice from Rabbit and looked at it nervously. He could spell his own name <strong>WOL</strong>, and he could spell Tuesday so that you knew it wasn’t Wednesday, and he could read quite comfortably when you weren’t looking over his shoulder and saying "Well?" all the time...</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/10/owl-wprowadzenie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Łączymy publiczne słowniki &#8211; openvocabulary.info</title>
		<link>http://www.semanticschool.com/2009/10/openvocabulary/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/10/openvocabulary/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 06:51:17 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Usługi Semantyczne]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[DDC]]></category>
		<category><![CDATA[DMoz]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[LOC]]></category>
		<category><![CDATA[OpenThesaurus]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[PKT]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[słownik]]></category>
		<category><![CDATA[skos]]></category>
		<category><![CDATA[taksonomia]]></category>
		<category><![CDATA[tezaurus]]></category>
		<category><![CDATA[UDC]]></category>
		<category><![CDATA[WordNet]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=288</guid>
		<description><![CDATA[Każdy serwis Web 3.0 potrzebuje dwóch elementów: semantyki i społeczności. Zanim większość Internetu będzie dostępna w postaci grafu powiązanych semantycznie zasobów i usług sieciowych, musimy przedsięwziąć wszelkie kroki, aby opublikować jak najwięcej istniejących danych w postaci semantyki. Warto zacząć od opublikowania istniejących słowników, tak aby inne zasoby i usługi sieciowe mogły z nich korzystać. W [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://blog.knowledgehives.com/wp-content/uploads/ovlogo.Plkmx38acld5.jpg" alt="ovlogo.Plkmx38acld5.jpg" width="198" height="142" /></p>
<p>Każdy serwis Web 3.0 potrzebuje dwóch elementów: semantyki i społeczności. Zanim większość Internetu będzie dostępna w postaci grafu</p>
<p>powiązanych semantycznie zasobów i usług sieciowych, musimy przedsięwziąć wszelkie kroki, aby opublikować jak najwięcej istniejących danych w postaci semantyki. Warto zacząć od opublikowania istniejących słowników, tak aby inne zasoby i usługi sieciowe mogły z nich korzystać.</p>
<p><a href="http://www.semanticschool.com/2009/10/skos/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">W jednym z poprzednich artykułów</a> opisaliśmy standard <a href="http://www.w3.org/2004/02/skos/" target="_blank">SKOS</a>, który umożliwia opis słowników w formacie <a href="http://www.w3.org/RDF/" target="_blank">RDF</a>. W tym artykule przedstawimy projekt <a href="http://www.openvocabulary.info/" target="_blank">Open Vocabulary</a> umożliwiający dostęp do słowników w formacie SKOS. Projekt ten dostarcza bibliotekę programistyczną w języku Java oraz usługę sieciową typu <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" target="_blank">REST</a>.</p>
<p><span id="more-288"></span></p>
<p>Projekt Open Vocabulary składa się z trzech modułów:</p>
<ul>
<li>Reprezentacji ogólnodostępnych i otwartych słowników w formacie SKOS/RDF.</li>
<li>API w języku Java i standardzie REST umożliwiające dostęp, wyszukiwanie i przeglądanie słowników.</li>
<li>Portal umożliwiający przeglądanie i przeszukiwanie słowników.</li>
</ul>
<h2><strong>Słowniki w SKOS/RDF</strong></h2>
<p>Obecnie projekt OpenVocabulary.info udostępnia następujące słowniki:</p>
<ul style="list-style-type: disc">
<li>Taksonomie:
<ul>
<li><a href="http://kbn.icm.edu.pl/pub/kbn/docs/pkt.html">Polska Klasyfikacja Tematyczna (PKT)</a></li>
</ul>
<ul style="list-style-type: hyphen">
<li><a href="http://www2.computer.org/portal/web/publications/acmtaxonomy">Association for Computing Machinery (ACM)</a></li>
<li><a href="http://www.oclc.org/dewey/">Dewey Decimal Classification (DDC)</a></li>
<li><a href="http://www.loc.gov/flicc/wg/taxonomy.html">Library of Congress (LOC)</a></li>
<li><a href="http://www.udcc.org/">Universal Decimal Classification (UDC)</a></li>
<li><a href="http://www.dmoz.org/">Open Directory Project Taxonomy (DMoz)</a></li>
<li>Polskie pojęcia zdefiniowane w <a href="http://www.dmoz.org/">Open Directory Project (DMoz - PL)</a></li>
</ul>
</li>
<li>Tezaurusy:
<ul style="list-style-type: hyphen">
<li><a href="http://www.w3.org/TR/wordnet-rdf/">WordNet 2.0 Thesaurus</a> - oryginalny słownik <a href="http://www.semanticschool.com/2009/10/wordnet/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">WordNet</a> w wersji RDF/OWL rozszerzony o właściwości zdefiniowane w standardzie SKOS</li>
<li><a href="http://synonimy.ux.pl/">OpenThesaurus (PL)</a> - wersja SKOS/RDF polskiego tezaurusa wykorzystywanego w pakiecie OpenOffice</li>
</ul>
</li>
</ul>
<p>Reprezentacje SKOS/RDF dla wszystkich taksonomii (za wyjątkiem DMoz) zostały wygenerowane na postaci definicji dostępnej w postaci prostego pliku tekstowego. Taksonomie DMoz zostały wygenerowane na podstawie źródła w <a href="http://rdf.dmoz.org/" target="_blank">postaci zbliżonej do formatu RDF</a> i rozszerzonej o właściwości zdefiniowane w standardzie SKOS. Podobnie, wersja RDF/OWL tezaurusa WordNet została rozszerzona o relacje zdefiniowane w SKOS.<br />
Natomiast wersja SKOS/RDF polskiego słownika OpenThezaurus została stworzona od podstaw po przetworzeniu źródłowego dokumentu OpenThesaurus.</p>
<h2><span style="font-size: 15pt;"><strong>API Javy i API RESTowe</strong></span></h2>
<p>Projekt OpenVocabulary dostarcza <a href="http://opensource.knowledgehives.com/svn/OpenVocabulary/trunk/core/">bibliotekę Java</a>, która umożliwia skorzystanie ze słowników, szczególnie w na platformie JEE. Biblioteka ta dostarcza:</p>
<ul style="list-style-type: disc">
<li>API Javy do zarządzania taksonomiami, tezaurusami i tagami przechowywanymi w repozytorium RDF (wykorzystywana jest biblioteka RDF2Go i baza Sesame 2)</li>
<li>Dostęp do pełnotekstowego indeksu (korzystając z biblioteki Lucene) poprawiającego wyszukiwanie i dostęp do pojęć ze słowników projektu Open Vocabulary.</li>
<li>API RESTowe, które umożliwia usługom sieciowym dostęp do repozytorium i pojęć słowników Open Vocabulary w formacie HTML, RDF i JSON.</li>
</ul>
<p>REST API zostało przygotowane w oparciu o wytyczne promowane przez inicjatywę <a href="http://linkeddata.org/">Linked Data</a> initiative, o których napiszemy niedługo. Dodatkowymi usługami dostarczanymi przez Open Vocabulary są:</p>
<ul style="list-style-type: disc">
<li>Przegląd (ang. <em>lookup</em>) - dostarczane przez usługę w schemacie <code>/vocabularis/lookup?uri=</code> umożliwia dostęp do informacji o pojęciach ze słowników przechowywanych w bazie RDF, jednak zdefiniowanych w innej przestrzeni nazw niż ta w której dostępne są usługi biblioteki OpenVocabulary; przykładem takiego słownika może być WordNet.</li>
<li>Wyszukiwanie (ang. <em>search</em>) - dostarczane przez usługę w schemacie <code>/vocabularies/search?q=[&amp;threshold=&amp;size=]</code> umożliwia wyszukiwanie w pełnotekstowym indeksie słowników, z możliwością określenia minimalnego progu (ang. <em>threshold</em>) podobieństwa oraz maksymalnej ilości wyników wyszukiwania.</li>
</ul>
<h2><span style="font-size: 14pt;"><strong>Portal do przeglądania i przeszukiwania słowników </strong></span></h2>
<p>W ramach projektu Open Vocabulary zainstalowany został referencyjny portal <a href="http://www.openvocabulary.info/">http://www.openvocabulary.info/</a>, który:</p>
<ul style="list-style-type: disc">
<li>umożliwia dostęp do pojęć ze wspieranych słowników w postaci HTML, RDF i JSON,</li>
<li>dostarcza przeglądu możliwości API Javy, włącznie z dostępem do indeksu pełnotekstowego,</li>
<li>dla zarejestrowanych użytkowników - umożliwia pobranie archiwów zawierających słowniki w formacie RDF oraz ich indeksy pełnotekstowe dla biblioteki Lucene.</li>
</ul>
<p>[na podstawie: <a href="http://blog.knowledgehives.com/2009/08/linking-public-vocabularies-openvocabularyinfo/" target="_blank">Linking Public Vocabularies – openvocabulary.info</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/10/openvocabulary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dziedziczenie, czyli o pokrętnej logice w RDF Schema ciąg dalszy</title>
		<link>http://www.semanticschool.com/2009/10/rdf-schema-dziedziczeni/#utm_source=feed&#038;utm_medium=feed&#038;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/10/rdf-schema-dziedziczeni/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 08:45:25 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Dla programistów]]></category>
		<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[dziedziczenie]]></category>
		<category><![CDATA[klasa]]></category>
		<category><![CDATA[logika]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[rdf schema]]></category>
		<category><![CDATA[wlasciwosc]]></category>
		<category><![CDATA[wnioskowanie]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=217</guid>
		<description><![CDATA[Poprzednie dwa artykuły przybliżyły nam czym jest i jak można wykorzystać standard RDF Schema. Mam również nadzieję, że przygotowały Was na kolejną ciekawostkę dotyczącą RDF Schema: dziedziczenie. Zapewne wielu z Was, którzy znają programowanie obiektowe, z hasłem "dziedziczenie" rozumie następujący scenariusz: Mamy kilka klas, z których każda definiuje pewne metody i właściwości. Jeżeli dwie klasy [...]]]></description>
			<content:encoded><![CDATA[<p>Poprzednie dwa artykuły przybliżyły nam <a href="http://www.semanticschool.com/2009/10/rdf-schema/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">czym jest</a> i <a href="http://www.semanticschool.com/2009/10/rdf-schema-wnioskowanie/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed">jak można wykorzystać</a> standard RDF Schema. Mam również nadzieję, że przygotowały Was na kolejną ciekawostkę dotyczącą RDF Schema: dziedziczenie.</p>
<p><span id="more-217"></span></p>
<p>Zapewne wielu z Was, którzy znają programowanie obiektowe, z hasłem "dziedziczenie" rozumie następujący scenariusz:</p>
<p>Mamy kilka klas, z których każda definiuje pewne metody i właściwości. Jeżeli dwie klasy dziedziczą po sobie to właściwości i metody dostępne w klasie nadrzędnej są również dostępne w klasie, która dziedziczy po niej.</p>
<p>Zgadza się. To jest właśnie programowanie obiektowe. A teraz możecie spokojnie zapomnieć o tej teorii kiedy myślicie o ontologiach i RDF Schema.</p>
<ol>
<li>W RDF Schema (oraz innych językach opisu ontologii, np. OWL) możemy definiować hierarchię dziedziczenia nie tylko klas ale również i właściwości. Pamiętacie jak pisałem wcześniej, że w RDF Schema właściwości mają takie same znaczenie jak klasy (ang. <em>first-class citizens</em>) ? Oto kolejny przykład na potwierdzenie tej tezy.</li>
<li>Dziedziczenie właściwości zdefiniowanych w RDF Schema jest <strong>odwrotne</strong> do tego jak ma to miejsce w programowaniu obiektowym.</li>
</ol>
<p>Ilu z Was pomyślało sobie właśnie, że to jakieś kompletne bzdury ?</p>
<p>Ale niestety, tak właśnie jest. I im szybciej zapamiętacie te dwie reguły, tym mniej problemów z korzystaniem z dobrodziejstw Sieci Semantycznej, będziecie mieli w przyszłości.</p>
<p>Czas na dokładne wyjaśnienia. Do zdefiniowania zależności dziedziczenia pomiędzy klasami lub właściwościami używamy predykatów (odpowiednio) <code>[rdfs:subClassOf]</code> i <code>[rdfs:subPropertyOf]</code>.</p>
<pre>[semschool:Człowiek] [rdf:type] [rdfs:Class].
[semschool:Kierowca] [rdf:type] [rdfs:Class].
[semschool:Pojazd] [rdf:type] [rdfs:Class].
[semschool:Samochód] [rdf:type] [rdfs:Class].
[semschool:poruszać_się] [rdf:type] [rdf:Property].
[semschool:kierować] [rdf:type] [rdf:Property].</pre>
<pre>[semschool:poruszać_się] [rdfs:domain] [semschool:Człowiek].
[semschool:poruszać_się] [rdfs:range] [semschool:Pojazd].
[semschool:kierować] [rdfs:domain] [semschool:Kierowca].
[semschool:kierować] [rdfs:range] [semschool:Samochód].</pre>
<pre>[semschool:Kierowca] [rdfs:subClassOf] [semschool:Człowiek].
[semschool:kierować] [rdfs:subPropertyOf] [semschool:poruszać_się].</pre>
<p>W powyższym przykładzie zdefiniowaliśmy cztery klasy i dwie właściwości, oraz zależności pomiędzy nimi: <code>[Kierowca]</code> dziedziczy po <code>[Człowieku]</code>, właściwość <code>[kierować]</code> po właściwości <code>[poruszać_się]</code>.</p>
<p>Co w ten sposób powiedzieliśmy maszynie?</p>
<ol>
<li>Każdy zasób, który jest typu <code>[Kierowca]</code> jest również typu <code>[Człowiek]</code>.</li>
<li>Każda para zasobów spełniająca właściwość <code>[kierować]</code> spełnia również właściwość <code>[poruszać_się]</code>.</li>
</ol>
<p>Jak na razie nic strasznego prawda? Ale ...</p>
<ol>
<li>Jeżeli nie mielibyśmy zdefiniowanego dziedziczenia pomiędzy klasami, to właściwość [poruszać_się] nie byłaby <em>zdefiniowana</em> dla klasy [Kierowca]. Pamiętajmy, że nie oznacza to, że nie możemy z niej skorzystać dla zasobu który jest typu [Kierowca], stanie się on tylko jednocześnie zasobem typu <code>[Człowiek]</code>.</li>
<li>Jeżeli dane byłoby tylko dziedziczenie pomiędzy klasami, to właściwość <code>[poruszać_się]</code> byłaby <em>dostępna</em> dla zasobów typu <code>[Człowiek]</code>.</li>
<li>Jeżeli nie będzie zdefiniowanego dziedziczenia pomiędzy właściwościami, to np. wszystkie zasoby typu <code>[Kierowca]</code> będą również zasobami typu <code>[Człowiek]</code>, ... i nic poza tym, tzn. nie będzie to oznaczało, że właściwość <code>[poruszać_się]</code> będzie <em>dziedziczona</em>, ale podobnie jak poprzednio, nie oznacza to, że nie będzie dostępna!</li>
</ol>
<p>Skomplikowane? Być może, ale tylko dlatego, że używamy niepoprawnej terminologii, wywodzącej się z programowania obiektowego, a nie z logiki. To powoduje, że myślimy w niepoprawny sposób o wiedzy zapisanej w RDF Schema.</p>
<p>Spróbujmy jeszcze raz:</p>
<ol>
<li>Jeżeli zdefiniujemy jedynie dziedziczenie właściwości, to maszyna przeprowadzi następujące rozumowanie:
<ul>
<li>Z  <code>[A] [kieruje] [B]</code> wynika: <code>[A] jest [Kierowcą]</code>, <code>[B] jest [Samochodem]</code>, oraz <code>[A] [porusza_się] [B]</code>.</li>
</ul>
</li>
<li>Jeżeli zdefiniujemy jedynie dziedziczenie klas, to maszyna przeprowadzi następujące rozumowanie:
<ul>
<li>Z  <code>[A] [kieruje] [B]</code> wynika: <code>[A] jest [Kierowcą]</code>, <code>[B] jest [Samochodem]</code>.</li>
<li>Z powyższego wynika również, że <code>[A] jest [Człowiekiem], [B] jest [Pojazdem]</code>.</li>
</ul>
</li>
</ol>
<p>Mam nadzieję, że powyższe zdania wydały się już bardziej przyjazne. Warto więc zapamiętać, że RDF Schema nie służy do definiowania schematów znanych nam z np. programowania obiektowego, i nie należy ostrożnie podchodzić do wyciągania wniosków z informacji w niej zapisanych.</p>
<p>Na zakończenie cytat ze <a href="http://www.w3.org/TR/rdf-schema/" target="_blank">specyfikacji RDF Schema</a>, który zapowiada czym będziemy zajmowali się w następnych odcinkach:</p>
<blockquote><p>Note: The basic facilities provided by rdfs:domain and rdfs:range do not provide any direct way to indicate property restrictions that are local to a class. Although it is possible to combine use rdfs:domain and rdfs:range with sub-property hierarchies, direct support for such declarations are provided by richer Web Ontology languages such as <a href="http://www.w3.org/TR/rdf-schema/#ref-owl" target="_blank">OWL</a>.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/10/rdf-schema-dziedziczeni/feed/</wfw:commentRss>
		<slash:comments>0</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 2.515 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-09 05:55:45 -->
<!-- Compression = gzip -->
