Review & Data Use

Last modified by Robert Schaub on 2025/12/18 12:03

Review & Data Use

This page describes the Review & Data Use model, defining User roles and how review actions are logged.

1. User & Role Concepts

  • USER: Base entity for all users (human or technical).
  • TECHNICAL_USER: Strictly technical identities (services, federation components, background jobs).
  • CONTRIBUTING_USER: Users that can contribute content (claims, scenarios, evidence).
    • TRUSTED_CONTRIBUTOR: Additional trust / certification properties.
    • REVIEWER: Can perform review actions on versioned entities.
    • EXPERT: Contributor with domain‑specific expertise / higher authority.
  • FEDERATION_NODE: Technical entity representing a participating node in the federation.
  • FEDERATION_ADMIN: Administers one or more federation nodes; not necessarily a content contributor.

2. Review Actions

The system logs every significant action:

  • REVIEW_ACTION logs *who* did *what* on *which* versioned entity.
  • Fields: ``ReviewActionID``, ``UserID``, ``EntityType``, ``EntityVersionID``, ``ActionType``, ``Timestamp``.
  • Each entry targets a specific VERSIONED entity (e.g., ClaimVersion, ScenarioVersion).
  • Claim Clusters may also be targets of review actions (e.g., curation or moderation).

3. Review & Data Use ERD

3.1 User Roles

graph TD
 READER[Reader] --> |Registers| CONTRIBUTOR[Contributor]
 CONTRIBUTOR --> |Earns Reputation| TRUSTED[Trusted Contributor
substantial reputation] CONTRIBUTOR --> |Appointed by
Governing Team| MODERATOR[Moderator] READER --> |Can| R1[Browse/Search] READER --> |Can| R2[Flag Issues] READER --> |Can| R3[Submit Claims] CONTRIBUTOR --> |Can| C1[Edit Claims] CONTRIBUTOR --> |Can| C2[Add Evidence] CONTRIBUTOR --> |Can| C3[Improve Content] TRUSTED --> |Can| T1[Approve Changes] TRUSTED --> |Can| T2[Mentor New Contributors] MODERATOR --> |Can| M1[Review Flags] MODERATOR --> |Can| M2[Hide Harmful Content] MODERATOR --> |Can| M3[Resolve Disputes] style READER fill:#e1f5ff style CONTRIBUTOR fill:#99ff99 style TRUSTED fill:#ffff99 style MODERATOR fill:#ff9999

Simplified flat role structure:

  • Reader: Default role, no login required
  • Contributor: Registers and earns reputation through contributions
  • Trusted Contributor: substantial reputation unlocks additional permissions
  • Moderator: Appointed by Governing Team, handles abuse/disputes
    No hierarchy - roles represent responsibility levels, not management structure.

Technical & System Users
This diagram shows Technical Users (system processes like AKEL, sync bots, monitors) and their management by Moderators.
erDiagram
 USER {
 string UserID PK
 string role
 int reputation
 }
 MODERATOR {
 string ModeratorID PK
 string UserID FK
 string[] permissions
 }
 SYSTEM_SERVICE {
 string ServiceID PK
 string ServiceName
 string Purpose
 string Status
 }
 AKEL {
 string InstanceID PK
 string ServiceID FK
 string Version
 }
 BACKGROUND_SCHEDULER {
 string SchedulerID PK
 string ServiceID FK
 string[] ScheduledTasks
 }
 SEARCH_INDEXER {
 string IndexerID PK
 string ServiceID FK
 string LastSyncTime
 }
 USER ||--o| MODERATOR : "appointed-as"
 MODERATOR ||--o{ SYSTEM_SERVICE : "monitors"
 SYSTEM_SERVICE ||--|| AKEL : "AI-processing"
 SYSTEM_SERVICE ||--|| BACKGROUND_SCHEDULER : "periodic-tasks"
 SYSTEM_SERVICE ||--|| SEARCH_INDEXER : "search-sync"

Simplified technical model:

  • USER: Standard users (Reader/Contributor based on reputation)
  • MODERATOR: Appointed users with moderation permissions
  • SYSTEM_SERVICE: Automated background services
  • AKEL: AI processing engine
  • BACKGROUND_SCHEDULER: Quality metrics, source updates, cleanup
  • SEARCH_INDEXER: Elasticsearch synchronization
    Removed (no longer in simplified model):

4. User Class Diagram

classDiagram
 class User {
 +UUID id
 +String username
 +String email
 +Role role
 +Int reputation
 +Timestamp created_at
 +contribute()
 +flag_issue()
 +earn_reputation()
 }
 class Reader {
 <>
 +browse()
 +search()
 +flag_content()
 }
 class Contributor {
 <>
 +edit_claims()
 +add_evidence()
 +suggest_improvements()
 +requires: reputation sufficient
 }
 class Moderator {
 <>
 +review_flags()
 +hide_content()
 +resolve_disputes()
 +requires: appointed by Governing Team
 }
 User --> Reader : default role
 User --> Contributor : registers + earns reputation
 User --> Moderator : appointed
 note for User "Reputation system unlocks permissions progressively"
 note for Contributor "Reputation sufficient: Full edit access"
 note for Contributor "Reputation sufficient: Can approve changes"

Simplified flat role structure:

  • Three roles only: Reader (default), Contributor (earned), Moderator (appointed)
  • Reputation system replaces role hierarchy
  • Progressive permissions based on reputation, not titles