Drafts

@cm3 の草稿置場 / 少々Wikiっぽく使っているので中身は適宜追記修正されます。

項目名付きリテラルという選択肢

たとえばここに紹介されているように汎用的な語彙、dct:description の値として "項目名: 値" のようなリテラルを書くというのは図書館のメタデータからきた方法らしい(と神崎さんにオフラインで聞いた)。特にどこかで仕様化やBest practiceとしてまとめられたりはしていないようだ。なので、Linked Data のモデリングというコンテクストでウェブ上で確認できる文書は神崎さんがらみのものしか見つからなかったのだが、そのメリットとして以下のような紹介がある。

平成29年度「ジャパンサーチ(仮称)」利活用フォーマット検討成果物

内容記述及び注記概要・要約、注記、備考など物理特徴以外のその他の情報を、同じく(必要に応じて導入句付きの)「記述」として扱う。 項目(プロパティ)を細分化しないのは、その方が検索利用しやすいこと、識別・選択のためには導入句があれば用が足りること、分野/提供者ごとに異なる多様な項目をアーカイブで反映するのは困難なこと、詳しくはソース情報によって確認できること、による。 なお情報の表示にあたっては、導入句を値から切り離し、項目名に付加して「記述(注記)」のような表示項目として用いることで、より確認しやすくなると考えられる。

"分野/提供者ごとに異なる多様な項目をアーカイブで反映するのは困難"というのは入力された多様な項目をスクリプトで自動でRDF化したりするときに適切な述語を生成することが困難という意味で、述語としては dct:description を使うとその困難を避けられるということだ。"その方が検索利用しやすいこと" というのはリテラル部分を検索エンジンに投げ込んでおいた場合を主に想定しているが、データセットやデータのクラス情報をちゃんとモデリングして区切っておけば、SPARQLでのFilter句でも1000万レコードくらいはサクッといける(そうな)ので、SPARQLでの検索にも条件付きでメリットとなる。

導入句を加えるとプロパティ値が識別子自身と違ってしまう。人間が確認するという意味での利用者タスクにとっては問題ないが、項目名ではなく値については機械利用という観点も考える必要がある。

例えば、時刻やurlに導入句を加えてしまうと、そのままで扱いにくくなってしまうという問題点がある。そういう場合は型付きリテラルにするか、述語を詳細化するかという選択があるが、導入句を加えると機械利用の利便性が損なわれる=うまくモデリングすると機械利用のご利益が見込まれるということなので、私はこの悩みが生じたら「述語の詳細化とentity linkingのご利益がある」シグナルだと考えたらいいと思っている。

このプラクティスを何と呼ぼうか?

まあ、そんなわけで規格化された話でもないのだけれど、もっとこの話を広めたいと思って、ブログ記事にした。「導入句付きのリテラル」は英語に直訳して、"Plain literals with prefixes" とか "prefixed plain literals" とかかな。"Attribute–value pair as plain literals" もよいと思う。日本語の別案だと「項目名付きリテラル」。神崎さんは導入句というのが図書館由来ですでに使われているのを知ってと仰っていたし、たしかには見つかるけれど、まあコンテクストも違うので、「項目名付きリテラル」の方が誤解がなくていいのじゃないかなとは思っている(別に「導入句付きのリテラル」で広まってくれても構わない、ことばの政治がやりたいわけじゃないので、単に誤解がないほうが良いと思うのと、"導入句"をググった結果、図書館的にもそんなに定着した言い方ではないのではと思ったので代案を提示している)。

参考