この文書は「Publication Manifest」の日本語訳である。最新の文書は https://www.w3.org/TR/2019/WD-pub-manifest-20190911/ である。原文もしくは完全な情報は、Publication Manifest を参照されたい。
この日本語訳は参考である。公式な文書ではなく、翻訳・解釈の正確性を保証していない。
「reading progression direction」の訳は「組み方向」とした。「extension relation types」の訳は、RFC 8288 を参考にして「拡張関連型」とした。
Copyright © 2019 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
この仕様は、デジタル出版物に関する情報を表現するための一般的なマニフェスト形式を定義する。[schema.org] メタデータを使用して、表現する必要のある情報の差異に対応しながら出版物フォーマット間の相互運用性を実現するために、[JSON-LD] でシリアル化された出版物に関するさまざまな構造プロパティを追加する。
このセクションは、このドキュメントの発行時のステータスについて説明する。他のドキュメントが、このドキュメントに優先する場合がある。現在の W3C の出版物のリストとこの技術レポートの最新版は、https://www.w3.org/TR/ の W3C 技術レポートのインデックスで見つけることができる。
このドキュメントは、ワーキング ドラフトとして、Publishing Working Group によって発行された。このドキュメントは、W3C 勧告になることを意図している。
GitHub イシューは、この仕様の議論に適している。または、メーリング リストにコメントを送信することもできす。それらを public-publ-wg@w3.org(アーカイブ)に送信されたい。
ワーキング ドラフトとしての発行は、W3C メンバーシップによる承認を意味するものではない。これはドラフトのドキュメントであり、いつでも他のドキュメントによって更新、置き換え、廃止される可能性がある。このドキュメントを進行中の作品以外のものとして引用することは不適切である。
このドキュメントは、W3C 特許ポリシーの下で活動するグループによって作成された。W3C は、グループの成果物に関連して行われた特許開示の公開リストを保持している。そのページは、特許を開示するための指示も包含している。エッセンシャル クレームが含まれていると考える特許について実際に知識がある個人は、W3C 特許ポリシーのセクション 6 に従って情報を開示する必要がある。
このドキュメントは、1 March 2019 W3C Process Document によって管理されている。
この仕様は、出版物を記述する一般的なマニフェスト形式を定義する。それは、マニフェストを使用する出版物の性質を制限しようとはしていない。どちらかといえば、専門的なものを作成するためのモジュラー アプローチを指定することにより、例えば、オーディオブック制作など、出版物の特定分野のニーズに適応できるように設計されている。
この仕様は、様々なユーザー エージェント アーキテクチャを容易にすることも意図している。従来のウェブ ユーザー エージェント(ブラウザー)は出版物マニフェストを消費できることが期待されるが、これにより、(例えば、スタンドアロンやユーザー エージェント内で実行されているアプリケーション、又は独自のユーザーインターフェイスを包含する出版物など)ユーザー エージェントの他の種類の機能が制限されることはない。
この仕様は、ユーザー エージェントがマニフェスト形式を使用する出版物をレンダリングする方法を定義しない。
マニフェストの正規の表現は、マニフェストを処理し、全ての可能な曖昧さを取り除き、別のソースから推測できる欠損した値を組み込むときにユーザー エージェントによって作成される内部データ構造である。
マニフェストで表現された情報は、曖昧さや欠損した情報がない場合、ユーザー エージェントによって作成された正規の表現と同等になる可能性がある。
用語のデジタル出版物は、マニフェスト フォーマットを使用するフォーマットで作成された出版物を指すために使用される。これらのフォーマットは、構造とコンテンツの要件が異なる場合がある。
マニフェストは、例えば有益なメタデータ、リソースのリスト、デフォルトの読み上げ順序など、出版物に関する構造化された情報を表現する。
この仕様の目的上、非空白は、テキスト コンテンツや値が空白文字正規化後の複数の文字から成り立つ要素、属性、又はプロパティを参照するために使用され、空白文字正規化のルールは、ホスト フォーマットごとに定義される。
規定ではないとマークされたセクションと同様に、この仕様書の全てのオーサリング ガイドライン、図、例及び注意は規定ではない。この仕様書の他の全ては規定である。
このドキュメントのキー ワード MAY、MUST、MUST NOT、OPTIONAL、RECOMMENDED、REQUIRED、SHOULD、SHOULD NOT は、ここに示すように BCP 14 [RFC2119] [RFC8174] で説明されているように解釈され、すべての大文字で表示される。
このセクションは規定ではない。
デジタル出版物は、JSON-LD [json-ld] の特定の形(リンクトデータの JSON [ecma-404] のバリアント)を使用して表現されたプロパティのセットを提供するところのマニフェストで記述される。
マニフェストのプロパティは、ユーザー エージェントが出版物の処理とレンダリングに必要な基本情報を記述する。理解を容易にするために、これらのプロパティは次のように分類される。
リソース分類プロパティは、例えば、リソースのリストやデフォルトの読み上げ順序など、リソースの共通セットを記述又は識別する。これらのプロパティは、例えば、HTML ドキュメント、画像、スクリプト、及びメタデータ レコードなど、複数のリソースを参照する。
マニフェストは、リンク リレーションを使用してデジタル出版物の主要なリソースもまた識別する。これらの関係は、(例えば、目次とリソース リストで見つかるリンクなど)LinkedResource
オブジェクトの rel
プロパティに適用される。
これらの関係が識別するリソースのタイプは、次のように分類される。
有益なリソースは、例えば、プライバシー ポリシー、アクセシビリティ レポート、又はプレビューなど、出版物に関する追加の情報を含むリソースである。
これらの分類は、この仕様以外には関係ない(つまり、プロパティは実質的にマニフェストでグループ化されていない)。
この仕様は、[json-ld] の特定の「形状」として出版物マニフェストを定義する。つまり、マニフェストは、JSON-LD 構文によって提示される全ての可能性とは対照的に、この仕様で定義されている構文構造のみを使用して表現するべきである(SHOULD)。
この形状は、非公式に、この仕様で定義されている制約を表す JSON スキーマ [json-schema] を介しても定義されている。このスキーマは、https://github.com/w3c/pub-manifest/blob/master/schema/publication.schema.json で管理されている。
出版物マニフェストは、多数のオーサリングの柔軟性とコンパクトなオーサリング表現もある。例えば、オブジェクト タイプは、欠落しているときは正規化中に自動的に生成されるため、いつも明示的に作成する必要はない(詳細は、§ 2.7.1.4 明示的及び暗黙的なオブジェクトを見よ)。マニフェストデータの正規の表現は、個別に定義される。 詳細は、§ 2.3 Web IDL を見よ。
結果として、ユーザー エージェントは完全な JSON-LD プロセッサである必要はない。ユーザー エージェントは、マニフェストの特定の形状を読み取り、データを取り込むことができるだけでよい。
マニフェスト プロパティ、特に、表現的プロパティとして分類されるプロパティは、主に schema.org とそのホストされた拡張機能 [schema.org] から取得される。結果として、これらのプロパティは、schema.org から構文とセマンティクスを継承し、マニフェストのオーサリングが schema.org のオーサリングと互換性を持つ。
マニフェスト項目が schema.org プロパティに対応するとき、そのプロパティ定義はマッピングを識別し、(例えば、CreativeWork や Book など)括弧内に定義タイプを包含する。
さらに、schema.org は、発行に関連するけれども、この仕様では言及されていない多数のプロパティを包含している。これらのプロパティは、このドキュメントが、マニフェスト アイテムの最小限のセットのみを定義しているので、マニフェストで使用してもよい(MAY)。
追加の schema.org プロパティを使用するとき、マニフェストで指定された出版物のタイプに対して有効であることを確保されたい。語彙で使用される継承モデルの結果として、プロパティはしばしば多くの schema.org タイプを利用可能だが、全てのプロパティが全てのタイプに利用可能ではない。どのタイプがどのプロパティを受け入れるかの詳細は、[schema.org] を参照されたい。
追加の schema.org プロパティの使用に関する詳細は、§ 2.6 出版物タイプ及び § 2.7.4.2 追加のマニフェスト プロパティも利用可能である。
次のプロパティは、マニフェストに設定しなければならない(MUST)。
他の全てのプロパティとリソースの関係の優先順位はオプションだが(OPTIONAL)、マニフェスト フォーマットの実装によって変更されてもよい(MAY)。
一部のプロパティは、明示的にオーサリングされていないときは代替情報からコンパイルされるため、暗黙的に必要である。詳細は、§ 2.3 Web IDL を見よ。
デジタル出版物のマニフェストは [json-ld] として作成されるが、ユーザー エージェントはプロパティを利用するために、任意の言語にすることができるところの、正規の表現にあるこの情報を処理する。
開発者向けのマニフェスト フォーマットを単純にするため、この仕様は、ウェブ インタフェース記述言語(Web IDL) [webidl-1] — PublicationManifest
辞書を使用して、マニフェストで採用されたデータ構造の抽象表現を定義する。
この定義は、マニフェストの各要素に期待される名前、データ型、及び可能な制限を表している。しかしながら、一般的な Web IDL 定義とは異なり、ユーザー エージェントは、API としてマニフェストの情報を公開することは想定されていない。Web IDL 言語は、データモデルの抽象化を提供するためだけに選択される。
PublicationManifest
辞書の必須要素は、ユーザー エージェントが、(例えば、タイトルや読み上げ順序からなど)一部のプロパティの明示的な宣言がない場合、他のソースからの情報をコンパイルすることが予想されるため、マニフェストの必須要素と完全には一致しない。
デジタル出版物を作成するために、Web IDL の定義を理解する必要はない。オーサリング要件は、次のセクションで定義される。
PublicationManifest
辞書dictionaryPublicationManifest
{ required sequence<DOMString>type
; DOMStringid
; booleanabridged
; sequence<DOMString>accessMode
; sequence<DOMString>accessModeSufficient
; sequence<DOMString>accessibilityFeature
; sequence<DOMString>accessibilityHazard
;LocalizableString
accessibilitySummary
; sequence<CreatorInfo
>artist
; sequence<CreatorInfo
>author
; sequence<CreatorInfo
>colorist
; sequence<CreatorInfo
>contributor
; sequence<CreatorInfo
>creator
; sequence<CreatorInfo
>editor
; sequence<CreatorInfo
>illustrator
; sequence<CreatorInfo
>inker
; sequence<CreatorInfo
>letterer
; sequence<CreatorInfo
>penciler
; sequence<CreatorInfo
>publisher
; sequence<CreatorInfo
>readBy
; sequence<CreatorInfo
>translator
; sequence<DOMString>url
; DOMStringduration
; TextDirectiondirection
; sequence<DOMString>inLanguage
; DOMStringdateModified
; DOMStringdatePublished
; ProgressionDirectionreadingProgression
= "ltr"; required sequence<LocalizableString
>name
; required sequence<LinkedResource
>readingOrder
; sequence<LinkedResource
>resources
= []; sequence<LinkedResource
>links
= []; }; enumTextDirection
{ "ltr
", "rtl
", "auto
" }; enumProgressionDirection
{ "ltr
", "rtl
" };
マニフェストは、指定された順序で、次の二つのコンポーネントを持つ JSON-LD コンテキスト [json-ld] を設定しなければならない(MUST)。
https://schema.org
https://www.w3.org/ns/pub-context
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
…
}
出版物コンテキストのドキュメントは、(例えば、creator プロパティが順序を維持するための要件など)Schema.org で定義されたプロパティに機能を追加する。
Schema.org はしばしば、http
URI スキームを使用して参照されるが、デフォルトとして安全な https
スキームを使用するように語彙は移行されてる。マニフェストで Schema.org を参照するときに https
を使用することは、この仕様において必須である(REQUIRED)。
(例えばタイトル、クリエイターなど)マニフェスト内の各自然言語プロパティ値は、デフォルトの自然言語があり、これは、(例えば、英語、フランス語、中国語など)表現される言語である。記述される自然なベース方向は、左から右かそれとも右から左の表示方向もまたある。
デジタル出版物のマニフェストは、ユーザー エージェントがメタデータの解釈及び提示するのを支援するために、これらの概念の両方を全体に(言語については個々の項目に)設定する機能を提供する。
自然言語マニフェスト プロパティのためのデフォルト言語は、language
キーワード [json-ld] を使用してコンテキストにグローバルの言語宣言を包含することによって設定される。これは、省略をするローカライズ可能な文字列に言語を提供するためだけでなく、マニフェストの処理中にローカライズ可能な文字列に単純な文字列値を展開するためにも使用する。
language
の値は、有効な言語タグ [bcp47] でなければならない(MUST)。
有効又は整形式の言語タグを要求する方が良いかどうかを判断するための未解決の問題がある。
グローバルの言語宣言は、存在するとき、出版物コンテキストに従わなければならない(MUST)。
デフォルトの言語とは異なり、デフォルトのテキスト方向は、現在、JSON-LD にこの機能が包含されていないため、コンテキストで指定できない。暫定措置として、この仕様は、グローバルのテキスト方向を定義するための direction
プロパティを定義する。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
direction
|
テキストのマニフェスト値のデフォルトの基本方向。 | ltr 、rtl 、又は auto のいずれか。 |
リテラル | (None) |
ベース言語の方向は、次の値のいずれかでなければならない(MUST)。
ltr
:テキスト値が、明示的に方向に関して左から右のテキストに設定されていることを示す。rtl
:テキスト値が、明示的に方向に関して右から左のテキストに設定されていることを示す。auto
:Unicode 双方向アルゴリズム [bidi] の規則に従って、テキスト値が強い指向性を持つ最初の文字の方向に、明示的な指向性を設定されることを示す。{
"@context" : [
"https://schema.org",
"https://www.w3.org/ns/pub-context",
{"language":"he"}
],
"direction" : "rtl"
}
デフォルト値は、グローバルの言語及びベース方向の宣言に指定されていない。
ローカライズ可能な文字列を使用して、マニフェスト内にある任意の自然言語値に対してローカルに言語を設定することができる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"author" : {
"type" : "Person",
"name" : {
"value" : "Marcel Proust",
"language" : "fr"
}
}
}
language
キーワード [json-ld] の値は、整形式の言語タグ [bcp47] でなければならない(MUST)。
そのような場合、ローカル宣言は、グローバル宣言より優先される。
特定の値に方向を明示的に設定することはできない。詳細は、§ D.1 JSON-LD の項目固有の指向性を参照されたい。
デジタル出版物のマニフェストは、type
キーワード [json-ld] を使用して出版物タイプを宣言する。タイプは任意の [schema.org] タイプにマッピングされてもよいが(MAY)、タイプが指定されていないとき、CreativeWork
がデフォルトと見なされる。
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type" : "CreativeWork",
…
}
例えば、Article
、Book
、TechArticle
、及び Course
など、CreativeWork
のより具体的なサブタイプを、CreativeWork
の代わり又は追加して使用できる。
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
}
各 schema.org タイプは、その使用に有効なプロパティのセットを定義する。マニフェストが、schema.org 対応プロセッサによって検証および処理できることを保証するために、マニフェストは、選択されたタイプに関連付けられたプロパティのみを含めるべきである(SHOULD)。
プロパティに複数のタイプが必要な場合、マニフェストに複数のタイプ宣言を包含してもよい(MAY)。
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type" : ["Book", "VisualArtwork"],
…
}
ユーザー エージェントは、宣言された schema.org タイプに対して有効でないマニフェストの処理を失敗するべきではない(SHOULD NOT)。
完全な CreativeWork
サブタイプのリストは、schema.org サイトを参照されたい。
このセクションは、出版物マニフェストのプロパティに使用できる値のカテゴリを説明する。
マニフェスト プロパティがリテラルのテキスト文字列を値として想定しているとき、(例えば、コード値や日付など、言語に依存しないもの)、その値は、[json] 文字列として表現されなければならない(MUST)。
例えば、オブジェクトに変換されるかもしれない他の値とは異なり、リテラル値はマニフェストの処理中に変更されない。
マニフェスト プロパティが値として数値を想定しているとき、その値は、[json] 数値として表現されなければならない(MUST)。
マニフェスト プロパティが値としてブールを想定しているとき、その値は、[ecmascript] ブール値(true
又は false
)として表現されなければならない(MUST)。
様々なマニフェスト プロパティは、[json] オブジェクトとして表現されることが想定される。通常、オブジェクトの使用が推奨されるが、次のセクションでは、コンテキストに応じてオブジェクトとして解釈される文字列値を使用することも許容される場合について説明する。オブジェクトへのテキスト値の正確なマッピングは、プロパティまたはオブジェクト定義の一部である。
マニフェスト プロパティが、その値としてローカライズ可能なテキスト文字列を想定しているとき、これらの値は、次のいずれかで表さなければならない(MUST)。
単一の文字列値は、value
プロパティが文字列のテキストであり、言語がマニフェスト内の他の情報から決定される暗黙のオブジェクトを表現する。
マニフェスト プロパティがエンティティを想定しているとき(つまり、創作の様々な側面に対して責任を持つ個人又は組織)、その値は、次のいずれかで表現されなければならない(MUST)。
CreatorInfo
オブジェクト。単一の文字列値は、name
プロパティが文字列のテキストであり、type
が Person [schema.org] として想定される CreatorInfo
オブジェクトのインスタンスを表現する。
マニフェスト プロパティが、ひとつ以上のリソースにリンクするとき、それは次のいずれかで表現しなければならない(MUST)。
LinkedResource
オブジェクトのインスタンスとして。文字列値は、url
プロパティが文字列値に設定されている暗黙の LinkedResource
オブジェクトを表す。
{
…
"resources" : [
"datatypes.svg",
{
"type" : "LinkedResource",
"url" : "test-utf8.csv",
"encodingFormat" : "text/csv",
"name" : "Test Results",
"description" : "CSV file containing the full data set used."
},
{
"type" : "LinkedResource",
"url" : "terminology.html",
"encodingFormat" : "text/html",
"rel" : "glossary"
}
]
}
URL は、デジタル出版物に関連付けられたリソースを識別するために使用される。プロパティが URL 値を想定するとき、それは有効な URL 文字列 [url] でなければならない(MUST)。
マニフェスト URL は、http
及び https
スキーマ [url] のみに制限される。ユーザー エージェントは、マニフェスト内の全ての URL を間接参照する必要はないが、URL はリソースを間接参照しなければならない(MUST)。
相対 URL 文字列の場合、これらは、ベース URL [url] を使用する絶対 URL 文字列に解決される。
相対 URL 文字列のベース URL は、次のように決定される。
結果として、埋め込まれたマニフェストの相対 URL 文字列は、ドキュメントがベース URL(つまり、ヘッダーの <base>
要素)を宣言しない限り、マニフェストを参照するドキュメントの URL に対して解決される。
URL は、[rfc3987] に従う Unicode 文字を使用できる。詳細は、HTML5 仕様の注を見よ。
識別子は、永続的及び明確な方法でウェブ コンテンツを参照するために使用される。URL、URN、DOI、ISBN、及び PURL は、全て、出版物で頻繁に使用される永続的な識別子の例である。
マニフェスト プロパティが、それぞれのタイプ(例えば、リテラル、オブジェクト、又は URL)のひとつ以上の値を許可するとき、それらの値は、[json] 配列として表現される。しかしながら、プロパティ値が、単一要素のとき、配列構文は省略してもよい(MAY)。
縮約のプロパティは、デジタル出版物が元のフォーマットから短くされているかどうかに関する情報を提供する。
Term | Description | Required Value | Value Type | [schema.org] Mapping |
---|---|---|---|---|
abridged
|
本が縮約版かどうかを示す。 | true かそれとも false 。 |
ブール |
abridged (Book) |
アクセシビリティ プロパティは、さまざまな好みの読書様式を持つユーザーによって消費されるデジタル出版物の適合性に関する情報を提供する。通常、これらのプロパティは、例えば、[wcag21] が提供しているような、確立されたアクセシビリティ基準に対する評価を補完する。
次のプロパティは、アクセシビリティ プロパティとして分類される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
accessMode
|
個人が情報を処理又は知覚するための人間の感覚知覚システムまたは認知機能。 | 複数のテキスト | リテラルの配列 |
accessMode (CreativeWork) |
accessModeSufficient
|
リソースにある全ての知的コンテンツを理解するのに十分な単一または結合されたアクセス モードのリスト。 | 複数の ItemList | リテラルの配列 |
accessModeSufficient (CreativeWork) |
accessibilityFeature
|
例えば、アクセシブルなメディア、代替手段、サポートされているアクセシビリティの強化など、リソースのコンテンツ機能。 | 複数のテキスト | リテラルの配列 |
accessibilityFeature (CreativeWork) |
accessibilityHazard
|
一部のユーザーにとって生理学的に危険であると称されるリソースの特性。 | 複数のテキスト | リテラルの配列 |
accessibilityHazard (CreativeWork) |
accessibilitySummary
|
他のアクセシビリティ メタデータと一貫性のある特定のアクセシビリティ機能又は欠陥についての人間が読める要約。 | テキスト | ローカライズ可能な文字列 |
accessibilitySummary (CreativeWork) |
それらのプロパティで使用する予定の値を包含する、これらのプロパティの詳細な説明は、[webschemas-a11y] が利用できる。
これらのプロパティで表現できる以上の情報が必要な場合、詳細なアクセシビリティ レポートへの参照も提供できる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "CreativeWork",
…
"accessMode" : ["textual", "visual"],
"accessibilityFeature" : ["alternativeText", "longDescription"]
"accessModeSufficient" : [
{
"type" : "ItemList",
"itemListElement": ["textual", "visual"]
},
{
"type" : "ItemList",
"itemListElement": ["textual"]
}
],
…
}
アドレスは、デジタル出版物のソースの場所を識別する URL である。それは、url
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
url
|
出版物の URL | 有効な URL 文字列 [url]。 | URL の配列 |
url (Thing) |
デジタル出版物は、ひとつ以上のアドレスを持ってもよいが(MAY)、全てのアドレスは、同じドキュメントで解決されなければならない(MUST)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/frankenstein",
…
}
デジタル出版物の正規の識別子プロパティは、デジタル出版物の一意の識別子を提供する。それは、id
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
id
|
出版物の優先バージョン。 | URL レコード [url] | 識別子 | (None) |
正規識別子の一意性を保証することは、この仕様のスコープ外である。実際に達成可能な一意性は、使用される識別子スキームの規則や識別子の割り当ての制御の程度などの要因に依存する。
正規識別子が、マニフェストに提供されていない、又は値が無効な URL である場合、デジタル出版物は正規識別子を持たない。ユーザー エージェントは、マニフェストに提供される他の識別子から正規の識別子を構築しようとしてはならない(MUST NOT)。
正規の識別子の仕様は、identifier
プロパティ [schema.org] 及び/又はそのサブタイプを使用して、追加の識別子のタイプを包含することで補完してもよい(MAY)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
…
}
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"id" : "urn:isbn:9780123456789",
"url" : "https://publisher.example.org/wuthering-heights",
…
}
クリエイターは、デジタル出版物の作成を担当する個人又は組織である。
次のプロパティは、クリエイターとして分類される。
クリエイターは、次のいずれかで表現しなければならない(MUST)。
Person
[schema.org] の名前をエンコードした [json] 文字列として、または、Person
又は Organization
[schema.org] のインスタンス。単一の文字列値は、name
プロパティがその文字列値に設定されている [schema.org] Person
の省略形である。(§ 2.7.1.4.2 エンティティもまた見よ。)
[schema.org] Person
又は Organization
タイプから クリエイター情報の各セットをコンパイルするとき、ユーザー エージェントは、利用可能なとき、CreatorInfo type で定義されているプロパティを保持しなければならない(MUST)。
マニフェストは、各タイプのクリエイターが複数含まれてもよい(MAY)。
{
"type" : "Book",
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
…
"url" : "https://publisher.example.org/alice-in-wonderland",
"author" : {
"type" : "Person",
"name" : "Lewis Carroll"
}
}
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"author" : [
"Jeni Tennison",
{
"type" : "Person",
"name" : "Gregg Kellogg",
},{
"type" : "Person",
"name" : "Ivan Herman",
"id" : "https://www.w3.org/People/Ivan/"
"identifier": "0000-0003-0782-2704",
}
],
"editor" : [
"Jeni Tennison",
{
"type" : "Person",
"name" : "Gregg Kellogg",
}
],
"publisher" : {
"type" : "Organization",
"name" : "World Wide Web Consortium",
"id" : "https://www.w3.org/"
}
…
}
グローバルの継続時間は、(例えば、オーディオブック又は一連のビデオクリップで構成される本など)時間ベースのデジタル出版物の全体の長さを示す。それは、duration
プロパティを使用して表される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
duration
|
時間ベースの出版物の全体的な継続時間。 | [iso8601] で定義された継続時間値。 | リテラル |
duration (Property) |
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type" : "Audiobook",
"id" : "https://example.org/flatland-a-romance-of-many-dimensions/",
"url" : "https://w3c.github.io/pub-manifest/experiments/audiobook/",
"name" : "Flatland: A Romance of Many Dimensions",
…
"duration" : "PT15153S",
…
}
関連する Wikiepedia ページには、ISO 継続時間構文の簡潔な説明がある。
最終変更日は、デジタル出版物が最後に更新されたときの日付である(つまり、マニフェストを包含する出版物のリソースに最後に変更が加えられたとき)。dateModified
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
dateModified
|
出版物の最終変更日。 | それぞれ、ISO 8601 日付又は日付時刻形式 [iso8601] の両方で表される Date や DateTime の値 [schema.org]。 |
リテラル | dateModified (CreativeWork) |
最終変更日は、(例えば、デジタル出版物で、サードパーティのコンテンツの参照ができる場合など)出版物に対する全ての変更を必ずしも反映するわけではない。ユーザー エージェントは、変更があるか、更新が必要かどうかを判断するために、個々のリソースの最終変更日をチェックするべきである(SHOULD)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"dateModified" : "2015-12-17",
…
}
発行日は、デジタル出版物が最初に発行された日付である。出版物のライフサイクルにおける静的なイベントを表し、後に続く版の識別及び比較ができる。datePublished
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
datePublished
|
出版物の作成日。 | それぞれ、ISO 8601 日付又は日付時刻形式 [iso8601] の両方で表される Date や DateTime の値。 |
リテラル | datePublished (CreativeWork) |
出版の正確な時期は、意図的な解釈の余地がある。それは、出版物が最初に利用可能になったとき、又は出版物が最終版と見なされる出版前の時点である可能性がある。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"datePublished" : "2015-12-17",
"dateModified" : "2016-01-30",
…
}
デジタル出版物は、少なくともひとつの自然言語を持ち、つまり、(例えば、英語、フランス語、中国語など)コンテンツが表現される言語である。マニフェストは、このコンセプトを設定するために次のプロパティを包含し、例えば、(辞書又はテキスト読み上げエンジンをプリロードするなど)ユーザー エージェントの動作に影響を与える可能性がある。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
inLanguage
|
出版物のデフォルト言語の値。 | ひとつ以上の整形式の言語タグ [bcp47]。 | リテラルの配列 |
inLanguage (Property) |
自然言語は整形式の言語タグ [bcp47] でなければならない(MUST)。
ユーザー エージェントが、出版物の言語を必要とし、マニフェストで使用できない、又は取得された値が整形式 [bcp47] でない場合、ユーザー エージェントは、正規の表現を生成するときに出版物の言語を決定してもよい(MAY)。この仕様は、そのような言語タグの作成方法を強制しない。ユーザー エージェントは次のことを行う。
ユーザー エージェントが、プライマリーの言語を要求し、複数の言語が指定されている場合、inLanguage
配列の最初のエントリーは、プライマリーとして認識されなければならない(MUST)。
それを構成する個々のリソースの言語から、出版物の言語を区別することは重要である。例えば、そのようなリソースが HTML にある場合、言語はこれらのリソースに設定する必要がある。出版物の言語は継承されない。
組み方向は、デジタル出版物内のあるリソースから次のリソースへの読書方向を確立する。メニュー位置、タッチ ジェスチャー、方向の切り替え、前後ページのタップ ゾーンなど、出版物レベルのインタラクションを調整するために使用される。組方向は、readingDirection
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
readingProgression
|
あるリソースから他のリソースへの組み方向。 | ltr 又は rtl のひとつ。 |
リテラル | (None) |
このプロパティの値は、次のいずれかでなければならない(MUST)。
ltr
:左から右rtl
:右から左デフォルト値は、ltr
である。readingProgression
が設定されていない場合、ユーザー エージェントは、正規の表現を生成するとき、デフォルト値を使用しなければならない(MUST)。
このプロパティは、個々のプライマリ リソースのレンダリングに影響しない。 あるリソースから別のリソースへの進行方向にのみ関係する。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/leviathan",
"readingProgression" : "ltr"
}
タイトルは、デジタル出版物の人間が可読可能な名前を提供する。name
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
name
|
出版物の人間が可読可能なタイトル。 | タイトルのための複数の項目。 | ローカライズ可能な文字列の配列 |
name (Thing) |
タイトルが、マニフェストに含まれておらず、デジタル出版物がタイトルを取得するための代替ルールを定義していない場合、ユーザー エージェントはタイトルを作成しなければならない(MUST)。この仕様は、このようなタイトルを生成するために使用するヒューリスティックを指定しない。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/heart-of-darkness",
"name" : "Heart of Darkness"
}
出版物のリソースは、このセクションで定義されているデフォルトの読み上げ順序、リソースのリスト、及びリンクを介して指定される。これらの一覧は、プライバシー ポリシーなどの情報リソースへの参照、及び目次などの構造リソースへの参照が含まれる。
特定のリソースの URL がこれらの一覧に複数現れてはならず(MUST NOT)、URL は、リスト内で繰り返してはならない(MUST NOT)ことに注意されたい。マニフェストは、これらのリスト内に自体の参照を包含してはならない(MUST NOT)。
デフォルトの読み上げ順序は、デジタル出版物リソースのセットを経由する特定の進行順序である。ユーザーは、コンテンツを通る経由する代わりの経路を辿る場合があるが、そのようなインスタンスが欠如している場合、デフォルトの読み上げ順序は、あるリソースから次のリソースへの予想される進行順序を定義する。
デフォルトの読み上げ順序は、readingOrder
プロパティを使用して表現する。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
readingOrder
|
デジタル出版物のリソースを介した進行の順序。 |
ひとつ以上の |
リンクの配列 | (None) |
readingOrder
プロパティの各要素は、次のいずれかで表現されなければならない(MUST)。
LinkedResource
オブジェクトのインスタンス。単一の文字列値は、url
プロパティが文字列のテキストである LinkedResource
オブジェクトのインスタンスを表現する。
項目の順序は、意味がある。
読み上げ順序を表現する URL は、フラグメント識別子に包含してはならない(MUST NOT)。非 HTML リソースは、encodingFormat
値が設定された LinkedResource
として表現されるべきである(SHOULD)。
デフォルトの読み上げ順序は、最低でもひとつのリソースを包含しなければならない(MUST)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/pride-prejudice",
"name" : "Pride and Prejudice",
"readingOrder" : [
"html/title.html",
"html/copyright.html",
"html/introduction.html",
"html/epigraph.html",
"html/c001.html",
…
]
}
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/pride-prejudice",
"name" : "Pride and Prejudice",
"readingOrder" : [{
"type" : "LinkedResource",
"url" : "html/title.html",
"encodingFormat" : "text/html",
"name" : "Title page"
},{
"type" : "LinkedResource",
"url" : "html/copyright.html",
"encodingFormat" : "text/html",
"name" : "Copyright page"
},{
…
}]
}
リソース リストは、デフォルトの読み上げ順序に掲載されていないデジタル出版物の処理又はレンダリングに使用される追加リソースを列挙する。resources
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
resources
|
出版物の処理又はレンダリングとして使用される追加の出版物リソースのリスト。 |
ひとつ以上の |
リンクの配列 | (None) |
resources
プロパティの各要素は、次のいずれかで表現されなければならない(MUST)。
LinkedResource
オブジェクトのインスタンス。単一の文字列値は、url
プロパティが文字列のテキストである LinkedResource
オブジェクトのインスタンスを表現する。
項目の順序は、意味がない。
URL は、フラグメント識別子を包含してはならない(MUST NOT)。encodingFormat
値が設定された LinkedResource
オブジェクトを使用することを推奨する(RECOMMENDED)。
リソース リストの完全性は、(例えば、オフラインで読む機能など)特定の読書状況におけるデジタル出版物のユーザビリティに影響する可能性がある。このため、デフォルトの読み上げ順序に掲載されているリソース以外の、パブリケーション内にある全ての構成リソースの包括的なリストを提供することを強く推奨する(RECOMMENDED)。
場合によっては、(例えば、ソースの深部からリソースを参照するサードパーティのスクリプトなど)これらのリソースの包括的なリストを簡単に得ることができない場合があるが、ユーザー エージェントは、(例えば、それらなしでオフラインになった場合など)これらのリソースの一部が出版物に属していると識別されない場合でも、出版物をレンダリングできるべきである(SHOULD)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
…
"resources" : [
"datatypes.html",
"datatypes.svg",
"datatypes.png",
"diff.html",
{
"type" : "LinkedResource",
"url" : "test-utf8.csv",
"encodingFormat" : "text/csv"
},{
"type" : "LinkedResource",
"url" : "test-utf8-bom.csv",
"encodingFormat" : "text/csv"
},{
…
}
],
…
}
リンク リストは、デジタル出版物の処理とレンダリングに必要ないリソースのリストを提供するために使用される(つまり、これらのリソースが利用できない場合でも、出版物の内容は影響を受けない)。リンクは、links
プロパティを使用して表現される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
links
|
出版物に関連付けられているが、処理又はレンダリングに必要ではないリソースのリスト。 |
ひとつ以上の |
リンクの配列 | (None) |
links
プロパティの各要素は、次のいずれかで表現されなければならない(MUST)。
LinkedResource
オブジェクトのインスタンス。単一の文字列値は、url
プロパティが文字列のテキストである LinkedResource
オブジェクトのインスタンスを表現する。
項目の順序は、意味がない。
encodingFormat
と rel
値が設定された LinkedResource
オブジェクトの使用を推奨する(RECOMMENDED)。
通常、リンクされたリソースは、処理又はレンダリングを補強又は強化するためにユーザー エージェントを利用可能にする。例えば、
リンクは、出版物のオンライン レンダリングで使用されるリソースを識別することもできるが、(例えば、サイズを最小化するなど)出版物がオフラインやパッケージ化されたときに包含する必要はない。これらは以下が含まれる。
links
のリストは、(例えば、スクリプト、画像、スタイル シートなど)リンクされたリソースをレンダリングに必要なリソースを包含するべきである(SHOULD)。
links
に掲載されたリソースは、デフォルトの読み上げ順序又はリソース リストに掲載してはならない(MUST NOT)。
ユーザー エージェントは、リンクされたリソースを無視してもよく(MAY)、出版物でそれらをオフラインにする必要はない。これらのリソースは、出版物をパッケージングするときに包含するべきではない(SHOULD NOT)。
マニフェストは、デジタル出版物の表示とレンダリングにおいてユーザー エージェントによって使用されるための基本的なプロパティのセットを提供するように設計されていますが、次の方法で拡張してもよい(MAY)。
どちらの方法も有効だが、リンクされたレコードの使用を推奨する(RECOMMENDED)。
この仕様は、追加プロパティがマニフェストの正規の表現においてユーザー エージェントによるコンパイル、保存、公開する方法を定義しない。ユーザー エージェントは、一部又は全ての拡張プロパティを無視してもよい(MAY)。
例えば、ONIX [onix] 又は BibTeX [bibtex] ファイルなど、レコードへのリンクを介してマニフェストを拡張するには、LinkedResource
オブジェクトを使用して表現しなければならない(MUST)。
LinkedResource
の rel
値は、IANA 又は他の組織によって定義された関連する識別子を包含するべきであり(SHOULD)、リンク レコードに記述的なメタデータが含まれる場合、describedby
(IANA)識別子を包含しなければならない(MUST)。encodingFormat
値は、該当する場合、その特定のタイプのレコードに対して定義された MIME メディア タイプ [rfc2046] を使用しなければならない(MUST)。リンクされたレコードが、出版物の一部である場合、リソース リストに包含しなければならない(MUST)(つまり、明示的なマニフェスト以上のものに必要である)。それ以外の場合、リンク リストに包含しなければならない(MUST)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/time-machine",
"name" : "The Time Machine",
"links" : [{
"type" : "LinkedResource",
"url" : "https://www.publisher.example.org/time-machine/onix.xml",
"encodingFormat" : "application/onix+xml",
"rel" : "describedby"
},{
…
}],
…
}
application/onix+xml
MIME タイプは、このドキュメントの執筆時点ではまだ IANA によって登録されておらず、説明だけを目的として例に包含されている。
追加のプロパティは、マニフェストに直接包含してもよい(MAY)。これらのプロパティは、[schema.org] や [dcterms] のようなパブリック スキームから取得し、可能な限りコントロールされた語彙から値を使用することを推奨する(RECOMMENDED)。プロプライエタリの用語を使用してもよいが(MAY)、コンテキストの一部として定義されたプレフィックスと伴に、そのような用語を、コンパクト IRI [json-ld] を使用して包含することを推奨する(RECOMMENDED)。
[dcterms] のプレフィックス定義 dc
は、[schema.org] のコンテキスト ファイルに包含されている。これは、プレフィックスを明示的に追加する必要がないという意味である。同じことが他に多くある公の語彙にも当てはまる。詳細は、schema.org context file を見よ。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"copyrightYear" : "2015",
"copyrightHolder" : "World Wide Web Consortium",
…
}
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "CreativeWork",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"dc:subject" : ["Web data description languages","Data integration","Data Exchange"],
…
}
アクセシビリティ レポートは、様々な好みの読書方法を持つユーザーが消費するためのデジタル出版物の適合性に関する情報を提供する。通常、これらのレポートは、例えば、[wcag21] で提供されているものなど、確立されたアクセシビリティ基準に対する評価の結果を識別し、出版物のユーザビリティを決定する重要な情報源である。
アクセシビリティ レポートは、accessibility-report
リンク リレーションを使用して識別する。
現在、accessibility-report
用語は、IANA のリンク リレーションに登録されていないが、ワーキング グループはそれを追加する予定である。
マニフェストは、出版物が利用できるとき、アクセシビリティ レポートへのリンクを包含するべきである(SHOULD)。レポートを、出版物のリソースとして包含することが推奨される(RECOMMENDED)。
アクセシビリティ レポートは、例えば、HTML [html] など、人間が可読可能なフォーマットで提供されることも推奨される(RECOMMENDED)。例えば、schema.org [schema.org] で提供するなど、機械処理可能なメタデータでこれらのレポートを増補することも、推奨される(RECOMMENDED)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/sherlock-holmes",
"name" : "The Adventures of Sherlock Holmes",
"links" : [{
"type" : "LinkedResource",
"url" : "https://www.publisher.example.org/sherlock-holmes-accessibility.html",
"rel" : "accessibility-report"
},{
…
}],
…
}
全てのデジタル出版物を、(例えば、サイトの登録ユーザーに制限される場合など)全てのユーザーが利用できるわけではない。このような場合、出版社は、完全版へのアクセスをユーザーへ促すために、コンテンツのプレビューを提供することがある。
プレビューは、preview
リンク リレーション [iana-link-relations] を使用して識別される。
プレビューは、外部に配置又はデジタル出版物のリソースとして包含してもよい(MAY)。
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/jekyll-hyde",
"name" : "The Strange Case of Dr. Jekyll and Mr. Hyde",
"links" : [{
"type" : "LinkedResource",
"url" : "preview.mp3",
"encodingFormat" : "audio/mpeg",
"rel" : "preview"
},{
…
}],
…
}
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/jekyll-hyde",
"name" : "The Strange Case of Dr. Jekyll and Mr. Hyde",
"links" : [{
"type" : "LinkedResource",
"url" : "https://publisher.example.org/jekyll-hyde-preview.html",
"encodingFormat" : "text/html",
"rel" : "preview"
},{
…
}],
…
}
多くの場合、ユーザーは、自分について収集される情報、その情報の保存方法や保存期間、個人を特定可能か、及び消去方法を、知り、制御する法的権利を持つ。従って、このようなプライバシーに対する懸念に対処する声明を包含することは、デジタル出版物の出版の重要な部分である。情報が収集されない場合でも、このような宣言は、ユーザーがコンテンツに対する信頼が高まる。
プライバシー ポリシーへのリンクは、この目的のために、マニフェストへ包含できる。プライバシー ポリシーは、出版物のリソースとして包含することを推奨する(RECOMMENDED)。
プライバシー ポリシーは、privacy-policy
リンク リレーション [iana-link-relations] を使用して識別される。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
…
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
…
"links" : [{
"type" : "LinkedResource",
"url" : "https://www.w3.org/Consortium/Legal/privacy-statement-20140324",
"encodingFormat" : "text/html",
"rel" : "privacy-policy"
},{
…
}],
…
}
カバーは、ユーザー エージェントが、(例えば、図書館や本棚で、又は最初に出版物を読み込むときになど)デジタル出版物を提示するために使用できるリソースである。
カバーは、cover
リンク リレーションによって識別される。url
用語で表現される URL は、フラグメント識別子を包含してはならない(MUST NOT)。
現在、cover
用語は、IANA リンク リレーションに登録されていないが、ワーキング グループは、それを追加する予定である。
カバーが画像フォーマットの場合、title
と description
が提供されるべきである(SHOULD)。ユーザー エージェントは、アクセシビリティが必要なとき、代替テキストと説明を提供するためにこれらのプロパティを使用できる。
複数のカバーを、(例えば、様々なデバイスの画面のための代替フォーマットとサイズを提供するためなど)マニフェストから参照してもよい(MAY)。複数のカバーが指定されている場合、各インスタンスは、(例えば、異なるフォーマット、高さ、幅、又は関係など)ユーザビリティを判断することがユーザー エージェントができるように、少なくともひとつの一意のプロパティを定義しなければならない(MUST)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/adam-bede",
"name" : "Adam Bede",
"resources" : [{
"type" : "LinkedResource",
"url" : "cover.html",
"encodingFormat" : "text/html",
"rel" : "cover"
},{
…
}],
…
}
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick",
"resources" : [{
"type" : "LinkedResource",
"url" : "whale-image.jpg",
"encodingFormat" : "image/jpeg",
"rel" : "cover",
"name" : "Moby Dick attacking hunters",
"description" : "A white whale is seen surfacing from the water to attack a small whaling boat"
},{
…
}],
…
}
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/gullivers-travels",
"name" : "Gulliver's Travels",
"resources" : [{
"type" : "LinkedResource",
"url" : "lilliput.jpg",
"encodingFormat" : "image/jpeg",
"rel" : "cover"
},{
"type" : "LinkedResource",
"url" : "lilliput.svg",
"encodingFormat" : "image/svg+xml",
"rel" : "cover"
},{
…
}],
…
}
ページ リストは、デジタル出版物内の静的なページ分割の位置のリストを含むナビゲーション支援である。
ページ リストは、pagelist
リンク リレーションによって識別される。ページ リストを識別するリソースの url
用語で表現された URL は、フラグメント識別子を包含してはならない(MUST NOT)。
現在、pagelist
用語は、IANA リンク リレーションに登録されていないが、ワーキング グループは、それを追加する予定である。
ページ リストへのリンクは、リンク リストに指定してはならない(MUST NOT)。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/metamorphosis",
"name" : "Metamorphosis",
"resources" : [{
"type" : "LinkedResource",
"url" : "toc_file.html",
"rel" : "pagelist"
},{
…
}],
…
}
目次は、デジタル出版物の主要な構造セクションへのリンクを提供するナビゲーション支援である。
目次は、contents
リンク リレーション [iana-link-relations] よって識別される。目次を識別するリソースの url
用語で表現される URL は、フラグメント識別子を包含してはならない(MUST NOT)。
目次へのリンクは、リンク リストに指定してはならない(MUST NOT)。
目次の推奨される(RECOMMENDED)構造と処理モデルは、§ B. 機械処理可能な目次で定義される。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"type" : "Book",
…
"url" : "https://publisher.example.org/ilprincipe",
"name" : "Il Principe",
"resources" : [{
"type" : "LinkedResource",
"url" : "toc_file.html",
"rel" : "contents"
},{
…
}],
…
}
この仕様で定義されている以上の追加の関係を表現する必要がある場合、rel
プロパティは、次のいずれかで拡張できる。
[iana-relations] からの関連の使用を、推奨する(RECOMMENDED)。
デジタル出版物フォーマットが、マニフェストの発見にリンクを使用する場合、リンクは、次のフォーマットのひとつ又は両方を使用しなければならない(MUST)。
rel
のパラメーターに値「publication
」が設定された HTTP Link
ヘッダー フィールド [rfc5988]。
Link: <https://example.com/webpub/manifest>; rel=publication
rel
属性に値「publication
」が設定された link
要素 [html]。
<link href="https://example.com/webpub/manifest" rel="publication"/>
マニフェストが、HTML ドキュメントに埋め込まれているとき、リンクは、マニフェストを含む script
要素を参照するフラグメント識別子を包含しなければならない(MUST)(§ 3.2 埋め込みを見よ)。
<link href="#example_manifest" rel="publication">
…
<script id="example_manifest" type="application/ld+json">
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
…
}
</script>
デジタル出版物フォーマットで、マニフェストを HTML ドキュメントに埋め込むことができるとき、マニフェストは、type
属性が application/ld+json
に設定されている [json-ld] script
要素 [html] に包含しなければならない(MUST)。
<script type="application/ld+json">
{
…
}
</script>
デジタル出版物フォーマットは、(例えば、そのマニフェストは、制限された名前及び/又は場所の使用を介して発見できるなど)マニフェストへのリンクや埋め込みを伴わないマニフェストを発見する代替方法を定義してもよい(MAY)。この仕様書は、そのようなメソッドに制限を追加しない。
このセクションは規定ではない。
(例えば、オーディオブック、学術出版物など)出版物のコミュニティは、モジュール仕様の用語を持つマニフェストのコアを拡張及び新しい要件の追加によって、プロファイルとも呼ばれる、拡張を定義することを推奨する。
デジタル出版物フォーマットがこの仕様と互換性を持つためには、次の条件を満たさなければならない(MUST)。
例えば、オーディオブック プロファイルによって追加される用語の例を追加することは、有効なとき、良い考えである。
正規の表現におけるマニフェストの処理に対する手順は、次のアルゴリズムによって与えられる。早期にアルゴリズムが終了する場合、マニフェストは有効ではない。
アルゴリズムは次の引数を取る。
このアルゴリズムは、マニフェストの発見及び取得方法を定義しない。そのための手順は、各デジタル出版物フォーマットによって定義される。
理解を助ける目的のために、このセクションの例は、JavaScript オブジェクトとして内部表現の構造を示す。ユーザー エージェントは、適切な言語と形式で結果の構造を処理及び内部化できる。
マニフェストの正規の表現を含むオブジェクトを処理する。
manifest は JSON [ecmascript] として text をパースした結果とする。パースがエラーを投げた場合、このアルゴリズムを終了する。
typeof(manifest)が Object
[ecmascript] でない場合、このアルゴリズムを終了する。
(§ 2.4 マニフェストのコンテキスト)manifest["@context"] が、値「https://schema.org
」及び「https://www.w3.org/ns/pub-context
」を(この順序で)含んでいない場合、エラーを発行し、このアルゴリズムを終了する。
manifest 内の各プロパティ term を反復し、必要に応じて次のようにその値を拡張する。複数の手順を適用してもよい(MAY)。
以下の手順は、term の想定された値のカテゴリによって異なる。値のカテゴリは、用語の名前だけでなく、使用されるオブジェクトにも依存する可能性があることに注意されたい。例えば、用語 url
の値カテゴリは、PublicationManifest
オブジェクトに使用されるときは(URLs の)配列だが、それ以外のときは単一の URL リテラルである。
このステップでは、変数 current は manifest[term] の値に設定され、適用可能な各変換によって更新される。
(§ 2.7.1.7 配列)term は配列を想定しているが、current に文字列又はオブジェクト value が含まれている場合、current を配列に変換し、それに value をプッシュする。
多くの用語は配列にこれらの値が必要であるが、便宜上、著者はひとつの要素配列の代わりに単一の値を使用できる。例えば、次の場合、
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"name" : "Et dukkehjem",
"author" : "Henrik Ibsen",
…
}
以下の結果が得られる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"name" : ["Et dukkehjem"],
"author" : ["Henrik Ibsen"],
…
}
(§ 2.7.1.4.2 エンティティ)term がエンティティを想定しているが、current の値が文字列 str の場合、次のプロパティを持つオブジェクトに current を変換する。
type – 値「Person
」の配列に設定する。
name – str に設定する。
typeof(current)が Array
[ecmascript] の場合、配列の各要素でこの手順を実行する。
著者、編集者などは、タイプ Person
のオブジェクトとして明示的に設計されることが想定されるが、便宜上、名前のみを指定する必要がある。例えば、次の場合、
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"author" : ["Ralph Ellison"],
…
}
このルールは、オブジェクトに文字列値を変換し、前の例は以下の結果を得られる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"author" : [{
"type" : ["Person"],
"name" : "Ralph Ellison"
}],
…
}
簡単にするために、ローカライズ可能な文字列への name の変換は、後の手順で説明される。
(§ 2.7.1.4.1 ローカライズ可能な文字列)term がローカライズ可能な文字列を想定し、current が文字列 str を含む場合、次のプロパティ持つオブジェクトに current を変換する。
value – str に設定する。そして、
language – 指定されているときは、manifest["@context"] の言語宣言の値に設定する。それ以外は省略される。
typeof(current)が Array
[ecmascript] の場合、配列の各要素でこの手順を実行する。
typeof(current)が Object
[ecmascript] の場合、オブジェクトの各プロパティでこの手順を実行する。
自然言語のテキスト値は、ローカライズ可能な文字列のオブジェクトとして明示的に設計されることが意図されているが、便宜上、単純な文字列にすることができる。例えば、言語情報がグローバル言語宣言を介して提供されていない場合、
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"name" : ["La Comédie humaine"],
…
}
以下の結果が得られる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"name" : [{
"value" : "La Comédie humaine"
}],
…
}
しかしながら、明示的な言語がマニフェストで提供されている場合、その言語はローカライズ可能な文字列オブジェクトに追加される。例えば、次の場合、
{
"@context" : [
"https://schema.org",
"https://www.w3.org/ns/pub-context",
{"language": "fr"}
],
"name" : ["La Comédie humaine"],
…
}
以下の結果が得られる。
{
"@context" : [
"https://schema.org",
"https://www.w3.org/ns/pub-context",
{"language": "fr"}
],
"name" : [{
"value" : "La Comédie humaine",
"language" : "fr"
}],
…
}
(§ 2.7.1.4.3 リンク)term がリソース分類プロパティ又は alternate
プロパティであり、current の配列における値の場合、次のプロパティを持つオブジェクトへ各文字列 str を変換する。
LinkedResource
」の配列に設定し、そして、リソース リンクは、タイプ LinkedResource
として明示的に設計されることを想定しているが、便宜上、絶対 URL 又は 相対 URL のみを指定する必要がある。例えば、次の場合、
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
…
"resources" : [
"css/book.css",
…
],
…
}
この手順においては、オブジェクトに文字列値を変換し、前の例では以下の結果が得られる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
…
"resources" : [{
"type" : ["LinkedResource"],
"url" : "css/book.css"
},
…
],
…
}
簡単にするために、相対パスから絶対パスへの変換は、後の手順で説明する。
(§ 2.7.1.5 URL)term が URL を想定し、current の値が絶対 URL 文字列ではない文字列である場合、base [rfc1808] の値を使用して値を解決する。
typeof(current)が、Array
[ecmascript] の場合、配列の各要素でこの手順を実行する。
typeof(current)が、Object
[ecmascript] の場合、オブジェクトの各プロパティでこの手順を実行する。
出版物マニフェスト内における全ての相対 URL は、絶対 URL を生成するためにベース値に対して解決する必要がある。
(§ 4.2 互換性の要件、拡張ポイント)プロファイルがプロファイル固有の用語の処理ステップを定義している場合、それらのステップはこの時点で実行される。
current の値に processed[term] を設定する。
必要に応じて、次のプロパティの document からデフォルトを追加する。
(§ 2.7.2.11 タイトル)processed["name"] が設定されていない、又はその値が空の文字列の場合、
新しいオブジェクト title を作成する。
この手順は、マニフェストに name
プロパティが指定されていないときに、document の title
要素のコンテンツを追加する。例えば、次の場合、
<html>
<head lang="en">
<title>The Golden Bough</title>
…
<script type="application/ld+json">
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
…
}
</script>
以下の結果が得られる。
{
"@context" : ["https://schema.org","https://www.w3.org/ns/pub-context"],
"name" : [{
"value" : "The Golden Bough",
"language" : "en"
}],
…
}
(§ 2.7.3.1 デフォルトの読み上げ順序)processed["readingOrder"] が設定されていない、又はその値が空の文字列か配列の場合、
document.URL が設定されていない場合、エラーを発行してこのアルゴリズムを終了する。
そうでなければ、オブジェクトを作成して document.URL の値にその url プロパティを設定する。空の配列に processed["readingOrder"] を設定してオブジェクトを追加する。
デジタル出版物が参照するドキュメントのみで構成されている場合、デフォルトの読み取り順序は省略でき、自動的に、その単一のリソースで構成される。
プロファイルがドキュメントのフォールバックを指定する場合、それらの手順はこの時点で実行される。
processed の次のプロパティでデータの整合性チェックを実行する。
エンティティの配列に想定される processed 内の各プロパティ term について、processed[term] の各値 entry に、name プロパティが設定されているかどうかをチェックする。設定されていない場合、processed[term] から entry を削除し、ワーニングを発行する。
ひとつ以上のプロパティがエンティティを想定しているオブジェクトを想定する current の全てのプロパティについて、再帰的にこのステップを繰り返す。
(§ 2.5.1 グローバルの宣言 及び § 2.5.2 項目固有の宣言)processed の全ての language プロパティが整形式 [bcp47] であることを再帰的にチェックし、検出された整形式でない値に対してワーニングを発行する。
(§ 2.5.1 グローバルの宣言)processed["direction"] が設定され、その値が必要な方向の値のいずれでもない場合、ワーニングを発行する。
(§ 2.6 出版物タイプ)processed["type"] 設定されていない又は空の値が含まれている場合、値「CreativeWork
」の配列にその値を設定し、ワーニングを発行する。
(§ 2.7.2.1 縮約)processed["abridged"] が設定されており、ブール値でない場合、ワーニングを発行する。
(§ 2.7.2.6 継続時間)processed["duration"] が設定されており、その値が [iso8601] に従う有効な継続時間の値でない場合、ワーニングを発行する。
(§ 2.7.2.7 最終変更日)processed["dateModified"] が設定されており、その値が [iso8601] に従う有効な日付又は日時でない場合、ワーニングを発行する。
(§ 2.7.2.8 発行日)processed["datePublished"] が設定されており、その値が [iso8601] に従う有効な日付又は日時でない場合、ワーニングを発行する。
(§ 2.7.2.9 出版物の言語)processed["inLanguage"] が設定されている場合、その配列における各値が整形式 [bcp47] であることをチェックし、検出された整形式でない値に対してワーニングを発行する。
(§ 2.7.2.10 組み方向)次のように processed["readingProgression"] を検証する。
ltr
」にその値を設定する。(§ 2.7.3 リソース分類プロパティ)processed の各リソース分類プロパティ term について、processed[term] の各オブジェクト P に P["url"] が設定されているかどうかを確認する。
設定されていない場合、processed[term] 配列から P を削除し、ワーニングを発行する。
そうでない場合、P["url"] が有効な URL [url] かどうかをチェックし、もし有効でない場合、ワーニングを発行する。
(§ A.1 LinkedResource
の定義)タイプ LinkedResource
想定している processed の各プロパティ term に対して、term["length"] が設定されており有効な数値でない場合はワーニングを発行する。
プロファイルがデータ検証チェックを指定している場合、これらの手順はこの時点で実行される。
エラー及びワーニング メッセージを報告する方法は、ユーザー エージェントに依存する。
マニフェストは JSON-LD を使用して表現されるため、その仕様に詳述されているプライバシーとセキュリティの考慮事項 [json-ld] は、マニフェストの全てのプロファイルに適用される。
プロファイルに関するいくつかの追加の一般的な考慮事項が包含される。
より明確なセキュリティとプライバシーの考慮事項は、デジタル出版物フォーマットの性質によって異なるため、詳細は各プロファイルに委ねられる。
LinkedResource
の定義この仕様は、LinkedResource
と呼ばれるリンクの新しいタイプを定義する。次のプロパティで構成される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
type
|
リソースのタイプ。任意 | ひとつ以上のテキスト。シーケンスは「LinkedResource 」を包含しなければならない(MUST)。 |
リテラルの配列 | (None) |
url
|
リソースの位置。必須。 | 有効な URL 文字列 [url]。追加の制限は、このタイプを受け入れるプロパティの定義を参照されたい。 | URL |
url
|
encodingFormat
|
(例えば、text/html など)リソースのメディア タイプ。任意。 |
MIME メディア タイプ [rfc2046]. | リテラル |
encodingFormat
|
name
|
項目の名前。任意。 | ひとつ以上のテキスト項目。 | ローカライズ可能な文字列の配列。 |
name
|
description
|
項目の説明。任意。 | テキスト。 | ローカライズ可能な文字列 |
description
|
rel
|
リソースと出版物の関連性。任意。 |
ひとつ以上の関連性。値は、IANA リンク レジストリ [iana-link-relations] 関連性のある関連用語かそれとも、適切なリンク レジスト項目が存在しない場合は特別に定義された URL。 |
リテラルの配列 | (None) |
integrity
|
整合性の検証を可能にするリソースの暗号化ハッシュ。任意。 | ひとつ以上の空白で区切られた整合性メタデータ [sri] のセット。値は、メタデータの定義 [sri] に準拠しなければならない(MUST)。 ユーザー エージェントがサポートすることを期待している暗号化ハッシュ関数のリストは、[sri] を参照されたい。 |
リテラル | (None) |
length
|
(おそらく分数)秒における時間ベースのメディア リソースの合計長。任意。 | 数字 | 数字 | (None) |
alternate
|
代替フォーマットでのリソースのひとつ以上の再形成への参照。 指定されたとき、 順序は重要ではない。 任意 ひとつ以上の、
項目の順序は、重要ではない。非 HTML リソースは、 |
|
リンクの配列 | (None) |
integrity
プロパティに対するユーザー エージェントのサポートは任意(OPTIONAL)だが、このプロパティを使用する暗号化ハッシュの比較をサポートするユーザーエージェントは、[sri] に従わなければならない(MUST)。
dictionary LinkedResource
{
required DOMString url
;
DOMString encodingFormat
;
sequence<LocalizableString
> name
;
LocalizableString
description
;
sequence<DOMString> rel
;
DOMString integrity
;
double length
;
sequence<LinkedResource
> alternate
;
};
CreatorInfo
の定義この仕様は、CreatorInfo
と呼ばれるクリエイターの新しいタイプを定義する。これは次のプロパティで構成される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
type
|
クリエイターのタイプ。任意。 | ひとつ以上のテキスト。シーケンスは、「Person 」又は「Organization 」を包含しなければならない(MUST)。 |
リテラルの配列 | (None) |
name
|
クリエイターの名前。必須。 | ひとつ以上のテキスト。 | ローカライズ可能な文字列の配列 |
name
|
id
|
クリエイターに関連付けられた正規の識別子。任意。 | URL レコーダー [url]。 | 識別子 | (None) |
url
|
クリエイターに関連付けられたアドレス。任意。 | 有効な URL 文字列 [url]。 | URL |
url
|
identifier
|
(例えば、ORCID など)クリエイターに関連付けられた識別子。任意。 | ひとつ以上のテキスト。 | リテラルの配列 |
identifier
|
ユーザー エージェントは、Schema.org で定義されたクリエーター プロパティの範囲を、上記の表よりも広く解釈してもよい(MAY)ことに注意されたい。
dictionary CreatorInfo
{
sequence<DOMString> type
;
required sequence<LocalizableString
> name
;
DOMString id
;
DOMString url
;
sequence<DOMString> identifier
;
};
LocalizableString
の定義この仕様は、LocalizableString
と呼ばれるローカライズ可能な文字列の新しいタイプを定義する。これは、次のプロパティで構成される。
用語 | 概要 | 必須の値 | 値のカテゴリ | [schema.org] マッピング |
---|---|---|---|---|
type
|
文字列のタイプ。任意。 | ひとつ以上のテキスト。シーケンスは、「LocalizableString 」を包含しなければならない(MUST)。 |
リテラルの配列 | (None) |
value
|
ローカライズ可能な文字列の値。必須。 | テキスト。 | リテラル | (None) |
language
|
値の言語。任意。 | 整形式の言語タグ [bcp47]。 | リテラル | (None) |
dictionary LocalizableString
{
sequence<DOMString> type
;
required DOMString value
;
DOMString language
;
};
このセクションは規定ではない。
ページ内及びサイト間のナビゲーションを容易にするために、HTML は、リンクのリストを表現するために nav
要素 [html] を使用する。デフォルトでは本質的に汎用ではあるが、nav
要素の目的は、role
属性 [html] の使用によって、より明確に識別することである。特に、[dpub-aria-1.0] 語彙の doc-toc
ロールは、デジタル出版物の目次として nav
要素を識別する。
識別可能な目次を包含することは、任意のデジタル出版物を生成するためのアクセシブルな方法だが、HTML マークアップの柔軟性のために、(例えば、任意のページから利用可能なカスタム ビューを提供するためなど)リンクの意味のある階層を抽出しようとするユーザー エージェントにとっての課題を提示する。様々な用途の目次が重複するのを避けるために、このセクションは、ユーザーエージェントの抽出に十分な構造を提供しながら、ヒューマン フレンドリーかつ一般的な用途の構文を定義する。
著者は、目次を構築するためのリスト(順序付きまたは順序なし)を選択できる。これらのリスト内の各リンクをアンカー タグ(a
要素)でタグ付けすることにより、ユーザー エージェントは、必要な情報を周囲のコンテンツ(補助)又は追加されているスタイル的なタグとを容易に区別できる。目次は、アクティブなリンク(href
属性を含む)と非アクティブなリンク(href
属性を除く)の両方で構成でき、(例えば、特定の見出しへのリンクを省略したり、 プレビュー内の特定のコンテンツへのリンクなど)目次の構成方法にさらなる柔軟性を提供できる。
目次は、[html] 要素(通常は nav
要素)を介して表現される。この要素は、role
属性 [html] の値「doc-toc
」 [dpub-aria-1.0] によって識別されなければならず(MUST)、その role
値を持つドキュメント ツリー順序 [dom] におけるドキュメントの最初の要素でなければならない(MUST)。
マニフェストは、目次を含むリソースを識別するべきである(SHOULD)。
nav
要素のコンテンツ モデルは、制限がないけれども、ユーザー エージェントは、次のマークアップ ガイドラインに従うときのみ、使用可能な目次を抽出できるだろう。
目次のタイトルはオプションであるが、必要なときにユーザー エージェントがプレースホルダー タイトルを生成するのを避けるために、タイトルの追加することを勧める。タイトルは、[html] h1
から h6
要素のいずれかを使用して指定される。最初のそのような要素のみがタイトルとして認識されることに注意されたい。見出し要素がリンクのリストの前に見つからない場合、ユーザー エージェントは、見出し要素が指定されていないと見なす。
nav
要素内で遭遇した最初の [html] ol
又は ul
リスト要素は、コンテンツへのリンクを定義するリストが含まれていると想定される。例えば、このリストは、アルゴリズムがその処理に関係のない無視する要素のため、たとえ div
要素にネストされていて発見されるだろう。しかしながら、内部コンテンツは評価されないため、リストはスキップする要素の内部に発生することはできない。
nav
要素にこれらの要素のいずれも含まない場合、ユーザー エージェントは(例えば、機械でレンダリングされたオプションは利用できないなど)使用可能な目次を含むものとしてデジタル出版物を登録しない。
目次がリンクのツリーと見なされる場合、リンクのリスト内における各リスト項目(li
要素)は、ひとつのブランチを表現する。これらの各ブランチは、ユーザーに提示するために名前とオプションの目的地を持つ必要があり、この情報は、ネストされていれば、リスト項目内で発見された最初 a
要素から取得される(繰り返しになるが、スキップする要素内の全ての a
要素は除外される。)
ブランチのリンクの目的地は、指定されているとき、a
要素の href
属性から取得される。この属性は、リンクが利用できない(例えば、プレビューなど)又は関連性がない(例えば、グループ化したヘッダーなど)場合、省略できる。コンテンツへのリンクを提供するとき、(rel
属性で)リンクされたドキュメントの関係及び(type
属性で)リンクされたリソースのメディア タイプを指定することも可能である。
ブランチにラベルを付ける a
要素を見つけた後、ユーザー エージェントは別のリスト要素(つまり、サブブランチ)のマークアップを調査を続ける。リストが見つかった場合、ネストされたブランチがもはや処理されなくなるまで、同様にリンクを抽出するために処理する。
誤った解釈を避けるために目次を解析するとき、要素の小さなセットは無視される。これらは、[html] セクショニング コンテンツ要素とセクショニング ルート要素である。これらが無視される理由は、独自のアウトラインを定義できるためである(つまり、自己完結型であり、必ずしもコンテンツリンクの構造に関連していない埋め込みコンテンツを表すことができる。)
隠された要素はユーザーによって直接アクセスされることを目的としていないため、hidden
属性が設定されている要素もスキップされる。
これらの要素は nav
要素に包含できるけれど、(たとえば、コンテンツへの全てのリンクを含むリスト アイテムの周りを section
要素をラップしないようにするなど)それらの中に重要なコンテンツを埋め込まないように注意する必要がある。
目次の抽出に関連せず、スキップされない全ての要素は、無視される。スキップする要素とは異なり、無視することは、ユーザー エージェントが関連コンテンツを検索し続けることを意味し、使用できるタグ付けに関して柔軟性が向上する。
このセクションは規定ではない。
このセクションは、nav
要素から目次を抽出するアルゴリズムを定義する。これは、DOM ツリーのノードを、ツリー順に walk することに関して定義されており、各ノードは、ウォーク中にそのノードが入ったとき及び出たときにアクセスされる。ノードがアクセスされるたびに、それは入力又は終了イベントをトリガーしていると見なすことができる。いくつかの手順では、ユーザーエージェントにコンテンツの処理方法の選択及び様々なプレゼンテーション モデルに柔軟性を提供する。
理解を助ける目的のために、このセクションの例は、JavaScript オブジェクトとして目次の構造を示す。ユーザー エージェントは、適切な言語と形式で結果の構造を処理及び内部化できる。
このアルゴリズムの目的のために、リスト要素は [html] ol
又は ul
要素のいずれかとして定義される。
次のアルゴリズムは、role
属性値 doc-toc
を使用して、ドキュメント順に最初の nav
要素をルートとする DOM サブツリーの walk のために適用しなければならない(MUST)。全ての説明は有益である。
toc は目次を表現するオブジェクトとし、次のように初期化する。
name
プロパティを作成し、空の文字列を設定する。entries
プロパティを作成し、空の配列を設定する。この手順は、目次のタイトルとブランチを保存する toc オブジェクトを初期化する。
スタックの初期化。
スタックは、まだ完了していないブランチを保持するために使用される。新しいサブブランチに遭遇すると、親を後で取得できるようにスタックへプッシュする。
現在の toc ブランチを null
を設定した変数にする。
現在の toc は、現在処理されている目次のブランチを表現するオブジェクトを保持するために使用される。
目次の構築元である nav
要素から始め、ツリー順で DOM 上を walk し、walk の入力及び終了するときに、各要素に対して次の最初の関連手順をトリガーする。
見出しコンテンツ要素を入力するとき。
次の手順を実行する。
スタックが空で、toc の name
プロパティが空の文字列である場合、次のいずれかのように name
プロパティを設定する。
(例えば、プレゼンテーション要素を削除し、全ての先頭と末尾の空白をトリミングした後など)name
の結果の値が空の文字列である場合、name
プロパティをプレースホルダー値かそれとも null
に設定する。
この手順は、目次の見出しを識別する。見出しは、toc name
プロパティの値が空の文字列の場合にのみ処理される(つまり、見出しはまだ検出されていない)。
ユーザー エージェントが見出し要素の子孫コンテンツに name
を設定するかそれとも、そこからテキスト文字列を生成するかは、(例えば、画像、MathML、ルビ、及び簡単にテキストへ変換できない他のコンテンツを保持するためなど)プレゼンテーションで子孫タグを再利用するかどうかによって異なる。
name
が空の文字列ではない、または null
の場合、すでに前の見出しと遭遇しているか、(例えば、見出しはリンクのリストをたどらないため、リストは既に処理されているなど)nav
要素に見出しがないことを示すコンテンツと遭遇している。
リスト要素を入力するとき
次の手順を実行する。
toc の name
プロパティが空の文字列の場合、name
を null
に設定する。
現在の toc ブランチが null
でない場合。
entries
プロパティが null
又は空でない配列の場合、要素を終了し、次の要素で処理を続行する。null
に設定する。そうでなければ、スタックが空の場合。
entries
プロパティが null
又は空でない配列の場合、要素を終了し、次の要素で処理を続行する。このアルゴリズムは、単一のブランチ又は nav
要素のルートで複数のリストを処理せず、そのため、リストと既に遭遇している場合(entries
プロパティにひとつ以上のブランチが含まれているか、null
に設定されている)、このリストはスキップされる。
リストと遭遇し、目次(toc
)にまだ名前がない場合(つまり、見出し要素と遭遇していない)、目次は見出しがないと想定される(つまり、目次の見出しはエントリの最初のリストの後に表示できない)。name
プロパティの値は、これ以上は見出しが適用されないため、空の文字列から null
に変更される。
リスト要素を終了するとき
スタックが空でない場合、スタックからオブジェクトを取り、それに現在の toc ブランチを設定する。
これは、全ての子ブランチが処理された後、現在の toc ブランチが親オブジェクトにリセットされる。
リスト項目要素を入力するとき場合
次の手順を実行する。
name
、url
、type
、及び rel
プロパティを作成し、空の文字列を設定する。entries
プロパティを作成し、空の配列を設定する。各リスト項目は目次の新しいブランチの候補を表現しているため、新しいブランチに遭遇すると、新しい空のオブジェクトが現在の toc ブランチに作成される。
このオブジェクトは、子孫の a
要素として情報が投入され、リストに遭遇する。
リスト項目要素を終了するとき
次の手順を実行する。
現在の toc ブランチの entries
プロパティが空の配列を含む場合、値を null
に設定する。
スタックがひとつ以上のエントリを含む場合。
entries
プロパティに空でない配列が含まれ、その name
プロパティが空の文字列である場合、その name
をプレースホルダ値又は null
に設定する。entries
プロパティが空の配列が含まれ、その name
プロパティが空の文字列の場合、現在の toc ブランチを null
に設定し、この処理手順を終了する。スタックの一番上にあるオブジェクトの entries
プロパティの配列に現在の toc ブランチを追加する。
そうでなければ、toc の entries
配列に現在の toc ブランチ内のオブジェクトを追加する。
現在の toc ブランチに null
を設定する。
リスト項目を終了すると、現在のブランチの処理が完了したことを示す。親の entries
配列にこのブランチを追加する前に、ブランチに名前及び/又はサブブランチがあるかどうかをテストする必要がある。名前はないがサブブランチがある場合、ブランチは保持される。ユーザー エージェントは、独自に作成のプレースホルダー値を提供するか、値を null に設定できる。名前またはブランチがない場合、無効になり破棄される。
ブランチをマージする場所を決定するために、スタックがチェックされる。スタックにオブジェクトがない場合、ルートの toc オブジェクトの entries
プロパティに追加される(つまり、最上位ブランチである)。そうでなければ、スタック内にある直前のオブジェクトの entries
プロパティに追加される。
最終の手順として、現在の toc ブランチは null
に戻されてリセットされる。
アンカー要素を入力し、現在の toc ブランチが null
でない場合。
次の手順を実行する。
現在の toc ブランチの name
プロパティが、空の文字列でない場合、何もしない。
そうでなければ
次のいずれかに現在の toc ブランチの name
プロパティを設定する。
(例えば、プレゼンテーション要素を削除し、先頭と末尾の空白を全てトリミングした後など)name
の結果の値が空の文字列の場合、name
プロパティを null
に設定する。
href
属性があり、属性の URL がデフォルトの読み上げ順序又はリソース リストのリソースで解決される場合、現在の toc ブランチの url
プロパティを値に設定する。そうでなければ、プロパティを null
に設定する。type
属性があり、先頭と末尾の空白をトリミングした後の属性の値が空の文字列でない場合、現在の toc ブランチの type
プロパティをその値に設定する。そうでなければ、プロパティを null
に設定する。rel
属性があり、先頭と末尾の空白をトリミングした後の属性の値が空の文字列でない場合、現在の toc ブランチの rel
プロパティをその値に設定する。そうでなければ、プロパティを null
に設定する。要素を終了し、次の要素で処理を続行する。
この手順は、ブランチの name
と url
プロパティの値を取得するためにアンカータグを処理する。
現在のブランチの名前がすでに定義されている場合、この要素の処理は終了する(つまり、単一のブランチにおける複数のリンクの処理を回避するため)。
ユーザー エージェントが a
要素の子孫コンテンツにエントリの name
を設定するかそれとも、そこからテキスト文字列を生成するかは、(例えば、画像、MathML、ルビ、及び簡単にテキストへ変換できない他のコンテンツを保持するためなど)プレゼンテーションで子孫タグを再利用するかどうかによって決まる。
href
属性を識別することに加え、この仕様の要件を満たすために、デジタル出版物に属するリソースを解決する必要がある。そうでない場合、ブランチは保持されるが、エントリはリンクできない。
リンクのターゲットに関する追加情報(リソースのタイプとその関係)も保持される。
セクショニング コンテンツ要素、セクショニング ルート要素、又は隠された属性を持つ要素を入力するとき。
要素を終了し、次の要素で処理を続行する。
セクショニング要素とセクショニング ルート要素は独自のアウトラインを定義できるため、それらに由来すると目次の生成に問題が生じる(つまり、直接関連しないコンテンツが含まれる場合がある)。結果として、子コンテンツが処理されることを防ぐために遭遇したとき、スキップされる。
そうでない場合:何もしない。
他の全ての要素について、この手順は、子孫要素の処理を継続できる。
DOM walk の完了後、toc の entries プロパティに空でない配列が含まれている場合、toc は機械処理された目次を表現する。
そうでなければ、デジタル出版物は、機械でレンダリングする目的で使用できる目次を持たない。
ルート toc オブジェクトの entries
配列にブランチが含まれていない場合(リストが、nav
要素で発見されないかそれともリストに、適合するリスト項目が含まれていないため)、アルゴリズムは利用可能な目次を作成しない。
このセクションは規定ではない。
シンプルな本のためのマニフェスト。このマニフェストの正規の表現の JSON コード化も利用できる。
{
"@context": ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type": "Book",
"url": "https://publisher.example.org/mobydick",
"author": "Herman Melville",
"dateModified": "2018-02-10T17:00:00Z",
"readingOrder": [
"html/title.html",
"html/copyright.html",
"html/introduction.html",
"html/epigraph.html",
"html/c001.html",
"html/c002.html",
"html/c003.html",
"html/c004.html",
"html/c005.html",
"html/c006.html"
],
"resources": [
"css/mobydick.css",
{
"type": "LinkedResource",
"rel": "cover",
"url": "images/cover.jpg",
"encodingFormat": "image/jpeg"
},{
"type": "LinkedResource",
"url": "html/toc.html",
"rel": "contents"
},{
"type": "LinkedResource",
"url": "fonts/STIXGeneral.otf",
"encodingFormat": "application/vnd.ms-opentype"
},{
"type": "LinkedResource",
"url": "fonts/STIXGeneralBol.otf",
"encodingFormat": "application/vnd.ms-opentype"
},{
"type": "LinkedResource",
"url": "fonts/STIXGeneralBolIta.otf",
"encodingFormat": "application/vnd.ms-opentype"
},{
"type": "LinkedResource",
"url": "fonts/STIXGeneralItalic.otf",
"encodingFormat": "application/vnd.ms-opentype"
}
]
}
埋め込みマニフェストの例。同じドキュメントのより複雑なバージョンだけでなく、マニフェストの正規の表現の JSON コード化も利用できる。
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Model for Tabular Data and Metadata on the Web</title>
<link href="#wpm" rel="publication" />
...
<script id="wpm" type="application/ld+json">
{
"@context" : ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type" : "TechArticle",
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"copyrightYear" : "2015",
"copyrightHolder" : "World Wide Web Consortium",
"creator" : ["Jeni Tennison", "Gregg Kellogg", "Ivan Herman"],
"publisher" : {
"type" : "Organization",
"name" : "World Wide Web Consortium",
"id" : "https://www.w3.org/"
},
"datePublished" : "2015-12-17",
"resources" : [
"datatypes.html",
"datatypes.svg",
"datatypes.png",
"diff.html",
{
"type" : "LinkedResource",
"url" : "test-utf8.csv",
"encodingFormat" : "text/csv"
},
{
"type" : "LinkedResource",
"url" : "test.xlsx",
"encodingFormat" : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
],
}
</script>
</head>
<body>
....
<section id="toc" role="doc-toc">
<h2 resource="#h-toc" id="h-toc" class="introductory">Table of Contents</h2>
<ul class="toc">
<li class="tocline"><a class="tocxref" href="#intro">
<span class="secno">1. </span>Introduction</a>
</li>
...
</ul>
</section>
...
</body>
</html>
オーディオブックのマニフェスト。このマニフェストの正規の表現の JSON コード化も利用できる。
{
"@context": ["https://schema.org", "https://www.w3.org/ns/pub-context"],
"type": "Audiobook",
"id": "https://librivox.org/flatland-a-romance-of-many-dimensions-by-edwin-abbott-abbott/",
"url": "https://w3c.github.io/wpub/experiments/audiobook/",
"name": "Flatland: A Romance of Many Dimensions",
"author": "Edwin Abbott Abbott",
"readBy": "Ruth Golding",
"publisher": "Librivox",
"inLanguage": "en",
"dateModified": "2018-06-14T19:32:18Z",
"datePublished": "2008-10-12",
"duration": "PT15153S",
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"resources": [
{
"rel": "cover",
"url": "http://ia800704.us.archive.org/9/items/LibrivoxCdCoverArt12/Flatland_1109.jpg",
"encodingFormat": "image/jpeg"
},{
"rel": "contents",
"url": "toc.html",
"encodingFormat": "text/html"
}
],
"readingOrder": [
{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_1_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1371,
"name": "Part 1, Sections 1 - 3"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_2_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1669,
"name": "Part 1, Sections 4 - 5"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_3_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1506,
"name": "Part 1, Sections 6 - 7"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_4_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1669,
"name": "Part 1, Sections 8 - 10"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_5_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1506,
"name": "Part 1, Sections 11 - 12"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_6_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1798,
"name": "Part 2, Sections 13 - 14"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_7_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1225,
"name": "Part 2, Sections 15 - 17"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_8_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1371,
"name": "Part 2, Sections 18 - 20"
},{
"url": "http://www.archive.org/download/flatland_rg_librivox/flatland_9_abbott.mp3",
"encodingFormat": "audio/mpeg",
"length": 1659,
"name": "Part 2, Sections 21 - 22"
}
]
}
自然なテキスト値の方向を設定することは、現在、JSON-LD [json-ld] では不可能である。右から左又は双方向のテキストを含むマニフェスト エントリを正しく処理するために、ユーザー エージェントは、最初の強い指向性のある文字のテキストをスキャンすることで、特定の自然言語値の基本方向を識別するべきである(SHOULD)。
最初の強力なヒューリスティックが、(例えば、ラテン語の頭字語で始まるアラビア語又はヘブライ語のスクリプトの文字列など)誤った結果を生成する状況では、著者は、文字列に ユニコード制御文字(U+200E LEFT-TO-RIGHT MARK 又は U+200F RIGHT-TO-LEFT MARK のいずれか)を先頭に追加できる。これにより、ヒューリスティックが適用されるとき、必要な基本方向が生成される。(§ D.2 双方向テキストの例を見よ。)
基本方向が識別されると、ユーザー エージェントは、Unicode 双方向アルゴリズム [bidi] に従って、自然言語値の適切なレンダリングと表示を決定しなければならない(MUST)。これは、基本方向を適用するため、表示する前に文字列の周りに追加のマークアップ又は Unicode フォーマットの文字をラップする必要がある。
著者が、埋め込まれたマニフェストと個別のリソースの両方として、マニフェスト又はマニフェスト テンプレートを使用する場合、埋め込みの場合に含まれる script
要素の干渉を避けるために、これらのプロパティを明示的に設定することを強く推奨する。
このセクションは規定ではない。
このセクションは、必要に応じて、消費者が期待する表示を生成できるように、Unicode フォーマット文字を双方向文字列に適用する方法を解説する。最初の強いヒューリスティックが誤った結果を生成する場合には、先頭にフォーマットする文字を文字列に生成すると、最初の強いヒューリスティックは文字列全体に対して正しい基本方向を生成する。
ラテン文字で始まる右から左への文字列は、U+200F RIGHT-TO-LEFT MARK を先頭に付ける必要がある。
メモリー内の文字の順序: | HTML היא שפת סימון. |
誤った表示を伝える: | HTML היא שפת סימון. |
フォーマット文字のあるソース コード: | "\u200FHTML היא שפת סימון." |
期待する表示を伝える: | HTML היא שפת סימון. |
アラビア文字で始まる左から右への文字列は、U+200E LEFT-TO-RIGHT MARK を先頭に付ける必要がある。
メモリー内の文字の順序: | 'سلام' is hello in Persian. |
誤った表示を伝える: | 'سلام' is hello in Persian. |
フォーマット文字のあるソース コード: | "\u200E'سلام' is hello in Persian." |
期待する表示を伝える: | 'سلام' is hello in Persian. |
このセクションは規定ではない。
次の表は、どこでマニフェスト プロパティの定義及び拡張されているのかを示す。
名前 | 出版物マニフェスト |
---|---|
accessMode
|
§ 2.7.2.2 アクセシビリティ |
accessModeSufficient
|
§ 2.7.2.2 アクセシビリティ |
accessibilityFeature
|
§ 2.7.2.2 アクセシビリティ |
accessibilityHazard
|
§ 2.7.2.2 アクセシビリティ |
accessibilitySummary
|
§ 2.7.2.2 アクセシビリティ |
artist
|
§ 2.7.2.5 クリエイター |
author
|
§ 2.7.2.5 クリエイター |
contributor
|
§ 2.7.2.5 クリエイター |
creator
|
§ 2.7.2.5 クリエイター |
dateModified
|
§ 2.7.2.7 最終変更日 |
datePublished
|
§ 2.7.2.8 発行日 |
duration
|
§ 2.7.2.6 継続時間 |
editor
|
§ 2.7.2.5 クリエイター |
id
|
§ 2.7.2.4 正規の識別子 |
illustrator
|
§ 2.7.2.5 クリエイター |
inker
|
§ 2.7.2.5 クリエイター |
inLanguage
|
§ 2.7.2.9 出版物の言語 |
letterer
|
§ 2.7.2.5 クリエイター |
link
|
§ 2.7.3.3 リンク |
name
|
§ 2.7.2.11 タイトル |
penciler
|
§ 2.7.2.5 クリエイター |
publisher
|
§ 2.7.2.5 クリエイター |
readBy
|
§ 2.7.2.5 クリエイター |
readingOrder
|
§ 2.7.3.11 デフォルトの読み上げ順序 |
readingProgression
|
§ 2.7.2.10 組み方向 |
resources
|
§ 2.7.3.2 リソース リスト |
translator
|
§ 2.7.2.5 クリエイター |
url
|
§ 2.7.2.3 アドレス |
このセクションは規定ではない。
次の表は、どこでリソースの関係の使用において定義されているのかを示す。
名前 | 出版物マニフェスト |
---|---|
accessibility-report
|
§ 2.8.1.1 アクセシビリティ レポート |
contents
|
§ 2.8.2.3 目次 |
cover
|
§ 2.8.2.1 カバー |
pagelist
|
§ 2.8.2.2 ページ リスト |
privacy-policy
|
§ 2.8.1.3 プライバシー ポリシー |
preview
|
§ 2.8.1.2 プレビュー |
このセクションは規定ではない。
編集者は、この仕様への貢献に対し、Publishing Working Group のメンバーに感謝の意を表したい。
ワーキング グループはまた、この仕様のために道を切り開いてくれた全ての努力に対し、Digital Publishing Interest Group のメンバーに感謝の意を表した。