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

Reply via email to