Skip to content

Create sub-groups within a group #32

@mayel

Description

@mayel

"As a group admin, I want to create sub-groups within my group, so members can organize discussions by topic."

Besides linking related groups (see #31), we implemented a tree structure where:

  • Groups can contain child groups (channels/topics)
  • Channels inherit properties from parent groups
  • Members can browse by channel or see all group content

Existing approaches:

  • Schema.org: hasPart/isPartOf for parent-child relationships
  • Nodebb: Nested categories

Suggested representation for a parent group:

{
  "type": "Group",
  "id": "https://example.org/groups/programming",
  "name": "Programming",
  "attributedTo": ["https://example.org/actors/alice"],
  "hasPart": [
    {"type": "Group", "id": "https://example.org/groups/programming/rust", "name": "Rust"},
    {"type": "Group", "id": "https://example.org/groups/programming/python", "name": "Python"},
    {"type": "Group", "id": "https://example.org/groups/programming/elixir", "name": "Elixir"}
  ]

Suggested representation for a child group:

{
  "type": "Group",
  "id": "https://example.org/groups/programming/rust",
  "name": "Rust",
  "isPartOf": "https://example.org/groups/programming",
  "attributedTo": ["https://example.org/groups/programming/attributedTo"],
  "interactionPolicy": {
    "canJoin": { "automaticApproval": ["https://example.org/groups/programming/followers"] },
    "canModerate": { "automaticApproval": ["https://example.org/groups/programming/attributedTo"] }

Key patterns:

  • isPartOf links to parent group (we could also use context but this makes more sense if also using hasPart for child groups)
  • Child can reference parent's collections in interactionPolicy for permission inheritance
  • Child can have its own attributedTo or reference parent's

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions