daniel added a comment.
Quick summary of a chat with @GWicke: RevisionContentLookup, RESTBase, and Parsoid: - There should be an implementation of RevisionContentLookup based on RESTBase - RESTBase could provide Parsoid HTML "renders" as a "virtual slot". - Each revision may have several Parsoid renders, e.g. when templates change. - Each Parsoid "render" may encompass multiple (virtual) slots. - To keep slot data consistent, we need to supply the "render id" (a time-uids) to getRevisionContent() - Note: WYSIWYG editing is based on a rendering, not primary content! Especially important when editing template parameters. - For this reason, parsoid has "primary" and "generated" parts in the same HTML DOM. These perspective would be exposed as separate slots in this model. One important use case for this is diffing. Another is to have separate URIs for primary and expanded content, for dependency tracking. MCR Recap: - primary slots: constitute revisions; may have conflicts; user edited. - derived slot: derived, but persisted as blobs. Can be updated. - virtual slots don't use blob store (e.g. parsoid "renderings"), can be generated on the fly, or fetched from a remote service - Dependency tracking: primary content never depends on anything; renderings can depend on primary data, as well as other renderings. Open questions: - Do we need to record the (primary) slots in th edatabase, so we can enumerate them reliably? Alternatively, we could ask all relevant services for all possible slots to get an enumeration. - Can primary content be stored outside the blob-store model? Related: should the slot table really have blob URLs? - Multiple "events" per revisions may be useful: each "like", each "view", each "comment", etc. "sub-revisions"? - Versioning for content models (wikibase model 0.1, 0.2, 1.0, 2.0; parsoid html 1.0, 1.1, 1.2...) - Drop content formats? - Slot content: use Content interface? More basic RevisionData interface? Or allow specialized interfaces, such as ParserOutput objects? - Optional meta-data associated with slots (etag, etc?)? with revisions (rev-props)? with blobs (hash, size)? TASK DETAIL https://phabricator.wikimedia.org/T107595 EMAIL PREFERENCES https://phabricator.wikimedia.org/settings/panel/emailpreferences/ To: daniel Cc: Glaisher, JJMC89, RobLa-WMF, Yurik, ArielGlenn, APerson, TomT0m, Krenair, intracer, Tgr, Tobi_WMDE_SW, Addshore, Lydia_Pintscher, cscott, PleaseStand, awight, Ricordisamoa, GWicke, MarkTraceur, waldyrious, Legoktm, Aklapper, Jdforrester-WMF, Ltrlg, brion, Spage, MZMcBride, daniel, D3r1ck01, Izno, Luke081515, Wikidata-bugs, aude, jayvdb, fbstj, Mbch331, Jay8g, bd808 _______________________________________________ Wikidata-bugs mailing list Wikidata-bugs@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs