WordPressテンプレート制作、ウェブデザイン技能検定に挑戦中

前の記事:ウェブデザイン技能検定2級試験結果
HOME
次の記事:Google AdSenseのインフィード広告が利用可能に、記事と記事の間に広告を表示する方法

RDFとRSS

Web知識

 

時折耳にする言葉だったので、以前RDF(Resource Description Framework)について調べた事があるのですが、解説しているサイトをいくつか周って調べてみても「よく分からない」というのが正直な感想でした。

「後で調べればいいや」という悪い考えを持って、そのまま放置して今日まで来たのですが、たまたま図書館で手に取った『入門RSS』という本にRDFの事が分かり易く記されており、ようやくどういったものか掴めた気がするので、自分なりにまとめておきます。

 

 

RDFとは

 

ざっくり言うと、RDFとはデータを文書化する際のルールのようなものです。データをXML文書化する際に用いられたり、用いられなかったりします。

データをXML文書化する際、必ずしもRDFの形式に則り記述する必要はありません。ある一定のルールに基づいてデータを記述すれば、機械的にそのデータを読み取り易くなるので、RDFの形式が推奨されますが、先ほど書いた通り強制ではないので、RDFを用いるかどうかはプロジェクトの管理者が決めます。

RDFに従って作られたXML文書として、身近なものにRSS1.0(※後述)があります。RSSはブログの更新情報をまとめたデータです。

 

 

メタデータ

 

一言でデータと言っても、大元の情報は様々な情報の上に成り立っている事が多いです。例えばこのブログであれば、「ブログタイトルはレアカードのWebデザイン日記」、「ブログ管理者はレアカード」といった感じです。

このように、一つの大きなデータを形成しているデータの一つ一つをメタデータと呼びます。データが持つデータとも言えます。

 

 

RDFの3組モデル(トリプル)

 

RDFには「メタデータはリソースプロパティの3組で記述する」という大原則があります。

リソースは元となる情報です。プロパティは属性です。メタデータの種類と捉えていいと思います。そしてプロパティ毎にを定めます。

 

https://rarecard.jp/blog/feed/rdf

上記URLをアドレスバーに打ち込む事で、このブログのRSS1.0(RDF形式で書かれたXMLファイル)をダウンロードなり閲覧する事が出来ます。以下にそのファイル内容を簡略化して貼り付けます。

 

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
 xmlns="http://purl.org/rss/1.0/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>
<channel rdf:about="https://rarecard.jp/blog"> <title>レアカードのWebデザイン日記</title> <link>https://rarecard.jp/blog</link> <items> <rdf:Seq> <rdf:li rdf:resource="https://rarecard.jp/blog/page-49"/> <rdf:li rdf:resource="https://rarecard.jp/blog/page-48"/> <rdf:li rdf:resource="https://rarecard.jp/blog/page-47"/> </rdf:Seq> </items> </channel>
<item rdf:about="https://rarecard.jp/blog/page-49"> <title>ウェブデザイン技能検定2級試験結果</title> <link>https://rarecard.jp/blog/page-49</link> </item> <item rdf:about="https://rarecard.jp/blog/page-48"> <title>ウェブデザイン技能検定1級 学科試験対策 平成27年過去問題解説</title> <link>https://rarecard.jp/blog/page-48</link> </item> <item rdf:about="https://rarecard.jp/blog/page-47"> <title>ウェブデザイン技能検定1級 学科試験対策 平成26年過去問題解説 その2</title> <link>https://rarecard.jp/blog/page-47</link> </item>
</rdf:RDF>

よく見ると、リソース(https://rarecard.jp/blog)に対応して、titleは〇〇というように、全てのメタデータが組になって登録されている事が分かります。

 

 

名前空間

 

上の項ではルート要素<RDF>に設定されているものをいくつか省いて書きましたが、全て記すと次のようになっています。

 

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" >
(略)
</rdf:RDF>

XMLは自由にタグの名前を付ける事が出来る言語ですが、その名前を付ける人によってタグの用途が異なる可能性があります。RSSのように多くのアプリケーションが参照するXMLファイルで、各所でタグの持つ意味が異なると、プログラムが目的の情報を取得出来なかったりと問題になります。

このような問題を解決するのが名前空間です。タグの名前に、どこでどのように定義されたタグなのか情報を付与します。情報を付与といっても、タグの用途を定義しているドメイン名との関連付けを行うだけです。これがルート要素<RDF>で設定されている事になります。

xmlns=”http://purl.org/rss/1.0/”ではtitleやlinkといったコロンの付かないタグの用途を定義しています。

 

<dc:date>2017-03-29T05:21:42Z</dc:date>

タグがこのように名前付けされている場合、http://purl.org/dc/elements/1.1/で定義されたdata要素という事になります。

 

 

RSSの種類

 

RSS0.9… RDF Site Summary
RSSの原型です。RSS0.9はRDFに基づいて作成されていますが、バージョンアップ版のRSS0.91はRDFに基づいておらず、名前をRich Site Summaryに変更しています。その後RSS0.92にバージョンアップしています。
RSS1.0… RDF Site Summary
名前から分かる通り、RSS0.9の流れを汲んで、RDFに基づいて作成されたRSSです。
RSS2.0… Really Simple Syndication
RSS0.91→RSS0.92の流れを汲んだバージョンです。こちらはRDFに基づいていません。RSS1.0のバージョンアップ版ではなく、RSS1.0を推奨するグループと対立する形のグループが、より簡単に機能拡張していこうという考えのもとリリースしたバージョンです。
Atom
RSS1.0とRSS2.0の関係を見ると分かる通り、RSSの形式が枝分かれした状態となりユーザーにとって好ましくない状態になりました。そこでRSSの新たな形式を構築しようとする動きがあり、そういった経緯で生まれたのがAtomです。AtomはRDFに基づいていないようです。

 

グループ間の対立もあったようで混沌としていますね。素人目で見ると、統一性を持たせる役割を持ったRDFの存在が結果的にRSSのバージョンを乱立させる結果になっていて何の為のRDFなのかという気も。

ちなみにWordPressではさすがというべきか、これら全てのバージョンのRSSを参照出来ます。

参考URL: WordPress フィード配信

 

0件のコメント

コメント

カテゴリ

月別アーカイブ