読者です 読者をやめる 読者になる 読者になる

竹林のゆとりブログ

山奥で生活し、日々の思いをつらつらと書くブログ。 IT、数学、アニメなど。

LinkedOpenData入門①

Linked Open DataとRDF

最近有名になっている、Linked Open Dataとその内部技術であるRDFとSPARQLについて調査したので、全3回で説明する。
話す内容は以下の予定

  1. Linked Open DataとRDF
  2. SPARQLとDBPedia
  3. セマンティックWebに対する期待と意見 (3は期待がかけられると判断した時に記載する)

参考文献

オープンデータ時代の標準Web API SPARQL (NextPublishing)

オープンデータ時代の標準Web API SPARQL (NextPublishing)

Open Dataとは

Linked Open Dataの前に、Open Dataについて説明する。

オープンデータとは、自由に使えて再利用もでき、かつ誰でも再配布できるようなデータのことだ。従うべき決まりは、せいぜい「作者のクレジットを残す」あるいは「同じ条件で配布する」程度である。

(Open Data Handbookより)

つまり、誰でも利用可能であるという権利の保証をしたデータのことがOpen Dataである。

Linked Open Data

誰でも利用可能であるデータと利用しやすいデータとは定義からして一致していない。 そのため、Openな環境において、誰もが利用しやすい形式を目指そうというニーズが生まれる。

そのニーズを満たすものがLinked Open Dataである。 Open Dataは実際に、その形式によって以下の5段階に分けられており、そのうち、4段階目と5段階目をLinked Open Dataという

5段階のレベルは以下の通り。(http://5stardata.info/ja/より引用)

f:id:fatal-t-h-f-flydream-bamboo:20160211211326p:plain

4段階は、ひとことで言うと、Webから誰でもアクセス可能なデータであること。
5段階は、その上でそのデータにアクセスした後、異なる関連したデータへのアクセスする方法(URL)を入手可能なデータである。

RDFとは

Linked Open Dataを実現する、有名なフレームワークの一つ。

W3C勧告となっており、正式な情報はhttps://www.w3.org/RDF/ で告知されている。

RDFの定義

定義(参考文献より引用)  

RDF( Resource Description Framework) は、 ウェブ 技術 を 使っ て データ を 記述 する ため の フレーム ワーク です。 前節 で 述べ た よう に、 RDF では 全て の もの が リソース として 抽象的 に 扱わ れ、 それぞれ の リソース を 識別 する のに IRI を 使い ます。 RDF の データモデル は、 広く 使わ れ て いる リレーショナル データベース( RDB) とは 異なり、 グラフ です。 RDF では、 主語( Subject)・述語( Predicate)・目的語( Object) という 3 つ の リソース の 組み合わせ が 最小 単位 と なっ て い て、 それ を トリプル と 呼び ます RDF グラフ は トリプル の 集合 で 表現 さ れ ます。 図 2-2 は トリプル の 例 を グラフ として 可視化 し た もの です。 トリプル は、 主語 と 目的語 の 2 つ の ノード と、 述語 の 有向 アーク( 図 2-2 における 矢印) から なる グラフ と みなせ ます。

図2-2 f:id:fatal-t-h-f-flydream-bamboo:20160211211427p:plain

図 2-2 は DBpedia に 実際 に ある トリプル で、 日本 の 首都 は 東京、 という データ を 表し て い ます。

トリプルの取りうる値

RDFの要素
主語 IRI
空白ノード
http://dbpedia.org/resource/Japan
述語   IRI http://dbpedia.org/
目的語 IRI
空白ノード
リテラル
http://dbpedia.org/resource |  
  • IRI
    データの文字列による識別子。URLとほとんど同じ。http://から書かれる。
  • 空白ノード
    "空白"
  • リテラル
    文字列 or 数字

トリプルの表示形式

  • N-Trip les
    一行に主語・述語・目的語のIRIを< >で囲み、半角スペースorTabで区切り、文末をピリオド

  • Tuttle形式
    N-Triplesを拡張した形式。いくつかの略記法が定義されいている。

略記法1
@prefix "半角英数字":
<文字列> .
と書いた行以降では、半角英数字(空文字を含む)によるショートカットが使える 例)

@prefix :  
<http://dbpedia.org/resource/> .  

略記法2
主語が同じトリプルの場合は;を使って略記する。

A B C;
B' C'.

略記法3
主語述語が同じトリプルの場合以下のように,を入れて略記する。

A B C, C'.

RDFに対する疑問

RDFの定義が曖昧であったので、理解不可能な点がたくさんあったので、それをQA形式でまとめます。

疑問1 文字列にとれる値が不明

[Q]略記法の説明を読むと文字列とURLがふくまれている。しかし、URLも文字列の一種であり、文字列と識別されるおそれがあるのでは?型を指定する等により識別しているのだろうか?

[A]実装によるが、おそらく特に何もしていなない。httpで始まるか否かで識別していると予想。

疑問2 IRIの意味

[Q]IRIが何を意味するかはどこかに決まっているのか?

[A]これもおそらくない。 経験的にルールをみって決定しているのみ。つまり、IRIからデータを一般的に知る方法がないということ DBpediaでは、http://ja.dbpedia.org/resource/Wikipediaのタイトル で、WikiPediaの情報を取る構造をしている。

疑問3 トリプルの意味

 [Q]]主語、述語、目的語と書いてあるが、文法を解釈すると、とてもこの意味が妥当に思えない

[A]元々は主語が目的語を述語する。例えば、尾田栄一郎がONEPEICEを書くだったんだと推測するが、現状は尾田栄一郎の作品にONEPIECEがあるという意味で書かれていることが多い。 それは述語の役割が述語ではなく、主語と目的語の関係を表すものであり、その関係のニュアンスを持つ名詞を元にしたIRIになっていることが多いため。 そのため、本来はこのトリプルの意味は変えるべきだと思う。

疑問4 トリプルをグラフと表現する意味

[Q]トリプルをグラフに表現することで何の意味があるのかわからない。ただ、3つのデータの順序のついた組だと思えばいいのでは?

[A]技術的にはおそらく、その通り。グラフという表現にする理由は、幾何的にみせることでなんとなく分かった気にさせるメリットがあることと、グラフ理論という分野が先に出ているため。 グラフ化できたことに対する固有の強みを発揮することはないと予想。

疑問5 RDF全体の構造

[Q]グラフ表記にしたとして、絵では→の個数と述語の個数が一対一に対応するかのように書かれているが、それは間違っているのでは?

[A]この理解はただしく、→の個数と一致するのは、述語の個数ではなく、トリプルの個数。

疑問6 RDFの作成方法

[Q]RDFというフレームワークを利用する場合に、自分でデータを作る時に何を決めればいいのか、わからない。

[A]使う立場でのみ、調査していたため、不明のままである。わかりやすいデータにするための調査をする程度と予想

伝わって欲しいこと

いろいろと疑問を書きましたが、わかってもらいたいのは、以下です。

RDFで定義されるURLに対して、それを識別子として受けるデータが何かを機械敵に特定できないことが問題である。
それは、今あるWebサイトのようにURLでアクセスすればデータが入手できるようなものではないため。

そのため、RDFのデータの意味は雰囲気やURLの文字列で判断しなければいけない。 もちろん、親切なページ(DBPedia等)では、同じURLでアクセスすることで知りたいデータと思しきものを得られる。

まとめ

RDFの形は決まってきている程度に成熟している。 しかし、現状使い勝手いいという状態にはなっていない。

続く。