{ "cells": [ { "cell_type": "markdown", "id": "eab505f3", "metadata": {}, "source": [ "Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n", "SPDX-License-Identifier: Apache-2.0\n", "\n", "# Learning openCypher - Ordering, Functions, and Grouping\n", "\n", "This notebook is the third in a series of notebooks that walk through how to write queries using openCypher. \n", "\n", "This notebook will build upon the items convered in the notebook \"01-Basic-Read-Queries\" and \"02-Variable-Length-Paths\". If you have not loaded the data from those notebooks, please follow the steps in the [Getting Started](#Getting-Started) section below. If you have loaded the data, then you can jump ahead to the [Setting up the visualizations](#Setting-up-the-visualizations) section.\n", "\n", "## Getting Started\n", "\n", "For these notebooks, we will be leveraging a dataset from the book [Graph Databases in Action](https://www.manning.com/books/graph-databases-in-action?a_aid=bechberger) from Manning Publications. \n", "\n", "\n", "**Note:** These notebooks do not cover data modeling or building a data loading pipeline. If you would like a more detailed description about how this dataset is constructed and the design of the data model came from, then please read the book.\n", "\n", "To get started, the first step is to load data into the cluster. Assuming the cluster is empty, this can be accomplished by running the cell below which will load our Dining By Friends data.\n", "\n", "### Loading Data" ] }, { "cell_type": "code", "execution_count": null, "id": "df7f476a-95f7-43f3-8f87-79ac8c05c65f", "metadata": {}, "outputs": [], "source": [ "%seed --model Property_Graph --dataset dining_by_friends --run" ] }, { "attachments": { "image-3.png": { "image/png": "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nLouOprairHQoUMHZey0adOG2ANzR9sLFy4ow8c0h/vvv18t4bqjYim6ACOjFD1sTBUEQAAEQAAEQAAESpJAv379aMGCBSTGgHwRF69CYmLiLSp069ZNfZbjM888Q7xMisQrIXEaUn788UcaMGCA8hCoC/yPGBO8bEoZBT179qSKFSvSs88+S82aNaMvv/ySJDNU3bp1VewGr0tScRymtrkdhw4dSrNnzyZJXbt27VplvEhd0YWXapHEdTRv3pwk1sNUJCZDDAvRT4yixx57TMWU8BIr4uVbpmo4ggAIgAAIgAAIgAAIgAAIFIZAXjEZHKitYiPYK6D5+/urmAoJRpCYjI0bN2bFJfzyyy8q7kHqiEhcRHJysqon8RoS1zFy5EgV9yCxEVOmTFExEyEhIRp7OlQ9acd6a5x5SvU7a9Ys9VmuS6yF3MurHDp0SI0tuprGlNgLXgKlrksMSZMmTVRsiBwlNkTqdezYUWNDQ3vxxRez2rdv317FkeQ1nm7uWSgmw6EwP0SoCwIgAAIgAAIgAAIgAALZCfC3d4flA/sbe879N/vlW84lrqJChQpZS6VuuZn5QZY4yfIqyc5kWlIltyQuo1KlSuqaeAt8fHzIYDCQZIOSZVCOjo6qBzY+lEcj+9IoyVIl9apXr67qSCarnPa+kDiPTp06Ke+IeFyCgoJu0UG8GzIHyTwlhYPXqWzZsiqDlHhmTGPKeKKjxKDYTGFPz/LBA6jX3/PNahfciLyxGQpQFARAAARAAARAAARAwNYIBAYG5quyBHpLPMbtpVq1almX/Pz8ss7F2Mheateunf2jOvf19SURU5GlWBEREaaPWUeJ6ZAix5z6EaPHZGBIPTEwpIixYzIw5PPt48m10lpgZJTWJ495gwAIgAAIgAAIgIAZCZyaO9uMvVmuq7tzikhOSyFb0d9yZMzbM4wM8/JEbyAAAiAAAiAAAiBQ6gg4uriEnpk/r9TN214mzM/PXqaCeYAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACICATgj8H6iA91Cy2yAyAAAAAElFTkSuQmCC" } }, "cell_type": "markdown", "id": "48e9a85f", "metadata": {}, "source": [ "### Looking at our graph data\n", "\n", "As we examined the data model in the previous notebook, we are not going to examine it, however we will leave the data schema for reference.\n", "\n", "![image-3.png](attachment:image-3.png)" ] }, { "cell_type": "markdown", "id": "0c12469c", "metadata": {}, "source": [ "### Setting up the visualizations\n", "\n", "Run the next two cells to configure various display options for our notebook, which we will use later on to display our results in a pleasing visual way. " ] }, { "cell_type": "code", "execution_count": null, "id": "6e655017", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%graph_notebook_vis_options\n", "{\n", " \"groups\": { \n", " \"person\": {\n", " \"color\": \"#9ac7bf\"\n", " },\n", " \"review\": {\n", " \"color\": \"#f8cecc\"\n", " },\n", " \"city\": {\n", " \"color\": \"#d5e8d4\"\n", " },\n", " \"state\": {\n", " \"color\": \"#dae8fc\"\n", " },\n", " \"review_rating\": {\n", " \"color\": \"#e1d5e7\"\n", " },\n", " \"restaurant\": {\n", " \"color\": \"#ffe6cc\"\n", " },\n", " \"cusine\": {\n", " \"color\": \"#fff2cc\"\n", " }\n", " }\n", "}" ] }, { "cell_type": "code", "execution_count": null, "id": "d5c80800", "metadata": { "tags": [] }, "outputs": [], "source": [ "node_labels = '{\"person\":\"first_name\",\"city\":\"name\",\"state\":\"name\",\"restaurant\":\"name\",\"cusine\":\"name\"}'" ] }, { "cell_type": "markdown", "id": "ab986dac", "metadata": {}, "source": [ "\n", "## Ordering Results\n", "\n", "The second law of thermodynamics states that in any process the entropy of the system is always increasing. However, when working with data, one common requirement is to return that data in a consistent and ordered fashion. \n", "\n", "By default, data returned from an openCypher query does not have a specified order. To give our data a consistent order we must uss the `ORDER BY` clause. This clause enables you sort your results using the values that a query can return, such as nodes/edges, ID values, as well as via many expressions. \n", "\n", "**Note:** When the data being ordered contains a `null` value, these will be sorted to the end of the results for ascending sort order and the beginning of the list for descending sort order.\n", "\n", "\n", "### Ordering by a property\n", "\n", "The simplest ordering in openCypher is to specify a single property. This is accomplished using the syntax `ORDER BY .`. By default, items are ordered in ascending order and descending order can be specified using `ORDER BY . DESC`. \n", "\n", "Let's first look at what our data looks like to find all the `restaurant` nodes in our graph and return the `name` property." ] }, { "cell_type": "code", "execution_count": null, "id": "f7a0df81", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name" ] }, { "cell_type": "markdown", "id": "91e99c64", "metadata": {}, "source": [ "As we see, there is no discernible order to the values returned. \n", "\n", "Let's see how to order our data by executing the query below to find all the `restaurant` nodes in our graph and order them by the `name` property in descending order." ] }, { "cell_type": "code", "execution_count": null, "id": "deabe58e", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name\n", "ORDER BY n.name DESC" ] }, { "cell_type": "markdown", "id": "4eee92c8", "metadata": {}, "source": [ "As we see, with the addition of the `ORDER BY` clause we get our data out in a nice organized manner. \n", "\n", "### Ordering by multiple properties\n", "\n", "A common need when ordering data is to use multiple properties as the ordering criteria. In openCypher, this is achieved by adding multiple options to the `ORDER BY` clause. When multiple properties are specified, the results are first ordered by the first property, then for equal values, the next property, and so on for all the specified properties. \n", "\n", "Let's see how this works by executing the query below to find all the `restaurant` nodes in our graph and order them by the `name` property, then by the `address` property." ] }, { "cell_type": "code", "execution_count": null, "id": "168bcc76", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name, n.address\n", "ORDER BY n.name, n.address" ] }, { "cell_type": "markdown", "id": "6d36e1dd", "metadata": {}, "source": [ "### Order by expressions\n", "In addition to ordering by property values, you can use the elements themselves or expressions such as `id()` or `keys()` to order our data. In the example below, we first show how to order data using the element itself, and then by the id values of the elements being returned." ] }, { "cell_type": "code", "execution_count": null, "id": "55f2aaf9", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name\n", "ORDER BY n" ] }, { "cell_type": "code", "execution_count": null, "id": "c63b78f6", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name\n", "ORDER BY id(n)" ] }, { "cell_type": "markdown", "id": "9b78432a", "metadata": {}, "source": [ "### Pagination\n", "\n", "One of the most common requirements for applications is the ability to return the data in chunks, or pages in the response. openCypher supports pagination through the use of two clauses: `SKIP` and `LIMIT`. \n", "\n", "We have already used the `LIMIT` clause to specify the maximum number of entities returned. When used with the `SKIP` clause, which specifies the number of records to ignore at the beginning of the result set, we can create an effective pagination mechanism. One important thing to note about pagination is that we need to explicitly order the results to retrieve a consistent set of data in our pages. Without ordering the results, we have no guarantee that results will be returned in a constant order, meaning that the data shown for a specific \"page\" may differ between calls.\n", "\n", "Let's take a look at how we could use `SKIP` and `LIMIT` to present a paginated view of the restaurants in our graph by retrieving the first page of results." ] }, { "cell_type": "code", "execution_count": null, "id": "0335cb50", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name\n", "ORDER BY n.name\n", "SKIP 0 LIMIT 10" ] }, { "cell_type": "markdown", "id": "70d12ad6", "metadata": {}, "source": [ "Let's see what it looks like to retrieve the second page of data. To accomplish this, we need to set the value of `SKIP` to represent the page size we would like to skip." ] }, { "cell_type": "code", "execution_count": null, "id": "7371ac06", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name\n", "ORDER BY n.name\n", "SKIP 10 LIMIT 10" ] }, { "cell_type": "markdown", "id": "978fff4c", "metadata": {}, "source": [ "As we see, the data we retrieve from the second query represents the second page of results returned from our query. Please don't hesitate to try additional values for the `SKIP` and `LIMIT` values to see how the query reacts.\n", "\n", "## Functions\n", "\n", "openCypher contains a set of functions that enables customers to perform computations on the data in an optimized manner. There are a variety of types of functions supported in Neptune, which are highlighted in the table below:\n", "\n", "|Type|Function|\n", "| ----------- | ----------- |\n", "|Predicate|`exists()`|\n", "|Scalar|`coalesce()`, `endNode()`, `head()`, `id()`, `last()`, `length()`, `properties()`, `size()`, `startNode()`, `timestamp()`, `toBoolean()`, `toFloat()`, `toInteger()`, `type()`|\n", "|Aggregating|`avg()`, `collect()`, `count()`, `max()`, `min()`, `sum()`|\n", "|List|`keys()`, `labels()`, `nodes()`, `range()`, `relationships()`, `reverse()`, `tail()`|\n", "|Math - numeric|`abs()`, `ceil()`, `floor()`, `rand()`, `round()`, `sign()`|\n", "|Math - logarithmic|`e()`, `exp()`, `log()`, `log10()`, `sqrt()`|\n", "|String|`left()`, `lTrim()`, `replace()`, `reverse()`, `right()`, `rTrim()`, `split()`, `substring()`, `toLower()`, `toString()`, `toUpper()`, `trim()`|\n", "\n", "While each function has a specified input format, there are two main ways that these can be used, either as part of the formatting done in the `RETURN` clause or as part of the filtering done in the`WHERE` clauses. Below, we have provided examples of how to use these in each query sections.\n", "\n", "### Using Function in `RETURN`\n", "\n", "One common way to use functions is to apply them while formatting the results. To use a function, you first need to pass in a variable as the first parameter, like this `toUpper(n.name)`. The expected input, or if there is a second required parameter, depends on the exact function being used but this syntax is generally \n", "\n", "\n", "In the example query below, we apply several different functions (`toUpper()` and `coalesce()`) to format the result based on the data matched in the find and filtering portions of the query." ] }, { "cell_type": "code", "execution_count": null, "id": "9e4ebade", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN toUpper(n.name) as name, \n", " //returns the first non-null answer, since this property does not exist it should be `No Capacity Provided`\n", " coalesce(n.max_capacity, 'No Capacity Provided') as capacity, \n", " n.address as address\n", "ORDER BY n.name\n", "LIMIT 10" ] }, { "cell_type": "markdown", "id": "e299d1a4", "metadata": {}, "source": [ "### Using functions in `WHERE`\n", "\n", "Another common way to use functions is as part of a comparison when filtering values in the `WHERE` portion of a query. The example below shows how you can perform a case-insensitive search on a restaurant name through the use of the `toUpper()` function." ] }, { "cell_type": "code", "execution_count": null, "id": "2ce3f5fb", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "WHERE toUpper(n.name) = 'HAND ROLL'\n", "RETURN n.name" ] }, { "cell_type": "markdown", "id": "8715cd5f", "metadata": {}, "source": [ "While the examples above are the most common uses of functions, many of the non-aggregating functions may also be used in other portions of the query. The example below shows how functions can be used in an `ORDER BY` to order by the length of the restaurant name." ] }, { "cell_type": "code", "execution_count": null, "id": "cd7101fc", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN n.name\n", "ORDER BY size(n.name)\n", "LIMIT 10" ] }, { "cell_type": "markdown", "id": "0654b084", "metadata": {}, "source": [ "### Composing multiple functions\n", "\n", "Often you many need to chain or compose functions together to create more complex computations. While functions can be chained together in any part of a query where they are supported, the example below shows how to compose several functions together in the `RETURN`. \n", "\n", "\n", "In this example, our query will find the average number of words in the `name` for restaurants in the graph." ] }, { "cell_type": "code", "execution_count": null, "id": "91b72e90", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN avg(size(split(n.name, \" \")))\n", "LIMIT 10" ] }, { "cell_type": "markdown", "id": "952c7825", "metadata": {}, "source": [ "Now that we have looked at the ordering and function capabilities in openCypher, it's time to take a look at another major set of functionality in formatting openCypher results, grouping.\n", "\n", "## Grouping Results\n", "\n", "Grouping results in openCypher is a bit different from how grouping works in other query languages, such as Gremlin or SQL. In most other query languages the grouping of results is done by explicitly calling a step or clause, such as SQL uses `GROUP BY` and Gremlin uses the `group()/groupCount()` step.\n", "\n", "In openCypher, grouping is controlled implicitly, via the use of aggregating expressions containing one or more aggregating functions (`avg()`, `collect()`, `count()`, `max()`, `min()`, `sum()`). Each aggregation function computes the groups formed by the output of that function. For this group to work, the final aggregation expressions has to be either:\n", "\n", "* An aggregation function (`RETURN count(*)`)\n", "* A grouping key (`RETURN n, count(n)`)\n", "* A local variable\n", "\n", "These expressions ensure that the aggregation is be computed over all the results within a group. Groups are determined through the grouping keys. Grouping keys are non-aggregate expressions, that are specfied in conjunction with the aggregate functions are are used to group the values. Let's look at an example to understand how this works.\n", "\n", "**Example**\n", "|id|name|\n", "|---|---|\n", "|1|Dave|\n", "|2|Josh|\n", "|3|Kelly|\n", "|4|Dave|\n", "\n", "```\n", "MATCH (n)\n", "RETURN n.name AS name, count(n.name) AS cnt\n", "```\n", "Results:\n", "\n", "|name|cnt|\n", "|---|---|\n", "|Dave|2|\n", "|Josh|1|\n", "|Kelly|1|\n", "\n", "In this example, we are returning 2 values from the query `name` and `cnt`. The first value, `name`, is not an aggregating function so it will be the grouping key that buckets similar items. The second value, `cnt`, is the output of an aggregating function which will calculate the result, in this case a count, based on the buckets created by the grouping key `name`.\n", "\n", "It may take a little bit of getting used to this manner of grouping items, so let's jump in and try out some common use cases for grouping.\n", "\n", "### Group by a property\n", "\n", "Running the query below, returns the count of restaurants with `name` attributes of a specific length." ] }, { "cell_type": "code", "execution_count": null, "id": "f66d367b", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant) \n", "RETURN count(*) AS count_in_length, size(n.name) AS name_length\n", "ORDER BY name_length" ] }, { "cell_type": "markdown", "id": "2c92cf2e", "metadata": {}, "source": [ " In this example, the grouping key will the name length (`size(n.name)`) with the aggregating operation being the `count()`.\n", " \n", " ### Group on a pattern match\n", " \n", "Another common need is to use multiple different elements in a pattern to perform a grouping/aggregation query. To accomplish this, you combine what we know about `MATCH` and named variables with what we have just learned about grouping to achieve this aggregation.\n", "\n", "Let's take a look at what it would look like to find the average rating of the restaurants in our graph." ] }, { "cell_type": "code", "execution_count": null, "id": "f646e881", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant)<-[:about]-(r:review)\n", "RETURN n.name AS name, avg(r.rating) AS rating\n", "ORDER BY rating desc" ] }, { "cell_type": "markdown", "id": "60b2eab1", "metadata": {}, "source": [ "## Combining Queries\n", "\n", "Now that we have learned about all the major features (finding, filtering, formatting, ordering, functions, and grouping) of openCypher, we have one more topic to discuss in this notebook, how to combine subqueries together to create more complex queries. In openCypher, there are three main mechanisms to achieve this: `UNION`, `UNION ALL`, and `WITH`.\n", "\n", "### UNION\n", "\n", "The `UNION` clause combines the results of 2 or more queries together and returns the combined result from both queries. In the case of `UNION`, the result will remove any duplicates. \n", "\n", "\n", "Let's see what an example `UNION` query looks like:" ] }, { "cell_type": "code", "execution_count": null, "id": "190af502", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant)\n", "RETURN n \n", "LIMIT 5\n", "UNION\n", "MATCH (n:review)\n", "RETURN n\n", "LIMIT 5" ] }, { "cell_type": "markdown", "id": "fd55000f", "metadata": {}, "source": [ "One common tripping point with `UNION` queries is that each query must return the same number of columns, and the columns must have identical names. If this is not the case, you will receive an error message like occurs when running the query below:" ] }, { "cell_type": "code", "execution_count": null, "id": "493ac5cf", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant)\n", "RETURN n \n", "LIMIT 5\n", "UNION\n", "MATCH (r:review)\n", "RETURN r\n", "LIMIT 5" ] }, { "cell_type": "markdown", "id": "f0c9a4e2", "metadata": {}, "source": [ "### UNION ALL\n", "\n", "The second way to combine queries is with the `UNION ALL` clause. This works fundamentally the same as the `UNION` clause, except that it will retain duplicates in the results. If we look at the two nearly identical queries below, we will see the first query is a `UNION` query and will return de-duplicated result to return only 5 results. The second query, which is a `UNION ALL` query, will return results including duplicates to total 10 rows." ] }, { "cell_type": "code", "execution_count": null, "id": "baa0f999", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant)\n", "RETURN n \n", "LIMIT 5\n", "UNION \n", "MATCH (n:restaurant)\n", "RETURN n \n", "LIMIT 5" ] }, { "cell_type": "code", "execution_count": null, "id": "9d97b3b3", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (n:restaurant)\n", "RETURN n \n", "LIMIT 5\n", "UNION ALL\n", "MATCH (n:restaurant)\n", "RETURN n \n", "LIMIT 5" ] }, { "cell_type": "markdown", "id": "ae43a10d", "metadata": {}, "source": [ "### `WITH` clause\n", "\n", "The final mechanism to combine subqueries together is the `WITH` clause which allows subqueries to be chained together instead of combining the results. \n", "\n", "The `WITH` clause allows you to manipulate the output of a query and pass all or part of the results of a subquery on for use in the next subquery. While there are a myriad of ways to leverage subqueries in openCypher, there are a couple of common usage patterns for the `WITH` clause:\n", "\n", "* Limiting the number of entries passed to other subqueries\n", "* Introducing new intermediate results such from projection/aggregation/etc.,\n", "* Filtering on aggregated values for subsequent queries\n", "\n", "In the cells below, we will show how to leverage each of these common patterns.\n", "\n", "#### Limiting Results\n", "\n", "Likely the most straightforward use of subqueries is to limit the results from an initial subquery for use as a starting point for the next subquery. In this example, we will find the first 5 restaurants and then find the reviews for those restaurants only. " ] }, { "cell_type": "code", "execution_count": null, "id": "e27d0b96", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "\n", "MATCH (n:restaurant)\n", "WITH n LIMIT 5\n", "MATCH p=(n)<-[:about]-(:review)\n", "RETURN p" ] }, { "cell_type": "markdown", "id": "9ea7476e", "metadata": {}, "source": [ "#### Intermediate Results\n", "\n", "Another common use of the `WITH` clause is to calculate some intermediate result that is used to aid in filtering results. In the example below, we are running a query to find all `restaurant` nodes that are connected to a `review`. We are then passing the `restaurant` and an upper case version of the `name` called `upperCaseName` to the subsequent query portions, where we filter for restaurants starting with `WITH`." ] }, { "cell_type": "code", "execution_count": null, "id": "d9a2ddc2", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (r:restaurant)<--(rev:review)\n", "WITH r, toUpper(r.name) AS upperCaseName\n", "WHERE upperCaseName STARTS WITH 'WITH'\n", "RETURN r.name" ] }, { "cell_type": "markdown", "id": "b6b6b33f", "metadata": {}, "source": [ "#### Filtering on Aggregated Values\n", "\n", "The final common pattern for using `WITH` in a query is to use an initial subquery to filter on some set of matched patterns, which are then passed along to the next portion of the query. In the example below, I am finding all restaurants with more than 5 reviews and then finding the city for those restaurants." ] }, { "cell_type": "code", "execution_count": null, "id": "a2c6dc9c", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (r:restaurant)<--(rev:review)\n", "WITH size(collect(rev)) as num_reviews, r\n", "WHERE num_reviews >5\n", "MATCH (r)-[:within]->(c:city)\n", "RETURN c.name as city, r.name as name" ] }, { "cell_type": "markdown", "id": "500ed04f", "metadata": {}, "source": [ "#### Variable scope in `WITH`\n", "\n", "When working with the `WITH` clause, it is important to understand the scope of variables. Each subquery scopes its own variables to only exist within the subquery unless you explicitly pass the variable, or use the wildcard (`*`), to pass the variable on to the next subquery. Let's look at the previous query:\n", "```\n", "MATCH (r:restaurant)<--(rev:review)\n", "WITH size(collect(rev)) as num_reviews, r\n", "WHERE num_reviews >5\n", "MATCH (r)-[:within]->(c:city)\n", "RETURN c.name as city, r.name as name\n", "```\n", "\n", "Examining the `WITH` clause here, we see that we identified both the calculated value `num_reviews` and one of the original variables `r` to be passed on to the subquery. This means that both `num_reviews` and `r` are in scope for the second portion of the query. However, the variable `rev` from the first part is no longer able to be accessed for the second half of this query. Running the cell below will display an error message." ] }, { "cell_type": "code", "execution_count": null, "id": "28ca4c56", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc\n", "MATCH (r:restaurant)<--(rev:review)\n", "WITH size(collect(rev)) as num_reviews, r\n", "WHERE num_reviews >5\n", "RETURN rev" ] }, { "cell_type": "markdown", "id": "4fed7997", "metadata": {}, "source": [ "To resolve this issue, we must modify the query slightly to first group together all the `rev` elements using the `WITH` clause into a variable named `revs`. This now leaves us with all our `review` nodes in scope. We can then filter the results of our query using the `size()` function on our `revs` element and return the matching values.\n" ] }, { "cell_type": "code", "execution_count": null, "id": "f38aa970", "metadata": { "tags": [] }, "outputs": [], "source": [ "%%oc\n", "MATCH (r:restaurant)<--(rev:review)\n", "WITH collect(rev) as revs\n", "WHERE size(revs)>5\n", "RETURN revs" ] }, { "cell_type": "markdown", "id": "f5d352e5", "metadata": {}, "source": [ "## Exercises\n", "\n", "Now that we have gone through the main concepts of openCypher read queries, it's time to put it into practice. Below are several exercises you can complete to verify your understanding of the material covered in this notebook. As practice for what you have learned, please write the openCypher queries specified below.\n", "\n", "For these exercises, we will be leveraging the majority of the different entities in our data to show how we would build a common graph pattern known as \"collaborative filtering\" which is often used to provide recommendations to users based on other's reviews. Collaborative filtering works on the idea that if two people share the same opinion on a topic, such as a restaurant, then they are more likely to share similar opinions on other topics. With a graph, we can leverage these connections to help provide recommendations based on these patterns of connections. In these exercises, we will be recommending restaurants to our users based upon reviews.\n", "\n", "\n", "### Exercise G-1 What are the 3 highest restaurants?\n", "\n", "Using the data model above, write a query that will:\n", "\n", "* Find the 3 highest average restaurant rating\n", "* Find the associated cuisine\n", "* Return the restaurant name, the cuisine name, and the average rating\n", "* Order the results by average rating descending\n", "\n", "The results for this query are:\n", "\n", "|Restaurant name|Cuisine|Avg Rating|\n", "|---|---|---|\n", "|Lonely Grape|bar|5.0|\n", "|Perryman's|bar|4.5|\n", "|Rare Bull|steakhouse|4.333333|\n" ] }, { "cell_type": "code", "execution_count": null, "id": "36adacaf", "metadata": {}, "outputs": [], "source": [ "%%oc -d $node_labels\n", "MATCH (c:cuisine)\n", "RETURN c" ] }, { "cell_type": "markdown", "id": "04ab5b59", "metadata": {}, "source": [ "### Exercise G-2 Find the top 3 highest rated restaurants in the city where Dave lives\n", "\n", "Using the data model above, write a query that will:\n", "\n", "* Find a `person` node(s) with a `first_name` of \"Dave\"\n", "* Find the `city` that Dave lives in\n", "* Find the average rating of restaurants in that city\n", "* Find the top 3 average ratings\n", "* Return the restaurant name, address, and average rating\n", "* Order by the average rating descending\n", "\n", "The results for this query are:\n", "\n", "|Restaurant name|Address|Avg Rating|\n", "|---|---|---|\n", "|Dave's Big Deluxe|\t490 Ivan Cape|4.0|\n", "|Pick & Go|4881 Upton Falls|3.75|\n", "|Without Chaser|\t01511 Casper Fall|3.5|" ] }, { "cell_type": "code", "execution_count": null, "id": "dae9d211", "metadata": {}, "outputs": [], "source": [ "%%oc -d $node_labels\n" ] }, { "cell_type": "markdown", "id": "678a243d", "metadata": {}, "source": [ "### Exercise G-3 What Mexican or Chinese restaurant near Dave that is the highest rated?\n", "\n", "Using the data model above, write a query that will:\n", "\n", "* Find a `person` node(s) with a `first_name` of \"Dave\"\n", "* Find the `city` that Dave lives in\n", "* Find the restaurants in that city that serve 'Mexican' or 'Chinese' food\n", "* Find the average rating of those restaurants\n", "* Return the restaurant name, address, and average rating\n", "* Order by the average rating descending\n", "* Return the top 1 result\n", "\n", "The results for this query are:\n", "\n", "|Restaurant name|Address|Avg Rating|\n", "|---|---|---|\n", "|With Salsa|24320 Williamson Causeway|3.5|" ] }, { "cell_type": "code", "execution_count": null, "id": "f96b91e5", "metadata": {}, "outputs": [], "source": [ "%%oc -d $node_labels\n" ] }, { "cell_type": "markdown", "id": "e93f266d", "metadata": {}, "source": [ "### Exercise G-4 What are the top 3 restaurants, recommended by his friends, where Dave lives? (Personalized Recommendation)\n", "\n", "Using the data model above, write a query that will:\n", "\n", "* Find a `person` node(s) with a `first_name` of \"Dave\"\n", "* Find the `city` that Dave lives in\n", "* Find Dave's friends\n", "* Find reviews written by Dave's friends in the city \"Dave\" lives in\n", "* Find the average rating of those restaurants\n", "* Return the restaurant name, address, and average rating\n", "* Order by the average rating descending\n", "* Return the top 3\n", "\n", "The results for this query are:\n", "\n", "|Restaurant name|Address|Avg Rating|\n", "|---|---|---|\n", "|Dave's Big Deluxe|490 Ivan Cape|4.0|\n", "|With Salsa|24320 Williamson Causeway|4.0|\n", "|Satiated|370 Hills Estates|3.666667|" ] }, { "cell_type": "code", "execution_count": null, "id": "81e5d4bc", "metadata": {}, "outputs": [], "source": [ "%%oc -d $node_labels\n", "\n" ] }, { "cell_type": "markdown", "id": "b5acefc5", "metadata": {}, "source": [ "## Conclusion\n", "\n", "In this notebook, we explored ordering, functions, and grouping in openCypher queries. These queries are a powerful and common way to format and mutate data within your graph. This is also the last notebook in the set dedicated to writing read queries. In the next notebook we will take a look at how to write queries that mutate data through insert, update, and delete operations." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.12" } }, "nbformat": 4, "nbformat_minor": 5 }