Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:05):
You are listening to the BreaktimeTech Talks podcast, a bite sized tech
podcast for busy developers, where we'llbriefly cover technical topics, new
snippets, and more in short time blocks.
I'm your host, Jennifer Reif, anavid developer and problem solver
with special interest in data,learning, and all things technology.
This week I got back into code and didsome further digging and learning on ways
(00:30):
to update entities with Spring Data Neo4j.
Then I had an exciting release ofan ebook that I co wrote before the
holidays that includes skills you needto build your first knowledge graph.
To start us off, I had written a blogpost, I guess it was summer of 2023 now.
About how to update entities nodesspecifically in Spring Data Neo4j
(00:53):
and there were some troubles andgotchas and things that I ran
into along the way throughout thatblog post and I really didn't
leave with a sense of finding a greatsolution to what I was looking for, but
I had recently put together a SpringData Neo4j course for Neo4j's Graph
(01:13):
Academy, the online free course thatI've mentioned here on this podcast
before, and I learned some new thingsabout updating nodes and relationships.
There were some things that I wanted tocreate a round two blog post basically
of the one that I did back in 2023 andadd some more detail and some other
options to the list of ways to updateentities using Spring Data Neo4j.
(01:37):
I'll provide some hints here,but I won't go into super detail.
All of that will be providedin the upcoming blog post here, hopefully soon.
The first couple of options I'm lookingat are some custom Cypher statements
with methods to update certain parts ofentities and then projections, which I
may have mentioned on this podcast before.
I know I've mentioned it on my blogpost and I've definitely worked with
(01:59):
it in the past in a few different ways.
The biggest hurdles with updatesusing Spring Data Neo4j is there
really aren't that many examples.
There really aren't too many examples ofupdating using applications anyway, which
was one of my complaints in my initialblog post back in 2023 and the whole
reason why I wrote it in the first place.
(02:20):
Everyone typically goesto those read operations.
Occasionally you'll have a createor delete, but not many will
showcase that write side, thewriting data, especially the update
because that gets a little tricky, right?
You want to update property values orcertain things, and you want to leave
certain things, and do you want idempotentobjects or not, and so on.
(02:43):
I hope to provide more detail aboutthis in an upcoming blog post.
But, we will look at somecustom Cypher, some projections.
Currently, I'm evaluating some things likeoptimistic locking through the @Version
field, and then also looking at repositoryextensions and things of that nature.
I think those things are going tobe a little bit overkill for what
(03:04):
I'm just looking for right now, butagain, just some options to explore
and at least mention and maybe providefurther details on those down the road.
So look out for an accompanyingcode repository on GitHub and
then a blog post following that.
All right, the piece of content Iwanted to look at was there's a new
book that we are promoting as of thisweek called The Developer's Guide,
(03:27):
How to Build a Knowledge Graph.
And it is a new release with me as oneof the co authors, so one of three.
This was an enormous amountof work by several people.
We spent quite a bit of thefall of 2024 working on this,
putting this all together.
There were some challenges, and I'mgoing to highlight some things in this
podcast today of some things that kindof surprised me or things that were
(03:50):
really helpful and interesting as well.
The first thing was graph data science.
We looked at a graph data sciencesection, looking at analytics, how
to apply this onto a knowledge graph.
And we will be adding a section foranalytics upcoming, but just starting
to look into this and work on it.
It's not in the current version ofthe book, but it will be there soon.
(04:11):
I found that I really needed to update andrefresh my skills on graph data science.
Since last I had looked at it,it had changed quite a bit.
Figuring out best practices and how toapply things and the exact syntax I needed
for my use case was a little bit trickierthan what I thought out of the box.
So sometimes syntax is
hard to apply depending on yourspecific use case and the data
(04:31):
you're dealing with and so on.
Don't be discouraged if you'relooking at documentation.
It's hard sometimes to extrapolate areference syntax to the syntax that you're
actually working with in the real world.
Hopefully we will be coming togetherand putting a good, helpful, interesting
section together for you thatwill update the ebook this spring.
But just know that that's comingand graph data science, analytics is
(04:55):
a challenging component of this.
Also, when you're not a datascientist, when you're a developer,
as am I, you don't have a lot ofthe background context of the data
science and the algorithms and so on.
It's hard sometimes to figure out whenor how to apply certain algorithms
to your specific data set and to helpyou solve certain questions, right?
(05:15):
Okay.
I know.
These algorithms look interesting,but what is that going to tell me
when I apply it to my data set?
Do I actually need this?
Will it give me an answer that I'minterested in, in pursuing, right?
That's the analytics side of things.
Then the Cypher section, which isin the, in the ebook right now. It's
hard to find data that's relevantand interesting to broad audiences.
(05:38):
You don't want to choose a data set thatis overused and boring, but you want to
find something that's broadly applicableand understandable by wide audiences.
So that can be a real challenge.
And then you have to construct theproblems and the queries to solve them.
You want to find something thatshowcases the graph's ability
to handle the complexity
(05:58):
without being overly complex and increasethe learning curve for those who are
just starting out their learning journey.
For instance, if you haven't lookedat graph before, if you haven't looked
at Cypher before, you want somethingthat's approachable and has as low of a
learning curve as you can, but yet stillshowcases the ability of graph to handle
(06:19):
complex, intricate problems, right?
That was a challenge.
I thought putting that Cypher sectiontogether, finding something that was
interesting, finding something useful,and yet showing off really the strengths
of graph databases and knowledge graphs.
Then another challenge we hadin writing this book was just
the product improvements.
There was a lot going on last fall.
(06:40):
There were changes to the userinterface within Aura Console.
There were some changes going onwith offerings, packaging, tools, and
so on that were getting bundled in
and moved around a little bit.
And we had to actually go back severaldifferent times and upload new screenshots
or tweak processes and so on to makethings easier or to show what was actually
(07:02):
happening and what users would actuallysee when they went through the examples.
That was just something with the speedand acceleration of things changing
within products and technology, ingeneral, sometimes it's really hard
to keep up and keep on top of that.
Again, this will be an evergreenresource, so that I'm sure there will
be more changes coming, hopefullyto match any changes that are
happening in the product right now.
(07:22):
Last but not least is just thecollaboration aspect, and it's always
tricky when you put a bunch of differentperspectives and heads together.
We had a third party writer, an internalNeo4j product marketer, and then
myself as a Neo4j developer advocate.
And to combine all those differentperspectives into something that's
useful and helpful to variousaudiences, right, to wider audiences.
(07:47):
I thought it was interestingand exciting, but also complex
to bring all those perspectivestogether into something cohesive.
There were also reallyinteresting new perspectives.
I have a very developer,developer advocate mindset, right?
And each of our writers is goingto bring about some different
highlights or challenges ormessages that they want to focus on.
(08:08):
That's wonderful, that's exciting, butthen it gets hard to kind of weave those
all into something that's cohesive.
It is easy to get zoned into yourown mindset and so it's really nice
to hear others perspectives and tryto incorporate all of that together.
As I mentioned, this Knowledge GrapheBook will be an evergreen resource.
There is a new section on analyticsthat will be coming probably this
(08:30):
spring and then continuous updatesfor product improvements over time.
Though I didn't get to some otherexploration topics that I really had
hoped to this week, I was excited toexplore updating entities with Spring
Data Neo4j for an hopefully upcominground two blog post on the topic.
I hope to continue feeding mycuriosity and learning there.
Then I've been excited this weekto share the Knowledge Graph ebook
(08:51):
in hopes that it can help technicalpractitioners in their endeavors.
That's all for now, but stay tuned.
Thanks for listening and happy coding.