- Hello everybody, thank
you for joining me.
So we're going to be covering
how to build a Bloom perspective.
So originally, this was going
to be a live Twitch stream.
But unfortunately, the
connection gods were against me,
and I had to call it a day.
But as promised, we're back.
This is an offline stream
that I've put together.
So unfortunate, it's not
going to be as interactive
as I was hoping it was going to be,
but that's not a problem.
Please put any comments,
so tweet me with any comments
or questions that you have,
and then we'll follow
up in another session
on Twitch hopefully,
and will be able to answer
those questions then.
But for now, again, as previously aimed,
this is something that you
should be able to follow along.
So if you want to build
a Bloom perspective
at the same time as I am,
we are going to be
building one from scratch,
then please do join in.
So, you can access Bloom
for free in Desktop now,
so you can run Bloom off of
a local database in Desktop.
So if you're going to do that,
do check that you've got the
latest version of Desktop,
that's 1.2.7.
Don't worry, if you're
not sure how to do that,
I'll show you how to do that in a moment.
So, just as a quick comment,
if you've got any questions
you want to follow up in,
then please do check out Neo4j Community.
So that's community.neo4j.com.
So there you'll find
the best practice guides
about all things Neo4j, you
can ask questions there.
And absolutely, if there's some questions
that you know the answer to,
bombings, get involved
and help answer those.
What are we gonna cover
today, now in this session?
I'm going to show you how to add Bloom.
So actually, it adds itself automatically.
I will show you that in a moment.
I'm going to show you how to check,
if you've got the latest
version of Neo4j Desktop,
and if not how to get that sorted.
And then what we're going to
do is we're going to load some
data and I'm going to
be using the built in
browser guide movie-graph for that.
So I'm going to use that
nice handy bit of data there.
And then we're going to go build a
Bloom perspective from scratch.
So let's get going.
I've got here a Neo4j Desktop.
I've already set up my project.
But I'm going to show
you now how can you check
what version of, or how to check
if you've got the latest
version of Neo4j Desktop.
So what we'll do is we'll click on this
picture here of a bell,
the Notification Center.
And if we click on that,
it will let us know
if we've got any updates
for Desktop available.
So as you can see, I've
got no updates available.
Now something to check is
you may accidentally be
in offline mode in Desktop.
So, if your internet starts
doing some strange things,
then what Desktop will do is
it, it will switch you over to
offline mode, just so
that you have a bit more
of a smoother user experience.
So to check to see if you're
inadvertently in offline mode.
If you click on the settings cog here,
and you'll notice we've got a
section here which says Offline Mode.
So if that box is ticked,
just don't click it,
and like that you'll have
disabled Offline Mode.
And again, once you've done that,
go back to the Notification Center,
maybe press the cog to
see if anything comes up,
and then if there's any updates available,
you'll be notified about them.
So that's how we can check.
And if I click on the Graph
Application section here,
you'll see I've got Neo4j Bloom available.
So that's packaged by default with
Neo4j Desktop 1.2.7.
Should you accidentally delete the app,
don't worry, all you need
to do is restart Desktop,
and you'll notice it's back there again.
So that's how we check to see
if we've got the latest
version of Desktop,
and we can see that Bloom is there.
And again, as I said,
you don't need a license key for Bloom,
Bloom 1.3 in Desktop 1.2.7.
So as long as you're working
with Local Graph in Desktop,
you'll be able to use Bloom.
So, let's start thinking
about getting some data in.
So I'm going to add a
database to my project.
Clicking on the Local Graph,
and I'm going to use an older
version of Neo4j Desktop.
Again, we'll have a follow up
session when we're using Bloom
with version 4.0 of the database,
and how it worked with
both the database versions.
But for now, I'm going
to stick with 3.5.15.
I'll put in the password.
And I'm going to create the database.
So another thing I'm
going to do as well is,
I'm going to be showing
you some of the features
we might want to add in perspective.
And I'm going to be using one of the
Graph Data Science algorithms.
So I'm just going to add
that plug-in as well now,
whilst I'm here, you
can do the same as well.
So just press on the plug-ins button,
and you'll notice you
can add the library here,
so I'm going to install that now,
good.
So, quick tour
of Desktop 1.2.7.
For those of you who
have been using Desktop,
you may have noticed
it's changed slightly.
So you'll see that we no
longer have the application
section at the top, that's gone away.
And what's happened is
all the applications
are launched from this open button.
So when we get the database started,
I'll show you that's working.
And you will also notice we
have this Files section here.
So whilst we're not going to be using it
in this session today,
what you can do with this is,
for example, you can add a Browser Guide.
So you can build Browser Guides.
I did a session on that
last week showing you
from scratch, I've never built one before.
But you can see how you
can go about building,
pretty simple Browser Guide using HTML,
and then you can use the file section
to launch that for you.
But we're not going to
be covering that today,
but I just wanted to
show you some of the changes in Desktop,
in case you are a bit
unfamiliar with the new setup.
So I am going to start the database now,
and then we are going to
get started with creating
Bloom perspectives.
We're just going to add some data.
I'm going to let that start,
and what we're going to be doing
is we're going to be using
the movie-graph data set.
So that's really easy to get to,
we're not downloading anything special.
We're gonna execute that from
one of the built in guides,
we're gonna put in a couple of indexes,
and then we're gonna go,
be heading over to browser.
So we've got that started up now.
And what you will see is if I
want to launch Neo4j browser,
I just press the Open button here.
If I want to launch
some of the other apps,
so we'll be launching Bloom shortly,
then you just click on
the little down arrow,
and you'll have the various graph apps
you've already got installed.
So we've got Bloom here.
So first off, let's get
some data into our database.
And I normally just go through,
navigate through the guide here.
So I'm gonna click on write codes,
I want to use the movie-graph,
I'm going to move to the next slide.
And this is the data that I want.
So just as a reminder,
if you find anything in
a hatched box like this,
you can click on that, and
it will send the code up
to the query bar.
So, I'm just going to run that now.
And that's going to go away and generate
the data for me, like so.
And I'm just going to quickly show you
what the data model looks like.
So call db.schema.
And as you can see, we've got movie nodes,
we've got person node, and
we've got different ways
that the person node
interacts with the movie.
So you've got active, reviewed,
produced, wrote or directed,
and there's also person-to-person
connection there.
So we've got person follows person.
So that's our data model.
I'm just going to add a
couple of indexes in there
to help Bloom long.
I'm gonna create an index on person name.
So the person node has a
name and a date of birth,
and a movie node's got a title,
a tagline, and year released.
So I'm just going to put
an index on the person name
and the movie title.
(types loudly)
So, we're going to add those two indexes.
So we are in business.
Put browser there for a moment,
and we're going to launch Bloom.
So I click the little down arrow,
press Bloom, and that's
gonna go and start up Bloom.
And what's happening in the background
when you start up Bloom?
It's just having a look at the database,
and it's going to look at things
like what labels and
relationship types are in use.
It'll also do some statistical
analysis around the
properties being used for labels
and the relationship types,
and it will pick the
common ones associated with
nodes and relationship types.
And it also will use the
indexes that you set,
to help speed up navigation of the data.
So this will make more sense in a moment.
For first of all, we're
going to create perspective,
we don't have any perspectives available.
So if I press this button here,
I'm given a couple of options.
I can either start with a
completely blank perspective,
so we'll be given a
blank canvas and we can
tailor it to however we like.
But more commonly, when I'm starting out
with a Bloom perspective,
and I'm sort of updating and so forth,
what I'll do is I will use this
Generate Perspective button.
So I'm going to click that,
and what's happening in the background is,
Bloom is going to pick
some arbitrary colors
for our, relation.
For our node labels as it's done here,
we've got one for movie and person.
And the other thing it does as well
is it tries to guess what would
be a sensible caption name
for our nodes, which we'll see
in the visualization shortly.
So, we'll look for things like
name, title, and so forth.
And that's what it's going
to suggest as captions
for our visualization.
So this will make more sense shortly.
So what I'm going to do before
I select this perspective
is I'm going to give it
a more sensible name.
And we can do that by clicking
on the three dots here,
and then we can rename it.
And I'm going to call it, "Movie graph."
'Cause that's the data that we're using.
(types loudly)
And I shall save that.
And I'm going to use this perspective now.
So this is our initial perspective,
and if I start using some of the nodes,
if I type in person as suggested,
it's going to bring back
all of the person nodes.
And I can zoom in and
have a look at those.
So, you know if I talked
about Bloom tries to be
helpful and suggest what
might be useful caption names,
So Bloom selected
name from the person nodes.
So this is what we're seeing now.
And equally if I clear the scene,
and let's do movie, to
bring back some movie nodes,
same idea, it's selected title,
and that's what's being displayed.
So if I double click on a node,
we get the information pane that comes up.
We can see title, that's what's
being shown as the caption.
Now, you might decide,
"Well, actually, I don't
just want title in there,
"maybe I want to include
the release year as well."
So what we can do to customize
what we're showing for
the captions and so forth,
is if we click on this button here,
we can find out more about
what's been selected.
So I click on movie node,
and what you'll notice
we've got two options here.
So we'll list out all of
the common properties,
associated with that node label.
And you can see here that title
has been selected for caption.
So that's what's going to be shown
on the node when we select.
So for example, if I click on released,
and just close this back,
you now see that we also include
the release year on there as well.
And, for argument's sake,
if we said, "Actually,
there's certain properties
"we don't want to be displayed."
We can choose to exclude those.
So, if I decided that I wanted
to exclude the tag line,
if I click on the tag
line and exclude that,
if I then go back to the information pane,
you'll notice that the tag
line is no longer shown here.
So you can use this here to customize
what information you want
to show to your end users.
I want to show the tagline,
so I shall remove that.
So you can see what's going on here,
and you've got the person
label there as well.
So you'll notice you've got
an option here that says
Add New Category, and I'll click on that.
And there's no more
labels in the database,
you've only got two.
But if you selected the
blank perspective option,
then these won't be populated
and any labels that haven't already been
shown up as categories,
you could then select
them and customize it.
So what you can do as well, for example,
is maybe you want to get
rid of the movie category,
so you could delete that category,
confirm delete.
And then you'd only have
person labels and then,
everything else that wasn't selected here
would come back as an other node.
But, we'd quite like to have movies here,
so I'm just going to put that back in.
So I select movie.
There it is, it's back in the category.
So you can see how you
can customize that there.
And you can do the same
for relationships as well.
So you can decide which
relationships you may want to
have available, so you
have visible or hidden.
You can have customization around that.
Search, we'll come back to in a moment.
So, we have this option to customize
what captions we want to use.
Do we want to hide any properties away?
Another thing we can do as well,
is customize what colors
we have the nodes.
So, Bloom can pick
those arbitrarily for us
when we generate perspective,
but we can change them
if we don't like them.
And another thing we can do as well,
is we can put some icons,
we can associate icons with our nodes.
So when we're zoomed out,
and maybe it's difficult to read captions,
or the text is too small
to show the caption,
there's a lot of value in being able to
have some kind of graphical
representation with that node.
So people don't always want to look up
the color associated with that label.
And maybe it makes more sense to pick
some kind of an image that is
more related to that topic.
So we're going to do that now.
If you click here on
the nodes section here,
and you click on the sort of square,
this gives you the option to do that.
So I'm going to have a look
at something from movie,
so I wanna put movie and see
what images are available.
And let's say I'm gonna
pick this play button
to represent movie.
How we can do the same for person as well.
So I'm going to click on that square,
I'm going to put in person,
and I'm going to have a look at
what icons I can choose from.
And as you can see, there's
lots and lots of icons.
I like the look of...
What do I like the look of?
I'm gonna go for this one.
This is sort of like a
person with a movie camera.
Okay, why not?
So I'm gonna pick that
icon for the person.
So, what you can see if I zoom out,
you can start to see those icons.
So if I clear the scene,
and I do something like,
I want to see what movies
Tom Hanks has acted in.
So I've put the indexes in,
and because I've got the
indexes in Bloom uses those.
So I don't have to do much.
P person, name Tom Hanks,
accident movie.
I can just write Tom Hanks,
and because Bloom is this
near natural language,
search will be working
through the database.
I can do something like,
"Tom Hanks acted in movie."
And then Bloom will try and resolve that
into what we're looking for.
So in this example, it's
turned it into this pattern.
I'm going to select that.
And you can see we've
got a nice icons here,
and if I zoom out a little bit,
you can tell from a distance straight away
that these are going to be movie icons,
and this is my person icon.
So that's pretty straightforward.
Another thing we can do now,
and this is a new feature into
the newer versions of Bloom,
what we can do as well,
is as well as adjusting
the colors for the nodes,
we can do that for the
relationships as well.
So, I'm gonna quickly associate some
colors with the relationships.
And the reason why I
think this is really good,
especially if you haven't got
a large number of relationship types,
by associating them with with a color,
we can very easily, visually
differentiate any groups
or an interesting behavior going on.
So it's really handy
for visual inspection.
So I'm going to go and quickly
pick some arbitrary colors
for these various relationship types.
And let's pick, always pick,
pick this color here.
So,
we can do this.
And if I just quickly bring in
some of these other relationship types.
So I'm gonna pick directed,
that'll bring back some examples of that.
I'm going to put in follows,
produced,
reviewed,
and wrote.
You can see now by having
the different colors
it's a lot easier to sort of scan,
and see what's going on with our graph.
So, there we go.
We've done some basic
customization of our graph.
We've picked what
captions we want to show,
we've picked what properties,
if any, we want to hide away.
So hiding the property is really useful
if we've got some sort of unsightly long,
unique identifying number as an example.
So you customize what we're showing.
We've adjusted the colors
for our notes, if required.
And we've also put colors
to our relationship types.
So straight away, we've done a lot
to make this quite user friendly.
So what I'm going to do now,
is I'm going to show you
something around search phrases.
There's a lot of power in Bloom
with what you can do to explore your data.
And there's a lot of patterns you can use,
these Bloom phrases you can
use to explore your data.
But sometimes, you may
need a very specific query,
and this specific query,
you run over and over again.
And maybe you can't write in Bloom
or it's something that
you write regularly,
and you want to
have something that
encapsulates that query
without having to, put that
phrase in over and over again.
And what we can do is we can use these
things called search phrases in Bloom.
So, remember we had this
search section here.
So this is what we can do,
and this allows us to add
a Cypher query, we can pram
twice that Cypher query.
So we can say, what we want
to put in for the user,
and we can give it a nice friendly
name that a user can call.
So I'm going to add a search phrase,
and a search phrase
that I always add in Bloom,
when I'm starting and I'm
creating a perspective,
is something to show me what
my data model looks like.
Because I will know my domain.
But sometimes I need a reminder,
and I don't want to keep
shifting back and forth
between browser and
Bloom to be able to see
what my data model is.
So it's a very clever way we can do this.
And I'm just going to
show my Cypher query here.
So what I can do, so remember
we've got call db.schema.
So that's what we normally call in browse
having to cut a model.
And what we can do, is
we can yield the nodes
and relationships that come back.
So that's what I'm doing.
I then unwind them 'cause
these are collections.
So I'm unwinding the collections
back into their components,
and then I'm going to return those.
And that's going to give me my data model.
So I'm going to call that call schema.
I'm going to give a description.
(types loudly)
And I can save this.
So this is the phrase
that I'm going to use
to call my search phrase.
So what I can do now,
is if I do call schema.
Pressed the wrong button there.
The call schema.
And you can see,
it shows here that says
it's a search phrase.
If I press this, it gives
a little description
of what it does, and there we go.
We can now have a look at my data model,
and this should look familiar.
This is what we saw previously,
when we called it in browser.
So that's an example of a search phrase.
And we can have a look at this.
So something to bear in mind,
which is really powerful as well,
is for those of you who are using a POC,
especially if you're using things like
virtual relationships and nodes,
you can use that as an aggregation layer
through the search phrases in Bloom.
So that can be extraordinarily powerful
in certain use cases.
So, you can use that and my colleague
will line his blog post on how he's used
the virtual relationship
and nodes in Bloom.
So this is an example of a search phrase.
So let's have a little
look at something else,
for a search phrase.
And I'm going to use some parameters now.
For those of you who are
familiar with the movie-graph guide,
one of the queries we have in there
is when we're looking for
movies that have been released
from a certain period of time.
So what I've done is I've
taken that query here.
So this specific query here,
basically asks for all
the movies from the '90s.
So this is all of the movies after 1990,
and before 2000.
Now, perhaps a more useful
query to us would be,
before you provide to use,
and then the query is going to give us
all of the movie titles that
fall within those two years.
So I'm going to adapt this query slightly.
So I'm going to say,
"Years."
So all the movies coming
back from certain years,
I just give this a sensible name.
(types)
So, we're gonna give this.
We've got to think
about what search phrase
do we that we want users
to use to call this.
So let's say,
"Movies between
"year one and
"year two."
So here,
if the user who's using Bloom,
puts in their search phrase of,
actually, let's make small m.
Movies between,
they give one year for this parameter
and one year of this parameter,
they'll be able to run that query
and get back all the movies of that time.
So something to bear in mind with Bloom is
we don't return tables.
So I'm just going to...
I'm just going to return the nodes.
Return the movies that meet that year.
So what I'm going to do now
is put in reference to our premises,
so that's gonna be year one.
I'm going to put the other one here,
(types loudly)
and then we just need to let
Bloom know a couple of things.
So we need to let Bloom know
that these are introduced.
And what we could do as well,
is we can suggest inputs based on labels.
So Bloom will pick certain things,
for example, if we were looking
for certain actors names,
we can suggest, we'll
look at person names,
and you can auto-populate that.
Now, because we're using an integer,
I'm not going to bother with that,
but the next search phrase
we create, I will use those.
So we'll see how that gets used.
And the thing to bear in mind as well,
so not only can you do it from,
what you've already got available in data,
but you can also create
a Cypher query as well,
to try and generate the output.
So that's extraordinarily powerful.
Let's just tell that the
second part is also an integer.
We're going to save that.
I forgot to give it a sensible name,
so let's just quickly do that now.
(types loudly)
Excellent, let's save this.
And then again, I'll
show you this in action.
So if we do,
between, let's say,
1985, and
1995, why not?
And then we can run this query,
and it's going to bring
back all of the movies
that meet that requirement.
And that's really powerful.
Especially if there's a certain query
that you're going to
run over and over again,
then this is a great way
of being able to do that
without having to have any
verbose query behind it.
So let's do a quick example
where we're using name and
suggesting a potential input.
I'm gonna clear the scene.
So what I'm going to do now
is do the Bacon number equivalent.
So again, I've copied
that from movie guides.
The search phrase,
"Hops from person."
No, it's all right.
Be consistent with doing
this all lowercase.
"Hops from a person to
movies and other people."
Put in the paste in the query,
so we're just gonna adjust that slightly.
We can keep calling it bacon, why not?
And then the name here is
going to be our parameter.
And then what we're going to do now is,
we know it's a string, so
we're leaving that there,
and then I'm going to make a suggestion.
So I'm going to say, we're
going to suggest a person name.
Going to save that.
So, now if we run this,
so hops from, let's say Tom Hanks.
And you can see it's suggesting
various names and moments put in.
So I'm going to pick Tom
Hanks, and there we go.
So we've now expanded our...
Now expanded, Bacon number functionality.
So we don't have any relationships here.
So you do need to specifically
state that you want to
return the relationship.
So, I'm just going to quickly
update that search phrase.
And I'm going to just give a variable.
And then what I can do
is return this thing Hollywood,
and bacon.
I'm gonna save this.
So if I now rerun the same query.
Let's try to clear the
scene and try again.
Okay, I'll have to look
into what's going on there.
It's probably...
That's probably my bad somewhere,
so I just need to see
what's going on there.
But when we get the idea,
what we can do is create.
We can create these,
search phrases which are really
powerful in being able to
capture something that we're gonna
repeat over and over again
and maybe we just think about
adjusting the parameters
that we've put through.
So it's really powerful.
Now, another thing you can
do as well, is you can.
I'm just going to clear
the scene here quickly.
And let's just pick an arbitrary,
Tom Hanks directed.
So let's just pick something
that Tom Hanks has directed,
it's nice and small.
And what you can do as well,
is we can also adjust
the size of the nodes
and the thickness of the relationships.
And there's a couple
of ways we can do this.
So what we might decide to do is,
we want to adjust the default size.
So maybe we want to have person nodes
always bigger than movie notes.
So we can do that.
But another thing we can do as well,
is we can do rule-based adjustments.
So we can add a rule-based styling,
and we can do this based
on a property for example.
Now, what I'm going to show you
and this is why we've brought in the
Graph Data Science Library,
is I'm going to adjust the thickness of,
sorry, I'm going to adjust
the size of the node,
but I'm going to do it based on PageRank.
So I'm going to run PageRank on all of the
actors in the,
in my small data set.
And then I'm going to add a
property to each person node,
and it's going to be, it's
gonna have a PageRank value.
And then what I want to do,
is I'm going to change
the size of the nodes
based on their PageRank score.
This is going to be a
rule-based adjustment.
So I'm going to go back to browser now.
And I'm going to make this happen.
So we're back in browser,
and what I'm going to do is,
I'm going to run PageRank.
So the first thing I'm going to do,
and don't worry too much,
if you're not sure what's happening here.
But I'm using the Graph
Data Science Library.
So the first thing I'm going to do is
bring in and shape the data
that I want to run PageRank on.
So what I'm doing here is I'm giving my
in-memory graph a name of centrality.
I'm saying that I want to,
match all of the person
nodes in my database.
And then what I'm saying here,
so this is PageRank.
I'm doing this on everybody
connected rather than actors.
So I'm just going to change it slightly,
'cause I want to do accidents.
I'm just gonna quickly update this.
(types loudly)
And we know that in this scenario here,
everything goes to movie.
So I've been lazing up in the movie node.
(types loudly)
Excellent, so I've put acted-in.
So what this is going to do,
this is going to golf,
pull all my person nodes,
and then it's going to go,
and the connections that
we're interested in is
person acted in movie,
acted into another person.
So that's how we're mapping them together,
and then we return those IDs.
There were too much about
the terminology here.
This is just...
I'm just basically saying
how to shape my graph.
So I'm going to put that into memory.
And then, I am now going to run PageRank.
So I'm using all of the default values,
I'm not setting any specific
properties for the
PageRank algorithm here.
So all I'm doing here is I'm saying,
"Run PageRank on my centrality graph."
That's the graph we just put in memory.
And, I want you to
create a new property called PageRank,
and all of those person nodes
that we're gonna run PageRank on,
and you're gonna put the value
of their PageRank into that property.
So I'm going to run that.
And I can show you now
when I list back a person.
So we're gonna match with the person nodes
and bring back their name
and their PageRank value.
And I'm gonna order it by
the nodes with the highest
value for PageRank.
You can see Tom Hanks here is 4.8.
And if I scroll down to the bottom,
we have low values of
naught point one five
for James Thompson, poor guy.
I think some of these are reviewers,
so they're not very well linked.
You can see what's going on there.
So if I now set a dynamic property,
what I want, I want the likes of Tom Hanks
to have very large node,
and I'd like the likes of, and I pick,
Helen Hunt should have a smaller node.
And obviously we go down the list,
there'll be some small nodes.
So let's have a go at setting
that dynamic property.
I will go to nodes, I am
going to select person now.
And now we've added that property,
I'm going to do add rule-based styling.
I'm going to...
Actually, let me just refresh the data.
'Cause this will be
from the previous query.
Okay, so now if I do this,
hopefully it should show.
So rule-based,
I want...
Just going to restart Bloom, just in case.
Okay, so if I click on person,
and I want a rule-based style.
And I want to do on PageRank.
So what I can do as well,
I'm going to select range.
I want to do size,
I want to do range,
and what I'm going to say is that
the main points or the
main point was about
naught point naught five,
so I'ma do naught point,
naught point one five.
And we're gonna say it's,
let's pick quite small.
Small node, why not?
And Tom Hanks was about
four point something.
So let's say the max point is five
and we're gonna go for a really big node.
So we've set the rule base.
Run that, so what we can
do now is for try person,
you should have a nice selection of
different sized nodes.
Okay, let's just see what I've done here.
And yes, select (laughs).
Select size flags, there we go.
So we can see now if I zoom out,
we've managed to do this dynamic
sizing based on a rule.
So now I've rule here's been a property.
So this is extraordinarily powerful.
And we can do this as well for
the thickness of relationships,
we can adjust the colors as well.
So let's have a go at
doing this with colors.
And this is an
extraordinarily powerful way
of being able to...
So I'm going to
turn text size off, and
let's do this with color.
So you say midpoint is 1.15,
and the max point was five.
And let's say the midpoint
here is gonna be two.
So again, the same idea, we can adjust.
Let's put this over here, excellent.
So it's the same idea as well.
So you can see the power of
how we can customize the nodes,
we can apply rules as well.
So you go this really
powerful dynamic thing.
And this is really useful
if you've got some kind of results.
And you want to do some vision inspection,
how you can weight both
by size and by color.
And as I say, you can do the
same thing with relationships
as well, it's the same idea.
You can add some rule
based things on that.
Okay, we've given you a
good tour of what you can do
with regards to getting up and running
with a Bloom perspective.
If you've got any questions,
so either send a reply
onto the Twitter thread,
when I post a link to
this video, on there.
You can again post any
questions in the community site.
So that's community.neo4j.com.
And if you've got any follow
up things you want to cover
in a Twitch stream,
then please let me know,
and we'll get those covered.
Thank you very much.
