JADE/Implementations/Archive 1

From mediawiki.org

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