<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>apohllo.pl</title>
  <link href="http://home.apohllo.railsplayground.net/feeds/atom" rel="self" type="application/atom+xml"/>
  <link href="http://home.apohllo.railsplayground.net/" rel="alternate" type="text/html"/>
  <id>tag:home.apohllo.railsplayground.net</id>
  <updated>2010-06-05T12:00:00Z</updated>
  <author>
    <name>Aleksander Pohl</name>
  </author>
  <entry>
    <title>Zestawienie polece&#324;: Git i SVN</title>
    <link href="http://home.apohllo.railsplayground.net/blog/zestawienie-polece-git-a-z-svn-em" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/blog/zestawienie-polece-git-a-z-svn-em</id>
    <updated>2010-06-05T14:59:44Z</updated>
    <published>2010-06-05T12:00:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Yehuda Katz &lt;a href=&quot;http://yehudakatz.com/2010/05/13/common-git-workflows/&quot;&gt;opublikowa&#322;&lt;/a&gt; artyku&#322;, w kt&#243;rym pokazuje, jak 
wygl&#261;d jego typowa sesja edycji kodu w kontek&#347;cie Git-a. Ca&#322;y artyku&#322; warty jest przeczytania, natomiast
tabelka, kt&#243;ra pojawia si&#281; na ko&#324;cu zdecydowanie mo&#380;e s&#322;u&#380;y&#263; za...</summary>
    <category label="Svn" term="svn" scheme="http://home.apohllo.railsplayground.net/tags/show/svn"/>
    <category label="Git" term="git" scheme="http://home.apohllo.railsplayground.net/tags/show/git"/>
    <content type="html">
&lt;p&gt;Yehuda Katz &lt;a href=&quot;http://yehudakatz.com/2010/05/13/common-git-workflows/&quot;&gt;opublikowa&#322;&lt;/a&gt; artyku&#322;, w kt&#243;rym pokazuje, jak 
wygl&#261;d jego typowa sesja edycji kodu w kontek&#347;cie Git-a. Ca&#322;y artyku&#322; warty jest przeczytania, natomiast
tabelka, kt&#243;ra pojawia si&#281; na ko&#324;cu zdecydowanie mo&#380;e s&#322;u&#380;y&#263; za &#347;ci&#261;g&#281; z Gita, dla wcze&#347;niejszych 
u&#380;ytkownik&#243;w &lt;span class=&quot;caps&quot;&gt;SVN&lt;/span&gt;-a. Pozwalam j&#261; sobie przerysowa&#263;:&lt;/p&gt;


	&lt;table&gt;
		&lt;tr&gt;
			&lt;th&gt;Operacja &lt;/th&gt;
			&lt;th&gt;git     &lt;/th&gt;
			&lt;th&gt;svn&lt;/th&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Klonowanie repozytorium     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git clone git://github.com/rails/rails.git&lt;/code&gt;     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;svn checkout http://dev.rubyonrails.org/svn/rails/trunk&lt;/code&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Przygotowywanie zmian     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git add, git commit&lt;/code&gt;      &lt;/td&gt;
			&lt;td&gt;brak lub r&#281;czne przygotowanie diff-a&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;&#346;ci&#261;ganie zmian z repozytorium     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git pull --rebase&lt;/code&gt;     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;svn up&lt;/code&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Rozstrzyganie konflikt&#243;w     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git add, git rebase --continue&lt;/code&gt;     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;svn resolve&lt;/code&gt;&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Rozstrzyganie konflikt&#243;w (bez&amp;#8212;rebase)     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git add, git commit&lt;/code&gt;     &lt;/td&gt;
			&lt;td&gt;brak&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Wycofywanie zmian (przygotowanych do wys&#322;ania)    &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git reset --hard&lt;/code&gt;     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;svn up -rOLD&lt;/code&gt; potem zaaplikowanie diff-a (je&#347;li pami&#281;ta&#322;e&#347; &#380;eby go zrobi&#263;)&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;Publikowanie do repozytorium     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;git push&lt;/code&gt;     &lt;/td&gt;
			&lt;td&gt;&lt;code&gt;svn commit&lt;/code&gt;&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;    </content>
  </entry>
  <entry>
    <title>Musicbrainz w Rubim</title>
    <link href="http://home.apohllo.railsplayground.net/blog/musicbrainz-w-rubim" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/blog/musicbrainz-w-rubim</id>
    <updated>2010-05-22T14:01:47Z</updated>
    <published>2010-05-22T11:44:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;h2&gt;SemanticWeb i Ruby&lt;/h2&gt;


	&lt;p&gt;Niestety nie mam zbyt wiele czasu, aby t&#322;umaczy&#263; ide&#281; SemanticWeb. W dw&#243;ch s&#322;owach mo&#380;na powiedzie&#263;, 
&#380;e chodzi mo&#380;liwo&#347;&#263; pobierania danych z Internetu w spos&#243;b zbli&#380;ony do podbierania danych 
z relacyjnej bazy danych. Oczywi&#347;cie bior&#261;c pod uwag&#281; immanentny inter...</summary>
    <category label="Ruby" term="ruby" scheme="http://home.apohllo.railsplayground.net/tags/show/ruby"/>
    <category label="Semantic web" term="semantic web" scheme="http://home.apohllo.railsplayground.net/tags/show/semantic%20web"/>
    <category label="Active rdf" term="active rdf" scheme="http://home.apohllo.railsplayground.net/tags/show/active%20rdf"/>
    <category label="Musicbrainz" term="musicbrainz" scheme="http://home.apohllo.railsplayground.net/tags/show/musicbrainz"/>
    <content type="html">
&lt;h2&gt;SemanticWeb i Ruby&lt;/h2&gt;


	&lt;p&gt;Niestety nie mam zbyt wiele czasu, aby t&#322;umaczy&#263; ide&#281; SemanticWeb. W dw&#243;ch s&#322;owach mo&#380;na powiedzie&#263;, 
&#380;e chodzi mo&#380;liwo&#347;&#263; pobierania danych z Internetu w spos&#243;b zbli&#380;ony do podbierania danych 
z relacyjnej bazy danych. Oczywi&#347;cie bior&#261;c pod uwag&#281; immanentny internetowy pluralizm, trudno wyobra&#380;a&#263;
sobie, &#380;e taka &amp;#8220;baza danych&amp;#8221; mog&#322;aby posiada&#263; wsp&#243;lny schemat, dlatego te&#380; jednym z kluczowych element&#243;w
SemanticWeb jest koncepcja ontologii &amp;#8211; w tym kontek&#347;cie: specyfikacji poj&#281;&#263;, kt&#243;re s&#322;u&#380;&#261; do opisu danych.&lt;/p&gt;


	&lt;p&gt;Na dzie&#324; dzisiejszy jedn&#261; z najbardziej donios&#322;ych manifestacji tej idei jest &lt;a href=&quot;http://linkeddata.org&quot;&gt;Linked Open Data&lt;/a&gt; i s&#322;ynna &lt;a href=&quot;http://richard.cyganiak.de/2007/10/lod/&quot;&gt;chmura ontologii&lt;/a&gt;, czyli
obrazek, kt&#243;ry ma nas przekona&#263;, &#380;e inwestuj&#261;c w ide&#281; SemanticWeb, mo&#380;na ju&#380; pobra&#263; bardzo du&#380;o danych
w ten spos&#243;b i, co wi&#281;cej, dane te nie b&#281;d&#261; odizolowane, ale przynajmniej w pewnym stopniu powi&#261;zane z innymi
danymi, publikowanymi przez rozmaite podmioty.&lt;/p&gt;


	&lt;p&gt;Jednym z kluczowych element&#243;w SemanticWeb staje si&#281; &lt;a href=&quot;http://dbpedia.org&quot;&gt;DBpedia&lt;/a&gt;, kt&#243;ra jest ontologi&#261; 
powsta&#322;&#261; na bazie informacji wyekstrahowanych z angielskiej (ale nie tylko) Wikipedii. Coraz wi&#281;cej 
innych zasob&#243;w jest &amp;#8220;linkowanych&amp;#8221; do DBpedii, dzi&#281;ki czemu staje si&#281; ona w du&#380;ej mierze ontologi&#261; 
(schematem) odniesienia.&lt;/p&gt;


	&lt;p&gt;Czy faktycznie mo&#380;na ju&#380; wykorzystywa&#263; powi&#261;zania pomi&#281;dzy poszczeg&#243;lnymi &#378;r&#243;d&#322;ami wiedzy pozostaje kwesti&#261; 
dyskusyjn&#261; (np. przedstawione na obrazku powi&#261;zanie DBpedii z Musicbrainzem wydaje si&#281; mocno w&#261;tpliwe, gdy&#380;
najistotniejsze elementy &amp;#8211; czyli klasy, nie s&#261; powi&#261;zane), niemniej jednak warto &#347;ledzi&#263; rozw&#243;j tej koncepcji,
gdy&#380; istotnie staj&#281; si&#281; ona coraz powa&#380;niej traktowana r&#243;wnie&#380; przez instytucje komercyjne (np. Reuters, &lt;span class=&quot;caps&quot;&gt;BBC&lt;/span&gt;).&lt;/p&gt;


	&lt;p&gt;Jako, &#380;e moim ulubionym j&#281;zykiem jest Rubi, &lt;a href=&quot;/blog/activerdf-i-dbpedia&quot;&gt;jaki&#347; czas temu&lt;/a&gt; testowa&#322;em mo&#380;liwo&#347;&#263;
wykorzystania biblioteki &lt;a href=&quot;http://activerdf.org&quot;&gt;ActiveRDF&lt;/a&gt; do pobierania danych z DBpedii. W tamtym po&#347;cie jest
w zasadzie tylko kod i je&#347;li nie mia&#322;o si&#281; styczno&#347;ci z ActiveRDF trudno cokolwiek z niego wywnioskowa&#263;.
W niniejszym po&#347;cie chcia&#322;bym przedstawi&#263; inny przyk&#322;ad wykorzystania ActiveRDF, tym razem do 
pobierania danych z &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainza&lt;/a&gt;, czyli wielkiej bazy zawieraj&#261;cej dane dotycz&#261;ce
tysi&#281;cy muzyk&#243;w, p&#322;yt, utwor&#243;w muzycznych i tym podobnych.&lt;/p&gt;


	&lt;h2&gt;ActiveRDF&lt;/h2&gt;


	&lt;p&gt;ActiveRDF, jak mo&#380;na wnioskowa&#263; na podstawie nazwy, ma uczyni&#263; nasze &#380;ycie z SemanticWeb znacznie prostszym
(podobnie jak ActiveRecord czyni prostszym (?) obs&#322;ug&#281; relacyjnych baz danych). Niestety 
po tym jak tw&#243;rca tej biblioteki, czyli Eyal Oren przesta&#322; si&#281; ni&#261; opiekowa&#263;, straci&#322;a ona swoja pocz&#261;tkow&#261; 
stabilno&#347;&#263;, a, co gorsza, wiele przyk&#322;ad&#243;w, kt&#243;re zosta&#322;y udokumentowane, przesta&#322;o dzia&#322;a&#263; w kolejnych 
wersjach. Jest to pewna przypad&#322;o&#347;&#263; j&#281;zyk&#243;w dynamicznych, w szczeg&#243;lno&#347;ci Rubiego, &#380;e tw&#243;rcy rozwi&#261;za&#324; 
mniejsz&#261; wag&#281; przywi&#261;zuj&#261; do zachowania stabilnego &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; &amp;#8211; w my&#347;l zasady: &amp;#8220;lepsze wrogiem dobrego&amp;#8221;, zapominaj&#261;c
jednak, &#380;e cz&#281;sto &amp;#8220;dzia&#322;aj&#261;ce lepsze od &#380;adnego&amp;#8221;. Pomijaj&#261;c jednak te filozoficzne dywagacje, warto
wspomnie&#263;, &#380;e obecnie ActiveRDF ma swoje &lt;a href=&quot;http://github.com/ActiveRDF/ActiveRDF&quot;&gt;konto na Githubie&lt;/a&gt; i jest
rozwijane. Niemniej jednak uruchomienie najnowszej (1.7.0) wersji, w szczeg&#243;lno&#347;ci je&#347;li u&#380;ywamy Rubiego 1.9
nie jest wcale banalne.&lt;/p&gt;


	&lt;p&gt;Niestety aktualny opiekun biblioteki nie otagowa&#322; tej wersji, nie wys&#322;a&#322; jej tak&#380;e na &lt;a href=&quot;/blog/gemcutter&quot;&gt;gemcuttera&lt;/a&gt;,
przez co skazani jeste&#347;my na budowanie gema ze &#378;r&#243;de&#322;, co wcale nie jest takie banalne (specyfikacja
gem&#243;w zdefiniowana jest z u&#380;yciem jewelera, kt&#243;ry jest niekompatybilny z Rubim 1.9). Dlatego najpro&#347;ciej
jest &#347;ci&#261;gn&#261;&#263; &lt;a href=&quot;http://github.com/apohllo/ActiveRDF/tree/1_7_0&quot;&gt;mojego brancha 1_7_0&lt;/a&gt;&lt;/p&gt;


&lt;pre&gt;
&lt;span class='bash'&gt;$ git clone git://github.com/apohllo/ActiveRDF.git&lt;/span&gt;
...
&lt;span class='bash'&gt;$ cd ActiveRDF&lt;/span&gt;&lt;/pre&gt;


	&lt;p&gt;Niestety nie obejdzie si&#281; bez u&#380;ycia Rubiego 1.8 do zbudowania gema. Ja korzystam z Gentoo, dlatego 
mog&#281; zmieni&#263; wersj&#281; wykonuj&#261;c polecenie:&lt;/p&gt;


&lt;pre&gt;
&lt;span class='bash'&gt;$ sudo eselect ruby set 1&lt;/span&gt;
Successfully switched to profile:
  ruby18
&lt;span class='bash'&gt;$ /usr/bin/ruby18 /usr/bin/rake build&lt;/span&gt;
(in /home/fox/src/ruby/ActiveRDF)
Gokdok is not available. Install with: gem install gokdok
Rcov or dependency is not available
Generated: activerdf_net7.gemspec
activerdf_net7.gemspec is valid.
WARNING:  no rubyforge_project specified
WARNING:  deprecated autorequire specified
  Successfully built RubyGem
  Name: activerdf_net7
  Version: 1.7.0
  File: activerdf_net7-1.7.0.gem
&lt;span class='bash'&gt;$ sudo eselect ruby set 2&lt;/span&gt;
Successfully switched to profile:
  ruby19
&lt;span class='bash'&gt;$ sudo gem install pkg/activerdf_net7-1.7.0.gem&lt;/span&gt;&lt;/pre&gt;


	&lt;p&gt;Mo&#380;na r&#243;wnie&#380; skorzysta&#263; z &lt;a href=&quot;http://rvm.beginrescueend.com/&quot;&gt;rvm&lt;/a&gt;, ale nie b&#281;d&#281; tego opisywa&#322; w szczeg&#243;&#322;ach.&lt;/p&gt;


	&lt;p&gt;Kiedy mamy ju&#380; zbudowany i zainstalowany gem &lt;strong&gt;activerdf&lt;/strong&gt; w wersji 1.7.0 musimy jeszcze doinstalowa&#263; 
odpowiedni adapter &lt;span class=&quot;caps&quot;&gt;RDF&lt;/span&gt;. Poniewa&#380; Musicbrainz eksponuje &lt;a href=&quot;http://dbtune.org/musicbrainz/sparql&quot;&gt;sparql endpoint&lt;/a&gt;,
musimy doinstalowa&#263; w&#322;a&#347;nie ten adapter:&lt;/p&gt;


&lt;pre&gt;
&lt;span class='bash'&gt;$ cd activerdf-sparql/&lt;/span&gt;
&lt;span class='bash'&gt;$ gem build activerdf-sparql.gemspec&lt;/span&gt;
WARNING:  no email specified
WARNING:  no homepage specified
WARNING:  no rubyforge_project specified
WARNING:  description and summary are identical
  Successfully built RubyGem
  Name: activerdf-sparql
  Version: 1.3.6
  File: activerdf-sparql-1.3.6.gem
&lt;span class='bash'&gt;$ sudo gem install activerdf-sparql-1.3.6.gem&lt;/span&gt;
...&lt;/pre&gt;


	&lt;p&gt;W tej chwili jeste&#347;my ju&#380; w pe&#322;ni wyposa&#380;eni aby korzysta&#263; z ActiveRDF w najnowszej wersji w Rubim 1.9&lt;/p&gt;


	&lt;h2&gt;Musicbrainz&lt;/h2&gt;


	&lt;p&gt;&lt;a href=&quot;http://dbtune.org/musicbrainz/sparql&quot;&gt;Sparql endpoint&lt;/a&gt; Musicbrainz jest obs&#322;ugiwany przez serwer 
&lt;a href=&quot;http://www.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/&quot;&gt;d2r&lt;/a&gt;, kt&#243;ry oficjalnie nie jest wspierany 
przez aktualny adapter ActiveRDF. Najwyra&#378;niej jednak standard &lt;span class=&quot;caps&quot;&gt;SPARQL&lt;/span&gt; staje si&#281; na tyle dojrza&#322;y, &#380;e
nie ma zbyt wielu r&#243;&#380;nic pomi&#281;dzy poszczeg&#243;lnymi implementacjami, dzi&#281;ki czemu mo&#380;na wykorzysta&#263; np.
implementacj&#281; dla serwera Virtuoso.&lt;/p&gt;


&lt;div class='ruby'&gt;&lt;pre&gt;
&lt;span class=&quot;ident&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;active_rdf&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;
&lt;span class=&quot;ident&quot;&gt;include&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;ActiveRDF&lt;/span&gt;
&lt;span class=&quot;constant&quot;&gt;ConnectionPool&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:type&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:sparql&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:url&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;http://dbtune.org/musicbrainz/sparql&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;',&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:engine&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:virtuoso&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


	&lt;p&gt;Powy&#380;szy kod tworzy po&#322;&#261;czenie z ontologi&#261; Musicbrainz. Nast&#281;pnie rejestrujemy najistotniejsze
przestrzenie nazw (FOAF:http://www.foaf-project.org/, oraz MusicOntology:http://musicontology.com/):&lt;/p&gt;


&lt;div class='ruby'&gt;&lt;pre&gt;
&lt;span class=&quot;constant&quot;&gt;ActiveRDF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;Namespace&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;register&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:foaf&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;http://xmlns.com/foaf/0.1/&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;
&lt;span class=&quot;constant&quot;&gt;ActiveRDF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;Namespace&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;register&lt;/span&gt; &lt;span class=&quot;symbol&quot;&gt;:mo&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;http://purl.org/ontology/mo/&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


	&lt;p&gt;W zasadzie w tym momencie mogliby&#347;my ju&#380; przegl&#261;da&#263; zawarto&#347;&#263; Musicbrainza, ale jest jeszcze jeden 
haczyk &amp;#8211; ot&#243;&#380; najwyra&#378;niej serwer &lt;span class=&quot;caps&quot;&gt;D2R&lt;/span&gt; nie radzi sobie z zapytaniami, w kt&#243;rych explicite podane s&#261; 
typy atrybut&#243;w (np. dla &#322;a&#324;cucha znak&#243;w). Dlatego te&#380; musimy ustawi&#263; zmienn&#261; globaln&#261; (sic!) 
&lt;code&gt;$activerdf_without_datatype&lt;/code&gt; na &lt;code&gt;true&lt;/code&gt;:&lt;/p&gt;


&lt;div class='ruby'&gt;&lt;pre&gt;
&lt;span class=&quot;global&quot;&gt;$activerdf_without_datatype&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;true&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


	&lt;p&gt;Mam nadziej&#281;, &#380;e w kolejnych wersjach ActiveRDF mo&#380;na b&#281;dzie zrobi&#263; to w bardziej cywilizowany spos&#243;b.
Tak, czy owak, w tej chwili mo&#380;emy ju&#380; przegl&#261;da&#263; szczeg&#243;&#322;owe informacje na temat muzyk&#243;w, zespo&#322;&#243;w i innych, np.
W teorii wygl&#261;d prosto, ale w praktyce (ze wzgl&#281;du na rozproszony charakter wiedzy), sprawy si&#281; komplikuj&#261;:&lt;/p&gt;


&lt;div class='ruby'&gt;&lt;pre&gt;
&lt;span class=&quot;ident&quot;&gt;sting&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;ActiveRDF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;Query&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:x&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:x&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;FOAF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;Sting&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;&amp;quot;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;ident&quot;&gt;sting&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;foaf&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;first&lt;/span&gt;
&lt;span class=&quot;comment&quot;&gt;#=&amp;gt; &amp;quot;Sting&amp;quot; &lt;/span&gt;
&lt;span class=&quot;ident&quot;&gt;groups&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;ActiveRDF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;Query&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:x&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:x&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;FOAF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;member&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;sting&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;execute&lt;/span&gt;
&lt;span class=&quot;ident&quot;&gt;groups&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;each&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;{|&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;foaf&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;first&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;constant&quot;&gt;Strontium&lt;/span&gt; &lt;span class=&quot;number&quot;&gt;90&lt;/span&gt;
&lt;span class=&quot;constant&quot;&gt;The&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;Police&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


	&lt;p&gt;W powy&#380;szym przyk&#322;adzie z bazy pobieram zas&#243;b, kt&#243;ry reprezentuje Stinga. Nast&#281;pnie odpytujemy si&#281; o jego
&amp;#8220;nazw&#281;&amp;#8221; &amp;#8211; i tutaj w&#322;a&#347;nie pierwsza niespodzianka, bo musimy dla tej nazwy (kt&#243;re te&#380; jest zasobem) wywo&#322;a&#263;
metod&#281; &amp;#8220;first&amp;#8221;. Pow&#243;d tego (w moim najlepszym mniemaniu) jest taki, &#380;e mogliby&#347;my mie&#263; w kilku &#378;r&#243;d&#322;ach
wiedzy r&#243;&#380;ne warto&#347;ci tego predykatu i musimy mie&#263; dost&#281;p do wszystkich.&lt;/p&gt;


	&lt;p&gt;Nast&#281;pnie pobieramy informacje o zespo&#322;ach, w kt&#243;rych gra&#322; Sting. Wykorzystujemy do tego predykat &lt;span class=&quot;caps&quot;&gt;FOAF&lt;/span&gt;:member,
kt&#243;ry wi&#261;&#380;e grup&#281; z jej cz&#322;onkami (grupa jest podmiotem w tej relacji). Dostajemy dwa rezultaty, do kt&#243;rych 
dobieramy si&#281; tak jak wcze&#347;niej.&lt;/p&gt;


	&lt;p&gt;Na koniec pobierzemy informacje o zarejestrowanych koncertach, w kt&#243;rych Sting by&#322; wiod&#261;cym wokalist&#261;:&lt;/p&gt;


&lt;div class='ruby'&gt;&lt;pre&gt;
&lt;span class=&quot;ident&quot;&gt;performances&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;ActiveRDF&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;constant&quot;&gt;Query&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:x&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;symbol&quot;&gt;:x&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;MO&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;lead_singer&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;sting&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;execute&lt;/span&gt;
&lt;span class=&quot;ident&quot;&gt;performances&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;each&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;{|&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;comment&quot;&gt;#=&amp;gt; Sting performing (recorded on album Why Don't You Answer?)&lt;/span&gt;
&lt;span class=&quot;comment&quot;&gt;#=&amp;gt; Sting performing (recorded on album Zenyatt&#224; Mondatta)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;


	&lt;p&gt;Jak wida&#263; powy&#380;ej, w bazie widniej&#261; tylko informacje o dw&#243;ch zarejestrowanych koncertach.&lt;/p&gt;


	&lt;h2&gt;Podsumowanie&lt;/h2&gt;


	&lt;p&gt;Pomimo problem&#243;w jakie trzeba rozwi&#261;za&#263;, korzystaj&#261;c z wiedzy zawartej w SemanticWeb, mo&#380;na przyj&#261;&#263;
na chwil&#281; obecn&#261;, &#380;e technologie semantyczne s&#261; ju&#380; &amp;#8220;u&#380;ywalne&amp;#8221;, a w Rubim, czego mogli&#347;my si&#281; spodziewa&#263;,
po przezwyci&#281;&#380;eniu problem&#243;w konfiguracyjnych, mo&#380;na ca&#322;kiem przyjemnie je przetwarza&#263;.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Zaj&#281;cia nr 8/2010 BD</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-8-2010" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-8-2010</id>
    <updated>2010-04-22T07:49:45Z</updated>
    <published>2010-04-22T10:35:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Na zaj&#281;ciach nr 8 b&#281;dziemy zajmowa&#263; si&#281; relacyjnym modelem danych.&lt;/p&gt;


	&lt;p&gt;Wi&#281;cej informacji na temat relacyjnego modelu danych mo&#380;na znale&#378;&#263; w dziale 
&lt;a href=&quot;/dydaktyka/bazy-i/m-relacyjne&quot;&gt;modelowanie relacyjne&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Podstawowym narz&#281;dziem wykorzystywany do tworzenia modelu relac...</summary>
    <category label="Db" term="db" scheme="http://home.apohllo.railsplayground.net/tags/show/db"/>
    <category label="Rdb" term="rdb" scheme="http://home.apohllo.railsplayground.net/tags/show/rdb"/>
    <category label="Mysql workbench" term="mysql workbench" scheme="http://home.apohllo.railsplayground.net/tags/show/mysql%20workbench"/>
    <content type="html">
&lt;p&gt;Na zaj&#281;ciach nr 8 b&#281;dziemy zajmowa&#263; si&#281; relacyjnym modelem danych.&lt;/p&gt;


	&lt;p&gt;Wi&#281;cej informacji na temat relacyjnego modelu danych mo&#380;na znale&#378;&#263; w dziale 
&lt;a href=&quot;/dydaktyka/bazy-i/m-relacyjne&quot;&gt;modelowanie relacyjne&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Podstawowym narz&#281;dziem wykorzystywany do tworzenia modelu relacyjnego 
b&#281;dzie &lt;a href=&quot;http://wb.mysql.com/&quot;&gt;MySQL Workbench&lt;/a&gt;&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Zaj&#281;cia nr 7/2010 BD</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-7-2010-bd" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-7-2010-bd</id>
    <updated>2010-04-22T07:43:43Z</updated>
    <published>2010-04-22T07:43:43Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Zaj&#281;cia b&#281;d&#261; mia&#322;y charakter konsultacyjny.&lt;/p&gt;</summary>
    <category label="Db" term="db" scheme="http://home.apohllo.railsplayground.net/tags/show/db"/>
    <category label="Erd" term="erd" scheme="http://home.apohllo.railsplayground.net/tags/show/erd"/>
    <content type="html">
&lt;p&gt;Zaj&#281;cia b&#281;d&#261; mia&#322;y charakter konsultacyjny.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Zaj&#281;cia nr 6/2010 BD</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-6" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-6</id>
    <updated>2010-04-08T07:16:01Z</updated>
    <published>2010-04-08T10:46:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Zaj&#281;cia nr 6 maj&#261; charakter konsultacyjny &amp;#8211; nie b&#281;d&#261; wprowadzone &#380;adne nowe poj&#281;cia
dotycz&#261;ce diagram&#243;w &lt;span class=&quot;caps&quot;&gt;ERD&lt;/span&gt;. B&#281;dziemy koncentrowa&#263; si&#281; na doprowadzeniu diagram&#243;w do 
ostatecznej postaci, kt&#243;r&#261; wykorzystamy jako podstaw&#281; dla opracowania modelu
relacyjnego.&lt;/p&gt;


...</summary>
    <category label="Db" term="db" scheme="http://home.apohllo.railsplayground.net/tags/show/db"/>
    <category label="Erd" term="erd" scheme="http://home.apohllo.railsplayground.net/tags/show/erd"/>
    <content type="html">
&lt;p&gt;Zaj&#281;cia nr 6 maj&#261; charakter konsultacyjny &amp;#8211; nie b&#281;d&#261; wprowadzone &#380;adne nowe poj&#281;cia
dotycz&#261;ce diagram&#243;w &lt;span class=&quot;caps&quot;&gt;ERD&lt;/span&gt;. B&#281;dziemy koncentrowa&#263; si&#281; na doprowadzeniu diagram&#243;w do 
ostatecznej postaci, kt&#243;r&#261; wykorzystamy jako podstaw&#281; dla opracowania modelu
relacyjnego.&lt;/p&gt;


Wyniki dotychczasowej pracy powinny zosta&#263; dostarczone na zaj&#281;cia nr 7 (w ostateczno&#347;ci na zaj&#281;cia nr 8) w 
postaci wydruku A4, na kt&#243;rym, poza diagramem, powinny znale&#378;&#263; si&#281; 
nast&#281;puj&#261;ce informacje:
	&lt;ul&gt;
	&lt;li&gt;tytu&#322; projektu&lt;/li&gt;
		&lt;li&gt;nazwisko osoby (os&#243;b) wykonuj&#261;cych diagram&lt;/li&gt;
		&lt;li&gt;grupa &#263;wiczeniowa (1, 2, wieczorowa)&lt;/li&gt;
	&lt;/ul&gt;


Dostarczony diagram b&#281;dzie podlega&#322; ocenie, zale&#380;nej od nast&#281;puj&#261;cych
czynnik&#243;w:
	&lt;ol&gt;
	&lt;li&gt;poprawno&#347;ci notacyjnej (np. uwzgl&#281;dnienie opcjonalno&#347;ci w krotno&#347;ci zwi&#261;zk&#243;w)&lt;/li&gt;
		&lt;li&gt;poprawno&#347;ci semantycznej (np. brak redundancji)&lt;/li&gt;
		&lt;li&gt;terminu oddania diagramu&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p class=&quot;red&quot;&gt;Po dostarczeniu diagramu, temat projektu nie b&#281;dzie m&#243;g&#322; ulec zmianie.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Zaj&#281;cia nr 5/2010 BD</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-4" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajcia-nr-4</id>
    <updated>2010-03-25T07:05:34Z</updated>
    <published>2010-03-24T18:37:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Na zaj&#281;ciach nr 5 b&#281;dziemy zajmowa&#263; si&#281; &lt;em&gt;atrybutami kluczowymi&lt;/em&gt;, &lt;em&gt;s&#322;abymi encjami&lt;/em&gt; oraz &lt;em&gt;relacj&#261; &lt;span class=&quot;caps&quot;&gt;ISA&lt;/span&gt;&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Atrybuty kluczowe&lt;/em&gt; to atrybuty, kt&#243;re w spos&#243;b jednoznaczny identyfikuj&#261; 
poszczeg&#243;lne encje. Oznacza to, &#380;e dwie encje nie mo...</summary>
    <category label="Db" term="db" scheme="http://home.apohllo.railsplayground.net/tags/show/db"/>
    <category label="Erd" term="erd" scheme="http://home.apohllo.railsplayground.net/tags/show/erd"/>
    <category label="Dia" term="dia" scheme="http://home.apohllo.railsplayground.net/tags/show/dia"/>
    <content type="html">
&lt;p&gt;Na zaj&#281;ciach nr 5 b&#281;dziemy zajmowa&#263; si&#281; &lt;em&gt;atrybutami kluczowymi&lt;/em&gt;, &lt;em&gt;s&#322;abymi encjami&lt;/em&gt; oraz &lt;em&gt;relacj&#261; &lt;span class=&quot;caps&quot;&gt;ISA&lt;/span&gt;&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Atrybuty kluczowe&lt;/em&gt; to atrybuty, kt&#243;re w spos&#243;b jednoznaczny identyfikuj&#261; 
poszczeg&#243;lne encje. Oznacza to, &#380;e dwie encje nie mog&#261; posiada&#263; tych
samych atrybut&#243;w kluczowych.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;S&#322;abe encje&lt;/em&gt; to encje, kt&#243;rych atrybuty kluczowe nie s&#261; w pe&#322;ni samodzielne.
Tzn. aby zidentyfikowa&#263; s&#322;ab&#261; encj&#281; konieczne jest wykorzystanie atrybutu
kluczowego innej encji.&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;Relacja &lt;span class=&quot;caps&quot;&gt;ISA&lt;/span&gt;&lt;/em&gt; wyst&#281;puje pomi&#281;dzy zbiorami encji, spo&#347;r&#243;d kt&#243;rych jeden mo&#380;e by&#263;
okre&#347;lony jako &lt;em&gt;specjalizacja&lt;/em&gt; drugiego, tzn. ka&#380;da encja nale&#380;&#261;ca do pierwszego
zbioru posiada wszystkie cechy encji nale&#380;&#261;cych do zbioru drugiego, ale ponadto
posiada pewne cechy specyficzne.&lt;/p&gt;


	&lt;p class=&quot;red&quot;&gt;Uwaga: w programie &lt;em&gt;Dia&lt;/em&gt; relacja &lt;span class=&quot;caps&quot;&gt;ISA&lt;/span&gt; nie wyst&#281;puje standardowo.
Mo&#380;na j&#261; stworzy&#263; samemu lub wykorzysta&#263; &lt;a href=&quot;/images/erd/isa.shape&quot;&gt;plik&lt;/a&gt; umieszczony
na serwerze.
Instrukcja wykorzystania pliku zostanie podana na zaj&#281;ciach.&lt;/p&gt;


	&lt;p&gt;Wi&#281;cej informacji w dziale &lt;a href=&quot;/dydaktyka/bazy-i/erd&quot;&gt;diagramy ER&lt;/a&gt;.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Zaj&#281;cia nr 4/20010 BD</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajecia-nr-3" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajecia-nr-3</id>
    <updated>2010-03-18T08:10:24Z</updated>
    <published>2010-03-17T18:45:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Na zaj&#281;ciach nr 4 b&#281;dziemy zajmowa&#263; si&#281; krotno&#347;ciami zwi&#261;zk&#243;w zbior&#243;w encji. Krotno&#347;&#263;
zwi&#261;zku okre&#347;la czy encja nale&#380;&#261;ca do jednego zbioru encji mo&#380;e &#322;&#261;czy&#263; si&#281; z jedn&#261;  
lub wieloma encjami, nale&#380;&#261;cymi do drugiego zbioru.&lt;/p&gt;


Og&#243;lnie rzecz bior&#261;c, mo&#380;na wyr&#243;&#380;ni&#263; trzy g&#322;&#243;wne przypadki krotno...</summary>
    <category label="Db" term="db" scheme="http://home.apohllo.railsplayground.net/tags/show/db"/>
    <category label="Erd" term="erd" scheme="http://home.apohllo.railsplayground.net/tags/show/erd"/>
    <content type="html">
&lt;p&gt;Na zaj&#281;ciach nr 4 b&#281;dziemy zajmowa&#263; si&#281; krotno&#347;ciami zwi&#261;zk&#243;w zbior&#243;w encji. Krotno&#347;&#263;
zwi&#261;zku okre&#347;la czy encja nale&#380;&#261;ca do jednego zbioru encji mo&#380;e &#322;&#261;czy&#263; si&#281; z jedn&#261;  
lub wieloma encjami, nale&#380;&#261;cymi do drugiego zbioru.&lt;/p&gt;


Og&#243;lnie rzecz bior&#261;c, mo&#380;na wyr&#243;&#380;ni&#263; trzy g&#322;&#243;wne przypadki krotno&#347;ci zwi&#261;zk&#243;w:
	&lt;ul&gt;
	&lt;li&gt;jeden-do-jeden&lt;/li&gt;
		&lt;li&gt;jeden-do-wiele&lt;/li&gt;
		&lt;li&gt;wiele-do-wiele&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Ten zestaw nie pozwala jednak na wystarczaj&#261;co precyzyjne odr&#243;&#380;nienie 
relacji, jakie zachodz&#261; pomi&#281;dzy poszczeg&#243;lnymi zbiorami encji. Nie mo&#380;emy odr&#243;&#380;ni&#263;
np. sytuacji, gdy maj&#261;c zwi&#261;zek jeden-do-jeden ka&#380;da encja nale&#380;&#261;ca
do jednego zbioru encji &lt;em&gt;musi&lt;/em&gt; by&#263; zwi&#261;zana z jedn&#261; encj&#261; innego zbioru encji,
od sytuacji, gdy ka&#380;da encja z pierwszego zbioru &lt;em&gt;mo&#380;e&lt;/em&gt; by&#263; zwi&#261;zana z co najwy&#380;ej 
jedn&#261; encj&#261; zbioru drugiego.&lt;/p&gt;


	&lt;p&gt;Na zaj&#281;ciach przedyskutujemy tego rodzaju przypadki oraz przedstawimy notacj&#281;
graficzn&#261; wykorzystywan&#261; do reprezentowania krotno&#347;ci zwi&#261;zk&#243;w.&lt;/p&gt;


	&lt;p&gt;Wi&#281;cej informacji na ten temat mo&#380;e by&#263; znalezione w dziale &lt;a href=&quot;/dydaktyka/bazy-i/erd&quot;&gt;diagramy &lt;span class=&quot;caps&quot;&gt;ERD&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Zaj&#281;cia nr 3/2010 BD</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajecia-nr-2" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/bazy-i/aktualnosci/zajecia-nr-2</id>
    <updated>2010-03-18T08:09:09Z</updated>
    <published>2010-03-10T17:07:00Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;Na zaj&#281;cia nr 3 nale&#380;y przygotowa&#263; wst&#281;pn&#261; koncepcj&#281; projektu, kt&#243;ry
b&#281;dzie realizowany w trakcie semestru.&lt;/p&gt;


	&lt;p&gt;Dobrze by&#322;oby r&#243;wnie&#380; zapozna&#263; si&#281; z podstawami modelowania konceptualnego
przy pomocy diagram&#243;w zwi&#261;zk&#243;w-encji (&lt;acronym title=&quot;Entity-Relationship Diagram&quot;&gt;ERD&lt;/acronym&gt;)
z w...</summary>
    <category label="Db" term="db" scheme="http://home.apohllo.railsplayground.net/tags/show/db"/>
    <category label="Erd" term="erd" scheme="http://home.apohllo.railsplayground.net/tags/show/erd"/>
    <category label="Dia" term="dia" scheme="http://home.apohllo.railsplayground.net/tags/show/dia"/>
    <content type="html">
&lt;p&gt;Na zaj&#281;cia nr 3 nale&#380;y przygotowa&#263; wst&#281;pn&#261; koncepcj&#281; projektu, kt&#243;ry
b&#281;dzie realizowany w trakcie semestru.&lt;/p&gt;


	&lt;p&gt;Dobrze by&#322;oby r&#243;wnie&#380; zapozna&#263; si&#281; z podstawami modelowania konceptualnego
przy pomocy diagram&#243;w zwi&#261;zk&#243;w-encji (&lt;acronym title=&quot;Entity-Relationship Diagram&quot;&gt;ERD&lt;/acronym&gt;)
z wykorzystaniem aplikacji &lt;a href=&quot;http://www.gnome.org/projects/dia/&quot;&gt;dia&lt;/a&gt; .&lt;/p&gt;


Wi&#281;cej informacji na temat modelowania konceptualnego oraz diagram&#243;w ER
mo&#380;na znale&#378;&#263;:
	&lt;ul&gt;
	&lt;li&gt;w zalecanej literaturze&lt;/li&gt;
		&lt;li&gt;na &lt;a href=&quot;http://en.wikipedia.org/wiki/Entity-relationship_model&quot;&gt;wikipedii&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;w dziale &lt;a href=&quot;/dydaktyka/bazy-i/m-konceptualne&quot;&gt;modelowanie konceptualne&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;w dziale &lt;a href=&quot;/dydaktyka/bazy-i/erd&quot;&gt;diagramy ER&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;W trakcie zaj&#281;&#263; zostanie wykonany prosty model ER systemu pozwalaj&#261;cego
przechowywa&#263; informacje o ksi&#261;&#380;kach, ich autorach, wydaniach, etc.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Konfiguracja wierzby IG</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/interfejsy-graficzne/aktualnosci/konfiguracja-wierzby-ig" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/interfejsy-graficzne/aktualnosci/konfiguracja-wierzby-ig</id>
    <updated>2010-03-03T07:21:39Z</updated>
    <published>2010-03-03T07:21:39Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;p&gt;W dziale &lt;a href=&quot;/dydaktyka/interfejsy-graficzne/wierzba&quot;&gt;Wierzba &amp;#8211; konfiguracja&lt;/a&gt; dodane zosta&#322;y informacje na temat konfiguracji Rails&#243;w na wierzbie.&lt;/p&gt;</summary>
    <category label="Rails" term="rails" scheme="http://home.apohllo.railsplayground.net/tags/show/rails"/>
    <category label="Wierzba" term="wierzba" scheme="http://home.apohllo.railsplayground.net/tags/show/wierzba"/>
    <content type="html">
&lt;p&gt;W dziale &lt;a href=&quot;/dydaktyka/interfejsy-graficzne/wierzba&quot;&gt;Wierzba &amp;#8211; konfiguracja&lt;/a&gt; dodane zosta&#322;y informacje na temat konfiguracji Rails&#243;w na wierzbie.&lt;/p&gt;    </content>
  </entry>
  <entry>
    <title>Harmonogram zaj&#281;&#263; dodatkowych</title>
    <link href="http://home.apohllo.railsplayground.net/dydaktyka/wdi/aktualnosci/harmonogram-zaj-dodatkowych" rel="alternate" type="text/html"/>
    <id>http://home.apohllo.railsplayground.net/dydaktyka/wdi/aktualnosci/harmonogram-zaj-dodatkowych</id>
    <updated>2010-01-08T07:42:17Z</updated>
    <published>2010-01-08T07:42:17Z</published>
    <author>
      <name>Aleksander Pohl</name>
    </author>
    <summary type="html">&lt;ul&gt;
	&lt;li&gt;14.1.2009 godz. 18.15 &amp;#8211; kolokwium poprawkowe&lt;/li&gt;
		&lt;li&gt;15.1.2009 godz. 12.00 &amp;#8211; zaj&#281;cia dodatkowe dla gr. 1&lt;/li&gt;
		&lt;li&gt;15.1.2009 godz. 15.00 &amp;#8211; zaj&#281;cia dodatkowe dla gr. 2&lt;/li&gt;
	&lt;/ul&gt;</summary>
    <category label="Dydaktyka" term="dydaktyka" scheme="http://home.apohllo.railsplayground.net/tags/show/dydaktyka"/>
    <category label="Wdi" term="wdi" scheme="http://home.apohllo.railsplayground.net/tags/show/wdi"/>
    <content type="html">
&lt;ul&gt;
	&lt;li&gt;14.1.2009 godz. 18.15 &amp;#8211; kolokwium poprawkowe&lt;/li&gt;
		&lt;li&gt;15.1.2009 godz. 12.00 &amp;#8211; zaj&#281;cia dodatkowe dla gr. 1&lt;/li&gt;
		&lt;li&gt;15.1.2009 godz. 15.00 &amp;#8211; zaj&#281;cia dodatkowe dla gr. 2&lt;/li&gt;
	&lt;/ul&gt;    </content>
  </entry>
</feed>
