Copyright © 2018 W3C® (MIT, ERCIM, Keio, Beihang). W3C liability, trademark and permissive document license rules apply.
This specification defines a collection of information that describes the structure of Web Publications so that user agents can provide user experiences tailored to reading publications, such as sequential navigation and offline reading. This information includes the default reading order, a list of resources, and publication-wide metadata.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.
This draft provides a preliminary outline of a Web Publication. Many details are under active consideration within the Publishing Working Group and are subject to change. The most prominent known issues have been identified in this document and links provided to comment on them.
This document was published by the Publishing Working Group as an Editor's Draft. Comments regarding this document are welcome. Please send them to public-publ-wg@w3.org (subscribe, archives).
Publication as an Editor's Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
This document is governed by the 1 February 2018 W3C Process Document.
This section is non-normative.
A Web Publication is a discoverable and identifiable collection of resources. Information about the Web Publication is expressed in a machine-readable document called a manifest, which is what enables user agents to understand the bounds of the Web Publication and the connection between its resources.
The manifest includes metadata that describe the Web Publication, as a publication has an identity and nature beyond its constituent resources. The manifest also provides a list of all the resources that belong to the Web Publication and a default reading order, which is how it connects resources into a single contiguous work.
A Web Publication is discoverable in one of two ways: resources either include a link to the manifest
(via an HTTP Link header or an HTML link
element [html]), or the manifest can
be loaded directly by a compatible user agent.
With the establishment of Web Publications, user agents can build new experiences tailored specifically for their unique reading needs.
This section is non-normative.
This specification only defines requirements for the production and rendering of valid Web Publications. As much as possible, it leverages existing Open Web Platform technologies to achieve its goal—that being to allow for a measure of boundedness on the Web without changing the way that the Web itself operates.
Moreover, the specification is designed to adapt automatically to updates to Open Web Platform technologies in order to ensure that Web Publications continue to interoperate seamlessly as the Web evolves (e.g., by referencing the latest published versions instead of specific dated versions).
Further, this specification does not attempt to constrain the nature of a Web Publication: any type of work that can be represented on the Web constitutes a potential Web Publication.
The specification is also intended to facilitate different user agent architectures for the consumption of Web Publications. While a primary goal is that traditional Web user agents (browsers) will be able to consume Web Publications, this should not limit the capabilities of any other possible type of user agent (e.g., applications, whether standalone or running within a user agent, or even Web Publications that include their own user interface). As a result, the specification does not attempt to architect required solutions for situations whose expected outcome will vary depending on the nature of the user agent and the expectations of the user (e.g., how to prompt to initiate a Web Publication, or at what point or how much of a Web Publication to cache for offline use).
We may want to write something here on the relationships...
This document uses terminology defined by the W3C Note "Publishing and Linking on the Web" [publishing-linking], including, in particular, user, user agent, browser, and address.
An identifier is metadata that can be used to refer to Web Content in a persistent and unambiguous manner. URLs, URNs, DOIs, ISBNs, and PURLs are all examples of persistent identifiers frequently used in publishing.
A manifest represents structured information about a Web Publication, such as informative metadata, a list of all resources, and a default reading order.
For the purposes of this specification, non-empty is used to refer to an element, attribute or property whose text content or value consists of one or more characters after whitespace normalization, where whitespace normalization rules are defined per the host format.
The general term URL is defined by the URL Standard [url]. It is used as in other W3C specifications, like HTML [html]. In particular, a URL allows for the usage of characters from Unicode following [rfc3987]. See the note in the HTML5 specification for further details.
A Web Publication is a collection of one or more resources, organized together through a manifest into a single logical work with a default reading order. The Web Publication is uniquely identifiable and presentable using Open Web Platform technologies.
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY, MUST, MUST NOT, RECOMMENDED, REQUIRED, SHOULD, and SHOULD NOT are to be interpreted as described in [RFC2119].
This specification defines two conformance classes: one for Web Publications and one for user agents that process them.
A Web Publication conforms to this specification if it meets the following criteria:
A user agent conforms to this specification if it meets the following criteria:
As the serialization of the manifest remains an open issue, specifics about how properties are compiled into the infoset remain under-specified. This includes, but is not limited to, what specific names the properties will have in the infoset, whether the names in the manifest will be the same as those in the infoset and/or whether mappings to properties from known vocabularies will be used.
The name "infoset" might change depending on feedback. Although this term has a different meaning for individuals familiar with XML, alternatives such as "properties" and "metadata" do not fully capture the nature or purpose of the collected information.
This section is non-normative.
A Web Publication is defined by a set of properties known as its information set (infoset). The infoset is logically divided into two sets of properties: those that describe the publication and those that express key structures. These classifications only exist for the purposes of understanding the function of the properties, however.
The infoset is both abstract and concrete. It is abstract in the sense that it represents a set of information that a user agent has to compile about the Web Publication, but it also becomes concrete when the user agent creates an internal representation of that information.
The infoset is primarily compiled from a Web Publication's manifest, whose serialization requirements are defined in . Some information can be obtained outside the manifest—fallback rules for properties defined in the following subsections allow a user agent to compile information that the author has not provided in the manifest, for example.
The requirements for the expression of infoset properties are as follows:
REQUIRED: address
REQUIRED: default reading order
These requirements reflect the current minimum consensus, though a number of issues remain open that could change whether an item is required or recommended. Refer to the property descriptions for more information.
An accessibility report provides information about the suitability of a Web Publication for consumption by users with varying preferred reading modalities. These reports typically identify the result of an evaluation against established accessibility criteria, such as those provided in [WCAG20], and are an important source of information in determining the usability of a Web Publication.
The infoset SHOULD include a link to an accessibility report when one is available for a Web Publication. It is RECOMMENDED that the report be included as a resource of the Web Publication.
It is also RECOMMENDED that the accessibility report be provided in a human-readable format, such as HTML [html]. Augmenting these reports with machine-processable metadata, such as provided in Schema.org[schema.org], is also RECOMMENDED.
Machine-readable accessibility metadata may be recommended in whatever format is used to externalize publication metadata (e.g., to ensure availability for search). Depending how this externalizing is done, adding machine-processable accessibility metadata to such a record could take precedence over, or complement, the accessibility record.
A Web Publication's address is a URL [url] that represents the primary entry page for the Web Publication. If this URL does not resolve to an HTML document [html], user agents SHOULD NOT provide access to it to users.
The referenced document SHOULD be a resource of the Web Publication. It can be any resource, including one that is not listed in the default reading order. This document MUST include a link to the manifest to ensure a bidirectional linking relationship (i.e., that user agents can also locate the manifest from the document at the address.
If the document is not a Web Publication resource, user agents SHOULD load the first document in the default reading order when initiating the Web Publication.
To improve the usability of Web Publications, particularly in user agents that do not support Web Publications, include navigation aids in the referenced document that facilitate consumption of the content, (e.g., provide a table of contents or a link to one).
The availability of the address does not preclude the creation and use of other identifiers and/or addresses to retrieve a Web Publication, whether in whole or in part.
A Web Publication's canonical identifier is a unique identifier that resolves to the preferred version of the Web Publication. The canonical identifier MUST be an address or a value that allows a one-to-one mapping to an address (e.g., a DOI [doi] can be resolved to a URL [url] via a DOI resolver). If a user agent cannot resolve the canonical identifier to an address, it SHOULD ignore the property.
If a Web Publication is hosted at more than one address, the canonical identifier allows a user agent to identify the shared relationship between the versions and to determine which of the available addresses is primary.
The canonical identifier is also intended to provide a measure of permanence above and beyond the Web Publication's address. Even if a Web Publication is permanently relocated to a new address, for example, the canonical identifier will provide a way of locating the new location (e.g., a DOI registry could be updated with the new URL, or a redirect could be added to the URL of the canonical identifier).
When assigned, the canonical identifier needs to be unique to one and only one Web Publication, independent of its address(es). Ensuring uniqueness is outside the scope of this specification, however. The actual uniqueness achievable depends on such factors as the conventions of the identifier scheme used and the degree of control over assignment of identifiers.
If the canonical identifier is a URL,
it can be used as the target of a "canonical" link [rfc6596] (e.g., a link
element [html] whose rel
attribute has the value canonical
or
an HTTP
Link
header field [rfc5988] similarly identified).
Is a canonical identifier necessary to call out explicitly in the infoset, or can it be handled by other metadata.
Creators are the individuals or entities responsible for the creation of the Web Publication.
The creator property SHOULD include the role the creator played in the creation of the Web Publication (e.g., 'author', 'illustrator', 'translator').
Each textual property in the Web Publication's infoset (e.g., title, creators) is Localizable [string-meta]. This means it is possible to assign:
ltr
: left-to-right;rtl
: right-to-left;auto
: direction is determined from the value of the property.The Web Publication's infoset MAY contain global language
and the base direction declarations using the same conventions (i.e., [bcp47] tags for
language, and the values ltr
/rtl
/auto
for base
direction). These are used as defaults for textual properties in the infoset, unless overwritten by the properties themselves.
These features make it possible to add the title of a publication in different languages, or repeat the creators’ names using different scripts.
User agents MUST NOT use the language and base direction outside the context of the manifest (e.g., in the processing or rendering of the Web Publication content). These values are not a replacement for such declarations in each resource as defined by its format.
If a user agent requires the language and one is not available in the infoset (globally or specifically for the property), or the obtained value is invalid, the user agent MAY attempt to determine the language. This specification does not mandate how such a language tag is created. The user agent might:
If a language tag cannot be determined, user agents MUST use the value "und
"
(undetermined). If the base direction cannot be determined, user agents MUST assume the value
auto
.
The last modification date is the date when the Web Publication was last updated (i.e., whenever changes were last made to any of the resources of the Web Publication, including the manifest).
This date does not necessarily reflect all changes to the Web Publication (e.g., third-party content could change without the author being aware). User agents SHOULD check the last modification date of individual resources to determine if they have changed and need updating.
The publication date is the date on which the Web Publication was originally published. It represents a static event in the lifecycle of a Web Publication and allows subsequent revisions to be identified and compared.
The exact moment of publication is intentionally left open to interpretation: it could be when the Web Publication is first made available online or could be a point in time before publication when the Web Publication is considered final.
The reading progression establishes the reading direction from one resource to the next within a Web Publication. The value of this property may be:
ltr
: left-to-right;rtl
: right-to-left;auto
: the user agent chooses the direction.The default value is auto
.
This information item has no effect on the rendering of the individual primary resources; it is only relevant for the progression direction from one resource to the other.
The reading progression of a Web Publication is used to adapt such publication level interactions as menu position, swap direction, defining tap zones to lead the user to the next and previous pages, touch gestures, etc.
The title provides the human-readable name of the Web Publication.
When specified in the infoset, the title MUST be non-empty.
If a user agent requires a title and one is not available in the infoset, the user agent MAY create one. This specification does not mandate how such a title is created. The user agent might:
title
element found in a resource in the default reading order;A user agent is not expected to produce a meaningful title [wcag20] for a Web Publication when one is not specified.
The default reading order is a specific progression through a set of Web Publication resources.
A user might follow alternative pathways through the content, but in the absence of such interaction the default reading order defines the expected progression from one resource to the next.
The default reading order MUST include at least one resource.
The default reading order is specified directly in the manifest. If the reading order consists of one single resource, namely the primary entry page of the Web Publication (i.e., the resource the user accesses to reach the manifest, see 5.2 Linking to a Manifest), the default reading order need not be specified in the manifest.
The resource list enumerates all resources that are used in the processing and rendering of a Web Publication (i.e., that are within its bounds) and that are not listed in the default reading order. This list is the definitive source that user agents have in determining which referenced resources belong to the Web Publication and which are external to it.
The completeness of the resource list will affect the usability of the Web Publication in certain reading scenarios (e.g., the ability to read the Web Publication offline). For this reason, it is strongly RECOMMENDED to provide a comprehensive list of all of the Web Publication's constituent resources beyond those listed in the default reading order.
In some cases, a comprehensive list of these resources might not be easily achieved (e.g., third-party scripts that reference resources from deep within their source), but a user agent SHOULD still be able to render a Web Publication even if some of these resources are not identified as belonging to the Web Publication (e.g., when it is taken offline without them).
If a user agent encounters a resource that it cannot locate in the resource list, it MUST treat the resource as external to the Web Publication (e.g., it might alert the user before loading, open the resource in a new window, or unload the current Web Publication and resume normal Web browsing).
This was not decided on the Toronto F2F, and is still open.
The list of extra resources enumerates all resources that are used in the processing and rendering of a Web Publication but are not within its bounds (i.e., are not listed in the default reading order or the resource list) but are, rather, external to the Web Publication.
The completeness of the resource list will affect the usability of the Web Publication in certain scenarios (e.g., the ability to access privacy policy information). For this reason, it is strongly RECOMMENDED to provide a comprehensive list of all of the Web Publication's external resources beyond those listed in the default reading order or resource list.
In some cases, a comprehensive list of these resources might not be easily achieved (e.g., third-party scripts that reference resources from deep within their source), but a user agent SHOULD still be able to render a Web Publication even if some of these resources are not identified as belonging to the Web Publication (e.g., when it is taken offline without them).
At this moment (see also #221 ) we have two "lists" of resources in the manifest, mirroring the infoset: reading order and list of resources. (In JSON, readingOrder
and resources
). How exactly do we represent a cover reference and/or the privacy policies? We did agree that we represent these in the manifest as external lists (see again #221 and also #222 for initial proposals), but we did not decide yet how exactly the mapping for cover is done.
The table of contents is a hierarchical list of links that reflects the structural outline of the major sections of the Web Publication. There are no requirements on the completeness of the table of contents, except that, when specified, it MUST include a link to at least one resource.
The table of contents is not specified directly in the manifest. Instead, the manifest SHOULD
provide a link to an HTML element in one of the resources (most
likely a nav
element [html]), with a role
attribute value set
to doc-toc
.
This question arises only if the table of contents is accepted: can a table of contents navigation element refer, via links, to any resource that is not listed in the default reading order?
The infoset SHOULD include a reference to a cover image. This image can be used by user agents to present the Web Publication to users (e.g., in a library or bookshelf, or when initially loading the Web Publication).
User agents SHOULD NOT use the cover image as the sole means of selecting or accessing Web Publications. A user agent SHOULD use the Web Publication's title and creators as text alternatives for such interfaces.
More than one cover image MAY be referenced from the infoset to provide alternative sizes and resolutions for different device screens.
A user agent MAY create a cover for a Web Publication if one is not present. This specification does not define requirements for the creation of such cover images (e.g., the user agent could use a placeholder image, generate an image dynamically, or incorporate properties of the infoset into a graphic, such as the title or creators).
This was discussed and proposed at the F2F meeting in Toronto, but no decision has been taken.
Users often have the legal right to know and control what information is collected about them, how such information is stored and for how long, whether it is personally identifiable, and how it can be expunged. Including a statement that addresses all such privacy concerns is consequently an important part of publishing Web Publications. Even if no information is collected, such a declaration increases the trust users have in the content.
To address this concern, a link to a privacy policy can be included in the infoset. It is RECOMMENDED that the privacy policy be included as a resource of the Web Publication.
It is RECOMMENDED that the privacy policy be provided in a human-readable format, such as HTML [html].
Refer to 10. Privacy for more information about privacy considerations in Web Publications.
https://w3c.github.io/wpub/#wp-privacy needs more clarity, and not be so general. Most of the privacy policy collection and enforcement is upstream from the document markup, except where the markup explicitly collects data.
The infoset is designed to provide a basic set of properties for use by user agents in presenting and rendering a Web Publication, but MAY be extended in the following ways:
User Agents MAY support additional properties but MUST NOT include unrecognized properties in the infoset. The use of linked records is RECOMMENDED whenever possible, as the use of native formats standardizes and simplifies processing by user agents.
A manifest is a serialization of a Web Publication's
infoset. The manifest is serialized using the
JSON [ecma-404], more specifically the JSON-LD [json-ld] format. The manifest can be
a separate JSON-LD file, or it can be part of an HTML resource using the script
element in HTML [html]. If the latter, the
type
attribute of the script
element MUST be set to
application/ld+json
.
<script id="example_manifest" type="application/ld+json">
{
...
}
</script>
Desciptive Properties in the Web Publication Manifest are based, wherever possible, on the terms defined by Schema.org [schema.org] (including hosted extensions of Schema.org). This means that the descriptive infoset properties are mapped to one or several Schema.org properties (inheriting their syntax and semantics).
Schema.org includes a large number of terms that, though relevant for publishing, are not mentioned in this Recommendation. Web Publication authors may use any of those; this document defines only the minimal set of infoset items, and their mapping to Schema.org when appropriate.
There are discussion on whether a best practices document would be created, referring to more schema.org terms. If so, it should be linked from here.
Structural Properties in the Web Publication Manifest use terms that refer to one or more external resources (images, script files, separate metadata files, etc.). These terms do not necessarily have a counterpart in Schema.org, and are therefore defined separately by this specification.
Values of structural properties are usually links to external resources, or an array thereof. Such a link may be expressed in one of two ways:
StructuredValue
that can be used to express, beyond the URL, the
media type and other characteristics of the target resource.{
...
"resources" : [
"datatypes.svg",
{
"@type" : "StructuredValue",
"url" : "test-utf8.csv",
"fileFormat" : "text/csv"
}
]
}
There will be continuous contacts with Schema.org to see whether some of the structural property terms should not be included in the core Schema.org hierarchy, or one of its extensions.
A Web Publication Manifest MUST start by setting the appropriate (JSON-LD) contexts. This context has two major components:
http://schema.org
;https://www.w3.org/ns/wpub.jsonld
Note that the latter may also add some features to terms defined in Schema.org.
An example for the latter is the requirement for the creator term to be order preserving.
As part of the continuous contacts with Schema.org the additional requirements defined in the WP specific context file may migrate to the core Schema.org.
In practice, this means that a Web Publication Manifest MUST begin with, at the minimum:
{
"@context" : ["http://schema.org", "https://www.w3.org/ns/wpub.jsonld"],
...
}
In some cases, this structure may have to be extended by additional, local information, see the 4.2.1.5.1 Default language and direction.
The manifest MUST also include a Publication Type. This MAY be mapped onto the
Schema.org CreativeWork
type, using
the @type
of JSON-LD [json-ld]. Schema.org also includes a number of more
specific types (see the list on the Schema.org
site) which include a type for Article, Book, or Course;
these may MAY also be used instead of CreativeWork
.
{
"@context" : ["http://schema.org", "https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book"
...
}
The current draft says:
The infoset SHOULD include a link to an accessibility report when one is available for a Web Publication. It is RECOMMENDED that the report be included as a resource of the Web Publication.
which suggests that the acceessiblity report is more a structural property (i.e., linking out to a full report) rather than descriptive. This is in contrast with the discussion in Toronto where accessibility was listed as a descriptive property
As defined in 3.3.1 Accessibility Report, the Web Publication Manifest MAY include accessibility metadata. These SHOULD be mapped on the family of accessibility terms, as expressed by Schema.org. (A more detailed description of these terms, as well as the possible values, are described on the WebSchemas Wiki site.) These terms are:
Term name with link to definition | Short description |
---|---|
accessMode
|
The human sensory perceptual system or cognitive faculty through which a person may process or perceive information. |
accessModeSufficient
|
A list of single or combined accessModes that are sufficient to understand all the intellectual content of a resource. |
accessibilityAPI
|
Indicates that the resource is compatible with the referenced accessibility API. |
accessibilityControl
|
Identifies input methods that are sufficient to fully control the described resource. |
accessibilityFeature
|
Content features of the resource, such as accessible media, alternatives and supported enhancements for accessibility. |
accessibilityHazard
|
A characteristic of the described resource that is physiologically dangerous to some users. |
accessibilitySummary
|
A human-readable summary of specific accessibility features or deficiencies, consistent with the other accessibility metadata but expressing subtleties such as “short descriptions are present but long descriptions will be needed for non-visual users” or “short descriptions are present and no long descriptions are needed.” |
Note that the author MAY also provide a reference to a more detailed Accessibility Report, beyond the accessibility information expressed by these terms.
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"accessMode" : ["textual", "visual"],
"accessModeSufficient" : ["textual"],
...
}
As described in 3.3.2 Address, a Web Publication's
address is a URL [url] that
represents the primary entry page for the Web Publication. This infoset item MUST be mapped
on the url
term.
Term name with link to definition | Short description |
---|---|
url
|
URL of the primary entry page. |
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
...
}
As described in 3.3.3 Canonical Identifier, a Web Publication's
canonical identifier is a unique identifier that resolves to the preferred version of
the Web Publication. This infoset item MUST be mapped on the id
term, whose value is a URL.
Additionally, the term itentifier
MAY also be used; in Schema.org, the value of this term can be a URL, a textual information
that represents a unique identification, or more complex objects defined in Schema.org.
There are also sub-properties that can be used on their own right, like isbn
, issn
, or serialNumber
. See also the Schema.org description for further
details.
Not clear how one would describe the relationships between these two...
Term name with link to definition | Short description |
---|---|
id
|
Preferred version of the Web Publication. |
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"id" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
...
}
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"isbn" : "1234567890123",
"url" : "https://publisher.example.org/mobydick",
...
}
As described in 3.3.4 Creators, a Web Publication's creators are the
individuals or entities responsible for the creation of the Web Publication. There
isn’t one specific single Schema.org term this item must be mapped onto; instead, there are a number
of terms and, if this Infoset Item is used, the Web Publication Manifest SHOULD use one of
those. The value of these terms are one or more Person
objects or, in some cases, Person
or an
items.
These terms are: Organization
Term name with link to definition | Short description |
---|---|
author
|
The author of this content. The value can be on or more Person or Organization . |
creator
|
The creator of this content. The value can be on or more Person or Organization . |
editor | The editor of this content. The value can be on or more Person . |
publisher
|
The publisher of the creative work. The value can be on or more Person or Organization . |
illustrator
|
The illustrator of a publication. The value can be on or more Person . |
translator
|
The illustrator of a publication. The value can be on or more Person or Organization . |
readBy
|
A person who reads (performs) the audiobook. The value can be on or more Person . |
artist
|
The primary artist for a work in a medium other than pencils or digital line
art. The value can be on or more Person . |
colorist
|
The individual who adds color to inked drawings. The value can be on or more Person . |
letterer
|
The individual who adds lettering, including speech balloons and sound effects,
to artwork. The value can be on or more Person . |
penciler
|
The individual who draws the primary narrative artwork.. The value can be on or
more Person . |
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"author" : {
"@type" : "Person",
"name" : "Herman Melville"
}
}
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"identifier" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"author" : [{
"@type" : "Person",
"name" : "Jeni Tennison",
},{
"@type" : "Person",
"name" : "Gregg Kellogg",
},{
"@type" : "Person",
"name" : "Ivan Herman",
"url" : "https://www.w3.org/People/Ivan/"
}],
"editor" : [{
"@type" : "Person",
"name" : "Jeni Tennison",
},{
"@type" : "Person",
"name" : "Gregg Kellogg",
}],
"publisher" : {
"@type" : "Organization",
"name" : "World Wide Web Consortium",
"url" : "https://www.w3.org/"
}
...
}
There is no order sensitivity for many items in Schema.org. It is possible to use a JSON-LD array for, say, the author, but the order is not preserved (technically, the mapping is on a set of statement, not a list)
As described in 3.3.5 Language and Base Direction this infoset item refers to several aspects of setting language and direction; these are treated separately.
The infoset described in 3.3.5 Language and Base Direction requires the possibility to set a default language and base direction for all textual information in the manifest. These MUST be set by extending the context of the manifest to include the right features.
To set the language, the context information must be extended by the @language
term of JSON-LD[json-ld]:
{
"@context" : [
"http://schema.org",
"https://www.w3.org/ns/wpub.jsonld",
{
"@language" : "fr"
}
],
...
}
The value of the language tag must be set to the language code as defined in [bcp47].
If not set, the default value is en
.
The right approach is to extend the context through
{
"@language" : "fr"
}
in the (list of) @context
. Although not rejected by schema.org, it is also ignored.
The infoset described in 3.3.5 Language and Base Direction also requires the
possibility to set the language and base direction for any textual information in the
manifest. This MUST be set for each item separately, also using the @value
and @language
terms of
JSON-LD[json-ld]:
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"author" : {
"@type" : "Person",
"name" : {
"@value" : "Marcel Proust",
"@language" : "fr"
}
}
}
The value of the language tag must be set to the language code as defined in [bcp47]. If not set, the default value is the default value of the manifest.
The requirement is that it should be possible to express the language of, say, the title or name of the author individually. This does not seem to work in Schema.org...
This is a completely open issue at this moment, both for JSON-LD and Schema.org... The only (incomplete) approach would be to rely on, and base everything, on the UTF-encoding of the text...
As described in 3.3.6 Last Modification Date, the last modification date is the date
when the Web Publication was last updated. This infoset item MUST be mapped on the dateModified
term, whose value is
a Date
or DateTime
, both expressed in ISO 8601
date, or Date Time formats, respectively [iso8601].
Term name with link to definition | Short description |
---|---|
dateModified
|
Last modification date of the publication |
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"identifier" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"dateModified" : "2015-12-17",
...
}
As described in 3.3.7 Publication Date, the last modification date is the date
when the Web Publication was originall published. This infoset item MUST be mapped on
the datePublished
term, whose
value is a Date
or DateTime
, both expressed in ISO 8601
date, or Date Time formats, respectively [iso8601].
Term name with link to definition | Short description |
---|---|
datePublished
|
Creation date of the publication |
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"identifier" : "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",
...
}
As described in 3.3.8 Reading Progression Direction, this infoset item establishes the
reading direction from one resource to the next. There is no corresponding term in
Schema.org; instead, this item MUST be mapped on the readingProgression
term,
defined specifically for Web Publications.
Term name with link to definition | Short description |
---|---|
readingProgression
|
Reading direction from one resource to the other; the value of this term MUST
be ltr , rtl , or auto (see 3.3.8 Reading Progression Direction for further details). |
If this value is not set, its default value is ltr
.
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"readingProgression" : "ltr"
}
As described in 3.3.9 Title, the title provides the human-readable name of the
Web Publication. If set explicitly in the Manifest (i.e., if it is not to be derived from
the title
element of the primary entry point), this item MUST be mapped on the
Schema.org name
term.
Term name with link to definition | Short description |
---|---|
name
|
Human-readable name of the Web Publication. |
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick"
}
Structural infoset properties typically refer to external resources via a URL. This URL-s may refer to resources playing different roles (e.g., cover or privacy policy), may need some additional metadata for, e.g., accessibility purposes.
The structural properties are expressed via JSON-LD terms that are
typically publication specific (i.e., defined through the JSON-LD context file defined for Web
Publications, see 4.1.3 Web Publication Manifest Contexts). This context also defines a general type used
for external links, called PublicationLink
, that contains that following properties
(note that most of the properties are ):
Term name | Short description | Required/Optional |
---|---|---|
url
|
URL [url] of the resource. | Required. |
fileFormat
|
Media type, typically the MIME format [rfc2046] of the content e.g.
application/zip . |
Optional. |
name
|
Name of the item. | Optional. |
description
|
Description of the item. | Optional. |
rel
|
One or more relations; the values are either the relevant relationship terms of the IANA link registry [iana-link-relations], or specially minted URL-s if no suitable link registry item exists. | Optional. |
(Extracting a discussion on #232 into a separate Issue.)
Schema.org has a (currently "pending") type LinkRole which may be a good alternative to the (publication specific) PublicationLink. Maybe worth considering using the schema.org type.
If the document is reorganized the "specific" external resources (cover, accessibility report, etc) should be separated in from the general structures and list definitions.
As defined in 3.4.1 Default Reading Order, the default reading order is
a specific progression through a set of Web Publication resources. If present in the Web
Publication Manifest (i.e., if the Web Publication has other items in the default reading
order than just the primary entry page), this item MUST be mapped on the
readingOrder
term, defined specifically for Web Publications.
Term name with link to definition | Short description |
---|---|
readingOrder
|
An array of:
|
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick",
"readingOrder" : [
"html/title.html",
"html/copyright.html",
"html/introduction.html",
"html/epigraph.html",
"html/c001.html",
...
]
}
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick",
"readingOrder" : [{
"@type" : "PublicationList",
"url" : "html/title.html",
"fileFormat" : "text/html",
"name" : "Title page"
},{
"@type" : "PublicationList",
"url" : "html/copyright.html",
"fileFormat" : "text/html",
"name" : "Copyright page"
},{
...
}]
}
As defined in 3.4.2 Resource List, the resource list enumerates all resources that are used in the processing and rendering of a
Web Publication (i.e., that are within its bounds) and that are not listed in the
default reading order. If present in the Web Publication Manifest (i.e., if the
Web Publication has other items in the default reading order than just the primary entry
page), this item MUST be mapped on the resources
term, defined specifically for
Web Publications.
Term name with link to definition | Short description |
---|---|
resources
|
An array of:
|
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"identifier" : "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" : "PublicationLink",
"url" : "test-utf8.csv",
"fileFormat" : "text/csv"
},{
"@type" : "PublicationLink",
"url" : "test-utf8-bom.csv",
"fileFormat" : "text/csv"
},{
...
}
],
...
}
As defined in 3.4.3 List of extra resources, the list of extra resources enumerates all resources that are used in the processing and rendering of a Web Publication but are not within its bounds but are, rather, external to the Web Publication. If present in the Web Publication Manifest, this item MUST be mapped on the extraResources
term, defined specifically for Web Publications.
The extraResources
to be used in JSON has not yet been decided; waiting on the resolution of issue #225
Term name with link to definition | Short description |
---|---|
extraResources
|
An array of:
|
At this moment (see also #221 ) we have two "lists" of resources in the manifest, mirroring the infoset: reading order and list of resources. (In JSON, readingOrder
and resources
). How exactly do we represent a cover reference and/or the privacy policies? We did agree that we represent these in the manifest as external lists (see again #221 and also #222 for initial proposals), but we did not decide yet how exactly the mapping for cover is done.
As defined in 3.4.4 Table of Contents, the manifest SHOULD provide a link to an
HTML element in one of the resources representing the table of
content. If present in the Web Publication Manifest this item MUST be mapped on the
tableOfContents
term, defined specifically for Web Publications.
Term name with link to definition | Short description |
---|---|
tableOfContents
|
A (relative or absolute) URL [url] |
<head>
...
<script type="application/ld+json">
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"identifier" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
"tableOfContents" : "#toc"
...
}
</script>
...
</head>
<body>
...
<section id="toc" role="doc-toc">
...
</section>
...
</body>
The term tableOfContents
has not been approved by the Working
Group yet; it is currently a placeholder.
(Translating a telco discussion to an issue.)
The current (2018.06.19) draft has a separate term for the ToC infoset item in the manifest, tentatively using tableOfContents
. The question is whether:
PublishingLink
instance in resources
, using (IANA) rel
value of contents
As described in 3.4.5 Cover, the infoset SHOULD include a reference to a cover. When present, link to such resource MUST be expressed using a PublicationLink
. The rel
value of the PublicationLink
MUST include the https://www.w3.org/ns/wpub/cover-page
identifier.
The Working Group will attempt to define the cover-page
term by IANA, to avoid using a URL.
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick",
"resources" : [{
"@type" : "PublicationLink",
"url" : "whale-image.jpg",
"fileFormat" : "image/jpeg"
"rel" : "https://www.w3.org/ns/wpub/cover-page"
},{
...
}],
...
}
As described in 3.4.6 Privacy Policy, it is RECOMMENDED that the privacy policy be included as a resource of the Web Publication. When present, link to such resource MUST be expressed using a PublicationLink
object. The rel
value of the PublicationLink
MUST include the privacy-policy
(IANA) identifier.
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "CreativeWork",
...
"identifier" : "http://www.w3.org/TR/tabular-data-model/",
"url" : "http://www.w3.org/TR/2015/REC-tabular-data-model-20151217/",
...
"externalResources" : [{
"@type" : "PublicationLink",
"url" : "https://www.w3.org/Consortium/Legal/privacy-statement-20140324",
"fileFormat" : "text/html",
"rel" : "privacy-policy"
},{
...
}],
...
}
As described in 3.3.1 Accessibility Report the authors MAY provide an accessibility report providing information about the suitability of a Web Publication for consumption by users with varying preferred reading modalities. This report may be complementary to the information expressed by the descriptive properties as described in 4.2.1.1 Accessibility. This report is accessed via an external resource (e.g., and HTML file). When present, link to such resource MUST be expressed using a PublicationLink
object. The rel
value of the PublicationLink
MUST include the https://www.w3.org/ns/wpub#accessibility-report
identifier.
The Working Group will attempt to define the accessibility-report
term by IANA, to avoid using a URL.
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick",
"extraResources" : [{
"@type" : "PublicationLink",
"url" : "https://www.publisher.example.org/mobydick-accessibility.html",
"rel" : "https://www.w3.org/ns/wpub/accessibility-report"
},{
...
}],
...
}
As described in 3.5 Extensibility, the infoset items of a Web Publication MAY be extended by linking to further metadata records. This may include, for example, links to an external ONIX [onix] or BibTeX [bibtex] file. When present, link to such resource MUST be expressed using a PublicationLink
object. The rel
value of the PublicationLink
MUST include the describedby
(IANA) identifier.
{
"@context" : ["http://schema.org","https://www.w3.org/ns/wpub.jsonld"],
"@type" : "Book",
...
"url" : "https://publisher.example.org/mobydick",
"name" : "Moby Dick",
"extraResources" : [{
"@type" : "PublicationLink",
"url" : "https://www.publisher.example.org/mobydick-onix.xml",
"fileFormat" : "application/xml",
"rel" : "describedby"
},{
...
}],
...
}
A Web Publication MUST include at least one HTML document [html] that links to the manifest.
There are no restrictions on a Web Publication beyond this requirement. The Web Publication MAY include references to resources of any media type, both in the default reading order and as dependencies of other resources.
When adding resources to a Web Publication, consider support in user agents. The use of progressive enhancement techniques and the provision of fallback content, as appropriate, will ensure a more consistent reading experience for users regardless of their preferred user agent.
Resources SHOULD provide a link to the manifest of the Web Publication to which they belong to enable discovery. Links MUST take one or both of the following forms:
An HTTP Link
header field [rfc5988] with its rel
parameter
set to the value "publication
".
Link: <https://example.com/webpub/manifest>; rel=publication
A link
element [html] with its rel
attribute set to the
value "publication
".
<link href="https://example.com/webpub/manifest" rel="publication"/>
The href
attribute may also contain a fragment identifier, referring to the Web
Publication Manifest expressed as part of an HTML resource (see 4.1 Overview).
<link href="#example_manifest" rel="publication">
...
<script id="example_manifest" type="application/ld+json">
{
"@context" : "http://schema.org",
...
}
</script>
The exact value of rel
is still to be agreen upon.
The following details might be moved to the lifecycle section in a future draft.
When a resource links to multiple manifests, a user agent MAY choose to present one or more alternatives to the end user, or choose a single alternative on its own. The user agent MAY choose to present any manifest based upon information that it possesses, even one that is not explicitly listed as a parent (e.g., based upon information it calculates or acquires out of band). In the absence of a preference by user agent implementers, selection of the first manifest listed is suggested as a default.
The publishing working group is currently evaluating the best approach for implementing Web Publications in user agents. This note is intended to provide an overview of where current thinking is at and what issues are under consideration.
The development of Web Publications is not viewed as a separate forking of the Web, but an enhancement layer that can be supported by user agents. To that end, the primary constraints on any solution for Web Publications are that:
While this specification will provide implementation flexibility for user agents, there are still a number of areas that have been identified as potentially needing to be detailed. These include:
initialization expectations for a Web Publication:
the creation of a "publication state":
tracking the extent of a Web Publication:
establishing the bounds of a Web Publication:
The working group intends to flesh out the lifecycle in later revisions once it is clearer what models are viable and what solutions can be standardized. Input on the feasibility and challenges of these approaches is welcome at any time.
The steps for obtaining a manifest are given by the following algorithm. The algorithm, if successful, returns a processed manifest and the manifest URL; otherwise, it terminates prematurely and returns nothing. In the case of nothing being returned, the user agent MUST ignore the manifest declaration.
Document
of the top-level browsing context, let origin be the
Document
's origin, and manifest link be the first link
element in tree order whose rel
attribute contains the token
publication
. null
, terminate this algorithm. href
attribute's value is the empty string, then
abort these steps. href
attribute, relative to the element's base URL. If parsing fails, then abort these steps. Document
. crossOrigin
attribute's value is
'use-credentials
', then set request's credentials to
'include
'. See the diagram in the appendix for a visual representation of the algorithm.
This section will require additional work if we also decide to allow JSON-LD embedded in HTML.
The steps for processing a manifest are given by the following algorithm. The algorithm takes a text string as an argument, which represents a manifest, and a manifest URL [url], which represents the location of the manifest, and a document URL [url]. The output from inputting a JSON document into this algorithm is a processed manifest.
"{}"
. Object
: "{}"
. WebPublicationManifest
dictionary.
See the diagram in the appendix for a visual representation of the algorithm.
The new JSON-LD based approach will require additional processing from the client. Due to the flexible nature of JSON-LD and schema.org, a simple conversion from JSON to WebIDL won't be enough.
This section contains placeholders for possible reading enhancements/affordances the user agent may/should/must provide. The list is subject to addition, modification and removal as the enhancements get discussed in more detail.
Before starting a discussion on the individual affordances' issues, the WG should have a consensus on what exactly is to be defined for each of those.
When a user agent obtains a manifest it SHOULD display an affordance for switching the display to publication mode.
This affordance has the following requirements:
Publication mode is a display mode implemented by the user agent that follows the conventions listed in presentation and navigation.
The layout and rendering of Web Publications is governed by the same rules that apply to all Web content: HTML documents are styled and laid out according to the rules of CSS, SVG documents are rendered as defined by that format, etc. This specification requires no particular profile or subset of CSS, HTML, or SVG to be supported, other than the expectations set for these technologies by their respective specifications.
This specification intentionally avoids introducing any new layout features. Any shortcoming of the Web platform in terms of layout needs to be addressed for the whole Web platform, which means via CSS.
This working group will work with other relevant groups of the W3C to address platform-wide limitations that negatively impact Web Publications.
For the purposes of layout, each resource of a Web Publication is treated as a separate document. User agents MUST NOT mix content from multiple resources in the same rendering (e.g., CSS floats or absolutely positioned elements from one resource cannot intrude or overlap with content from an other resource).
Despite this general requirement that each resource should be treated as a separate document for the purpose of layout, there are some places where CSS specifications should be amended to be able to deal more intelligently with collections of resources like Web Publications.
One instance is the definition of cross-references, which are currently restricted to work only within a single document. This restriction should be relaxed to allow for cross-references between separate resources of a single Web Publication.
Another related would be to allow counters to accumulate across multiple resources of a single Web Publication (e.g., so that figures in multiple sections may be numbered in a single sequence).
When a user agent renders a Web Publication, it SHOULD provide user settings to customize the experience.
User settings MAY include:
This specification does not cover how user agents override author styles to offer user settings.
To provide user settings in their reader mode, browsers usually get rid of most of the author styles. There is always a tension in reading environments between author styles and the user's preference, which is very hard to balance.
2.1.11 Personalization
The user must have the possibility to personalize his or her reading experience.
Picking up on #52
This section is non-normative.
Publications have historically been presented via paged media, whereas Web pages almost always scroll. As the preferences of individual readers vary, and as different types of publications are better suited for one or the other, this specification encourages user agents to support both, and to offer a choice to their users.
It might be useful for authors to be able to specify a preference between scrolling and
pagination, even if a strict requirement is not possible. This should most likely be
addressed through an extension of @viewport
or of the viewport meta
tag(see [css-device-adapt]), or possibly through an extension of @page
(see [css-page-3]). This should be discussed with the relevant working groups (CSSWG, WebPlatformWG, WHATWG).
2.1.10 Pagination
It should be possible to see the Web Publication in a “paginated” view.
picking up on #52
See also https://w3c.github.io/wpub/#aff-presentation
When a user agent renders a Web Publication in a paginated layout, it MUST lay out each document in the default reading order sequentially, with the last page of a resource being followed by the first page of the subsequent one.
To avoid blank pages, if a resource ends on a left page (resp. right page), the subsequent one should start on a right page (resp. left page) even if the page progression (see [css-page-3]) would otherwise lead to it starting on the opposite page. It should also be possible to use the break-before property (see [css-break-3]) to force the content to resume on the opposite side if that was desired by the author.
[css-page-3] needs to be amended to describe this exception to the general behavior when dealing with collections of documents instead of individual documents.
How is pagination supposed to work when subsequent resources have opposite page progression directions (see [css-page-3]). For example, due to different a different writing mode? This is not necessarily a problem from a layout point of view, as each page is independent, but from an UI point of view. If swiping left means next page until the end of one chapter, and starts meaning previous page in the next chapter because the language is switched from English to Hebrew, this is going to be confusing.
[css-page-3] needs to be amended so that page counters are not automatically reset to at the beginning of each new resource belonging to the same Web Publication.
2.1.10 Pagination
It should be possible to see the Web Publication in a “paginated” view.
picking up on #52
See also https://w3c.github.io/wpub/#aff-presentation
A WP can be read in a browser offline with no change in fidelity from the online experience
Detail on inter-publication search across multiple resources will be included in a future draft.
User agents should provide an affordance that saves the reading progression in the publication and return the user to that location the next time that she opens the publication again.
The user must be able to leave the Web Publication and return to it at the last position they left from. The User Agent must retain the reading position, based on the last known position of the reader in the web publication. The position should be based on the reader's position in the file, within the reading order.
The user agent may retain reading state if the web publication is revised.
The navigation of the web publication should be defined in the Default Reading Order required by the Information Set.
User Agents should not have to set the reading state in the following type of resources:
Reading state should only apply to content documents listed as being within the bounds of the Web Publication.
Example 1:
Sarah is reading a long article on her way to work. She arrives before she has finished, but wants to continue from the place she left off. The user agent should remember her reading state for the next time she opens the publication.
If a tester opens a web publication in a WP-aware UA, moves ahead in the publication, closes the reader, then reopens it, they should be returned to the last known reading state.
This section is non-normative.
The document referred from this section, i.e., Web Annotation Extensions for Web Publications [wpub-ann], has been recently renamed. Its previous was "Locators for Web Publication". The terminology used in this section has to be realigned with the name change.
Locators are used to identify, locate, retrieve, and/or reference locations and content fragments within
Web Publications (e.g., for address(es), bookmarks, and annotations). Locators traditionally
take the form of fragment identifiers [rfc3986], where the portion of a URL preceded by a number sign character (#
)
identifies a specific position within the referenced resource.
For some use cases, it is essential to identify and reference a Web Publication resource—or a location in or a segment of a resource—in the scope or context of the Web Publication to which it belongs. A traditional fragment identifier cannot satisfy this requirement, since only the URL of the constituent resource containing the location or content fragment of interest is expressed. The Web Annotation Extensions for Web Publications [wpub-ann] document, based on the Web Annotation Model [annotation-model], addresses this issue by providing the means to express both the URL of the resource and the URL of the Web Publication.
Web Publication Locators also address the problem of referencing into a resource that was not authored with such a need in mind. A fragment identifier can only reference elements with explicit identifiers and locations with explicit anchor points. Web Publication Locators include a variety of selectors that work with the general structures and content of a resource (e.g., text selectors, CSS selectors).
As Web Publication Locators currently rely on a JSON-based expression syntax, it is not yet clear how much of this syntax can be translated to a fragment identifier. This may limit the usefulness beyond expressions that are also JSON-based (e.g., outside of annotations or bookmarks).
Illustrate with example of an easy to understand Web Publication Locator, such as might be used in annotating a simple Web Publication.
The semantics of Web Publication Locators are a mapping and extension of the Web Annotation Data Model [annotation-model] and Vocabulary [annotation-vocab] for describing and referencing a segment of a Web resource. As a result, Web Publication Locators provide the expressiveness needed for a broad range of annotation and bookmarking use cases. Additionally, Web Publication Locators provide a way to identify and reference a location within a Web Publication (i.e., as distinct from identifying and referencing a content fragment consisting of a span of characters or bytes). A Web Publication Locator can be used to identify, retrieve and/or reference a fragment of a Web Publication that spans multiple resources.
In composing a Web Publication Locator, use the canonical identifier of the Web Publication in preference to any alternative addresses. Such use facilitates the collation of Web Publication Locators associated with a particular Web Publication. URLs of Web Publication resources appearing in a Web Publication Locator should match the URL of the resource provided in the infoset.
This section is non-normative.
Although a Web Publication manifest is authored as [json-ld], user agents process this information into an internal data structure representing the infoset in order to utilize the properties. The exact manner in which this processing occurs, and how the data is used internally, is user agent-dependent. To ensure interoperability when exposing the infoset items, however, this appendix defines a common, abstract representation of the data structures using the standard formalism of the Web Interface Definition Language [webidl-1] which can express the expected names, datatypes, and possible restrictions for each member of the infoset. (A WebIDL representation can be mapped onto ECMAScript, C, or other programming languages.)
WebPublicationManifest
dictionary dictionary WebPublicationManifest
{
required DOMString url
;
DOMString lang
;
TextDirection
direction
= "auto";
TextDirection
readingProgression
= "auto";
sequence<LocalizableString
> name
;
DOMString id
;
sequence<Contributor
> authors
;
DOMString dateModified
;
DOMString datePublished
;
sequence<PublicationLink
> links
;
sequence<PublicationLink
> readingOrder
;
sequence<PublicationLink
> resources
;
sequence<PublicationLink
> toc
;
};
The WebPublicationManifest
has the following members:
url
lang
direction
readingProgression
name
id
authors
dateModified
datePublished
links
readingOrder
resources
toc
authors
member The current infoset for creators is not fully defined; this dictionary might be further improved once there is agreement on how they should be handled.
dictionary Contributor
{
required LocalizableString
name
;
DOMString id
;
};
The author
member is a sequence of Contributor
dictionaries where each
dictionary has the following members:
name
id
LocalizableString
dictionaryThis definition includes a slightly tweaked version of the i18n recommendation that also includes a string value in addition to a language and a direction.
Some metadata in te infoset have strong requirements for
internationalization. For those members, this specification relies on the best practices established by the i18n
WG and on the LocalizableString
dictionary.
dictionary LocalizableString
{
required DOMString value
;
DOMString lang
;
TextDirection
dir
= "auto";
};
When lang
or dir
are specified in LocalizableString
, these values
override the default language and base direction specificed in WebPublicationManifest
.
LocalizableString
has the following members:
value
lang
dir
PublicationLink
dictionary dictionary PublicationLink
{
required DOMString url
;
DOMString fileFormat
;
DOMString name
;
sequence<DOMString> rel
;
sequence<PublicationLink
> children
;
};
The PublicationLink dictionary contains the following members:
url
fileFormat
name
rel
children
TextDirection
enum enum TextDirection
{
"ltr",
"rtl",
"auto"
};
The TextDirection
enum can contain the following values:
ltr
rtl
auto
This section is non-normative.
These diagrams provide a visual view of the lifecycle steps, as specified in 6. Web Publication Lifecycle.
This section is non-normative.
This section is non-normative.
The following people contributed to the development of this specification:
The Working Group would also like to thank the members of the Digital Publishing Interest Group for all the hard work they did paving the road for this specification.