 Welcome back graph enthusiasts to graphstuff.fm, a podcast all about graphs and graph related technologies. I'm your host, Jennifer Reif, and I am joined today by fellow advocate, Jason Kuh. Hello everyone. And our special guest today, Paco Nathan, who is a principal developer relations engineer at senzing.com and listed as an evil mad scientist on LinkedIn. Thank you very much. So glad to join you, Jennifer and Jason. So just a little bit of background on Paco. He works a lot within developer communities and tech events and tries to provide many pointers to learning materials, industry analysis, and so on, and connect with many people. He presents he presents talks workshops and hands-on tutorials about entity resolved knowledge graph practices and the related ai use cases which are downstream so thank you so much for joining us paco do you want to start just a little bit with how you got into neo4j yeah yeah no great you know i've i've been in this space of like well just to kind of back up and give history back to the dark ages. I went to grad school back in the eighties, started grad school in early eighties in AI. And while I was there, I had a lab partner while I was at IBM research on the project. I had a lab partner who just talk, talk, talk, talk, talk about neural networks. And she really got me interested. So in the mid eighties, I got involved in doing work in neural networks, but I was also already doing work in machine learning and natural language. And I mean, for a long time, nobody really cared about machine learning. So I went off and did like network engineering and other kinds of data management. But eventually I got into doing graphs because of natural language, like for natural language understanding. And I've been involved in some, some open source projects that have been used a lot in that area. And earlier this year, I had friends at two companies. So Philip, CTO of Neo4j and also Jeff Jonas, who's the founder of Sensing and Philip and Jeff wanted to do, you know, something together. And I was like a common, a person with a foot in both camps. And so I signed up to do a tutorial and it was really fun. I got to work with ABK on the Neo side. We took data, mostly open data that was about businesses in Las Vegas during the pandemic. There was the PPP loans that the government did. And then there was the forgiveness program for the loans. And there were some businesses, I'm not going to point any fingers or mention names, but there's some businesses who registered multiple times to get the loans. And so we were looking at how to use graphs to identify fraud, PPP fraud, and just really focusing on that one geo area, because it made loading data quicker, things like that. But even just within that area, I think we had about an 80,000 node graph. And by using entity resolution, so sensing, and then organizing this and visualizing it and drilling down in Neo, you could show right away, it's like, wow, there's a really big cluster over there. Let's go find out what's going on. Oh my goodness. There's a business and they have an address at like a residential address or mailbox, et cetera. And there's like, you know, 50 businesses that are all registered right there. And they're doing, in some cases it was really egregious, like where you'd see, yeah, yeah, we do veterinary clinic, but we also do massage therapy. And yeah, so graphs are really useful for catching bad guys. That's a lot of where I'm at. Okay, cool. That's super exciting. Did you put that, so that project, sorry, I'm like, have like three thoughts going at the same time. So is that project available publicly for folks to kind of jump in and kind of explore as well? Yeah, you bet. I'll put it in the show notes. It was, it actually ran on the Neo4j blog. And so we've got the code all up on, you bet. I'll put it in the show notes. It actually ran on the Neo4j blog. And so we've got the code all up on GitHub. It takes a little over a half hour to run through, like start to finish. And we're showing how to do all the steps. I was using Graph Data Science Library a whole lot, but then going and doing the visualization inside Neo. And so basically get all your data prepared and then inside the graph database and then do your visualizations. And then inside of Neo, you can start to constrain what you're visualizing and start to slice the data and just really zero in. The thing that I think is really startling with this though, is when you look at loading up all these records of here's businesses and here's PPP loans and here's like how many employees are in each business and how many complaints I've had for employment, blah, blah, blah. You know, it's just a big scattered mess. But once you start to connect it up and build a knowledge graph out of it, once you start to bring in sort of the connective tissue, then the real things you need to look at start to pop out right away. You can start to see those clusters in the graph. Nice. It was it difficult to get the initial data that all that they do compile together? You know, that's a really interesting question about that here. I'm just looking in the show notes. You know, what we did was we took data from a safe graph. They do a commercial places directory of businesses all over the world. And so they opened up a slice. So it's open to the public. It's just about lost, I guess. And then we also had data from federal government. So we had some from the department of labor and then some from the U S chamber of commerce. So you know, getting that in and basically I just, you know, put it in a Jason and then some from the US Chamber of Commerce. So getting that in and basically I just put it in a JSON and then I was loading in many batches in Neo4j. Getting that into shape, no problem, but you really do want to analyze your data on the way in for this. When you're going to be building graph, it's probably best to do a little bit of descriptive stats about all the different columns, how much do certain items repeat? Are there any data quality problems like something that's supposed to be a unique identifier, but it's showing up many times? So you go through and you do some work there, but then sensing what's going on is we take PII features, especially connecting features. So we need to have two or more features across two or more data sets. Then we can make determinations on which records can be merged into consistent entities. The entities may be people, they may be businesses, they may be maritime vessels, but these end up being nodes. Moreover, they're a overlay. So like you take the evidence you have and you put it into Neo and those are your data records. And then you, you peel off the PII features and run it through sensing. And you come back with this kind of overlay that organizes it. And it says, here's an entity. And under this entity, here are connections to like five different data records in the graph but here's like you know here's bob r smith jr at 101 main in las vegas but then there's another record that's like bob smith in las vegas we don't know a whole bunch but we think it might be the same person and so if you're doing an investigation those sort of probabilistic links are really important of like hey we're we don't have enough evidence put together to make a decision right now, but here's one you might want to check out. What you do is you end up getting this overlay of nodes, relations, and properties that you build out on top of your graph to organize it. You still got the evidence, the raw data underneath, and then you can start doing analytics. Looking at centrality is a really good thing because it figures out like which nodes are more connected than others. Um, other things too. I mean, if you're looking at other use cases, maybe you're doing like rapid movement of funds or other types of any money laundering. And there's definitely graph patterns you want to look for. It's a nice blend of using entity resolution and knowledge graphs. Right. And so if, you know, other people want to kind of replicate the sort of work, maybe in different cities and stuff, how do you suggest they get started with this? Do they start with the source data? Should they work with the taxonomy first, the ontology? Yeah, that's a great point. In what I do in DevRel, AdSensing, in the Knowledge Graph practice, I am working with other consultants, other experts in this field. We're developing open source tutorials. So a couple of people I'm working with right now, Claire Sullivan, who used to be at Neo, and also Louis Vuitton, who's also done work with Neo4j, a lot of open source work. And we're building out tutorials showing different kinds of data. So maybe different cities or other kinds of use cases. Claire took the one that I had done in Las Vegas and then she built on top of it using Langchain integration with Neo. And so built out a chat bot so you can explore about fraud patterns in this case. But I think the larger thing there is there really are a lot of open data providers. So there's open sanctions that has sanctions watch lists of known people who've done some egregious things in the past, and we're going to watch them in the future. Or maybe, you know, businesses that have been caught engaging in illegal practices, or people who are just likely suspects, like they're in a position where they could be bribed and a lot of people in their position are getting bribed. So let's just keep track. So open sanctions is really cool. It's out of Berlin, Prudik, Lindenburg. But then there's also the kind of connective data, like open ownership, Steven Abbott, Pew out of open ownership in London. And that has a lot more links. So I can say, here's a person, they're a director of the following companies, these companies have owners elsewhere, on and on. That's really what you build up the relationships in the graph. And then sometimes, if you're lucky, you can get a hold of like event data. So for instance, there was a PPP loan, I got that from the federal government. Or in the case of, have you ever seen a Netflix movie called The Laundromat? No, I think I've seen it advertised, but. It's pretty cool. I mean, it's kind of funny. It's humorous. It's actually a really serious topic. Have you ever heard of like the Panama Papers? Actually, yeah, really good news case. So the idea is that there's this case. We still don't know all the facts it happened about 12 years ago but the deal was about three billion dollars are known to have been moved out in illegal means through money laundering and it went out and there was a whole bunch of well there were russian weapons illegal weapons trade there's a whole bunch of like people in the country who ended up buying condos in miami or you know buying luxury items and stuff there are a whole bunch of eu officials who were bribed and probably nobody would have known a whole lot except for somebody at the bank somebody at densk bank in estonia leaked records of like 17 000 records records of money transfers. And so this is actually showing the crime, right? Because you're seeing what's getting transferred from whom to whom. And so this idea of like, you have lists of data like open sanctions that provide risk, talk about whose potential to get bribed or who's known to have done something wrong. And then you have the link data, which gives you the relations. And then maybe you have an event data that says, oh, actually here was a money transfer. And if you can take those three, you can build a graph and show, even though the bad guys are trying to hide everything behind a network, like the money goes through maybe five levels of indirection with offshore accounts and different corporations. And then somebody buys a condo in Manhattan for cash. You can still trace back. And so leveraging a graph to be able to, you know, find those connections and identify that, you know, maybe in EU, you're only allowed to transfer so much money from one entity to another within a certain time period before you file certain paperwork or else, you know, you're probably doing money laundering. In this case, what they were doing is splitting up the transactions in smaller pieces, funneling them through a lot of offshore companies, and then eventually they hit the target. Long story short, there's been a lot of investigative journalism about it. There's been books written about it. There's a movie about it, et cetera. And 12 years later, absolutely nobody's been arrested. There's even like one of the diplomat, one of the politicos in Italy was like, oh yeah, I did the bribes. I took the bribes. I'm never going to go to jail. So, you know, it's, it's really interesting, but this area here, you can get a lot of data from open data sources. Sometimes you can get leaked data from like a bank or a law firm where people know where the bodies are buried and they just are trying to do the right thing. There's a couple of organizations like OCCPR and ICIJ, which take leaked data. And then we'll, we'll put it into format so that we can build graphs. So that investigative journalists and, and you know, officials, government agencies and whatnot can work with it. So it's kind of a long answer, but I hope it gives a little bit of flavor of a lot of what's going on there. That's a lot of our customer base too. Nice. No, thank you. That was a very comprehensive, like, you know, soup to nuts kind of overview, especially like talking about the Panama Papers, which was like my lead into Neo4j. It's a great, fascinating story, right? Oh yeah. Yeah. So much data. Yeah. There was a great book, I think written by two of the journalists or two of the data center folks. I forget the name of it, but it was a great audio book as well, too. Yeah, no, it's really interesting. I I've been doing a series of talks called catching bad guys using open data and open models, talking about how to really build graphs and then use what's emerging in terms of AI tools downstream from knowledge, whether you're building up, you know, GraphRag or you're working, building up agents, or you're doing other types of analytics and graph machine learning, you really got to get the graph data first and got to get it right. And in that talk, I'm showing, yeah, there's, there's like five books that we're tracking. There's one called Moneyland from Oliver Bullough that I highly recommend. He was one of the journalists tracking all this stuff. And he had gotten out of, I think, Cambridge and then right around the time that the Soviet Union collapsed. And so he immediately went to Eastern Europe and started traveling around and stayed embedded there as a reporter for many years. And then it's just really fascinating to see what ICIJ has done. Panama papers, but they've also done paradise papers, Bahama papers. There was one about Cyprus. It's very recent. There's a lot of these different studies. And again, it comes back to somebody decided to do the right thing and they leaked the records. Right. You mentioned the movie laundromat earlier. Is that kind of a similar story to Panama Papers? Yeah, it is. I mean, what they did was they took a lot of different scenarios of what's going on. So if you read Autocracy or you read Moneyland or any of these books that go into a lot of detail, the Laundromat is sort of the condensed crypt notes where they follow like a few people and everything bad happens to these people. And they go off and investigate it personally flying around the world and it's like that has never happened to any individual except for maybe oliver below or bill broder but the fact is that it gives you vignettes of what's really happening and i mentioned about the azerbaijani laundromat nobody's ever gone to jail we have 17 000 leaked records and we know that almost $3 billion went through money laundering. That may not be all of it. I mean, there was probably a lot more. And so when you look at dark money moving around the world and how much it's adjacent to illegal weapons, human trafficking, even illegal fishing and illegal lumbering is very closely adjacent. It's often very much entangled. But certainly a lot of bribery. And frankly, why is it so expensive to live in San Francisco, New York, Miami, London? Well, a lot of the illegal money is flooding in and like paying cash for prime property. So, I mean, there's just a lot of things going on in the world. Also illegal political influence, like in various countries where, you know, there are attempts to like overthrow the government, that kind of thing. You look at the impact of what's happening with dark money, and it's really incredible. On the other side, there's been a lot of moves toward making the data more open. So for instance, after the 2009 global financial crisis, there was legislation that went across worldwide in governments where if you're a corporate entity and you're engaging in certain types of financial trades, you have to have a registration for it. You have to have a unique identifier. There's an organization called GLEIF, which does global LEI identifiers. And you absolutely must, if you're doing those kinds of derivatives that led to the 2009 crisis. Now there's other types of illegal, you know, fin crime that you could be engaged in and no, no problem, go right ahead. We don't need to know. But that's one case at least where some parts of this are tied down in open data. And there's something else that's rolling out more recently called UBO, which is ultimate beneficial owner. So if there is a company, you have to disclose who are the owners. In California, actually this just went in. I have a company that my consulting firm that I was doing before I joined Senzing. It's now a law if you don't disclose the ownership of it as of this tax year, it's a felony. And so understanding the chain of ownership is really important. That hasn't been transparent before, but now it's becoming transparent. And ubo data collection protocols are going out across the world different countries are doing it some more or less like eu is pretty good about it but then malta is like oh no we're not going to disclose that we'll crack down on auditing but we're not going to disclose who wants what so it's still kind of a haphazard landscape but that's one thing that the people behind open ownership have really been pushing like UBO standards across the world, having open standards for the data, but also pushing the policy and really going out and doing dev rel for government policy, if you will. Which is great. I think we need more of that, right? Yeah, absolutely. I mean, there's really bad stuff. Have you ever heard of something called speculative libel? No, what is that? Oliver Blow talks about it in Moneyland, and I apologize, I'm not an attorney, and so I hope I don't mangle this. But the idea is, in the UK, there are laws that if you are investigating some criminal behavior, and you have data and you're going after the bad guys, if they catch wind of it, they can take you to court beforehand, right? And you have to defend yourself. And those kinds of defenses can be expensive. The case of Bill Browder, he's a U.S. entrepreneur who is in Russia, and he became quite a critic against the Kremlin. And, you know, Browder's like a billionaire, right? He could afford to drop a half, whatever, half million dollars to defend a case. But the idea is the oligarchs who are moving out into London have recognized that these laws are on the books. So if anybody's going to try to investigate them, they'll just put up lawsuits against them. And in some cases, they also have gone out to like small island nations and like, here's $5 million for your cancer research institute. Oh, thank you very much. You've made me an honorary diplomat. So, you know, now with diplomatic status, if anybody takes you to court in UK, the crown will go up to the judges and say, no, we can't do this. They've got diplomatic status. If we charge them criminally, then we're going to get killed on tariffs from Belgium. So just reverse the this decision so speculative libel and some of the diplomatic community it gets really dicey because people are trying to do the right thing you might even end up going to jail just because you're trying to do the right thing is that like is that a recent flaw or is that just like a recent reinterpretation existing no i think it's recent reinterpretation i believe that there are laws that are on the books that date back way far back in the day you couldn't say something bad about the king, right? That would be dangerous. If it's okay to transition. Now you've got a talk coming up for nodes next week. And you talked about a lot of entity stuff, but can you give the audience more of a preview of what you'll be covering in that talk? You bet. You bet. So we're going to talk about any resolution. It's a hard problem and it's so important in graphs, especially in these kind of regulated environments, whether you're talking about fin crime or, you know, sanctions or any, any kind of case where there's some sort of behavior that you have to spot. And usually there are people who are trying to hide behind a network. They're trying to hide because they've got a lot of offshore corps. So the problem is if you just load up all your data and try to connect it in a graph, oh, that's great. If you're working in one language and all the data is clean and you have unique identifiers for every node, awesome. That's great. Knock yourselves out. If you have like a marketing email list and all the records are identified by email addresses, doing some kind of deduplication on that is really go for it. But the thing is if you have a name of a person and it's in Arabic and in Arabic, there are cultural conventions like the name changes because you may mention your parentage, your father, the name changes because you may have made a pilgrimage to Mecca. So then the word Hodge comes in. And there's a lot of ways to abbreviate, but then there's a lot of ways to transliterate. So you might have a data set that has somebody's name in Arabic, but then it's transliterated into Italian. And there might be five different ways to transliterate into Italian. Trying to do string comparisons isn't going to work. And when you look across the world at these kinds of like passport control and voter registration and a lot of things, you look at a world where there's a lot of dirty data and there's a lot of bad actors trying to hide behind networks and you're trying to work with it, entity resolution becomes very difficult. There's a lot of edge cases and the edge cases are actually where the real big problems are. And so for instance, we do work where we can handle data that's in European languages, but then also handle data that is in Korean or Mandarin or Russian, Cyrillic or Arabic, or these days, even like Burmese and Khmer. And so, you know, if there's, if's an agency in singapore and they're having to look at like maritime traffic where there might be weapons traffic coming through right offshore and the manifests are written in all these different languages and all these different transliterations how do you make sense of it or if you're familiar have you all ever been to singapore by the way it's a really cool area because there's this confluence of all these cultures, but like you try to find addresses and it's nerve wracking, right? And so you look at addresses in Singapore and the name will be partly a business name, something that has more of like an Indian background and then the street name that has more of a Chinese background. And you look at the abbreviations and of course, Singapore has like super high density, so you go into a mall and there might be hundreds of businesses at that street address, but they all have a different number. And so you try and use things like string distance, string edit distance to compare records, and it just falls apart. Because there are so many cases where there'll be hundreds of businesses that are basically one or two letters off. And then there'll be a whole bunch of addresses that are exactly the same but they're like completely different representations so trying to show these kinds of use cases why entity resolution is hard you have to understand the cultural parts of it you have to understand the edge cases i work on a team where most of the core engineering people have been together for 20 years or more and our technology gets used for the majority of voter registration in the US. It gets used for like passport control and counterterrorism and a lot of fin crime work. And you know, these people have been handling these kinds of ed cases for a long time. By the way, another movie. Did you ever see a movie? It was about mathematician math grad students at MIT. And they went to Vegas, and they were doing this scam where they were card counting at the tables. Oh, yes. And the team I work with, they actually were part of the bad guys in that. They were part of the technology that caught them. Oh, wow. So that's taking it back a few years. So we're going to talk about like, what can we do with data to leverage entity resolution and have this idea of generating. And a lot of it is in contrast to the larger dialogue that's going on right now. There's a lot of cases that say, hey, just put all of your data through an LLM, the LLM will generate your graph and then you'll do graph rag downstream from that. And I mean, that's cool. You can do really cool demos with that. You can do really good applications with that. But if you're in a regulated environment where you're developing probable cause graphs that have to go in front of a judge to be able to get a warrant, or maybe like a SWAT team is being deployed, or maybe you're trying to get an indictment, or other things that these are really big problems and they require a lot of accountability because if you don't have the evidence, nothing's going to happen. In these cases, you can't just throw all the data into an LLM and say, okay, we're going to take whatever we get. OpenAI, knock yourself out. Instead, you really have to be, you have to be mindful about how you're handling the evidence. And so the idea that we present is you start out with maybe you have some ontology or taxonomy that you're required to use. Like there's the follow the money ontology for a lot of fin crime. There's various NIST vocabularies that get used in some of these areas. So really understand like what kind of schema do you have to use because the use case and then take your structured data and run entity resolute, well load up your structured data and then peel off your PII features, run entity resolution to figure out how to merge and then identify the entities and the relations and the properties about them and use that as kind of a backbone to build your graph. And then secondly, what we find is a lot of these use cases, there's kind of a Pareto rule, like maybe an organization has 20% structured data, but 80% unstructured data. That's pretty typical. So you're building these graphs. You might have a lot of data about sanctions and ownership and whatnot, but you probably want to bring in maybe some news stories or some log files or something unstructured, right? Maybe the shipping manifests. And this is a common problem, whether we're talking about investigative graphs or even trying to untangle supply networks. And you might know that your shipping container is going from point A to point B, but there might be something happening in that part of the world where the ship is currently that's going to cause it to be derailed for two months. That's a thing that happens a lot, like in supply networks. So how do you build up the graph, like we've mentioned from schema, and then structured data and entity resolution? Now, the next thing is you want to bring in unstructured data. What we'll show is how to build up a really high quality pipeline where you're using state-of-the-art models for the NLP work, whether you're doing your parse, doing your named entity recognition, doing your relation extraction, but most importantly, how do you do the entity linking? Because that's where you take the nodes and relations that are extracted from your unstructured data. You want to bring them into your graph and be very aware of the context of your domain, right? If I see the abbreviation NLP, that might mean natural language processing. If I'm talking about machine learning, it might mean neuro-linguistic programming. If I'm talking about psychology, given my domain, what are the words, even in a corporate sense, if you use the word consideration, that means something very different in HR versus contract law, right? And if you can't really distinguish the meanings from your unstructured data, then when you go to link stuff into your graph, you get in really big trouble. What we're doing is taking the results out of any resolution after you've run on your structured data with your schema, you take the results from any resolution, you use that to customize an entity linker. And so now you can do domain aware entity linking and be using state-of-the-art models like Kleiner and others to do your named entity, any argument inAR recognition. You can start to pull the pieces from the structured part and the unstructured part together. Once you've got that graph, then your next step is to go into GraphRag or building up systems of agents or maybe doing some type of graph analytics to really identify common patterns. How can we do the AI apps downstream? That's the gist of the talk. Sorry, long-winded, but I hope that gives some flavor for it. No, that's, that's perfect. The comments you made about starting with structured data as kind of the backbone is a topic you went in depth in your graph power hour, I think from last month. Yeah. Yeah. Yeah. Awesome. Thanks. So yeah, I totally write. So put that in the notes as well. I definitely recommend anyone check that out because you also covered the various graph rag techniques that are available now like different design patterns so actually just real quickly from that is there like a best or most promising graph rag design pattern that's kind of interests you the most oh that's you know so one of the things we were saying is that graph rag is a pretty big word. The graph in graph rag, graph probably gets used. I think we've counted eight different interpretations for a graph. So you might be talking about like building a graph out of the embeddings of the text chunks, which is one thing you can do. You might talk about having built a graph and using the prompt to generate a cycle query. You might be talking about doing a lexical graph, on and on and on. We've identified, like I said, multiple meanings for the word graph, if you look at GraphRag literature. And out of all those, I really use a lot of the approach of where we'll take the text chunks from your documents and we'll put them through an embedding model and you put them into your vector store. Great. We'll also parse those. And then from the parse, we build up a text graph, which is a nice structured way to leverage state-of-the-art models for NER, relation extraction, and linking. And then once you've got this kind of like staging area of your text graph, now you can run some, maybe some graph analytics, like centrality measures to see what's most connected. What's probably the thing that's really being talked about in the text chunk. And then from there, use entity linking to link back into a graph that you're collecting everything across all of your documents. That's the approach that I'm using most, which is kind of like lexical graph, but sort of lexical graph plus plus. But I will give a shout out, Tmash Botanik did some posts a couple of weeks ago about a thing called GraphReader, which is really interesting where you're using the graph to come up with basically a notebook of not just facts, but sort of like statements, like logical statements about things that have been extracted from your documents. And once you've got this notebook, then you can use an AI application, some type of agent to sort of treat the notebook of these statements as kind of hypotheses and start chaining them together in ways where you can actually say something about it. I'll give a shout out about GraphReader and the integration with Neo4j and I think it was Langchain because I'm old. I have white hair. I studied AI at Stanford in the early eighties. And back then there was all this work on expert systems. You may have heard, you know, some of that back there. There was, there was something, there was a project from like 1972 to 1979 called Hearsay 2. It was an expert system that did work on sort of discovery with Blackboard architectures. It's really fascinating to me because when you look at what Tomáš was showing with GraphReader today to use with LLMs, if you just change out a couple of phrases, it's very similar to these kind of Blackboard architectures that we had back in the 70s and 80s. And there was a lot of articles back then by Barbara Hayes-Roth and Penny Mee and some of the other AI experts back in the 80s who were really showing what you could do. My graduate advisor was Doug Lennett at Stanford, and he did a lot with Blackboard architectures with the URISCO project and others. And arguably what we were working on back then were sort of generative approaches using Blackboard architectures. And now here we are 40 years later doing generative approaches with language models also, but much better language models. I'll say that much better compute. So I won't say that it's all reduplicated, but it's sort of like we're revisiting parts of the past and I'm really glad to see that. It's great that we can take things that started from before and kind of like come back to and go like, oh wait, we can now combine these in new ways. Or now we have the technology to really leverage some of the initial thoughts that came up way early. Yeah. And I think it's a good reminder too, that this stuff, most of it, at least the foundations of it is much older than what we give credit. You know, the AI wave last year, maybe two years, if you will, but realizing that all of this study and this research actually happened potential decades before that this is not necessarily net new. It's just, we're applying new technologies to existing problems that now we can help solve in new ways. Yeah, so very well said. When you look at reinforcement learning, there's incredible things going on there, but it's really based off of optimal control theory, which is like from the 1950s, you know, building airframes that are resilient. And the difference is now we have deep learning, so we can learn and build policies that are enormous, you know, that have billions or trillions of points in them. Whereas before optimal control theory was pretty constrained by what you could fit on the hardware that was in the aircraft. To that point, I'll shout out, I think in the graph space, I see something really interesting happening that it's not necessarily all about LLMs. I mean, language models are very important. Don't get me wrong. And I come from a language background. I love this, but I'll shout out a friend of mine, Urbanshi Mitra. She's at USC, University of Southern California, and she leads work in the optimization lab there, really interesting work. I saw her present at a conference at Stanford a couple of months ago where they take graphs, and then they build out causal relationships in the graph and study causality. And they look at like sub graphs, and they're using reinforcement learning to optimize the causality. And then you can start to explore like, I want to throw counterfactuals, or I want to change some sort of intervention. So I start to play with the graph to figure out what's my policy really doing? What is my plan? How could I shoot this big corporate plan for a merger and acquisition? How could I shoot it apart, right? By using some AI technology. And it's not all about LLMs. It's about bringing in stuff like reinforcement learning and causal graphs and other things. And two of the takeaways there are number one, graphs are at the center of this. And number two, we're reusing a lot of math that comes from decades ago. But then number three, the cool thing about it, what Urbanchi's team is showing is they're using it to understand the interactions of like systems of multiple agents, like AI agents. So can we build a graph to describe how in a multi-agent environment, what are the outcomes? You know, where's the biases? How can we try to steer this? I'm really hopeful of like seeing a lot of these things come out from the wings and really having graphs be the centerpiece for integration. Graphs connecting decades of technology together. Well said, well said. It's going gonna be a big graph well jen i feel like our show notes for this this episode is going to be incredibly long we have lots and lots of links yeah um uh kind of riffing off of that we'll add a few more links if we could talk about like what type of technologies everyone's been playing with this last month and would like to recommend to the community paco would you like to share first you bet there's a new tutorial that we're just finishing up now the code is up on github in fact there is a new library the first release is in pypy and this is about using the results of entity resolution to customize entity linking so that you can be using the context of your domain. So like we said, you know, start with some structured data and do your entity resolution. You can understand the definitions. You can almost think of it as like building a thesaurus. And then once you do that, now you can go out and use tools like spaCy to go out and parse, here's your hundred million documents for unstructured data, but we're using the results of entity resolution to steer the entity linker to make the right choices in context. And there's some interesting ways that this is using embedding models and like community summaries. So we're really leveraging the graph technology to make NLP do the right thing. The week with tone has been building this out and there's, we'll have a link here for spacey for the entity linker. And we'll have an article about that coming up pretty shortly. Nice. Is that package the input? Is it, do people just give, put the unstructured data or do they have to run some pre-processing function and then that output gets passed in? Yeah, no, the night we try to make it simple. The idea is with sensing with entity resolution, you bring your PII features in and you call, make a call with some JSON and then the results come back as JSON. So you end up with this JSON description for your entities and the links among them and different probabilities and whatnot. We take that as input and then build up inside of spaCy, there's what spaCy calls a knowledge base and their entity linker, it builds off of that. So basically you import this file and you can also bring in other definitions that you have in your graph. We've made a way so if you had a pre-existing graph and you want to leverage the schema and the links that are in that graph, great. You bring it down into spaCy and now you've got a spaCy pipeline component. When you run spaCy to parse your text junk, you get your parses out of that, and you look at the named entity resolution. And so now when you're picking up different noun phrases that are supposed to be entities, if they make sense in context, they'll be linked to your graph. Like you'll have unique identifier directly into your graph. So what this means is we can do parsing that's much smarter so that we can do the right kind of integration in a knowledge graph. Nice. Jen, did you want to go next? Sure. I've been working on a Graph Academy course. Hopefully that will be coming soon, but on Spring Data Neo4j. And of course, as with anything, more you expand your your learning a little bit or try to teach it to someone else the more you learn yourself so i've come across some things especially in the like delete and update data inside the database using spring data neo4j that i kind of bumped against some rails and things like that trying to figure out how it works and what you do with it so just some kind of cool things there i hope to have some rails and things like that, trying to figure out how it works and what you do with it. So just some kind of cool things there. I hope to have some content, a little bit more detailed about what I've learned and kind of where I bumped into walls, but always really great project there doing some really great things. And the people working on that are really fantastic. There's joint work going on the Neo4j side, as well as on the Spring side. And it's just a really great partnership there. So if you're in the kind of Java ecosystem, Spring ecosystem, definitely check that project out. And again, I hope to have some more detail coming soon about some of the things that I've learned lately on it. Nice. My favorite tool is also a package, kind of like Paco's. It's the Neo4j's dash GraphRag Python package that came out earlier in the month. And specifically I've been looking at the vector database retrievers. These external retrievers allow you to combine Neo4j with other vector databases. So the first three that are available is with Weviate, Pinecone and Qtron. If you already have or already using one of those vector databases, you can basically put in your collection and your credentials and you can have the vector database store the embeddings and Neo4j handle all the knowledge graph and graph data. Looks really good. Yeah. It's a package that has quite a lot of features. So it's taken a while for me to unwrap, but for anyone wanting to get in and it's working in a Python environment, it's a good starting position. So November, it seems like we're still in prime conference and event season. Paco, your calendar looks like, I don't know if you have a day where you can sleep. Are there some, some coming up that you'd like to tell the audience about? Thank you. Yeah. I'd love to. Yeah. I got off the plane from Spain. I was in Ocarina at a conference. I got off the plane last night. So I'm back in California. Yeah, really cool stuff. So next week's going to be busy. We've got nodes. I'm really, really looking forward to that and have so many friends also speaking. At the same time, I'm going to be at ML Ops World Summit in Austin, Texas. And also a lot of friends in this space who are presenting there. So I was going to say, I think we have colleagues from Neo4j there as well. Oh yeah, absolutely. Yeah. And just this whole confluence of like data engineering and MLOps and cool applications that are built off of LLMs, et cetera. It's all kind of connected. And then and then after next week, yeah, it gets busy also. What am I doing? Oh, we have the ISWC is a conference about knowledge graphs. It's more academic, but it'll be in Baltimore on the 12th. And we're doing a workshop about software engineering and knowledge graphs. And then sensing we have our user conference in rest in virginia but right nearby there on the 14th and then on nove 18 i'm gonna be at the cleveland mega meetup so there's a lot of like finance and healthcare in cleveland and so we're gonna bring people together from a lot of big companies and talk about using knowledge graphs and using entity resolution. And then London after Thanksgiving I'm going to be in UK for half of December, but it gets really busy because Linkurious, which partners with Neo4j, Linkurious is coming over from Paris and they're holding Linkurious days, which I think is going to be held at Lloyds Bank. And that'll be on December 3rd. I'm really looking forward to a full day of talks there about, like we're saying, entity resolve knowledge graphs used in finance. And then I think on December 10th, my colleague and friend, James Fair at Neural Alpha is doing a meetup about ESG and using graphs for ESG, you know, ethics, et cetera, in terms of business practices. That'll be on December 10th. And then on December 11th through 13th, we're doing the Connected Data World Conference, Connected Data London. And I believe that Neo4j is a sponsor there. Senzing is a sponsor. I'm one of the co-chairs. So I'll be teaching a masterclass on the 11th about entity resolve knowledge graphs, catching bad guys using open data. And I'll also be a host for some of the technology sessions. And then the third day, we're going to have more of an unconference kind of format. And so I'll be hosting part of that as well, as far as like domain knowledge and sort of semantic overlay ideas. But I'm super thrilled about what's all the people coming together out of London. Also be able to catch up with shout out to ABK, who I think is based in London, pretty sure. Maybe not every day, but at least I'll be around the area to catch up with friends. Nice. That's fantastic. Jen, I don't know if you will go next. Yeah, sure. So I got a couple of virtual things next week one being nodes of course on november 7th and but just before that i'm participating in extreme j conference it's a virtual event as well so i'll be doing like the java portion which is the the j at the end they have like a javascript and a couple others that they do as well but this will will be the kind of the Java day, I guess, next week. So I've got that. And then a couple of days later, I've got the nodes event. And then towards, I guess, just before the US Thanksgiving holiday, I've got the Chicago Java user group or the CJAG, and I'm gonna be presenting there. The event's not up on the site just yet, but it should be here in the next week or so. So if you're in the area in the Midwest, I will be there just before the holiday season starts. And then things get a little bit quiet for me. But how about you, Jason? My schedule is definitely the lightest out of the three of us. So next week, nodes, of course. And then the week after that, I'll be going up to Seattle and doing a talk with the Puget sound, programming Python group, puppy. And also we're doing a joint event with union, boundary ML and pine cone. So looking forward to that. And a couple, I'll probably be going to San Francisco at the end of the month. Although nothing has been like set in stone, but right after that will be reinvent in Las Vegas. So those, those are, those are my confirmed events for the. November is super busy for all of us. We're covering, we're covering so many communities and so many geographic areas and all. So I, I look forward to catching up and finding out your takeaways from all this. I think that's the fun part. Hmm. Yeah, definitely. Yeah, definitely. Envious of you Paco. You get to connect with so many old friends and really, really toss around some, I think there's just going to be amazing. Like the number of connections and new ideas that is going to come out of that is just going to be bonkers. Paco Paganova I really love that about DevRel that, I mean, I've been doing this kind of work. I did DevRel back at, there's a little company called Databricks back when we all fit in one room. So that was really fun. I got to lead community work there and training there a decade ago. And I just really love DevRel for exactly the reasons you both were talking about. I mean, you get to meet so many amazing people and get this bird's eye view of like new things coming down the pipeline and like a lot of cool projects around the world. I really enjoy that. Yeah, same. Fantastic group of people. Always. We will have, as always, links to Fantastic group of people. Always. We will have, as always, links to everything else going on. So speaker resources, a bunch of the things that we've talked about with Paco today, as well as just things going on in the Neo4j community, like blog posts, videos, and so on. I'll link all of that. And then of course the Neo4j events, which a lot of the things that we've mentioned where we're going to be in the next few weeks will pop up there as well. But definitely reach out to us if you have questions or need something else. Thank you so much Paco for joining us today and talking a lot about entity resolution and the work you're doing at SunZing and the work you have been doing over the last several years in catching bad guys with graphs. We look forward to hearing your talk at Nodes too. Looking forward. Thank you so much. All right, bye everyone. Thank you everyone.
Catching Bad Guys using Graph Entity Resolution with Paco Nathan
Our guest is Paco Nathan, a Principal Developer Relations Engineer at Senzing.com (and listed as an “evil mad scientist” on LinkedIn). Paco works a lot within developer communities and tech events, and tries to provide many pointers to learning materials, industry analysis, and connect with many people. He presents talks, workshops, and hands-on tutorials about entity-resolved knowledge graph practices, and the related AI use cases which are downstream.

Episode Notes
Speaker Resources:
* Neo4j+Senzing Tutorial: https://bit.ly/3AvKneU
* When GraphRAG Goes Bad: A Study in Why you Cannot Afford to Ignore Entity Resolution (Dr. Clair Sullivan): https://www.linkedin.com/pulse/when-graphrag-goesbad-study-why-you-cannot-afford-ignore-sullivan-7ymnc/
* Paco’s NODES 2024 session: https://bit.ly/48sCSlD
* Graph Power Hour: https://www.youtube.com/playlist?list=PL9-tchmsp1WMnZKYti-tMnt_wyk4nwcbH
T* omaz Bratanic on GraphReader: https://towardsdatascience.com/implementing-graphreader-with-neo4j-and-langgraph-e4c73826a8b7

Tools of the Month:
* Neo4j GraphRAG Python package:  https://pypi.org/project/neo4j-graphrag/
* Spring Data Neo4j: https://spring.io/projects/spring-data-neo4j
* Entity Linking based on Entity Resolution tutorial: https://github.com/louisguitton/spacy-lancedb-linker
https://github.com/DerwenAI/strwythura
* AskNews (build news datasets) https://asknews.app/
* The Sentry https://atlas.thesentry.org/azerbaijan-aliyev-empire/

Announcements / News:
Articles:
* Neo4j Developer Blog https://bit.ly/3LcYx6q

Videos:
* NODES 2023 playlist https://youtube.com/playlist?list=PL9Hl4pk2FsvUu4hzyhWed8Avu5nSUXYrb&si=8_0sYVRYz8CqqdIc

Events
* All Neo4j events: https://bit.ly/3Lb1Kn3
* (Nov 5) Conference (virtual): XtremeJ https://xtremej.dev/2024/schedule/
* (Nov 7) Conference (virtual): NODES 2024 https://bit.ly/47VqQkp
* (Nov 8) Conference (Austin, TX, USA): MLOps World https://mlopsworld.com/
* (Nov 12) Conference (Baltimore, MD, USA): ISWC https://iswc2024.semanticweb.org/event/3715c6fc-e2d7-47eb-8c01-5fe4ac589a52/summary
* (Nov 13) Meetup (Seattle, WA, USA): Puget Sound Programming Python (PuPPY) - Talk night Rover https://www.meetup.com/psppython/events/303896335/?eventOrigin=group_events_list
* (Nov 14) Meetup (Seattle, WA, USA): AI Workflow Essentials (with Pinecone, Neo4J, Boundary, Union) https://lu.ma/75nv6dd3
* (Nov 14) Conference (Reston, VA, USA): Senzing User Conference https://senzing.com/senzing-event-calendar/
* (Nov 18) Meetup (Cleveland, OH, USA): Cleveland Big Data mega-meetup https://www.meetup.com/Cleveland-Hadoop/
* (Nov 19) Chicago Java User Group (Chicago, IL, USA): https://cjug.org/cjug-meeting-intro/#/
* (Dec 3) Conference (London, UK): Linkurious Days https://resources.linkurious.com/linkurious-days-london
* (Dec 10) Meetup (London, UK): ESR meetup in London by Neural Alpha
* (Dec 11-13) Conference (London, UK): Connected Data London https://2024.connected-data.london/