-
Notifications
You must be signed in to change notification settings - Fork 0
Lumina Debates System
This system is designed to foster structured, insightful, and impactful discussions among our citizens in Lumina, allowing them to propose, debate, and rank ideas or concepts in a well-organized manner, thereby nurturing a constructive and participative democratic environment within our autonomous city-state.
The core function of the comment trees is to structure discussions around ideas or concepts, ensuring clarity in debates and easy tracking of responses.
-
Structured Discussions:
- Every comment must choose a side in relation to the idea or concept presented in the parent comment, ensuring clarity in discussion threads.
- Comments are organized in a tree-like structure, with each comment branching into two groupings for sub-discussions: in support and in opposition.
-
Clear Debates:
- Sub-discussions under each parent comment are designated to arguments either in support or in opposition, offering clear, organized debates on specific points.
- This promotes focused, topic-specific discussions and prevents the convolution of multiple points in a single thread.
-
Tracking of Responses:
- The hierarchical structure allows users to easily track responses and understand the flow of arguments, enabling them to participate more effectively in discussions.
- Users can navigate through different branches of the discussion tree to explore various perspectives and viewpoints on the central idea or concept.
Impact rating is designed to indicate the perceived importance, relevance, or influence of a comment on the idea or concept, as rated by the participants in the discussion.
Details about Rating Scale, Comment Ranking, and Encouraging Quality Contributions remain as before.
-
Rating Scale:
- Comments can be rated by participants on a scale of 0 to 4, with 4 being the most impactful.
- The impact rating reflects the collective opinion of the participants regarding the significance of the comment to the central idea or concept.
-
Comment Ranking:
- Within the comment trees, comments are ranked based on their impactfulness rating.
- Higher-rated comments are prominently displayed at the top, ensuring they receive more visibility and consideration.
- Lower quality or less impactful responses are moved to the bottom, maintaining the focus on more relevant discussions.
-
Encouraging Quality Contributions:
- The impact rating system incentivizes quality contributions by giving more visibility and influence to higher-rated comments.
- It promotes thoughtful, well-articulated arguments and discourages unproductive or irrelevant comments, fostering a constructive discussion environment.
-
Thread Initiation:
- Any registered user can initiate a thread by proposing an idea or concept they wish to discuss. The original post serves as the root of the comment tree.
-
Thread Titles and Descriptions:
- Users must provide a clear and concise title for their idea/concept thread, along with an optional detailed description to elaborate further.
-
Thread Categories:
- To aid navigation and discoverability, users can assign their thread to a specific category or tag, such as "Technology," "Environment," "Philosophy," etc.
-
Thread Popularity and Trending:
- Threads that gather significant activity or high impact ratings may appear in a "trending" or "popular" section, enhancing their visibility on the platform.
-
Types of Notifications:
- Thread Notifications: Alert users when a new comment or sub-thread is added to a thread they initiated or participated in.
- Impact Rating Notifications: Notify users when their comment receives a new rating or reaches a significant impact threshold.
- User Engagement Notifications: Alert when someone replies directly to a user's comment or mentions them within a thread.
- General System Updates: Keep users informed about platform updates, enhancements, and other announcements.
-
Customizable Notification Preferences:
- Users can choose which types of notifications they want to receive and through which channels (email, in-app notifications, mobile app notifications, etc.).
- Options for immediate, daily, or weekly digests can be provided, depending on user preferences.
This schema defines the types, inputs & outputs that the system will use as an interface to allow communication between the front-end of the website and the back-end server
type Thread {
id: ID!
title: String!
description: String
category: Category!
comments: [Comment!]!
trendingScore: Float # Calculated based on activity and ratings. Higher values indicate trending threads.
createdAt: String!
createdBy: User!
}
type Comment {
id: ID!
content: String!
side: Side! # Either "SUPPORT" or "OPPOSITION"
parent: Comment # If null, it's a top-level comment under the thread. Otherwise, it's a response to another comment.
responses: [Comment!]!
impactRating: Float! # Average of all ratings given to this comment
createdAt: String!
createdBy: User!
}
enum Side {
SUPPORT
OPPOSITION
}
enum Category {
TECHNOLOGY
ENVIRONMENT
PHILOSOPHY
# ... other categories
}
type Rating {
id: ID!
value: Int! # 0 to 4 scale
ratedBy: User!
comment: Comment!
}
type Notification {
id: ID!
type: NotificationType!
content: String!
relatedThread: Thread
relatedComment: Comment
createdAt: String!
receivedBy: User!
}
enum NotificationType {
THREAD_NOTIFICATION
IMPACT_RATING_NOTIFICATION
USER_ENGAGEMENT_NOTIFICATION
SYSTEM_UPDATE
}
# Assuming the User type is defined elsewhere:
# type User {
# id: ID!
# name: String!
# email: String!
# # ... other user fields
# }
# Query and Mutation Definitions:
type Query {
getThread(id: ID!): Thread
getComments(threadId: ID!): [Comment!]
getNotification(userId: ID!): [Notification!]
# ... other queries
}
type Mutation {
createThread(title: String!, description: String, category: Category!): Thread!
addComment(threadId: ID!, content: String!, side: Side!, parentId: ID): Comment!
rateComment(commentId: ID!, value: Int!): Rating!
# ... other mutations
}