{
  "name": "Money Heist",
  "queries": [
    {
      "query": "MATCH (n)-[r]->(m)\nRETURN n,r,m;",
      "id": "08e6a56f-4163-4e66-950c-4a93589c13e3",
      "name": "See the whole database",
      "description": "Let's see what we stored in the database.",
      "order": 0,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle HasLabel(node, \"Season\") {\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n}\n\n@NodeStyle HasLabel(node, \"Episode\") {\n  color: #FB6E00\n  color-hover: Lighter(#FB6E00)\n  color-selected: Lighter(#FB6E00)\n}\n\n@NodeStyle HasLabel(node, \"Character\") {\n  color: #FFC500\n  color-hover: Lighter(#FFC500)\n  color-selected: Lighter(#FFC500)\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    },
    {
      "query": "MATCH (e:Episode)\nWITH reduce(synopsis = \"\", ep in collect(e) | synopsis + ep.synopsis + \" \") as text\nUNWIND split(text, \" \") as word\nWITH toLower(word) as word, count(*) as freq\nWHERE word <> \"\" AND NOT word IN [\"a\", \"an\", \"the\", \"of\", \"in\", \"to\", \"for\", \"on\", \"and\", \"with\", \"at\", \"from\", \"by\", \"is\", \"was\", \"were\", \"that\", \"this\", \"these\", \"those\", \"it\", \"its\", \"they\", \"them\", \"we\", \"us\", \"he\", \"him\", \"she\", \"her\"]\nRETURN word, freq\nORDER BY freq DESC\nLIMIT 10;\n",
      "id": "30a95ead-1046-4d35-afb0-919aeb4c1ad3",
      "name": "Find the top 10 most common words in all episode synopses",
      "description": "",
      "order": 1,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    },
    {
      "query": "MATCH (c:Character)-[:APPEARED_IN]->(e:Episode)\nRETURN c.name, count(*) AS episodeCount\nORDER BY episodeCount DESC\nLIMIT 10;\n",
      "id": "52767ac3-1595-440c-8580-880c079a81f5",
      "name": "Find the characters who appeared in the most episodes",
      "description": "",
      "order": 2,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    },
    {
      "query": "MATCH (s:Season)-[:CONTAINS]->(e:Episode)\nRETURN s.title, count(*) AS episodeCount\nORDER BY episodeCount DESC\nLIMIT 1;\n",
      "id": "32d4a55f-d561-4503-8a02-4814f16e35fa",
      "name": "Find the season with the most episodes",
      "description": "",
      "order": 3,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    },
    {
      "query": "MATCH (e:Episode)\nRETURN e.title, size(e.synopsis) AS synopsisLength\nORDER BY synopsisLength DESC\nLIMIT 1;\n",
      "id": "7b3074b9-b580-456d-81fc-3117028e19d6",
      "name": "Find the episodes with the longest synopses",
      "description": "",
      "order": 4,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    },
    {
      "query": "MATCH (e:Episode)\nWITH e, SIZE(SPLIT(e.synopsis, ' ')) AS wordCount\nORDER BY wordCount DESC\nLIMIT 1\nRETURN e.title, wordCount;\n",
      "id": "2ccec15e-f319-4c1a-9c4a-c6df0822f230",
      "name": "Find the episodes with synopses with highest word count",
      "description": "",
      "order": 5,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    },
    {
      "query": "MATCH (c:Character)-[:APPEARED_IN]->(e:Episode)<-[:CONTAINS]-(s:Season)\nWITH c, count(DISTINCT s) as seasons\nWHERE seasons = 5\nRETURN c.name;\n",
      "id": "c24aeb61-9fe8-4be0-871d-db541c3365e1",
      "name": "Find the characters who appeared in all 5 seasons",
      "description": "",
      "order": 6,
      "style": {
        "code": "\n@NodeStyle {\n  size: 6\n  color: #DD2222\n  color-hover: Lighter(#DD2222)\n  color-selected: Lighter(#DD2222)\n  border-width: 0.6\n  border-color: #1d1d1d\n  font-size: 3\n}\n\n@NodeStyle Greater(Size(Labels(node)), 0) {\n  label: Format(\":{}\", Join(Labels(node), \" :\"))\n}\n\n@NodeStyle HasProperty(node, \"name\") {\n  label: AsText(Property(node, \"name\"))\n}\n\nDefine(LATITUDE_FIELD, \"lat\")\nDefine(LONGITUDE_FIELD, \"lng\")\n\n@NodeStyle And(IsNumber(Property(node, LATITUDE_FIELD)), IsNumber(Property(node, LONGITUDE_FIELD))) {\n  latitude: Property(node, LATITUDE_FIELD)\n  longitude: Property(node, LONGITUDE_FIELD)\n}\n\n\n@EdgeStyle {\n  color: #999999\n  color-hover: #1d1d1d\n  color-selected: #1d1d1d\n  width: 0.3\n  width-hover: 0.9\n  width-selected: 0.9\n  font-size: 3\n}\n\n@EdgeStyle Less(EdgeCount(graph), 30) {\n  label: Type(edge)\n}\n\n@ViewStyle.Map {\n  tile-layer: \"light\"\n}\n"
      }
    }
  ],
  "id": 8,
  "order": 8
}