CyberLibrarian

【注意】 このドキュメントは、W3CのWeb Annotation Vocabulary W3C Recommendation 23 February 2017の和訳です。
このドキュメントの正式版はW3Cのサイト上にある英語版であり、このドキュメントには翻訳に起因する誤りがありえます。誤訳、誤植などのご指摘は、訳者までお願い致します。

訳注: Annotation、Target等、頭文字が大文字になっている語句が本文中に多く出現しますが、それらは大文字・小文字を区別せずに訳しました。

First Update: 2017年3月14日


要約

ウェブ・アノテーション語彙は、ウェブ・アノテーション・データ・モデル[annotation-model]で用いられるRDFクラス、述語、および名前付きエンティティーの集合を規定します。また、モデルで用いられるその他のオントロジーの推奨用語も掲載しており、リンクト・データのコンテキストでウェブ・アノテーションJSONシリアル化を用いるために必要なJSON-LDコンテキストとプロファイル定義を提供します。

このドキュメントのステータス

この項は、このドキュメントの公開時のステータスについて記述しています。他のドキュメントがこのドキュメントに取って代わることがありえます。現行のW3Cの刊行物およびこの技術報告の最新の改訂版のリストは、http://www.w3.org/TR/のW3C技術報告インデックスにあります。

この勧告の公開により、W3Cは、この勧告で規定している機能は、アクティビティ・ストリームズ2.0[activitystreams-core]およびアクティビティ語彙[activitystreams-vocabulary]の仕様が勧告に進んだ際に、その変更によって影響を受けることはないと予想しています。

このドキュメントは、ウェブ・アノテーション・ワーキンググループによって勧告として公開されました。このドキュメントに関してコメントを行いたい場合には、public-annotation@w3.org(購読アーカイブ)にお送りください。どのようなコメントでも歓迎します。

ワーキンググループの実装報告書を参照してください。

このドキュメントは、W3Cメンバー、ソフトウェア開発者、他のW3Cグループ、および他の利害関係者によりレビューされ、W3C勧告として管理者の協賛を得ました。これは確定済みドキュメントであり、参考資料として用いたり、別のドキュメントで引用したりすることができます。勧告の作成におけるW3Cの役割は、仕様に注意を引き付け、広範囲な開発を促進することです。これによってウェブの機能性および相互運用性が増強されます。

このドキュメントは、2004年2月5日のW3C特許方針の下で活動しているグループによって作成されました。W3Cは、このグループの成果物に関連するあらゆる特許の開示の公開リストを維持し、このページには特許の開示に関する指示も含まれています。不可欠な請求権(Essential Claim(s))を含んでいると思われる特許に関して実際に知っている人は、W3C特許方針の6項に従って情報を開示しなければなりません。

このドキュメントは、2015年9月1日のW3Cプロセス・ドキュメントによって管理されています。

1. はじめに

この項は非規範的です。

この仕様は、ウェブ・アノテーション・オントロジーで定義されている用語と、モデルで用いられるその他のオントロジーの用語という2つの主な部分に分けられます。

個々のクラスには、モデルから抽出した、必須(REQUIRED)、推奨(RECOMMENDED)、オプション(OPTIONAL)のオブジェクトとクラスのインスタンスに対するデータ・プロパティーの推奨を掲載しています。もちろん、インスタンスは実装者が有用だと思う他のトリプルの主語にもなりえますが、その場合には相互運用性は見込めません。

1.1 名前空間

接頭辞 名前空間 説明
oa http://www.w3.org/ns/oa# ウェブ・アノテーション・データ・モデル
as http://www.w3.org/ns/activitystreams# [activitystreams-vocabulary]
dc http://purl.org/dc/elements/1.1/ [DC11]
dcterms http://purl.org/dc/terms/ [DC-TERMS]
dctypes http://purl.org/dc/dcmitype/ [DC-TERMS]
foaf http://xmlns.com/foaf/0.1/ [FOAF]
rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# [rdf-schema]
rdfs http://www.w3.org/2000/01/rdf-schema# [rdf-schema]
schema http://schema.org/ schema.org
skos http://www.w3.org/2004/02/skos/core# [skos-reference]
xsd http://www.w3.org/2001/XMLSchema# [xmlschema-2]

1.2 図と例

ドキュメント内のすべての例は、付録Aで示されている名前空間宣言から得た接頭辞を持つ[Turtle]としてシリアル化されます。例は参考情報でしかありません。

図には、次のスタイルを用いています。

1.3 適合性

非規範的と記している項と同じく、この仕様のすべての作成ガイドライン、図、例、注は、非規範的です。この仕様のその他の部分はすべて規範的です。

「することができる/してもよい(MAY)」、「しなければならない(MUST)」、「してはならない(MUST NOT)」、「選択できる/任意である(OPTIONAL)」、「推奨される(RECOMMENDED)」、「必須である/要求される(REQUIRED)」、「すべきである/する必要がある(SHOULD)」というキーワードは、[RFC2119]で記述されているように解釈されるべきです。

1.4 用語

IRI
IRI、すなわち国際化資源識別子は、URIがASCII文字のサブセットで構成されていなければならないのに対し、Unicodeの文字が認められているURI仕様の拡張です。IRIと、同等のエンコードされたURI形式との間には、変換のためのマッピング・アルゴリズムが存在しています。IRIは[rfc3987]で定義されています。
資源(Resource)
IRIで識別可能な(MAY)関心事項。
RDF[rdf-concepts]は完全に国際化されており、資源を識別するためにIRIを用いることができます。この仕様では、これが当てはまることを明確にするために、IRIという用語を用います。

2. ウェブ・アノテーション・オントロジー

ウェブ・アノテーション・オントロジーに用いられる名前空間は下記http://www.w3.org/ns/oa#です。

2.1 クラス

2.1.1 Annotation(アノテーション)

ウェブ・アノテーションに対するクラス。

oa:Annotationとプロパティー
例1: oa:Annotation
<http://example.org/anno1> a oa:Annotation ;
    oa:hasBody <http://example.org/post1> ;
    oa:hasTarget <http://example.com/page1> ;
    oa:motivatedBy oa:commenting ;
    dcterms:creator <http://example.org/person1> ;
    dcterms:created "2015-11-18T12:00:00Z" .

2.1.2 Choice(選択)

利用アプリケーションに対し、利用する際には、すべての資源ではなく、as:itemsのリスト内の資源を1つ選択すべきであることを伝えるas:OrderedCollectionのサブクラス。これは一般的に、追加で提供されるプロパティーに基づいて、ユーザに表示する資源の選択肢を示すために用います。利用アプリケーションがユーザのプレファレンスを判断できない場合は、リストの最初のものを用いるべきです。

oa:Choiceと項目のリスト
例2: oa:Choice
<http://example.org/anno2> a oa:Annotation ;
    oa:hasTarget <http://example.org/site1> ;
    oa:hasBody [
        a oa:Choice ;
        as:items (<http://example.org/note1> <http://example.org/note2>) ] .

<http://example.org/note1> dc:language "en" .
<http://example.org/note2> dc:language "fr" .

2.1.3 CssSelector(CSSセレクタ)

CssSelectorは、CSSセレクタ仕様を用いてドキュメント・オブジェクト・モデルに準拠した表現の関心のある断片を記述します。

oa:CssSelector
例3: oa:CssSelector
<http://example.org/anno3> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
            a oa:CssSelector ;
            rdf:value "#elemid > .elemclass + p" ] ] .

2.1.4 CssStyle(CSSスタイル)

CSSを用いてアノテーションに関与している資源のスタイルを記述する資源。

  • IRI: http://www.w3.org/ns/oa#CssStyle
  • 右記のサブクラス: oa:Style
oa:CssStyle
例4
<http://example.org/anno4> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:styledBy <http://example.org/style1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/document1> ;
        oa:styleClass "red" ] .

<http://example.org/style1> a oa:CssStyle .

2.1.5 DataPositionSelector(データ位置セレクタ)

DataPositionSelectorは、ストリーム内の選択の開始・終了位置を記録することによりデータの範囲を記述します。0という位置は最初のバイトの直前であり、1という位置は2番目のバイトの直前であるなどです。したがって、開始バイトはリストに含まれていますが、終了のバイトは含まれていません。

oa:DataPositionSelector
例5: oa:DataPositionSelector
<http://example.org/anno5> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/diskimg1> ;
        oa:hasSelector [
            a oa:DataPositionSelector ;
            oa:start 4096 ;
            oa:end 4104 ] ] .

2.1.6 Direction(方向)

テキスト資源が取ることができる様々なテキストの方向性をカプセル化するクラス。これは、アノテーション・モデルでは直接用いず、3つのインスタンスのみを用います。

  • IRI: http://www.w3.org/ns/oa#Direction
oa:Direction
例6: oa:Direction
<http://example.org/anno6> a oa:Annotation ;
    oa:hasBody [
        rdf:value "This is a comment" ;
        dc:language "en" ;
        dc:format "text/plain" ;
        oa:textDirection oa:ltr ] ;
    oa:hasTarget <http://example.org/page1> .

2.1.7 FragmentSelector(フラグメント・セレクタ)

FragmentSelectorクラスは、表現のメディア・タイプで定義されているIRIフラグメント仕様を用いて表現の断片を記録するために用います。

oa:FragmentSelector
例7: oa:FragmentSelector
<http://example.org/anno7> a oa:Annotation ;
    oa:hasBody <http://example.org/image1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/video1> ;
        oa:hasSelector [
            a oa:FragmentSelector ;
            dcterms:conformsTo <http://www.w3.org/TR/media-frags/> ;
            rdf:value "t=30,60" ] ] .

2.1.8 HttpRequestState(HTTPリクエスト・ヘッダー状態)

HttpRequestStateクラスは、クライアントが資源から正しい表現をリクエストするために用いるべき(SHOULD)HTTPリクエスト・ヘッダーを記録するために用います。

oa:HttpRequestState
例8: oa:HttpRequestState
<http://example.org/anno8> a oa:Annotation ;
    oa:hasBody <http://example.org/description1> ;
    oa:hasTarget  [
        oa:hasSource <http://example.org/target1> ;
        oa:hasState [
            a oa:HttpRequestState ;
            rdf:value "Accept: application/pdf" ] ] .

2.1.9 Motivation(動機)

動機クラスは、関連付けられているアノテーションを作成した、または本体やターゲットを含めたユーザの意図または動機を記録するために用います。

oa:Motivation
例9: oa:Motivation
<http://example.org/anno9> a oa:Annotation ;
    oa:hasBody <http://example.org/description1> ;
    oa:hasTarget <http://example.com/resource1> ;
    oa:motivatedBy oa:describing .

2.1.10 RangeSelector(範囲セレクタ)

RangeSelectorは、他のセレクタを用いて選択の最初と最後を識別するために使用できます。選択は、開始セレクタの最初から終了セレクタの最初(しかし、これは含まない)に至るまでのすべてで構成されます。

oa:RangeSelector
例10: oa:RangeSelector
<http://example.org/anno10> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
          a oa:RangeSelector ;
          oa:hasStartSelector [
            a oa:XPathSelector ;
            rdf:value "//table[1]/tr[1]/td[2]" ] ;
          oa:hasEndSelector [
            a oa:XPathSelector ;
            rdf:value "//table[1]/tr[1]/td[4]" ] ] ] .

2.1.11 ResourceSelection(資源選択)

ResourceSelectionクラスのインスタンスは、別の資源(oa:hasSourceで参照される)の一部(oa:Selectorで記述される)を識別し、それは資源(oa:Stateで記述される)の特定の表現のものである可能性があります。ウェブ・アノテーション・モデルではResourceSelectionは直接用いられませんが、多くのアノテーション固有の機能を持っているoa:SpecificResourceとは別に、さらなるアプリケーション・プロファイルで用いるために、別のクラスとして提供されることに注意してください。

: oa:Selector
例は示していません。ウェブ・アノテーション・モデルではこのクラスは直接用いるべきではありません。

2.1.12 Selector(セレクタ)

情報源資源の表現内の関心のある断片を記述する資源で、特定資源のoa:hasSelectorで示されます。このクラスはアノテーション・モデルでは直接用いられず、そのサブクラスのみが用いられます。

: oa:Selector
例は示していません。このクラスは、サブクラスを抽出するためにのみ用いるべきです。

2.1.13 SpecificResource(特定資源)

SpecificResourceクラスのインスタンスは、別の資源(oa:hasSourceで参照される)の一部、資源の特定の表現、表示用のスタイル指定のヒントを持つ資源、またはこれらの何らかの組み合わせをアノテーション内で用いて識別します。

oa:SpecificResource
例11: oa:SpecificResource
<http://example.org/anno11> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget <http://example.org/region1> .

<http://example.org/region1> a oa:SpecificResource ;
    oa:hasSource <http://example.org/image1> .

2.1.14 State(状態)

状態は、特定のアノテーションに適用される資源の意図する状態を記述し、したがって、その資源の正しい表現を得るために必要な情報を提供します。

: oa:State
例は示していません。このクラスは、サブクラスを抽出するためにさらなるオントロジーでのみ用いるべきです。

2.1.15 Style(スタイル)

スタイルは、特定のアノテーションに適用される資源の意図するスタイルを記述し、したがって、実装の全体で表示が統一されていることを保証する情報を提供します。

: oa:Style
例は示していません。このクラスは、サブクラスを抽出するためにさらなるオントロジーでのみ用いるべきです。

2.1.16 SvgSelector(SVGセレクタ)

SvgSelectorは、SVG(Scalable Vector Graphics)[SVG]標準を用いて領域を定義します。これにより、ユーザは、SVGで領域を記述することにより、円や多角形などの、矩形ではないコンテンツ領域を選択できるようになります。SVGは、アノテーション内に組み込むか、外部資源として参照することができます。

oa:SvgSelector
例12: oa:SvgSelector
<http://example.org/anno12> a oa:Annotation ;
    oa:hasBody <http://example.org/road1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/map1> ;
        oa:hasSelector [
            a oa:SvgSelector ;
            rdf:value "<svg:svg> ... </svg:svg>" ] ] .

2.1.17 TextPositionSelector(テキスト位置セレクタ)

TextPositionSelectorは、連続するデータ内の選択の開始・終了位置を記録することでテキストの範囲を記述します。0という位置は最初の文字の直前であり、1という位置は2番目の文字の直前であるなどです。

oa:TextPositionSelector
例13: oa:TextPositionSelector
<http://example.org/anno13> a oa:Annotation ;
    oa:hasBody <http://example.org/review1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/ebook1> ;
        oa:hasSelector [
            a oa:TextPositionSelector ;
            oa:start 412 ;
            oa:end 795 ] ] .

2.1.18 TextQuoteSelector(テキスト引用セレクタ)

TextQuoteSelectorは、コピーすることによってある範囲のテキストを記述し、その直前(接頭辞)・直後(接尾辞)のテキストの一部を含めることで、同じ文字列の複数のコピーを区別します。

oa:TextQuoteSelector
例14: oa:TextQuoteSelector
<http://example.org/anno14> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
            a oa:TextQuoteSelector ;
            oa:exact "anotation" ;
            oa:prefix "this is an " ;
            oa:suffix " that has some" ] ] .

2.1.19 TextualBody(テキスト形式の本体)

oa:TextualBody
例15: oa:TextualBody
<http://example.org/anno15> a oa:Annotation ;
    oa:hasTarget <http://example.org/photo1> ;
    oa:hasBody [
        a oa:TextualBody;
        rdf:value "<p>Comment text</p>" ;
        dc:language "en" ;
        dc:format "text/html" ] .

2.1.20 TimeState(時間状態)

TimeStateは、資源の状態がアノテーションに適している時間を記録するもので、一般的には、アノテーションが作成された時間および/または現在のバージョンの永続的なコピーへのリンクです。

oa:TimeState
例16: oa:TimeState
<http://example.org/anno16> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasState [
            a oa:TimeState ;
            oa:cachedSource <http://example.org/copy1> ;
            oa:sourceDate "2015-07-20T13:30:00Z" ] ] .

2.1.21 XPathSelector(XPathセレクタ)

XPathSelectorは、指定されたXPathの値を用いてドキュメント・オブジェクト・モデルをサポートする資源内の要素とコンテンツを選択するために用います。

oa:XPathSelector
例17: oa:XPathSelector
<http://example.org/anno17> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
          a oa:XPathSelector ;
          rdf:value "/html/body/p[2]/table/tr[2]/td[3]/span" ] ] .

2.2 プロパティー

2.2.1 annotationService(アノテーション・サービス)

この関係の目的語は、[annotation-protocol]に従ったサービスのエンドポイントであり、任意の資源に関連付けることができます。関係の言明で予期されるのは、関係の公開者によれば、その目的語が主語資源に関するアノテーションを維持するための望ましいサービスであるということです。

この関係は、リンクト・データの記述とリンクのrelタイプ(バイナリ資源とHTTP Link要素の場合のHTTPリンク・ヘッダー[rfc5988]を用いて)の両方で用いることを意図しています。これらの詳細については、アノテーション・プロトコル仕様[annotation-protocol]を参照してください。

  • IRI: http://www.w3.org/ns/oa#annotationService
例18: oa:annotationService
<http://example.org/diagram.jpg> a dctypes:Image ;
    oa:annotationService <http://example.org/services/annotations/> .

2.2.2 bodyValue(本体値)

述語の目的語は、アノテーションの本体のコンテンツとして用いられるプレーン・テキストの文字列です。値はxsd:stringでなけばならず(MUST)、そのデータ型はシリアル化で表現してはなりません(MUST NOT)。言語は、rdf:langStringでのみ使用できるため、言語タグとして値と関連付けられてはならない(MUST NOT)ことに注意してください。

  • IRI: http://www.w3.org/ns/oa#bodyValue
  • 定義域: oa:Annotation
  • 値域: xsd:string
oa:bodyValue
例19: oa:bodyValue
<http://example.org/anno18> a oa:Annotation ;
    oa:bodyValue "Comment text" ;
    oa:hasTarget <http://example.org/target1> .

2.2.3 cachedSource(キャッシュされた情報源)

関係の目的語は、アノテーションに適した、情報源資源の表現のコピーです。

  • IRI: http://www.w3.org/ns/oa#cachedSource
  • 定義域: oa:TimeState
oa:cachedSource
例20
<http://example.org/anno19> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasState [
            a oa:TimeState ;
            oa:cachedSource <http://example.org/copy1> ;
            oa:sourceDate "2015-07-20T13:30:00Z" ] ] .

2.2.4 canonical(正規)

関係の目的語は、表現にアクセスするために用いられている現在のIRIに関わらず、アノテーションの重複排除に常に使用できる正規のIRIです。

  • IRI: http://www.w3.org/ns/oa#canonical
oa:canonical
例21
<http://example.org/anno20> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget <http://example.org/page1> ;
    oa:canonical <urn:uuid:dbfb1861-0ecf-41ad-be94-a584e5c4f1df> .

2.2.5 end(終了)

終了プロパティーは、コンテンツの範囲の終了位置の0オリジン(0-based)のインデックスを伝えるために用いられます。

  • IRI: http://www.w3.org/ns/oa#end
  • 値域: xsd:nonNegativeInteger
oa:end
例22: oa:end
<http://example.org/anno21> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/diskimg1> ;
        oa:hasSelector [
            a oa:DataPositionSelector ;
            oa:start 4096 ;
            oa:end 4104 ] ] .

2.2.6 exact(完全)

この述語の目的語は、選択されているテキスト(正規化後)のコピーです。

  • IRI: http://www.w3.org/ns/oa#exact
  • 値域: xsd:string
oa:exact
例23: oa:exact
<http://example.org/anno22> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
            a oa:TextQuoteSelector ;
            oa:exact "anotation" ;
            oa:prefix "this is an " ;
            oa:suffix " that has some" ] ] .

2.2.7 hasBody(本体を持つ)

この関係の目的語は、アノテーションの本体である資源です。

oa:hasBody
例24: oa:hasBody
<http://example.org/anno23> a oa:Annotation ;
    oa:hasBody <http://example.org/post1> ;
    oa:hasTarget <http://example.com/page1> .

2.2.8 hasEndSelector(終了セレクタを持つ)

RangeSelectorと範囲の終了位置を記述しているセレクタとの関係。

oa:hasEndSelector
例25: oa:hasEndSelector
<http://example.org/anno24> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
          a oa:RangeSelector ;
          oa:hasStartSelector [
            a oa:XPathSelector ;
            rdf:value "//table[1]/tr[1]/td[2]" ] ;
          oa:hasEndSelector [
            a oa:XPathSelector ;
            rdf:value "//table[1]/tr[1]/td[4]" ] ] ] .

2.2.9 hasPurpose(目的を持つ)

アノテーションの資源によって提供される目的。

oa:hasPurpose
例26: oa:hasPurpose
<http://example.org/anno25> a oa:Annotation ;
    oa:motivatedBy oa:bookmarking ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "readme" ;
        oa:hasPurpose oa:tagging ] ;
    oa:hasTarget <http://example.org/page1> .

2.2.10 hasScope(範囲を持つ)

アノテーションで資源が用いられる範囲またはコンテキスト。

oa:hasScope
例27: oa:hasScope
<http://example.org/anno26> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/logo1.jpg> ;
        oa:hasScope <http://example.org/index.html> ] .

2.2.11 hasSelector(セレクタを持つ)

関係の目的語は、情報源資源内の関心のある断片または領域を記述するセレクタです。ウェブ・アノテーション・モデルでは定義域(oa:ResourceSelection)が直接用いられないことに注意してください。

oa:hasSelector
例28: oa:hasSelector
<http://example.org/anno27> a oa:Annotation ;
    oa:hasBody [
      oa:hasSource <http://example.org/page1> ;
      oa:hasSelector <http://example.org/paraselector1> ] ;
    oa:hasTarget [
      oa:hasSource <http://example.com/dataset1> ;
      oa:hasSelector <http://example.org/dataselector1> ] .

2.2.12 hasSource(情報源を持つ)

ResourceSelection(またはそのサブクラスのSpecificResource)が精緻化された形式またはより特定的である資源。ウェブ・アノテーション・モデルでは定義域(oa:ResourceSelection)が直接用いられないことに注意してください。

oa:hasSource
例29: oa:hasSource
<http://example.org/anno28> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget <http://example.org/region1> .

<http://example.org/region1> a oa:SpecificResource ;
    oa:hasSource <http://example.org/image1> .

2.2.13 hasStartSelector(開始セレクタを持つ)

RangeSelectorと範囲の開始位置を記述しているセレクタとの関係。

oa:hasStartSelector
例30: oa:hasStartSelector
<http://example.org/anno29> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
          a oa:RangeSelector ;
          oa:hasStartSelector [
            a oa:XPathSelector ;
            rdf:value "//table[1]/tr[1]/td[2]" ] ;
          oa:hasEndSelector [
            a oa:XPathSelector ;
            rdf:value "//table[1]/tr[1]/td[4]" ] ] ] .

2.2.14 hasState(状態を持つ)

ResourceSelection(またはそのサブクラスのSpecificResource)と状態資源との関係。ウェブ・アノテーション・モデルでは定義域(oa:ResourceSelection)が直接用いられないことに注意してください。

oa:hasState
例31: oa:hasState
<http://example.org/anno30> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasState <http://example.org/state1> ;
        oa:hasSource <http://example.org/page1> ] .

2.2.15 hasTarget(ターゲットを持つ)

アノテーションとそのターゲットとの関係。

  • IRI: http://www.w3.org/ns/oa#hasTarget
  • 定義域: oa:Annotation
oa:hasTarget
例32: oa:hasTarget
<http://example.org/anno31> a oa:Annotation ;
    oa:hasBody <http://example.org/post1> ;
    oa:hasTarget <http://example.com/page1> .

2.2.16 motivatedBy(~による動機)

アノテーションとアノテーションの作成理由を記述している動機との関係。

oa:motivatedBy
例33: oa:motivatedBy
<http://example.org/anno32> a oa:Annotation ;
    oa:hasBody <http://example.org/description1> ;
    oa:hasTarget <http://example.com/resource1> ;
    oa:motivatedBy oa:describing .

2.2.17 prefix(接頭辞)

このプロパティーの目的語は、セレクタによって選択されているコンテンツの直前にあるコンテンツの断片です。

  • IRI: http://www.w3.org/ns/oa#prefix
  • 値域: xsd:string
oa:prefix
例34: oa:prefix
<http://example.org/anno33> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
            a oa:TextQuoteSelector ;
            oa:exact "anotation" ;
            oa:prefix "this is an " ;
            oa:suffix " that has some" ] ] .

2.2.18 processingLanguage(処理言語)

プロパティーの目的語は、ハイフネーション、改行、表示に使用するフォントなどを含む、資源のコンテンツを扱う時にテキスト処理アルゴリズムに用いるべき言語です。値は[BCP47]の勧告に従わなければなりません。

  • IRI: http://www.w3.org/ns/oa#processingLanguage
  • 右記のサブプロパティー: dc:language
  • 値域: xsd:string
oa:processingLanguage
例35: oa:processingLanguage
<http://example.org/anno34> a oa:Annotation ;
    oa:hasBody [
      a oa:TextualBody ;
      rdf:value "<p>?????? ???????, W3C</p>" ;
      dc:format "text/html" ;
      dc:language "en", "he" ;
      oa:processingLanguage "he" ] ;
    oa:hasTarget <http://example.org/page1> .

2.2.19 refinedBy(~による精緻化)

情報源資源の処理を精緻化するために最初の結果に適用すべき、セレクタと別のセレクタ、または状態とセレクタまたは状態との関係。

  • IRI: http://www.w3.org/ns/oa#refinedBy
oa:refinedBy
例36: oa:refinedBy
<http://example.org/anno35> a oa:Annotation ;
      oa:hasBody <http://example.org/comment1> ;
      oa:hasTarget [
          a oa:SpecificResource ;
          oa:hasSource <http://example.org/page1> ;
          oa:hasSelector [
            a oa:FragmentSelector ;
            rdf:value "para5" ;
            oa:refinedBy [
              a oa:TextQuoteSelector ;
              oa:exact "selected text" ;
              oa:prefix "text before the " ;
              oa:suffix "and text after it" ] ] ] .

2.2.20 renderedVia(~による表示)

資源を表示するためにアノテーションを作成したアプリケーションが用いたシステム。

oa:renderedVia
例37: oa:prefix
<http://example.org/anno36> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget [
      a oa:SpecificResource ;
      oa:hasSource <http://example.org/page1> ;
      oa:renderedVia [
        a as:Application ;
        schema:softwareVersion "2.5" ] ] .

2.2.21 sourceDate(情報源日付)

情報源資源がアノテーションに適用可能であると解釈されるべきタイム・スタンプ。

  • IRI: http://www.w3.org/ns/oa#sourceDate
  • 定義域: oa:TimeState
  • 値域: xsd:dateTime
oa:sourceDate
例38: oa:sourceDate
<http://example.org/anno37> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasState [
            a oa:TimeState ;
            oa:sourceDate "2015-07-20T13:30:00Z" ] ] .

2.2.22 sourceDateEnd(情報源日付終了)

情報源資源がアノテーションに適用可能であると解釈されるべきインタバルの終了のタイム・スタンプ。

  • IRI: http://www.w3.org/ns/oa#sourceDate
  • 定義域: oa:TimeState
  • 値域: xsd:dateTime
oa:sourceDateEnd
例39: oa:sourceDateEnd
<http://example.org/anno38> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasState [
            a oa:TimeState ;
            oa:sourceDateStart "2015-07-20T13:30:00Z" ;
            oa:sourceDateEnd   "2015-07-21T19:45:00Z" ] ] .

2.2.23 sourceDateStart(情報源日付開始)

情報源資源がアノテーションに適用可能であると解釈されるべきインタバルの開始のタイム・スタンプ。

  • IRI: http://www.w3.org/ns/oa#sourceDate
  • 定義域: oa:TimeState
  • 値域: xsd:dateTime
oa:sourceDateStart
例40: oa:sourceDateStart
<http://example.org/anno39> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasState [
            a oa:TimeState ;
            oa:sourceDateStart "2015-07-20T13:30:00Z" ;
            oa:sourceDateEnd   "2015-07-21T19:45:00Z" ] ] .

2.2.24 start(開始)

コンテンツの範囲が情報源資源のデータから選択される0オリジン(0-based)のインデックスの開始位置。

  • IRI: http://www.w3.org/ns/oa#start
  • 値域: xsd:nonNegativeInteger
oa:start
例41: oa:start
<http://example.org/anno40> a oa:Annotation ;
    oa:hasBody <http://example.org/review1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/ebook1> ;
        oa:hasSelector [
            a oa:TextPositionSelector ;
            oa:start 412 ;
            oa:end 795 ] ] .

2.2.25 styleClass(スタイル・クラス)

特定資源に適用すべきアノテーションから参照されるCSS記述に用いられるクラス名。

oa:styleClass
例42: oa:styleClass
<http://example.org/anno41> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:styledBy <http://example.org/style1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/document1> ;
        oa:styleClass "red" ] .

<http://example.org/style1> a oa:CssStyle .

2.2.26 styledBy(~によるスタイル指定)

アノテーションの表示にスタイルを適用するために用いるべきスタイルシートへの参照。

oa:styledBy
例43: oa:styledBy
<http://example.org/anno42> a oa:Annotation ;
    oa:hasBody <http://example.org/body1> ;
    oa:styledBy [
        a oa:CssStyle ;
        rdf:value ".red { color: red }" ] ;
    oa:hasTarget [
        oa:hasSource <http://example.org/target1> ;
        oa:styleClass "red" ] .

2.2.27 suffix(接尾辞)

選択されているテキストの直後にあるテキストの断片。

  • IRI: http://www.w3.org/ns/oa#suffix
  • 値域: xsd:string
oa:suffix
例44: oa:suffix
<http://example.org/anno43> a oa:Annotation ;
    oa:hasBody <http://example.org/comment1> ;
    oa:hasTarget [
        oa:hasSource <http://example.org/page1> ;
        oa:hasSelector [
            a oa:TextQuoteSelector ;
            oa:exact "anotation" ;
            oa:prefix "this is an " ;
            oa:suffix " that has some" ] ] .

2.2.28 textDirection(テキスト方向)

主語資源のテキストの方向。任意の資源と関連付けられたテキスト方向が1つだけなければなりません(MUST)。

  • IRI: http://www.w3.org/ns/oa#textDirection
  • 値域: oa:Direction
oa:textDirection
例45: oa:textDirection
<http://example.org/anno44> a oa:Annotation ;
    oa:hasBody [
        rdf:value "This is a comment" ;
        dc:language "en" ;
        dc:format "text/plain" ;
        oa:textDirection oa:ltr ] ;
    oa:hasTarget <http://example.org/page1> .

2.2.29 via(による)

関係の目的語は、提供しているシステムによって情報源資源が取得された資源です。

  • IRI: http://www.w3.org/ns/oa#via
oa:via
例46: oa:via
<http://example.org/anno45> a oa:Annotation ;
    oa:hasBody <http://example.org/note1> ;
    oa:hasTarget <http://example.org/page1> ;
    oa:via <http://other.example.com/anno1b> .

2.3 名前付き個体

2.3.1 assessing(評価)

ユーザが、ターゲット資源に関して評価しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#assessing
  • 右記のインスタンス: oa:Motivation
oa:assessing
例47: oa:assessing
<http://example.org/anno46> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "Very high quality" ] ;
    oa:hasTarget <http://example.com/resource1> ;
    oa:motivatedBy oa:assessing .

2.3.2 bookmarking(ブックマーク)

ユーザが、ターゲットまたはその部分にブックマークを作成しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#bookmarking
  • 右記のインスタンス: oa:Motivation
oa:bookmarking
例48: oa:bookmarking
<http://example.org/anno47> a oa:Annotation ;
    oa:hasTarget <http://example.com/page1> ;
    oa:motivatedBy oa:bookmarking .

2.3.3 classifying(分類)

ユーザが、ターゲットを何かに分類しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#classifying
  • 右記のインスタンス: oa:Motivation
oa:classifying
例49: oa:classifying
<http://example.org/anno48> a oa:Annotation ;
    oa:hasBody <http://example.org/type1> ;
    oa:hasTarget <http://example.com/resource1> ;
    oa:motivatedBy oa:classifying .

2.3.4 commenting(コメント)

ユーザがターゲットに関してコメントしようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#commenting
  • 右記のインスタンス: oa:Motivation
oa:commenting
例50: oa:commenting
<http://example.org/anno49> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "A comment about the page" ] ;
    oa:hasTarget <http://example.com/page1> ;
    oa:motivatedBy oa:commenting .

2.3.5 describing(記述)

ユーザが、ターゲットに関してコメントするのではなく、ターゲットを記述しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#describing
  • 右記のインスタンス: oa:Motivation
oa:describing
例51: oa:describing
<http://example.org/anno50> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "A description of the image" ] ;
    oa:hasTarget <http://example.com/image1> ;
    oa:motivatedBy oa:describing .

2.3.6 editing(編集)

ユーザが、ターゲット資源に変更や編集を要求しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#editing
  • 右記のインスタンス: oa:Motivation
oa:editing
例52: oa:editing
<http://example.org/anno51> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "Editorial suggestion" ] ;
    oa:hasTarget <http://example.com/text1> ;
    oa:motivatedBy oa:editing .

2.3.7 highlighting(ハイライト)

ユーザが、ターゲット資源またはその断片をハイライト表示しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#highlighting
  • 右記のインスタンス: oa:Motivation
oa:highlighting
例53: oa:highlighting
<http://example.org/anno52> a oa:Annotation ;
    oa:hasTarget <http://example.com/region1> ;
    oa:motivatedBy oa:highlighting .

2.3.8 identifying(識別)

ユーザが、ターゲットにIDを割り当てようとする時、またはターゲットに何が表現または説明されているかを識別しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#identifying
  • 右記のインスタンス: oa:Motivation
oa:identifying
例54: oa:identifying
<http://example.org/anno53> a oa:Annotation ;
    oa:hasBody <http://example.com/identities/object1> ;
    oa:hasTarget <http://example.com/image-of-object1> ;
    oa:motivatedBy oa:identifying .

2.3.9 linking(リンク)

ユーザが、ターゲットに関連する資源にリンクしようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#linking
  • 右記のインスタンス: oa:Motivation
oa:linking
例55: oa:linking
<http://example.org/anno54> a oa:Annotation ;
    oa:hasBody <http://example.org/from1> ;
    oa:hasTarget <http://example.com/to1> ;
    oa:motivatedBy oa:linking .

2.3.10 moderating(モデレーション)

ユーザが、ターゲットに何からの価値または品質を割り当てようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#moderating
  • 右記のインスタンス: oa:Motivation
oa:moderating
例56: oa:moderating
<http://example.org/anno55> a oa:Annotation ;
    oa:hasBody <http://example.org/tags/approved1> ;
    oa:hasTarget <http://example.com/anno1> ;
    oa:motivatedBy oa:moderating .

2.3.11 questioning(質問)

ユーザが、ターゲットに関して質問をしようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#questioning
  • 右記のインスタンス: oa:Motivation
oa:questioning
例57: oa:questioning
<http://example.org/anno56> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "A question about the resource" ] ;
    oa:hasTarget <http://example.com/resource1> ;
    oa:motivatedBy oa:questioning .

2.3.12 replying(回答)

ユーザが、前のステートメント(アノテーションか別の資源かのいずれか)に回答しようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#replying
  • 右記のインスタンス: oa:Motivation
oa:replying
例58: oa:replying
<http://example.org/anno57> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "A reply to a question" ] ;
    oa:hasTarget <http://example.com/anno1> ;
    oa:motivatedBy oa:replying .

2.3.13 tagging(タグ付け)

ユーザが、ターゲットにタグを関連付けようとする時の動機。

  • IRI: http://www.w3.org/ns/oa#tagging
  • 右記のインスタンス: oa:Motivation
oa:tagging
例59: oa:tagging
<http://example.org/anno58> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "tag" ] ;
    oa:hasTarget <http://example.com/thing1> ;
    oa:motivatedBy oa:tagging .

2.3.14 autoDirection(自動方向)

コンテンツから自動的に決定すべきテキストの方向。

  • IRI: http://www.w3.org/ns/oa#autoDirection
  • 右記のインスタンス: oa:Direction
oa:autoDirection
例60: oa:autoDirection
<http://example.org/anno59> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "Some text" ;
        oa:textDirection oa:autoDirection ] ;
    oa:hasTarget <http://example.com/thing1>  .

2.3.15 ltrDirection(左から右方向)

左から右に読むテキストの方向。

  • IRI: http://www.w3.org/ns/oa#ltrDirection
  • 右記のインスタンス: oa:Direction
oa:ltrDirection
例61: oa:ltrDirection
<http://example.org/anno60> a oa:Annotation ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "Left to Right text" ;
        oa:textDirection oa:ltrDirection ] ;
    oa:hasTarget <http://example.com/thing1>  .

2.3.16 rtlDirection(右から左方向)

右から左に読むテキストの方向。

  • IRI: http://www.w3.org/ns/oa#rtlDirection
  • 右記のインスタンス: oa:Direction
oa:rtlDirection
例62: oa:rtlDirection
<http://example.org/anno61> a oa:Annotation ;
    oa:hasBody <http://example.org/ar/comment1> ;
    oa:hasTarget <http://example.com/thing1>  .

<http://example.org/ar/comment1> a dctypes:Text ;
    oa:textDirection oa:rtlDirection .

2.3.17 PreferContainedDescriptions(記述の包含を優先)

クライアントが、コンテナから、IRIのみでなく、アノテーションの完全な記述を受け取ることを望むことを知らせるIRI。

  • IRI: http://www.w3.org/ns/oa#PreferContainedDescriptions
  • 右記のインスタンス: rdfs:Resource
例63: oa:PreferContainedDescriptions
GET /annotations/ HTTP/1.1
Host: example.org
Accept: application/ld+json; profile="http://www.w3.org/ns/anno.jsonld"
Prefer: return=representation;include="http://www.w3.org/ns/ldp#PreferContainedDescriptions"

2.3.18 PreferContainedIRIs(IRIの包含を優先)

クライアントが、コンテナから、完全な記述ではなく、アノテーションのIRIのみを受け取ることを望むことを知らせるIRI。

  • IRI: http://www.w3.org/ns/oa#PreferContainedIRIs
  • 右記のインスタンス: rdfs:Resource
例64: oa:PreferContainedIRIs
GET /annotations/ HTTP/1.1
Host: example.org
Accept: application/ld+json; profile="http://www.w3.org/ns/anno.jsonld"
Prefer: return=representation;include="http://www.w3.org/ns/ldp#PreferContainedIRIs"

4. 拡張

この語彙は、他のRDFベースのオントロジーから述語とクラスを新規作成するか既存のものをインポートすることにより、規則的な方法で拡張できます。プロパティーだけでなく新しいオブジェクトの追加を含む、任意の資源に拡張を行うことができます。すでにコンテキストに含まれているオントロジーの1つにプロパティーがある場合は、新しいコンテキストを作成するのではなく、JSON-LDキーとしてCURIE(:という文字で区切られた名前空間とプロパティー名)を用いることを推奨します(RECOMMENDED)。

例えば、新しいコンテキストのドキュメントをダウンロードしてマッピングを発見するようにクライアントに要求するのではなく、skos:prefLabelをアノテーションに追加する方が容易です。

例103: 拡張の例1
{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "id": "http://example.org/anno89",
  "type": "Annotation",
  "skos:prefLabel": "Picture Annotation",
  "body": {
    "type": "TextualBody",
    "value": "I love this picture!"
  },
  "target": {
    "id": "http://example.com/images/picture1",
    "type": "Image"
  }
}

キー名の間の衝突を確実になくすために、すでにウェブ・アノテーションのコンテキストにあるオントロジーの用語でない場合に、JSON-LDコンテキスト・ドキュメントを利用できるようにすべきです(SHOULD)。拡張コンテキストは、ウェブ・アノテーションのコンテキストの既存のJSON-LDキーを精緻化してはなりません(MUST NOT)。実装では、データを処理する時に、見慣れないプロパティーを無視しなければなりませんが(MUST)、サーバーは、それが有効で、含まれているコンテキストの一部であれば、保持すべきです(SHOULD)。

コンテキストは、拡張プロパティーを最も密接にカプセル化する資源と関連付けられるべきです(SHOULD)。これは、同じキーを定義している拡張が予期せず衝突しないようにするためです。特定の資源に複数のコンテキスト・ドキュメントがある場合は、それらを配列に含めなければなりません。

例えば、 EXIF語彙[exif]を用いたターゲット画像の高さと幅の追加は、JSON-LDコンテキストを定義し、heightwidthのプロパティーを含め、ターゲット資源の新しく定義されたコンテキストにリンクすることで行うことができます。

例104: 拡張の例2
{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "id": "http://example.org/anno90",
  "type": "Annotation",
  "skos:prefLabel": "Picture Annotation",
  "body": {
    "type": "TextualBody",
    "value": "I love this picture!"
  },
  "target": {
    "@context": "http://example.org/images/ns/extension.jsonld",
    "id": "http://example.com/images/picture1",
    "type": "Image",
    "height": 768,
    "width": 1024
  }
}

現在のJSON-LD[JSON-LD]仕様では、配列に他の配列を直接含めることできないことに注意してください。JSON-LDは推奨される(RECOMMENDED)シリアル化形式であるため、拡張はこのパターンの使用を回避すべきです(SHOULD)。

最後に、新しいクラスを定義して、特定のコミュニティとユースケースのモデルをさらに拡張することができます。新しいセレクタと状態は、表現を定義する新しい方法、およびその表現の断片を選択するための拡張に特に重要です。

例えば、三次元モデルのアノテーションには、x、y、幅、高さとともに、z軸の深さと開始位置を追加する必要があるでしょう。これらは新しいThreeDSelector資源で一緒に保持できるかもしれません。

例105: 拡張の例3
{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "id": "http://example.org/anno91",
  "type": "Annotation",
  "skos:prefLabel": "3d Annotation",
  "body": {
    "type": "TextualBody",
    "value": "I love this part of the model!"
  },
  "target": {
    "source": "http://example.org/models/robot.3d",
    "selector": {
      "@context": "http://example.org/3d/ns/extension.jsonld",
      "type": "ThreeDSelector",
      "x": 1035,
      "y": 245,
      "z": 782,
      "w": 120,
      "h": 180,
      "d": 90
    }
  }
}

A. JSON-LDコンテキスト

この項は非規範的です。

推奨される(RECOMMENDED)シリアル化形式は[JSON-LD]です。下記に示しているJSON-LDコンテキストは、実装間の一貫性を確保するために推奨されており(RECOMMENDED)、http://www.w3.org/ns/anno.jsonldで参照されるべきです(SHOULD)。同じIRIを、モデルとコンテキストに準拠した表現に対するプロファイルIRIとして用いるべきです(SHOULD)。

{
 "@context": {
    "oa":      "http://www.w3.org/ns/oa#",
    "dc":      "http://purl.org/dc/elements/1.1/",
    "dcterms": "http://purl.org/dc/terms/",
    "dctypes": "http://purl.org/dc/dcmitype/",
    "foaf":    "http://xmlns.com/foaf/0.1/",
    "rdf":     "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "rdfs":    "http://www.w3.org/2000/01/rdf-schema#",
    "skos":    "http://www.w3.org/2004/02/skos/core#",
    "xsd":     "http://www.w3.org/2001/XMLSchema#",
    "iana":    "http://www.iana.org/assignments/relation/",
    "owl":     "http://www.w3.org/2002/07/owl#",
    "as":      "http://www.w3.org/ns/activitystreams#",
    "schema":  "http://schema.org/",

    "id":      {"@type": "@id", "@id": "@id"},
    "type":    {"@type": "@id", "@id": "@type"},

    "Annotation":           "oa:Annotation",
    "Dataset":              "dctypes:Dataset",
    "Image":                "dctypes:StillImage",
    "Video":                "dctypes:MovingImage",
    "Audio":                "dctypes:Sound",
    "Text":                 "dctypes:Text",
    "TextualBody":          "oa:TextualBody",
    "ResourceSelection":    "oa:ResourceSelection",
    "SpecificResource":     "oa:SpecificResource",
    "FragmentSelector":     "oa:FragmentSelector",
    "CssSelector":          "oa:CssSelector",
    "XPathSelector":        "oa:XPathSelector",
    "TextQuoteSelector":    "oa:TextQuoteSelector",
    "TextPositionSelector": "oa:TextPositionSelector",
    "DataPositionSelector": "oa:DataPositionSelector",
    "SvgSelector":          "oa:SvgSelector",
    "RangeSelector":        "oa:RangeSelector",
    "TimeState":            "oa:TimeState",
    "HttpRequestState":     "oa:HttpRequestState",
    "CssStylesheet":        "oa:CssStyle",
    "Choice":               "oa:Choice",
    "Person":               "foaf:Person",
    "Software":             "as:Application",
    "Organization":         "foaf:Organization",
    "AnnotationCollection": "as:OrderedCollection",
    "AnnotationPage":       "as:OrderedCollectionPage",
    "Audience":             "schema:Audience", 

    "Motivation":    "oa:Motivation",
    "bookmarking":   "oa:bookmarking",
    "classifying":   "oa:classifying",
    "commenting":    "oa:commenting",
    "describing":    "oa:describing",
    "editing":       "oa:editing",
    "highlighting":  "oa:highlighting",
    "identifying":   "oa:identifying",
    "linking":       "oa:linking",
    "moderating":    "oa:moderating",
    "questioning":   "oa:questioning",
    "replying":      "oa:replying",
    "reviewing":     "oa:reviewing",
    "tagging":       "oa:tagging",

    "auto":          "oa:autoDirection",
    "ltr":           "oa:ltrDirection",
    "rtl":           "oa:rtlDirection",

    "body":          {"@type": "@id", "@id": "oa:hasBody"},
    "target":        {"@type": "@id", "@id": "oa:hasTarget"},
    "source":        {"@type": "@id", "@id": "oa:hasSource"},
    "selector":      {"@type": "@id", "@id": "oa:hasSelector"},
    "state":         {"@type": "@id", "@id": "oa:hasState"},
    "scope":         {"@type": "@id", "@id": "oa:hasScope"},
    "refinedBy":     {"@type": "@id", "@id": "oa:refinedBy"},
    "startSelector": {"@type": "@id", "@id": "oa:hasStartSelector"},
    "endSelector":   {"@type": "@id", "@id": "oa:hasEndSelector"},
    "renderedVia":   {"@type": "@id", "@id": "oa:renderedVia"},
    "creator":       {"@type": "@id", "@id": "dcterms:creator"},
    "generator":     {"@type": "@id", "@id": "as:generator"},
    "rights":        {"@type": "@id", "@id": "dcterms:rights"},
    "homepage":      {"@type": "@id", "@id": "foaf:homepage"},
    "via":           {"@type": "@id", "@id": "oa:via"},
    "canonical":     {"@type": "@id", "@id": "oa:canonical"},
    "stylesheet":    {"@type": "@id", "@id": "oa:styledBy"},
    "cached":        {"@type": "@id", "@id": "oa:cachedSource"},
    "conformsTo":    {"@type": "@id", "@id": "dcterms:conformsTo"},
    "items":         {"@type": "@id", "@id": "as:items", "@container": "@list"},
    "partOf":        {"@type": "@id", "@id": "as:partOf"},
    "first":         {"@type": "@id", "@id": "as:first"},
    "last":          {"@type": "@id", "@id": "as:last"},
    "next":          {"@type": "@id", "@id": "as:next"},
    "prev":          {"@type": "@id", "@id": "as:prev"},
    "audience":      {"@type": "@id", "@id": "schema:audience"},
    "motivation":    {"@type": "@vocab", "@id": "oa:motivatedBy"},
    "purpose":       {"@type": "@vocab", "@id": "oa:hasPurpose"},
    "textDirection": {"@type": "@vocab", "@id": "oa:textDirection"},

    "accessibility": "schema:accessibilityFeature",
    "bodyValue":     "oa:bodyValue",
    "format":        "dc:format",
    "language":      "dc:language",
    "processingLanguage": "oa:processingLanguage",
    "value":         "rdf:value",
    "exact":         "oa:exact",
    "prefix":        "oa:prefix",
    "suffix":        "oa:suffix",
    "styleClass":    "oa:styleClass",
    "name":          "foaf:name",
    "email":         "foaf:mbox",
    "email_sha1":    "foaf:mbox_sha1sum",
    "nickname":      "foaf:nick",
    "label":         "rdfs:label",

    "created":       {"@id": "dcterms:created", "@type": "xsd:dateTime"},
    "modified":      {"@id": "dcterms:modified", "@type": "xsd:dateTime"},
    "generated":     {"@id": "dcterms:issued", "@type": "xsd:dateTime"},
    "sourceDate":    {"@id": "oa:sourceDate", "@type": "xsd:dateTime"},
    "sourceDateStart": {"@id": "oa:sourceDateStart", "@type": "xsd:dateTime"},
    "sourceDateEnd": {"@id": "oa:sourceDateEnd", "@type": "xsd:dateTime"},

    "start":         {"@id": "oa:start", "@type": "xsd:nonNegativeInteger"},
    "end":           {"@id": "oa:end", "@type": "xsd:nonNegativeInteger"},
    "total":         {"@id": "as:totalItems", "@type": "xsd:nonNegativeInteger"},
    "startIndex":    {"@id": "as:startIndex", "@type": "xsd:nonNegativeInteger"}
  }
}

B. JSON-LDフレーム

この項は非規範的です。

RDFグラフを特定のJSON-LDドキュメント・レイアウトにシリアル化するための決定的なレイアウトを記述する非公式ながらもうまく実装されているJSON-LD仕様[json-ld-framing]が存在しています。下記のフレームを情報のグラフに適用することにより、ウェブ・アノテーション・データ・モデルで推奨されているシリアル化とできる限り近いJSONが生成されるでしょう。

B.1 アノテーション・フレーム

1つのアノテーションをシリアル化するためのフレーム

{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "@omitDefault": true,
  "type": "Annotation",
  "via": {"@embed": false},
  "canonical": {"@embed": false},
  "rights": {"@embed": false},
  "motivation": {"@embed": false},
  "body": {"@embed": true},
  "target": {"@embed": true},
  "creator": {"@embed": true},
  "generator": {"@embed": true},
  "audience": {"@embed": true}
}

B.2 アノテーション・コレクション・フレーム

アノテーションのコレクションをシリアル化するためのフレーム

{
    "@context" : [
    	"http://www.w3.org/ns/anno.jsonld",
    	"http://www.w3.org/ns/ldp.jsonld"
  	],
    "type": "Collection",
    "first": [{"@embed": "False"}],
    "last": [{"@embed": "False"}]
}

代わりに、コレクションの最初のページを組み込むことが望ましい場合は、firstに対するfalse(偽)をtrue(真)に変更してください。

B.3 アノテーション・ページ・フレーム

アノテーションのコレクションのページをシリアル化するためのフレーム

{
  "@context": "http://www.w3.org/ns/anno.jsonld",
  "@omitDefault": true,
  "type": "AnnotationPage",
  "next": {"@embed": false},
  "prev": {"@embed": false},
  "partOf": {"@embed": false},
  "items": {"@embed": true}
}

C. 動機の拡張

この項は非規範的です。

この仕様の動機のリストは、アノテーションに関する状況の幅広い調査から得られたものですが、より正確な定義が必要または望ましい状況が多くあります。そのような場合には、新しい動機資源を作成し、それを既存の1つ以上のものと関係づけることが推奨されます(RECOMMENDED)。

新しい動機は、oa:Motivationのインスタンスでなければならず(MUST)、それはskos:Conceptのサブクラスです。範囲がより広い場合には、新しい動機と少なくとも1つの既存の動機との間でskos:broader関係が言明されるべきです(SHOULD)。skos:relatedMatchskos:exactMatchskos:closeMatchなどのその他の関係も、他のコミュニティにより作成された概念に対して言明されるべきです(SHOULD)。

モデル

動機の拡張に対するSKOSの使用
1 動機の拡張

D. 提案される定義

この項は非規範的です。

下記のクラスがオントロジーに推奨されましたが、必要な実装がなかったため、結果として削除されました。

D.1 複合

as:itemsリストのすべての資源を用いるべきであるけれども、その順序は重要ではないと利用アプリケーションに伝えるas:OrderedCollectionのサブクラス。

oa:Compositeと項目のリスト
例106: oa:Composite
<http://example.org/anno92> a oa:Annotation ;
    oa:motivatedBy oa:commenting ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "These pages together provide evidence of the conspiracy" ] ;
    oa:hasTarget [
        a oa:Composite ;
        as:items ( <http://example.org/page1> <http://example.org/page6> <http://example.org/page4> ) ] .

D.2 独立

as:itemsリストの各資源がその他のすべての本体またはターゲットと独立して関連付けられていることを利用アプリケーションに伝えるas:OrderedCollectionのサブクラス。

oa:Independentsと項目のリスト
例107: oa:Independents
<http://example.org/anno93> a oa:Annotation ;
    oa:motivatedBy oa:classifying ;
    oa:hasBody <http://example.org/vocab/art/portrait> ;
    oa:hasTarget [
        a oa:Independents ;
        as:items (
          <http://example.com/image1>
          <http://example.net/image2>
          <http://example.com/image4>
          <http://example.org/image9>
        ) ] .

D.3 リスト

as:itemsリストの各資源を用いるべきであり、それらの順序は重要であると利用アプリケーションに伝えるas:OrderedCollectionのサブクラス。

oa:Listと項目のリスト
例108: oa:List
<http://example.org/anno94> a oa:Annotation ;
    oa:motivatedBy oa:tagging ;
    oa:hasBody [
        a oa:TextualBody ;
        rdf:value "important" ] ;
    oa:hasTarget [
        a oa:List ;
        as:items (
          <http://example.com/book/page1>
          <http://example.net/book/page2>
          <http://example.com/book/page3>
          <http://example.org/book/page4>
        ) ] .

E. 勧告候補終了基準

この項は非規範的です。

この仕様を勧告案に進めるためには、語彙の妥当性を実証する少なくとも2つの独立した実装がなければなりません。以下の条件が実証された時には、語彙は有効であるとみなされるでしょう。

コンテキストと資源がいったんグラフに変換されれば、JSON-LDはその間の調整を維持しないため、拡張の述語および/またはクラスを用いる資源のシリアル化に拡張コンテキスト・ドキュメントを含めるというJSON-LDの拡張の推奨パターンは、往復可能ではありません。グラフの結果として作成されるJSON-LDシリアル化内のJSONキーの順序と正確な名前の付与は、語彙の機能とは見なされないため、その妥当性を示す必要はありません。代わりに、キーの名前の付与はアノテーション・モデルの機能であり、その終了基準に基づいて検証されます。

F. 旧バージョンからの変更

この項は非規範的です。

F.1 2017年1月17日の勧告案からの変更

重要な変更はない。

F.2 2016年11月22日の勧告候補からの変更

F.3 2016年9月06日の勧告候補からの変更

F.4 2016年7月5日の勧告候補からの変更

F.5 2016年3月31日の草案からの変更

2016年3月31日の草案公開からのこの仕様の重要な技術的変更は、下記のとおりです。

G. 謝辞

この項は非規範的です。

ウェブ・アノテーション・ワーキンググループは、オープン・アノテーション・コミュニティ・グループの貢献に謝意を表します。コミュニティ・グループの成果が現在のデータ・モデルの基礎となりました。

この仕様の作成において、次の方々に、アイデア、フィードバック、レビュー、コンテンツ、批評およびインプットの提供でご協力いただきました。

Vladimir Alexiev、Art Barstow、Tim Berners-Lee、Chris Birk、Dan Brickley、Sarven Capadisli、Paolo Ciccarese、Tim Cole、Ray Denenberg、TB Dinesh、Sergiu Gordea、Benjamin Goering、Amy Guy、Ivan Herman、Frederick Hirsch、Antoine Isaac、Jacob Jett、Takeshi Kanai、Gregg Kellogg、Andreas Kuckartz、Randall Leeds、Hugo Manguinhas、Shane McCarron、Ben De Meester、Luc Moreau、Addison Phillips、Davis Salisbury、Robert Sanderson、Felix Sasaki、Doug Schepers、Tzviya Siegman、Stian Soiland-Reyes、Manu Sporny、Nick Stenning、Jon Stroop、Lutz Suhrbier、Kyrce Swenson、Raphael Troncy、Simeon Warner、Erik Wilde、Dan Whaley、Benjamin Young

H. 参考文献

H.1 規範的な参考文献

[BCP47]
Tags for Identifying Languages. A. Phillips; M. Davis. IETF. September 2009. IETF Best Current Practice. URL: https://tools.ietf.org/html/bcp47
[DC-TERMS]
Dublin Core Metadata Initiative Terms, version 1.1. 11 October 2010. DCMI Recommendation. URL: http://dublincore.org/documents/2010/10/11/dcmi-terms/
[DC11]
Dublin Core Metadata Element Set, Version 1.1. Dublin Core metadata initiative.14 June 2012. DCMI recommendation. URL: http://dublincore.org/documents/2012/06/14/dces/
[FOAF]
FOAF Vocabulary Specification 0.99 (Paddington Edition). Dan Brickley; Libby Miller. FOAF project. 14 January 2014. URL: http://xmlns.com/foaf/spec
[JSON-LD]
JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 16 January 2014. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[Turtle]
RDF 1.1 Turtle. Eric Prud'hommeaux; Gavin Carothers. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/turtle/
[activitystreams-core]
Activity Streams 2.0. James Snell; Evan Prodromou. W3C. 15 December 2016. W3C Candidate Recommendation. URL: https://www.w3.org/TR/activitystreams-core/
[activitystreams-vocabulary]
Activity Vocabulary. James Snell; Evan Prodromou. W3C. 15 December 2016. W3C Candidate Recommendation. URL: https://www.w3.org/TR/activitystreams-vocabulary/
[annotation-model]
Web Annotation Data Model. Robert Sanderson; Paolo Ciccarese; Benjamin Young. W3C. W3C Recommendation. URL: http://www.w3.org/TR/annotation-model/
[annotation-protocol]
Web Annotation Protocol. Robert Sanderson. W3C. W3C Recommendation. URL: http://www.w3.org/TR/annotation-protocol/
[rdf-schema]
RDF Schema 1.1. Dan Brickley; Ramanathan Guha. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-schema/
[rfc3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://tools.ietf.org/html/rfc3987
[rfc5988]
Web Linking. M. Nottingham. IETF. October 2010. Proposed Standard. URL: https://tools.ietf.org/html/rfc5988
[skos-reference]
SKOS Simple Knowledge Organization System Reference. Alistair Miles; Sean Bechhofer. W3C. 18 August 2009. W3C Recommendation. URL: https://www.w3.org/TR/skos-reference
[xmlschema-2]
XML Schema Part 2: Datatypes Second Edition. Paul V. Biron; Ashok Malhotra. W3C. 28 October 2004. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema-2/

H.2 参考情報の参考文献

[exif]
Exif Vocabulary Workspace - RDF Schema. W3C. URL: https://www.w3.org/2003/12/exif/
[json-ld-framing]
JSON-LD Framing 1.0. W3C JSON-LD Community Group. URL: http://json-ld.org/spec/latest/json-ld-framing/
[rdf-concepts]
Resource Description Framework (RDF): Concepts and Abstract Syntax. Graham Klyne; Jeremy Carroll. W3C. 10 February 2004. W3C Recommendation. URL: https://www.w3.org/TR/rdf-concepts/