JADE/Content schemas

This page records a set of complete proposals for content schemas for use in JADE. Content schemas are JSON blobs that represent a set of judgments about an entity (E.g. a revision, a diff, a page, a user, etc.).

Multi-judgement with endorsements
This represents an iteration of the original schema that Halfak put together in summer of 2017. The general rational is that propositions (judgments) are supported or not though !votes (endorsements) and that this pattern is captured in the data structure itself and thus is open to machine analysis. Users may provide a comment explaining their endorsement. Judgments can be further described with a set of notes (that may contain hashtags or links for the construction of a folksonomy and use in grounded theory).

judgments: "editquality": judgments: (list) - data: damaging: true/false goodfaith: true/false preference: true/false notes: (Free text rendered like a wikitext comment) endorsements: (list) - user_id: (user ID) / ip: (IP address) comment: (Free text rendered like a wikitext comment) origin: (Free text, like a User-Agent, E.g. Special:Diff, Huggle-3, or Wikilabels)

Single-judgment
This represents a highly simplified version of Multi-judgement with endorsements that collapsed everything down to a single judgment. The idea is that straw polls and filing disagreement would happen via BRD and thus not be machine readable. This also removes the ability to explore who/where a judgement was provided from. By focusing on the consensus judgment directly, the system and interaction patterns can be kept much more simple and straightforward.

judgments: "editquality": data: damaging: true/false goodfaith: true/false notes: (Free text rendered like a wikitext comment)

Multi-judgement (aka bucket of judgments)
This represents an effort to support the pipeline between systems like Wikilabels and JADE -- to allow "append-only" workflows. The general rational is to drop the constraints of consensus patterns so that it is easier for tools to "just dump judgment" into JADE.


 * Note: It's not clear whether or not user_id and origin were part of this initial proposal. They were later added by Halfak when trying to reconstruct history.

judgments: "editquality": judgments: (list) - data: damaging: true/false goodfaith: true/false preference: true/false notes: (Free text rendered like a wikitext comment) user_id: (user ID) / ip: (IP address) origin: (Free text, like a User-Agent, represents where the user was when endorsing/submitting a judgement. E.g. Special:Diff, Huggle-3, or Wikilabels)

Free form wikitext
This is schema free, so schema does not apply to it. Templates could be used to aid in machine-readability. But it's generally acknowledged that such usage would be inconsistent at best.

Multi-judgement with endorsements + wikitext slot
This schema represents the dual use of Multi-Content Revision slots.

(narrative form of judgments justifications, notes, non-ephemeral observations and material incorporated from the talk page.)
 * Main Slot (wikitext)

judgments: "editquality": (list) - data: damaging: true/false goodfaith true/false endorsements (single or list) - rank: preferred/normal/deprecated user: proposition_rev (Edit of the proposition being endorsed.) endorsement_rev Revision where the author declares their endorsement. (Might point to a Judgment_talk edit or a Judgment edit.               This revision identifies the user and other metadata about the tooling and context.                Updating the endorsement content can result in a new endorsement if the                proposition is updated as well.)
 * Content slot (JSON)

Multi-judgement with endorsements + top-level notes
These schema represents a compromise against using MCR and instead incorporating a text field into the top. The purpose of this top-level field is to serve ??? use case.

notes: (narrative form of judgments justifications, notes, non-ephemeral observations) judgments: "editquality": (list) - data: damaging: true/false goodfaith true/false endorsements (single or list) - rank: preferred/normal/deprecated user: proposition_rev (Edit of the proposition being endorsed.) endorsement_rev Revision where the author declares their endorsement. (Might point to a Judgment_talk edit or a Judgment edit.           This revision identifies the user and other metadata about the tooling and context.            Updating the endorsement content can result in a new endorsement if the            proposition is updated as well.)
 * Main Slot (wikitext)