W3C Community Draft

この文書「Open Annotation Data Model Open Annotation」(2013年2月8日付コミュニティドラフト)は、W3COpen Annotation Community Groupによる"Open Annotation Data Model (W3C Community Draft, 08 February 2013)"の日本語訳です。この日本語訳はあくまで参考情報であり、W3Cの公式な日本語訳ではありません。翻訳・解釈に誤りがある可能性があります。原文の最新版が存在する可能性があります。

日本語訳更新日:
2014-06-18
日本語訳公開日:
2014-04-27
翻訳者:
kzakza
前のページ   目次   次のページ

目次

  1. モジュール : 多重構造物
    1. 選択(Choice)
    2. 複合物(Composite)
    3. リスト(List)


モジュール:多重構造物

アノテーション(Annoation)が、複数の本体(Body)、ターゲット(Target)、もしくはその両方から構成されるユースケースが多くある。複数の本体(Body)、ターゲット(Target)のためにコアで定義されたセマンティクスは、それぞれのリソースが個々に他のリソースと関係を持っていることであるが、いつもそのケースとはかぎらない。アノテーション(Annoation)を代替となるあるグループからの1つのリソースと関係づけるのに役に立つ。例えば、異なる3つの言語で利用可能なコメントを持ち、ユーザーのクライアントがその中から適切な1つの言語を表示させる場合。または、リソースを比較する時のように全てのリソースが等しく重要であるリソースのセットにアノテートする場合である。この後者のケースでは、コメントはリソースに個々に適用されず、それらのすべてに適用される。最後に、特に意図したセグメントを抽出するために適切な順序で処理しなければならないセレクタ(Selector)のグルーピングのためにリソースのそのセットの順序付けが考慮されれば有用である。

Open Annotationモデルは、これらの要件をモデル化するために3つの多重構造物を含んでいる。oa:Choice、oa:Compositeおよびoa:Listである。これらのノードは、oa:hasBody、oa:hasTarget、oa:hasSelector,、oa:hasState, oa:styledByのオブジェトとoa:hasScope関係として使用され、oa:item関係を使用する構成リソースを順に参照する。アイテムはリソースもしくはさらに複数のリソースからなる構造物のようかもしれない。例えば、複合物(Composite)は、2つのアイテムをもつかもしれず、そのうちの1つはリソースであり、もう1つは2つのさらなるリソースの間にあるoa:Choice かもしれない。

多重構造物は、UUID、URNのような、識別するためのグローバルにユニークなURIを持つべきである(SHOULD)。URIは解決可能であってもよい(MAY)。アノテーション(Annotation)グラフのように、そのURIが構造物のRDFのdescription要素である場合、もしデリファレンスされたときに返されなければならない(MUST)。この識別勧告はrdf:Altrdf:Bagrdf:Listの同等クラスでは、標準的ではない。それらのクラスに基づく要件のさらなる処理およびモデリングを有効な状態にすることができない。他のアノテーションやシステムから直接参照されることが重要であると考えられないならば、RDF空白ノードを使用して構造物が代わりにモデリングされることはよい(MAY)。

注意事項:以下の全ての例が1つのレベルの1つの構造物を表示しているが、同じパターンは、全ての関係と1つ以上のグルーピングされたリソースからなる構造物に従う。

モデル

語彙項目タイプ説明
oa:itemRelationship[rdfs:memberのサブプロパティ] 複数の構造ノードと構成要素であるリソースとの関係
1個以上のアイテムがなくてはならない(MUST)。

選択(Choice)

選択(Choice)は、アノテーション(Annotation)を利用するアプリケーション処理をするか表示するかを選択するリソースのセットである。指定子(Specifier)にとって、選択(Choice)が同等か等価であるときに、クライアントは使用するための構成要素リソースの中から1つ選ぶべきである。クライアントは、どのリソースを選ぶべきかの決定に任意のアルゴリズムを使用しようしてもよい(MAY)。そして、自動的にそれを行うために、アノテーション(Annotation )の中にある情報表示を利用するべきである(SHOULD)。または、リストを表示し、ユーザーに決断を求めてもよい(MAY)。

選択(Choice)は、デフォルトのオプションを用意すべきである。これは、クライアントが独自の好みを持っていない場合に、アノテーション(Annotation)の発行者が使用されるべきことを推奨する構造要素リソースである。この機能は、特に好まれるセレクタ(Selector)もしくは状態(State)を表現するために使用されるべきである。rdf:Altは等価的なプロパティを持たないことに注意する。

モデル

語彙項目タイプ説明
oa:ChoiceClass[rdf:Altのサブクラス] 利用するアプリケーションに構成要素リソースの中からユーザーに表示する1個を選ぶべきことと、全てをレンダリングしないことを伝える1個の多重構造物。 この構造物は、rdf:Alt container クラスと等価である。
oa:defaultRelationship[oa:itemのサブプロパティ] 最も適切なものを決定する他の手段がない場合にデフォルトオプションとして使用するための構成要素リソース。
各選択(Choice)にきっちり1個ずつのデフォルトの関係があるべきである(SHOULD)。

図4.1. 選択(Choice)
 <anno1> a oa:Annotation ;
    oa:hasBody <choice1> ;
    oa:hasTarget <target1> .
    
  <choice1> a oa:Choice ;
    oa:default <body1> ;
    oa:item <body2> .

使用

クエリ:デフォルトで本体(body)が選択(Choice)であるところのリソースのアノテーションを検索する。
 SELECT ?anno WHERE { ?anno oa:hasBody ?body . ?body a oa:Choice . 
    ?body oa:default ?default }
=> <anno1>

さらなる例はこちらを参照すること。

複合物(Composite)

複合物(Composite)は、アノテーション(Annotation)が正しく解釈されるために全てに要求されるリソースのセットである。以下の例では、2つのリソース間の違いを比較したアノテーション(Annotation)もしくは人間が読むことができる形式のものと必要な構造化データ·ファイルの両方で本体(Body)が構成されるアノテーション(Annotation)が含まれている。それぞれが個々にアノテーション(Annotation)を作成したりされたりするため、これらは個別の本体(body)とターゲット(target)である。1つのセレクタ(Selector)はビデオの時間範囲を指定し、もう1つのセレクタ(Selector)がその時間範囲上に示すために長方形ではないエリアを指定するなど、2つのセレクタ(Selector)を使用するなど、指定子(Specifier)を組み合わせることができることも重要である。

データモデルは、oa:Compositeクラスを定義し、上で定義されたoa:item関係を使用する。各複合物(Composite)は2つ以上の構成要素リソースを持っていなければならない(MUST)。そして、すべてが要求された時にデフォルトではない。

モデル

語彙項目タイプ説明
oa:CompositeClass[subClass of rdf:Bag] アノテーション(Annotation)が正しく解釈されるために全ての構成要素リソースが要求されることをアプリケーションに伝える多重構造物。この構造物はrdf:BagクラスのRDFコンテナと等価である。

図4.2. 複合物(Composite)
 <anno1> a oa:Annotation ;
    oa:hasBody <body1> ;
    oa:hasTarget <comp1> .
    
  <comp1> a oa:Composite ;
    oa:item <target1> ;
    oa:item <target2> .

使用

クエリ:ターゲット(target)が特定のリソースを含む複合物であるアノテーションを検索。
 SELECT ?anno WHERE { ?anno oa:hasTarget ?target . ?target a oa:Composite . 
    ?target oa:item <Target1> }
=> <anno1>

さらなる例はこちらを参照すること。

リスト(List)

リスト(List)には、アノテーション(Annotation)のコンテキストでその構成要素リソースに順序を与える複合物(Composite)である。以下の図にある使用例では、セレクタ(Selector)が特に強い。そこでは、アプリケーションの処理が最初の選択にならなくてはならない。もしそれが他の順序で行われたなら、結果は正しくないものになるだろう。これは、独自のURIを持たない本の中の特定のページを参照し、そのページの中のテキストを選択する状況が含まれている。別のユースケースは、クラスの定義に優先順位をつけるためにスタイル(Style)のセットに順序を割り振る。

rdf:List構造には順序が与えられるべきである。oa:Listリソースは、同時にrdf:first関係とrdf:rest関係を持つrdf:Listリソースである。リソースは、指定された順序で処理されるべきである。シリアライゼーションフォーマットは、以下の図で描かれた複雑さを隠すリスト表現する異なる方法を持っている。

アノテーション(Annotation)作成者はoa:itemとリストの述語の両方を提供するべきである(SHOULD)。これによりリンクされたリスト構造物を通して反復せずに順序付けされていない方式でリストを処理するためのフォールバックをクライアントにさせることができる。

公開時点での順序を表現するための代替方法については、一般的に、RDFコミュニティの継続的な議論があります。 順序付けはグラフ構造に本質的に問題があり、下位の仕様が変更されるなら、上位の順位付けの勧告も変わってしまうかも知れない。これは、リソースに対するoa:Listクラスとrdf:Listクラスの二重クラス付けの理由の1つである。もしrdf:Listクラスが廃止された場合にこの仕様で定義するクラスによってある程度の一貫性を維持するためである。さらに、もし明示的に宣言されない場合に、rdf:Listsクラスを処理するシステムがそのアイテムを処理しない可能性があるだろう。

rdf:firstrdf:restパターンからoa:itemのステートメントを自動的に抽出するアルゴリズムは
  1. 全ての [l rdf:first i .] ステートメントに1つの [l oa:item i .] ステートメントを作成することができる。
  2. 新しいステートメントが作成できなくなるまで、 [l rdf:rest r . r oa:item i .]ステートメントの全てのチェーンに1つの [l oa:item i .] ステートメントを作成することができる。
次の原理は、意図したアルゴリズムを反映しているが、OWL2(-DL)に有効でないかもしれない。
    rdf:first rdfs:subPropertyOf oa:item .
    oa:item owl:propertyChainAxiom  ( rdf:rest  oa:item ) .

モデル

語彙項目タイプ説明
oa:ListClass[oa:Compositeのサブクラス] アノテーション(Annotation)が正しく、そして、特定の順序で解釈されるため全ての構成要素リソースが要求されることをアプリケーションに伝える多重構造物。この構造物はrdf:BagクラスのRDFコンテナと等価である。
rdf:ListClassrdf:Listは順序付けされたリストとその他のリストライクな構造のdecriptionの構築に使用することができるリソース
rdf:firstRelationshipある特定のリストの最初のリソース。リストの残りは rdf:restによって参照される
rdf:restRelationshiprdf:Listのインスタンスかリストにさらなるアイテムがなければrdf:nilのインスタンス
rdf:nilResource空のリストを表現するrdf:List のある特定のインスタンス

図4.3. リスト(List)
 <anno1> a oa:Annotation ;
    oa:hasBody <body1> ;
    oa:hasTarget <sptarget1> .
    
  <sptarget1> a oa:SpecificResource ;
    oa:hasSource <source1> ;
    oa:hasSelector <list1> .

  &ltlist1> a oa:List, rdf:List ;
    oa:item <selector1>, <selector2> ;
    rdf:first <selector1> ;
    rdf:rest ( <selector2> ) .

使用

クエリ:ターゲット(target)セグメントが順番に複数のセレクタを要求する場合、アノテーションを検索。
 SELECT ?anno WHERE { ?anno oa:hasTarget ?target . ?target a oa:SpecificResource . 
    ?target oa:hasSelector ?list . ?list a oa:List }
=> <anno1>

さらなる例はこちらを参照すること。


前のページ   目次   次のページ