RDFにしたときにでる違いっていうのはそのまんまだけどRDFエージェントに読ませることができるってことですよ。RDFパーサーで読めてうれしいというのはRDFが汎用のメタデータ表現の標準と目されているからです。
たとえばRSSもFOAFもそれぞれまったく無関係な野良XMLで表現されていたとしたらこれらを利用しようとするエージェントはこうしたフォーマット毎に(そして増える毎に)いちいち対応しなきゃいけないけど「RDFパーサーで読める」という風になっていればその必要は無くなるわけさ。
だから単にSyndicationのためのフォーマットとしてのRSSってことを考えたらそれに必要なものだけあればよいってことでRSS0.91とかRSS2.0でいいじゃんってことになるけどもうちょっと遠くを見るとRDFでメリットが出るところが見える。
山田BBS ウェブロについて考える。2 の 994。RSS 1.0 が RDF ベースだと何がいいかっていう話に対しての解。なるほど、その通り。ていうか今まで気付かなかったんかい、自分。
物は試しと RDF パーサーで読ませてみようと CPAN を検索したら、RDF::Simple::Parser というちょっと試すには丁度よさそうなモジュールがあったので、サンプルコードそのままに書いてみました。
RDF::Simple::Parser でパースして Data::Dumper でダンプするのみ。RDF パーサーが理解できるかどうかを試します。
#!/usr/local/bin/perl use warnings; use strict; use LWP::Simple; use RDF::Simple::Parser; use Data::Dumper; my $uri = "http://naoya.dyndns.org/~naoya/mt/index.rdf"; my $rdf = get($uri); my $parser = RDF::Simple::Parser->new( base => $uri ); my @triples = $parser->parse_rdf($rdf); print Dumper(@triples);
実行すると、
[naoya@mary tmp]$ ./rdfparse.pl | nkf -e | more
VAR1 = [
'http://naoya.dyndns.org/~naoya/mt/',
'http://www.w3.org/1999/02/22-rdf-syntax-ns#type',
'http://purl.org/rss/1.0/channel'
];
$VAR2 = [
'http://naoya.dyndns.org/~naoya/mt/',
'http://purl.org/rss/1.0/title',
'NDO::Weblog'
];
$VAR3 = [
'http://naoya.dyndns.org/~naoya/mt/',
'http://purl.org/rss/1.0/link',
'http://naoya.dyndns.org/~naoya/mt/'
];
$VAR4 = [
'http://naoya.dyndns.org/~naoya/mt/',
'http://purl.org/rss/1.0/description',
'MovableType指向な気まぐれ更新ウェブログ。Espoir House は吸収合併。'
];
(以下略)
お、ちゃんと読めてる。出てきたデータ構造(リストリファレンスのリスト)をどう使うかはちょっと微妙ですけど、なるほど、RDF パーサーでしっかりパースできます。