{
  "format": "dataset-manifest/1",
  "slug": "interactive-drama-and-role-playing-game-rpg",
  "version": 1,
  "seed": "interactive-drama-and-role-playing-game-rpg:1",
  "spec": {
    "format": "dataset/1",
    "slug": "interactive-drama-and-role-playing-game-rpg",
    "name": "Interactive Narrative Data",
    "tagline": "Character stats, faction details, skills, items, quests, and relationships from interactive narrative games.",
    "description": "Players embark on journeys filled with captivating choices and intricate storytelling, immersing themselves in a world where character development drives the adventure. Each character possesses unique traits, skills, and relationships that evolve over time. Players may choose to ally with various factions, each offering distinct advantages, quests, and items that enhance their gameplay experience. The balance of power among factions can shift based on players' decisions, creating a dynamic environment where alliances and rivalries flourish.\n\nThe dataset includes characters, factions, skills, items, quests, and character_relationships. Each row in the characters table represents a distinct character, detailing their attributes and backstory. The factions table outlines the different groups players can join, specifying faction goals and relationships with other factions. Skills illustrate the abilities that characters can develop, while items track the equipment players can collect, including both common gear and rare legendary items. The quests table lists various missions, complete with objectives and outcomes. Lastly, character_relationships define the connections between characters, highlighting how their interactions impact gameplay.\n\nThis dataset allows developers to explore various scenarios within the gaming realm, answering questions about character progression, item management, and quest dynamics. By analyzing how relationships influence faction allegiances and character choices, practitioners can design better gameplay mechanics and enhance user experiences. Synthetic in nature, the data serves as an excellent practice ground for developers looking to hone their skills in database management, data analysis, and game design.",
    "domain": "gaming",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "RPG",
      "narrative",
      "character development",
      "quests",
      "factions",
      "inventory",
      "skills",
      "gaming"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "characters": {
        "description": "This table holds information about each character in the game, including their attributes and the factions they belong to. Each character can have multiple skills and items linked through foreign keys.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each character."
          },
          "name": {
            "kind": "fullName",
            "description": "The full name of the character."
          },
          "level": {
            "kind": "int",
            "min": 1,
            "max": 50,
            "description": "The current level of the character."
          },
          "faction_id": {
            "kind": "fk",
            "ref": "factions.id",
            "description": "The faction the character belongs to."
          },
          "experience": {
            "kind": "int",
            "min": 0,
            "max": 100000,
            "description": "Total experience points accumulated by the character.",
            "nullable": true
          }
        }
      },
      "factions": {
        "description": "This table represents the various factions that characters can belong to, detailing their influence and goals within the game world.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each faction."
          },
          "name": {
            "kind": "words",
            "min": 3,
            "max": 15,
            "description": "The name of the faction."
          },
          "influence": {
            "kind": "int",
            "min": 1,
            "max": 100,
            "description": "The influence level of the faction within the game.",
            "nullable": true
          }
        }
      },
      "skills": {
        "description": "This table catalogs the skills available to characters, including their effects and the characters that possess them.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each skill."
          },
          "name": {
            "kind": "words",
            "min": 3,
            "max": 15,
            "description": "The name of the skill."
          },
          "description": {
            "kind": "sentence",
            "max": 200,
            "description": "A brief description of what the skill does.",
            "nullable": true
          },
          "character_id": {
            "kind": "fk",
            "ref": "characters.id",
            "description": "The character who possesses this skill."
          }
        }
      },
      "items": {
        "description": "This table contains various items that characters can acquire, including their types and effects.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each item."
          },
          "name": {
            "kind": "words",
            "min": 3,
            "max": 15,
            "description": "The name of the item."
          },
          "item_type": {
            "kind": "enum",
            "values": [
              "common",
              "legendary"
            ],
            "description": "The type of the item."
          },
          "effect": {
            "kind": "sentence",
            "max": 200,
            "description": "Description of the item's effect.",
            "nullable": true,
            "when": {
              "column": "item_type",
              "in": [
                "common"
              ]
            }
          },
          "character_id": {
            "kind": "fk",
            "ref": "characters.id",
            "description": "The character who owns this item."
          }
        }
      },
      "quests": {
        "description": "This table details the quests available to characters, including their objectives and completion status.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each quest."
          },
          "title": {
            "kind": "words",
            "min": 3,
            "max": 20,
            "description": "The title of the quest."
          },
          "description": {
            "kind": "paragraph",
            "max": 500,
            "description": "Detailed description of the quest objectives.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "completed"
              ]
            }
          },
          "status": {
            "kind": "enum",
            "values": [
              "not started",
              "in progress",
              "completed"
            ],
            "description": "Current status of the quest."
          },
          "character_id": {
            "kind": "fk",
            "ref": "characters.id",
            "description": "The character associated with this quest."
          }
        }
      },
      "character_relationships": {
        "description": "This table tracks the relationships between characters, indicating their interactions and alliances.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each relationship."
          },
          "character_id_1": {
            "kind": "fk",
            "ref": "characters.id",
            "description": "One character in the relationship."
          },
          "character_id_2": {
            "kind": "fk",
            "ref": "characters.id",
            "description": "The other character in the relationship.",
            "nullable": true,
            "when": {
              "column": "relationship_type",
              "in": [
                "enemy"
              ]
            }
          },
          "relationship_type": {
            "kind": "enum",
            "values": [
              "friend",
              "enemy",
              "ally"
            ],
            "description": "Type of relationship between the characters."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "self-referencing",
      "nullable"
    ],
    "analysisQuestions": [
      "How do character levels affect quest completion rates?",
      "What items are most commonly owned by characters in each faction?",
      "Which relationships are most prevalent among characters?",
      "How does experience correlate with the types of skills acquired?",
      "What is the average influence of factions in relation to character levels?"
    ],
    "suggestedQueries": [
      {
        "title": "List all characters and their factions",
        "sql": "SELECT characters.name, factions.name AS faction_name FROM characters JOIN factions ON characters.faction_id = factions.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count quests by status for each character",
        "sql": "SELECT characters.name, quests.status, COUNT(quests.id) AS quest_count FROM characters LEFT JOIN quests ON characters.id = quests.character_id GROUP BY characters.name, quests.status;",
        "dialect": "postgres"
      },
      {
        "title": "Find characters with common items",
        "sql": "SELECT characters.name, COUNT(items.id) AS common_item_count FROM characters JOIN items ON characters.id = items.character_id WHERE items.item_type = 'common' GROUP BY characters.name;",
        "dialect": "postgres"
      },
      {
        "title": "Get average level of characters in each faction",
        "sql": "SELECT factions.name, AVG(characters.level) AS average_level FROM factions JOIN characters ON factions.id = characters.faction_id GROUP BY factions.name;",
        "dialect": "postgres"
      },
      {
        "title": "List relationships between characters",
        "sql": "SELECT c1.name AS character_1, c2.name AS character_2, character_relationships.relationship_type FROM character_relationships JOIN characters AS c1 ON character_relationships.character_id_1 = c1.id JOIN characters AS c2 ON character_relationships.character_id_2 = c2.id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Game Developers",
        "body": "Game developers can use this dataset to simulate and analyze player behavior in RPGs. By examining character interactions, skill development, and quest completion, they can gain insights into how to design engaging narratives that respond to player choices."
      },
      {
        "title": "Educators",
        "body": "Educators can utilize this dataset in teaching SQL and database design. The structure allows students to practice complex queries that reflect real-world scenarios in gaming, enhancing their understanding of relational databases through interactive examples."
      },
      {
        "title": "Data Analysts",
        "body": "Data analysts can leverage this dataset to explore trends in player engagement and progression. By analyzing character levels, faction influences, and inventory management, they can provide valuable feedback to improve game mechanics and player satisfaction."
      },
      {
        "title": "Game Testers",
        "body": "Game testers can use this dataset to create test cases for character interactions and quest outcomes. By simulating different scenarios, they can identify potential issues in gameplay mechanics and ensure a smooth player experience."
      }
    ]
  },
  "counts": {
    "factions": 10,
    "characters": 200,
    "character_relationships": 300,
    "items": 150,
    "quests": 50,
    "skills": 100
  },
  "stats": {
    "characters": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "name": {
          "nulls": 0,
          "distinct": 198,
          "min": "Alice Almeida",
          "max": "Zoe Hoffmann"
        },
        "level": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "faction_id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "experience": {
          "nulls": 26,
          "distinct": 174,
          "min": 236,
          "max": 98300
        }
      }
    },
    "factions": {
      "rows": 10,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "name": {
          "nulls": 0,
          "distinct": 10
        },
        "influence": {
          "nulls": 0,
          "distinct": 10,
          "min": 23,
          "max": 97
        }
      }
    },
    "skills": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 100
        },
        "description": {
          "nulls": 8,
          "distinct": 92
        },
        "character_id": {
          "nulls": 0,
          "distinct": 81,
          "min": 3,
          "max": 200
        }
      }
    },
    "items": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "name": {
          "nulls": 0,
          "distinct": 150
        },
        "item_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "common",
          "max": "legendary"
        },
        "effect": {
          "nulls": 76,
          "distinct": 74
        },
        "character_id": {
          "nulls": 0,
          "distinct": 107,
          "min": 1,
          "max": 199
        }
      }
    },
    "quests": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "title": {
          "nulls": 0,
          "distinct": 50
        },
        "description": {
          "nulls": 29,
          "distinct": 21
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "completed",
          "max": "not started"
        },
        "character_id": {
          "nulls": 0,
          "distinct": 43,
          "min": 4,
          "max": 198
        }
      }
    },
    "character_relationships": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "character_id_1": {
          "nulls": 0,
          "distinct": 151,
          "min": 1,
          "max": 200
        },
        "character_id_2": {
          "nulls": 203,
          "distinct": 79,
          "min": 2,
          "max": 197
        },
        "relationship_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "ally",
          "max": "friend"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/factions.csv",
      "format": "csv",
      "table": "factions",
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/factions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/factions.csv",
      "bytes": 946,
      "sha256": "a54ea3e43993449513388bdd9334be956864ce1ac07d8659bcc5d284aa8a011c",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/characters.csv",
      "format": "csv",
      "table": "characters",
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/characters.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/characters.csv",
      "bytes": 5375,
      "sha256": "3424b492ab9b6d3e92b3cbce0548fd24b31f3f0d691eb624eb4461ca0cc4a4ff",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/character_relationships.csv",
      "format": "csv",
      "table": "character_relationships",
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/character_relationships.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/character_relationships.csv",
      "bytes": 4850,
      "sha256": "5f1b919fb07bbf2825010c0819c628b9a690a8326e026c37880963198420f25d",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/items.csv",
      "format": "csv",
      "table": "items",
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/items.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/items.csv",
      "bytes": 15700,
      "sha256": "67b2f9ebb024d34b0273fc3781c2574554a2e3266011a593ac6aed6b53114cda",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/quests.csv",
      "format": "csv",
      "table": "quests",
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/quests.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/quests.csv",
      "bytes": 8422,
      "sha256": "3ad645c6f1fdb77442b9fd9df6c11a815f8f0781bf9d3f55f175db064dd54070",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/skills.csv",
      "format": "csv",
      "table": "skills",
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/skills.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/csv/skills.csv",
      "bytes": 11698,
      "sha256": "3de4743e1fa0c77c2e13eb805286c8eae858d5c9d58576708ed1614467349c55",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "interactive-drama-and-role-playing-game-rpg.json",
      "format": "json",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/interactive-drama-and-role-playing-game-rpg.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/interactive-drama-and-role-playing-game-rpg.json",
      "bytes": 129517,
      "sha256": "1b29af02238f349f56cc0743ffa63c6054a6ef6fc946c60ab17dcad685bfacd8",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/postgres.sql",
      "bytes": 61677,
      "sha256": "8cb505c84ec42f6f4ad5b797cef93b4f59a49e0c3714325f3ce98a38c6d5537b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/mysql.sql",
      "bytes": 60982,
      "sha256": "994a24d48fa0b2d7828de52c47c27abb69166b5593ce3c48deb209b2a953ebc5",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/mssql.sql",
      "bytes": 62600,
      "sha256": "c16dd64a4501d89c68ad51d75553124489b4ebe9906eeb2bafaac7276f9d1f9a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/sql/sqlite.sql",
      "bytes": 60673,
      "sha256": "b277ec0b628f38878208a87fef4d0e7daabb72e2e1fe791f2247b52a9b922cef",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/prisma/seed.ts",
      "bytes": 104725,
      "sha256": "1cd94459f17623a71e869f8274c9138bec4e62a9cca3d921fb2703d7a3ecc909",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/interactive-drama-and-role-playing-game-rpg/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/interactive-drama-and-role-playing-game-rpg/v1/django/fixtures.json",
      "bytes": 167377,
      "sha256": "9f8b010597939ad9ac4354a6cfc761aec0e3bc5e0ba9242b50b44af77ef29663",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788765986210,
  "updatedAt": 1788765986210
}
