 Hello everybody, good morning, good evening, good afternoon, and thank you for joining this live stream on Discovering New Virtual RDB with Michael and myself, Alexander. Hi, Michael, how's it going? Hey, Alex, good. Yeah, recovering from last week, I guess. and yeah no going well sun shining everything is good and yeah had a quiet weekend this time not doing much resting and getting out into the park a little bit and reading I'll need to finish my book to follow your recommendations then next yeah let me know if you like it. Yeah, I think I did do much yesterday. I spent another couple of hours yet another time in the train. So my Yeah, actually last night I kind of I fell asleep early and then I woke up at 1am or so so I started to read some stuff and started to set up local stable diffusion on my computer so I downloaded like 20 gigabytes of image models trained image models, and upscalers, and control net, and all the other stuff to get some of the examples running. And some of it worked. I wanted to do the QR code thing with creating nice pictures that still serve as a QR code. But I'm not there yet. So I'm still working on that. I still have a QR code, but I'm not there yet. So I'm still working on that. I'm glad because setting it up on, on iPad Silicon was a little bit more involved, but I got it to run so that all the pieces are in place. And now I have to understand a little bit what I'm doing. Like before there's so many options and so much that you can, you know, tune control set up in terms of the pipelines of generation and filtering and upscaling and applications of additional LoRa fine-tuning models and all the other stuff. So it's different to just prompt engineering with LLMs. So this image stuff is much more involved, I find. Because it's not just a prompt. It's also like a gazillion other parameters and other things to know. Yeah. So there are definite jobs there for people that understand all the bits and details and can generate reliably good AI images as much. Yeah, it's not so easy. I mean, you think you see all these great examples everywhere and you think, oh, this is easy. I can do the same. And then you get an empty prompt and then you type something and then say, oh, I want this and that. And then you get four images back or whatever. And you realize, actually, that's not what I envisioned. And then you add more details and you think about it. But you have to find the right prompts. You have to specify what you want. And then still, sometimes you get a hand with six fingers and confusingly. MARTIN SPLITTINGER KORNENBERG- Exactly. But I think Midjourney is already doing a really good job at making it really easy for users with the Discord bot. Because you can also see what others are doing and kind of see what kind of parameters they're using and what prompts they're using. I found, to be honest, I found the MidJourney Discord really relaxing and enjoyable. Unlike TikTok or Instagram, where it's so much just crazy ad style stuff and really exhausting. So it's actually really relaxing to just watch this scrolling on my journey before the new images pop up. And so I find it quite calming experience. It's quite nice. Yeah. Yeah. Cool. Yeah, maybe that's at some point when you're a little bit more knowledgeable about the thing that could be a topic. Yeah, that could be interesting to see. Just to demonstrate how to use it. Exactly how to guide him. Actually, I wonder, Alex, if you should do an LLM stream or so, right? Because Neo4j is now doing also internal work on integrating with Vertex AI, with OpenAI, also with Microsoft, to kind of highlight some of those things. Tomas did a bunch of things, and Noah, and Oscar, and John, and others. And I did a bunch of things as well. So it would be kind of nice to have a stream where we do LLM or ML integrations with knowledge graphs or so, and have a bunch of episodes on that. For each episode, cover one area or one project. Exactly. Cover a couple of topics, couple of areas and discuss a little bit of what's going on and how to use it. How to combine the tools, how to combine the technologies, right? Exactly. We showed a little bit with the graph GPT demo that Varun developed and with Jason, his mock graph data generator that also relies a little bit on that. But I think there's definitely... But yeah, let us know in the comments. So if you watch this and think, oh, LLMs, ML, all these topics are interesting. You want to know more how to combine them with graph technology or with Neo4j in particular, then that would give a good indication for us what we should go for. Yeah. Yeah, and we can also get people from the cloud architects team that did like the Microsoft and Google integrations as well. We did like APOC integrations for OpenAI and Vertex AI as well. So there's a lot of fun things that you can also try yourselves. So from that perspective, it's not just us demoing stuff, but it's also practical things that you can try yourself as well. Exactly. But it's like just us demoing stuff but it's also practical things that you can try yourself as well exactly but it's like you said your experience it is a little bit involved and you get lots of things you need to prepare and set up and then sometimes this puts people off at least I mean speaking of my experience if I need to install 20 different things and it's all very confusing I don't know what to do then maybe I think oh well maybe not. But if there's a guide in the other hand, yeah. Cool, yeah, I like that idea. Yeah, that sounds good. Good, all right, before we go into today's topic, notes 2023, a call for papers is still open. So if you go to either neo4j.com slash notes 23 or dev.neo4j.com slash notes 23, and let me put that also in the chat, there you can obviously submit your talk. So if you have a graph topic, if you have anything that is, we have identified a couple of key themes for this year. So visualization will be one, graph data science will be another one, and application development will be another one. If you have something on these three points, then definitely submit something. If you have something else, also submit something. If you have something else, also submit something. So no matter what, if you have something on LLMs, which is sort of GDS, sort of app development, it doesn't quite fit somewhere in particular, definitely submit. If you have something on anything else that is graph related, please also think about it. It's going to happen live. It's going to be fun. And it's in October. So we have plenty of time. But the Code for Paper ends this month. And it's also 24 hours, right? So that means if you're like in the Asia time zone, in APEC somewhere, and you want to submit something, or in Europe, or in the US, or in the Americas, we have like for all the different time slots, there's a lot of potential and possibilities. Of course, we have 24 hours of time to cover. So we are looking really for a lot of submissions. So please go ahead and submit. That would be really great. Yeah. And if you don't know if your topic fits or if you want to talk to us first before you submit, there's always options. So you can obviously reach out to us in the forum. There is a specific notes channel. There is also the Discord server is a specific notes channel. So you can reach out there or you can ping us. Just send us an email as well. Send us an email if you're not quite sure or if you have any other questions that the website does not answer, then reach out and let us know. But yeah, it would be great to see you there, see your presentations in October. Exactly. Or if you know someone whom you want to see to speak, so then remind them and nudge them into submitting, right? So sometimes we'll just need a little nudge. And the other thing is also we have both lightning talks as well as full talks. So if you or someone else wants to do a rather like only like a 15-minute talk on a very specific subject, then please do this as well. Besides the regular talks, you also have the option for lightning talks. Yeah. Super cool. Yeah, and today I think today we do a little bit different. So I think I'll skip this one. But just as a reminder for Neo4j, what is Neo4j RDB? It's a free version of Neo4j RDB, the graph database as a service offering from Neo4j. So you get, and maybe just to clarify, it's Neo4j is the software, it's also the name of the company, but RDB also runs Neo4j. So there's no difference really uh there's some difference of course but there's still you get a graph database um which you can use in the cloud um and there's some limitations to it for the free version which uh is mainly sizing so you get 200 000 nodes and 400 000 relationships which um the other, there's a paid tier, professional enterprise tier, which go away, take away these limitations. But generally, these are good enough for testing and for playing around with it. You get the new workspace, which includes Neo4j browser, data importer, and Bloom. And it's free forever. So as long as you like to keep your project, it will be yours. and it's free forever. So as long as you like to keep your project, it will be yours. The only thing that could happen is that there's potentially being paused for unuse, but you can always go into your dashboard and break it up again. And then it's there as you left it. Exactly. Exactly. Today we wanted to show a couple of the Neo4j guides that are now available from the Aura console and from the Aura dashboard, basically, in Workspace, where we had added a couple of things to make it easier for new people to learn and to get their journey going. So let me switch to here and let me call the fans out of the way yep here we go super and you are already logged in so yes exactly so uh really quickly so that we don't need to wait for the database to be created uh i already created a free database i called it Get Started and then just clicked on Open. And actually just today our team launched this new guide experience. We have a new open workspace. You get the guides presented. Can actually, oops. You can also get them back if they go away. There's this little tutor or like graduation hat icon on the top right that you can use i just wanted to yeah and that's new right so they used to be just the question actually that's new exactly so they used to be just a question mark item but now there's also this guides item which you can also always click to get them get them back right and some of you might remember that we already worked through the Getting Started Guide at some point, which basically goes through data import and querying and exploring the data really quickly, like really in 10 minutes total through everything. And now the new guides are more detailed on each of those. And I thought because it was just released today, I wanted to use the opportunity to showcase and demo it so that we can see what's in there and what's worth it. So we would start with the input guide and look at the Explore data and then querying at the end, right? So it should take us like 30 minutes roughly to get through this. And let's see how we go. OK. So if I am logged in, I have my guide, and I click on the Import Data Guide. I probably need to go back to the beginning. So each of these guides has a lot of text, so don't be afraid. But it explains kind of in detail what you're doing, how you're meant to process through the guide and so on, right? So this introduction talks a little bit about data importer. That's a simple, powerful tool to get your data into Neo4j to model and map existing CSV files. And you can basically configure all of this, right? And it also points back to the getting started guide if you haven't gone through this. It's usually worthwhile doing that as such. Okay, if I click next, it says to get started, download and unzip this file of CSV. So it's a zip file. And actually something nice in the new guides is they have these kind of underlined areas. And if you look at this, then it kind of highlights this in the UI. So the rest goes gray, and then it highlights this. So I can just hover over them. I don't even need to click. Then it basically highlights them. That's something that our colleague Adam actually added. So I only already downloaded these files. And why is it doing things? I basically just have these CSV files on my local machine and I just drag and drop them here into the UI. Right? Yes. drag and drop them here into the UI. Right? Yes. Okay. So now it kind of talks a little bit about the files, the CSV files and that they need to have a header and at least one row and what they look like. So this is kind of the order details file with order ID, product ID, unit price and so on. So what you would kind of expect from, as an export from a relation database, for instance. It also has this thing here that says, are you having trouble? These come up now and then in the guides where it basically allows you to just click a button to achieve the same thing that you do like interactively now, right? So which is also nice. So if you really struggle, you can just click this button and get the same thing that you do interactively now, which is also nice. So if you really struggle, you can just click this button and get the same thing as well. Yeah, if you're sitting maybe behind a firewall or something, you're not able to download stuff or something like that. You can do that. Exactly. So it talks a little bit about the CSV file. And basically, there's a product, and there's an order ID. An order and a product will be kind of our entities that we will create, and it contains relationship connecting them. And the product CSV and order CSVs is each of them. It's the products and the orders. That's kind of what it says down here. So now we're kind of getting started. It says click the Add Node button. This is this button here, right? Hello. There's also this one here, which it says add node label. So we can just click this and give it a label order. So we can either give it a label up here or we can just click into the node and call it order. And then it says map a file. So there's a file pop up. And there's if I click on this other thing, it says select this file. So I get again this highlight. So I say this is my orders file. Pick the orders file. And now we can use the map from file button, this one over there, to add order ID, order date, and required date. I'm not 100% sure why the required date is in there, but so be it. And so which gives us like these three properties now. And then it says also change, edit the name, order ID to ID, and change the type from integer to string. Okay, so we change the type to string. Can also make this panel a bit bigger. And here I can just call this ID. And so we have done the things that are in our to-do list here and then we're good. Usually in the basic just explains the initial names are taken from the CSV file columns and but you can adjust and change them as you want to. That's good. And now it's about setting an ID. So how do I find an order? How do I address an order? So that's done via the ID field. Again, we have this little ID box here, which should be highlighted, which is down here on the bottom of the right side. But for some reason, the highlighting doesn't work. It should actually. And it automatically, for us, it automatically sets the ID here because the ID has an ID in its name basically. But if your ID is something like SSN or SBN or something like that, then you would have to select the ID manually. And if there's an ID selected, there's also a green check mark on your note as well. So, and then it says, do the same with the product node. So we can click again on, at the note here, create a product node, map the file, and it says, map product ID and product name. Okay, map from file, product ID and product name. Okay, map from file, product ID, product name, and change this to ID again and change this to string again. Right. Okay, this ID is set as an ID and both have a green check mark, right? So all good. So Tarek is asking a question. If you are using Zona to ingest logs on-prem, how does this work with ODB? I'm hearing you have to turn on CloudWatch. What is possible? Is it possible without this? Aura has, I think they're currently working on a feature for lock shipping. Right now, Aura has a manual lock export, at least for the pro version. For enterprise, I think the lock shipping could already be in the direct, but you can just open an order support ticket and then they should open, should help you with this search in detail. Cool. So we created our product note. Yeah. So it should be good to go. Five steps already done. And now it's about the relationship, right? It says your data uh concerns orders and products and we contain have the contents relationship and for uh nodes we use camera case so if i click on these links it opens the wiki pages basically for camera case and snake case but i hope uh that we understand what it is right right? So camel case basically has capitalized first letters for multiple words even, and snake case has the capitalized all caps letters with underscores instead of spaces. So we now create a relationship. It says hover by the edge of the order node circle and you'll see a plus sign. So that's actually new. This, Alex, and I'm not sure if you've seen this before, so this is now a plus cursor here. And if you track this out, the relationship for the cursor is new. And then it says, in the mapping details panel, there's a type section, which is also currently not highlighted, but it's up here. So, and we should- It highlights the whole thing, right? Yeah, on the second, so the two actually, right? So here it highlights the whole thing. Ah, I see, okay. Actually, here it highlights the whole thing. And this should highlight actually just the thing up here, but that doesn't. Just the beginning, yeah, okay. Yeah, so, and then, yeah, exactly. So it currently doesn't have That's the beginning, yeah, okay. Yeah, so and then, yeah, exactly. So it currently doesn't have a green check mark, so we need to link the two first, but it's, I think, on the next page. And, but you can also delete it, so if you accidentally created something, then you can delete this here, and you can also reverse direction of the relationship with this button up here on the top right. Okay, next we're mapping files to relationships. We again, in our files panel, we pick in the file dropdown, why is this also not working? The order details one, and then we now see two ID columns here in this one. So we want to map order, meaning order ID from the file to product ID, product.id, which is product ID in the CSV file. So basically just pick from the CSV file whatever represents the order for the order side and whatever represents the product for the order side and whatever represents the product for the product side. And then it talks a little bit about additional craft model pin. Now everything has a green check mark, right? As you can see, even on the relationship, below the relationship, there's a green check mark. And if you look at the CSV file here, you see that there's also unit price quantity and discount in there. So which are good properties for the relationship. So we can add them to a relationship directly by again saying map from file and then pick these three relationships here, click on confirm, and then it automatically turns them into float integers and floats basically as types, right? So this looks good and everything is green. Oh, it also says when we map here from file, we don't need to include auto ID and product ID because they're already used for mapping the start and end connection, start and end node for the file. So just the other properties such. Cool. So we've done this. And then it talks a little bit about other stuff, which I kind of want to skip because it's a little bit confusing to talk other people and location things. It's basically for a CSV file that has everything in one CSV file as such. So perhaps you should do this. So if I click on this, it loads the new model. And then you need to basically create new relationships, like person lives in city. Looks in. And you see, because everything is already in one file here, there's only one file to select, so it auto selects the file. And it also automaps the start and end node for the relationships as well. So that's actually something that's in country. So it basically does this automatically. You don't need to do anything else. that's in country. So it basically does this automatically. You don't need to do anything. If everything is in one file, then you don't need to do additional work. So then Data Importer already is smart enough to know how things map together, right? So that's just a quick detour for denormalized files where you have everything in one file basically. Okay. The source, the target and the relationship. Okay, let's reload our Northwind model. It's really nice about these buttons, right? So you can just click the button and then it resets everything to what you want it to. Which is nice. everything to what you want it to, which is nice. And so we have what has to be mapped on a node, a label, an ID, and at least one property. And for relationship, it has to be type, start at node, that's it. Right, so and then it gets a green check mark, and then we can go ahead. Okay, in the next step, we look at a preview. So we have mapped our data, but do we know if we made any mistakes or so? Not really. So we see our model, but fortunately, there's this preview button here that we can also highlight. The preview button here that we can click, and it samples the first 300 lines of each file. And you can look into those and see, OK, is this mapping stuff correctly? Here, there's also a sidebar. I see orders and products. And I see also, are they correctly mapped as such? Do I have my relationship properties mapped as well? If I click on a relationship, and are my node properties for the order also really mapped correctly. So if I hover over these, it also maps in as daytime. Oh no, as string actually. As string, I think we didn't specify, did we? Yeah, we could have mapped them as daytime actually. Yeah. Actually, perhaps we should do this. We go in here and say this is a daytime. And we run our preview again. And hopefully, let's see. Yep. Now, because you know the t and the time zone in here. And if I hover over these, it now also says date time. See, we found mapping error. And so we can fix it directly. So that's actually quite nice. So you see the connections if they are correct and you also see the properties as well. Okay. And basically if there are any errors, then you would see them visually or it would also complain if they're mapping arrows, it would actually complain if you click run import. So you can run import from here, but you can also run import from the top. So here is on the top. I really like these highlights somehow. It's very satisfying. You can run import here, and then it basically says, run import successfully, compute it, or process these files, so many rows in the file, and because I already imported the data, it doesn't say notes created, but it says basically stuff updated, right? Properties set, and yeah. So we didn't add new data to database, but we just updated data that was already there. So you get these results, which you can also pull back with the show results here on top. So it explains a little bit about this, and also that if you run this multiple, no, that's actually on the next page, if you run this multiple times, then that's actually on the next page. If you run this multiple times, then that it doesn't destroy your data, but you can rerun this, right? So it also talks about a little bit on downloading your model and your model with data. So download model, downloads the JSON file for the mapping and download model with data as she downloads the zip file, where the CSVs and the mapping file are all together as such. Right. And then it has a little bit section here on when you outgrow data and put what do you want to do then? Like either bulk import for hundreds of millions or billions of rows in your CSV or connectors to connect to Kafka or Spark or other BI tools or something like that as well. And with apoc.load procedures, you can also import JSON or data from other databases and then so on. And then a bunch of FAQs. What is when there's an error about files missing here, when you refresh the page, then you just re-add them. How do I replace a file by just using the same name and dropping it in here, a different file? And then the database, the data input loads in, you can set the home database of the user, which then allows you to import it into that database for this user. And with this, we finished our first guide, the input guide. 10 minutes, exactly, right? So, yeah. And then the next one gets us to the explore guide. Right? So, and at the beginning to the explore guide. Right? So, and at the beginning of the explore guide, it basically talks about, let's load the Northern data set again. So we just run this import quickly and should be pretty quick. And then you can busy here, click on explore results, or it should take us automatically when I switch between the two, takes us actually to the explorer. So if I switch from here to here, it takes us to the explorer. And then it says basically when I opened this the first time, so because of my switching back and forth, that's kind of not what happened. But it has this show me a graph visualization, which basically just shows a example graph. And it also talks about, I'm not sure what's taking so long. I think I messed up something. The import is complete. The import is complete. Oh, yeah. You're right. Okay. So all this stuff is in here. Yeah. I think it's just some hiccup. Oh, there it is. Oh, here we go. I probably just forgot to press enter or something. Usually it's really quick. We can try this again. Clear scene. Show me. Oh, yeah. So it just was still the drop down and I just forgotten to press enter. So we could have waited for hours. So it shows you a first graph. In the legend panel, which is this panel on the right, it shows you how many graph in the legend panel, which is this panel on the right. It shows you how many nodes are in the scene. So you see there's 38 order nodes, 52 product nodes in the scene here. And there could be other nodes as well from our Northwind dataset. Right? This is just a random, yeah, sorry. This is just more or less a random snapshot of your graph. It didn't analyze it anyway. So you see a couple of nodes and edges. Actually, if you want to know what it is, there's a saved cipher for show me a graph. And then you can actually look it up. It's the first 100 patterns in the database, basically. So that's what it is. OK. On the left sidebar, we have the perspective for which kind of where you can control and select which things are in the scene, basically. You can add new ones. And on the top, you have the search bar that we just used for our sample here, but you can also use for other things, right? So let's look at the search bar a little bit. That's where the graph exploration starts. So you basically, if you have an empty scene here, then there's nothing there. And then you could say, I explore this. We already did, we showed me a graph, clear scene as well. So if you do right click here and clear scene, then it cleans out. And so this is only showing me a graph here. So we've already done. Okay, good. So now let's find the supplier supplies product, which is part of a category, right? So that's kind of part of our Northern model that we can fetch, right? So which is shown here in this. So this is easy to search because we will start just clicking on this and then we can basically find our supplier, then supplier to product and product to category. So we basically just clicked our tray together. Then I hit enter and then we see our graph, right? So the green nodes are categories. The blue ones are suppliers and the yellow ones are our products as such, right? And it says there's one part of key products that are disconnected from the others. This one down here. Can you tell which category it belongs to? What category is this? It's... Category is the green ones? Yeah, exactly. So it's dairy products. So there's also a little hint. So the dairy products form a subgraph of their own. So they have obviously not the same suppliers or very specific suppliers. I've worked actually in an IT project in dairy transport and they have very specific requirements for their tanks and tankers. And so you can't just put olive oil into a milk tank because they have very strict requirements. And so it's understandable that they only eat. JOHN MUELLER, RACHAEL POLLACK PORTER, Raw milk is very delicate. It goes off super quickly if you don't keep the right temperatures. So you have to pay attention. MARTIN SPLITT, So it's understandable that these suppliers are very specialized. So cheese and yogurt and milk and all the other stuff. Okay. So now we can do an even more specific search. Okay. Let's see. Specific values. You can also search for specific property values. For instance, we want to see which categories to have customers in London that order discontinuous products. Okay. Let's clear our scene again and see if we can get this together. So it says customer, customer, city, city, customer, London. Let me do this like this. City. I think, yeah. Looks like this, right? London, okay. We can also autocomplete. That's our start node. And then we can do discontinued true. So that would be products. Product, discontinued true. First from the city, we need to go first to the orders, right? Order. Order. Yeah. So product. Continued. True. Yes. Top. And then to category. So this is basically the same pattern that we have down here, just with different colors. Right? Yeah. OK, and if we run this, we see basically all the people, all the customers in London who ordered this continued product. So it could be customers that we need to notify, basically, that these products have ordered discontinued products. So it could be customers that we need to notify basically that these products have been discontinued and perhaps suggest some alternatives as such, right? Yeah. The products are yellow in this case. So you see the yellow products ordered by the pink, light pink nodes for the customers. And our question is when you run a search pattern, you can see that one category has more discontinued products ordered by customers in London. Others can you tell which one? And it's- Again, categories by green? Yeah, exactly. So it's meat or poultry, poultry. So meat and chicken. Yeah, exactly. So that's what we found, but there's no hint. We can't- There's no hint. We can't. So note inspector. So if you look at these notes, there's only the title available here in the visualization. But if I want to see more, there's a note inspector that's down here on the bottom. And we can basically double click on a note and it pops up in the node inspector. And then we can see all the properties. We can edit them as well. We can also edit the label. And so that's really nice. You can also add nodes and properties, right? So that's also possible as such. And we also see the data types here, like Boolean, string, and so on. You can also see the neighbors of a node, and also the relationship connecting this node to its neighbors as well. So that's more stuff. Okay, that was the node inspector. So try to bring the different categories into the data set. Okay. So we clear our scene. And can you remember how to pull out the different data sets of the categories into the data set? Click on category. Head enter. Just different categories. That's all that we need, right? Eight nodes. You should have eight category nodes visible. Context menu allows you to do things with them. So let's start with expand. So let's pick one of these category nodes and then there's this expand here. So we can expand all. You did a right click on a node. Yeah, exactly. So I right clicked on this node. So for context menu. So that's the part of relationship. If you zoom in here a little bit. I just expanded that. That was easy because categories have only one type of relationship. So you can also find the shortest path between two. That means we need to press, I think, command or control and click. So I have to click them both by holding down my command key here. And then in path, I can find shortest paths. And then we see here the shortest path between dairy product with mozzarella cheese uh an order and then they also were ordered the masala cheese was ordered with coffee uh which gets us into beverages right yeah so that's something the same order containing the two different products out of the two different categories. And I hope while you're watching this, you're not hungry. Actually, our job was to connect confections and condiments. So that's what we haven't done. So so we can basically find the shortest path for this one as well. And it's also the same order containing two different products out of two different Yeah, exactly. The order titled White Clover Markets. This is the order titled White Clover Markets. Now we probably need to find a customer for this order. So we expand to the customer. Oops, now we selected. Had too much selected. You did order. So unfortunately there used to be undo actually in Bloom, but I think they disabled it. It's true, there used to be. I just wanted to say maybe you can undo, but Yeah, there used to be undo, but for some reason it's not working anymore. So we can also just select all these order nodes by clicking here on this one and then just dismissing them. Dismiss. Right, and we can pick out two nodes again, get our shortest path back that we just had. And then actually, I wanted to just expand the relationship of not part of why order expand something. Something is wrong here. So I click on this order. First of all, why is it over there? Something is weird with the offset. I think it might be the guide that changes the offset, actually. Because also the context menu is so far.. Yeah, the context is a little bit far away. I was wondering. Yeah, it is. So I think it's the purchased relationship. Ah, exactly. So this gives us the customer. Okay. Good. What's next? The legend panel on the right side contains a list of elements on your data set. We already talked about this a little bit. And then we can bring additional notes into the scene and expand from the context menu menu so yeah i think this is meant to click on the categories here on the side so they're all selected and then expand them all as part of which should give us more products right so that's now like all the categories with their products. Try to change exactly styling for relationships and nodes. Try to change the color from the product nodes or play around with different sizes. So we can pick these product nodes, and you click on this yellow icon here, and I can change the size, make it bigger. I can change the color to light blue or something like that, or orange. Or even pick something else that you want to. Exactly, just want to say you can always find your color. Exactly, so nicer green, for instance. And then you can also change the text that's showing on a product note, for instance, you can say product name shown in note. And so it shows the product names here. I can also change the text size, interestingly. I think that's also a new feature. It could be new, yeah. I'm not sure. Text size gets bigger. Yeah, I think that's new. Interesting. So that's a little bit of styling. You can do rule-based styling as well. And rule-based styling is basically changing node colors or sizes by attributes. So in this case, from the list of available attributes, you want to see discontinued. And what does it want to do? Can also the size or the text. I think make them smaller or something, maybe. I just want to see what I want to change. I think this next step. I think this is just explaining because it says at the bottom in the next step you know how to use filters. Yeah. Discontinued and condition. Oh, when discontinued is true, we could for instance make the color a lighter green or something like that. Right? So then these nodes should have a lighter green. Or make them smaller. If you look now, there are certain nodes which are discontinued which have a light green. Yeah. Right? Okay. It says basically choose whatever you want to style. Yeah. MARTIN SPLITTMANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN So for instance, you could say, and add another pricing, could be the order level, product ID, ID. Where is my unit price? So we can see this is unit price distribution. And for instance, we can make the size of the node based off the range, actually, of values. So I have a range of values. And then I want to apply the size based on the range. And we can say the really cheap ones, you make really small, and the really big ones, you make really small and the really big ones you make really big. And then we get like nodes, product nodes sized by unit price. So if you see the big ones are really expensive and the small ones are cheaper. Smaller ones are cheaper. Okay, the next one is filtering. How are we in time? Yeah, I think we need a little bit more, right? Because you also talk through it. You think 10 minutes is probably also a little bit optimistic with all the tech, to be honest. So let's assume you want to place an order of 100 items for a seafood category and only requirements, it's in seafood and there are 100 items available now. So let's clear the scene and say requirements, it's in seafood, and there are 100 items available now. So let's clear the scene and say category name, seafood. See if this works. Yep. We can expand all here. And then it wants to apply the filter. And we want to click on this filter icon, which it should actually highlight for us, this one here. And then we can say add a filter of product for units in stock. And then we see a distribution here, right? And we can say, we want to have at least a hundred which works I think okay with a slider, yeah. So all the ones that are not a hundred should actually be grayed out a little bit. Oh no, apply filter, then they're grayed out. So you see only three remain. And then you can actually, if you want to really get rid of them, then you can dismiss them. And now we could actually pick these three items and create a new order, for instance, from them. So you can actually program Bloom that it can actually also do real operations on the data. So you could actually make it interactive that I now say in scene actions, create order, and then it would pick the selected products and perhaps in selected customer and create an order for this customer for these products. So that's something that would be possible as such. Cool. That is filters. And the next one is the slicer, which is used for timeline views and things like that. So let's clear the scene. And what do we want to do? Bring out the products and the categories. So we say category, app, one, app, product. All the categories on all the products. And so you can use this basically both on daytime information, but also numerical values. So the slice is this icon over here. Let me just push over the other things. So I have a little bit more room and then the slice is this icon here. And for some reason, the same happens. It happened before Alex, but I'm not really sure how we fixed this the last time. But you need to do slice is showing on top. Did I reload last time? Do you remember? Don't you think we have to add a range? No, no. It showed up on top. It should not show up on top. It should show up on the bottom. Oh, yeah. I think we reloaded the scene that helps. OK, let's do this again. Product and no slicer. No, it shows up at the bottom. It's some UI arrow. OK, and we want to slice by unit price. So we just click on unit price. So we see the distribution from 260 from 2.5, basically. And now we can use the histogram here to show or hide parts of the graph. So I can basically say, I only want to have stuff that is up to 7, from 2.5 to 7 point something. So that's kind of our little slice. And if I move this over, then it basically shows all these nodes that are in the range here, right? I can also make it smaller again and so on. It also shows me for each of them how many nodes are visible as such, and also total number of nodes I think that are visible should also be somewhere we can't see it right now. And the other things that you can do, there's playback. So if you play this now, then it automatically moves over the range and shows the nodes in a, you know, how they appear and disappear based on the range changes as such. Over time, yeah. Exactly. So, and you can, there are also other play modes like expansion and so on. But let's finish this guide and look at our last guide, which is query fundamentals. So query guide should get us data port, Northern data set, and we go now to our query tab. Yeah. Right. So you always have to do the same, the presets with the Northern data set. So if you have done them, you can just continue with the guide, but if you just stump into this one, you will have to load the data before you can go further. Yeah, yeah, yeah. Cool. By the way, Tarek also asked, I've missed that question. How do you open a ticket with Aura? So you can basically, if you go to your instance, there's this support icon here that you can click and then, I'm sorry, the help icon which opens the support menu here and then that gets you to the support portal as such. Sorry, Tyrone. And then at the very top of the portal, it says create ticket. So you can almost not miss it. Well, it's like see the forest amongst all the trees, So you can kind of almost miss it. Well, it's like see the forest amongst all the trees, I guess it's like very big, but you might miss it if you don't know that it is there. Yeah. So let's have a look. Go to support and create new ticket. Yeah, exactly. and create new tickets here. Yeah, exactly. Okay, so now we're at our query tab for the last guide. And so what are we doing here? So here in the query tab, you have initially our database overview of what data is in the graph. So we have 2000 nodes, nodes, 7,000 relationships. So it talks a little bit about this. A node can have multiple labels, and this list shows all the labels in a database. And we can click any of these. So it says, click on a product node here. So it fetches us all the product nodes. So similar to what we had just in explore, we can quickly fetch this. Only now that we see also the underlying. Oh yeah, sorry. So now we can actually see the query, the underlying query that fetches the data. So Bloom runs basically the same query, but we don't see it. Okay, in the guide, what's also nice, you can actually run these guides, these queries also from the guide. So if you don't click here, for instance, then you can instead run them from here and it also runs these queries from the guide. That's relevant later. But I think what would be good if these icons would not overlap so much with the actual query text. Here, let me take a screenshot. This is not so helpful. Yeah. Okay, and what we can do is here, and you can also push the query in the self-editor. So if I click on this icon here, then it pushes this over here, and then we can actually read it, right? So this query is, we want to get products from the category with the name produce, and to return them, we assign it to a path variable, and return the path. So we can run this. We can run this by the way, either by clicking here on the little run button, on this one that says run button, or we can add a command or control enter, which I mostly do to run the queries. So these are all the products and produce and the relationships as well. So it has two views here, the graph view that we've just seen and that we've also seen in explore and then a table view which gives us a table representation of the data that we returned as such. What's important is relationships are only shown if you return either a path or you give this relationship a name and return this name of the relationship as well. So for instance, if I don't have to pass here, if I only return product and category, so you can see that you can also edit it here. Then it would only return the notes. So I need to also give this a name and then return rel. Then it would also return the relationships. Otherwise it only returns the products and categories and not the relationships. Or I use the path like we did here before. Or you do return star and it just returns everything. Only the things that have names, Alex. If I don't, even if I have P and C, because the relationship doesn't have a name, it only... Ah, yes, of course. Yeah. Thanks. Yeah. So put the rel here, then it would actually return the rel as well. Yeah. So you need to give it a name. Otherwise it's called anonymous. It's an anonymous part of the pattern and it won't be returned as such. Yeah. Yeah. Okay. Okay. Showing table results. So these are the graph results, and be returned as such. Yep, yep, okay. Okay, showing tabular results. So these are the graph results, which are automatically computed from the result of the query. And if I want to also see tabular results, I could do this by returning scalar information, like attributes, for instance, or aggregations, right? So if I push this over so that if you can read it, it basically has the same pattern that we just had, just it returns product name and category name, right? So, and then if you're on this, then we get a tabular representation of the data. So we have, yeah. Then we can basically use this to look at these specific properties, right? Or if I, for's also a turn, let's say what was it unit price on p.price and you can also see this as well. No, I don't know if you go there, but you know, order by unit price descending, for example, so you can see a list of how much, what costs what. Exactly. Order by p.unit price descending, and then order in this order from 53 to 10. Yeah. So dried apple is more expensive than tofu. Interesting. Yeah. And dried apples are actually more expensive than tofu. Interesting. And dried apples are actually more expensive than dried pears, than organic dried pears. GERALD NEUMANN. MARTIN SPLITT. Interesting. And tofu and long-life tofu is cheaper than sauerkraut. An important thing here in the query is we are here using now variables like P and C because for the product and the category because we use them later, right? So we use the C here for accessing the category and P and C for returning data as well. So that's why we need to name them. If I forget to name this, then it just complains that the variable is not known. So then I must not forget to put it in. And then it also says that if you prefix our query with profile or explain, then we can also see besides the table, what's our query plan. So it shows us basically how the database executed this query as well. Right, so which is also interesting from that perspective. If I want to kind of figure out if I want to optimize or exactly. But it's good to know that this exists. And the raw option is basically just unlike the raw request response. It's mostly not so necessary. So you can also see a schema, your data, not just in the kind of this structure, but also in the visual structure, what does it look like? So you basically have this information in here, in the database that you can do with quality B-Scan visualization to see what this data model looks like. And if you want to look a little bit at the different companies supplying Northwind products, we want to see which suppliers suppliers supply products from which category. So we basically spell out this pattern, supplier to product to category, similar like we did before in explore. And then we return the company name and the categories. And here we use an aggregation where we say, collect all the distinct category names into a list. And if you return this, then this gives us for each supplier company, basically the list of category names that they cover as such, right? And we saw there are some suppliers who only have dairy products. We've seen this before, right? So, which is interesting. Okay. Okay. Yep. So part of a category returns the company names, the supply, even though you specify the product node in a match query, no information about the product node is returned because it's not part of the return, right? So we have the product node here, but we don't do anything with it. We just skip over it. We just have it as connecting the supplier and the category. And perhaps you're only interested in the supplier. Yeah, exactly. So perhaps you're interested in only suppliers of a certain category. Then you basically would say, I change the category name here. It's a little bit to what we had in the beginning. And then we could say, this is basically the suppliers for this category as such, right? And then we could order them or whatever we want to do. So, and then the last two queries, or last three queries are a little bit more complex, a little bit over time. So we can either keep this as homework for folks or quickly go over that, which. I don't know. And then we can do one. Okay, then let's do this one because that's a recommendation query. Yeah. So I mean, the text also explains what it does. Basically it looks as customers that order the same product. So we kind of say these customers have the same ordering behavior. So we have customer one and customer two and we draw out the pattern via order to product and it's the same product in the middle, right? So customers that frequently order the same products. It's the same kind of restaurant, for instance, right? So it's perhaps like different dairy shops or so that are similar, right? And then we don't want to have the same customer pair twice. And it kind of counts how often did this happen and the customer and the products. And then some of these occurrences for our top five products we pull out and then we can actually see these two companies have a similarity of 184, so 184 times they order the same product. And these are the top products they basically had in their joint basket as such most frequently. And this kind of now allows us in the next step to create a similarity graph between these customers. And then we can cluster them and we can identify basic other attributes that make sense to, for instance, recommend things that your peer group has bought, like people in your own cluster have bought, but that you have not bought yet, right? So something to explore new opportunities. So it goes a little bit deeper into these kind of queries. these kind of queries. And with that, we actually took the whole time. So I think talking through them, but also in general, I think 10 minutes are a little bit too little for these queries, for these guides. So I think you should actually think about 15 to 20 minutes each. Yeah. If you want to understand what's happening. Exactly. And play around. That's right. But we have full completion, right? So you see 100% completed on all three. So that's good. Check. We got to the last page for all of them. So we did our gamification, got other points, and all the loot along the way. Yeah. And so I think it's a good feature that has been launched today. Yeah, absolutely. Lots of people will find this useful in getting more familiar with the Neo4j user tools and learn how to do things there as well. And it helps a lot. So if you are interested in that, then check it out. If you are just generally learning more then always there's the Graph Academy, which is like a good upgrade or next step from there. Lots of many more guides from fundamentals to data import, data modeling, and then some language specific training courses, JavaScript, for example, or Python, where you can then, depending on what kind of environment you're working with or what you want to learn how to use Neo4j with, then this is, I think, a good next step to continue the guides, or you just, you know, take your own data sets, play around with it, learn yourself and trial and error is also working. Exactly. And Ashwar asked about how he can show his project in Discord as actually enjoy your project channel. And I think that would be a good place to show off projects initially that you built so that others can have a look and also get some feedback from other folks in the community as well yeah I think that's great yeah and if you have something that's a little bit more ripe then you can obviously also submit to notes and you can show it off and present what you did when you feel like this is ready for an audience exactly yeah thank you for watching super thank you michael thank you all the guys are cool thank you alex that's very very helpful and uh yeah i think um yeah i see you soon uh on the live stream. We have something happening this week on Thursday, actually, on the 15th. Will and I, we talk about geospatial data, and my colleague Sid is doing some learning sessions. They will take place I think 14th, so in two days. APEC, I think 14th so in two days APEC there is 14th APEC training course knowledge graphs with chat GPT so if that is working for your time zone then hopefully we'll see you there and yeah that's the geospatial data on Thursday and yeah with that I wish you all a great day good have a good week. Thank you so much. I hope you got through that nicely and I'll see you soon. Thank you, everybody. See you soon. Take care. Bye-bye.
Neo4j User Guides - Discovering Neo4j AuraDB Free with Michael and Alexander
Neo4j AuraDB Free: http://dev.neo4j.com/discover-aura

Catch-up on missed episodes from the repo! 
https://github.com/neo4j-examples/discoveraurafree

0:00 Welcome
11:55 Aura User Guides
13:30 Import Data
29:50 Explore Data
52:15 Query Fundamentals
1:04:45 Summary & WrapUp

Michael: https://twitter.com/mesirii/
Alexander: https://twitter.com/alexandererdl

All previous episodes: https://neo4j.com/video/discover-aura-free-with-fun-datasets/
Check out https://community.neo4j.com/ for questions and discussions around Neo4j

#cloud #neo4j #graphdatabase #datasets #guide #tutorial