Page MenuHomePhabricator

[discuss] JADE schema format (endorsements?)
Closed, ResolvedPublic

Description

@Prtksxna brought up a good point in my recent discussions with him re. JADE: Why not store the endorsement pattern in JSON and let our content handler make it work reasonably.

E.g. we'd have fields for:

  • Schemas -- A collection of judgements by type/name
    • Judgements -- A data item and a collection of endorsements and a "preferred" flag.
      • Endorsements -- A collection of individual endorsements and statements with username or ID of the relevant user.

Event Timeline

It could look something like this:

{
    "entity": {
        "type": "diff",
        "rev_id": 376901
    },
    "schemas": {
        "damaging": [
            {"data": true, 
             "preferred": true,
             "endorsements": [{"username": "Foobar", 
                               "guid": 123456, 
                               "comment": "Key mash",
                               "origin": "Huggle"}]}]
        "goodfaith": [
            {"data": true, 
             "preferred": true,
             "endorsements": [{"username": "Barfoo", 
                               "guid": 123400, 
                               "comment": "Not intended to be offensive",
                               "origin": "Wiki labels"}]},
            {"data": false, 
             "preferred": false,
             "endorsements": [{"username": "Foobar", 
                               "guid": 123456, 
                               "comment": "Key mash",
                               "origin": "Huggle"}]}]
    }
}

Why would the comments be encapsulated under our data structure, rather than at the edit comment level? I worry that mixing the free-form text and usernames into our data will make this more difficult to patrol, though I don't have enough experience to answer with confidence. Using this arrangement, we'll have user-generated text within the comment fields, in the edit comment, and on talk pages.

I don't think this quite breaks the "everything is a wiki page" philosophy, but it does break the RevisionDelete style of moderation by putting username, comment, and content together. Moderators would have to edit the content manually to accomplish tasks like "hide all occurrences of username Hamburglar".

Unfortunately, I'm not coming up with any good precedents for a list of artifacts that refer to another artifact (and a "section" of it, at that!), the closest I can think of are talk pages which are their own soupy mess.

Edit comments would not tie explicitly to the judgement being discussed. Still, upon review, I think that the "comment" should be shared across judgments -- not endorsements. That way, the comment describes the judgement and not the endorsement. Otherwise, I expect we'll get comments like "I agree with Bob" when we really want "Key mash" or "Adds a category".

E.g.

...
        "damaging": [
            {"data": true, 
             "preferred": true,
             "comment": "Key mash",
             "endorsements": [{"username": "Foobar", 
                               "guid": 123456,
                               "origin": "Huggle"}]}]
...

it does break the RevisionDelete style of moderation by putting username, comment, and content together.

Just like talk pages? At least here, we'd have structure and bots could do the work you're worried about.

FWIW, I think modeling our data based on deliberation (talk pages) is wise. Not falling prey to the problems with talk pages (e.g. structurelessness) is good too.

After IRC discussion, I'm on board with the more complex schema. Importantly, it can be used as a superset of the simpler workflow's schema, so it gives us the ability to implement either approach.

Also from the discussion, the choice of workflow should follow user testing. We can mock up both workflows as gadgets for these tests.

awight claimed this task.
awight moved this task from Active to Done on the Machine-Learning-Team (Active Tasks) board.
Vvjjkkii renamed this task from [discuss] JADE schema format (endorsements?) to csdaaaaaaa.Jul 1 2018, 1:11 AM
Vvjjkkii reopened this task as Open.
Vvjjkkii removed awight as the assignee of this task.
Vvjjkkii triaged this task as High priority.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
CommunityTechBot renamed this task from csdaaaaaaa to [discuss] JADE schema format (endorsements?).Jul 1 2018, 8:50 AM
CommunityTechBot closed this task as Resolved.
CommunityTechBot assigned this task to awight.
CommunityTechBot updated the task description. (Show Details)
CommunityTechBot added a subscriber: Aklapper.
CommunityTechBot raised the priority of this task from High to Needs Triage.Jul 3 2018, 1:59 AM