Good article on the high level concepts of a knowledge graph, but some concerning mischaracterizations of core functions of ontologies supporting the class schema and continued disparaging of competing standards-based (RDF triple-store) solutions. That the author omits the updates for property annotations using RDF* is probably not an accident and glosses over the issues with their proprietary clunky query language.…
I enjoy cypher, it's like you draw ASCII art to describe the path you want to match on and it gives you what you want. I was under the impression that with things like openCypher that cypher was becoming (if not was already) the main standard for interacting with a graph database (but I could be out of date). What are the better standards-based options you're referring to?
What Is a Knowledge Graph?
51–60 of 60 posts
Re: What Is a Knowledge Graph?
#52I've been working on an implementation of graph RAG (GRAG) using Neo4j as the underlying store. The overall DX is quite nice. The apoc-extended set of plugins[0] make it very seamless to work with embeddings and and LLMs during local dev/testing. The Graph Data Science package comes preloaded with a series of community detection algorithms[1] like Louvain and Leiden. Performance has been very, very good as long as yo…
Re: What Is a Knowledge Graph?
#53Earlier quoted context omitted.
During our initial testing, ~1m nodes on a local Docker container with 1G RAM and 1vCPU. But here I mean "performance" in both retrieval time and the overall quality of the fragments retrieved for RAG compared to a `pgvector` only implementation. It is possible to "simulate" these types of graph traversals in pg as well, you'll have to work much harder to get the performance (we tried it first).
number of nodes mean nothing. what matters to measure performance is how much interconnected your network is and how complex are the relationships you want to extract.
Re: What Is a Knowledge Graph?
#54Earlier quoted context omitted.
It has been a while so maybe things have changed, but the main reasons I remember are 1) lists stored as a property must be a homogeneous list of simple builtin datatypes so no mixing of types, custom types, or language tagging like RDF has as first class concepts. 2) indexes on lists are much more limited ( exact match only iirc) so depending on the size of the data and the search parameters it could be a big perfor…
What would you recommend as an RDF database to explore?
Re: What Is a Knowledge Graph?
#55As someone running neo4j in production I can just warn that the DBs are a pain and need a lot more care and love than Postgres or Oracle DBs. Even much larger instances. Maybe their cloud offerings are better, but they are quite expensive.
Yes, Postgres is actually a great general-purpose graph database (excluding specialized network analysis that's actually pretty niche) if you can deal with the clunky recursive-CTE syntax for graph queries. (The new SQL standard actually comes with an added Property Graph Query/PGQ syntax specifically to make these queries easier to express.)
Re: What Is a Knowledge Graph?
#56Earlier quoted context omitted.
This doesn’t seem on topic, how is it a knowledge graph? Its a (nested) list of bookmarks…
E.g. I add the keywords "Permutations, Combinations" to the "Name" field of a bunch of Bookmarks. I have now crosslinked the Bookmarks. So while it may not be exactly what the linked OP article is talking about, it's a way of storing knowledge, linked via horizontal relationships. But whatever floats your boat.
Re: What Is a Knowledge Graph?
#57Earlier quoted context omitted.
E.g. I add the keywords "Permutations, Combinations" to the "Name" field of a bunch of Bookmarks. I have now crosslinked the Bookmarks. So while it may not be exactly what the linked OP article is talking about, it's a way of storing knowledge, linked via horizontal relationships. But whatever floats your boat.
There is a difference between "tagged data" and "linked data".
Re: What Is a Knowledge Graph?
#58I've been working on an implementation of graph RAG (GRAG) using Neo4j as the underlying store. The overall DX is quite nice. The apoc-extended set of plugins[0] make it very seamless to work with embeddings and and LLMs during local dev/testing. The Graph Data Science package comes preloaded with a series of community detection algorithms[1] like Louvain and Leiden. Performance has been very, very good as long as yo…
Did you see the two blog posts that Tomaz Bratanic did on the topic?
For the ingestion: https://neo4j.com/developer-blog/global-graphrag-neo4j-langc... For the retrievers: https://neo4j.com/developer-blog/microsoft-graphrag-neo4j/
My general point on GraphRAG is that it extracts and compresses the horizontal topic-clustering across many documents and makes that available for retrieval.
And that by creating the semantic network of entities, you can use patterns in the graph structure to answer questions that rely on information coming together from different documents. Think the detectives board connecting facts with strings from many different sources.
Feel free to ping me for a deeper discussion: michael at neo4j
Re: What Is a Knowledge Graph?
#59Earlier quoted context omitted.
While I'm all for standards-based options, I think the fetishization does a disservice to anyone dipping their toes into graph databases for the first time. For someone with no prior experience, Cypher is everywhere and implements a ton of common graph algorithms which are huge pain points. AuraDB provides an enterprise-level fully-managed offering which is table stakes for, say, relational databases. Obviously the a…
I can attest to that, or at least to the inverse situation. We have a giant data pile that would fit well onto a knowledge graph, and we have a lot of potential use cases for graph queries. But whenever I try to get started, I end up with a bunch of different technologies that seem so foreign to everything else we’re using, it’s really tough to get into. I can’t seem to wrap my head around SPARQL, Gremlin/TinkerPop h…
Re: What Is a Knowledge Graph?
#60Earlier quoted context omitted.
GraphDB is the one I usually use. It has a web interface that eases the first steps. Virtuoso (especially Virtuoso 7, which is open source) is also an option. [a bit more command line based]. In case you want to have a look a the SPARQL client I maintain, Datao.net, you can go to the website and drop me a mail. [i really need to update the video there as the tool has evolved a lot since that time]
The new kid on the block is very much QLever. Still lacking some features, especially wrt. real time update that make it unsuitable for replacing the Wikidata SPARQL endpoint altogether just yet, but it's clearly getting there.
that kid is 7 years old already, and in my understanding currently has only one active contributor. But idea of the project is very strong.