<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:xhtml="http://www.w3.org/1999/xhtml" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Fumihiro Kato / 加藤 文彦</title>
	
	<link>http://fumi.me</link>
	<description>Webやガジェット好き</description>
	<lastBuildDate>Wed, 07 Jul 2010 11:58:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/feed/" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Fumime_rss20" /><feedburner:info uri="fumime_rss20" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Virtuoso+OntoWiki</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/nMJ9OFU8-Jo/</link>
		<comments>http://fumi.me/2010/07/07/virtuosoontowiki/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 11:47:49 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[SemanticWeb]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[OntoWiki]]></category>
		<category><![CDATA[RDF]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Virtuoso]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2951</guid>
		<description><![CDATA[Twitterを見れば分かるとおり最近RDF Storeの調査をしているのですが、その過程でOntoWikiを使おうとして色々嵌っているので、ログを残しておきます。現在Ubuntu10.04での動作を確認しています。
V [...]]]></description>
			<content:encoded><![CDATA[<p>Twitterを見れば分かるとおり最近RDF Storeの調査をしているのですが、その過程でOntoWikiを使おうとして色々嵌っているので、ログを残しておきます。現在Ubuntu10.04での動作を確認しています。</p>
<h3>Virtuosoのインストール</h3>
<p><a href="http://virtuoso.openlinksw.com/">Open Link Virtuoso</a>は複数のデータ形式を統合して扱えるデータベースです。RDF Triple/Quad Storeとしても使え、SPARQLにも対応しています。<a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/">Open Source版</a>とClosed Source版があり、Closed版ではClusterやSnapshoなどの追加機能があります。ここではOpen Source版を使います。</p>
<p>まず<a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/">Virtuoso Open Source Edition</a>のインストールです。Ubuntuのrepositoryにあるのが6.1.0で、これだと最新のOntoWikiが不具合起こすので、<a href="http://packages.debian.org/squeeze/virtuoso-opensource<br />
">debian squeeze</a>から最新のソースパッケージ持ってきて再構築しました。</p>
<pre><kbd>
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1-1.dsc
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1.orig.tar.gz
$ wget http://ftp.de.debian.org/debian/pool/main/v/virtuoso-opensource/virtuoso-opensource_6.1.1+dfsg1-1.diff.gz
$ dpkg-source -x virtuoso-opensource_6.1.1+dfsg1-1.dsc
$ cd virtuoso-opensource-6.1.1
</kbd></pre>
<p>再構築に必要なパッケージをインストールします。</p>
<pre><kbd>$ aptitude build-dep virtuoso-opensource
$ aptitude install quilt fakeroot
</kbd></pre>
<p>変更点はbuild formatを変えるだけです。changelogとかもそのままでbuildします。</p>
<pre><kbd>$ echo "3.0 (quilt)" >debian/source/format
$ debuild -us -uc
</kbd></pre>
<p>ライブラリが足りなければ適宜インストールしてください。もし問題がなければ、上のディレクトリに*.debができているのでインストールします。インストール時にデータベースのパスワードを聞かれるので設定します。</p>
<pre><kbd>$ dpkg -i ../*.deb</kbd></pre>
<p>次のコマンドで問題なく起動できればインストール完了です。</p>
<pre><kbd>$ /etc/init.d/virtuoso start</kbd></pre>
<h3>ODBCの設定 (要確認)</h3>
<p><strong>NOTE: この設定は必要ないかもしれないので要確認</strong></p>
<p>まずodbcinstをインストールします。</p>
<pre><kbd>$ aptitude install odbcinst odbcinst1debian1</kbd></pre>
<p>その後、<code>/etc/odbcinst.ini,odbc.ini</code>を以下のように作成します。</p>
<pre><kbd>- /etc/odbcinst.ini
[virtuoso-odbc]
Driver  = /usr/lib/odbc/virtodbc.so

- /etc/odbc.ini
[ODBC Data Sources]
VDS  = Virtuoso

[VDS]
Driver  = virtuoso-odbc
Description  = Virtuoso Open-Source Edition
ServerName  = localhost:1111

[VOS]
Driver  = /usr/lib/odbc/virtodbc.so
Description  = Virtuoso OpenSource Edition
Address = localhost:1111
</kbd></pre>
<h3>OntoWiki</h3>
<p><a href="http://ontowiki.net/">OntoWIki</a>はRDF用の閲覧・編集環境です。CMSと言ったほうがいいかもしれません。</p>
<p>とりあえずphp5とapacheの基本的な設定をしておく必要があります。解説を書いている方がたくさんいるので、やり方はググってください。一点追加で必要なのが、php5-odbcのインストールです。</p>
<pre><kbd>$ sudo aptitude install php5-odbc</kbd></pre>
<p>php5とapacheをインストールしたら、<a href="http://code.google.com/p/ontowiki/wiki/InstallFromMercurial">InstallFromMercurial</a>に書かれている通りに、レポジトリから最新のソースをインストールします。</p>
<pre><kbd>$ cd /var/www
$ hg clone https://ontowiki.googlecode.com/hg/ owrep
$ cd owrep/ontowiki/src/libraries
$ ln -s ../../../erfurt/src/Erfurt .
$ ln -s ../../../RDFauthor .

$ wget http://framework.zend.com/releases/ZendFramework-1.9.4/ZendFramework-1.9.4-minimal.tar.gz
$ tar xvzf ZendFramework-1.9.4-minimal.tar.gz
$ mv ZendFramework-1.9.4-minimal/library/Zend .
$ rm -rf ZendFramework-1.9.4-minimal.tar.gz ZendFramework-1.9.4-minimal

$ cd /var/www/owrep/ontowiki/src
$ cp htaccess-dist .htaccess
$ cp config.ini-dist config.ini
</kbd></pre>
<p>次に<a href="http://code.google.com/p/ontowiki/wiki/UsingOntoWikiWithVirtuoso">UsingOntoWikiWithVirtuoso</a>を参考にconfig.iniの設定をします。</p>
<pre><kbd>[private]
store.backend = virtuoso
store.virtuoso.dsn = VOS
store.virtuoso.username = dba
store.virtuoso.password = dba
</kbd></pre>
<p>その後OntoWikiに必要なディレクトリ作成します。</p>
<pre><kbd>
$ mkdir cache log uploads
$ chown www-data:www-data cache log uploads
</kbd></pre>
<p>Apacheの設定をします。そのままトップに置くのなら<code>/etc/apache2/sites-enabled/000-default</code>のDocumentRootと該当Directoryを変更します。</p>
<pre><kbd>DocumentRoot /var/www/owrep/ontowiki/src
&lt;Directory /var/www/owrep/ontowiki/src&gt;
</kbd></pre>
<p>Apacheを再起動した後、http://localhostにアクセスしてください。問題なければOntoWikiが表示されます。ユーザ名 Admin パスワードなしでログインすると管理画面になります。</p>
<h3>Conference Model Demo</h3>
<p><a href="http://ontowiki.net/Projects/OntoWiki/FirstSteps">FirstStep</a>にConferenceデータのデモの作り方がかかれています。注意する必要があるのは、もしlocalhost以外で動かす場合、Google Maps API Keyの設定が必要です。<a href="http://code.google.com/intl/ja/apis/maps/signup.html">API Key取得ページ</a>で生成した文字列を<code>ontowiki/extensions/components/map/component.ini</code>に設定します。</p>
<pre><kbd>- ontowiki/extensions/components/map/component.ini
apikey.google = "生成した文字列"
</kbd></pre>

	Tags: <a href="http://fumi.me/tag/db/" title="DB" rel="tag">DB</a>, <a href="http://fumi.me/tag/ontowiki/" title="OntoWiki" rel="tag">OntoWiki</a>, <a href="http://fumi.me/tag/rdf/" title="RDF" rel="tag">RDF</a>, <a href="http://fumi.me/tag/sparql/" title="SPARQL" rel="tag">SPARQL</a>, <a href="http://fumi.me/tag/ubuntu/" title="Ubuntu" rel="tag">Ubuntu</a>, <a href="http://fumi.me/tag/virtuoso/" title="Virtuoso" rel="tag">Virtuoso</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2010/02/23/rubyrdf/" title="RubyRDF (2010/02/23)">RubyRDF</a> (0)</li>
	<li><a href="http://fumi.me/2010/02/23/rdfcontext-0-5-0/" title="RdfContext 0.5.0 (2010/02/23)">RdfContext 0.5.0</a> (0)</li>
	<li><a href="http://fumi.me/2010/02/23/rdfcontext/" title="RdfContext (2010/02/23)">RdfContext</a> (0)</li>
	<li><a href="http://fumi.me/2010/04/22/rdf-rb/" title="RDF.rb (2010/04/22)">RDF.rb</a> (0)</li>
	<li><a href="http://fumi.me/2009/01/20/kubuntu-810-kde4/" title="Kubuntu 8.10 &#8211; KDE4 (2009/01/20)">Kubuntu 8.10 &#8211; KDE4</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/DWkq9dkJ_b69xwkZ6dPwVrCBsk4/0/da"><img src="http://feedads.g.doubleclick.net/~a/DWkq9dkJ_b69xwkZ6dPwVrCBsk4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/DWkq9dkJ_b69xwkZ6dPwVrCBsk4/1/da"><img src="http://feedads.g.doubleclick.net/~a/DWkq9dkJ_b69xwkZ6dPwVrCBsk4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/nMJ9OFU8-Jo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/07/07/virtuosoontowiki/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/07/07/virtuosoontowiki/" />
	<feedburner:origLink>http://fumi.me/2010/07/07/virtuosoontowiki/</feedburner:origLink></item>
		<item>
		<title>セマンティックWebプログラミング</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/npKxiWquOws/</link>
		<comments>http://fumi.me/2010/06/18/programming-the-semanticweb/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 08:05:20 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SemanticWeb]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[LOD]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2948</guid>
		<description><![CDATA[オライリーさんの&#8221;Programming the Semantic Web&#8221;を有志で監訳した本が6/26に出ます．サンプルコードは監訳者一同が結構書き直して動くようにしたので，試しながら読めます． [...]]]></description>
			<content:encoded><![CDATA[<p>オライリーさんの&#8221;Programming the Semantic Web&#8221;を有志で監訳した本が6/26に出ます．サンプルコードは監訳者一同が結構書き直して動くようにしたので，試しながら読めます．言語はPythonなんですが，Linked Dataなど，現在Web上にあるデータをどうやって使うのかという話がメインなので，他の言語でも役立つはずです．よろしかったら是非．</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E3%82%BB%E3%83%9E%E3%83%B3%E3%83%86%E3%82%A3%E3%83%83%E3%82%AFWeb-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Toby-Segaran/dp/4873114527%3FSubscriptionId%3DAKIAIAILLLDE7T4Q5BMQ%26tag%3Dtorrydiary-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873114527"><img src="http://ecx.images-amazon.com/images/I/51VEqjb9YJL._SL160_.jpg" border="0" alt="セマンティックWebプログラミング"  title="セマンティックWebプログラミング image" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E3%82%BB%E3%83%9E%E3%83%B3%E3%83%86%E3%82%A3%E3%83%83%E3%82%AFWeb-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Toby-Segaran/dp/4873114527%3FSubscriptionId%3DAKIAIAILLLDE7T4Q5BMQ%26tag%3Dtorrydiary-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873114527">セマンティックWeb プログラミング</a></p>
	<p><em>著者／訳者：</em>Toby Segaran Colin Evans Jamie Taylor </p>
	<p><em>出版社：</em>オライリージャパン( 2010-06-26 )</p>
	<p><em>定価：</em>￥ 3,360</p>
	<p><em>Amazon価格：</em>￥ 3,360</p>
	<p>大型本 ( 312 ページ )</p>
	<p>ISBN-10 : 4873114527</p>
	<p>ISBN-13 : 9784873114521</p>
<hr class="tmkm-amazon-clear" /></div>

	Tags: <a href="http://fumi.me/tag/book/" title="Book" rel="tag">Book</a>, <a href="http://fumi.me/tag/lod/" title="LOD" rel="tag">LOD</a>, <a href="http://fumi.me/tag/python/" title="python" rel="tag">python</a>, <a href="http://fumi.me/tag/semanticweb/" title="SemanticWeb" rel="tag">SemanticWeb</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/sw/sw-books/" title="Semantic Web に関する書籍 (2009/10/13)">Semantic Web に関する書籍</a> (0)</li>
	<li><a href="http://fumi.me/2010/04/25/linkeddata-jp/" title="LinkedData.jp &#8211; Google Groups (2010/04/25)">LinkedData.jp &#8211; Google Groups</a> (1)</li>
	<li><a href="http://fumi.me/2008/08/19/pci/" title="集合知プログラミング &#8211; Programming Collective Intelligence (2008/08/19)">集合知プログラミング &#8211; Programming Collective Intelligence</a> (1)</li>
	<li><a href="http://fumi.me/2009/01/19/critical-reading/" title="外国語で発想するための日本語レッスン (2009/01/19)">外国語で発想するための日本語レッスン</a> (0)</li>
	<li><a href="http://fumi.me/2009/10/13/mercurial/" title="入門 mercurial (2009/10/13)">入門 mercurial</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/4Tm_nUnHt_EitcN9QHM5CP07zd8/0/da"><img src="http://feedads.g.doubleclick.net/~a/4Tm_nUnHt_EitcN9QHM5CP07zd8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4Tm_nUnHt_EitcN9QHM5CP07zd8/1/da"><img src="http://feedads.g.doubleclick.net/~a/4Tm_nUnHt_EitcN9QHM5CP07zd8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/npKxiWquOws" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/06/18/programming-the-semanticweb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/06/18/programming-the-semanticweb/" />
	<feedburner:origLink>http://fumi.me/2010/06/18/programming-the-semanticweb/</feedburner:origLink></item>
		<item>
		<title>Interop2010</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/CvnpLDv-yCo/</link>
		<comments>http://fumi.me/2010/06/16/interop2010/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 01:35:03 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[SemanticWeb]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Academic]]></category>
		<category><![CDATA[Library]]></category>
		<category><![CDATA[LinkedData]]></category>
		<category><![CDATA[LOD]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2945</guid>
		<description><![CDATA[しばらく慌ただしかったのでブログを書けずにいました．twitterでは報告済みなのですが，新しいプロジェクトを始めるために4月末で早々に前職を退職し，5月中旬から別の職場に転職しました．Interop2010のW3Cブー [...]]]></description>
			<content:encoded><![CDATA[<p>しばらく慌ただしかったのでブログを書けずにいました．twitterでは報告済みなのですが，新しいプロジェクトを始めるために4月末で早々に前職を退職し，5月中旬から別の職場に転職しました．Interop2010のW3Cブースにて概要を話しましたので，紹介代わりにスライドを貼っておきます．</p>
<p>同時期にW3Cでも<a href="http://www.w3.org/2005/Incubator/lld/">Library Linked Data Incubator Group</a>が始まりました．1年時限付きのグループで，既存の事例集めや要求事項まとめなどが目標のようです．このプロジェクトからも取り敢えず数名参加しています．しかし，一度標準化の世界に関わるとどこ行っても関わることになっているような気がしてこの世界狭いなと．</p>
<div style="width:425px" id="__ss_4471068"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/fumihiro/web-4471068" title="学術資源のためのオープン・ ソーシャル・セマンティックWeb プラットホームプロジェクト">学術資源のためのオープン・ ソーシャル・セマンティックWeb プラットホームプロジェクト</a></strong><object id="__sse4471068" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=interop2010-100610235308-phpapp02&#038;stripped_title=web-4471068" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4471068" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=interop2010-100610235308-phpapp02&#038;stripped_title=web-4471068" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/fumihiro">Fumihiro Kato</a>.</div>
</div>

	Tags: <a href="http://fumi.me/tag/academic/" title="Academic" rel="tag">Academic</a>, <a href="http://fumi.me/tag/library/" title="Library" rel="tag">Library</a>, <a href="http://fumi.me/tag/linkeddata/" title="LinkedData" rel="tag">LinkedData</a>, <a href="http://fumi.me/tag/lod/" title="LOD" rel="tag">LOD</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2010/06/18/programming-the-semanticweb/" title="セマンティックWebプログラミング (2010/06/18)">セマンティックWebプログラミング</a> (1)</li>
	<li><a href="http://fumi.me/2010/02/23/rdfcontext/" title="RdfContext (2010/02/23)">RdfContext</a> (0)</li>
	<li><a href="http://fumi.me/2010/04/22/rdf-rb/" title="RDF.rb (2010/04/22)">RDF.rb</a> (0)</li>
	<li><a href="http://fumi.me/2010/04/25/linkeddata-jp/" title="LinkedData.jp &#8211; Google Groups (2010/04/25)">LinkedData.jp &#8211; Google Groups</a> (1)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/SI-9q8SaNZATd8XoEpgHB3rvIbU/0/da"><img src="http://feedads.g.doubleclick.net/~a/SI-9q8SaNZATd8XoEpgHB3rvIbU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SI-9q8SaNZATd8XoEpgHB3rvIbU/1/da"><img src="http://feedads.g.doubleclick.net/~a/SI-9q8SaNZATd8XoEpgHB3rvIbU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/CvnpLDv-yCo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/06/16/interop2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/06/16/interop2010/" />
	<feedburner:origLink>http://fumi.me/2010/06/16/interop2010/</feedburner:origLink></item>
		<item>
		<title>iPad</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/T1s4Puys5OM/</link>
		<comments>http://fumi.me/2010/05/07/ipad/#comments</comments>
		<pubDate>Fri, 07 May 2010 07:22:38 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2897</guid>
		<description><![CDATA[念願のiPadを昨日手に入れたので，色々いじっている最中です．最初の印象はやはり&#8221;でかいiPhone&#8221;でしたが，色々触ってみると面白いです．
まず，Photosがかなりいいです．iTunesがiP [...]]]></description>
			<content:encoded><![CDATA[<p>念願のiPadを昨日手に入れたので，色々いじっている最中です．最初の印象はやはり&#8221;でかいiPhone&#8221;でしたが，色々触ってみると面白いです．</p>
<p>まず，Photosがかなりいいです．iTunesがiPadとの同期の際に，写真をiPad用に変換してくれます．この作業のために最初の同期に時間がかかるのですが，おかげでかなり綺麗に写真をみることができます．また，ScanSnapで取り込んである名刺のビュアーとしても良いですね．</p>
<p>iPad用アプリとして良くできていると思ったのはBloombergやBBCなどのニュースサイトのアプリです．ここらへんの人々は気合い入れて作っているようです．日本のメディアもそうなるといいんですが．</p>
<p>また，書籍やコミック用のアプリも純正のiBookをはじめとして色々あるようです．iBook，FreeBook， Comics，Cloud Readerを使ってみましたが，視認性は悪くないです．というか普通に読めます．正直ハードはもうこれでいいじゃんと思ってしまいました．今更ハードウェアから議論せずに，Googleのように<a href="http://www.itmedia.co.jp/enterprise/articles/1005/06/news044.html">各デバイス対応の市場を作る</a>というアプローチのほうが正しいと思いますね．</p>
<p>iPad用アプリケーションはユニバーサル版(iPhone/iPad両用)とiPad用に別版が作られている場合と二通りあるようで，有料版は改めて買わせるために分かれている場合が多いようです．また，一部のアプリケーションはUSのApp storeアカウントがないと手に入りません．具体的にはApple純正ソフトのPages, Keynote, Numbers, iBookとAdobe Ideasです(他にもあるかもしれません)．iBookを使うだけのためにでも，USのアカウントを取得したほうが良いです．私は&quot;<a href="http://d.hatena.ne.jp/MikyE/20060929/1159515945">$ドルのギフトカードを買う方法 アメリカiTunes Music Store(iTMS) USで自由気ままに洋楽を買う法</a>&quot;を参考に，eBayで購入して作りました．</p>
<p>現在Evernoteのoffline syncをしているのですが全然終わりません．Evernote自体既に2年以上使っていて，それ以前のデータも全て変換して入れてあるので，流石に詰め込みすぎなんでしょうかね．ちゃんと使えるようになったらレポートします．</p>
<p>&quot;<a href="http://www6.atwiki.jp/dbz/pages/189.html">Apple iPad 総合まとめWiki</a>&quot;は参考になりました．現状一番情報が集まっているのは2chの各種iPadスレだと思います．</p>

	Tags: <a href="http://fumi.me/tag/book/" title="Book" rel="tag">Book</a>, <a href="http://fumi.me/tag/ipad/" title="iPad" rel="tag">iPad</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2009/01/19/critical-reading/" title="外国語で発想するための日本語レッスン (2009/01/19)">外国語で発想するための日本語レッスン</a> (0)</li>
	<li><a href="http://fumi.me/2009/10/13/mercurial/" title="入門 mercurial (2009/10/13)">入門 mercurial</a> (0)</li>
	<li><a href="http://fumi.me/2009/02/19/ruby/" title="プログラミング言語Ruby (2009/02/19)">プログラミング言語Ruby</a> (0)</li>
	<li><a href="http://fumi.me/2009/02/23/programming-erlang/" title="プログラミング Erlang (2009/02/23)">プログラミング Erlang</a> (1)</li>
	<li><a href="http://fumi.me/2009/01/18/math/" title="プログラマの数学 (2009/01/18)">プログラマの数学</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/v1mVWaYrsb1t9KmX5o9q7mM2LfE/0/da"><img src="http://feedads.g.doubleclick.net/~a/v1mVWaYrsb1t9KmX5o9q7mM2LfE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/v1mVWaYrsb1t9KmX5o9q7mM2LfE/1/da"><img src="http://feedads.g.doubleclick.net/~a/v1mVWaYrsb1t9KmX5o9q7mM2LfE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/T1s4Puys5OM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/05/07/ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/05/07/ipad/" />
	<feedburner:origLink>http://fumi.me/2010/05/07/ipad/</feedburner:origLink></item>
		<item>
		<title>Webを支える技術</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/tpZbdgUAvUs/</link>
		<comments>http://fumi.me/2010/04/27/web%e3%82%92%e6%94%af%e3%81%88%e3%82%8b%e6%8a%80%e8%a1%93/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 07:58:43 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[URI]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2891</guid>
		<description><![CDATA[
Webを支える技術 &#8211; HTTP､URI､HTML､そしてREST

Amazonで予約して購入していたのですが，やっと読みました．Webアーキテクチャや基礎技術についてのとても良い教科書だと思います．去年 [...]]]></description>
			<content:encoded><![CDATA[<div class="hreview">
<h2 class="item"><span class="fn">Webを支える技術 &#8211; HTTP､URI､HTML､そしてREST</span></h2>
<div class="description">
<p>Amazonで予約して購入していたのですが，やっと読みました．Webアーキテクチャや基礎技術についてのとても良い教科書だと思います．去年まで3年ほど分散情報システム構成法という講義を何人かで担当していましたが，この講義の最初の数回分の教科書として使えます．</p>
<p>15-17章の<a href="http://zip.ricollab.jp/">郵便番号検索サービス</a>はcontent-negotiationでRDFも返してくれると嬉しいなと思いましたが無理ですかね?ここでも読み仮名語彙問題はでてくるのですが．</p>
<p>後，この本読んだ後には<a href="http://www.w3.org/TR/webarch/">Architecture of the World Wide Web, Volume One</a>を読むのがお勧めです．</p>
</div>
</div>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%E3%80%81URI%E3%80%81HTML%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus/dp/4774142042%3FSubscriptionId%3DAKIAIAILLLDE7T4Q5BMQ%26tag%3Dtorrydiary-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774142042"><img src="http://ecx.images-amazon.com/images/I/51RHg6crGFL._SL160_.jpg" border="0" alt="Webを支える技術"  title="Webを支える技術 image" /></a></p>
	<p><a href="http://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%E3%80%81URI%E3%80%81HTML%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus/dp/4774142042%3FSubscriptionId%3DAKIAIAILLLDE7T4Q5BMQ%26tag%3Dtorrydiary-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774142042">Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)</a></p>
	<p><em>著者／訳者：</em>山本 陽平</p>
	<p><em>出版社：</em>技術評論社( 2010-04-08 )</p>
	<p><em>定価：</em>￥ 2,699</p>
	<p><em>Amazon価格：</em>￥ 2,699</p>
	<p>単行本（ソフトカバー） ( 400 ページ )</p>
	<p>ISBN-10 : 4774142042</p>
	<p>ISBN-13 : 9784774142043</p>
<hr class="tmkm-amazon-clear" /></div>

	Tags: <a href="http://fumi.me/tag/book/" title="Book" rel="tag">Book</a>, <a href="http://fumi.me/tag/html/" title="HTML" rel="tag">HTML</a>, <a href="http://fumi.me/tag/http/" title="HTTP" rel="tag">HTTP</a>, <a href="http://fumi.me/tag/rest/" title="REST" rel="tag">REST</a>, <a href="http://fumi.me/tag/uri/" title="URI" rel="tag">URI</a>, <a href="http://fumi.me/tag/web/" title="Web" rel="tag">Web</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2008/08/19/pci/" title="集合知プログラミング &#8211; Programming Collective Intelligence (2008/08/19)">集合知プログラミング &#8211; Programming Collective Intelligence</a> (1)</li>
	<li><a href="http://fumi.me/2008/12/19/answer-from-sfc/" title="広報委員会より回答 (2008/12/19)">広報委員会より回答</a> (1)</li>
	<li><a href="http://fumi.me/2009/01/19/critical-reading/" title="外国語で発想するための日本語レッスン (2009/01/19)">外国語で発想するための日本語レッスン</a> (0)</li>
	<li><a href="http://fumi.me/2008/07/24/%e5%86%8d%e9%96%8b/" title="再開 (2008/07/24)">再開</a> (0)</li>
	<li><a href="http://fumi.me/2009/10/13/mercurial/" title="入門 mercurial (2009/10/13)">入門 mercurial</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/nFUARSOMmk3oaOO8XUNLsCMIQ_I/0/da"><img src="http://feedads.g.doubleclick.net/~a/nFUARSOMmk3oaOO8XUNLsCMIQ_I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/nFUARSOMmk3oaOO8XUNLsCMIQ_I/1/da"><img src="http://feedads.g.doubleclick.net/~a/nFUARSOMmk3oaOO8XUNLsCMIQ_I/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/tpZbdgUAvUs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/04/27/web%e3%82%92%e6%94%af%e3%81%88%e3%82%8b%e6%8a%80%e8%a1%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/04/27/web%e3%82%92%e6%94%af%e3%81%88%e3%82%8b%e6%8a%80%e8%a1%93/" />
	<feedburner:origLink>http://fumi.me/2010/04/27/web%e3%82%92%e6%94%af%e3%81%88%e3%82%8b%e6%8a%80%e8%a1%93/</feedburner:origLink></item>
		<item>
		<title>LinkedData.jp – Google Groups</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/UQ8yOr9D6PI/</link>
		<comments>http://fumi.me/2010/04/25/linkeddata-jp/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 14:34:38 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[SemanticWeb]]></category>
		<category><![CDATA[LOD]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2888</guid>
		<description><![CDATA[今日有志でSemweb&#38;LOD勉強会を行いました．そこでとりあえず日本語で議論できる場所が必要ということになったため，Google GroupsにLinkedData.jpというグループを作りました．Linked [...]]]></description>
			<content:encoded><![CDATA[<p>今日有志でSemweb&amp;LOD勉強会を行いました．そこでとりあえず日本語で議論できる場所が必要ということになったため，Google Groupsに<a href="http://groups.google.com/group/linkeddatajp?hl=en">LinkedData.jp</a>というグループを作りました．LinkedDataやSemantic Webについて議論したり開発したりする場になれば良いなと思っています．ご興味のある方は是非ご参加下さい．</p>

	Tags: <a href="http://fumi.me/tag/event/" title="Event" rel="tag">Event</a>, <a href="http://fumi.me/tag/lod/" title="LOD" rel="tag">LOD</a>, <a href="http://fumi.me/tag/semanticweb/" title="SemanticWeb" rel="tag">SemanticWeb</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2010/06/18/programming-the-semanticweb/" title="セマンティックWebプログラミング (2010/06/18)">セマンティックWebプログラミング</a> (1)</li>
	<li><a href="http://fumi.me/2009/02/05/semanticwebconference2009/" title="セマンティックWebコンファレンス2009 (2009/02/05)">セマンティックWebコンファレンス2009</a> (0)</li>
	<li><a href="http://fumi.me/2009/02/05/interontology09/" title="InterOntology09 (2009/02/05)">InterOntology09</a> (0)</li>
	<li><a href="http://fumi.me/2005/02/05/%e7%ac%ac1%e5%9b%9e-web%e3%82%a4%e3%83%b3%e3%83%86%e3%83%aa%e3%82%b8%e3%82%a7%e3%83%b3%e3%82%b9%e3%81%a8%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%a9%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3-%e7%a0%94%e7%a9%b6/" title="第1回 Webインテリジェンスとインタラクション 研究会 (2005/02/05)">第1回 Webインテリジェンスとインタラクション 研究会</a> (0)</li>
	<li><a href="http://fumi.me/2004/05/17/%e4%bb%8a%e6%88%90%e7%94%b0%e7%a9%ba%e6%b8%af/" title="今成田空港 (2004/05/17)">今成田空港</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/2VWiD8GB9GztPdWwuTHfo2L4Ng8/0/da"><img src="http://feedads.g.doubleclick.net/~a/2VWiD8GB9GztPdWwuTHfo2L4Ng8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2VWiD8GB9GztPdWwuTHfo2L4Ng8/1/da"><img src="http://feedads.g.doubleclick.net/~a/2VWiD8GB9GztPdWwuTHfo2L4Ng8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/UQ8yOr9D6PI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/04/25/linkeddata-jp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/04/25/linkeddata-jp/" />
	<feedburner:origLink>http://fumi.me/2010/04/25/linkeddata-jp/</feedburner:origLink></item>
		<item>
		<title>RDF.rb</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/YEfY3IYmNeo/</link>
		<comments>http://fumi.me/2010/04/22/rdf-rb/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 12:58:10 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SemanticWeb]]></category>
		<category><![CDATA[LinkedData]]></category>
		<category><![CDATA[RDF]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2876</guid>
		<description><![CDATA[RubyからRDFを使うライブラリをいくつか紹介してきましたが，最近急ピッチで開発されているRDF.rbが本命になりそうです．まだSPARQLは使えず，基本的なことしかできませんが，やっとどれを使ったらいいのかよくわから [...]]]></description>
			<content:encoded><![CDATA[<p>RubyからRDFを使うライブラリをいくつか紹介してきましたが，最近急ピッチで開発されているRDF.rbが本命になりそうです．まだSPARQLは使えず，基本的なことしかできませんが，やっとどれを使ったらいいのかよくわからないという状況が変わりそうです．</p>
<p>ちゃんとした紹介を日本語で書こうと思っていたら，作者達が良くできたチュートリアルを書いてくれたので，それを翻訳することにしました．とりあえずここに置いておくことにします．</p>
<h3>RubyによるRDFデータの解析と永続化 (Parsing and Serializing RDF Data with Ruby)</h3>
<p><a href="http://blog.datagraph.org/2010/04/parsing-rdf-with-ruby">original text</a> 2010/04/21 by Arto</p>
<p>このチュートリアルでは、<a href="http://ruby-lang.org/">Ruby</a>用のライブラリ<a href="http://blog.datagraph.org/2010/03/rdf-for-ruby">RDF.rb</a>を使った<a href="http://www.w3.org/RDF/">RDF</a>データの解析と永続化の方法を学びます。RDFを基礎とした<a href="http://linkeddata.org/">Linked Data</a>の永続化形式には色々ありますが、RDF.rbでは多くの形式が使えます。</p>
<p>このチュートリアルに沿ってコード例を試すには、Rubyと<a href="http://rubygems.org/">Rubygems</a>だけが必要です。最近のRuby 1.8.xや1.9.x、またはJRuby1.4.0以上なら動きます。</p>
<h4>サポートしているRDF形式</h4>
<p>現在RDF.rbで解析や永続化できるRDF形式は以下の通りです。</p>
<pre><code>
形式        | 実装                  | RubyGems gem
------------|-----------------------|-------------
N-Triples   | RDF::NTriples         | rdf
Turtle      | RDF::Raptor::Turtle   | rdf-raptor
RDF/XML     | RDF::Raptor::RDFXML   | rdf-raptor
RDF/JSON    | RDF::JSON             | rdf-json
TriX        | RDF::TriX             | rdf-trix
</code></pre>
<p>RDF.rb自体は比較的軽量なgemで、<a href="http://blog.datagraph.org/2010/03/grepping-ntriples">N-Triples</a>形式のみビルトインでサポートしています。その他の形式については<a href="http://rdf.rubyforge.org/raptor/"><code>RDF::Raptor</code></a>, <a href="http://rdf.rubyforge.org/json/"><code>RDF::JSON</code></a>, <a href="http://rdf.rubyforge.org/trix/"><code>RDF::TriX</code></a>のようなプラグインとして、個別のgemにパッケージ化されています。このアプローチによって、コアライブラリを他から切り離して、RDF.rb自体がいかなるXMLやJSONパーサへの依存しないようにしています。</p>
<p>これら全ての形式サポートを一度に簡単にインストールできます。</p>
<pre><code>$ sudo gem install rdf rdf-raptor rdf-json rdf-trix
Successfully installed rdf-0.1.9
Successfully installed rdf-raptor-0.2.1
Successfully installed rdf-json-0.1.0
Successfully installed rdf-trix-0.0.3
4 gems installed
</code></pre>
<p>注: <code>RDF::Raptor</code> gemは<a href="http:///librdf.org/raptor/">Raptor RDF Parser</a> ライブラリとそのコマンドラインツールがシステムにインストールされている必要があります。MacやLinux, BSDディストリビューションのための簡単なRaptorのインストール方法は以下の通りです。</p>
<pre><code>$ sudo port install raptor             # Mac OS X with MacPorts
$ sudo fink install raptor-bin         # Mac OS X with Fink
$ sudo aptitude install raptor-utils   # Ubuntu / Debian
$ sudo yum install raptor              # Fedora / CentOS / RHEL
$ sudo zypper install raptor           # openSUSE
$ sudo emerge raptor                   # Gentoo Linux
$ sudo pkg_add -r raptor               # FreeBSD
$ sudo pkg_add raptor                  # OpenBSD / NetBSD
</code></pre>
<p>Raptorのインストールや使用方法についての更なる情報は、我々の以前のチュートリアル <a href="http://blog.datagraph.org/2010/04/transmuting-ntriples">RDF for Intrepid Unix Hackers: Trasmuting N-Triples</a>を見てください。</p>
<h4>RDFデータの読み込み</h4>
<p>もしあなたが急いでいて、すぐにRDFデータの正しい読み込み方を知りたいのなら、あなたが知る必要があることは本当に以下だけです。</p>
<pre><code>require 'rdf'
require 'rdf/ntriples'

graph = RDF::Graph.load("http://datagraph.org/jhacker/foaf.nt")
</code></pre>
<p>この例では、まずはじめにRDF.rbとN-Triples形式のサポートを読み込んでいます。その後、<a href="http://rdf.rubyforge.org/RDF/Graph.html"><code>RDF::Graph</code></a>クラスの便利なメソッドを使って、RDFデータを一度に直接ウェブURLから取得して解析します。(loadメソッドはファイル名かURLを受け付けます。)</p>
<p>全てのRDF.rbパーサプラグインは、処理可能なMIMEタイプとファイル拡張子を宣言します。それが、上の例でRDF.rbが、与えられたURLにあるfoaf.ntファイルを読むためのN-Triplesパーサのインスタンスの作り方を知っている理由です。</p>
<p>同じ方法で、RDF.rbは他のいかなるRDFファイル形式を自動検知します。そのためには、以下のどれかを使って形式のサポートを読み込めば良いです。</p>
<pre><code>
require 'rdf/ntriples' # Support for N-Triples (.nt)
require 'rdf/raptor'   # Support for RDF/XML (.rdf) and Turtle (.ttl)
require 'rdf/json'     # Support for RDF/JSON (.json)
require 'rdf/trix'     # Support for TriX (.xml)
</code></pre>
<p>注: もし複数の名前付きグラフを含むRDFファイル(TriXのように名前付きグラフをサポートする永続化形式)を読む必要があるなら、おそらくRDF::Graphの代わりに<a href="http://rdf.rubyforge.org/RDF/Repository.html">RDF::Repository</a>を使いたいでしょう。</p>
<pre><code>
repository = RDF::Repository.load("http://datagraph.org/jhacker/foaf.nt")
</code></pre>
<p>この2つの違いは、<code>RDF::Repository</code>インスタンス内のRDF文が、オプションとしてcontextを含められることです(すなわち4つ組(quad)になれます)。<code>RDF::Graph</code>インスタンスのRDF文は常に同じcontextとなります(すなわちこれらは3つ組(triple)です)。言い換えると、レポジトリは一つ以上のグラフを含み、以下のようにアクセスできます。</p>
<pre><code>repository.each_graph do |graph|
  puts graph.inspect
end
</code></pre>
<h4>RDF形式の内部処理</h4>
<p>RDF.rbの解析や永続化APIは以下の3つの基底クラスを基にしています。</p>
<ul>
<li><a href="http://rdf.rubyforge.org/RDF/Format.html">RDF::Format</a>は特定のRDF永続化形式を記述するために使われます。</li>
<li><a href="http://rdf.rubyforge.org/RDF/Reader.html">RDF::Reader</a>RDFパーサ実装用の基底クラスです。</li>
<li><a href="http://rdf.rubyforge.org/RDF/Writer.html">RDF::Writer</a>RDF永続化実装用の基底クラスです。</li>
</ul>
<p>もしあなたが解析や永続化をしたいファイル形式について何か知っているなら、形式指定用のクラスを以下の何れかの方法で取得できます。</p>
<pre><code>require 'rdf/raptor'

RDF::Format.for(:rdfxml)       #=> RDF::Raptor::RDFXML::Format
RDF::Format.for("input.rdf")
RDF::Format.for(:file_name      => "input.rdf")
RDF::Format.for(:file_extension => "rdf")
RDF::Format.for(:content_type   => "application/rdf+xml")
</code></pre>
<p>一度そのような形式指定用のクラスを持てば、そこから解析/永続化実装を取得可能です。</p>
<pre><code>format = RDF::Format.for("input.nt")   #=> RDF::NTriples::Format
reader = format.reader                 #=> RDF::NTriples::Reader
writer = format.writer                 #=> RDF::NTriples::Writer
</code></pre>
<p>また、RDF::ReaderとRDF::Writerにも、直接対応するファクトリメソッドがあります。</p>
<pre><code>reader = RDF::Reader.for("input.nt")   #=> RDF::NTriples::Reader
writer = RDF::Writer.for("output.nt")  #=> RDF::NTriples::Writer
</code></pre>
<p>以上が、URLやファイル名をRDF::Graph.loadに渡したときに、RDF.rbが正しい解析実装を得るために内部で依存するものです。もちろん、永続化形式を自動検出して、解析や永続化用の適切な実装クラスに委譲する必要がある、他のいかなるメソッドも同様です。</p>
<h4>RDFデータの解析</h4>
<p>もし、より明示的にRDFデータの解析、例えばデータセットをメモリに読み込めないので文毎に処理したい、ということをする必要があるのなら、<a href="http://rdf.rubyforge.org/RDF/Reader.html"><code>RDF::Reader</code></a>を直接使う必要があります。</p>
<h5>ファイルからRDF文を解析</h5>
<p>RDFパーサ実装は一般的に<a href="http://rdf.rubyforge.org/RDF/Enumerable.html"><code>RDF::Enumerable</code></a>インタフェースのストリーミング互換なサブセットをサポートします。これは<code>#each_statement</code>メソッドを基にしています。以下はRDFファイルを文毎に列挙しながら読み込む方法です。</p>
<pre><code>require 'rdf/raptor'

RDF::Reader.open("foaf.rdf") do |reader|
  reader.each_statement do |statement|
    puts statement.inspect
  end
end
</code></pre>
<p><code>RDF::Reader.open</code>をRubyブロックと一緒に使うことで、入力ファイルが処理後に自動的に閉じられることが保障されます。</p>
<h5>URLからRDF文を解析</h5>
<p>前の通り、ファイル名を使えていた場所全てで<code>http://</code>や<code>https://</code>のURLを使えます。</p>
<pre><code>require 'rdf/json'

RDF::Reader.open("http://datagraph.org/jhacker/foaf.json") do |reader|
  reader.each_statement do |statement|
    puts statement.inspect
  end
end
</code></pre>
<h5>文字列からRDF文を解析</h5>
<p>時々、すでにメモリバッファ上のどこかに永続化されたRDFコンテンツを持っているときがあります。例えばデータベースから取得した場合です。そのような場合、前に示したパーサ実装を取得して、その後<code>RDF::Reader.new</code>を直接使います。</p>
<pre><code>require 'rdf/ntriples'

input = open('http://datagraph.org/jhacker/foaf.nt').read

RDF::Reader.for(:ntriples).new(input) do |reader|
  reader.each_statement do |statement|
    puts statement.inspect
  end
end
</code></pre>
<p><code>RDF::Reader</code>コンストラクタはダックタイピングを使用しているので、<code>#readline</code>メソッドに応答するいかなる入力(例えば<code>IO</code>や<code>StringIO</code>オブジェクト)を受け付けます。もし入力の引数が何も与えられないときは、入力データはデフォルトで標準入力から読み込まれます。</p>
<h4>RDFデータの永続化</h4>
<p>RDFデータの永続化は解析とほとんど同様です。名前付きの出力ファイルに永続化されるとき、与えられたファイル拡張子によって正しい永続化実装がファイル拡張子によって自動検出されます。</p>
<h5>出力ファイルにRDF文を永続化する</h5>
<p>RDF永続化実装は一般的に<a href="http://rdf.rubyforge.org/RDF/Mutable.html"><code>RDF::Mutable</code></a>インタフェースのサブセットであり、追加だけ可能です。主に<code>#insert</code>メソッドとそのエイリアス<code>#&lt;&lt;</code>が対応します。以下がRDFファイルに文毎に出力する方法です。</p>
<pre><code>require 'rdf/ntriples'
require 'rdf/raptor'

data = RDF::Graph.load("http://datagraph.org/jhacker/foaf.nt")

RDF::Writer.open("output.rdf") do |writer|
  data.each_statement do |statement|
    writer << statement
  end
end
</code></pre>
<p>またですが、<code>RDF::Writer.open</code>をRubyブロックと一緒に使うことで、処理後に出力ファイルが自動的にフラッシュされ閉じられることが保障されています。</p>
<h5>RDF文を文字列結果に永続化</h5>
<p>ある共通のユースケースは、文字列バッファにRDFグラフを永続化することです。例えば<a href="http://www.rubyonrails.org/">Rails</a>アプリケーションからRDFデータを供給するときです。<code>RDF::Writer</code>には便利な<code>buffer</code>クラスメソッドがあり、<code>StringIO</code>に出力を溜め込んで最後に文字列として返してくれます。</p>
<pre><code>require 'rdf/ntriples'

output = RDF::Writer.for(:ntriples).buffer do |writer|
  subject = RDF::Node.new
  writer << [subject, RDF.type, RDF::FOAF.Person]
  writer << [subject, RDF::FOAF.name, "J. Random Hacker"]
  writer << [subject, RDF::FOAF.mbox, RDF::URI("mailto:jhacker@example.org")]
  writer << [subject, RDF::FOAF.nick, "jhacker"]
end
</code></pre>
<h5>永続化出力をカスタマイズ</h5>
<p>もし特定の永続化実装が名前空間接頭辞宣言や基底URIのようなオプションをサポートしているなら、これらのオプションを<code>RDF::Writer.open</code>や<code>RDF::Writer.new</code>にキーワード引数として与えることで指定できます。</p>
<pre><code>RDF::Writer.open("output.ttl", :base_uri => "http://rdf.rubyforge.org/")
RDF::Writer.for(:rdfxml).new($stdout, :base_uri => "http://rdf.rubyforge.org/")
</code></pre>
<h4>サポートチャンネル</h4>
<p>皆さん、今はこれで終わりです。このチュートリル以上のAPIについての情報は、RDF.rb <a href="http://rdf.rubyforge.org/">API文書</a>を参照してください。何か質問があれば、<a href="http://swig.xmlhack.com/">#swig</a>か <a href="http://lists.w3.org/Archives/Public/public-rdf-ruby/">public-rdf-ruby@w3.org</a>メーリングリストで遠慮なく聞いて下さい。</p>

	Tags: <a href="http://fumi.me/tag/linkeddata/" title="LinkedData" rel="tag">LinkedData</a>, <a href="http://fumi.me/tag/programming/" title="Programming" rel="tag">Programming</a>, <a href="http://fumi.me/tag/rdf/" title="RDF" rel="tag">RDF</a>, <a href="http://fumi.me/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://fumi.me/tag/semanticweb/" title="SemanticWeb" rel="tag">SemanticWeb</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2010/02/23/rubyrdf/" title="RubyRDF (2010/02/23)">RubyRDF</a> (0)</li>
	<li><a href="http://fumi.me/2010/02/23/rdfcontext-0-5-0/" title="RdfContext 0.5.0 (2010/02/23)">RdfContext 0.5.0</a> (0)</li>
	<li><a href="http://fumi.me/2010/02/23/rdfcontext/" title="RdfContext (2010/02/23)">RdfContext</a> (0)</li>
	<li><a href="http://fumi.me/2009/02/19/ruby/" title="プログラミング言語Ruby (2009/02/19)">プログラミング言語Ruby</a> (0)</li>
	<li><a href="http://fumi.me/sw/sw-books/" title="Semantic Web に関する書籍 (2009/10/13)">Semantic Web に関する書籍</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/cLjIYZyQNKd1mkSCnfnjupf1D2Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/cLjIYZyQNKd1mkSCnfnjupf1D2Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cLjIYZyQNKd1mkSCnfnjupf1D2Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/cLjIYZyQNKd1mkSCnfnjupf1D2Y/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/YEfY3IYmNeo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/04/22/rdf-rb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/04/22/rdf-rb/" />
	<feedburner:origLink>http://fumi.me/2010/04/22/rdf-rb/</feedburner:origLink></item>
		<item>
		<title>PlaceEngine in ActionScript その後</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/tIZIlYlM4xQ/</link>
		<comments>http://fumi.me/2010/03/22/placeengine-2/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 08:33:12 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[PlaceEngine]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2872</guid>
		<description><![CDATA[以前PlaceEngineをActionScriptからうまく使えないと書いたのですが，その後クウジット社の人とやりとりして，最終的に動くのを確認しました．問題は2点あったようです．1点はサーバ側の問題だったようで，修正 [...]]]></description>
			<content:encoded><![CDATA[<p>以前<a href="http://fumi.me/2010/01/11/placeengine/">PlaceEngineをActionScriptからうまく使えない</a>と書いたのですが，その後クウジット社の人とやりとりして，最終的に動くのを確認しました．問題は2点あったようです．1点はサーバ側の問題だったようで，修正したという連絡がありました．もう1つはcrossdomain.xmlの場所が異なっていたようです．以下のようにPlaceEngineAPI.asを直せば良いです．</p>
<pre><code>
       //サーバアクセスに先立って、crossdomain.xmlの場所を指定
-     Security.loadPolicyFile("http://www.placeengine.com/api/crossdomain.xml");
+    Security.loadPolicyFile("http://www.placeengine.com/crossdomain.xml");
</code></pre>
<p>この修正後，ActionScriptからも住所を取得できるのを確認できました．クウジット社の方々にはこの場を借りてお礼申し上げます．</p>

	Tags: <a href="http://fumi.me/tag/actionscript/" title="ActionScript" rel="tag">ActionScript</a>, <a href="http://fumi.me/tag/flex/" title="Flex" rel="tag">Flex</a>, <a href="http://fumi.me/tag/placeengine/" title="PlaceEngine" rel="tag">PlaceEngine</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2010/01/11/placeengine/" title="PlaceEngineをActionScriptから使用 (2010/01/11)">PlaceEngineをActionScriptから使用</a> (1)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/aLe9SVxUpgrqu6WPLBZ-iVeZNOc/0/da"><img src="http://feedads.g.doubleclick.net/~a/aLe9SVxUpgrqu6WPLBZ-iVeZNOc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/aLe9SVxUpgrqu6WPLBZ-iVeZNOc/1/da"><img src="http://feedads.g.doubleclick.net/~a/aLe9SVxUpgrqu6WPLBZ-iVeZNOc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/tIZIlYlM4xQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/03/22/placeengine-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/03/22/placeengine-2/" />
	<feedburner:origLink>http://fumi.me/2010/03/22/placeengine-2/</feedburner:origLink></item>
		<item>
		<title>できるポケット+ Evernote</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/OqFQMCHW7UY/</link>
		<comments>http://fumi.me/2010/03/07/evernote-book/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 03:24:00 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[EverNote]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2868</guid>
		<description><![CDATA[初のEvernote本が出たというので買ってみました．結論から言うと，すでにEvernoteを使っている人には必要ない本だと思います．Evernoteそのものの使い方の本なので，今までEvernoteを知らなかった人や， [...]]]></description>
			<content:encoded><![CDATA[<p>初のEvernote本が出たというので買ってみました．結論から言うと，すでにEvernoteを使っている人には必要ない本だと思います．Evernoteそのものの使い方の本なので，今までEvernoteを知らなかった人や，インストールしたけど良く分からなくてそのまま放置してあるという人向けです．そういう方に手にとって頂いて，裾野が広がれば良いなと思います．</p>
<p>もう一つ， <a href="http://evernotebook.com/">Evernoteハンドブック</a>というのがPDFで販売されているようです．</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88-Evernote-%E3%82%B3%E3%82%B0%E3%83%AC%E3%83%9E%E3%82%B5%E3%83%88/dp/4844328271%3FSubscriptionId%3DAKIAIAILLLDE7T4Q5BMQ%26tag%3Dtorrydiary-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4844328271"><img src="http://ecx.images-amazon.com/images/I/513TrCEhP1L._SL160_.jpg" border="0" alt="できるポケット+ Evernote"  title="できるポケット+ Evernote image" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E3%81%A7%E3%81%8D%E3%82%8B%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88-Evernote-%E3%82%B3%E3%82%B0%E3%83%AC%E3%83%9E%E3%82%B5%E3%83%88/dp/4844328271%3FSubscriptionId%3DAKIAIAILLLDE7T4Q5BMQ%26tag%3Dtorrydiary-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4844328271">できるポケット+ Evernote</a></p>
	<p><em>著者／訳者：</em>コグレマサト いしたに まさき できるシリーズ編集部 </p>
	<p><em>出版社：</em>インプレスジャパン( 2010-03-05 )</p>
	<p><em>定価：</em>￥ 1,260</p>
	<p><em>Amazon価格：</em>￥ 1,260</p>
	<p>単行本（ソフトカバー） ( 160 ページ )</p>
	<p>ISBN-10 : 4844328271</p>
	<p>ISBN-13 : 9784844328278</p>
<hr class="tmkm-amazon-clear" /></div>

	Tags: <a href="http://fumi.me/tag/book/" title="Book" rel="tag">Book</a>, <a href="http://fumi.me/tag/evernote/" title="EverNote" rel="tag">EverNote</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2009/01/02/gtd/" title="はじめてのGTD ストレスフリーの整理術 (2009/01/02)">はじめてのGTD ストレスフリーの整理術</a> (0)</li>
	<li><a href="http://fumi.me/2009/10/25/iphone-book/" title="iPhone情報整理術 (2009/10/25)">iPhone情報整理術</a> (1)</li>
	<li><a href="http://fumi.me/2009/01/19/critical-reading/" title="外国語で発想するための日本語レッスン (2009/01/19)">外国語で発想するための日本語レッスン</a> (0)</li>
	<li><a href="http://fumi.me/2009/10/13/mercurial/" title="入門 mercurial (2009/10/13)">入門 mercurial</a> (0)</li>
	<li><a href="http://fumi.me/2009/02/19/ruby/" title="プログラミング言語Ruby (2009/02/19)">プログラミング言語Ruby</a> (0)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/Ttkv86Kna60wa2K_zTU4Zdf-b-s/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ttkv86Kna60wa2K_zTU4Zdf-b-s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ttkv86Kna60wa2K_zTU4Zdf-b-s/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ttkv86Kna60wa2K_zTU4Zdf-b-s/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/OqFQMCHW7UY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/03/07/evernote-book/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/03/07/evernote-book/" />
	<feedburner:origLink>http://fumi.me/2010/03/07/evernote-book/</feedburner:origLink></item>
		<item>
		<title>RdfContext 0.5.0</title>
		<link>http://feedproxy.google.com/~r/Fumime_rss20/~3/6ym8AiwlrLk/</link>
		<comments>http://fumi.me/2010/02/23/rdfcontext-0-5-0/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 14:15:22 +0000</pubDate>
		<dc:creator>fumi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SemanticWeb]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[RDF]]></category>

		<guid isPermaLink="false">http://fumi.me/?p=2866</guid>
		<description><![CDATA[Greggが早急に動くようにしてくれました．すでに入れている人はgem update で0.5.0にできます．とりあえずRuby1.8.6-1.9.1なら動くようになったようです．1.8と1.9では文字の扱いが大分違うの [...]]]></description>
			<content:encoded><![CDATA[<p>Greggが早急に動くようにしてくれました．すでに入れている人はgem update で0.5.0にできます．とりあえずRuby1.8.6-1.9.1なら動くようになったようです．1.8と1.9では文字の扱いが大分違うので色々な問題がありそうですね．また，TurtleなどのTestSuiteもN3 Parserが通るようになってみたいです．</p>

	Tags: <a href="http://fumi.me/tag/rdf/" title="RDF" rel="tag">RDF</a>, <a href="http://fumi.me/tag/ruby/" title="Ruby" rel="tag">Ruby</a>, <a href="http://fumi.me/tag/semanticweb/" title="SemanticWeb" rel="tag">SemanticWeb</a><br />

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://fumi.me/2010/02/23/rubyrdf/" title="RubyRDF (2010/02/23)">RubyRDF</a> (0)</li>
	<li><a href="http://fumi.me/2010/02/23/rdfcontext/" title="RdfContext (2010/02/23)">RdfContext</a> (0)</li>
	<li><a href="http://fumi.me/2010/04/22/rdf-rb/" title="RDF.rb (2010/04/22)">RDF.rb</a> (0)</li>
	<li><a href="http://fumi.me/2009/02/19/ruby/" title="プログラミング言語Ruby (2009/02/19)">プログラミング言語Ruby</a> (0)</li>
	<li><a href="http://fumi.me/2010/06/18/programming-the-semanticweb/" title="セマンティックWebプログラミング (2010/06/18)">セマンティックWebプログラミング</a> (1)</li>
</ul>


<p><a href="http://feedads.g.doubleclick.net/~a/7LVclRZqjYzgEzPBhTiIzcxdKeQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/7LVclRZqjYzgEzPBhTiIzcxdKeQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7LVclRZqjYzgEzPBhTiIzcxdKeQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/7LVclRZqjYzgEzPBhTiIzcxdKeQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Fumime_rss20/~4/6ym8AiwlrLk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://fumi.me/2010/02/23/rdfcontext-0-5-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fumi.me/2010/02/23/rdfcontext-0-5-0/" />
	<feedburner:origLink>http://fumi.me/2010/02/23/rdfcontext-0-5-0/</feedburner:origLink></item>
	</channel>
</rss><!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
