この文書「Open Annotation Data Model Open Annotation」(2013年2月8日付コミュニティドラフト)は、W3C の Open Annotation Community Groupによる"Open Annotation Data Model (W3C Community Draft, 08 February 2013)"の日本語訳です。この日本語訳はあくまで参考情報であり、W3Cの公式な日本語訳ではありません。翻訳・解釈に誤りがある可能性があります。原文の最新版が存在する可能性があります。
一般的に言えば、アノテーション(Annotation)は2つ以上のリソースの関係とそれらのメタデータをRDFグラフを使用して表現するものである。Open Annotation コアフレームワークは、関係するリソースの識別と記述の方法、アノテーション(Annotation)の作成とその意図に関する情報を提供する方法を説明するものである。
一般的にアノテーション(Annotation)は1つの本体(Body)とその本体(Body)が「(何に)対して(about)」のものかを指し示す1つのターゲット(Target)を持っている。本体(Body)は、コメントであったり、他の記述的なリソースであったりする。本体(Body)がアノテーション(Annotation)を作成するターゲット(Target)の情報を提供する。この「aboutness」はさらに明確にされ、もしくは分類や識別のようなの考えに拡張されるかもしれない。詳しくは、「動機(Motivation)」 セクションで論じられる。
本体(Body)とターゲット(Target)は、どのメディアタイプのものでよいし、あらゆるタイプのコンテンツを格納してもよい。アノテーション(Annotation)内に埋め込まれない限り、本体(Body)とターゲット(Target)はHTTP URIで識別されるべきである(SHOULD)。
全てのアノテーション(Annotation)は、oa:Annotation
クラスのインスタンスでなければならない(MUST)。追加のサブクラス化は、モデル上のコミュニティ仕様の構造物を提供するためのみに推奨される( ONLY RECOMMENDED)。1つのアノテーション(Annotation)の本体(Body)はもう1つのアノテーション(Annotation)のターゲット(Target)かもしれないため、このモデルは本体(Body)とターゲット(Target)のためのクラスを定義しない。クラスは使用に適した情報を伝えない。代わりにresource contentをベースにした型付けが推奨される(RECOMMENDED)。
このモデルは、本体(Body)リソースとターゲット(Target)リソースをアノテーション(Annotation)と関係づけさせるためのoa:hasBody
とoa:hasTarget
の2つの関係が定義する。
語彙項目 タイプ 説明 oa:Annotation Class アノテーション(Annotation)のクラス
oa:Annotationクラスはアノテーション(Annotation)と関係づけられなければならない(MUST)。oa:hasBody Relationship アノテーション(Annotation)とアノテーション(Annotation)の本体(Body) との関係
アノテーション(Annotation)と関係づけられた1つ以上のoa:hasBody関係があるべきである(SHOULD)が、0でもよい(MAY)。oa:hasTarget Relationship アノテーション(Annotation)とアノテーション(Annotation)のターゲット(Target) との関係
アノテーション(Annotation)と関係づけられた1つ以上のoa:hasTarget関係がなければならない(MUST)。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <target1> .
SELECT ?anno WHERE { ?anno oa:hasTarget <target1> } => <anno1>
SELECT ?body WHERE { ?anno oa:hasBody ?body ; oa:hasTarget <target1> } => <body1>
アノテーション(Annotation)に関係するリソースの一般的なコンテンツの種類(テキスト、イメージ、オーディオ、ビデオなど)に関する情報は、アプリケーションに有用である。これは、本体(Body)リソースとターゲット(Target)リソースの型付けを使用して表現される。それによってクライアントはメディアタイプの長いリストを管理することなく、リソースをレンダリングさせるかどうか、どのようにレンダリングさせるかを容易に決定することができる。たとえば、 HTML5ベースのクライアントは、ターゲット(Target)リソースが適切なsrc
属性を用いた<img>
要素を生成する画像という情報を全ての画像のメディアタイプリストを管理せずとも使用することができる。アノテーション(Annotation)の作成者は、本体(Body)やターゲット(Target)の正確なメディアタイプも知らなくてもよいが、少なくともこの一般的なクラスは提供できるべきである。
RDFクラスを用いてこの情報の表現する場合は、Dublin Core Types vocabulary
の使用が推奨される(RECOMMENDED)。最も一般的なクラスが以下の表に一覧されているが、他のクラスを使用してもよい(MAY)。以下の表の定義はDCMIタイプのドキュメントを要約したものである。なお、文字情報を含む画像をdctypes:Text
としてエンコードすべきというDCMIのアドバイスは、クライアントがリソースをレンダリングのために解釈する助けにならないため、Open Annotationのコンテキストの中では推奨されない(NOT RECOMMENDED)ことには注意してほしい。
アノテーション(Annotation)の本体(Body)リソースとターゲット(Target)リソースと関係づけられた1つ以上のコンテンツベースのクラスがあるべきである(SHOULD)。
語彙項目 タイプ 説明 dctypes:Dataset Class 定義された構造においてデータをエンコードされたリソースのクラス dctypes:Image Class 主に見られることを意図された画像リソースのためのクラス dctypes:MovingImage Class 音声の有無にかかわらずビデオリソースのクラス、 dctypes:Sound Class 主に聞かれること意図されたリソースのクラス dctypes:Text Class 主に読まれること意図されたリソースのクラス
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <target1> . <body1> a dctypes:Text . <target1> a dctypes:Image .
SELECT ?anno WHERE { ?anno oa:hasBody ?body . ?body a dctypes:Text } => <anno1>
テキスト形式の本体(Body)を表現するために文字列リテラルのプロパティを使用する上記のアノテーションシステムがある。しかし、 Open Annotation モデルは、非テキスト形式とその他のタイプのリソースとの一貫性を維持するためにW3Cの"Representing Content in RDF"の仕様を採用している。Content in RDF の仕様は、コンテンツを表現するためにcnt:ContentAsText
クラスのリソースとコンテンツの文字列そのものを保持するためにcnt:chars
プロパティを導入している。
本体(Body)が識別子を持つことが重要であるなら、cnt:ContentAsText
リソースをUUID、URIで識別することが推奨される(RECOMMENDED)が、他のURIが使用されてもよい(MAY)。例えば、短い個人的なメモへの使用など、識別子を持つことが重要であると考えられていない場合は、代わりにRDF 空白ノードを使用するべきである(SHOULD)。このパターンは、必ずしも識別子を持たせる必要がない場合の識別子の発行と維持の負担を減らすことになる。しかし、さらなアノテーション(Annotation)やその他のシステムから本体(Body)へ参照することが スコーレムIRIなしでは不可能となる。
例えば、プレーンテキスト内に埋め込まれたコメントとHTML内でエンコードされたものを区別するため、既知の場合は、 本体(body)のmedia typeはdc:format
プロパティを使用されたものをであるべきである(SHOULD)。プレーンテキスト以外のコンテンツを持つリソースをエンコードするように、cnt:ContentAsText
のその他の使用がありうるため、上記のように、dctypes:Text
クラスは、cnt:ContentAsText
クラスといっしょに割り当てられてもよい(MAY)。
次の理由により、本体(Body)としてリテラルを直接持つモデルとして、このモデルが選ばれた。
語彙項目 タイプ 説明 cnt:ContentAsText Class アノテーション(Annotation)の中にテキスト形式のリソースを埋め込むために、本体(Body)に割り当てられたクラス。
このクラスは、本体(Body)に割り当てられるべきである(SHOULD)。しかし、必須であるcnt:chars属性の存在によって推測することができる。cnt:chars Property コンテンツの文字列。
ContentAsTextと関係づけられたちょうど1個のcnt:charsプロパティがなくてはならない(MUST)。dc:format Property コンテンツのメディアタイプ。
リソースと関係づけられたちょうど1個のdc:formatプロパティがあるべきである(SHOULD)。dc:language Property コンテンツの言語(既知の場合)。
0個以上のdc:languageプロパティがあってもよい(MAY)。各言語はRFC 3066の定義に従って、言語タグとして表現されるべきである(SHOULD) 。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <target1> . <body1> a cnt:ContentAsText, dctypes:Text ; cnt:chars "content" ; dc:format "text/plain" .
SELECT ?comment WHERE { ?anno oa:hasBody ?body . ?body a dctypes:Text ; cnt:chars ?comment } => "content"
短いテキスト文字列もしくはURIを伴うリソースのタグ付けは、アノテーション(Annotation)の一般的なユースケースである。タグは、一般的にキーワードやラベルであり、タグ付けされたリソースの組織化、説明、発見のために使用される。1つの言葉が複数の意味を持つという多義性の問題をさけるために、セマンティックウェブにおいては、URIが文字列に代替するものとして使用される。この状況では、川の"bank(土手)"と金融機関の"bank(銀行)"を参照するために、2つの異なるURLを使用するであろう。
Open Annotation コアモデルでは、タグはアノテーション(Annotation)の本体(Body)として表現され、タグ付けされたリソースは、ターゲット(Target)として表現される。例えば、ある人はフランスの首都の画像に何が描かれているかを説明するために"paris"というテキスト形式のタグを関係づけることを望むかもしれない。同様に同じイメージに対し "capital"、"city"、"photo"、"stunning"がタグとして使用されるかもしれない。この状況は、前のセクションの「埋め込まれたテキスト形式の本体(Body)」 と同じ方法を用いてモデル化されている。アプリケーションは異なる方法でコメントやタグをレンダリングするため、本体(body)リソースもoa:Tag
クラスが割りあてられるべきである(SHOULD)。以下の図2.1.3.1は、これを示している。
URIとして表現されるセマンティックタグにとって、本体(Body)はタグ付けされたリソースのURIである。上に挙げた例では、http://dbpedia.org/resource/Paris
というURIを本体(Body)として代わりに使用した。通常は幅広く再利用されることを意図した統制語彙由来の用語である。このリソースは、検索され、ユーザーのためにレンダリングされてはならないことを知っておくことも必要である。そのため、oa:SemanticTag
クラスは、タグ付けリソースに関係づけられなければならない(MUST)。セマンティックタグ及びその他のURIは、断片的な構成要素を持っている可能性があることによく注意する。その断片的な構成要素では、ドキュメントのセグメントを選ぶことが目的ではない。興味のあるセグメントを選択することを意味するため、これらのリソースはフラグメントセレクタ(Fragment Selector)を使用して再表現されてはならない(MUST NOT)。セマンティックタグ付けモデルは図2.1.3.2に示されている。
「動機(Motivation)」セクションで説明するように、アノテーション(Annotation)の理由をアプリケーションにより明確にわかるようにするために、テキストまたはセマンティックタグでタグ付けされたリソースにタグ付けするアノテーション(Annotation)はoa:tagging
の動機(Motivation)も持つべきである(SHOULD)。そして、その他の動機(Motivation)も持っていてよい(MAY)。
他のアノテーション(Annotation)でoa:SemanticTag
クラスの割り当てを継承した正規の本体(Body)として使用される可能性があるため、セマンティックタグとしてドキュメントのURIを使用することは推奨されない(NOT RECOMMENDED)。その代わりに、図2.1.3.3に示されているような、foaf:page
述語を使用した新しいURIを作成し、ドキュメントにそのURIからリンクすることがより適切である。
語彙項目 タイプ 説明 oa:Tag Class 埋め込みテキスト文字列のような、タグである場合に本体(Body)に割り当てられたクラス oa:SemanticTag Class [oa:Tagクラスのサブクラス] セマンティックタグでタグ付けされたリソースである場合に本体(Body)に割り当てられたクラス。概念を識別するURIは、埋め込まれた文字列より統制語彙から用語由来の者であることが多い。 foaf:page Relationship foaf:page関係は、セマンティックタグと何らかの方法でタグ付けの概念を説明もしくは具現化したドキュメントの間を結ぶリンクを表現する。
<anno1> a oa:Annotation ; oa:motivatedBy oa:tagging ; oa:hasBody <tag1> ; oa:hasTarget <target1> . <tag1> a oa:Tag, cnt:ContentAsText ; cnt:chars "tag" . <target1> a dctypes:Image .
<anno1> a oa:Annotation ; oa:motivatedBy oa:tagging ; oa:hasBody <term1> ; oa:hasTarget <target1> ; <term1> a oa:SemanticTag . <target1> a dctypes:Image .
<anno1> a oa:Annotation ; oa:motivatedBy oa:tagging ; oa:hasBody <term1> ; oa:hasTarget <target1> ; <term1> a oa:SemanticTag ; foaf:page <document1> . <target1> a dctypes:Image .
SELECT ?anno WHERE { ?anno oa:hasBody ?body . ?body a oa:Tag } => <anno1>
アノテーション(Annotation)はリソース全体に対して(about)のものよりはリソースの一部に対して(about)のものが多い。リソースは任意の大きさにすることができ、アノテーションも関心に応じて任意にぴったりとした大きさにすることができる。"Architecture of the World Wide Web"では、リソースのセグメントは、リソースから興味のあるセグメントを抽出する方法の記述と抽出されたコンテンツの識別の両方を同時に行うフラグメントコンポーネントがついたURIを使用することで識別される。単純なアノテーションの場合には、本体(Body)もしくはターゲット(Target)のいずれかとしてこれらのフラグメントを使用できることが重要である。
リソースの一部を識別する目的のためにフラグメントURIを使用した結果と、実装上での場所にフラグメントURIを使用する制約に注意することが重要である。
http://example.com/image.jpg#xywh=1,1,1,1
を持つアノテーション(Annotation)は、http://example.com/image.jpg
による単純な検索では、たとえアノテーション(Annotation)がリソースの一部であるにも関わらず発見されないだろう。これらの問題が懸念されない、または実装に大きな負担を与えるであろうシステムでは、フラグメントURIはアノテーション(Annotation)の本体(Body)もしくはターゲット(Target)として使用してもよい(MAY)。さもなければ、特定リソース(Specific Resource)モジュールで述べられているセレクタ(Selector)メカニズムを使用することを推奨する(RECOMMENDED)。セレクタ(Selector)はを既存の、そして、将来のフラグメントに係る仕様との互換性を保証するため移行メカニズム( oa:FragmentSelector)を含んでいる。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <t1#xywh> . <body1> a dctypes:Text . <t1#xywh> a dctypes:Image .
SELECT ?anno WHERE { ?anno oa:hasTarget <t1#xywh> } => <anno1>
SELECT ?anno WHERE { ?anno oa:hasTarget ?x . FILTER ( regex (str(?x), "^t1")) } => <anno1>
アノテーション(Annotation)が本体(Body)リソースを持っていない特別なケースが存在する。この種の状況の例としては、特定のリソースへのブックマーキング、リソース内のある箇所の指定、ハイライトする理由をコメントとして付さないリソースの1セクションへのハイライトがある。これらのアノテーション(Annotations)には、おそらくリソースの重要性やブックマークの理由について説明するために、本体(Body)が後になって追加されるかもしれない。
本体(Body)なしでアノテーション(Annotation)のために導入された新たな関係やクラスはない。
<anno1> a oa:Annotation ; oa:hasTarget <target1> .
SELECT ?anno WHERE { ?anno oa:hasTarget <target1> . FILTER(NOT EXISTS { ?anno oa:hasBody ?notbody }) } => <anno1>
このクエリは、SPARQL version1.1の機能を使用しているので、注意すること。
前のセクションとは反対に、1つのアノテーション(Annotation)が複数の本体(Body) または/ 及び ターゲット(Target)を持つ可能性もある。各本体(Body)は、ターゲット(Target)一式のセットとしてではなく、個々のターゲット(Target)に等しく関係づけられていると見なされる。本体(Body)またはターゲット(Target)がアノテーション(Annotation)を無効にするのでない限り、この構造は使用されるかもしれない。このため、以下の図1.1.5では、次の全てがそれぞれ真となる。
例としてのユースケースは、単一のターゲットイメージもしくはいくつかのウェブページに対する単一のコメントについて複数のタグを有するものが挙げられる。
あるコメントが複数のターゲット(Target)をそれぞれについて等しく個別にではなく、比較もしくは対比するように、複数の本体(Body)もしくはターゲット(Target)に対する異なるセマンティクスをアノテーション(Annotation)が必要とする状況では、「多重構造物」モジュールで説明されている追加の構造物を使用する必要がある。本体(Body)もしくはターゲット(Target)が順序づけられる、または、どのリソースがそのユーザーにとって最も適切であるかをクライアントに選択させることが可能である。
Open Annotation モデルは、複数の本体(Body)やターゲット(Target)を可能とする新しい関係を定義しない。oa:hasBody
関係とoa:hasTarget
関係が、分野として同じアノテーション(Annotaion)とともに複数回使用されている。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasBody <body2> ; oa:hasTarget <target1> ; oa:hasTarget <target2> .
SELECT ?anno WHERE { ?anno oa:hasTarget ?t1 ; oa:hasTarget ?t2 . FILTER( ?t1 != ?t2 ) } => <anno1>
アノテーション(Annotation)を利用するクライアントとサービスにとってアノテーション(Annotation)が作成されたコンテキストを理解することが重要である。特に、アノテーション(Annotation)について責任を負い、貢献が評価に値する人間もしくは機械の情報やアノテーション(Annotation)が作成された時間に関する情報は古いアノテーションや無関係である可能性の高いアノテーションをフィルタリングするのに有用である。アノテーション(Annotation)の作成者情報は、評判モデル(reputation model)に基づく可能性があるが、アノテーション(Annotation)の信頼性を決定するのに有用である。また、モデルを作成し、シリアライズするために使用されたソフトウェア情報と、それをいつ行ったかという情報は、広告やデバッグの両方に有用である。
由来情報は、アノテーション(Annotation)、本体(Body)、ターゲット(Target)やアノテーショングラフ内にあるその他のリソースなどに添付することができる。アノテーション(Annotation)に添付した由来情報は、本体(Body)リソース、ターゲット(Target)リソースにとって必ずしも真とは限らない。例えば、チャールズ・ダーウィンが1836年から記したノートに、2013年に博士学位を取得した学生がテキストのコメントという形のアノテーション(Annotation)をつけてまとめることがありえる。この場合、ダーウィンは本体(Body)の著者である一方で、その学生はアノテーション(Annotation)の著者である。ダーウィンが本体(Body)の作成者であるというような、追加の由来情報は可能な限り提供されるべきである(SHOULD)。しかし、そのさらなる詳細な要件の定式化はこの仕様のスコープ外であると考えられる。Dublin Core Termsのような、既存の語彙が使用されるべきである(SHOULD)。
W3C PROVモデルでのアノテーション(Annotation)の由来のための完全なマッピングは付録Aで提供される 。アノテーション(Annotation)ノードは、主にアノテーション(Annotation)の概念を表現するが、簡単にするために、シリアライゼーションレベルのプロパティがそれに接続していることをそのモデルでは認めているので注意してほしい。特定のユースケースのために、明確な識別子を持つ、より正確なモデルが求められる場合は、付録Aで表現されたモデルを推奨する(RECOMMEND)。
語彙項目 タイプ 説明 oa:annotatedBy Relationship [prove:wasAttributedToプロパティのサブプロパティ]関係のオブジェクトは、アノテーション(Annotation)の作成に責任を持つエージェントを識別するリソースである。これは、人間もしくはソフトウェアエージェントのいずれであってもよい。
1つのアノテーション(Annotation)ごとにちょうど1つのoa:annotatedBy関係があるべきである(SHOULD)。しかし、アノテーション(Annotation)の作成者が不明であったり、複数のエージェントが共同で作成した場合は0個以上のでもよい(MAY)。oa:annotatedAt Property アノテーション(Annotation)が作成された時間。
1個のアノテーション(Annotation)ごとにちょうど1つのoa:annotatedAt関係があるべきであり(SHOULD)、2個以上存在してはならない(MUST NOT)。時刻はxsd:dateTime 形式で表現されなければならない(MUST)。また、指定されたタイムゾーンにするべきである(SHOULD)。oa:serializedBy Relationship [prov:wasAttributedToのサブプロパティ]関係のオブジェクトは、アノテーション(Annotation)のシリアライゼーションを生成するエージェント(可能性が高いのはソフトウェア)である。
1個のアノテーション(Annotation)ごとに0個以上のoa:serializedBy関係があってもよい(MAY)。oa:serializedAt Property oa:serializedByによって参照されたエージェントがアノテーション(Annotation)の最初のシリアライゼーションを生成した時間。その次に生成されるものは、実質上異なるものである。アノテーション(Annotation)の最終更新時のタイムスタンプが表現されるように、アノテーショングラフが更新されたら、このプロパティは変更されなくてはならない(MUST)。これは発見された時にトリプルストア(triplestore)に再インポートされるべきかどうかの判断に使用されるかもしれない。
1個のアノテーション(Annotation)ごとにちょうど1個のoa:serializedAtプロパティがあってもよい(MAY)、2個以上存在してはならない(MUST NOT)。時刻はxsd:dateTime 形式で表現されなければならない(MUST)。また、指定されたタイムゾーンにするべきである(SHOULD)。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <target1> ; oa:annotatedBy <agent1> ; oa:annotatedAt "2013-01-28T12:00:00Z" ; oa:serializedBy <agent2> ; oa:serializedAt "2013-02-04T12:00:00Z" .
SELECT ?anno WHERE { ?anno oa:hasTarget <target1> ; oa:annotatedBy <agent1> } => <anno1>
このセクションでは、アノテーション(Annotation)に関係するエージェント、アノテーション(Annotation)を作成する者及びシリアライザに関する情報を記録するベストプラクティスを推奨する。
エージェントを解説するために下記の用語の使用が推奨される(RECOMMENDED)。FOAFの語彙からの他の語彙の使用も推奨される(RECOMMENDED)が、明示的には示されない。必要に応じて他の規定された語彙を使用してもよい(MAY)。FOAFはSoftwareAgentクラスを定義していない場合は、PROVクラスが使用される。prov:Agent
とfoaf:Agent
は同等のクラスである。
語彙項目 タイプ 説明 foaf:Person Class 人間をエージェントとするものに対するクラスであり、一般的にはoa:annotatedBy関係のオブジェクトのクラスとして使用される。 prov:SoftwareAgent Class ソフトウェアをエージェントするものに対するクラスであり、一般的にはoa:serializedBy関係のオブジェクトのクラスとして使用される。また、OAのオブジェクトに使用される場合があります。機械生成されたアノテーションのannotatedBy。 foaf:Organization Class 個人と対照する組織に対するクラス。例えば、oa:annotatedBy関係のオブジェクトのクラスとして使用されるかもしれない。 foaf:name Property エージェントの名前。
各エージェントは、ちょうど1個の nameプロパティを持つべきである(SHOULD)。foaf:mbox Relationship エージェントと関係づけられたメールアドレス。mailto: URI スキームを使用する。
各エージェントは、1個以上のメールボックスを持ってもよい(MAY)。foaf:openid Relationship エージェントに関係づけられているOpenIDのURI。
各エージェントは、1個以上のOpenIDを持ってもよい(MAY)。foaf:homepage Relationship エージェントのホームページ。
各エージェントは、1個以上のホームページを持ってもよい(MAY)。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <target1> ; oa:annotatedBy <agent1> ; oa:serializedBy <agent2> . <agent1> a foaf:Person ; foaf:openid <OpenId1> ; foaf:name "A. Person" . <agent2> a prov:SoftwareAgent ; foaf:homepage <HomePage1> ; foaf:name "Code v2.1" .
SELECT ?anno WHERE { ?anno oa:annotatedBy ?who . ?who a foaf:Person } => <anno1>
多くの場合、エージェントがアノテーション(Annotation)の作成に関わったということだけではなく、アノテーション(Annotation)が作成された理由を理解することが重要である。前のシステムでは、これらの動機を伝達するためにコアアノテーションクラスのサブクラスを作成したが、よりリッチでより良質な解説がSKOS概念(SKOS Concept)階層 を使用して獲得できると考えられる。動機(Motivation)は、 SKOS概念(SKOS Concepts)であり、単純なクラス/サブクラスの木構造よりも意味のある区別をもってコミュニティ間で相互に関係づけることができる。これはアノテーション(Annotation)がとる形式についてより明確でより規範的であることが望ましい状況では、これがサブクラス化の使用から解放する。
各アノテーション(Annotation)は、skos:Concept
のサブクラスであるoa:Motivation
クラスの1つのインスタンスに対して少なくとも1つのoa:motivatedBy
関係を持つべきである(SHOULD) 。
高レベルの動機(Motivation)の一覧を下記に示す。これらを相互に関係づける方法と、新たな動機(Motivation)の作成の方法に関するより詳細な情報は 付録B
を参照すること。
語彙項目 タイプ 説明 oa:Motivation Class [skos:Conceptのサブクラス]アノテーション(Annotation)の動機(Motivation)とは、その作成の理由である。別のアノテーションに返信する、リソースについてコメントする、関連するリソースへのリンクのようなものが含まれるだろう。 oa:motivatedBy Relationship アノテーション(Annotation)と動機(Motivation)の関係。
それぞれのアノテーション(Annotation)に少なくとも1つ以上の動機(Motivation)がなけれならず(MUST)、1以上であってもよい(MAY)。oa:Motivationのインスタンス oa:bookmarking Instance ターゲット(target)リソースに対するブックマークの作成もしくは記録されたポイントもしくは1つ以上のリソース内にあるポイントを表現する動機。例えば、読者が読み終えたテキスト内の地点をブックマークしたアノテーション(Annotation)。ブックマークアノテーション(Annotation)は本体(Body)リソースを持ってもよいし、持たなくてもよい。 oa:classifying Instance 典型的には統制語彙からターゲット(target)リソースへの、分類タイプの割り当てを表現する動機。例えば、画像リソースをPortraitとして分類することなど。 oa:commenting Instance ターゲット(target)リソースについての解説やレビューを表現する動機。例えば、特定のPDFファイルについての解説を提供する。 oa:describing Instance それらについてのコメントとは対照的に、ターゲット(target)リソースの解説を表現する動機。例えば上記のPDFファイルのその正確性についてコメントするのではなく、内容を説明する。 oa:editing Instance ターゲット(target)リソースへの修正や編集の要求を表現する動機。例えば、タイプミスの修正を要求するアノテーション(Annotation)である。 oa:highlighting Instance ハイライトされたターゲット(target)リソースのセクションもしくはセグメントを表現する動機。例えば、アノテーション(Annotation)を作成した者が同意できないとして選択したテキストに注意を引くため。ハイライトは本体(Body)リソースを持ってもよいし、持たなくてもよい。 oa:identifying Instance ターゲット(target)リソースへの識別子の割り当てを表現する動機。例えば、識別するためのURIとセットでテキストの文字列で都市名をアノテートする場合など。 oa:linking Instance ターゲット(target)に関連するリソースへの型指定されていないリンクを表現する動機。 oa:moderating Instance ターゲット(target)リソースへの価値や品質の割り当てを表現する動機。例えば、信頼ネットワークまたはスレッド式の議論の中で議論を管理するアノテーション(Annotation)をアノテートする。 oa:questioning Instance ターゲット(target)リソースに対する質問を表現する動機。例えば、テキストの特定のセクションの支援を求めたり、その正確性に疑問を投げ掛ける。 oa:replying Instance 前の発言・意見(アノテーション(Annotation)か他のリソースである)への回答を表現する動機。例えば、上記で要求された支援を提供する。 oa:tagging Instance ターゲット(target)リソースへのタグの追加を表現する動機。さらなる情報は、「タグとセマンティックタグ」セクションを参照すること。
<anno1> a oa:Annotation ; oa:hasBody <body1> ; oa:hasTarget <target1> ; oa:motivatedBy oa:editing .
SELECT ?anno WHERE { ?anno oa:hasTarget <target1> ; oa:motivatedBy oa:editing } => <anno1>