-
Notifications
You must be signed in to change notification settings - Fork 19
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
Working out the manifest life cycle #121
Comments
Copying the comment of @HadrienGardeur:
|
@HadrienGardeur, first of all, thanks! Some comments while reading through the draft Obtaining a manifest
Processing the manifest
Processing the default reading order
ConclusionQuoting from the draft
Indeed
We have to be fair. The WAM goes into all kinds of details about how to extract, say, "background color" and, if we followed that same style, we would have to do the same with some of the infoset elements (I am not sure we want to do that, I just say the comparison may not be fair). Ie, the complexity level is not really different. What is probably true is that the WAM includes a bunch of elements that are not really relevant for us (like that background color entry). I think what is true is that the life-cycles are different.
I presume you mean issues like "applying the manifest" from the WAM, etc, that are not relevant. Or do you refer to other issues?
True. But the complexity of the user agent has a lower priority, in my view, than the complexity of the WP structure for authors. If the creation of the WP can be simplified even if this complicates the UA, then this should be of a higher priority (and the draft shows that this can be solved, albeit with some complexity). I also wonder whether there are not some other entries in the WP that would not be relevant. From a cursory look, what about:
|
Right, and I included a note about this.
There's a separate issue to discuss this (#104) but this is tricky indeed for multiple reasons.
This is not really terminology, I only use
There's another problem as well:
Here's an example in RWPM for the title that illustrates that difference: "title": {
"fr": "Vingt mille lieues sous les mers",
"en": "Twenty Thousand Leagues Under the Sea",
"ja": "海底二万里"
} The Japanese publishing industry has pointed out several times that being able to express the same metadata in multiple scripts (kanji, katakana and hiragana) is quite important for them. RWPM allows that, but that's not the case of the WAM or the current WP infoset.
In the context of RWPM:
I think that we'll still need these two separate concepts in the WP infoset as well, but the list of resources is probably good enough for processing the default reading order.
Fixed.
That's true but not all members of the WAM require specific processing, a large number of them are obtained from the fourth step (Let manifest be the result of converting json to a WebAppManifest dictionary). Most members of the WAM are indeed irrelevant for us, and our life-cycle might require some additional processing compared to this draft (for example when processing publishing and modification dates). Overall, I still believe that if we didn't had an external reading order (outside of the manifest), we would truly have way less processing than the WAM.
It only applies to a very specific case where:
Even in EPUB3 where we force the publication to always include a My issue is not just with the additional processing that this requires (it doubles the complexity in the current draft), but also from a design perspective. It makes very little sense to have a Web Publication Manifest that either contains:
Metadata and the default reading order are by far the two most important piece of information of our infoset. A publication is essentially a collection of resources, where the default reading order tells us the boundaries of the collection while metadata provide information about the collection. IMO, it makes a lot more sense to always have both info in the same document (JSON or HTML). The current consensus (where the reading order can be expressed in the manifest or somehow vaguely through an HTML resource that's part of the publication) feels very inconsistent to me. |
What is the result of going through this lifecycle? In the case of WAM, it's creating an icon in a launcher that opens a stripped down browser that (probably) opens the When something goes through these lifecycle steps, what is made, where, to what end? |
This is where I crashed and burned on section 5 before the holidays. We are carrying along at least three or four models for how a user interacts with a web publication and what sort of reading experience would be created (browser, reading app, inlined app), and is there any commonality in how they interplay? We still need to define how to parse the manifest into the infoset, but that's still only the beginning. We're missing something similar to the "installable applications" section, of which the manifest lifecycle is one part. |
Well @mattgarrish is completely right that this is entirely tied to the category of application that we're describing. For RWPM, we have a pretty good idea for native reading apps and web apps, but we haven't explored browsers. Do you want me to sketch some of these options as well? cc @iherman |
@HadrienGardeur I think that would be a good idea. |
I finally got up to date with this thread. First things first, kudos to @HadrienGardeur for rolling up his sleeves and analyzing the details, it's very useful! 👍 That said, to be honest at this point I still fail to see how our needs are incompatible with the Web App Manifest. To simplify, what I could gather from the experiment is:
My take on these conclusions is that (each item relates to the respective item in the previous list):
By the way, seeing WAM as just a way to "install apps" or "create an icon in an app launcher" is a red herring. It's clearly the primary and original use case behind the spec, but it's just that, a use case, as said in Section 2 of WAM:
WAM is really about defining the manifest, how to obtain, process, and apply it to a top-level browsing context. This is very applicable to our use case as far as I can see, pending decision on #104 of course. Maybe I'm missing something obvious, in which case I'm sure Hadrien or Benjamin will chime in 😉 |
@rdeltour I think the WAM discussion should be handled in #118 rather than on this issue. I've never said that we're incompatible with the WAM by the way, but IMO:
|
I added a new section to the life-cycle draft called "Processing a Web Publication". For now it's divided into three sub-sections: There's no specific section yet for Web Apps, but they're mostly a mix of the browser and dedicated app use cases. Once again, this is a super early draft, feel free to suggest any addition or modification that you'd like (we'll most likely need a much longer list of requirements in "Displaying a Web Publication"). |
(Purely admin/practical comment.) We should try to put that whole section into the WP draft as soon as possible, even if it is a sketch. Remember that we have now the possibility to publish a new draft, ie, a new snapshot, very quickly, and it does not have to be final and complete. (Essentially, pushing a version onto a specific branch on github would make it published on www.w3.org/TR/ automatically.) On the other hand, it is easier to get feedbacks (which we need) if there is one place where people can find out in which direction the WG is going. |
@iherman I've been working on this mostly as an extension of my holidays experiments, but I'm happy to plan a call with @mattgarrish as well if you think it's worth integrating some of this work in a new WP draft as well. |
I'd like to publicly thank @HadrienGardeur for exploring #52 😁 All our lives could be made much easier, if we pinned some of these things down (as Hadrien has endeavored to do in https://github.com/readium/readium-2/blob/master/misc/W3C/lifecycle.md#3-processing-a-web-publication). @HadrienGardeur perhaps we should work together on closing #52 with a proper list of affordances--beginning with what you've defined here. I know that'd make @TzviyaSiegman happy at least. 😸 Laslty, @rdeltour there may be situations when you don't want a WP to be "installed." However, anything extending WAM will also trigger an installation request (in supporting browsers...obviously). If that's not what you (ever) want, then don't put content into a WAM and link to it as they describe. Use something else. However...we should have that chat on #118 😉 |
@BigBlueHat ping me by email and we can plan a call together to figure something out for #52. My take on this:
|
I played with a diagram creation program today, and I made some rough flowcharts for the processing steps in the draft:
they are rough, stylistically, but they also revealed some minor awkwardnesses in the draft in terms of naming, what a processing step needs as input and what exactly it produces, etc (nothing major, just minor things). I did not mostly as an exercise, but it may be useful for others to gain a better oversight on what we are talking about. We may consider adding them in the draft (as an appendix). Enjoy... @RachelComerford , you inspired me:-) |
@iherman This looks good overall! For https://www.w3.org/2018/01/wp_lifecycle_diagrams/process_manifest.svg, we don't need In RWPM, the Since |
@iherman <https://github.com/iherman> This looks good overall!
For https://www.w3.org/2018/01/wp_lifecycle_diagrams/process_manifest.svg <https://www.w3.org/2018/01/wp_lifecycle_diagrams/process_manifest.svg>, we don't need manifest.spine + manifest.reading_order.
In RWPM, the spine property contains the default reading order (like in EPUB).
Since manifest.reading_order covers the spine as well, you can remove a step from the second diagram.
I am not sure I understand all what you say but… I guess it is better if we finalize the details of the steps in the document before changing the diagram. The diagram are only illustrations...
|
I've tweaked it slightly, but there are only two steps in the document (default reading order + language), while the diagram has three (spine + language + default reading order). |
On 24 Jan 2018, at 16:39, Hadrien Gardeur ***@***.*** ***@***.***>> wrote:
I've tweaked it slightly, but there are only two steps in the document (default reading order + language), while the diagram has three (spine + language + default reading order).
Ah yes, I remember. What isn't that a mistake in the draft? My understanding is that the processing of the manifest creates an internal representation of the information items, of which the default reading order is part of.
(But I may be wrong, not sure…)
|
If the JSON contains a default reading order ( This is all handled in a single step, not two. |
That is all part of the separate default_reading_order.svg. But that is a process (say, a function) that must be called from somewhere, so to say, and caller is the process handling the manifest. Much like, in fact, there should be a different, albeit much simpler, procedure to get the language information (the multiple language question put aside for the moment). |
Sure, but you only need to call it once in the main processing, not twice. Anyway, it's a minor tweak. |
I posted some TAG comments here that may be useful to this thread as well. |
Propose closing: this is now part of the latest draft (per #130) |
This is a spin-off of #119: working out the details should help finalizing the relationship between the PW Manifest (a.k.a. PWM), the Readium Web Publication Manifest (a.k.a. RWPM, see #119) and, the Web Application Manifest (a.k.a. WAM).
The text was updated successfully, but these errors were encountered: