Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

non-linear resources - primary, secondary or something else? #16

Closed
mattgarrish opened this issue Aug 4, 2017 · 39 comments
Closed

non-linear resources - primary, secondary or something else? #16

mattgarrish opened this issue Aug 4, 2017 · 39 comments

Comments

@mattgarrish
Copy link
Member

An issue I'm sure no one is looking forward to, but where do "non-linear" resources fall into the publication hierarchy?

For reference, non-linear is what epub calls documents that contain supplementary information not part of the primary narrative. In EPUB, they were marked as non-linear and required to be in the spine, but whether they were suppressed when reading the book or not was reading system dependent.

Is WP going to define something similar, or can the reading order be defined without including supplementary documents in the reading order?

If they can be excluded, these will be neither primary nor secondary resources, but something else.

If they can be excluded, does the author have to provide previous/next page navigation.

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@mattgarrish
Copy link
Member Author

Can you give an example?

The general EPUB example is an answer key. You might provide a link to one where a quiz is, but you don't necessarily want it in the reading order. It's technically a primary resource, but would violate a statement that all primary resources are in the reading order.

Thinking of the web, any kind of document you would pop out rather than have as part of a sequential reading order has an equally ambiguous status. They're not secondary, but not primary, either. Do these have to be listed as primary resources in the reading order?

@RachelComerford
Copy link

RachelComerford commented Aug 4, 2017 via email

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@pkra
Copy link
Member

pkra commented Aug 4, 2017

@lrosenthol

And why wouldn't it be in the DRO? If I was physically paging through the
book, I would get there - so why not put it in the DRO for an electronic
pub?

Because authors finally could, cf. https://en.wikipedia.org/wiki/Easter_egg_(media).

@WSchindler
Copy link

WSchindler commented Aug 4, 2017

If any resource referenced from a primary resource would have the status of a secondary resource, we would need a mechanism to distinguish between secondary resources which are essential/indispensable for the proper rendering and/or understanding of the main narrative and those that the user may consume or not. If I talk in my text about the following diagram or picture which won't be rendered, it would be a quite disturbing reading experience. But given on his or her personal level of expertise a reference to a glossary entry may be safely ignored or even remain hidden (based on a user preference). IMO, we don't necessarily need a further term, but we need a stable mechanism to be able to define the relevance of resource for the primary narrative.

@RachelComerford
Copy link

RachelComerford commented Aug 4, 2017 via email

@clapierre
Copy link

clapierre commented Aug 4, 2017 via email

@TzviyaSiegman
Copy link
Contributor

I am going to be radical here. Since @duga explained the way that linear in EPUB came to be, I am less enamored of it. As @lrosenthol said, an answer key would be at the end of a book if I were paging through it. In discussing the concept with EPUB Reading System developers, I learned that excluding the content creates many problems. For example, should content that is non-linear be part of search? be paginated? I think that we might need to make these author decisions. That does not mean that it is not possible to hide some content from view (as with an answer key), but I don't think we should do this with a magical attribute. It is possible to create quizzes with answer keys on the Web without a magical attribute. We should create WP in the same way. (PWP and EPUB 4 might be different).
(I think DRO is default reading order, but I agree that we should not invent acronyms.)

@mattgarrish
Copy link
Member Author

Wouldn’t a choose your own adventure story classify as a number of primary resources that are not in a DRO?

That's another common example.

Also, if you have a link that says to click an image to see the larger view, and then the image opens in a new window, that image is no longer a secondary resource. Is it listed as a primary resource, in the reading order?

If you have a link to it from somewhere else, and it's not in the DRO, then
it's a secondary resource

That's not the way they're currently defined, though. A linked or popped-out resource isn't required for the processing or rendering of a primary resource.

If we change to allow resources to be directly rendered without having to be listed as primary resources in the reading order, then we're moving in the direction of non-linear content not having to be in the spine (to equate to EPUB).

I'm not saying we want to invent "non-linear" again, but we need to be clear what is required in the reading order and what it means (and what are any processing expectations) when resources are not.

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@dauwhe
Copy link
Contributor

dauwhe commented Aug 4, 2017

I think it's entirely reasonable to have an HTML resource in a web publication that is not part of the default reading order. It's just like having a link to somewhere else on the web. A document author can control to some extent what happens with such a link using the target attribute.

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@clapierre
Copy link

clapierre commented Aug 4, 2017 via email

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@clapierre
Copy link

clapierre commented Aug 4, 2017 via email

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@clapierre
Copy link

clapierre commented Aug 4, 2017 via email

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@BigBlueHat
Copy link
Member

Feels like we're heading into unrelated territory at the moment (re: combining PWPs). When we address that use case, we should address it. 😄 There is still much to be discussed around identification of resources (any of them...) in their various states: on the Web, offline, and portable'd. We'll get there. But that's not here nor now (please).

To Matt's original question, the issue seems to center around what is content and what is dependency (as well as when/where are those things outlined, described, referenced).

Does that describe the issue more clearly?

@mattgarrish
Copy link
Member Author

I think it's entirely reasonable to have an HTML resource in a web publication that is not part of the default reading order.

I tend to agree. I don't believe it's necessary for there to be a path through every piece of content.

The current definition of secondary resource doesn't allow for this, though. There are primary resources in the default reading order, and secondary resources needed for their processing or rendering.

Perhaps the publishing and linking definitions could help here, namely Web Content and Web Page.[1]

A Web Publication consists of one or more Web Pages, at least one of which has to be listed in the default reading order. All Web Content has to be listed in the manifest, with Web Pages in the default reading order potentially not having to be repeated.

[1] https://www.w3.org/TR/publishing-linking/#terminology

@HadrienGardeur
Copy link
Member

HadrienGardeur commented Aug 4, 2017

In Readium-2 we decided to do the following thing when ingesting EPUB files:

  • all linear resources in the reading order are primary
  • non-linear resources are all considered secondary resources

I really don't think that we need the concept of linearity for WP/PWP, this is one of the most confusing thing about the EPUB spine today and its implementation across UAs is extremely inconsistent.

@HadrienGardeur
Copy link
Member

Also for reference, this is how we handle primary/secondary resources in Readium-2:

  • whenever we render a primary resource, we prerender the next and following primary resources in the reading order as well to speed things up
  • we filter secondary resources and preload a number of them (CSS, JS and fonts) to have them in cache whenever we need to use them

This means that for an adventure story or a quiz, the performance won't be as good (the resource won't be preloaded in advance).

Aside purely from processing requirements, the impact is mostly on UX. Unlike primary resources, when secondary resources are rendered, there's no option to browse to the next/previous one (since they're not in the reading order). You need to either:

  • "close" the current secondary resource to go back to the primary resource that you were viewing
  • or navigate to a new primary resource

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@BigBlueHat
Copy link
Member

I'm beginning to think that we need a clarification for "secondary resources." Most often that phrase has been used to refer to a stylistic/functionality/display dependency (CSS, JS, fonts), but now in this conversation it's been used to refer to "secondary content" (quiz answers, etc).

As long as those are mixed in a single term, we'll remain confused, I fear--hence my comment about content and dependencies.

@BigBlueHat
Copy link
Member

@lrosenthol I think for now (and expressly this issue), we need to focus on this line from the Use Case document: "All these constraints are formalized in the context of the usage on the Web and by extension Web Publications."

Yes, there are scenarios where a WP may be "off the Web" (prior to publication served off localhost, etc) and certainly where it is packaged (ala PWP), but I think we should burn those bridges when we get to them. 😸

@lrosenthol
Copy link

lrosenthol commented Aug 4, 2017 via email

@BigBlueHat
Copy link
Member

That's my reading also @lrosenthol.

Copying/pasting from the terminology section:

Primary Resource

A primary resource is one that is listed in the default reading order of a Web Publication.

Secondary Resource

A secondary resource is one that is required for the processing or rendering of a primary resource.

@HadrienGardeur
Copy link
Member

I'm not entirely convinced that we need three separate concepts.

I think the confusion (if any) is tied to the terminology (primary/secondary) and our current definitions (mostly for secondary) rather than something else.

As long as we clearly identify the media type in the manifest, I really don't think that listing such secondary content documents and stylistic/functional/display dependency together is an issue.

@TzviyaSiegman
Copy link
Contributor

https://w3c.github.io/wpub/#terminology includes the WORKING definition of secondary resources:

Secondary Resource
A secondary resource is one that is required for the processing or rendering of a primary resource.

Going back to the theme of this thread, where (if anywhere) does what EPUB called non-linear content fit into WP? Several people are saying it's not relevant to WP.
I am not sure we need to decide before FPWD. This may be something we can get to as we put more flesh on the bones.

@dauwhe
Copy link
Contributor

dauwhe commented Aug 4, 2017

I think that we have only two categories: resources in the primary default reading order, and everything else. The "everything else" might include HTML. I'm just trying to think of the smallest amount of extra info we need to make publications work.

@HadrienGardeur
Copy link
Member

For example we could simply say that:

Secondary Resource
A secondary resource is one that is required for the processing or rendering of the publication.

IMO, the resources identified as secondary shouldn't have to be tied to a primary resource.
For example, a publication might contain a high resolution cover that is not used by a primary resource.

@mattgarrish
Copy link
Member Author

mattgarrish commented Aug 4, 2017

A secondary resource is one that is required for the processing or rendering of the publication.

IMO, the resources identified as secondary shouldn't have to be tied to a primary resource.

I'm fine with this approach, too, and it solves my more immediate concern about our definitions. As long as the definition says "primary resource", a secondary resource has to be tied to a primary.

We can argue details like what this means for progression through a publication, and whether non-linearity needs introduction when we get deeper into defining the reading order.

@danielweck
Copy link
Member

I believe we now have a pretty good definition for primary and secondary resources.
However, I believe that the notion of "non-linear" as inherited from EPUB (that is to say: spine item content documents explicitly marked with the @linear="no" attribute) is redundant / unnecessary in the context of Web Publications, in the sense that any primary resource not taking part in the default reading order is implicitly an "ancillary" resource (such as accessible extended descriptions).
The reason why such documents in EPUB have to be marked explicitly with the @linear="no" attribute is because there is a requirement to include in the spine all the content documents that are linked to / navigable, even if they are not part of the default linear reading order. There is no such constraint in Web Publication, so the need for explicit non-linear is negated.
Furthermore, the underspecified non-linear feature is objectively largely misunderstood by both content creators and reading system implementors, leading to glaring inconsistencies across the board (content model, and user experience).
Note that in Readium2 when converting from EPUB3 to the internal "webpub manifest" data model, @linear="no" spine items are simply added to the list of resource "links", whereas explicit or implicit @linear="yes" spine items are preserved in the list of spine "links". These two lists of "links" are mutually exclusive (no intersection / overlap), so there is no room for ambiguity.

@llemeurfr
Copy link
Contributor

For the record, here is the spec of "linear" attribute in EPUB 3.1 and the older 3.0 spec.

An interesting term is "auxiliary", where we use "secondary" in our discussion: we may want to come back to this standard EPUB term, as "auxiliary" (for the publication) may sound better for non-linear content like a cover page (I found the use case in EPUB 3 Best Practices from Matt & Markus) or a quizz than "secondary" (which is more closely tied to a hierarchy where "primary" is using "secondary").

@llemeurfr
Copy link
Contributor

In #46 (comment), @mattgarrish said:

I can still live with where we ended up in #16.

I understand that it means - in the WG accepts this consensus - that the definition of a secondary (or auxiliary?) resource will be changed to:

Secondary Resource
A secondary resource is one that is required for the processing or rendering of the publication.

and that the definition of a primary resource will be back to:

Primary Resource
A primary resource is one that is listed in the default reading order of a Web Publication.

Therefore the equivalent of EPUB 3 non-linear content will be categorized as secondary/auxiliary resource and this issue will be closed. right?

@mattgarrish
Copy link
Member Author

Therefore the equivalent of EPUB 3 non-linear content will be categorized as secondary/auxiliary resource

Yes, and also secondary doesn't mean supplementary content as it did in EPUB. Secondary has no relationship to whether the content is part of any primary narrative not expressed by the default reading order (e.g., choose your own adventures or similar where the user follows links in the content instead of relying on document sequence).

@mattgarrish
Copy link
Member Author

Closing this issue as my original question about linear/non-linear has been answered: primary resources are in the default reading order, but not every resource the user might navigate to has to be in the default reading order.

There is no concept of linear/non-linear, in other words, as being secondary carries no specific connotation about the type of resource, only that it is not reachable if you only follow the default reading order via UA-provided navigation.

I'm not sure why we need to call them anything more than resources in this scenario (or at least why ones in the default reading order have any "primacy"), but that's a specific question I'll open elsewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests