JADE/Implementations/Archive 1

From mediawiki.org
Jump to navigation Jump to search

This page describes the intended affordances of the JADE system and schemas that are meant to address these affordances. Edits are welcome. Bold-Revert-Discuss rules apply. See Phab:T153152 and https://etherpad.wikimedia.org/p/meta_ores_schema for past notes.

Affordances[edit]

User judgments (endorsements)
  • Wiki users may attach human judgement to any wiki artifact with a numerical ID (page, user, revision, etc.)
  • A user may only supply one judgement per artifact, but they can update their judgement.
  • Users may include a short free-text comment with their judgements (hash tags? #anon #addscategory)
  • Multiple users can record judgements for any given artifact
Judgment schemas
  • Judgements are structured data that corresponds to a machine-readable schema
  • New schemas can be safely added
  • Schemas are named and versioned
Consensus decisions
  • A flow topic can be associated with every artifact/schema (e.g. revision:12345/editquality --> Topic:32SAhbhas6)
  • A judgement can be promoted to "preferred" status (presumably through consensus discussion)
  • Judgements that disagree with "preferred" status remain present
Suppression/curation
  • User information, comments, and entire endorsements can be suppressed by changing visibility
History
  • All actions are captured as events that can be queried historically.

Schemas[edit]

Schema details (relational)
entity_discussion [unique key = (entity_type, entity_id)]
  • context : str (dbname of the wiki)
  • entity_type_id : int (foreign key to entity_type)
  • entity_id : int (foreign key to an entity)
  • flow_id : str (foreign key to a flow thread for an artifact)
judgment [unique key = (context, entity_type_id, entity_id, schema_id, data)]
  • id : int, primary key
  • context : str (dbname of the wiki)
  • entity_type_id : int (foreign key to entity_type)
  • entity_id : int (foreign key to an entity)
  • schema_id : int (foreign key to a schema)
  • data : blob (json blob matching schema for judgement)
  • preference : bool (represents consensus)
  • touched : datetime
endorsement [unique key = (judgement_id, gu_id)]
  • id : int, primary key
  • judgement_id : int (foreign key to a judgment)
  • gu_id : int (foreign key to centralauth)
  • comment : str
  • visibility : int (bitfield: user | comment | all)
  • touched : datetime
schema [unique key = (name, version)]
  • id : int, primary key
  • name : str (An identifier for the schema)
  • version : str (Semantic version string)
  • touched : datetime
  • data : blob (JSON schema)
Schema details (events)
new-schema
  • name : str (An identifier for the schema)
  • version : str (Semantic version string)
  • data : blob (JSON schema)
  • gu_id : int (foreign key to centralauth -- the creating user)
  • comment : str
new-discussion
  • context : str (dbname of the wiki)
  • entity_type : str (the entity_type name)
  • entity_id : int (foreign key to an entity)
  • schema : str (the name of a schema)
  • flow_id : str (foreign key to a flow thread for an artifact)
  • gu_id : int (foreign key to centralauth -- the creating user)
new-judgement
  • id : the identifier of a specific judgement
  • context : str (dbname of the wiki)
  • entity_type : str (the entity_type name)
  • entity_id : int (foreign key to an entity)
  • schema : str (the name of a schema)
  • data : blob (json blob matching schema for judgement)
  • gu_id : int (foreign key to centralauth -- the creating user)
judgement-preference-set
  • judgement_id : int (foreign key to judgement)
  • gu_id : int (foreign key to centralauth -- the user who set the preference)
new-endorsement
  • judgement_id : int (foreign key to a judgment)
  • gu_id : int (foreign key to centralauth -- the user to created the endorsement)
  • comment : str
endorsement-change
  • judgement_id : int (foreign key to a judgment)
  • gu_id : int (foreign key to centralauth -- the user to created the endorsement)
  • comment : str
endorsement-visibility-change
  • judgement_id
  • visibility : int (bitfield: user | comment | data | all)
  • gu_id : int (foreign key to centralauth -- the user who updated the visibility)
  • comment : str