BH13.13/uuid-bnode

提供:TogoWiki

2014年2月7日 (金) 07:35時点におけるJdkim (トーク | 投稿記録)による版
(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

目次

UUID vs. Blank node

作成者:金(DBCLS)

背景

BH13.13で有りましたUUIDとBlank nodeの使い分けの議論の対しての僕の論点を共有する目的で書きました。こんな議論が蓄積されるとRDFでーた作りのガイドラインになるのではないかと期待します。もちろん間違った内容が共有されるのは良くないですので、間違ったところが見つかったら、ご指摘を頂けますと幸いです。

UUIDとBlank nodeを使う時の差

正確に言うと「URIを発行する」vs.「URIを発行しない」の差だと思います。 URIを発行する時、URIを生成する幾つかの方法の一つがUUIDですが、どんな方 法で作られてもURIになるのは一緒ですので、標準のセマンティックウェブのツー ルがUUIDのURIとそうでないURIで区別しないと思います。

UUIDは数あるID生成の方法の中でID生成の主体が不特定多数の時、生成さ れるID間の衝突を防ぐための方法であります。セマンティックウェブの世界で はこんな目的のために各自が持っているドメイン名を使って皆自分のネームス ペースでIDを生成しますので普通だったらUUIDを作る理由はないと思います。 なのでUUIDでURIを生成するというのは「どうしても不特定多数が同じネーム スペースを共有してIDを発行したい」時に限ると思います。

「Blank nodeの代わりに適当に臨時的にUUIDのURIを発行する」というのはちょっと 危険な発想だと思います。それはなぜなら「適当に臨時的に」というのは prefixとして'uuid:'を付けるだけでは表現できないからです。そんなUUIDが 含まれたRDFデータを使う人はきっとちゃんとしたURIとして使うと思います。

コストの差

「UUIDを発行してもコストはあまり掛からないので」というのは違うと思いま す。「UUIDの生成」だけはコストが低いかも知らないですが、UUIDで生成され てもURIはURIですのでちゃんとしたURIとしての管理が必要になります。

例えば、「とりあえずUUIDを付けておこう」という気持ちで生成したURIを含む RDFデータセットを公開した後で、そのデータセットをバージョンアップしよう とすると,以前UUIDで生成したURIをちゃんと維持しながら作業しないと行けな いです。というか維持しないとIDを発行した意味がなくなります。Blank node はそんなの気にしなくても大丈夫ですのでコストの差は結構有ると思います。

探索という観点から見てもURIが増えるというのはグローバル探索空間が広くな ることになりますので、探索のコストが上がることに繋がります。ですので 「後で使うかどうかしらないがとりあえず作っておこう」というのはあまりお勧め できるやり方ではないと思います。

意味的な観点

意味的には、例えば「今朝ある人が自転車にぶつかるのを見ました。その人は病院に運ばれました。」とのことを言うため「僕が今朝見た自転車にぶつかった人をこれからXFDFSFRFGAさんと呼びます。」とわざわざ宣言する必要はあまりないと思います。もちろん、そうする方が良い場合もあると思いますので絶対必要ないとは言えませんが。

結論

  • Blank nodeで済むどころをわざわざURIを付けようとしない方が作成者も使用者も楽でしょう。
  • 同じネームスペースで不特定多数がURIを生成する必要がある時はID間の衝突を防ぐ方法としてUUIDが使えるでしょう。
個人用ツール