Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions GameOfThrones/Characters.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
[
{ "_key": "NedStark", "name": "Ned", "surname": "Stark", "alive": true, "age": 41, "traits": ["A","H","C","N","P"] },
{ "_key": "RobertBaratheon", "name": "Robert", "surname": "Baratheon", "alive": false, "traits": ["A","H","C"] },
{ "_key": "JaimeLannister", "name": "Jaime", "surname": "Lannister", "alive": true, "age": 36, "traits": ["A","F","B"] },
{ "_key": "CatelynStark", "name": "Catelyn", "surname": "Stark", "alive": false, "age": 40, "traits": ["D","H","C"] },
{ "_key": "CerseiLannister", "name": "Cersei", "surname": "Lannister", "alive": true, "age": 36, "traits": ["H","E","F"] },
{ "_key": "DaenerysTargaryen", "name": "Daenerys", "surname": "Targaryen", "alive": true, "age": 16, "traits": ["D","H","C"] },
{ "_key": "JorahMormont", "name": "Jorah", "surname": "Mormont", "alive": false, "traits": ["A","B","C","F"] },
{ "_key": "PetyrBaelish", "name": "Petyr", "surname": "Baelish", "alive": false, "traits": ["E","G","F"] },
{ "_key": "ViserysTargaryen", "name": "Viserys", "surname": "Targaryen", "alive": false, "traits": ["O","L","N"] },
{ "_key": "JonSnow", "name": "Jon", "surname": "Snow", "alive": true, "age": 16, "traits": ["A","B","C","F"] },
{ "_key": "SansaStark", "name": "Sansa", "surname": "Stark", "alive": true, "age": 13, "traits": ["D","I","J"] },
{ "_key": "AryaStark", "name": "Arya", "surname": "Stark", "alive": true, "age": 11, "traits": ["C","K","L"] },
{ "_key": "RobbStark", "name": "Robb", "surname": "Stark", "alive": false, "traits": ["A","B","C","K"] },
{ "_key": "TheonGreyjoy", "name": "Theon", "surname": "Greyjoy", "alive": true, "age": 16, "traits": ["E","R","K"] },
{ "_key": "BranStark", "name": "Bran", "surname": "Stark", "alive": true, "age": 10, "traits": ["L","J"] },
{ "_key": "JoffreyBaratheon", "name": "Joffrey", "surname": "Baratheon", "alive": false, "age": 19, "traits": ["I","L","O"] },
{ "_key": "SandorClegane", "name": "Sandor", "surname": "Clegane", "alive": true, "traits": ["A","P","K","F"] },
{ "_key": "TyrionLannister", "name": "Tyrion", "surname": "Lannister", "alive": true, "age": 32, "traits": ["F","K","M","N"] },
{ "_key": "KhalDrogo", "name": "Khal", "surname": "Drogo", "alive": false, "traits": ["A","C","O","P"] },
{ "_key": "TywinLannister", "name": "Tywin", "surname": "Lannister", "alive": false, "traits": ["O","M","H","F"] },
{ "_key": "DavosSeaworth", "name": "Davos", "surname": "Seaworth", "alive": true, "age": 49, "traits": ["C","K","P","F"] },
{ "_key": "SamwellTarly", "name": "Samwell", "surname": "Tarly", "alive": true, "age": 17, "traits": ["C","L","I"] },
{ "_key": "StannisBaratheon", "name": "Stannis", "surname": "Baratheon", "alive": false, "traits": ["H","O","P","M"] },
{ "_key": "Melisandre", "name": "Melisandre", "alive": true, "traits": ["G","E","H"] },
{ "_key": "MargaeryTyrell", "name": "Margaery", "surname": "Tyrell", "alive": false, "traits": ["M","D","B"] },
{ "_key": "JeorMormont", "name": "Jeor", "surname": "Mormont", "alive": false, "traits": ["C","H","M","P"] },
{ "_key": "Bronn", "name": "Bronn", "alive": true, "traits": ["K","E","C"] },
{ "_key": "Varys", "name": "Varys", "alive": true, "traits": ["M","F","N","E"] },
{ "_key": "Shae", "name": "Shae", "alive": false, "traits": ["M","D","G"] },
{ "_key": "TalisaMaegyr", "name": "Talisa", "surname": "Maegyr", "alive": false, "traits": ["D","C","B"] },
{ "_key": "Gendry", "name": "Gendry", "alive": false, "traits": ["K","C","A"] },
{ "_key": "Ygritte", "name": "Ygritte", "alive": false, "traits": ["A","P","K"] },
{ "_key": "TormundGiantsbane", "name": "Tormund", "surname": "Giantsbane", "alive": true, "traits": ["C","P","A","I"] },
{ "_key": "Gilly", "name": "Gilly", "alive": true, "traits": ["L","J"] },
{ "_key": "BrienneTarth", "name": "Brienne", "surname": "Tarth", "alive": true, "age": 32, "traits": ["P","C","A","K"] },
{ "_key": "RamsayBolton", "name": "Ramsay", "surname": "Bolton", "alive": true, "traits": ["E","O","G","A"] },
{ "_key": "EllariaSand", "name": "Ellaria", "surname": "Sand", "alive": true, "traits": ["P","O","A","E"] },
{ "_key": "DaarioNaharis", "name": "Daario", "surname": "Naharis", "alive": true, "traits": ["K","P","A"] },
{ "_key": "Missandei", "name": "Missandei", "alive": true, "traits": ["D","L","C","M"] },
{ "_key": "TommenBaratheon", "name": "Tommen", "surname": "Baratheon", "alive": true, "traits": ["I","L","B"] },
{ "_key": "JaqenHghar", "name": "Jaqen", "surname": "H'ghar", "alive": true, "traits": ["H","F","K"] },
{ "_key": "RooseBolton", "name": "Roose", "surname": "Bolton", "alive": true, "traits": ["H","E","F","A"] },
{ "_key": "TheHighSparrow", "name": "The High Sparrow", "alive": true, "traits": ["H","M","F","O"] }
]
16 changes: 16 additions & 0 deletions GameOfThrones/ChildOf.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[
{"_to": "Characters/NedStark", "_from": "Characters/RobbStark" },
{"_to": "Characters/NedStark", "_from": "Characters/SansaStark" },
{"_to": "Characters/NedStark", "_from": "Characters/AryaStark" },
{"_to": "Characters/NedStark", "_from": "Characters/BranStark" },
{"_to": "Characters/CatelynStark", "_from": "Characters/RobbStark" },
{"_to": "Characters/CatelynStark", "_from": "Characters/SansaStark" },
{"_to": "Characters/CatelynStark", "_from": "Characters/AryaStark" },
{"_to": "Characters/CatelynStark", "_from": "Characters/BranStark" },
{"_to": "Characters/NedStark", "_from": "Characters/JonSnow" },
{"_to": "Characters/TywinLannister", "_from": "Characters/JaimeLannister" },
{"_to": "Characters/TywinLannister", "_from": "Characters/CerseiLannister" },
{"_to": "Characters/TywinLannister", "_from": "Characters/TyrionLannister" },
{"_to": "Characters/CerseiLannister", "_from": "Characters/JoffreyBaratheon" },
{"_to": "Characters/JaimeLannister", "_from": "Characters/JoffreyBaratheon" }
]
10 changes: 10 additions & 0 deletions GameOfThrones/Locations.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[
{ "name": "Dragonstone", "coordinate": [ 55.167801, -6.815096 ] },
{ "name": "King's Landing", "coordinate": [ 42.639752, 18.110189 ] },
{ "name": "The Red Keep", "coordinate": [ 35.896447, 14.446442 ] },
{ "name": "Yunkai", "coordinate": [ 31.046642, -7.129532 ] },
{ "name": "Astapor", "coordinate": [ 31.50974, -9.774249 ] },
{ "name": "Winterfell", "coordinate": [ 54.368321, -5.581312 ] },
{ "name": "Vaes Dothrak", "coordinate": [ 54.16776, -6.096125 ] },
{ "name": "Beyond the wall", "coordinate": [ 64.265473, -21.094093 ] }
]
11 changes: 11 additions & 0 deletions GameOfThrones/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Game of Thrones dataset
=======================

This is a small dataset of characters from the novel and fantasy drama television
series Game of Thrones (as of season 1). It includes character traits in two
languages, some family relations, and a small set of filming locations.

See the [AQL tutorial](https://docs.arangodb.com/latest/AQL/Tutorial/) for queries.

To create the necessary collections with indexes, import the JSON data and create
a named graph for visualization purposes, run the `import.js` script with arangosh.
20 changes: 20 additions & 0 deletions GameOfThrones/Traits.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[
{ "_key": "A", "en": "strong", "de": "stark" },
{ "_key": "B", "en": "polite", "de": "freundlich" },
{ "_key": "C", "en": "loyal", "de": "loyal" },
{ "_key": "D", "en": "beautiful", "de": "schön" },
{ "_key": "E", "en": "sneaky", "de": "hinterlistig" },
{ "_key": "F", "en": "experienced", "de": "erfahren" },
{ "_key": "G", "en": "corrupt", "de": "korrupt" },
{ "_key": "H", "en": "powerful", "de": "einflussreich" },
{ "_key": "I", "en": "naive", "de": "naiv" },
{ "_key": "J", "en": "unmarried", "de": "unverheiratet" },
{ "_key": "K", "en": "skillful", "de": "geschickt" },
{ "_key": "L", "en": "young", "de": "jung" },
{ "_key": "M", "en": "smart", "de": "klug" },
{ "_key": "N", "en": "rational", "de": "rational" },
{ "_key": "O", "en": "ruthless", "de": "skrupellos" },
{ "_key": "P", "en": "brave", "de": "mutig" },
{ "_key": "Q", "en": "mighty", "de": "mächtig" },
{ "_key": "R", "en": "weak", "de": "schwach" }
]
29 changes: 29 additions & 0 deletions GameOfThrones/import.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// Create and switch to a fresh database
const database = "GameOfThrones"
try {
db._dropDatabase(database);
} catch(e) {}
db._createDatabase(database);
db._useDatabase(database);

// Create vertex and edge collections
let chars = db._create("Characters");
let traits = db._create("Traits");
let childof = db._createEdgeCollection("ChildOf");
let locs = db._create("Locations");

// Import documents to collections
const internal = require("internal")
chars.save(internal.load(__dirname + "/Characters.json"));
traits.save(internal.load(__dirname + "/Traits.json"));
childof.save(internal.load(__dirname + "/ChildOf.json"));
locs.save(internal.load(__dirname + "/Locations.json"));

// Add geospatial index for coordinate attribute of Locations
locs.ensureIndex({ type: "geo", fields: ["coordinate"] });

// Create named graph for visualization purposes (optional)
const graph_module = require("@arangodb/general-graph");
let graph = graph_module._create("GameOfThrones");
let rel = graph_module._relation("ChildOf", ["Characters"], ["Characters"]);
graph._extendEdgeDefinitions(rel);
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
ArangoDB Example graph data
===========================

This repository contains [datasets organized in graphs to be used with the ArangoDB Graph database](https://github.com/arangodb/arangodb).

[Read more about ArangoDB and graphs here.](https://docs.arangodb.com/latest/Manual/Graphs)
More about ArangoDB and graphs: [Graph documentation](https://docs.arangodb.com/latest/Manual/Graphs)

Fake user data
==============

Expand Down Expand Up @@ -220,6 +222,7 @@ This dataset has been used for the [screencast of the graph visualisation tool](

Debian Dependency Graph
========================

The [debian linux distribution](http://debian.org) consists of packages, which relate to each others by dependencies, which demand or recommend other packages to be installed.
Also conflicts are a possible relation, which prohibits two packages to be installed at once.
The script used to [gather this graph data is available alongside with pyarango](https://github.com/tariqdaouda/pyArango/blob/master/examples/debiangraph.py).
Expand All @@ -238,3 +241,9 @@ unix> arangorestore --input-directory DebianDependencyGraph/ \

Using the [ArangoDB graph viewer](https://github.com/arangodb/arangodb), we can browse random starting points in the graph:
![graph screenshot](DebianDependencyGraph/debian_dependency_graph.png)

Game of Thrones
===============

Small, multi-purpose dataset including a small graph of parents and children (`Characters --ChildOf--> Characters`).
See [README](GameOfThrones/README.md) for details.